use of javax.sql.CommonDataSource in project requery by requery.
the class CompletableEntityStoreTest method setup.
@Before
public void setup() throws SQLException {
Platform platform = new HSQL();
CommonDataSource dataSource = DatabaseType.getDataSource(platform);
EntityModel model = io.requery.test.model.Models.DEFAULT;
final TransactionListener transactionListener = new TransactionListener() {
@Override
public void beforeBegin(TransactionIsolation isolation) {
}
@Override
public void afterBegin(TransactionIsolation isolation) {
transactionState = TransactionState.BEGIN;
}
@Override
public void beforeCommit(Set<Type<?>> types) {
}
@Override
public void afterCommit(Set<Type<?>> types) {
transactionState = TransactionState.COMMIT;
}
@Override
public void beforeRollback(Set<Type<?>> types) {
}
@Override
public void afterRollback(Set<Type<?>> types) {
transactionState = TransactionState.ROLLBACK;
}
};
Configuration configuration = new ConfigurationBuilder(dataSource, model).useDefaultLogging().setStatementCacheSize(10).setBatchUpdateSize(50).setWriteExecutor(Executors.newSingleThreadExecutor()).addTransactionListenerFactory(new Supplier<TransactionListener>() {
@Override
public TransactionListener get() {
return transactionListener;
}
}).build();
data = new CompletableEntityStore<>(new EntityDataStore<Persistable>(configuration));
SchemaModifier tables = new SchemaModifier(configuration);
tables.createTables(TableCreationMode.DROP_CREATE);
}
use of javax.sql.CommonDataSource in project requery by requery.
the class UpsertTest method setup.
@Before
public void setup() throws SQLException {
CommonDataSource dataSource = DatabaseType.getDataSource(platform);
EntityModel model = Models.MODEL3;
Configuration configuration = new ConfigurationBuilder(dataSource, model).useDefaultLogging().setEntityCache(new EmptyEntityCache()).setWriteExecutor(Executors.newSingleThreadExecutor()).build();
SchemaModifier tables = new SchemaModifier(configuration);
tables.createTables(TableCreationMode.DROP_CREATE);
System.out.println(tables.createTablesString(TableCreationMode.DROP_CREATE));
data = new EntityDataStore<>(configuration);
}
use of javax.sql.CommonDataSource in project tomee by apache.
the class FlushableDataSourceHandlerTest method checkIt.
@Test
public void checkIt() throws IOException {
assertThat(ds, instanceOf(Flushable.class));
assertThat(ds, instanceOf(DataSource.class));
final FlushableDataSourceHandler handler = FlushableDataSourceHandler.class.cast(Proxy.getInvocationHandler(ds));
final CommonDataSource delegate = handler.getDelegate();
assertNotNull(delegate);
assertFalse(BasicDataSource.class.cast(delegate).isClosed());
Flushable.class.cast(ds).flush();
assertTrue(BasicDataSource.class.cast(delegate).isClosed());
final CommonDataSource newDelegate = handler.getDelegate();
assertFalse(BasicDataSource.class.cast(newDelegate).isClosed());
assertNotSame(newDelegate, delegate);
}
use of javax.sql.CommonDataSource in project tomee by apache.
the class PersistenceBuilder method createEntityManagerFactory.
public ReloadableEntityManagerFactory createEntityManagerFactory(final PersistenceUnitInfo info, final ClassLoader classLoader, final Map<ComparableValidationConfig, ValidatorFactory> validators, final boolean hasCdi) throws Exception {
final PersistenceUnitInfoImpl unitInfo = new PersistenceUnitInfoImpl(persistenceClassLoaderHandler);
// Persistence Unit Id
unitInfo.setId(info.id);
// Persistence Unit Name
unitInfo.setPersistenceUnitName(info.name);
// Persistence Provider Class Name
unitInfo.setPersistenceProviderClassName(info.provider);
// ClassLoader
unitInfo.setClassLoader(classLoader);
// Exclude Unlisted Classes
unitInfo.setExcludeUnlistedClasses(info.excludeUnlistedClasses);
unitInfo.setLazilyInitialized(info.webappName != null || "true".equalsIgnoreCase(info.properties.getProperty("tomee.jpa.factory.lazy", SystemInstance.get().getProperty("tomee.jpa.factory.lazy", "false"))));
final Context context = SystemInstance.get().getComponent(ContainerSystem.class).getJNDIContext();
// JTA Datasource
String jtaDataSourceId = info.jtaDataSource;
unitInfo.setJtaDataSourceName(jtaDataSourceId);
if (jtaDataSourceId != null) {
if (!SystemInstance.get().hasProperty("openejb.geronimo")) {
final String initialJndiName = jtaDataSourceId;
try {
if (!jtaDataSourceId.startsWith("java:openejb/Resource/") && !jtaDataSourceId.startsWith("openejb/Resource/")) {
jtaDataSourceId = "openejb/Resource/" + jtaDataSourceId;
}
final CommonDataSource jtaDataSource = (CommonDataSource) context.lookup(jtaDataSourceId);
unitInfo.setJtaDataSource(jtaDataSource);
} catch (final NamingException e) {
try {
unitInfo.setJtaDataSource((DataSource) new InitialContext().lookup(initialJndiName));
} catch (final NamingException ne) {
throw new OpenEJBException("Could not lookup <jta-data-source> '" + jtaDataSourceId + "' for unit '" + unitInfo.getPersistenceUnitName() + "'", e);
}
}
}
}
// Managed Class Names
unitInfo.setManagedClassNames(info.classes);
// Mapping File Names
unitInfo.setMappingFileNames(info.mappingFiles);
// Handle Properties
unitInfo.setProperties(info.properties);
// Schema version of the persistence.xml file
unitInfo.setPersistenceXMLSchemaVersion(info.persistenceXMLSchemaVersion);
// Second-level cache mode for the persistence unit
final SharedCacheMode sharedCacheMode = Enum.valueOf(SharedCacheMode.class, info.sharedCacheMode);
unitInfo.setSharedCacheMode(sharedCacheMode);
// The validation mode to be used for the persistence unit
final ValidationMode validationMode = Enum.valueOf(ValidationMode.class, info.validationMode);
unitInfo.setValidationMode(validationMode);
// Persistence Unit Transaction Type
final PersistenceUnitTransactionType type = Enum.valueOf(PersistenceUnitTransactionType.class, info.transactionType);
unitInfo.setTransactionType(type);
// Non JTA Datasource
String nonJtaDataSourceId = info.nonJtaDataSource;
unitInfo.setNonJtaDataSourceName(nonJtaDataSourceId);
if (nonJtaDataSourceId != null) {
if (!SystemInstance.get().hasProperty("openejb.geronimo")) {
final String initialJndiName = nonJtaDataSourceId;
try {
if (!nonJtaDataSourceId.startsWith("java:openejb/Resource/")) {
nonJtaDataSourceId = "java:openejb/Resource/" + nonJtaDataSourceId;
}
final CommonDataSource nonJtaDataSource = (CommonDataSource) context.lookup(nonJtaDataSourceId);
unitInfo.setNonJtaDataSource(nonJtaDataSource);
} catch (final NamingException e) {
try {
unitInfo.setNonJtaDataSource((DataSource) new InitialContext().lookup(initialJndiName));
} catch (final NamingException ne) {
throw new OpenEJBException("Could not lookup <non-jta-data-source> '" + nonJtaDataSourceId + "' for unit '" + unitInfo.getPersistenceUnitName() + "'", e);
}
}
}
}
// Persistence Unit Root Url
unitInfo.setRootUrlAndJarUrls(info.persistenceUnitRootUrl, info.jarFiles);
// create the persistence provider
final String persistenceProviderClassName = unitInfo.getPersistenceProviderClassName();
unitInfo.setPersistenceProviderClassName(persistenceProviderClassName);
final EntityManagerFactoryCallable callable = new EntityManagerFactoryCallable(persistenceProviderClassName, unitInfo, classLoader, validators, hasCdi);
return new ReloadableEntityManagerFactory(classLoader, callable, unitInfo);
}
use of javax.sql.CommonDataSource in project tomee by apache.
the class DataSourceFactory method wrapIfNeeded.
private static CommonDataSource wrapIfNeeded(final String handler, final CommonDataSource ds) throws InstantiationException, IllegalAccessException {
if (handler != null) {
try {
final Class<?> handlerClass = Thread.currentThread().getContextClassLoader().loadClass(handler);
InvocationHandler instance;
try {
instance = InvocationHandler.class.cast(handlerClass.getConstructor(DataSource.class).newInstance(ds));
} catch (final InvocationTargetException e) {
throw new IllegalStateException(e.getCause());
} catch (final NoSuchMethodException e) {
try {
instance = InvocationHandler.class.cast(handlerClass.getConstructor(CommonDataSource.class).newInstance(ds));
} catch (final InvocationTargetException e2) {
throw new IllegalStateException(e.getCause());
} catch (final NoSuchMethodException e2) {
instance = InvocationHandler.class.cast(handlerClass.newInstance());
}
}
return wrapWithHandler(ds, instance);
} catch (ClassNotFoundException e) {
throw new IllegalArgumentException("Can't find handler: " + handler, e);
}
}
return ds;
}
Aggregations