public synchronized EntityManagerFactory resolve(String unitName, PersistenceOverrides overrides, ClassLoader classLoader) throws Fabric3Exception { EntityManagerFactory resolvedEmf = cache.get(unitName); if (resolvedEmf != null) { return resolvedEmf; } EntityManagerFactory factory = createEntityManagerFactory(overrides, classLoader); URI key; if (classLoader instanceof MultiParentClassLoader) { key = ((MultiParentClassLoader) classLoader).getName(); } else { key = Names.HOST_CONTRIBUTION; } cache.put(key, unitName, factory); return factory; }
private void remove(String unitName) { if (managementService == null) { // management not enabled return; } try { managementService.remove(encodeName(unitName), "Hibernate"); } catch (Fabric3Exception e) { monitor.error(unitName, e); } }
private DataSource getDataSource(XMLStreamReader reader) throws PersistenceUnitException { try { String dataSourceName = reader.getElementText(); DataSource dataSource = registry.getDataSource(dataSourceName); if (dataSource == null) { throw new PersistenceUnitException("DataSource not found: " + dataSourceName); } return dataSource; } catch (XMLStreamException e) { throw new PersistenceUnitException(e); } }
public void onUndeploy(ClassLoader classLoader) { URI key; if (classLoader instanceof MultiParentClassLoader) { key = ((MultiParentClassLoader) classLoader).getName(); } else { key = Names.BOOT_CONTRIBUTION; } Set<String> names = contributionCache.remove(key); if (names != null) { for (String name : names) { EntityManagerFactory factory = cache.remove(name); factory.close(); remove(name); } } }
public void put(URI uri, String unitName, EntityManagerFactory factory) throws Fabric3Exception { if (factory == null) { throw new IllegalArgumentException("EntityManagerFactory was null"); } cache.put(unitName, factory); Set<String> names = contributionCache.get(uri); if (names == null) { names = new HashSet<>(); contributionCache.put(uri, names); } names.add(unitName); export(unitName, factory); }
private void parseProperties(Fabric3PersistenceUnitInfo info, XMLStreamReader reader) throws XMLStreamException { while (true) { int event = reader.next(); switch (event) { case START_ELEMENT: if ("property".equals(reader.getName().getLocalPart())) { String name = reader.getAttributeValue(null, "name"); String value = reader.getAttributeValue(null, "value"); info.addProperty(name, value); } break; case END_ELEMENT: if ("properties".equals(reader.getName().getLocalPart())) { return; } } } }
public EntityManager getEntityManager(String unitName, HibernateProxy proxy, Transaction transaction) throws Fabric3Exception { // Note this method is thread-safe as a Transaction is only visible to a single thread at time. Key key = new Key(transaction, unitName); EntityManager em = cache.get(key); if (em == null) { // no entity manager for the persistence unit associated with the transaction EntityManagerFactory emf = emfCache.get(unitName); if (emf == null) { throw new Fabric3Exception("No EntityManagerFactory found for persistence unit: " + unitName); } em = emf.createEntityManager(); // don't synchronize on the transaction since it can assume to be bound to a thread at this point registerTransactionScopedSync(proxy, key); cache.put(key, em); } return em; }
private void export(String unitName, EntityManagerFactory factory) throws Fabric3Exception { if (managementService == null) { // management not enabled return; } if (!(factory instanceof HibernateEntityManagerFactory)) { throw new AssertionError("Expected " + HibernateEntityManagerFactory.class.getName() + " but was " + factory.getClass().getName()); } Statistics statistics = ((HibernateEntityManagerFactory) factory).getSessionFactory().getStatistics(); statistics.setStatisticsEnabled(true); managementService.export(encodeName(unitName), "Hibernate", "Hibernate session factory MBeans", statistics); }
public synchronized EntityManagerFactory resolve(String unitName, PersistenceOverrides overrides, ClassLoader classLoader) throws JpaResolutionException { EntityManagerFactory resolvedEmf = cache.get(unitName); if (resolvedEmf != null) { return resolvedEmf; } EntityManagerFactory factory = createEntityManagerFactory(overrides, classLoader); URI key; if (classLoader instanceof MultiParentClassLoader) { key = ((MultiParentClassLoader) classLoader).getName(); } else { key = Names.HOST_CONTRIBUTION; } cache.put(key, unitName, factory); return factory; }
private void remove(String unitName) { if (managementService == null) { // management not enabled return; } try { managementService.remove(encodeName(unitName), "Hibernate"); } catch (Fabric3Exception e) { monitor.error(unitName, e); } }
public void onUninstall(Contribution contribution) { URI uri = contribution.getUri(); ClassLoader classLoader = classLoaderRegistry.getClassLoader(uri); URI key; if (classLoader instanceof MultiParentClassLoader) { key = ((MultiParentClassLoader) classLoader).getNameUri(); } else { key = Names.BOOT_CONTRIBUTION; } Set<String> names = contributionCache.remove(key); if (names != null) { for (String name : names) { EntityManagerFactory factory = cache.remove(name); factory.close(); remove(name); } } }
public void put(URI uri, String unitName, EntityManagerFactory factory) throws JpaResolutionException { if (factory == null) { throw new IllegalArgumentException("EntityManagerFactory was null"); } cache.put(unitName, factory); Set<String> names = contributionCache.get(uri); if (names == null) { names = new HashSet<String>(); contributionCache.put(uri, names); } names.add(unitName); export(unitName, factory); }
private void parseProperties(Fabric3PersistenceUnitInfo info, XMLStreamReader reader) throws XMLStreamException { while (true) { int event = reader.next(); switch (event) { case START_ELEMENT: if ("property".equals(reader.getName().getLocalPart())) { String name = reader.getAttributeValue(null, "name"); String value = reader.getAttributeValue(null, "value"); info.addProperty(name, value); } break; case END_ELEMENT: if ("properties".equals(reader.getName().getLocalPart())) { return; } } } }
public EntityManager getEntityManager(String unitName, HibernateProxy proxy, Transaction transaction) throws EntityManagerCreationException { // Note this method is thread-safe as a Transaction is only visible to a single thread at time. Key key = new Key(transaction, unitName); EntityManager em = cache.get(key); if (em == null) { // no entity manager for the persistence unit associated with the transaction EntityManagerFactory emf = emfCache.get(unitName); if (emf == null) { throw new EntityManagerCreationException("No EntityManagerFactory found for persistence unit: " + unitName); } em = emf.createEntityManager(); // don't synchronize on the transaction since it can assume to be bound to a thread at this point registerTransactionScopedSync(proxy, key); cache.put(key, em); } return em; }
public synchronized EntityManagerFactory resolve(String unitName, PersistenceOverrides overrides, ClassLoader classLoader) throws Fabric3Exception { EntityManagerFactory resolvedEmf = cache.get(unitName); if (resolvedEmf != null) { return resolvedEmf; } EntityManagerFactory factory = createEntityManagerFactory(overrides, classLoader); URI key; if (classLoader instanceof MultiParentClassLoader) { key = ((MultiParentClassLoader) classLoader).getNameUri(); } else { key = Names.HOST_CONTRIBUTION; } cache.put(key, unitName, factory); return factory; }
private void remove(String unitName) { if (managementService == null) { // management not enabled return; } try { managementService.remove(encodeName(unitName), "Hibernate"); } catch (ManagementException e) { monitor.error(unitName, e); } }
public void onUninstall(Contribution contribution) { URI uri = contribution.getUri(); ClassLoader classLoader = classLoaderRegistry.getClassLoader(uri); URI key; if (classLoader instanceof MultiParentClassLoader) { key = ((MultiParentClassLoader) classLoader).getName(); } else { key = Names.BOOT_CONTRIBUTION; } Set<String> names = contributionCache.remove(key); if (names != null) { for (String name : names) { EntityManagerFactory factory = cache.remove(name); factory.close(); remove(name); } } }
public void put(URI uri, String unitName, EntityManagerFactory factory) throws Fabric3Exception { if (factory == null) { throw new IllegalArgumentException("EntityManagerFactory was null"); } cache.put(unitName, factory); Set<String> names = contributionCache.get(uri); if (names == null) { names = new HashSet<>(); contributionCache.put(uri, names); } names.add(unitName); export(unitName, factory); }
private void parseProperties(Fabric3PersistenceUnitInfo info, XMLStreamReader reader) throws XMLStreamException { while (true) { int event = reader.next(); switch (event) { case START_ELEMENT: if ("property".equals(reader.getName().getLocalPart())) { String name = reader.getAttributeValue(null, "name"); String value = reader.getAttributeValue(null, "value"); info.addProperty(name, value); } break; case END_ELEMENT: if ("properties".equals(reader.getName().getLocalPart())) { return; } } } }
public EntityManager getEntityManager(String unitName, HibernateProxy proxy, Transaction transaction) throws Fabric3Exception { // Note this method is thread-safe as a Transaction is only visible to a single thread at time. Key key = new Key(transaction, unitName); EntityManager em = cache.get(key); if (em == null) { // no entity manager for the persistence unit associated with the transaction EntityManagerFactory emf = emfCache.get(unitName); if (emf == null) { throw new Fabric3Exception("No EntityManagerFactory found for persistence unit: " + unitName); } em = emf.createEntityManager(); // don't synchronize on the transaction since it can assume to be bound to a thread at this point registerTransactionScopedSync(proxy, key); cache.put(key, em); } return em; }