[teiid-commits] teiid SVN: r562 - in trunk: embedded/src/main/java/com/metamatrix/dqp/embedded and 7 other directories.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Sat Mar 14 15:42:40 EDT 2009


Author: rareddy
Date: 2009-03-14 15:42:40 -0400 (Sat, 14 Mar 2009)
New Revision: 562

Modified:
   trunk/connector-api/src/main/java/org/teiid/connector/internal/ConnectorPropertyNames.java
   trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/DQPEmbeddedProperties.java
   trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/admin/DQPConfigAdminImpl.java
   trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedConfigurationService.java
   trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedDataService.java
   trunk/engine/src/main/java/com/metamatrix/dqp/service/ConfigurationService.java
   trunk/server/src/main/java/com/metamatrix/admin/server/ServerConfigAdminImpl.java
   trunk/server/src/main/java/com/metamatrix/server/connector/service/ConnectorService.java
   trunk/server/src/main/java/com/metamatrix/server/query/service/QueryService.java
   trunk/server/src/main/java/com/metamatrix/server/util/ServerPropertyNames.java
Log:
TEIID-418: added a two properties "ConnectorTypeProperties" and "CommonExtensionClassPath" to system. Common extension is defined user when they add a udf, or membership domain etc, they can modify this using console. ConnectorTypeClasspath defined by build process for defining the classpath for a connector. If user wants to add driver they can add either to extension classpath, or previous connector classpath.

Modified: trunk/connector-api/src/main/java/org/teiid/connector/internal/ConnectorPropertyNames.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/internal/ConnectorPropertyNames.java	2009-03-14 17:34:13 UTC (rev 561)
+++ trunk/connector-api/src/main/java/org/teiid/connector/internal/ConnectorPropertyNames.java	2009-03-14 19:42:40 UTC (rev 562)
@@ -95,6 +95,8 @@
     public static final String USING_CUSTOM_CLASSLOADER = "UsingCustomClassloader"; //$NON-NLS-1$
     
     public static final String CONNECTOR_CLASSPATH = "ConnectorClassPath"; //$NON-NLS-1$
+
+    public static final String CONNECTOR_TYPE_CLASSPATH = "ConnectorTypeClassPath"; //$NON-NLS-1$
     
     public static final String IS_XA = "IsXA"; //$NON-NLS-1$
     

Modified: trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/DQPEmbeddedProperties.java
===================================================================
--- trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/DQPEmbeddedProperties.java	2009-03-14 17:34:13 UTC (rev 561)
+++ trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/DQPEmbeddedProperties.java	2009-03-14 19:42:40 UTC (rev 562)
@@ -35,7 +35,7 @@
     public static final String DQP_METADATA_SYSTEMURL = "dqp.metadata.systemURL"; //$NON-NLS-1$    
     public static final String VDB_DEFINITION = "vdb.definition"; //$NON-NLS-1$
     public static final String USER_DEFINED_FUNCTIONS = "dqp.userDefinedFunctionsFile"; //$NON-NLS-1$
-    public static final String USER_DEFINED_FUNCTIONS_CLASPATH = "dqp.userDefinedFunctionsClasspath"; //$NON-NLS-1$
+    public static final String COMMON_EXTENSION_CLASPATH = "dqp.extension.CommonClasspath"; //$NON-NLS-1$
     public static final String DQP_KEYSTORE = "dqp.keystore"; //$NON-NLS-1$
     public static final String DQP_IDENTITY = "dqp.identity"; //$NON-NLS-1$
     public static final String DQP_TMPDIR = "mm.io.tmpdir"; //$NON-NLS-1$

Modified: trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/admin/DQPConfigAdminImpl.java
===================================================================
--- trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/admin/DQPConfigAdminImpl.java	2009-03-14 17:34:13 UTC (rev 561)
+++ trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/admin/DQPConfigAdminImpl.java	2009-03-14 19:42:40 UTC (rev 562)
@@ -28,6 +28,7 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Properties;
+import java.util.StringTokenizer;
 
 import com.metamatrix.admin.api.embedded.EmbeddedConfigAdmin;
 import com.metamatrix.admin.api.exception.AdminComponentException;
@@ -208,7 +209,7 @@
                 saveConnectorType(type);
             }
             else {
-                throw new AdminProcessingException(DQPEmbeddedPlugin.Util.getString("Admin.Connector_type_exists", new Object[] {deployName})); //$NON-NLS-1$
+                throw new AdminProcessingException(DQPEmbeddedPlugin.Util.getString("Admin.Connector_type_exists", deployName)); //$NON-NLS-1$
             }
         } catch (MetaMatrixComponentException e) {
         	throw new AdminComponentException(e);
@@ -259,7 +260,7 @@
             if (bindingExists(deployName)) {
                 // Based on users preference, either add or replace or ignore 
                 if (options.containsOption(AdminOptions.OnConflict.EXCEPTION)) {
-                    throw new AdminProcessingException(DQPEmbeddedPlugin.Util.getString("Admin.addBindingEixists", new String[] {deployName})); //$NON-NLS-1$
+                    throw new AdminProcessingException(DQPEmbeddedPlugin.Util.getString("Admin.addBindingEixists", deployName)); //$NON-NLS-1$
                 }
                 else if (options.containsOption(AdminOptions.OnConflict.IGNORE)) {
                     binding = getDataService().getConnectorBinding(deployName);
@@ -270,7 +271,7 @@
             // Get the connector type
             ConnectorBindingType ctype = getConfigurationService().getConnectorType(type);
             if (ctype == null) {
-                throw new AdminProcessingException(DQPEmbeddedPlugin.Util.getString("Admin.connector_type_not_exists", new String[] {type})); //$NON-NLS-1$
+                throw new AdminProcessingException(DQPEmbeddedPlugin.Util.getString("Admin.connector_type_not_exists", type)); //$NON-NLS-1$
             }
             
             // Build the connector binding with informatin we know.
@@ -330,7 +331,7 @@
             if (bindingExists(deployName)) {
                 // Based on users preference, either add or replace or ignore 
                 if (options.containsOption(AdminOptions.OnConflict.EXCEPTION)) {
-                    throw new AdminProcessingException(DQPEmbeddedPlugin.Util.getString("Admin.addBindingEixists", new String[] {deployName})); //$NON-NLS-1$
+                    throw new AdminProcessingException(DQPEmbeddedPlugin.Util.getString("Admin.addBindingEixists", deployName)); //$NON-NLS-1$
                 }
                 else if (options.containsOption(AdminOptions.OnConflict.IGNORE)) {
                     binding = getDataService().getConnectorBinding(deployName);
@@ -347,7 +348,7 @@
             // preferences in the admin options, same rules apply as binding.            
             if (bindingTypeExists(type.getName())) {
                 if (options.containsOption(AdminOptions.OnConflict.EXCEPTION)) {
-                    throw new AdminProcessingException(DQPEmbeddedPlugin.Util.getString("Admin.addBinding_type_exists", new String[] {deployName, type.getName()})); //$NON-NLS-1$
+                    throw new AdminProcessingException(DQPEmbeddedPlugin.Util.getString("Admin.addBinding_type_exists", deployName, type.getName())); //$NON-NLS-1$
                 }                
             }
             
@@ -528,7 +529,7 @@
             
             if (bindingExists(deployName)) {
                 if (options.containsOption(AdminOptions.OnConflict.EXCEPTION)) {
-                    throw new AdminProcessingException(DQPEmbeddedPlugin.Util.getString("Admin.addBindingEixists", new String[] {binding.getDeployedName()})); //$NON-NLS-1$
+                    throw new AdminProcessingException(DQPEmbeddedPlugin.Util.getString("Admin.addBindingEixists", binding.getDeployedName())); //$NON-NLS-1$
                 }                    
             }
             
@@ -636,7 +637,7 @@
                 getConfigurationService().saveExtensionModule(extModule);
             }
             else {
-                throw new AdminProcessingException(DQPEmbeddedPlugin.Util.getString("Admin.extension_module_exists", new Object[] {sourceName})); //$NON-NLS-1$
+                throw new AdminProcessingException(DQPEmbeddedPlugin.Util.getString("Admin.extension_module_exists", sourceName)); //$NON-NLS-1$
             }
         } catch (MetaMatrixComponentException e) {
         	throw new AdminComponentException(e);
@@ -867,7 +868,7 @@
                 
                     // if not asked to overwrite/skip writing them
                     if (options.containsOption(AdminOptions.OnConflict.EXCEPTION)) {
-                        throw new AdminProcessingException(DQPEmbeddedPlugin.Util.getString("Admin.Connector_type_exists", new Object[] {connectorName})); //$NON-NLS-1$            
+                        throw new AdminProcessingException(DQPEmbeddedPlugin.Util.getString("Admin.Connector_type_exists", connectorName)); //$NON-NLS-1$            
                     } else if (options.containsOption(AdminOptions.OnConflict.IGNORE)) {
                         continue;
                     } else if (options.containsOption(AdminOptions.OnConflict.OVERWRITE)){
@@ -933,7 +934,7 @@
             
             // if we found it take approprite action.
             if(previousModule != null && options.containsOption(AdminOptions.OnConflict.EXCEPTION)) {
-                throw new AdminProcessingException(DQPEmbeddedPlugin.Util.getString("Admin.extension_module_exists", new Object[] {previousModule.getFullName()})); //$NON-NLS-1$
+                throw new AdminProcessingException(DQPEmbeddedPlugin.Util.getString("Admin.extension_module_exists", previousModule.getFullName())); //$NON-NLS-1$
             }
             else if (previousModule != null && options.containsOption(AdminOptions.OnConflict.IGNORE)) {
                 add = false;
@@ -1030,9 +1031,24 @@
 			// add the function definitions as extension modules
 			addExtensionModule(ExtensionModule.FUNCTION_DEFINITION_TYPE,ConfigurationService.USER_DEFINED_FUNCTION_MODEL,modelFileContents, "User Defined Functions File"); //$NON-NLS-1$
 			
+	        String commonpath = getConfigurationService().getSystemProperties().getProperty(DQPEmbeddedProperties.COMMON_EXTENSION_CLASPATH, ""); //$NON-NLS-1$
+	        
+	        StringBuilder sb = new StringBuilder();
+	        if (classpath != null && classpath.length() > 0 ) {
+	        	StringTokenizer st = new StringTokenizer(classpath, ";"); //$NON-NLS-1$
+	        	while (st.hasMoreTokens()) {
+	        		String partpath = st.nextToken();
+	        		if (commonpath.indexOf(partpath) == -1) {
+	        			sb.append(partpath).append(";"); //$NON-NLS-1$
+	        		}
+	        	}
+	        }
+	        setSystemProperty(DQPEmbeddedProperties.COMMON_EXTENSION_CLASPATH, sb.toString()+commonpath);
+			
+			
 			// then update the properties
 			Properties p = new Properties();
-			p.setProperty(DQPEmbeddedProperties.USER_DEFINED_FUNCTIONS_CLASPATH,classpath);
+			p.setProperty(DQPEmbeddedProperties.COMMON_EXTENSION_CLASPATH, classpath);
 			getConfigurationService().updateSystemProperties(p);
 			// reload the new UDF
 			getConfigurationService().loadUDF();

Modified: trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedConfigurationService.java
===================================================================
--- trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedConfigurationService.java	2009-03-14 17:34:13 UTC (rev 561)
+++ trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedConfigurationService.java	2009-03-14 19:42:40 UTC (rev 562)
@@ -218,10 +218,10 @@
     }
 
     /**  
-     * @see com.metamatrix.dqp.service.ConfigurationService#getUDFClasspath()
+     * @see com.metamatrix.dqp.service.ConfigurationService#getCommonExtensionClasspath()
      */
-    public URL[] getUDFClasspath() {
-        String classpath= userPreferences.getProperty(DQPEmbeddedProperties.USER_DEFINED_FUNCTIONS_CLASPATH);
+    public URL[] getCommonExtensionClasspath() {
+        String classpath= userPreferences.getProperty(DQPEmbeddedProperties.COMMON_EXTENSION_CLASPATH);
         if (valid(classpath)) {            
             try {
                 URL context = getExtensionPath();
@@ -929,7 +929,7 @@
     public void loadUDF() throws MetaMatrixComponentException {
         URL udfFile = getUDFFile();
         if(udfFile != null && exists(udfFile)) {
-            URL[] urls = getUDFClasspath();            
+            URL[] urls = getCommonExtensionClasspath();            
             try {
 				this.udfSource = new UDFSource(udfFile, urls);
 				FunctionLibraryManager.registerSource(this.udfSource);

Modified: trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedDataService.java
===================================================================
--- trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedDataService.java	2009-03-14 17:34:13 UTC (rev 561)
+++ trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedDataService.java	2009-03-14 19:42:40 UTC (rev 562)
@@ -53,6 +53,7 @@
 import com.metamatrix.common.vdb.api.VDBDefn;
 import com.metamatrix.core.vdb.VDBStatus;
 import com.metamatrix.dqp.embedded.DQPEmbeddedPlugin;
+import com.metamatrix.dqp.embedded.DQPEmbeddedProperties;
 import com.metamatrix.dqp.embedded.configuration.ExtensionModuleReader;
 import com.metamatrix.dqp.internal.datamgr.ConnectorID;
 import com.metamatrix.dqp.internal.datamgr.impl.ConnectorManager;
@@ -563,8 +564,8 @@
 
         try {
             // Ask the configuration if we can use the extension class loader. 
-            boolean useExtensionClassPath = (getConfigurationService().useExtensionClasspath());        
-            String classPath = connectorProperties.getProperty(ConnectorPropertyNames.CONNECTOR_CLASSPATH);
+            boolean useExtensionClassPath = (getConfigurationService().useExtensionClasspath());
+            String classPath = buildClasspath(connectorProperties);
             if (classPath == null || classPath.length() == 0) {
                 useExtensionClassPath = false;
             }
@@ -587,4 +588,21 @@
         }
     }
 
+	private String buildClasspath(Properties connectorProperties) {
+		StringBuilder sb = new StringBuilder();
+		appendlasspath(connectorProperties.getProperty(ConnectorPropertyNames.CONNECTOR_CLASSPATH), sb); // this is user defined, could be very specific to the binding
+        appendlasspath(connectorProperties.getProperty(DQPEmbeddedProperties.COMMON_EXTENSION_CLASPATH), sb); // this is common to the engine
+        appendlasspath(connectorProperties.getProperty(ConnectorPropertyNames.CONNECTOR_TYPE_CLASSPATH), sb); // this is system defined; type classpath
+        return sb.toString();
+	}
+	
+	private void appendlasspath(String path, StringBuilder builder) {
+        if (path != null && path.length() > 0) {
+        	builder.append(path);
+        	if (!path.endsWith(";")) { //$NON-NLS-1$
+        		builder.append(";"); //$NON-NLS-1$
+        	}
+        }
+	}
+
 }

Modified: trunk/engine/src/main/java/com/metamatrix/dqp/service/ConfigurationService.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/dqp/service/ConfigurationService.java	2009-03-14 17:34:13 UTC (rev 561)
+++ trunk/engine/src/main/java/com/metamatrix/dqp/service/ConfigurationService.java	2009-03-14 19:42:40 UTC (rev 562)
@@ -98,11 +98,11 @@
     public URL getUDFFile();
     
     /**
-     * Get the user defined function's implementation jar file classpath. The jar
+     * Get the user defined extension file classpath. The jar
      * files are loaded usually as the extension modules. 
      * @return URL[] - Classpath for the UDF jar files
      */
-    public URL[] getUDFClasspath();
+    public URL[] getCommonExtensionClasspath();
     
     /**
      * URL to Log file name  

Modified: trunk/server/src/main/java/com/metamatrix/admin/server/ServerConfigAdminImpl.java
===================================================================
--- trunk/server/src/main/java/com/metamatrix/admin/server/ServerConfigAdminImpl.java	2009-03-14 17:34:13 UTC (rev 561)
+++ trunk/server/src/main/java/com/metamatrix/admin/server/ServerConfigAdminImpl.java	2009-03-14 19:42:40 UTC (rev 562)
@@ -38,6 +38,7 @@
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
+import java.util.StringTokenizer;
 
 import com.metamatrix.admin.AdminPlugin;
 import com.metamatrix.admin.api.exception.AdminComponentException;
@@ -122,6 +123,7 @@
 import com.metamatrix.platform.service.api.exception.ServiceException;
 import com.metamatrix.server.admin.apiimpl.MaterializationLoadScriptsImpl;
 import com.metamatrix.server.admin.apiimpl.RuntimeMetadataHelper;
+import com.metamatrix.server.util.ServerPropertyNames;
 
 /**
  * @since 4.3
@@ -677,7 +679,7 @@
         Collection existingBindings = parent.getConnectorBindingsInVDB(vdb.getName());
 
         // AdminOptions checking here.
-        Collection totalBindings = getBindingNamesToUpdate(existingBindings, newBindingNames, options);
+        getBindingNamesToUpdate(existingBindings, newBindingNames, options);
         
         // Update connector bindings only if OVERWRITE option given.  VDBDefnImport will take
         // care of adding any bindings that are new to the VDB.
@@ -2238,6 +2240,7 @@
      * @see com.metamatrix.admin.api.core.CoreConfigAdmin#addUDF(byte[], java.lang.String)
      */
     public void addUDF(byte[] modelFileContents, String classpath) throws AdminException {
+    	classpath = classpath.trim();
         try {
             deleteExtensionModule(FUNCTION_DEFINITIONS_MODEL);
         } catch (AdminException e) {
@@ -2245,8 +2248,20 @@
         }
         
         // add the function definitions as extension modules
-        addExtensionModule(ExtensionModule.FUNCTION_DEFINITION_TYPE, FUNCTION_DEFINITIONS_MODEL, modelFileContents, "User Defined Functions File"); //$NON-NLS-1$ 
-        setSystemProperty("metamatrix.server.UDFClasspath", classpath); //$NON-NLS-1$
+        addExtensionModule(ExtensionModule.FUNCTION_DEFINITION_TYPE, FUNCTION_DEFINITIONS_MODEL, modelFileContents, "User Defined Functions File"); //$NON-NLS-1$
+        String commonpath = CurrentConfiguration.getInstance().getProperties().getProperty(ServerPropertyNames.COMMON_EXTENSION_CLASPATH, ""); //$NON-NLS-1$
+        
+        StringBuilder sb = new StringBuilder();
+        if (classpath != null && classpath.length() > 0 ) {
+        	StringTokenizer st = new StringTokenizer(classpath, ";"); //$NON-NLS-1$
+        	while (st.hasMoreTokens()) {
+        		String partpath = st.nextToken();
+        		if (commonpath.indexOf(partpath) == -1) {
+        			sb.append(partpath).append(";"); //$NON-NLS-1$
+        		}
+        	}
+        }
+        setSystemProperty(ServerPropertyNames.COMMON_EXTENSION_CLASPATH, sb.toString()+commonpath);
     }
 
     /** 
@@ -2254,7 +2269,6 @@
      */
     public void deleteUDF() throws AdminException {
         deleteExtensionModule(FUNCTION_DEFINITIONS_MODEL);
-        setSystemProperty("metamatrix.server.UDFClasspath", ""); //$NON-NLS-1$ //$NON-NLS-2$
     }
 
 	@Override

Modified: trunk/server/src/main/java/com/metamatrix/server/connector/service/ConnectorService.java
===================================================================
--- trunk/server/src/main/java/com/metamatrix/server/connector/service/ConnectorService.java	2009-03-14 17:34:13 UTC (rev 561)
+++ trunk/server/src/main/java/com/metamatrix/server/connector/service/ConnectorService.java	2009-03-14 19:42:40 UTC (rev 562)
@@ -264,7 +264,7 @@
         // Decrypt masked properties
         Properties deMaskedProps = decryptMaskedProperties(props);
 
-        String urls = deMaskedProps.getProperty(ConnectorPropertyNames.CONNECTOR_CLASSPATH);
+        String urls = buildClasspath(deMaskedProps);
         
         ClassLoader loader = getCustomClassLoader(urls);
         // Build a Connector manager using the custom class loader and initialize
@@ -307,6 +307,23 @@
         }
     }
 
+	private String buildClasspath(Properties connectorProperties) {
+		StringBuilder sb = new StringBuilder();
+		appendlasspath(connectorProperties.getProperty(ConnectorPropertyNames.CONNECTOR_CLASSPATH), sb); // this is user defined, could be very specific to the binding
+        appendlasspath(connectorProperties.getProperty(ServerPropertyNames.COMMON_EXTENSION_CLASPATH), sb); // this is common to the engine
+        appendlasspath(connectorProperties.getProperty(ConnectorPropertyNames.CONNECTOR_TYPE_CLASSPATH), sb); // this is system defined; type classpath
+        return sb.toString();
+	}
+	
+	private void appendlasspath(String path, StringBuilder builder) {
+        if (path != null && path.length() > 0) {
+        	builder.append(path);
+        	if (!path.endsWith(";")) { //$NON-NLS-1$
+        		builder.append(";"); //$NON-NLS-1$
+        	}
+        }
+	}    
+    
     /**
      * Close the service to new work if applicable. After this method is called
      * the service should no longer accept new work to perform but should continue
@@ -484,10 +501,7 @@
                         try {
                             propValue = CryptoUtil.stringDecrypt(propValue);
                         } catch (CryptoException e) {
-                            throw new ApplicationInitializationException(e,
-                                                                         ServerPlugin.Util.getString(
-                                                                                 "ConnectorService.Failed_decrypting_masked_prop",   //$NON-NLS-1$
-                                                                                 propName));
+                            throw new ApplicationInitializationException(e,ServerPlugin.Util.getString("ConnectorService.Failed_decrypting_masked_prop", propName)); //$NON-NLS-1$
                         }
                     }
                     result.setProperty(propName, propValue);

Modified: trunk/server/src/main/java/com/metamatrix/server/query/service/QueryService.java
===================================================================
--- trunk/server/src/main/java/com/metamatrix/server/query/service/QueryService.java	2009-03-14 17:34:13 UTC (rev 561)
+++ trunk/server/src/main/java/com/metamatrix/server/query/service/QueryService.java	2009-03-14 19:42:40 UTC (rev 562)
@@ -61,6 +61,7 @@
 import com.metamatrix.server.ServerPlugin;
 import com.metamatrix.server.dqp.config.PlatformConfigSource;
 import com.metamatrix.server.util.LogConstants;
+import com.metamatrix.server.util.ServerPropertyNames;
 
 /**
  * Wraps up a QueryServiceEngine to tie it into the platform concept of services.  Is a remote object.
@@ -71,7 +72,6 @@
  */
 public class QueryService extends AbstractService implements QueryServiceInterface {
     
-	private static final String UDF_CLASSPATH_PROPERTY = "metamatrix.server.UDFClasspath"; //$NON-NLS-1$
 	private static final String CLASSPATH_DELIMITER = ";"; //$NON-NLS-1$
     private static final String CODE_TABLE_CACHE_NAME = "CodeTableCache"; //$NON-NLS-1$
     private static final String PLAN_CACHE_NAME = "PreparedPlanCache"; //$NON-NLS-1$
@@ -107,7 +107,7 @@
     private void registerUDFSource(String udfSource) throws IOException {
     	URL[] urls = null;
     	
-    	String extensionClasspath = CurrentConfiguration.getInstance().getProperties().getProperty(UDF_CLASSPATH_PROPERTY);
+    	String extensionClasspath = CurrentConfiguration.getInstance().getProperties().getProperty(ServerPropertyNames.COMMON_EXTENSION_CLASPATH);
         if (extensionClasspath != null && extensionClasspath.trim().length() > 0){
             try {
                 urls = URLFactory.parseURLs(extensionClasspath, CLASSPATH_DELIMITER);

Modified: trunk/server/src/main/java/com/metamatrix/server/util/ServerPropertyNames.java
===================================================================
--- trunk/server/src/main/java/com/metamatrix/server/util/ServerPropertyNames.java	2009-03-14 17:34:13 UTC (rev 561)
+++ trunk/server/src/main/java/com/metamatrix/server/util/ServerPropertyNames.java	2009-03-14 19:42:40 UTC (rev 562)
@@ -44,5 +44,5 @@
      */
     public static final String CACHE_CLASS_LOADERS      = "metamatrix.server.cacheConnectorClassLoaders"; //$NON-NLS-1$
    
-
+	public static final String COMMON_EXTENSION_CLASPATH = "metamatrix.extension.CommonClasspath"; //$NON-NLS-1$
 }




More information about the teiid-commits mailing list