Java 类javax.persistence.spi.PersistenceProvider 实例源码
项目:trakxmap
文件:DB.java
/**
* fixes the warning (Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb
* .HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.)
*
* must be called before getting the EntityManagerFactory
*/
private static void fixDeprecatedHibernateWarning() {
PersistenceProviderResolverHolder.setPersistenceProviderResolver(new PersistenceProviderResolver() {
private final List<PersistenceProvider> providers_ =
Arrays.asList(new PersistenceProvider[]{new HibernatePersistenceProvider()});
@Override
public List<PersistenceProvider> getPersistenceProviders() {
return providers_;
}
@Override
public void clearCachedProviders() {
}
});
}
项目:incubator-netbeans
文件:PersistenceTestCase.java
@Override
protected void setUp() throws Exception {
super.setUp();
URL persistenceProviderUrl = FileUtil.getArchiveRoot(PersistenceProvider.class.getProtectionDomain().getCodeSource().getLocation());
ProtectionDomain domain = Resource.class.getProtectionDomain();
System.out.println("Protection domain: " + domain);
CodeSource source = domain.getCodeSource();
System.out.println("Code source: " + source);
if (source != null) {
URL location = source.getLocation();
System.out.println("Location: " + location);
URL resourceUrl = FileUtil.getArchiveRoot(location);
addCompileRoots(Arrays.asList(persistenceProviderUrl, resourceUrl));
} else {
addCompileRoots(Arrays.asList(persistenceProviderUrl));
}
}
项目:testee.fi
文件:JpaInjectionServicesImpl.java
private synchronized EntityManager getEntityManager(final PersistenceUnitInfo unit) {
if (entityManagers.containsKey(unit.getPersistenceUnitName())) {
return entityManagers.get(unit.getPersistenceUnitName());
}
final String providerClassName = unit.getPersistenceProviderClassName();
try {
final PersistenceProvider provider = (PersistenceProvider) Class.forName(providerClassName).newInstance();
final EntityManagerFactory emf = provider.createContainerEntityManagerFactory(unit, new HashMap());
final EntityManager entityManager = emf.createEntityManager();
entityManagers.put(unit.getPersistenceUnitName(), entityManager);
entityManager.getTransaction().begin();
return entityManager;
} catch (final IllegalAccessException | InstantiationException | ClassNotFoundException e) {
throw new TestEEfiException("Failed to load persistence provider class " + providerClassName, e);
}
}
项目:aries-jpa
文件:PersistenceProviderTracker.java
private static Filter createFilter(BundleContext context, PersistenceUnit punit) {
String filter;
if (punit.getPersistenceProviderClassName() != null) {
filter = String.format("(&(objectClass=%s)(%s=%s))",
PersistenceProvider.class.getName(),
JAVAX_PERSISTENCE_PROVIDER,
punit.getPersistenceProviderClassName());
} else {
filter = String.format("(objectClass=%s)", PersistenceProvider.class.getName());
}
try {
return context.createFilter(filter);
} catch (InvalidSyntaxException e) {
throw new IllegalArgumentException(e);
}
}
项目:aries-jpa
文件:PersistenceProviderTracker.java
@Override
public StoredPerProvider addingService(ServiceReference<PersistenceProvider> reference) {
String providerName = (String)reference.getProperty(JAVAX_PERSISTENCE_PROVIDER);
// FIXME should be set when creating the EMF was successful
if (punit.getPersistenceProviderClassName() == null) {
punit.setProviderClassName(providerName);
}
StoredPerProvider stored = new StoredPerProvider();
LOGGER.info("Found provider for " + punit.getPersistenceUnitName() + " " + punit.getPersistenceProviderClassName());
PersistenceProvider provider = context.getService(reference);
createAndCloseDummyEMF(provider);
stored.builder = new AriesEntityManagerFactoryBuilder(context, provider, reference.getBundle(), punit);
Dictionary<String, ?> props = AriesEntityManagerFactoryBuilder.createBuilderProperties(punit, punit.getBundle());
stored.reg = context.registerService(EntityManagerFactoryBuilder.class, stored.builder , props);
return stored;
}
项目:aries-jpa
文件:AriesEntityManagerFactoryBuilder.java
private ServiceTracker<?, ?> createDataSourceTracker(PersistenceProvider provider) {
if (usesDataSource()) {
synchronized (this) {
driver = "Pre Configured DataSource";
}
if (!usesDataSourceService()) {
LOGGER.warn("Persistence unit " + persistenceUnit.getPersistenceUnitName() + " refers to a non OSGi service DataSource");
return null;
}
DataSourceTracker dsTracker = new DataSourceTracker(containerContext, this,
DataSourceTracker.getDsName(persistenceUnit));
return dsTracker;
} else if (usesDSF()) {
String jdbcClass = DSFTracker.getDriverName(persistenceUnit);
synchronized (this) {
driver = jdbcClass;
}
DSFTracker dsfTracker = new DSFTracker(containerContext, this,
jdbcClass);
return dsfTracker;
} else {
LOGGER.debug("Persistence unit " + getPUName() + " does not refer a DataSource. "
+"It can only be used with EntityManagerFactoryBuilder.");
return null;
}
}
项目:aries-jpa
文件:Activator.java
private void handlePotentialEclipseLink(Bundle b) {
if (!ECLIPSELINK_JPA_PROVIDER_BUNDLE_SYMBOLIC_NAME.equals(b.getSymbolicName())) {
return;
}
if (registeredProviders.containsKey(b)) {
return;
}
PersistenceProvider provider = createEclipselinkProvider(b);
if (provider == null) {
return;
}
LOG.debug("Adding new EclipseLink provider for bundle {}", b);
PersistenceProvider proxiedProvider = new EclipseLinkPersistenceProvider(provider, b);
Dictionary<String, Object> props = new Hashtable<String, Object>(); // NOSONAR
props.put("org.apache.aries.jpa.container.weaving.packages", getJPAPackages(b));
props.put("javax.persistence.provider", ECLIPSELINK_JPA_PROVIDER_CLASS_NAME);
ServiceRegistration<?> reg = context.registerService(PersistenceProvider.class, proxiedProvider, props);
ServiceRegistration<?> old = registeredProviders.putIfAbsent(b, reg);
if (old != null) {
reg.unregister();
}
}
项目:lams
文件:LocalEntityManagerFactoryBean.java
/**
* Initialize the EntityManagerFactory for the given configuration.
* @throws javax.persistence.PersistenceException in case of JPA initialization errors
*/
@Override
protected EntityManagerFactory createNativeEntityManagerFactory() throws PersistenceException {
if (logger.isInfoEnabled()) {
logger.info("Building JPA EntityManagerFactory for persistence unit '" + getPersistenceUnitName() + "'");
}
PersistenceProvider provider = getPersistenceProvider();
if (provider != null) {
// Create EntityManagerFactory directly through PersistenceProvider.
EntityManagerFactory emf = provider.createEntityManagerFactory(getPersistenceUnitName(), getJpaPropertyMap());
if (emf == null) {
throw new IllegalStateException(
"PersistenceProvider [" + provider + "] did not return an EntityManagerFactory for name '" +
getPersistenceUnitName() + "'");
}
return emf;
}
else {
// Let JPA perform its standard PersistenceProvider autodetection.
return Persistence.createEntityManagerFactory(getPersistenceUnitName(), getJpaPropertyMap());
}
}
项目:spring4-understanding
文件:LocalEntityManagerFactoryBean.java
/**
* Initialize the EntityManagerFactory for the given configuration.
* @throws javax.persistence.PersistenceException in case of JPA initialization errors
*/
@Override
protected EntityManagerFactory createNativeEntityManagerFactory() throws PersistenceException {
if (logger.isInfoEnabled()) {
logger.info("Building JPA EntityManagerFactory for persistence unit '" + getPersistenceUnitName() + "'");
}
PersistenceProvider provider = getPersistenceProvider();
if (provider != null) {
// Create EntityManagerFactory directly through PersistenceProvider.
EntityManagerFactory emf = provider.createEntityManagerFactory(getPersistenceUnitName(), getJpaPropertyMap());
if (emf == null) {
throw new IllegalStateException(
"PersistenceProvider [" + provider + "] did not return an EntityManagerFactory for name '" +
getPersistenceUnitName() + "'");
}
return emf;
}
else {
// Let JPA perform its standard PersistenceProvider autodetection.
return Persistence.createEntityManagerFactory(getPersistenceUnitName(), getJpaPropertyMap());
}
}
项目:jpasecurity
文件:SecurePersistenceProvider.java
@Override
public EntityManagerFactory createContainerEntityManagerFactory(PersistenceUnitInfo unitInfo, Map properties) {
if (properties == null) {
properties = new HashMap<String, Object>();
} else {
properties = new HashMap<String, Object>(properties);
}
PersistenceProvider nativePersistenceProvider = createNativePersistenceProvider(unitInfo, properties);
if (nativePersistenceProvider == null) {
return null;
}
EntityManagerFactory nativeFactory
= nativePersistenceProvider.createContainerEntityManagerFactory(unitInfo, properties);
List<String> ormXmlLocations = new ArrayList<String>(unitInfo.getMappingFileNames());
ormXmlLocations.add(DEFAULT_ORM_XML_LOCATION);
Class<? extends SecurityContext> securityContextType = createSecurityContextType(unitInfo, properties);
Class<? extends AccessRulesProvider> accessRulesProviderType
= createAccessRulesProviderType(unitInfo, properties);
return new SecureEntityManagerFactory(unitInfo.getPersistenceUnitName(),
nativeFactory,
ormXmlLocations,
securityContextType,
accessRulesProviderType);
}
项目:jpasecurity
文件:SecurePersistenceProvider.java
private PersistenceProvider createNativePersistenceProvider(String unitName, Map properties, XmlParser xmlParser) {
String overriddenPersistenceProviderClassName = (String)properties.get(PERSISTENCE_PROVIDER_PROPERTY);
if (isOtherPersistenceProvider(overriddenPersistenceProviderClassName)) {
return null;
}
String persistenceProviderClassName = getPersistenceProviderClassName(unitName, xmlParser);
if (isOtherPersistenceProvider(overriddenPersistenceProviderClassName, persistenceProviderClassName)) {
return null;
}
String nativePersistenceProviderClassName
= getNativePersistenceProviderClassName(unitName,
overriddenPersistenceProviderClassName,
persistenceProviderClassName,
properties,
xmlParser);
properties.put(PERSISTENCE_PROVIDER_PROPERTY, nativePersistenceProviderClassName);
return createNativePersistenceProvider(nativePersistenceProviderClassName);
}
项目:gvnix1
文件:Activator.java
@Override
public void start(BundleContext context) throws Exception {
this.bundleContext = bundleContext;
debugPrintln("Activating ...");
HibernatePersistence persistenceProvider = new HibernatePersistence();
Dictionary<String, String> props = new Hashtable<String, String>();
props.put(JAVAX_PERSISTENCE_PROVIDER_PROP, persistenceProvider
.getClass().getName());
serviceRegistration = context
.registerService(PersistenceProvider.class.getName(),
persistenceProvider, props);
debugPrintln("Service: ".concat(PersistenceProvider.class.getName())
.concat(" registered. Bundle activated."));
}
项目:owsi-core-parent
文件:JpaConfigUtils.java
/**
* Construit un {@link LocalContainerEntityManagerFactoryBean} à partir d'un ensemble d'options usuelles.
*/
public static LocalContainerEntityManagerFactoryBean entityManagerFactory(IJpaConfigurationProvider provider) {
LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
entityManagerFactoryBean.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
entityManagerFactoryBean.setJpaProperties(getJpaProperties(provider));
entityManagerFactoryBean.setDataSource(provider.getDataSource());
entityManagerFactoryBean.setPackagesToScan(getPackagesToScan(provider.getJpaPackageScanProviders()));
PersistenceProvider persistenceProvider = provider.getPersistenceProvider();
if (persistenceProvider != null) {
entityManagerFactoryBean.setPersistenceProvider(persistenceProvider);
}
return entityManagerFactoryBean;
}
项目:javamelody
文件:JpaPersistence.java
/** {@inheritDoc} */
@SuppressWarnings("rawtypes")
@Override
public EntityManagerFactory createContainerEntityManagerFactory(final PersistenceUnitInfo info,
final Map map) {
initJpaCounter();
final PersistenceProvider persistenceProvider = findDelegate(map);
// on surcharge PersistenceUnitInfo.getPersistenceProviderClassName()
// pour retourner le PersistenceProvider délégué et pas nous même
final PersistenceUnitInfo proxiedInfo = createPersistentUnitInfoProxy(info,
persistenceProvider);
final EntityManagerFactory entityManagerFactory = persistenceProvider
.createContainerEntityManagerFactory(proxiedInfo, map);
if (entityManagerFactory == null) {
return null;
}
return JpaWrapper.createEntityManagerFactoryProxy(entityManagerFactory);
}
项目:javamelody
文件:JpaPersistence.java
private void guessDelegate() {
// https://issues.apache.org/jira/browse/SIRONA-44
// https://github.com/javamelody/javamelody/issues/460
final List<PersistenceProvider> persistenceProviders = PersistenceProviderResolverHolder
.getPersistenceProviderResolver().getPersistenceProviders();
for (final PersistenceProvider persistenceProvider : persistenceProviders) {
if (!getClass().isInstance(persistenceProvider)) {
delegate = persistenceProvider;
break;
}
}
if (delegate == null) {
for (final String provider : PROVIDERS) {
try {
delegate = newPersistence(provider);
break;
} catch (final Throwable th2) { // NOPMD
continue;
}
}
if (delegate == null) {
throw new IllegalStateException(
new ClassNotFoundException("Can't find a delegate"));
}
}
}
项目:osgi.ee
文件:JpaBundleChangeListener.java
private void create(Bundle bundle, Context context) {
Map.Entry<String, PersistenceProvider> pp = provider.get(context.definition.provider);
// Do the registration of the service asynchronously. Since it may imply all kinds of
// listening actions performed as a result of it, it may block the bundle handling.
// However, indicate that we are in the process of the actions by
// setting the used provider.
context.usedProvider = pp.getKey();
new Thread(() -> {
synchronized (context) {
if (context.usedProvider != null) {
PersistenceUnitInfo info = PersistenceUnitProcessor.getPersistenceUnitInfo(bundle,
context.definition, pp.getValue());
context.factory = PersistenceUnitProcessor.createFactory(pp.getValue(), info);
Hashtable<String, Object> props = new Hashtable<>();
props.put(EntityManagerFactoryBuilder.JPA_UNIT_NAME, context.definition.name);
props.put(PersistenceUnitTransactionType.class.getName(), info.getTransactionType().name());
context.registration = bundle.getBundleContext().registerService(
EntityManagerFactory.class, context.factory, props);
}
}
}).start();
}
项目:class-guard
文件:LocalEntityManagerFactoryBean.java
/**
* Initialize the EntityManagerFactory for the given configuration.
* @throws javax.persistence.PersistenceException in case of JPA initialization errors
*/
@Override
protected EntityManagerFactory createNativeEntityManagerFactory() throws PersistenceException {
if (logger.isInfoEnabled()) {
logger.info("Building JPA EntityManagerFactory for persistence unit '" + getPersistenceUnitName() + "'");
}
PersistenceProvider provider = getPersistenceProvider();
if (provider != null) {
// Create EntityManagerFactory directly through PersistenceProvider.
EntityManagerFactory emf = provider.createEntityManagerFactory(getPersistenceUnitName(), getJpaPropertyMap());
if (emf == null) {
throw new IllegalStateException(
"PersistenceProvider [" + provider + "] did not return an EntityManagerFactory for name '" +
getPersistenceUnitName() + "'");
}
return emf;
}
else {
// Let JPA perform its standard PersistenceProvider autodetection.
return Persistence.createEntityManagerFactory(getPersistenceUnitName(), getJpaPropertyMap());
}
}
项目:hibhik
文件:CustomPersistence.java
public static EntityManagerFactory createEntityManagerFactory(String persistenceUnitName, Map properties) {
EntityManagerFactory emf = null;
List<PersistenceProvider> providers = getProviders();
PersistenceProvider defaultProvider = null;
for (PersistenceProvider provider : providers) {
if (provider instanceof HibernatePersistence) {
defaultProvider = provider;
continue;
}
emf = provider.createEntityManagerFactory(persistenceUnitName, properties);
if (emf != null) {
break;
}
}
if (emf == null && defaultProvider != null)
emf = defaultProvider.createEntityManagerFactory( persistenceUnitName, properties );
if ( emf == null ) {
throw new PersistenceException( "No Persistence provider for EntityManager named " + persistenceUnitName );
}
return emf;
}
项目:bundles
文件:PersistenceUnitInfoImpl.java
@Override
public URL getPersistenceUnitRootUrl() {
//
// Check if we have an override
//
PersistenceProvider pp = sourceBundle.bridge.persistenceProvider;
if (pp instanceof JPABridgePersistenceProvider) {
URL rootUrl = ((JPABridgePersistenceProvider) pp).getRootUrl(sourceBundle.bundle, location);
return rootUrl;
}
//
// Make one that is OSGi based
//
String loc = location;
int n = loc.lastIndexOf('/');
if (n > 0) {
loc = loc.substring(0, n);
}
if (loc.isEmpty())
loc = "/";
return sourceBundle.bundle.getResource(loc);
}
项目:aries-jpa
文件:PersistenceProviderTracker.java
/**
* Create and close a dummy EMF to give the PersistenceProvider a chance to call
* punit.addTransformer(). This has to occur as early as possible as weaving needs
* to be done before the first entity class is loaded. So we can not wait till the
* real DataSource is found.
*/
private void createAndCloseDummyEMF(PersistenceProvider provider) {
DataSource dummyDataSource = new DummyDataSource();
punit.setJtaDataSource(dummyDataSource);
punit.setNonJtaDataSource(dummyDataSource);
try {
EntityManagerFactory emf = provider.createContainerEntityManagerFactory(punit, null);
emf.close();
} catch (Exception e) {
LOGGER.debug("Error while creating the Dummy EntityManagerFactory to allow weaving.", e);
}
punit.setJtaDataSource(null);
punit.setNonJtaDataSource(null);
}
项目:aries-jpa
文件:PersistenceProviderTracker.java
@Override
public void removedService(ServiceReference<PersistenceProvider> reference, StoredPerProvider stored) {
LOGGER.info("Lost provider for " + punit.getPersistenceUnitName() + " " + punit.getPersistenceProviderClassName());
try {
stored.reg.unregister();
} catch (Exception e) {
LOGGER.debug("An exception occurred unregistering a persistence unit {}", stored.builder.getPUName());
}
if (stored.builder != null) {
stored.builder.close();
}
super.removedService(reference, stored);
}
项目:aries-jpa
文件:AriesEntityManagerFactoryBuilder.java
public AriesEntityManagerFactoryBuilder(BundleContext containerContext, PersistenceProvider provider, Bundle providerBundle, PersistenceUnit persistenceUnit) {
this.provider = provider;
this.providerBundle = providerBundle;
this.persistenceUnit = persistenceUnit;
this.containerContext = containerContext;
this.originalTxType = persistenceUnit.getTransactionType();
this.bundle = persistenceUnit.getBundle();
this.driver = persistenceUnit.getProperties().getProperty(JAVAX_PERSISTENCE_JDBC_DRIVER);
this.tracker = createDataSourceTracker(provider);
// This must be done separately to avoid an immediate callback seeing the wrong state
if(this.tracker != null) {
this.tracker.open();
}
registerManagedService(containerContext, persistenceUnit);
}
项目:aries-jpa
文件:Activator.java
@SuppressWarnings("unchecked")
private static PersistenceProvider createEclipselinkProvider(Bundle b) {
try {
Class<? extends PersistenceProvider> providerClass = (Class<? extends PersistenceProvider>)b.loadClass(Activator.ECLIPSELINK_JPA_PROVIDER_CLASS_NAME);
Constructor<? extends PersistenceProvider> con = providerClass.getConstructor();
return con.newInstance();
} catch (Exception e) {
LOG.debug("Unable to load EclipseLink provider class. Ignoring bundle " + b.getSymbolicName(), e);
return null;
}
}
项目:aries-jpa
文件:AriesJPASpecActivator.java
@Override
public void start(BundleContext context) throws Exception {
emfResolver = new EMFBuilderServiceResolver(context);
tracker = new ServiceTracker<PersistenceProvider, PersistenceProvider>(context,
PersistenceProvider.class, null);
tracker.open();
PersistenceProviderResolverHolder.setPersistenceProviderResolver(this);
}
项目:aries-jpa
文件:AriesJPASpecActivator.java
@Override
public List<PersistenceProvider> getPersistenceProviders() {
Collection<PersistenceProvider> services = tracker.getTracked().values();
List<PersistenceProvider> providers = new ArrayList<PersistenceProvider>(services.size() + 1);
providers.add(emfResolver);
providers.addAll(services);
return providers;
}
项目:aries-jpa
文件:AriesJPASpecActivator.java
@Override
public void start(BundleContext context) throws Exception {
emfResolver = new EMFBuilderServiceResolver(context);
tracker = new ServiceTracker<PersistenceProvider, PersistenceProvider>(context,
PersistenceProvider.class, null);
tracker.open();
PersistenceProviderResolverHolder.setPersistenceProviderResolver(this);
}
项目:aries-jpa
文件:AriesJPASpecActivator.java
@Override
public List<PersistenceProvider> getPersistenceProviders() {
Collection<PersistenceProvider> services = tracker.getTracked().values();
List<PersistenceProvider> providers = new ArrayList<PersistenceProvider>(services.size() + 1);
providers.add(emfResolver);
providers.addAll(services);
return providers;
}
项目:vertx-jpa
文件:HibernateEntityManagerFactoryProvider.java
@Override
public Future<EntityManagerFactory> getEntityManagerFactory(String datasourceName) {
Properties properties = createProperties();
PersistenceProvider provider = new HibernatePersistenceProvider();
SmartPersistanceUnitInfo persistenceUnitInfo = new DefaultPersistenceUnitInfoImpl(datasourceName);
persistenceUnitInfo.setProperties(properties);
// Using RESOURCE_LOCAL for manage transactions on DAO side.
persistenceUnitInfo.setTransactionType(PersistenceUnitTransactionType.RESOURCE_LOCAL);
Map<Object, Object> configuration = new HashMap<>();
properties.entrySet().stream().forEach(e -> configuration.put(e.getKey(), e.getValue()));
synchronized (vertx) {
Future<EntityManagerFactory> future = Future.future();
vertx.executeBlocking(f1 -> {
config.getJsonArray("annotated_classes", new JsonArray()).stream()
.forEach(p -> scanAnnotatedClasses(p.toString(), persistenceUnitInfo));
EntityManagerFactory emf = provider.createContainerEntityManagerFactory(persistenceUnitInfo, configuration);
future.complete(emf);
}, future.completer());
return future;
}
}
项目:unitils
文件:HibernateJpaProviderSupport.java
public Object getProviderSpecificConfigurationObject(
PersistenceProvider persistenceProvider) {
if (!(persistenceProvider instanceof UnitilsHibernatePersistenceProvider)) {
throw new UnitilsException("Make sure that the persistence provider that is used is an instance of " + UnitilsHibernatePersistenceProvider.class.getSimpleName());
}
UnitilsHibernatePersistenceProvider hibernatePersistenceProvider = (UnitilsHibernatePersistenceProvider) persistenceProvider;
return hibernatePersistenceProvider.getHibernateConfiguration();
}
项目:base
文件:EmfUtil.java
public EntityManagerFactory getEmf()
{
Bundle thisBundle = FrameworkUtil.getBundle( EmfUtil.class );
BundleContext context = thisBundle.getBundleContext();
ServiceReference[] refs = null;
try
{
refs = context.getServiceReferences( EntityManagerFactory.class.getName(),
"(osgi.unit.name=pluginsPUnit)" );
}
catch ( Exception isEx )
{
throw new IllegalStateException( "Filter error", isEx );
}
if ( refs != null )
{
emf = ( EntityManagerFactory ) context.getService( refs[0] );
}
if ( emf == null )
{
ServiceReference serviceReference = context.getServiceReference( PersistenceProvider.class.getName() );
PersistenceProvider persistenceProvider = ( PersistenceProvider ) context.getService( serviceReference );
emf = persistenceProvider.createEntityManagerFactory( "pluginsPUnit", null );
}
return emf;
}
项目:cibet
文件:Provider.java
private Map<String, String> createPersistenceProviderProperty(Map<String, String> properties,
PersistenceProvider persistenceProvider) {
if (properties == null) {
return Collections.singletonMap(PERSISTENCE_PROVIDER_PROPERTY, persistenceProvider.getClass().getName());
} else {
properties = new HashMap<String, String>(properties);
properties.put(PERSISTENCE_PROVIDER_PROPERTY, persistenceProvider.getClass().getName());
return properties;
}
}
项目:jpasecurity
文件:SecurePersistenceProvider.java
public void generateSchema(PersistenceUnitInfo unitInfo, Map properties) {
if (properties == null) {
properties = new HashMap();
} else {
properties = new HashMap<String, Object>(properties);
}
PersistenceProvider nativePersistenceProvider = createNativePersistenceProvider(unitInfo, properties);
if (nativePersistenceProvider == null) {
return;
}
nativePersistenceProvider.generateSchema(unitInfo, properties);
}
项目:jpasecurity
文件:SecurePersistenceProvider.java
public boolean generateSchema(String unitName, Map properties) {
if (properties == null) {
properties = new HashMap();
} else {
properties = new HashMap<String, Object>(properties);
}
PersistenceProvider nativePersistenceProvider = createNativePersistenceProvider(unitName, properties);
if (nativePersistenceProvider == null) {
return false;
}
return nativePersistenceProvider.generateSchema(unitName, properties);
}
项目:jpasecurity
文件:SecurePersistenceProvider.java
private PersistenceProvider createNativePersistenceProvider(PersistenceUnitInfo persistenceUnitInfo,
Map properties) {
String overriddenPersistenceProviderClassName = (String)properties.get(PERSISTENCE_PROVIDER_PROPERTY);
if (isOtherPersistenceProvider(overriddenPersistenceProviderClassName)) {
return null;
}
String persistenceProviderClassName = persistenceUnitInfo.getPersistenceProviderClassName();
if (isOtherPersistenceProvider(overriddenPersistenceProviderClassName, persistenceProviderClassName)) {
return null;
}
String nativePersistenceProviderClassName
= getNativePersistenceProviderClassName(persistenceUnitInfo,
overriddenPersistenceProviderClassName,
properties);
try {
if (nativePersistenceProviderClassName == null
|| nativePersistenceProviderClassName.equals(SecurePersistenceProvider.class.getName())) {
throw new PersistenceException(
"No persistence provider specified for " + SecureEntityManagerFactory.class.getName() + ". "
+ "Specify its class name via property \"" + NATIVE_PERSISTENCE_PROVIDER_PROPERTY + "\"");
}
Class<?> persistenceProviderClass
= getClassLoader(persistenceUnitInfo).loadClass(nativePersistenceProviderClassName);
properties.put(PERSISTENCE_PROVIDER_PROPERTY, nativePersistenceProviderClassName);
return (PersistenceProvider)persistenceProviderClass.newInstance();
} catch (ReflectiveOperationException e) {
throw new PersistenceException(e);
}
}
项目:jpasecurity
文件:SecurePersistenceProvider.java
private PersistenceProvider createNativePersistenceProvider(String unitName, Map properties) {
try {
Enumeration<URL> persistenceXmls
= Thread.currentThread().getContextClassLoader().getResources("META-INF/persistence.xml");
XmlParser parser = new XmlParser(Collections.list(persistenceXmls));
return createNativePersistenceProvider(unitName, properties, parser);
} catch (Exception e) {
LOG.log(Level.WARNING, "Could not initialize xml parser", e);
return null;
}
}
项目:jpasecurity
文件:SecurePersistenceProvider.java
private PersistenceProvider createNativePersistenceProvider(String persistenceProviderClassName) {
try {
if (persistenceProviderClassName == null
|| persistenceProviderClassName.equals(SecurePersistenceProvider.class.getName())) {
throw new PersistenceException(
"No persistence provider specified for " + SecureEntityManagerFactory.class.getName() + ". "
+ "Specify its class name via property \"" + NATIVE_PERSISTENCE_PROVIDER_PROPERTY + "\"");
}
Class<?> persistenceProviderClass
= Thread.currentThread().getContextClassLoader().loadClass(persistenceProviderClassName);
return (PersistenceProvider)persistenceProviderClass.newInstance();
} catch (ReflectiveOperationException e) {
throw new PersistenceException(e);
}
}
项目:javamelody
文件:JpaPersistence.java
/** {@inheritDoc} */
@SuppressWarnings("rawtypes")
@Override
public EntityManagerFactory createEntityManagerFactory(final String unit, final Map map) {
initJpaCounter();
final PersistenceProvider persistenceProvider = findDelegate(map);
final ClassLoader tccl = tccl();
final ClassLoader hack = AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() { // pour findbugs
/** {@inheritDoc} */
@Override
public ClassLoader run() {
return new JpaOverridePersistenceXmlClassLoader(tccl,
persistenceProvider.getClass().getName());
}
});
Thread.currentThread().setContextClassLoader(hack);
try {
final EntityManagerFactory entityManagerFactory = persistenceProvider
.createEntityManagerFactory(unit, map);
if (entityManagerFactory == null) {
return null;
}
return JpaWrapper.createEntityManagerFactoryProxy(entityManagerFactory);
} finally {
Thread.currentThread().setContextClassLoader(tccl);
}
}
项目:javamelody
文件:JpaPersistence.java
/** {@inheritDoc} */
@SuppressWarnings("rawtypes")
@Override
public void generateSchema(final PersistenceUnitInfo info, final Map map) {
final PersistenceProvider persistenceProvider = findDelegate(map);
persistenceProvider.generateSchema(info, map);
}
项目:javamelody
文件:JpaPersistence.java
/** {@inheritDoc} */
@SuppressWarnings("rawtypes")
@Override
public boolean generateSchema(final String persistenceUnitName, final Map map) {
final PersistenceProvider persistenceProvider = findDelegate(map);
return persistenceProvider.generateSchema(persistenceUnitName, map);
}
项目:javamelody
文件:TestJpa.java
/**
* Test de JpaPersistence.
*/
@Test
public void testJpaPersistence() {
final PersistenceProvider jpaPersistence = getJpaPersistence();
final ProviderUtil providerUtil = jpaPersistence.getProviderUtil();
assertNotNull("getProviderUtil", providerUtil);
// providerUtil == JpaPersistence.DUMMY_PROVIDER_UTIL
providerUtil.isLoadedWithoutReference(null, null);
providerUtil.isLoadedWithReference(null, null);
providerUtil.isLoaded(null);
}