[teiid-commits] teiid SVN: r4061 - in trunk: engine/src/main/java/org/teiid/dqp/internal/process and 2 other directories.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Mon May 7 13:48:52 EDT 2012


Author: rareddy
Date: 2012-05-07 13:48:51 -0400 (Mon, 07 May 2012)
New Revision: 4061

Modified:
   trunk/api/src/main/java/org/teiid/CommandContext.java
   trunk/engine/src/main/java/org/teiid/dqp/internal/process/Request.java
   trunk/engine/src/main/java/org/teiid/query/util/CommandContext.java
   trunk/jboss-integration/src/main/java/org/teiid/jboss/VDBDeployer.java
Log:
TEIID-2030: Make the the VDB classloader available though command context for use by the translators

Modified: trunk/api/src/main/java/org/teiid/CommandContext.java
===================================================================
--- trunk/api/src/main/java/org/teiid/CommandContext.java	2012-05-07 14:27:22 UTC (rev 4060)
+++ trunk/api/src/main/java/org/teiid/CommandContext.java	2012-05-07 17:48:51 UTC (rev 4061)
@@ -150,5 +150,11 @@
 	 * @return
 	 */
 	long getReuseCount();
+	
+	/**
+	 * Get class loader for VDB. 
+	 * @return
+	 */
+	ClassLoader getVDBClassLoader();
 
 }

Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/Request.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/Request.java	2012-05-07 14:27:22 UTC (rev 4060)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/Request.java	2012-05-07 17:48:51 UTC (rev 4061)
@@ -250,6 +250,7 @@
         this.context.setDQPWorkContext(this.workContext);
         this.context.setTransactionService(this.transactionService);
         this.context.setTransactionContext(this.transactionContext);
+        this.context.setVDBClassLoader(workContext.getVDB().getAttachment(ClassLoader.class));
     }
     
     @Override

Modified: trunk/engine/src/main/java/org/teiid/query/util/CommandContext.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/util/CommandContext.java	2012-05-07 14:27:22 UTC (rev 4060)
+++ trunk/engine/src/main/java/org/teiid/query/util/CommandContext.java	2012-05-07 17:48:51 UTC (rev 4061)
@@ -150,6 +150,7 @@
 	    private LRUCache<String, DecimalFormat> decimalFormatCache;
 		private LRUCache<String, SimpleDateFormat> dateFormatCache;
 		private AtomicLong reuseCount = new AtomicLong();
+		private ClassLoader classLoader;
 	}
 	
 	private GlobalState globalState = new GlobalState();
@@ -755,6 +756,14 @@
 	@Override
 	public long getReuseCount() {
 		return globalState.reuseCount.get();
+	}	
+
+	@Override
+	public ClassLoader getVDBClassLoader() {
+		return this.globalState.classLoader;
 	}
 	
+	public void setVDBClassLoader(ClassLoader classLoader) {
+		this.globalState.classLoader = classLoader;
+	}
 }

Modified: trunk/jboss-integration/src/main/java/org/teiid/jboss/VDBDeployer.java
===================================================================
--- trunk/jboss-integration/src/main/java/org/teiid/jboss/VDBDeployer.java	2012-05-07 14:27:22 UTC (rev 4060)
+++ trunk/jboss-integration/src/main/java/org/teiid/jboss/VDBDeployer.java	2012-05-07 17:48:51 UTC (rev 4061)
@@ -126,8 +126,11 @@
 					}					
 				}
 			}
-		}			
+		}
 		
+		// add VDB module's classloader as an attachment
+		deployment.addAttchment(ClassLoader.class, deploymentUnit.getAttachment(Attachments.MODULE).getClassLoader());
+		
 		// check if this is a VDB with index files, if there are then build the TransformationMetadata
 		UDFMetaData udf = deploymentUnit.removeAttachment(TeiidAttachments.UDF_METADATA);
 		if (udf != null) {



More information about the teiid-commits mailing list