You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2007/03/16 20:54:47 UTC

svn commit: r519114 - /incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/ImportSDOLoader.java

Author: rfeng
Date: Fri Mar 16 12:54:46 2007
New Revision: 519114

URL: http://svn.apache.org/viewvc?view=rev&rev=519114
Log:
[sca-integration-branch] Make sure the class loader from the deployment context is used as TCCL

Modified:
    incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/ImportSDOLoader.java

Modified: incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/ImportSDOLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/ImportSDOLoader.java?view=diff&rev=519114&r1=519113&r2=519114
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/ImportSDOLoader.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/ImportSDOLoader.java Fri Mar 16 12:54:46 2007
@@ -52,8 +52,9 @@
  */
 public class ImportSDOLoader extends LoaderExtension {
 
-    @Constructor({"registry"})
-    public ImportSDOLoader(@Autowire LoaderRegistry registry) {
+    @Constructor( {"registry"})
+    public ImportSDOLoader(@Autowire
+    LoaderRegistry registry) {
         super(registry);
     }
 
@@ -95,7 +96,7 @@
             }
         }
     }
-    
+
     private static void register(Class factoryClass, HelperContext helperContext) throws Exception {
         Field field = factoryClass.getField("INSTANCE");
         Object factory = field.get(null);
@@ -113,7 +114,7 @@
         String location = reader.getAttributeValue(null, "location");
         if (location == null) {
             location = reader.getAttributeValue(null, "wsdlLocation");
-        }    
+        }
         if (location != null) {
             try {
                 URL wsdlURL = null;
@@ -136,14 +137,22 @@
                 }
                 // FIXME: How do we associate the application HelperContext with the one
                 // imported by the composite
-                HelperContext defaultContext = HelperProvider.getDefaultContext();    
+                HelperContext defaultContext = HelperProvider.getDefaultContext();
                 xsdInputStream = wsdlURL.openStream();
                 try {
                     XSDHelper xsdHelper = defaultContext.getXSDHelper();
-                    xsdHelper.define(xsdInputStream, wsdlURL.toExternalForm());
+                    ClassLoader oldCL = Thread.currentThread().getContextClassLoader();
+                    try {
+                        // set TCCL as SDO needs it
+                        ClassLoader cl = deploymentContext.getClassLoader();
+                        Thread.currentThread().setContextClassLoader(cl);
+                        xsdHelper.define(xsdInputStream, wsdlURL.toExternalForm());
+                    } finally {
+                        Thread.currentThread().setContextClassLoader(oldCL);
+                    }
                 } finally {
                     xsdInputStream.close();
-                }                
+                }
             } catch (IOException e) {
                 LoaderException sfe = new LoaderException(e.getMessage());
                 sfe.setResourceURI(location);



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org