// Path: camel-rest-swagger/src/main/java/org/wildfly/camel/examples/rest/data/CustomerRepository.java
// @ApplicationScoped
// @Named
// public class CustomerRepository {
// 
//     @Inject
//     private EntityManager em;
// 
//     @Inject
//     private UserTransaction userTransaction;
// 
//     public List<Customer> findAll() {
//         CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
//         CriteriaQuery<Customer> query = criteriaBuilder.createQuery(Customer.class);
//         query.select(query.from(Customer.class));
//         return em.createQuery(query).getResultList();
//     }
// 
//     public Customer findById(Long id) {
//         return em.find(Customer.class, id);
//     }
// 
//     public Customer save(Customer customer) {
//         try {
//             try {
//                 userTransaction.begin();
//                 return em.merge(customer);
//             } finally {
//                 userTransaction.commit();
//             }
//         } catch (Exception e) {
//             try {
//                 userTransaction.rollback();
//             } catch (SystemException se) {
//                 throw new RuntimeException(se);
//             }
//             throw new RuntimeException(e);
//         }
//     }
// 
//     public void delete(Customer customer) {
//         try {
//             try {
//                 userTransaction.begin();
//                 if (!em.contains(customer)) {
//                     customer = em.merge(customer);
//                 }
//                 em.remove(customer);
//             } finally {
//                 userTransaction.commit();
//             }
//         } catch (Exception e) {
//             try {
//                 userTransaction.rollback();
//             } catch (SystemException se) {
//                 throw new RuntimeException(se);
//             }
//             throw new RuntimeException(e);
//         }
//     }
// }
// 
// Path: camel-rest-swagger/src/main/java/org/wildfly/camel/examples/rest/model/Customer.java
// @Entity
// @Table(name = "customer")
// public class Customer implements Serializable {
// 
//     private static final long serialVersionUID = -2372350530824400584L;
// 
//     @Id
//     @GeneratedValue(strategy= GenerationType.IDENTITY)
//     private Long id;
//     private String firstName;
//     private String lastName;
// 
//     public Long getId() {
//         return id;
//     }
// 
//     public void setId(Long id) {
//         this.id = id;
//     }
// 
//     public String getFirstName() {
//         return firstName;
//     }
// 
//     public void setFirstName(String firstName) {
//         this.firstName = firstName;
//     }
// 
//     public String getLastName() {
//         return lastName;
//     }
// 
//     public void setLastName(String lastName) {
//         this.lastName = lastName;
//     }
// 
//     @Override
//     public String toString() {
//         return "Customer{" + "id=" + id + ", firstName='" + firstName + '\'' + ", lastName='" + lastName + '\'' + '}';
//     }
// }


import java.util.List;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import javax.inject.Named;
import org.apache.camel.Exchange;
import org.wildfly.camel.examples.rest.data.CustomerRepository;
import org.wildfly.camel.examples.rest.model.Customer;
/*
 * #%L
 * Wildfly Camel :: Example :: Camel Rest Swagger
 * %%
 * Copyright (C) 2013 - 2017 RedHat
 * %%
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * #L%
 */
package org.wildfly.camel.examples.rest.service;




@ApplicationScoped
@Named
public class CustomerService {

    @Inject
// Path: camel-rest-swagger/src/main/java/org/wildfly/camel/examples/rest/data/CustomerRepository.java
// @ApplicationScoped
// @Named
// public class CustomerRepository {
// 
//     @Inject
//     private EntityManager em;
// 
//     @Inject
//     private UserTransaction userTransaction;
// 
//     public List<Customer> findAll() {
//         CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
//         CriteriaQuery<Customer> query = criteriaBuilder.createQuery(Customer.class);
//         query.select(query.from(Customer.class));
//         return em.createQuery(query).getResultList();
//     }
// 
//     public Customer findById(Long id) {
//         return em.find(Customer.class, id);
//     }
// 
//     public Customer save(Customer customer) {
//         try {
//             try {
//                 userTransaction.begin();
//                 return em.merge(customer);
//             } finally {
//                 userTransaction.commit();
//             }
//         } catch (Exception e) {
//             try {
//                 userTransaction.rollback();
//             } catch (SystemException se) {
//                 throw new RuntimeException(se);
//             }
//             throw new RuntimeException(e);
//         }
//     }
// 
//     public void delete(Customer customer) {
//         try {
//             try {
//                 userTransaction.begin();
//                 if (!em.contains(customer)) {
//                     customer = em.merge(customer);
//                 }
//                 em.remove(customer);
//             } finally {
//                 userTransaction.commit();
//             }
//         } catch (Exception e) {
//             try {
//                 userTransaction.rollback();
//             } catch (SystemException se) {
//                 throw new RuntimeException(se);
//             }
//             throw new RuntimeException(e);
//         }
//     }
// }
// 
// Path: camel-rest-swagger/src/main/java/org/wildfly/camel/examples/rest/model/Customer.java
// @Entity
// @Table(name = "customer")
// public class Customer implements Serializable {
// 
//     private static final long serialVersionUID = -2372350530824400584L;
// 
//     @Id
//     @GeneratedValue(strategy= GenerationType.IDENTITY)
//     private Long id;
//     private String firstName;
//     private String lastName;
// 
//     public Long getId() {
//         return id;
//     }
// 
//     public void setId(Long id) {
//         this.id = id;
//     }
// 
//     public String getFirstName() {
//         return firstName;
//     }
// 
//     public void setFirstName(String firstName) {
//         this.firstName = firstName;
//     }
// 
//     public String getLastName() {
//         return lastName;
//     }
// 
//     public void setLastName(String lastName) {
//         this.lastName = lastName;
//     }
// 
//     @Override
//     public String toString() {
//         return "Customer{" + "id=" + id + ", firstName='" + firstName + '\'' + ", lastName='" + lastName + '\'' + '}';
//     }
// }


// Path: camel-rest-swagger/src/main/java/org/wildfly/camel/examples/rest/service/CustomerService.java
import java.util.List;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import javax.inject.Named;
import org.apache.camel.Exchange;
import org.wildfly.camel.examples.rest.data.CustomerRepository;
import org.wildfly.camel.examples.rest.model.Customer;

/*
 * #%L
 * Wildfly Camel :: Example :: Camel Rest Swagger
 * %%
 * Copyright (C) 2013 - 2017 RedHat
 * %%
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * #L%
 */
package org.wildfly.camel.examples.rest.service;




@ApplicationScoped
@Named
public class CustomerService {

    @Inject
    CustomerRepository customerRepository;