X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=test%2Feclipselink%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsupport%2Fpersistence%2Feclipselink%2FJndiSessionCustomizer.java;h=03beb9005f763d7850c0cb56656f2028508d7272;hb=685578ba5b0c34b26b127405cad1202623280e50;hp=9b856f05a04f1051c67a8825955f44074970087f;hpb=2207a1e695ce23e79678c232cff2ceb84ebaa801;p=utils diff --git a/test/eclipselink/src/main/java/org/wamblee/support/persistence/eclipselink/JndiSessionCustomizer.java b/test/eclipselink/src/main/java/org/wamblee/support/persistence/eclipselink/JndiSessionCustomizer.java index 9b856f05..03beb900 100644 --- a/test/eclipselink/src/main/java/org/wamblee/support/persistence/eclipselink/JndiSessionCustomizer.java +++ b/test/eclipselink/src/main/java/org/wamblee/support/persistence/eclipselink/JndiSessionCustomizer.java @@ -1,59 +1,82 @@ +/* + * Copyright 2005-2010 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.wamblee.support.persistence.eclipselink; -import javax.naming.Context; -import javax.naming.InitialContext; - import org.eclipse.persistence.config.SessionCustomizer; import org.eclipse.persistence.sessions.DatabaseLogin; import org.eclipse.persistence.sessions.JNDIConnector; import org.eclipse.persistence.sessions.Session; import org.eclipse.persistence.sessions.server.ServerSession; - + +import javax.naming.Context; +import javax.naming.InitialContext; + /** - * See http://wiki.eclipse.org/Customizing_the_EclipseLink_Application_(ELUG) Use for clients that would like to use a - * JTA SE pu instead of a RESOURCE_LOCAL SE pu. - * - * This utility also makes sure that using a persistence.xml with a JTA datasource works in a standalone Java SE - * environment together with our JNDI stub. + * See http://wiki.eclipse.org/Customizing_the_EclipseLink_Application_(ELUG) + * Use for clients that would like to use a JTA SE pu instead of a + * RESOURCE_LOCAL SE pu. This utility also makes sure that using a + * persistence.xml with a JTA datasource works in a standalone Java SE + * environment together with our JNDI stub. */ -public class JndiSessionCustomizer - implements SessionCustomizer { - - public JndiSessionCustomizer() { - // Empty. - } - - /** - * Get a dataSource connection and set it on the session with lookupType=STRING_LOOKUP - */ - public void customize(Session session) throws Exception { - JNDIConnector connector = null; - Context context = null; - try { - context = new InitialContext(); - if(null != context) { - connector = (JNDIConnector)session.getLogin().getConnector(); // possible CCE - // Change from COMPOSITE_NAME_LOOKUP to STRING_LOOKUP - // Note: if both jta and non-jta elements exist this will only change the first one - and may still result in - // the COMPOSITE_NAME_LOOKUP being set - // Make sure only jta-data-source is in persistence.xml with no non-jta-data-source property set - connector.setLookupType(JNDIConnector.STRING_LOOKUP); - - // Or, if you are specifying both JTA and non-JTA in your persistence.xml then set both connectors to be safe - JNDIConnector writeConnector = (JNDIConnector)session.getLogin().getConnector(); - writeConnector.setLookupType(JNDIConnector.STRING_LOOKUP); - JNDIConnector readConnector = - (JNDIConnector)((DatabaseLogin)((ServerSession)session).getReadConnectionPool().getLogin()).getConnector(); - readConnector.setLookupType(JNDIConnector.STRING_LOOKUP); - - System.out.println("JndiSessionCustomizer: configured " + connector.getName()); - } - else { - throw new Exception("JndiSessionCustomizer: Context is null"); - } +public class JndiSessionCustomizer implements SessionCustomizer { + /** + * Creates a new JndiSessionCustomizer object. + */ + public JndiSessionCustomizer() { + // Empty. } - catch(Exception e) { - e.printStackTrace(); + + /** + * Get a dataSource connection and set it on the session with + * lookupType=STRING_LOOKUP + * + * + */ + public void customize(Session aSession) throws Exception { + JNDIConnector connector = null; + Context context = null; + + try { + context = new InitialContext(); + + connector = (JNDIConnector) aSession.getLogin().getConnector(); // possible + // CCE + // Change from COMPOSITE_NAME_LOOKUP to STRING_LOOKUP + // Note: if both jta and non-jta elements exist this will only + // change the first one - and may still result in + // the COMPOSITE_NAME_LOOKUP being set + // Make sure only jta-data-source is in persistence.xml with no + // non-jta-data-source property set + + connector.setLookupType(JNDIConnector.STRING_LOOKUP); + + // Or, if you are specifying both JTA and non-JTA in your + // persistence.xml then set both connectors to be safe + JNDIConnector writeConnector = (JNDIConnector) aSession.getLogin() + .getConnector(); + writeConnector.setLookupType(JNDIConnector.STRING_LOOKUP); + + JNDIConnector readConnector = (JNDIConnector) ((DatabaseLogin) ((ServerSession) aSession) + .getReadConnectionPool().getLogin()).getConnector(); + readConnector.setLookupType(JNDIConnector.STRING_LOOKUP); + + System.out.println("JndiSessionCustomizer: configured " + + connector.getName()); + } catch (Exception e) { + e.printStackTrace(); + } } - } -} \ No newline at end of file +}