Author: tfennelly
Date: 2010-08-05 15:17:40 -0400 (Thu, 05 Aug 2010)
New Revision: 23950
Removed:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.ecore.model/libs/commons-logging-1.1.1.jar
Modified:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.ecore.model/src/org/jboss/tools/smooks/model/SmooksEditorModelBuilder.java
branches/smooks-dmb/plugins/org.jboss.tools.smooks.runtime/libs/milyn-smooks-all-1.4-SNAPSHOT.jar
Log:
https://jira.jboss.org/browse/JBIDE-6789
Sort out ClassLoader issues in SmooksEditorModelBuilder
Deleted:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.ecore.model/libs/commons-logging-1.1.1.jar
===================================================================
(Binary files differ)
Modified:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.ecore.model/src/org/jboss/tools/smooks/model/SmooksEditorModelBuilder.java
===================================================================
---
branches/smooks-dmb/plugins/org.jboss.tools.smooks.ecore.model/src/org/jboss/tools/smooks/model/SmooksEditorModelBuilder.java 2010-08-05
17:19:10 UTC (rev 23949)
+++
branches/smooks-dmb/plugins/org.jboss.tools.smooks.ecore.model/src/org/jboss/tools/smooks/model/SmooksEditorModelBuilder.java 2010-08-05
19:17:40 UTC (rev 23950)
@@ -22,10 +22,15 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
+import java.util.List;
+import java.util.Properties;
import org.milyn.SmooksException;
+import org.milyn.javabean.dynamic.Descriptor;
import org.milyn.javabean.dynamic.Model;
import org.milyn.javabean.dynamic.ModelBuilder;
+import org.milyn.javabean.dynamic.resolvers.DefaultBindingConfigResolver;
+import org.milyn.javabean.dynamic.resolvers.DefaultSchemaResolver;
import org.xml.sax.SAXException;
/**
@@ -37,17 +42,22 @@
*/
public class SmooksEditorModelBuilder {
- private ModelBuilder modelBuilder;
+ private static ModelBuilder modelBuilder;
- public SmooksEditorModelBuilder() {
- ClassLoader contextClassloader = Thread.currentThread().getContextClassLoader();
- try {
- Thread.currentThread().setContextClassLoader(SmooksEditorModelBuilder.class.getClassLoader());
- modelBuilder = new ModelBuilder(SmooksModel.MODEL_DESCRIPTOR, false);
+ static {
+ ClassLoader modelClassLoader = SmooksEditorModelBuilder.class.getClassLoader();
+ List<Properties> descriptors =
Descriptor.loadDescriptors(SmooksModel.MODEL_DESCRIPTOR, modelClassLoader);
+ DefaultSchemaResolver schemaResolver = new DefaultSchemaResolver(descriptors);
+ DefaultBindingConfigResolver bindingResolver = new
DefaultBindingConfigResolver(descriptors);
+
+ schemaResolver.setClassLoader(modelClassLoader);
+ bindingResolver.setClassLoader(modelClassLoader);
+
+ try {
+ Descriptor descriptor = new Descriptor(descriptors, schemaResolver, bindingResolver,
modelClassLoader);
+ modelBuilder = new ModelBuilder(descriptor, false);
} catch (Exception e) {
throw new SmooksException("Failed to create ModelBuilder instance for descriptor
'" + SmooksModel.MODEL_DESCRIPTOR + "'.", e);
- } finally {
- Thread.currentThread().setContextClassLoader(contextClassloader);
}
}
@@ -60,22 +70,10 @@
}
public Model<SmooksModel> readModel(InputStream configStream) throws SAXException,
IOException {
- ClassLoader contextClassloader = Thread.currentThread().getContextClassLoader();
- try {
- Thread.currentThread().setContextClassLoader(SmooksEditorModelBuilder.class.getClassLoader());
- return modelBuilder.readModel(configStream, SmooksModel.class);
- } finally {
- Thread.currentThread().setContextClassLoader(contextClassloader);
- }
+ return modelBuilder.readModel(configStream, SmooksModel.class);
}
public Model<SmooksModel> readModel(Reader configStream) throws SAXException,
IOException {
- ClassLoader contextClassloader = Thread.currentThread().getContextClassLoader();
- try {
- Thread.currentThread().setContextClassLoader(SmooksEditorModelBuilder.class.getClassLoader());
- return modelBuilder.readModel(configStream, SmooksModel.class);
- } finally {
- Thread.currentThread().setContextClassLoader(contextClassloader);
- }
+ return modelBuilder.readModel(configStream, SmooksModel.class);
}
}
Modified:
branches/smooks-dmb/plugins/org.jboss.tools.smooks.runtime/libs/milyn-smooks-all-1.4-SNAPSHOT.jar
===================================================================
(Binary files differ)