Java 类org.springframework.jdbc.datasource.lookup.MapDataSourceLookup 实例源码

项目:spring4-understanding    文件:PersistenceXmlParsingTests.java   
@Test
public void testExampleComplex() throws Exception {
    DataSource ds = new DriverManagerDataSource();

    String resource = "/org/springframework/orm/jpa/persistence-complex.xml";
    MapDataSourceLookup dataSourceLookup = new MapDataSourceLookup();
    Map<String, DataSource> dataSources = new HashMap<String, DataSource>();
    dataSources.put("jdbc/MyPartDB", ds);
    dataSources.put("jdbc/MyDB", ds);
    dataSourceLookup.setDataSources(dataSources);
    PersistenceUnitReader reader = new PersistenceUnitReader(
            new PathMatchingResourcePatternResolver(), dataSourceLookup);
    PersistenceUnitInfo[] info = reader.readPersistenceUnitInfos(resource);

    assertEquals(2, info.length);

    PersistenceUnitInfo pu1 = info[0];

    assertEquals("pu1", pu1.getPersistenceUnitName());

    assertEquals("com.acme.AcmePersistence", pu1.getPersistenceProviderClassName());

    assertEquals(1, pu1.getMappingFileNames().size());
    assertEquals("ormap2.xml", pu1.getMappingFileNames().get(0));

    assertEquals(1, pu1.getJarFileUrls().size());
    assertEquals(new ClassPathResource("order.jar").getURL(), pu1.getJarFileUrls().get(0));

    assertFalse(pu1.excludeUnlistedClasses());

    assertSame(PersistenceUnitTransactionType.RESOURCE_LOCAL, pu1.getTransactionType());

    Properties props = pu1.getProperties();
    assertEquals(2, props.keySet().size());
    assertEquals("on", props.getProperty("com.acme.persistence.sql-logging"));
    assertEquals("bar", props.getProperty("foo"));

    assertNull(pu1.getNonJtaDataSource());

    assertSame(ds, pu1.getJtaDataSource());

    assertFalse("Exclude unlisted should default false in 1.0.", pu1.excludeUnlistedClasses());

    PersistenceUnitInfo pu2 = info[1];

    assertSame(PersistenceUnitTransactionType.JTA, pu2.getTransactionType());
    assertEquals("com.acme.AcmePersistence", pu2.getPersistenceProviderClassName());

    assertEquals(1, pu2.getMappingFileNames().size());
    assertEquals("order2.xml", pu2.getMappingFileNames().get(0));

    // the following assertions fail only during coverage runs
    // assertEquals(1, pu2.getJarFileUrls().size());
    // assertEquals(new ClassPathResource("order-supplemental.jar").getURL(), pu2.getJarFileUrls().get(0));

    assertTrue(pu2.excludeUnlistedClasses());

    assertNull(pu2.getJtaDataSource());
    assertEquals(ds, pu2.getNonJtaDataSource());

    assertTrue("Exclude unlisted should be true when no value.", pu2.excludeUnlistedClasses());
}
项目:class-guard    文件:PersistenceXmlParsingTests.java   
@Test
public void testExampleComplex() throws Exception {
    DataSource ds = new DriverManagerDataSource();

    String resource = "/org/springframework/orm/jpa/persistence-complex.xml";
    MapDataSourceLookup dataSourceLookup = new MapDataSourceLookup();
    Map<String, DataSource> dataSources = new HashMap<String, DataSource>();
    dataSources.put("jdbc/MyPartDB", ds);
    dataSources.put("jdbc/MyDB", ds);
    dataSourceLookup.setDataSources(dataSources);
    PersistenceUnitReader reader = new PersistenceUnitReader(
            new PathMatchingResourcePatternResolver(), dataSourceLookup);
    PersistenceUnitInfo[] info = reader.readPersistenceUnitInfos(resource);

    assertEquals(2, info.length);

    PersistenceUnitInfo pu1 = info[0];

    assertEquals("pu1", pu1.getPersistenceUnitName());

    assertEquals("com.acme.AcmePersistence", pu1.getPersistenceProviderClassName());

    assertEquals(1, pu1.getMappingFileNames().size());
    assertEquals("ormap2.xml", pu1.getMappingFileNames().get(0));

    assertEquals(1, pu1.getJarFileUrls().size());
    assertEquals(new ClassPathResource("order.jar").getURL(), pu1.getJarFileUrls().get(0));

    assertFalse(pu1.excludeUnlistedClasses());

    assertSame(PersistenceUnitTransactionType.RESOURCE_LOCAL, pu1.getTransactionType());

    Properties props = pu1.getProperties();
    assertEquals(2, props.keySet().size());
    assertEquals("on", props.getProperty("com.acme.persistence.sql-logging"));
    assertEquals("bar", props.getProperty("foo"));

    assertNull(pu1.getNonJtaDataSource());

    assertSame(ds, pu1.getJtaDataSource());

    assertFalse("Exclude unlisted should default false in 1.0.", pu1.excludeUnlistedClasses());

    PersistenceUnitInfo pu2 = info[1];

    assertSame(PersistenceUnitTransactionType.JTA, pu2.getTransactionType());
    assertEquals("com.acme.AcmePersistence", pu2.getPersistenceProviderClassName());

    assertEquals(1, pu2.getMappingFileNames().size());
    assertEquals("order2.xml", pu2.getMappingFileNames().get(0));

    // the following assertions fail only during coverage runs
    // assertEquals(1, pu2.getJarFileUrls().size());
    // assertEquals(new ClassPathResource("order-supplemental.jar").getURL(), pu2.getJarFileUrls().get(0));

    assertTrue(pu2.excludeUnlistedClasses());

    assertNull(pu2.getJtaDataSource());
    assertEquals(ds, pu2.getNonJtaDataSource());

    assertTrue("Exclude unlisted should be true when no value.", pu2.excludeUnlistedClasses());
}
项目:lams    文件:DefaultPersistenceUnitManager.java   
/**
 * Specify the JDBC DataSources that the JPA persistence provider is supposed
 * to use for accessing the database, resolving data source names in
 * {@code persistence.xml} against Spring-managed DataSources.
 * <p>The specified Map needs to define data source names for specific DataSource
 * objects, matching the data source names used in {@code persistence.xml}.
 * If not specified, data source names will be resolved as JNDI names instead
 * (as defined by standard JPA).
 * @see org.springframework.jdbc.datasource.lookup.MapDataSourceLookup
 */
public void setDataSources(Map<String, DataSource> dataSources) {
    this.dataSourceLookup = new MapDataSourceLookup(dataSources);
}
项目:spring4-understanding    文件:DefaultPersistenceUnitManager.java   
/**
 * Specify the JDBC DataSources that the JPA persistence provider is supposed
 * to use for accessing the database, resolving data source names in
 * {@code persistence.xml} against Spring-managed DataSources.
 * <p>The specified Map needs to define data source names for specific DataSource
 * objects, matching the data source names used in {@code persistence.xml}.
 * If not specified, data source names will be resolved as JNDI names instead
 * (as defined by standard JPA).
 * @see org.springframework.jdbc.datasource.lookup.MapDataSourceLookup
 */
public void setDataSources(Map<String, DataSource> dataSources) {
    this.dataSourceLookup = new MapDataSourceLookup(dataSources);
}
项目:class-guard    文件:DefaultPersistenceUnitManager.java   
/**
 * Specify the JDBC DataSources that the JPA persistence provider is supposed
 * to use for accessing the database, resolving data source names in
 * {@code persistence.xml} against Spring-managed DataSources.
 * <p>The specified Map needs to define data source names for specific DataSource
 * objects, matching the data source names used in {@code persistence.xml}.
 * If not specified, data source names will be resolved as JNDI names instead
 * (as defined by standard JPA).
 * @see org.springframework.jdbc.datasource.lookup.MapDataSourceLookup
 */
public void setDataSources(Map<String, DataSource> dataSources) {
    this.dataSourceLookup = new MapDataSourceLookup(dataSources);
}