Java 类org.springframework.orm.jpa.persistenceunit.SmartPersistenceUnitInfo 实例源码

项目:metaworks_framework    文件:MergePersistenceUnitManager.java   
private PersistenceUnitInfo createPersistenceUnit(PersistenceUnitInfo mPui) throws IllegalArgumentException, SecurityException {
    InvocationHandler jpa2PersistenceUnitInfoDecorator = null;
    Class<?>[] classes = getClass().getSuperclass().getDeclaredClasses();
    for (Class<?> clz : classes) {
        if ("org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager$Jpa2PersistenceUnitInfoDecorator".equals(clz.getName())) {
            Constructor<?> constructor;
            try {
                constructor = clz.getConstructor(Class.forName("org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo"));
                constructor.setAccessible(true);
                jpa2PersistenceUnitInfoDecorator = (InvocationHandler) constructor.newInstance(mPui);
            } catch (Exception e) {
                throw new IllegalArgumentException(e);
            }
            break;
        }
    }

    PersistenceUnitInfo puiToStore = (PersistenceUnitInfo) Proxy.newProxyInstance(SmartPersistenceUnitInfo.class.getClassLoader(),
            new Class[] { SmartPersistenceUnitInfo.class }, jpa2PersistenceUnitInfoDecorator);
    return puiToStore;
}
项目:SparkCommerce    文件:MergePersistenceUnitManager.java   
private PersistenceUnitInfo createPersistenceUnit(PersistenceUnitInfo mPui) throws IllegalArgumentException, SecurityException {
    InvocationHandler jpa2PersistenceUnitInfoDecorator = null;
    Class<?>[] classes = getClass().getSuperclass().getDeclaredClasses();
    for (Class<?> clz : classes) {
        if ("org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager$Jpa2PersistenceUnitInfoDecorator".equals(clz.getName())) {
            Constructor<?> constructor;
            try {
                constructor = clz.getConstructor(Class.forName("org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo"));
                constructor.setAccessible(true);
                jpa2PersistenceUnitInfoDecorator = (InvocationHandler) constructor.newInstance(mPui);
            } catch (Exception e) {
                throw new IllegalArgumentException(e);
            }
            break;
        }
    }

    PersistenceUnitInfo puiToStore = (PersistenceUnitInfo) Proxy.newProxyInstance(SmartPersistenceUnitInfo.class.getClassLoader(),
            new Class[] { SmartPersistenceUnitInfo.class }, jpa2PersistenceUnitInfoDecorator);
    return puiToStore;
}
项目:eclipselink-maven-plugin    文件:EclipselinkDdlGenerationMojo.java   
public void generateSchema() throws MojoFailureException
{
    final Map<String, Object> cfg = buildCfg();
    String[] allBasePackages = this.getBasePackages();
    getLog().info("Using base packages " + StringUtils.arrayToDelimitedString(allBasePackages, ", "));
    final PersistenceProvider provider = new PersistenceProvider();
    final DefaultPersistenceUnitManager manager = new DefaultPersistenceUnitManager();
    manager.setDefaultPersistenceUnitRootLocation(null);
    manager.setDefaultPersistenceUnitName("default");
    manager.setPackagesToScan(allBasePackages);
    manager.setPersistenceXmlLocations(new String[0]);
    manager.afterPropertiesSet();

    final SmartPersistenceUnitInfo puInfo = (SmartPersistenceUnitInfo) manager.obtainDefaultPersistenceUnitInfo();
    puInfo.setPersistenceProviderPackageName(provider.getClass().getName());
    getLog().info("Entities found : " + puInfo.getManagedClassNames().size());
    getLog().debug("Managed class names:\n    * " + StringUtils.collectionToDelimitedString(puInfo.getManagedClassNames(), "\n    * "));
    puInfo.getProperties().putAll(cfg);
    provider.generateSchema(new DelegatingPuInfo(puInfo), cfg);
}
项目:spring4-understanding    文件:SpringHibernateEjbPersistenceProvider.java   
@SuppressWarnings("rawtypes")
public EntityManagerFactory createContainerEntityManagerFactory(PersistenceUnitInfo info, Map properties) {
    Ejb3Configuration cfg = new Ejb3Configuration();
    if (info instanceof SmartPersistenceUnitInfo) {
        for (String managedPackage : ((SmartPersistenceUnitInfo) info).getManagedPackages()) {
            cfg.addPackage(managedPackage);
        }
    }
    Ejb3Configuration configured = cfg.configure(info, properties);
    return (configured != null ? configured.buildEntityManagerFactory() : null);
}
项目:spring4-understanding    文件:SpringHibernateJpaPersistenceProvider.java   
@Override
@SuppressWarnings("rawtypes")
public EntityManagerFactory createContainerEntityManagerFactory(PersistenceUnitInfo info, Map properties) {
    final List<String> mergedClassesAndPackages = new ArrayList<String>(info.getManagedClassNames());
    if (info instanceof SmartPersistenceUnitInfo) {
        mergedClassesAndPackages.addAll(((SmartPersistenceUnitInfo) info).getManagedPackages());
    }
    return new EntityManagerFactoryBuilderImpl(
            new PersistenceUnitInfoDescriptor(info) {
                @Override
                public List<String> getManagedClassNames() {
                    return mergedClassesAndPackages;
                }
            }, properties).build();
}
项目:jpa-schema-maven-plugin    文件:JpaSchemaGeneratorMojo.java   
private void generate() throws Exception {
    Map<String, Object> map = JpaSchemaGeneratorUtils.buildProperties(this);
    if (getVendor() == null) {
        // with persistence.xml
        Persistence.generateSchema(this.persistenceUnitName, map);
    } else {
        PersistenceProvider provider = getProviderClass().newInstance();
        List<String> packages = getPackageToScan();
        if (packages.isEmpty()) {
            throw new IllegalArgumentException("packageToScan is required on xml-less mode.");
        }

        DefaultPersistenceUnitManager manager = new DefaultPersistenceUnitManager();
        manager.setDefaultPersistenceUnitName(getPersistenceUnitName());
        manager.setPackagesToScan(packages.toArray(new String[packages.size()]));
        // issue #22
        Field persistenceXmlLocations = manager.getClass().getDeclaredField("persistenceXmlLocations");
        persistenceXmlLocations.setAccessible(true);
        persistenceXmlLocations.set(manager, new String[0]);
        manager.afterPropertiesSet();

        SmartPersistenceUnitInfo info = (SmartPersistenceUnitInfo) manager.obtainDefaultPersistenceUnitInfo();
        info.setPersistenceProviderPackageName(provider.getClass().getName());
        info.getProperties().putAll(map);

        // Path persistenceXml = null;
        /* @formatter:off */
        // if (Vendor.datanucleus.equals(getVendor())) {
        // // datanucleus must need persistence.xml
        // Path path = Paths.get(project.getBuild().getOutputDirectory(), "META-INF");
        // persistenceXml = Files.createTempFile(path, "persistence-", ".xml");
        // try (BufferedWriter writer = Files.newBufferedWriter(persistenceXml, StandardCharsets.UTF_8)) {
        // PrintWriter out = new PrintWriter(writer);
        // out.println("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
        // out.println("<persistence version=\"2.1\"");
        // out.println(" xmlns=\"http://xmlns.jcp.org/xml/ns/persistence\"
        // xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"");
        // out.println(" xsi:schemaLocation=\"http://xmlns.jcp.org/xml/ns/persistence
        // http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/persistence_2_1.xsd\">");
        // out.printf(" <persistence-unit name=\"%s\" transaction-type=\"RESOURCE_LOCAL\">\n",
        // info.getPersistenceUnitName());
        // out.println(" <provider>org.datanucleus.api.jpa.PersistenceProviderImpl</provider>");
        // out.println(" <exclude-unlisted-classes>false</exclude-unlisted-classes>");
        // out.println(" </persistence-unit>");
        // out.println("</persistence>");
        // }
        // map.put(PropertyNames.PROPERTY_PERSISTENCE_XML_FILENAME, persistenceXml.toAbsolutePath().toString());
        // // datanucleus does not support execution order...
        // map.remove(PersistenceUnitProperties.SCHEMA_GENERATION_CREATE_SOURCE);
        // map.remove(PersistenceUnitProperties.SCHEMA_GENERATION_DROP_SOURCE);
        // }
        /* @formatter:on */

        try {
            provider.generateSchema(info, map);
        } finally {
            // if (persistenceXml != null) {
            // Files.delete(persistenceXml);
            // }
        }
    }
}