r260 - in trunk/jaxx/src/main: java/jaxx/compiler java/jaxx/tags resources resources/META-INF resources/META-INF/services
Author: tchemit Date: 2008-03-31 22:54:43 +0000 (Mon, 31 Mar 2008) New Revision: 260 Added: trunk/jaxx/src/main/resources/META-INF/ trunk/jaxx/src/main/resources/META-INF/services/ trunk/jaxx/src/main/resources/META-INF/services/jaxx.spi.Initializer Modified: trunk/jaxx/src/main/java/jaxx/compiler/JAXXCompiler.java trunk/jaxx/src/main/java/jaxx/tags/DefaultComponentHandler.java Log: use java ServiceLoader mecanism to find initializer + stop bug ... make have a closer look on it. TODO make a swing runtime module Modified: trunk/jaxx/src/main/java/jaxx/compiler/JAXXCompiler.java =================================================================== --- trunk/jaxx/src/main/java/jaxx/compiler/JAXXCompiler.java 2008-03-31 21:27:27 UTC (rev 259) +++ trunk/jaxx/src/main/java/jaxx/compiler/JAXXCompiler.java 2008-03-31 22:54:43 UTC (rev 260) @@ -67,6 +67,7 @@ import java.util.Map; import java.util.Set; import java.util.Stack; +import java.util.ServiceLoader; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.zip.GZIPOutputStream; @@ -236,11 +237,6 @@ private static final int PASS_2 = 1; private static int currentPass; - private static final String[] INITIALIZER_CLASSES = { - "jaxx.DefaultInitializer", - "jaxx.tags.swing.SwingInitializer" - }; - static { try { loadLibraries(); @@ -255,13 +251,13 @@ } public static void loadLibraries() throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException { - //System.out.println("init : " + Arrays.toString(INITIALIZER_CLASSES)); - for (String s : INITIALIZER_CLASSES) { - ((Initializer) Class.forName(s).newInstance()).initialize(); + ServiceLoader<Initializer> loader = ServiceLoader.load(Initializer.class); + for (Initializer initializer : loader) { + System.out.println("load initializer "+initializer); + initializer.initialize(); } } - private JAXXCompiler(ClassLoader classLoader) { this.options = new CompilerOptions(); this.classLoader = classLoader; Modified: trunk/jaxx/src/main/java/jaxx/tags/DefaultComponentHandler.java =================================================================== --- trunk/jaxx/src/main/java/jaxx/tags/DefaultComponentHandler.java 2008-03-31 21:27:27 UTC (rev 259) +++ trunk/jaxx/src/main/java/jaxx/tags/DefaultComponentHandler.java 2008-03-31 22:54:43 UTC (rev 260) @@ -42,7 +42,12 @@ containerDelegate = (String) getJAXXBeanInfo().getJAXXBeanDescriptor().getValue("containerDelegate"); if (containerDelegate == null && ClassDescriptorLoader.getClassDescriptor(Container.class).isAssignableFrom(getBeanClass().getSuperclass())) { - containerDelegate = ((DefaultComponentHandler) TagManager.getTagHandler(getBeanClass().getSuperclass())).getContainerDelegate(); + DefaultObjectHandler tagHandler = TagManager.getTagHandler(getBeanClass().getSuperclass()); + if (tagHandler instanceof DefaultComponentHandler) { + containerDelegate = ((DefaultComponentHandler) tagHandler).getContainerDelegate(); + } else { + System.out.println("could not find componentHandler for "+getBeanClass()); + } } } } Added: trunk/jaxx/src/main/resources/META-INF/services/jaxx.spi.Initializer =================================================================== --- trunk/jaxx/src/main/resources/META-INF/services/jaxx.spi.Initializer (rev 0) +++ trunk/jaxx/src/main/resources/META-INF/services/jaxx.spi.Initializer 2008-03-31 22:54:43 UTC (rev 260) @@ -0,0 +1,2 @@ +jaxx.DefaultInitializer +jaxx.tags.swing.SwingInitializer \ No newline at end of file
participants (1)
-
tchemit@users.labs.libre-entreprise.org