[ https://issues.apache.org/jira/browse/CXFXJC-25?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16442053#comment-16442053 ]
Freeman Fang edited comment on CXFXJC-25 at 4/18/18 7:35 AM: ------------------------------------------------------------- This is caused by that the getAllPlugins() method in com.sun.tools.xjc.Options class changed since jaxb-xjc 2.3.0 In 2.2.11 it's {code:java} public List<Plugin> getAllPlugins() { if(allPlugins==null) { allPlugins = new ArrayList<Plugin>(); ClassLoader ucl = getUserClassLoader(SecureLoader.getClassClassLoader(getClass())); allPlugins.addAll(Arrays.asList(findServices(Plugin.class,ucl))); } return allPlugins; } /** * Gets a classLoader that can load classes specified via the * -classpath option. */ public ClassLoader getUserClassLoader( ClassLoader parent ) { if (classpaths.isEmpty()) return parent; return new URLClassLoader( classpaths.toArray(new URL[classpaths.size()]),parent); } {code} while in 2.3.0 it's {code:java} public List<Plugin> getAllPlugins() { if (allPlugins == null) { allPlugins = findServices(Plugin.class); } return allPlugins; } {code} The getUserClassLoader method used in 2.2.11 ensure it can load plugin extensions from the classpath, this is essential. We should fix this and ensure cxf-xjc-plugin can both work with jaxb 2.2.x and jaxb 2.3 was (Author: ffang): This is caused by that the getAllPlugins() method in com.sun.tools.xjc.Options class changed since jaxb-xjc 2.3.0 In 2.2.11 it's {code} public List<Plugin> getAllPlugins() { if(allPlugins==null) { allPlugins = new ArrayList<Plugin>(); ClassLoader ucl = getUserClassLoader(SecureLoader.getClassClassLoader(getClass())); allPlugins.addAll(Arrays.asList(findServices(Plugin.class,ucl))); } return allPlugins; } {code} while in 2.3.0 it's {code} public List<Plugin> getAllPlugins() { if (allPlugins == null) { allPlugins = findServices(Plugin.class); } return allPlugins; } {code} The getUserClassLoader method used in 2.2.11 ensure it can load plugin extensions from the classpath, this is essential. We should fix this and ensure cxf-xjc-plugin can both work with jaxb 2.2.x and jaxb 2.3 > cxf-xjc-plugin can't load xjc plugin extensions which is already on the > classpath with jax-xjc 2.3.0 > ---------------------------------------------------------------------------------------------------- > > Key: CXFXJC-25 > URL: https://issues.apache.org/jira/browse/CXFXJC-25 > Project: CXF XJC Utils > Issue Type: Improvement > Reporter: Freeman Fang > Assignee: Freeman Fang > Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)