Java 类javax.persistence.PersistenceProperty 实例源码

项目:jpa-unit    文件:JpaUnitContext.java   
private static Map<String, Object> getPersistenceContextProperties(final PersistenceContext persistenceContext) {
    final Map<String, Object> properties = new HashMap<>();
    for (final PersistenceProperty property : persistenceContext.properties()) {
        String propertyValue = property.value();
        Matcher matcher = PROPERTY_PATTERN.matcher(propertyValue);

        while(matcher.find()) {
            String p = matcher.group();
            String systemProperty = p.substring(2, p.length() - 1);
            propertyValue = propertyValue.replace(p, System.getProperty(systemProperty, p));
        }

        properties.put(property.name(), propertyValue);
    }
    return properties;
}
项目:javaee-samples    文件:InjectionRunner.java   
private static JPARule createJPARule(PersistenceContext ctx, Object test) {
    DatabaseConfiguration config = findOnTest(DatabaseConfiguration.class, test);

    if (config == null) {
        return new JPARule(ctx, H2, DEFAULT_STORAGE, DEFAULT_MODE);
    }

    switch (config.value()) {
        case H2:
            return new JPARule(ctx, H2, config.h2().storage(), config.h2().mode());
        case UNDEFINED:
        default:
            Map<String, String> properties = new HashMap<>();
            for (PersistenceProperty property : ctx.properties()) {
                properties.put(property.name(), property.value());
            }
            return unitName(ctx.unitName())
                    .database(UNDEFINED)
                    .noInternalProperties()
                    .properties(properties)
                    .build();
    }
}
项目:spring4-understanding    文件:PersistenceAnnotationBeanPostProcessor.java   
public PersistenceElement(Member member, AnnotatedElement ae, PropertyDescriptor pd) {
    super(member, pd);
    PersistenceContext pc = ae.getAnnotation(PersistenceContext.class);
    PersistenceUnit pu = ae.getAnnotation(PersistenceUnit.class);
    Class<?> resourceType = EntityManager.class;
    if (pc != null) {
        if (pu != null) {
            throw new IllegalStateException("Member may only be annotated with either " +
                    "@PersistenceContext or @PersistenceUnit, not both: " + member);
        }
        Properties properties = null;
        PersistenceProperty[] pps = pc.properties();
        if (!ObjectUtils.isEmpty(pps)) {
            properties = new Properties();
            for (PersistenceProperty pp : pps) {
                properties.setProperty(pp.name(), pp.value());
            }
        }
        this.unitName = pc.unitName();
        this.type = pc.type();
        this.synchronizedWithTransaction = (synchronizationAttribute == null ||
                "SYNCHRONIZED".equals(ReflectionUtils.invokeMethod(synchronizationAttribute, pc).toString()));
        this.properties = properties;
    }
    else {
        resourceType = EntityManagerFactory.class;
        this.unitName = pu.unitName();
    }
    checkResourceType(resourceType);
}
项目:javaee-samples    文件:JPARule.java   
JPARule(PersistenceContext unit, DB db, H2Storage storage, Mode mode) {
    for (PersistenceProperty property : unit.properties()) {
        properties.put(property.name(), property.value());
    }
    unitName = unit.unitName();
    this.storage = storage;
    this.mode = mode;
    this.db = db;
}
项目:javaee-samples    文件:WithTableGeneratorWithoutRuleTest.java   
@Test
@PersistenceContext(unitName = "table-generator-pu", properties = {
        @PersistenceProperty(name = "hibernate.id.new_generator_mappings", value = "true")
})
public void test() throws Exception {
    assertThat(em, is(notNullValue()));
}
项目:class-guard    文件:PersistenceAnnotationBeanPostProcessor.java   
public PersistenceElement(Member member, PropertyDescriptor pd) {
    super(member, pd);
    AnnotatedElement ae = (AnnotatedElement) member;
    PersistenceContext pc = ae.getAnnotation(PersistenceContext.class);
    PersistenceUnit pu = ae.getAnnotation(PersistenceUnit.class);
    Class<?> resourceType = EntityManager.class;
    if (pc != null) {
        if (pu != null) {
            throw new IllegalStateException("Member may only be annotated with either " +
                    "@PersistenceContext or @PersistenceUnit, not both: " + member);
        }
        Properties properties = null;
        PersistenceProperty[] pps = pc.properties();
        if (!ObjectUtils.isEmpty(pps)) {
            properties = new Properties();
            for (PersistenceProperty pp : pps) {
                properties.setProperty(pp.name(), pp.value());
            }
        }
        this.unitName = pc.unitName();
        this.type = pc.type();
        this.properties = properties;
    }
    else {
        resourceType = EntityManagerFactory.class;
        this.unitName = pu.unitName();
    }
    checkResourceType(resourceType);
}
项目:tomee    文件:PersistenceContextAnnFactoryTest.java   
private static void assertEq(final PersistenceContext annotation, final PersistenceContextAnn wrapper) {
    if (annotation.name().length() > 0) {
        assertEquals(annotation.name(), wrapper.name());
    }
    assertEquals(annotation.unitName(), wrapper.unitName());
    assertEquals(annotation.type().toString(), wrapper.type());

    final Map<String, String> properties = new HashMap<String, String>();
    for (final PersistenceProperty property : annotation.properties()) {
        properties.put(property.name(), property.value());
    }
    assertEquals(properties, wrapper.properties());
}
项目:testee.fi    文件:JpaInjectionServicesTest.java   
private InjectionPoint persistenceContext(String unitName) {
    final InjectionPoint ip = mock(InjectionPoint.class);
    final Annotated annotated = mock(Annotated.class);
    when(ip.getAnnotated()).thenReturn(annotated);
    final PersistenceContext annotation = new PersistenceContext() {
        @Override
        public Class<? extends Annotation> annotationType() {
            return null;
        }

        @Override
        public String name() {
            return null;
        }

        @Override
        public String unitName() {
            return unitName;
        }

        @Override
        public PersistenceContextType type() {
            return null;
        }

        @Override
        public SynchronizationType synchronization() {
            return null;
        }

        @Override
        public PersistenceProperty[] properties() {
            return new PersistenceProperty[0];
        }
    };
    when(annotated.getAnnotation(PersistenceContext.class)).thenReturn(annotation);
    return ip;
}
项目:jpa-unit    文件:JpaUnitRuleTest.java   
@Test
public void testClassWithPersistenceContextWithWithOverwrittenConfiguration() throws Exception {
    // GIVEN
    final JCodeModel jCodeModel = new JCodeModel();
    final JPackage jp = jCodeModel.rootPackage();
    final JDefinedClass jClass = jp._class(JMod.PUBLIC, "ClassUnderTest");
    final JFieldVar ruleField = jClass.field(JMod.PUBLIC, JpaUnitRule.class, "rule");
    ruleField.annotate(Rule.class);
    final JInvocation instance = JExpr._new(jCodeModel.ref(JpaUnitRule.class)).arg(JExpr.direct("getClass()"));
    ruleField.init(instance);
    final JFieldVar emField = jClass.field(JMod.PRIVATE, EntityManager.class, "em");
    final JAnnotationUse jAnnotation = emField.annotate(PersistenceContext.class);
    jAnnotation.param("unitName", "test-unit-1");
    final JAnnotationArrayMember propArray = jAnnotation.paramArray("properties");
    propArray.annotate(PersistenceProperty.class).param("name", "javax.persistence.jdbc.url").param("value",
            "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1");
    propArray.annotate(PersistenceProperty.class).param("name", "javax.persistence.jdbc.driver").param("value", "org.h2.Driver");
    propArray.annotate(PersistenceProperty.class).param("name", "javax.persistence.jdbc.password").param("value", "test");
    propArray.annotate(PersistenceProperty.class).param("name", "javax.persistence.jdbc.user").param("value", "test");
    final JMethod jMethod = jClass.method(JMod.PUBLIC, jCodeModel.VOID, "testMethod");
    jMethod.annotate(Test.class);

    buildModel(testFolder.getRoot(), jCodeModel);
    compileModel(testFolder.getRoot());

    final Class<?> cut = loadClass(testFolder.getRoot(), jClass.name());
    final BlockJUnit4ClassRunner runner = new BlockJUnit4ClassRunner(cut);

    final RunListener listener = mock(RunListener.class);
    final RunNotifier notifier = new RunNotifier();
    notifier.addListener(listener);

    // WHEN
    runner.run(notifier);

    // THEN
    final ArgumentCaptor<Description> descriptionCaptor = ArgumentCaptor.forClass(Description.class);
    verify(listener).testStarted(descriptionCaptor.capture());
    assertThat(descriptionCaptor.getValue().getClassName(), equalTo("ClassUnderTest"));
    assertThat(descriptionCaptor.getValue().getMethodName(), equalTo("testMethod"));

    verify(listener).testFinished(descriptionCaptor.capture());
    assertThat(descriptionCaptor.getValue().getClassName(), equalTo("ClassUnderTest"));
    assertThat(descriptionCaptor.getValue().getMethodName(), equalTo("testMethod"));
}
项目:jpa-unit    文件:JpaUnitRunnerTest.java   
@Test
public void testClassWithPersistenceContextWithWithOverwrittenConfiguration() throws Exception {
    // GIVEN
    final JCodeModel jCodeModel = new JCodeModel();
    final JPackage jp = jCodeModel.rootPackage();
    final JDefinedClass jClass = jp._class(JMod.PUBLIC, "ClassUnderTest");
    final JAnnotationUse jAnnotationUse = jClass.annotate(RunWith.class);
    jAnnotationUse.param("value", JpaUnitRunner.class);
    final JFieldVar emField = jClass.field(JMod.PRIVATE, EntityManager.class, "em");
    final JAnnotationUse jAnnotation = emField.annotate(PersistenceContext.class);
    jAnnotation.param("unitName", "test-unit-1");
    final JAnnotationArrayMember propArray = jAnnotation.paramArray("properties");
    propArray.annotate(PersistenceProperty.class).param("name", "javax.persistence.jdbc.url").param("value",
            "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1");
    propArray.annotate(PersistenceProperty.class).param("name", "javax.persistence.jdbc.driver").param("value", "org.h2.Driver");
    propArray.annotate(PersistenceProperty.class).param("name", "javax.persistence.jdbc.password").param("value", "test");
    propArray.annotate(PersistenceProperty.class).param("name", "javax.persistence.jdbc.user").param("value", "test");
    final JMethod jMethod = jClass.method(JMod.PUBLIC, jCodeModel.VOID, "testMethod");
    jMethod.annotate(Test.class);

    buildModel(testFolder.getRoot(), jCodeModel);
    compileModel(testFolder.getRoot());

    final Class<?> cut = loadClass(testFolder.getRoot(), jClass.name());
    final JpaUnitRunner runner = new JpaUnitRunner(cut);

    final RunListener listener = mock(RunListener.class);
    final RunNotifier notifier = new RunNotifier();
    notifier.addListener(listener);

    // WHEN
    runner.run(notifier);

    // THEN
    final ArgumentCaptor<Description> descriptionCaptor = ArgumentCaptor.forClass(Description.class);
    verify(listener).testStarted(descriptionCaptor.capture());
    assertThat(descriptionCaptor.getValue().getClassName(), equalTo("ClassUnderTest"));
    assertThat(descriptionCaptor.getValue().getMethodName(), equalTo("testMethod"));

    verify(listener).testFinished(descriptionCaptor.capture());
    assertThat(descriptionCaptor.getValue().getClassName(), equalTo("ClassUnderTest"));
    assertThat(descriptionCaptor.getValue().getMethodName(), equalTo("testMethod"));
}
项目:tapestry-jpa-transactions    文件:PersistenceContextImpl.java   
@Override
public PersistenceProperty[] properties()
{
    return new PersistenceProperty[0];
}
项目:javaee-samples    文件:WithTableGeneratorTest.java   
@Test
@PersistenceContext(unitName = "table-generator-pu", properties = {
        @PersistenceProperty(name = "hibernate.id.new_generator_mappings", value = "true")/*,
        @PersistenceProperty(name = "hibernate.id.optimizer.pooled.prefer_lo", value = "false")*/
})
public void test() throws Exception {
    nextInsert();
    BigInteger id = nextSequenceId();
    BigInteger aid = approximatedSequenceId();
    assertThat(aid, is(id));
    nextInsert();
    id = nextSequenceId();
    aid = approximatedSequenceId();
    assertThat(aid, is(id));
    nextInsert();
    id = nextSequenceId();
    aid = approximatedSequenceId();
    assertThat(aid, is(id));

    nextInsert();
    id = nextSequenceId();
    aid = approximatedSequenceId();
    assertThat(aid, is(id));
    nextInsert();
    id = nextSequenceId();
    aid = approximatedSequenceId();
    assertThat(aid, is(id));
    nextInsert();
    id = nextSequenceId();
    aid = approximatedSequenceId();
    assertThat(aid, is(id));

    nextInsert();
    id = nextSequenceId();
    aid = approximatedSequenceId();
    assertThat(aid, is(id));
    nextInsert();
    id = nextSequenceId();
    aid = approximatedSequenceId();
    assertThat(aid, is(id));
    nextInsert();
    id = nextSequenceId();
    aid = approximatedSequenceId();
    assertThat(aid, is(id));

    nextInsert();
    id = nextSequenceId();
    aid = approximatedSequenceId();
    assertThat(aid, is(id));
    nextInsert();
    id = nextSequenceId();
    aid = approximatedSequenceId();
    assertThat(aid, is(id));
    nextInsert();
    id = nextSequenceId();
    aid = approximatedSequenceId();
    assertThat(aid, is(id));

    nextInsert();
    id = nextSequenceId();
    aid = approximatedSequenceId();
    assertThat(aid, is(id));
    nextInsert();
    id = nextSequenceId();
    aid = approximatedSequenceId();
    assertThat(aid, is(id));
    nextInsert();
    id = nextSequenceId();
    aid = approximatedSequenceId();
    assertThat(aid, is(id));
}
项目:tomee    文件:PersistenceContextAnnFactoryTest.java   
@PersistenceContext(name = "method", unitName = "mu", type = PersistenceContextType.EXTENDED, properties = {
    @PersistenceProperty(name = "method1", value = "m1"),
    @PersistenceProperty(name = "method2", value = "m2")
})
public void method() {
}
项目:tomee    文件:PersistenceContextAnnFactoryTest.java   
@PersistenceContext(unitName = "mymu", type = PersistenceContextType.EXTENDED, properties = {
    @PersistenceProperty(name = "myMethod1", value = "mym1"),
    @PersistenceProperty(name = "myMethod2", value = "mym2")
})
public void setMyMethod() {
}