// Path: cdi-properties-test/cdi-properties-test-common/src/main/java/com/byteslounge/cdi/test/common/InjectedBean.java
// public class InjectedBean implements Serializable {
// 
//     private static final long serialVersionUID = 1L;
// 
//     public String getText() {
//         return TestConstants.BEAN_TEST_RETURN_VALUE;
//     }
// 
// }
// 
// Path: cdi-properties-test/cdi-properties-test-common/src/main/java/com/byteslounge/cdi/test/configuration/TestConstants.java
// public class TestConstants {
// 
//     private TestConstants() {
//     }
// 
//     public static final String OTHER_RESOURCE_BUNDLE_NAME = "bl.other";
//     public static final String BEAN_TEST_RETURN_VALUE = "getTextResult";
//     public static final String PROVIDED_RESOLVER_SUFFIX = "provided";
//     public static final String EXTERNAL_CLASSES_DIRECTORY = "target/external";
//     public static final String TEST_TARGET_CLASSES_DIRECTORY = "target/test-classes";
// 
// }
// 
// Path: cdi-properties-test/cdi-properties-test-common/src/main/java/com/byteslounge/cdi/test/model/TestEntity.java
// @Entity
// @Table(name = "TEST_ENTITY")
// public class TestEntity implements Serializable {
// 
//     private static final long serialVersionUID = 1L;
// 
//     @Id
//     @Column(name = "ID", nullable = false)
//     @GeneratedValue(strategy = GenerationType.AUTO, generator = "IdGenerator")
//     @GenericGenerator(name = "IdGenerator", strategy = "com.byteslounge.cdi.test.model.IdGenerator")
//     private Long id;
// 
//     @Column(name = "DESCRIPTION", nullable = false)
//     private String description;
// 
//     public Long getId() {
//         return id;
//     }
// 
//     public void setId(Long id) {
//         this.id = id;
//     }
// 
//     public String getDescription() {
//         return description;
//     }
// 
//     public void setDescription(String description) {
//         this.description = description;
//     }
// 
// }


import javax.ejb.Stateless;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.junit.Assert;
import com.byteslounge.cdi.test.common.InjectedBean;
import com.byteslounge.cdi.test.configuration.TestConstants;
import com.byteslounge.cdi.test.model.TestEntity;
/*
 * Copyright 2014 byteslounge.com (Gonçalo Marques).
 *
 * 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.
 */
package com.byteslounge.cdi.test.wpm;




/**
 * Used in CDI Properties integration tests. See WarDefaultMethodIT.java,
 * WarProvidedMethodIT.java, EjbDefaultMethodIT.java and
 * EjbProvidedMethodIT.java.
 * 
 * @author Gonçalo Marques
 * @since 1.0.0
 */
@Stateless
public class ServiceBean implements Service {

    private static final long serialVersionUID = 1L;

    @PersistenceContext
    private EntityManager entityManager;

    @Inject
    private InjectedBean injectedBean;

    @Override
    public String getText() {
        Assert.assertEquals(injectedBean.getText(), TestConstants.BEAN_TEST_RETURN_VALUE);
        return TestConstants.BEAN_TEST_RETURN_VALUE;
    }

    @Override
    public TestEntity merge(TestEntity testEntity) {
        return entityManager.merge(testEntity);
    }

    @Override
    public TestEntity findById(Long id) {
        return entityManager.find(TestEntity.class, id);
    }

    @Override
// Path: cdi-properties-test/cdi-properties-test-common/src/main/java/com/byteslounge/cdi/test/common/InjectedBean.java
// public class InjectedBean implements Serializable {
// 
//     private static final long serialVersionUID = 1L;
// 
//     public String getText() {
//         return TestConstants.BEAN_TEST_RETURN_VALUE;
//     }
// 
// }
// 
// Path: cdi-properties-test/cdi-properties-test-common/src/main/java/com/byteslounge/cdi/test/configuration/TestConstants.java
// public class TestConstants {
// 
//     private TestConstants() {
//     }
// 
//     public static final String OTHER_RESOURCE_BUNDLE_NAME = "bl.other";
//     public static final String BEAN_TEST_RETURN_VALUE = "getTextResult";
//     public static final String PROVIDED_RESOLVER_SUFFIX = "provided";
//     public static final String EXTERNAL_CLASSES_DIRECTORY = "target/external";
//     public static final String TEST_TARGET_CLASSES_DIRECTORY = "target/test-classes";
// 
// }
// 
// Path: cdi-properties-test/cdi-properties-test-common/src/main/java/com/byteslounge/cdi/test/model/TestEntity.java
// @Entity
// @Table(name = "TEST_ENTITY")
// public class TestEntity implements Serializable {
// 
//     private static final long serialVersionUID = 1L;
// 
//     @Id
//     @Column(name = "ID", nullable = false)
//     @GeneratedValue(strategy = GenerationType.AUTO, generator = "IdGenerator")
//     @GenericGenerator(name = "IdGenerator", strategy = "com.byteslounge.cdi.test.model.IdGenerator")
//     private Long id;
// 
//     @Column(name = "DESCRIPTION", nullable = false)
//     private String description;
// 
//     public Long getId() {
//         return id;
//     }
// 
//     public void setId(Long id) {
//         this.id = id;
//     }
// 
//     public String getDescription() {
//         return description;
//     }
// 
//     public void setDescription(String description) {
//         this.description = description;
//     }
// 
// }


// Path: cdi-properties-test/cdi-properties-test-common/src/main/java/com/byteslounge/cdi/test/wpm/ServiceBean.java
import javax.ejb.Stateless;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.junit.Assert;
import com.byteslounge.cdi.test.common.InjectedBean;
import com.byteslounge.cdi.test.configuration.TestConstants;
import com.byteslounge.cdi.test.model.TestEntity;

/*
 * Copyright 2014 byteslounge.com (Gonçalo Marques).
 *
 * 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.
 */
package com.byteslounge.cdi.test.wpm;




/**
 * Used in CDI Properties integration tests. See WarDefaultMethodIT.java,
 * WarProvidedMethodIT.java, EjbDefaultMethodIT.java and
 * EjbProvidedMethodIT.java.
 * 
 * @author Gonçalo Marques
 * @since 1.0.0
 */
@Stateless
public class ServiceBean implements Service {

    private static final long serialVersionUID = 1L;

    @PersistenceContext
    private EntityManager entityManager;

    @Inject
    private InjectedBean injectedBean;

    @Override
    public String getText() {
        Assert.assertEquals(injectedBean.getText(), TestConstants.BEAN_TEST_RETURN_VALUE);
        return TestConstants.BEAN_TEST_RETURN_VALUE;
    }

    @Override
    public TestEntity merge(TestEntity testEntity) {
        return entityManager.merge(testEntity);
    }

    @Override
    public TestEntity findById(Long id) {
        return entityManager.find(TestEntity.class, id);
    }

    @Override
    public void remove(Long id) {