Author: rareddy
Date: 2012-01-23 14:06:21 -0500 (Mon, 23 Jan 2012)
New Revision: 3814
Modified:
trunk/client/src/main/java/org/teiid/jdbc/EmbeddedProfile.java
trunk/client/src/main/java/org/teiid/jdbc/TeiidDriver.java
trunk/client/src/main/resources/org/teiid/jdbc/i18n.properties
Log:
TEIID-1900: Added checks to make sure the Module library is available for the Teiid driver
to load the needed classes.
Modified: trunk/client/src/main/java/org/teiid/jdbc/EmbeddedProfile.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/EmbeddedProfile.java 2012-01-23 18:52:20 UTC
(rev 3813)
+++ trunk/client/src/main/java/org/teiid/jdbc/EmbeddedProfile.java 2012-01-23 19:06:21 UTC
(rev 3814)
@@ -71,10 +71,10 @@
try {
final Module module =
Module.getCallerModuleLoader().loadModule(ModuleIdentifier.create("org.jboss.teiid"));
//$NON-NLS-1$
Thread.currentThread().setContextClassLoader(module.getClassLoader());
+ return
(ServerConnection)ReflectionHelper.create("org.teiid.transport.LocalServerConnection",
Arrays.asList(info, PropertiesUtils.getBooleanProperty(info, USE_CALLING_THREAD, true)),
Thread.currentThread().getContextClassLoader()); //$NON-NLS-1$
} catch (ModuleLoadException e) {
-
Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
- }
- return
(ServerConnection)ReflectionHelper.create("org.teiid.transport.LocalServerConnection",
Arrays.asList(info, PropertiesUtils.getBooleanProperty(info, USE_CALLING_THREAD, true)),
Thread.currentThread().getContextClassLoader()); //$NON-NLS-1$
+ throw new
TeiidRuntimeException(JDBCPlugin.Util.gs("teiid_module_load_failed"));
//$NON-NLS-1$
+ }
} finally {
Thread.currentThread().setContextClassLoader(tccl);
}
Modified: trunk/client/src/main/java/org/teiid/jdbc/TeiidDriver.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/TeiidDriver.java 2012-01-23 18:52:20 UTC
(rev 3813)
+++ trunk/client/src/main/java/org/teiid/jdbc/TeiidDriver.java 2012-01-23 19:06:21 UTC
(rev 3814)
@@ -71,7 +71,7 @@
}
private ConnectionProfile socketProfile = new SocketProfile();
- private ConnectionProfile embeddedProfile = new EmbeddedProfile();
+ private ConnectionProfile embeddedProfile;
public static TeiidDriver getInstance() {
return INSTANCE;
@@ -102,6 +102,14 @@
try {
if (conn == ConnectionType.Embedded) {
+ if (embeddedProfile == null) {
+ try {
+ getClass().getClassLoader().loadClass("org.jboss.modules.Module");
//$NON-NLS-1$
+ } catch(ClassNotFoundException e) {
+ throw new
TeiidSQLException(JDBCPlugin.Util.gs("module_load_failed")); //$NON-NLS-1$
+ }
+ embeddedProfile = new EmbeddedProfile();
+ }
myConnection = embeddedProfile.connect(url, info);
} else {
myConnection = socketProfile.connect(url, info);
Modified: trunk/client/src/main/resources/org/teiid/jdbc/i18n.properties
===================================================================
--- trunk/client/src/main/resources/org/teiid/jdbc/i18n.properties 2012-01-23 18:52:20 UTC
(rev 3813)
+++ trunk/client/src/main/resources/org/teiid/jdbc/i18n.properties 2012-01-23 19:06:21 UTC
(rev 3814)
@@ -157,4 +157,13 @@
client_prop_missing=Client URL connection property missing "{0}". Please add
the property to connection URL.
system_prop_missing=System property "{0}" missing, please add using -D option
on the VM startup script.
-JDBC.forward_only_resultset=Continuous queries must be forward only and return a result
set.
\ No newline at end of file
+JDBC.forward_only_resultset=Continuous queries must be forward only and return a result
set.
+module_load_failed=Teiid Embedded mode Driver failed to load. You must only create this
type of connection in the same \
+VM as the Teiid Server. Use following driver fragment xml inside the JBoss AS
configuration file\
+ <drivers>\
+ <driver name="teiid-local"
module="org.jboss.teiid">\
+ <driver-class>org.teiid.jdbc.TeiidDriver</driver-class>\
+
<xa-datasource-class>org.teiid.jdbc.TeiidDataSource</xa-datasource-class>\
+ </driver> \
+ </drivers>
+teiid_module_load_failed=Failed to load "org.jboss.teiid" module.
\ No newline at end of file