Java Examples for oracle.toplink.essentials.sessions.Session
The following java examples will help you to understand the usage of oracle.toplink.essentials.sessions.Session. These source code samples are taken from different open source projects.
Example 1
Project: bbssh-master File: ToplinkSessionCustomizer.java View source code |
public void customize(Session session) throws Exception {
JNDIConnector jc = (JNDIConnector) session.getLogin().getConnector();
jc.setLookupType(JNDIConnector.STRING_LOOKUP);
/*Connector connector = session.getLogin().getConnector();
if (connector instanceof JNDIConnector) {
jc = (JNDIConnector)connector;
} else {
jc = new JNDIConnector("java:comp/env/jdbc/khalidine");
}
session.getLogin().setConnector(jc);
session.getLogin().setUsesExternalConnectionPooling(true);
*/
}
Example 2
Project: compass-fork-master File: CompassSessionCustomizer.java View source code |
public void customize(Session session) throws Exception {
if (log.isInfoEnabled()) {
log.info("Compass embedded TopLink Essentials support enabled, initializing for session [" + session + "]");
}
PersistenceUnitInfo persistenceUnitInfo = findPersistenceUnitInfo(session);
if (persistenceUnitInfo == null) {
throw new CompassException("Failed to find Persistence Unit Info");
}
Map<Object, Object> toplinkProps = new HashMap();
toplinkProps.putAll(persistenceUnitInfo.getProperties());
toplinkProps.putAll(session.getProperties());
String sessionCustomizer = (String) toplinkProps.get(COMPASS_SESSION_CUSTOMIZER);
if (sessionCustomizer != null) {
((SessionCustomizer) ClassUtils.forName(sessionCustomizer, persistenceUnitInfo.getClassLoader()).newInstance()).customize(session);
}
Properties compassProperties = new Properties();
//noinspection unchecked
for (Map.Entry entry : toplinkProps.entrySet()) {
if (!(entry.getKey() instanceof String)) {
continue;
}
String key = (String) entry.getKey();
if (key.startsWith(COMPASS_PREFIX)) {
compassProperties.put(entry.getKey(), entry.getValue());
}
if (key.startsWith(COMPASS_GPS_INDEX_PREFIX)) {
compassProperties.put(entry.getKey(), entry.getValue());
}
}
if (compassProperties.isEmpty()) {
if (log.isDebugEnabled()) {
log.debug("No Compass properties found in configuraiton, disabling Compass");
}
return;
}
if (compassProperties.getProperty(CompassEnvironment.CONNECTION) == null) {
if (log.isDebugEnabled()) {
log.debug("No Compass [" + CompassEnvironment.CONNECTION + "] property defined, disabling Compass");
}
return;
}
CompassConfiguration compassConfiguration = CompassConfigurationFactory.newConfiguration();
// use the same class loader of the persistence info to load Compass classes
compassConfiguration.setClassLoader(persistenceUnitInfo.getClassLoader());
CompassSettings settings = compassConfiguration.getSettings();
settings.addSettings(compassProperties);
String configLocation = (String) compassProperties.get(COMPASS_CONFIG_LOCATION);
if (configLocation != null) {
compassConfiguration.configure(configLocation);
}
Map descriptors = session.getDescriptors();
for (Object o : descriptors.values()) {
ClassDescriptor classDescriptor = (ClassDescriptor) o;
Class mappedClass = classDescriptor.getJavaClass();
compassConfiguration.tryAddClass(mappedClass);
}
// create some default settings
String transactionFactory = (String) compassProperties.get(CompassEnvironment.Transaction.FACTORY);
boolean toplinkControlledTransaction;
if (transactionFactory == null) {
if (persistenceUnitInfo.getTransactionType() == PersistenceUnitTransactionType.JTA) {
transactionFactory = JTASyncTransactionFactory.class.getName();
toplinkControlledTransaction = false;
} else {
transactionFactory = LocalTransactionFactory.class.getName();
toplinkControlledTransaction = true;
}
settings.setSetting(CompassEnvironment.Transaction.FACTORY, transactionFactory);
} else {
// JPA is not controlling the transaction (using JTA Sync or XA), don't commit/rollback
// with Toplink transaction listeners
toplinkControlledTransaction = false;
}
// will only be taken into account when using local transactions
if (settings.getSetting(CompassEnvironment.Transaction.DISABLE_THREAD_BOUND_LOCAL_TRANSATION) == null) {
// if no emf is defined
settings.setBooleanSetting(CompassEnvironment.Transaction.DISABLE_THREAD_BOUND_LOCAL_TRANSATION, true);
}
Compass compass = compassConfiguration.buildCompass();
boolean commitBeforeCompletion = settings.getSettingAsBoolean(CompassEnvironment.Transaction.COMMIT_BEFORE_COMPLETION, false);
// extract index properties so they will be used
Properties indexProps = new Properties();
for (Map.Entry entry : compassProperties.entrySet()) {
String key = (String) entry.getKey();
if (key.startsWith(COMPASS_GPS_INDEX_PREFIX)) {
indexProps.put(key.substring(COMPASS_GPS_INDEX_PREFIX.length()), entry.getValue());
}
}
// start an internal JPA device and Gps for mirroring
EntityManagerFactory emf = new EntityManagerFactoryImpl((ServerSession) session);
JpaGpsDevice jpaGpsDevice = new JpaGpsDevice(DefaultJpaCompassGps.JPA_DEVICE_NAME, emf);
jpaGpsDevice.setMirrorDataChanges(true);
jpaGpsDevice.setInjectEntityLifecycleListener(true);
for (Map.Entry entry : compassProperties.entrySet()) {
String key = (String) entry.getKey();
if (key.startsWith(INDEX_QUERY_PREFIX)) {
String entityName = key.substring(INDEX_QUERY_PREFIX.length());
String selectQuery = (String) entry.getValue();
jpaGpsDevice.setIndexSelectQuery(entityName, selectQuery);
}
}
TopLinkEssentialsJpaEntityLifecycleInjector lifecycleInjector = new TopLinkEssentialsJpaEntityLifecycleInjector();
lifecycleInjector.setEventListener(new EmbeddedToplinkEventListener(jpaGpsDevice));
jpaGpsDevice.setLifecycleInjector(lifecycleInjector);
// which makes it useless when using DefaultEntityManagerWrapper
if (persistenceUnitInfo.getTransactionType() == PersistenceUnitTransactionType.JTA) {
jpaGpsDevice.setEntityManagerWrapper(new JtaEntityManagerWrapper());
} else {
jpaGpsDevice.setEntityManagerWrapper(new ResourceLocalEntityManagerWrapper());
}
DefaultJpaCompassGps jpaCompassGps = new DefaultJpaCompassGps();
jpaCompassGps.setCompass(compass);
jpaCompassGps.addGpsDevice(jpaGpsDevice);
// before we start the Gps, open and close a broker
emf.createEntityManager().close();
jpaCompassGps.start();
session.getEventManager().addListener(new CompassSessionEventListener(compass, jpaCompassGps, commitBeforeCompletion, toplinkControlledTransaction, indexProps));
if (log.isDebugEnabled()) {
log.debug("Compass embedded TopLink Essentials support active");
}
}
Example 3
Project: spring-framework-2.5.x-master File: TopLinkJpaDialect.java View source code |
/** * Get a traditional TopLink Session from the given EntityManager. */ protected Session getSession(EntityManager em) { oracle.toplink.essentials.ejb.cmp3.EntityManager emi = (oracle.toplink.essentials.ejb.cmp3.EntityManager) em; return emi.getActiveSession(); }