djencks 2004/02/10 15:06:31
Modified: modules/maven-xmlbeans-plugin/src/java/org/apache/geronimo/tools/xmlbeans SchemaCompilerWrapper.java modules/connector maven.xml modules/deployment maven.xml modules/jetty maven.xml modules/maven-xmlbeans-plugin plugin.jelly specs/schema maven.xml Added: modules/maven-xmlbeans-plugin/src/java/org/apache/geronimo/tools/xmlbeans SchemaCompiler.java specs/schema/src/catalog resolver-catalog.xml Log: made xmlbeans plugin work offline and made it regenerate if sources schemas change Revision Changes Path 1.2 +37 -4 incubator-geronimo/modules/maven-xmlbeans-plugin/src/java/org/apache/geronimo/tools/xmlbeans/SchemaCompilerWrapper.java Index: SchemaCompilerWrapper.java =================================================================== RCS file: /home/cvs/incubator-geronimo/modules/maven-xmlbeans-plugin/src/java/org/apache/geronimo/tools/xmlbeans/SchemaCompilerWrapper.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- SchemaCompilerWrapper.java 2 Feb 2004 22:04:21 -0000 1.1 +++ SchemaCompilerWrapper.java 10 Feb 2004 23:06:31 -0000 1.2 @@ -57,13 +57,19 @@ package org.apache.geronimo.tools.xmlbeans; import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.StringTokenizer; -import org.apache.xmlbeans.impl.tool.SchemaCompiler; +import org.xml.sax.EntityResolver; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; +import org.apache.xml.resolver.CatalogManager; +import org.apache.xml.resolver.tools.CatalogResolver; + /** * @@ -73,11 +79,12 @@ * */ public class SchemaCompilerWrapper { - public static void CompileSchemas(String sourceSchemas, String xmlConfigs, String targetDir) throws Exception { + public static void CompileSchemas(String sourceDir, String sourceSchemas, String xmlConfigs, String targetDir, String catalogLocation) throws Exception { List schemas = new ArrayList(); + File base = new File(sourceDir); for (StringTokenizer st = new StringTokenizer(sourceSchemas, ","); st.hasMoreTokens();) { String schemaName = st.nextToken(); - schemas.add(new File(schemaName)); + schemas.add(new File(base, schemaName)); } List configs = new ArrayList(); @@ -87,6 +94,12 @@ configs.add(new File(configName)); } } + EntityResolver entityResolver = null; + if (catalogLocation != null) { + CatalogManager catalogManager = CatalogManager.getStaticManager(); + catalogManager.setCatalogFiles(catalogLocation); + entityResolver = new PassThroughResolver(new CatalogResolver()); + } SchemaCompiler.Parameters params = new SchemaCompiler.Parameters(); params.setBaseDir(null); params.setXsdFiles((File[])schemas.toArray(new File[] {})); @@ -114,6 +127,7 @@ params.setExtensions(null); params.setJaxb(false); params.setMdefNamespaces(null); + params.setEntityResolver(entityResolver); boolean result = SchemaCompiler.compile(params); if (!result) { @@ -127,4 +141,23 @@ } + private static class PassThroughResolver implements EntityResolver { + + private final EntityResolver delegate; + + public PassThroughResolver(EntityResolver delegate) { + this.delegate = delegate; + } + public InputSource resolveEntity(String publicId, + String systemId) + throws SAXException, IOException { + InputSource is = delegate.resolveEntity(publicId, systemId); + if (is != null) { + return is; + } + System.out.println("Could not resolve publicId: " + publicId + ", systemId: " + systemId + " from catalog"); + return new InputSource(systemId); + } + + } } 1.1 incubator-geronimo/modules/maven-xmlbeans-plugin/src/java/org/apache/geronimo/tools/xmlbeans/SchemaCompiler.java Index: SchemaCompiler.java =================================================================== /* ==================================================================== * The Apache Software License, Version 1.1 * * Copyright (c) 2003 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Apache" and "Apache Software Foundation" and * "Apache Geronimo" must not be used to endorse or promote products * derived from this software without prior written permission. For * written permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache", * "Apache Geronimo", nor may "Apache" appear in their name, without * prior written permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation and was * originally based on software copyright (c) 2000-2003 BEA Systems * Inc., <http://www.bea.com/>. For more information on the Apache Software * Foundation, please see <http://www.apache.org/>. * * ==================================================================== */ package org.apache.geronimo.tools.xmlbeans; import java.io.File; import java.util.Collection; import java.util.List; import java.util.Collections; import java.util.Set; import java.util.Map; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.net.URI; import org.apache.xmlbeans.SchemaTypeSystem; import org.apache.xmlbeans.SchemaTypeLoader; import org.apache.xmlbeans.XmlBeans; import org.apache.xmlbeans.XmlOptions; import org.apache.xmlbeans.XmlObject; import org.apache.xmlbeans.XmlException; import org.apache.xmlbeans.SimpleValue; import org.apache.xmlbeans.impl.schema.ResourceLoader; import org.apache.xmlbeans.impl.schema.StscState; import org.apache.xmlbeans.impl.schema.SchemaTypeLoaderImpl; import org.apache.xmlbeans.impl.schema.SchemaTypeSystemCompiler; import org.apache.xmlbeans.impl.schema.PathResourceLoader; import org.apache.xmlbeans.impl.common.XmlErrorWatcher; import org.apache.xmlbeans.impl.common.XmlErrorContext; import org.apache.xmlbeans.impl.tool.SchemaCodeGenerator; import org.apache.xmlbeans.impl.tool.CodeGenUtil; import org.apache.xmlbeans.impl.tool.SchemaCompilerExtension; import org.apache.xmlbeans.impl.tool.Extension; import org.w3.x2001.xmlSchema.SchemaDocument; import org.xml.sax.EntityResolver; import com.bea.x2002.x09.xbean.config.ConfigDocument; /** * This is a slightly modified version of the xmlbeans v1 SchemaCompiler, enhanced to allow specification of * an EntityResolver. Some parts not used in the maven plugin have also been removed. * * @version $Revision: 1.1 $ $Date: 2004/02/10 23:06:31 $ * * */ public class SchemaCompiler { public static class Parameters { private File baseDir; private File[] xsdFiles; private File[] wsdlFiles; private File[] javaFiles; private File[] configFiles; private File[] classpath; private File outputJar; private String name; private File srcDir; private File classesDir; private String memoryInitialSize; private String memoryMaximumSize; private String compiler; private String jar; private boolean nojavac; private boolean quiet; private boolean verbose; private boolean download; private Collection errorListener; private boolean noUpa; private boolean noPvr; private boolean debug; private String repackage; private List extensions = Collections.EMPTY_LIST; private boolean jaxb; private Set mdefNamespaces = Collections.EMPTY_SET; private EntityResolver entityResolver; public File getBaseDir() { return baseDir; } public void setBaseDir(File baseDir) { this.baseDir = baseDir; } public File[] getXsdFiles() { return xsdFiles; } public void setXsdFiles(File[] xsdFiles) { this.xsdFiles = xsdFiles; } public File[] getWsdlFiles() { return wsdlFiles; } public void setWsdlFiles(File[] wsdlFiles) { this.wsdlFiles = wsdlFiles; } public File[] getJavaFiles() { return javaFiles; } public void setJavaFiles(File[] javaFiles) { this.javaFiles = javaFiles; } public File[] getConfigFiles() { return configFiles; } public void setConfigFiles(File[] configFiles) { this.configFiles = configFiles; } public File[] getClasspath() { return classpath; } public void setClasspath(File[] classpath) { this.classpath = classpath; } public File getOutputJar() { return outputJar; } public void setOutputJar(File outputJar) { this.outputJar = outputJar; } public String getName() { return name; } public void setName(String name) { this.name = name; } public File getSrcDir() { return srcDir; } public void setSrcDir(File srcDir) { this.srcDir = srcDir; } public File getClassesDir() { return classesDir; } public void setClassesDir(File classesDir) { this.classesDir = classesDir; } public boolean isNojavac() { return nojavac; } public void setNojavac(boolean nojavac) { this.nojavac = nojavac; } public boolean isQuiet() { return quiet; } public void setQuiet(boolean quiet) { this.quiet = quiet; } public boolean isVerbose() { return verbose; } public void setVerbose(boolean verbose) { this.verbose = verbose; } public boolean isDownload() { return download; } public void setDownload(boolean download) { this.download = download; } public boolean isNoUpa() { return noUpa; } public void setNoUpa(boolean noUpa) { this.noUpa = noUpa; } public boolean isNoPvr() { return noPvr; } public void setNoPvr(boolean noPvr) { this.noPvr = noPvr; } public boolean isDebug() { return debug; } public void setDebug(boolean debug) { this.debug = debug; } public String getMemoryInitialSize() { return memoryInitialSize; } public void setMemoryInitialSize(String memoryInitialSize) { this.memoryInitialSize = memoryInitialSize; } public String getMemoryMaximumSize() { return memoryMaximumSize; } public void setMemoryMaximumSize(String memoryMaximumSize) { this.memoryMaximumSize = memoryMaximumSize; } public String getCompiler() { return compiler; } public void setCompiler(String compiler) { this.compiler = compiler; } public String getJar() { return jar; } public void setJar(String jar) { this.jar = jar; } public void setJaxb(boolean jaxb) { this.jaxb = jaxb; } public boolean getJaxb() { return this.jaxb; } public Collection getErrorListener() { return errorListener; } public void setErrorListener(Collection errorListener) { this.errorListener = errorListener; } public String getRepackage() { return repackage; } public void setRepackage(String newRepackage) { repackage = newRepackage; } public List getExtensions() { return extensions; } public void setExtensions(List extensions) { this.extensions = extensions; } public Set getMdefNamespaces() { return mdefNamespaces; } public void setMdefNamespaces(Set mdefNamespaces) { this.mdefNamespaces = mdefNamespaces; } public EntityResolver getEntityResolver() { return entityResolver; } public void setEntityResolver(EntityResolver entityResolver) { this.entityResolver = entityResolver; } } private static SchemaTypeSystem loadTypeSystem( String name, File[] xsdFiles, File[] wsdlFiles, File[] configFiles, ResourceLoader cpResourceLoader, boolean download, boolean noUpa, boolean noPvr, Set mdefNamespaces, File baseDir, Map sourcesToCopyMap, Collection outerErrorListener, EntityResolver entityResolver) { XmlErrorWatcher errorListener = new XmlErrorWatcher(outerErrorListener); // For parsing XSD and WSDL files, we should use the SchemaDocument // classloader rather than the thread context classloader. This is // because in some situations (such as when being invoked by ant // underneath the ide) the context classloader is potentially weird // (because of the design of ant). SchemaTypeLoader loader = XmlBeans.typeLoaderForClassLoader(SchemaDocument.class.getClassLoader()); // step 1, parse all the XSD files. ArrayList scontentlist = new ArrayList(); if (xsdFiles != null) { for (int i = 0; i < xsdFiles.length; i++) { try { XmlOptions options = new XmlOptions(); options.setLoadLineNumbers(); options.setLoadMessageDigest(); options.setEntityResolver(entityResolver); XmlObject schemadoc = loader.parse(xsdFiles[i], null, options); if (!(schemadoc instanceof SchemaDocument)) { StscState.addError(errorListener, "Document " + xsdFiles[i] + " is not a schema file", XmlErrorContext.CANNOT_LOAD_XSD_FILE, schemadoc); } else { StscState.addInfo(errorListener, "Loading schema file " + xsdFiles[i]); XmlOptions opts = new XmlOptions().setErrorListener(errorListener); if (schemadoc.validate(opts)) scontentlist.add(((SchemaDocument)schemadoc).getSchema()); } } catch (XmlException e) { errorListener.add(e.getError()); } catch (Exception e) { StscState.addError(errorListener, "Cannot load file " + xsdFiles[i] + ": " + e, XmlErrorContext.CANNOT_LOAD_XSD_FILE, xsdFiles[i]); } } } // step 2, parse all WSDL files if (wsdlFiles != null) { for (int i = 0; i < wsdlFiles.length; i++) { try { XmlOptions options = new XmlOptions(); options.setLoadLineNumbers(); options.setEntityResolver(entityResolver); options.setLoadSubstituteNamespaces(Collections.singletonMap( "http://schemas.xmlsoap.org/wsdl/", "http://www.apache.org/internal/xmlbeans/wsdlsubst" )); XmlObject wsdldoc = loader.parse(wsdlFiles[i], null, options); if (!(wsdldoc instanceof org.apache.internal.xmlbeans.wsdlsubst.DefinitionsDocument)) StscState.addError(errorListener, "Document " + wsdlFiles[i] + " is not a wsdl file", XmlErrorContext.CANNOT_LOAD_XSD_FILE, wsdldoc); else { if (wsdlContainsEncoded(wsdldoc)) StscState.addWarning(errorListener, "The WSDL " + wsdlFiles[i] + " uses SOAP encoding. SOAP encoding is not compatible with literal XML Schema.", XmlErrorContext.CANNOT_LOAD_XSD_FILE, wsdldoc); StscState.addInfo(errorListener, "Loading wsdl file " + wsdlFiles[i]); XmlObject[] types = ((org.apache.internal.xmlbeans.wsdlsubst.DefinitionsDocument)wsdldoc).getDefinitions().getTypesArray(); int count = 0; for (int j = 0; j < types.length; j++) { // explicit cast for paranoia SchemaDocument.Schema[] schemas = (SchemaDocument.Schema[])types[j].selectPath("declare namespace xs=\"http://www.w3.org/2001/XMLSchema\" xs:schema"); for (int k = 0; k < schemas.length; k++) { if (schemas[k].validate(new XmlOptions().setErrorListener(errorListener))) scontentlist.add(schemas[k]); } count += schemas.length; } StscState.addInfo(errorListener, "Processing " + count + " schema(s) in " + wsdlFiles[i].toString()); } } catch (XmlException e) { errorListener.add(e.getError()); } catch (Exception e) { StscState.addError(errorListener, "Cannot load file " + wsdlFiles[i] + ": " + e, XmlErrorContext.CANNOT_LOAD_XSD_FILE, wsdlFiles[i]); } } } SchemaDocument.Schema[] sdocs = (SchemaDocument.Schema[])scontentlist.toArray(new SchemaDocument.Schema[scontentlist.size()]); // now the config files. ArrayList cdoclist = new ArrayList(); if (configFiles != null) { for (int i = 0; i < configFiles.length; i++) { try { XmlOptions options = new XmlOptions(); options.put( XmlOptions.LOAD_LINE_NUMBERS ); options.setEntityResolver(entityResolver); XmlObject configdoc = loader.parse(configFiles[i], null, options); if (!(configdoc instanceof ConfigDocument)) StscState.addError(errorListener, "Document " + configFiles[i] + " is not an xsd config file", XmlErrorContext.CANNOT_LOAD_XSD_FILE, configdoc); else { StscState.addInfo(errorListener, "Loading config file " + configFiles[i]); if (configdoc.validate(new XmlOptions().setErrorListener(errorListener))) cdoclist.add(((ConfigDocument)configdoc).getConfig()); } } catch (XmlException e) { errorListener.add(e.getError()); } catch (Exception e) { StscState.addError(errorListener, "Cannot load xsd config file " + configFiles[i] + ": " + e, XmlErrorContext.CANNOT_LOAD_XSD_CONFIG_FILE, configFiles[i]); } } } ConfigDocument.Config[] cdocs = (ConfigDocument.Config[])cdoclist.toArray(new ConfigDocument.Config[cdoclist.size()]); SchemaTypeLoader linkTo = SchemaTypeLoaderImpl.build(null, cpResourceLoader, null); URI baseURI = null; if (baseDir != null) baseURI = baseDir.toURI(); XmlOptions opts = new XmlOptions(); if (download) opts.setCompileDownloadUrls(); if (noUpa) opts.setCompileNoUpaRule(); if (noPvr) opts.setCompileNoPvrRule(); if (mdefNamespaces != null) opts.setCompileMdefNamespaces(mdefNamespaces); opts.setCompileNoValidation(); // already validated here opts.setEntityResolver(entityResolver); // now pass it to the main compile function SchemaTypeSystemCompiler.Parameters params = new SchemaTypeSystemCompiler.Parameters(); params.setName(name); params.setSchemas(sdocs); params.setConfigs(cdocs); params.setLinkTo(linkTo); params.setOptions(opts); params.setErrorListener(errorListener); params.setJavaize(true); params.setBaseURI(baseURI); params.setSourcesToCopyMap(sourcesToCopyMap); return SchemaTypeSystemCompiler.compile(params); } public static boolean compile(SchemaCompiler.Parameters params) { File baseDir = params.getBaseDir(); File[] xsdFiles = params.getXsdFiles(); File[] wsdlFiles = params.getWsdlFiles(); File[] javaFiles = params.getJavaFiles(); File[] configFiles = params.getConfigFiles(); File[] classpath = params.getClasspath(); File outputJar = params.getOutputJar(); String name = params.getName(); File srcDir = params.getSrcDir(); File classesDir = params.getClassesDir(); String compiler = params.getCompiler(); String jar = params.getJar(); String memoryInitialSize = params.getMemoryInitialSize(); String memoryMaximumSize = params.getMemoryMaximumSize(); boolean nojavac = params.isNojavac(); boolean debug = params.isDebug(); boolean verbose = params.isVerbose(); boolean quiet = params.isQuiet(); boolean download = params.isDownload(); boolean noUpa = params.isNoUpa(); boolean noPvr = params.isNoPvr(); Collection outerErrorListener = params.getErrorListener(); String repackage = params.getRepackage(); List extensions = params.getExtensions(); boolean jaxb = params.getJaxb(); Set mdefNamespaces = params.getMdefNamespaces(); EntityResolver entityResolver = params.getEntityResolver(); if (srcDir == null || classesDir == null) throw new IllegalArgumentException("src and class gen directories may not be null."); long start = System.currentTimeMillis(); // Calculate the usenames based on the relativized filenames on the filesystem if (baseDir == null) baseDir = new File(System.getProperty("user.dir")); ResourceLoader cpResourceLoader = null; Map sourcesToCopyMap = new HashMap(); if (classpath != null) cpResourceLoader = new PathResourceLoader(classpath); boolean result = true; // build the in-memory type system XmlErrorWatcher errorListener = new XmlErrorWatcher(outerErrorListener); SchemaTypeSystem system = loadTypeSystem(name, xsdFiles, wsdlFiles, configFiles, cpResourceLoader, download, noUpa, noPvr, mdefNamespaces, baseDir, sourcesToCopyMap, errorListener, entityResolver); if (errorListener.hasError()) result = false; long finish = System.currentTimeMillis(); if (!quiet) System.out.println("Time to build schema type system: " + ((double)(finish - start) / 1000.0) + " seconds" ); // now code generate and compile the JAR if (result && system != null) // todo: don't check "result" here if we want to compile anyway, ignoring invalid schemas { start = System.currentTimeMillis(); // generate source and .xsb List sourcefiles = new ArrayList(); result &= SchemaCodeGenerator.compileTypeSystem(system, srcDir, javaFiles, sourcesToCopyMap, classpath, classesDir, outputJar, nojavac, jaxb, errorListener, repackage, verbose, sourcefiles); result &= !errorListener.hasError(); if (result) { finish = System.currentTimeMillis(); if (!quiet) System.out.println("Time to generate code: " + ((double)(finish - start) / 1000.0) + " seconds" ); } // compile source if (result && !nojavac) { start = System.currentTimeMillis(); if (javaFiles != null) sourcefiles.addAll(java.util.Arrays.asList(javaFiles)); if (!CodeGenUtil.externalCompile(sourcefiles, classesDir, classpath, debug, compiler, memoryInitialSize, memoryMaximumSize, quiet, verbose)) result = false; finish = System.currentTimeMillis(); if (result && !params.isQuiet()) System.out.println("Time to compile code: " + ((double)(finish - start) / 1000.0) + " seconds" ); // jar classes and .xsb if (result && outputJar != null) { if (!CodeGenUtil.externalJar(classesDir, outputJar, jar, quiet, verbose)) result = false; if (result && !params.isQuiet()) System.out.println("Compiled types to: " + outputJar); } } } if (!result && !quiet) { System.out.println("BUILD FAILED"); } else { // call schema compiler extension if registered runExtensions(extensions, system, classesDir); } if (cpResourceLoader != null) cpResourceLoader.close(); return result; } private static void runExtensions(List extensions, SchemaTypeSystem system, File classesDir) { if (extensions != null && extensions.size() > 0) { SchemaCompilerExtension sce = null; Iterator i = extensions.iterator(); Map extensionParms = null; String classesDirName = null; try { classesDirName = classesDir.getCanonicalPath(); } catch(java.io.IOException e) { System.out.println("WARNING: Unable to get the path for schema jar file"); classesDirName = classesDir.getAbsolutePath(); } while (i.hasNext()) { Extension extension = (Extension) i.next(); try { sce = (SchemaCompilerExtension) extension.getClassName().newInstance(); } catch (InstantiationException e) { System.out.println("UNABLE to instantiate schema compiler extension:" + extension.getClassName().getName()); System.out.println("EXTENSION Class was not run"); break; } catch (IllegalAccessException e) { System.out.println("ILLEGAL ACCESS Exception when attempting to instantiate schema compiler extension: " + extension.getClassName().getName()); System.out.println("EXTENSION Class was not run"); break; } System.out.println("Running Extension: " + sce.getExtensionName()); extensionParms = new HashMap(); Iterator parmsi = extension.getParams().iterator(); while (parmsi.hasNext()) { Extension.Param p = (Extension.Param) parmsi.next(); extensionParms.put(p.getName(), p.getValue()); } extensionParms.put("classesDir", classesDirName); sce.schemaCompilerExtension(system, extensionParms); } } } private static boolean wsdlContainsEncoded(XmlObject wsdldoc) { // search for any <soap:body use="encoded"/> etc. XmlObject[] useAttrs = wsdldoc.selectPath( "declare namespace soap='http://schemas.xmlsoap.org/wsdl/soap/' " + ".//soap:body/@use|.//soap:header/@use|.//soap:fault/@use"); for (int i = 0; i < useAttrs.length; i++) { if ("encoded".equals(((SimpleValue)useAttrs[i]).getStringValue())) return true; } return false; } } 1.3 +5 -3 incubator-geronimo/modules/connector/maven.xml Index: maven.xml =================================================================== RCS file: /home/cvs/incubator-geronimo/modules/connector/maven.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- maven.xml 9 Feb 2004 05:52:01 -0000 1.2 +++ maven.xml 10 Feb 2004 23:06:31 -0000 1.3 @@ -10,9 +10,11 @@ <preGoal name="java:compile"> <xmlbeans:schema2java - sourceschema="${basedir}/src/schema/geronimo-connector_1_5.xsd" + sourcedir="${basedir}/src" + sourceschema="schema/geronimo-connector_1_5.xsd" xmlconfigs="${basedir}/src/schema/xmlconfig.xml" - targetdir="${basedir}/target/xmlbeans"/> + targetdir="${basedir}/target/xmlbeans" + cataloglocation="${basedir}/../specs/schema/src/catalog/resolver-catalog.xml"/> </preGoal> <!--${basedir}/src/schema/connector_1_0.xsd,${basedir}/src/schema/connector_1_5.xsd,--> </project> 1.2 +5 -3 incubator-geronimo/modules/deployment/maven.xml Index: maven.xml =================================================================== RCS file: /home/cvs/incubator-geronimo/modules/deployment/maven.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- maven.xml 9 Feb 2004 07:17:31 -0000 1.1 +++ maven.xml 10 Feb 2004 23:06:31 -0000 1.2 @@ -7,9 +7,11 @@ <preGoal name="java:compile"> <xmlbeans:schema2java - sourceschema="${basedir}/src/schema/geronimo-config.xsd" + sourcedir="${basedir}/src" + sourceschema="schema/geronimo-config.xsd" xmlconfigs="${basedir}/src/schema/xmlconfig.xml" - targetdir="${basedir}/target/xmlbeans"/> + targetdir="${basedir}/target/xmlbeans" + cataloglocation="${basedir}/../specs/schema/src/catalog/resolver-catalog.xml"/> </preGoal> </project> 1.2 +5 -3 incubator-geronimo/modules/jetty/maven.xml Index: maven.xml =================================================================== RCS file: /home/cvs/incubator-geronimo/modules/jetty/maven.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- maven.xml 6 Feb 2004 08:55:49 -0000 1.1 +++ maven.xml 10 Feb 2004 23:06:31 -0000 1.2 @@ -10,9 +10,11 @@ <preGoal name="java:compile"> <xmlbeans:schema2java - sourceschema="${basedir}/src/schema/geronimo-jetty.xsd" + sourcedir="${basedir}/src" + sourceschema="schema/geronimo-jetty.xsd" xmlconfigs="${basedir}/src/schema/xmlconfig.xml" - targetdir="${basedir}/target/xmlbeans"/> + targetdir="${basedir}/target/xmlbeans" + cataloglocation="${basedir}/../specs/schema/src/catalog/resolver-catalog.xml"/> </preGoal> </project> 1.4 +7 -1 incubator-geronimo/modules/maven-xmlbeans-plugin/plugin.jelly Index: plugin.jelly =================================================================== RCS file: /home/cvs/incubator-geronimo/modules/maven-xmlbeans-plugin/plugin.jelly,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- plugin.jelly 8 Feb 2004 19:37:00 -0000 1.3 +++ plugin.jelly 10 Feb 2004 23:06:31 -0000 1.4 @@ -19,6 +19,9 @@ <j:if test="${targetdir == null}"> <fail>Missing required attribute: targetdir</fail> </j:if> + <j:if test="${sourcedir == null}"> + <fail>Missing required attribute: sourcedir</fail> + </j:if> <j:if test="${sourceschema == null}"> <fail>Missing required attribute: sourceschema</fail> </j:if> @@ -33,14 +36,17 @@ <uptodate property="${uptodatePropName}" targetfile="${uptodateFile}"> - <srcfiles dir="${targetdir}" includes="**/*.xsd*"/> + <srcfiles dir="${sourcedir}" + includes="${sourceschema}"/> </uptodate> <j:if test="${context.getVariable(uptodatePropName) == null}"> <j:invokeStatic var="dummy" className="org.apache.geronimo.tools.xmlbeans.SchemaCompilerWrapper" method="CompileSchemas"> + <j:arg type="java.lang.String" value="${sourcedir}"/> <j:arg type="java.lang.String" value="${sourceschema}"/> <j:arg type="java.lang.String" value="${xmlconfigs}"/> <j:arg type="java.lang.String" value="${targetdir}"/> + <j:arg type="java.lang.String" value="${cataloglocation}"/> </j:invokeStatic> <touch file="${uptodateFile}"/> 1.4 +5 -3 incubator-geronimo/specs/schema/maven.xml Index: maven.xml =================================================================== RCS file: /home/cvs/incubator-geronimo/specs/schema/maven.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- maven.xml 6 Feb 2004 05:28:46 -0000 1.3 +++ maven.xml 10 Feb 2004 23:06:31 -0000 1.4 @@ -10,9 +10,11 @@ <preGoal name="java:compile"> <xmlbeans:schema2java - sourceschema="${basedir}/src/j2ee_1_3schema/connector_1_0.xsd,${basedir}/src/j2ee_1_4schema/j2ee_1_4.xsd,${basedir}/src/j2ee_1_4schema/connector_1_5.xsd,${basedir}/src/j2ee_1_4schema/ejb-jar_2_1.xsd" + sourcedir="${basedir}/src" + sourceschema="j2ee_1_3schema/connector_1_0.xsd,j2ee_1_4schema/j2ee_1_4.xsd,j2ee_1_4schema/connector_1_5.xsd,j2ee_1_4schema/ejb-jar_2_1.xsd" xmlconfigs="${basedir}/src/conf/xmlconfig.xml" - targetdir="${basedir}/target/xmlbeans"/> + targetdir="${basedir}/target/xmlbeans" + cataloglocation="${basedir}/src/catalog/resolver-catalog.xml"/> </preGoal> </project> 1.1 incubator-geronimo/specs/schema/src/catalog/resolver-catalog.xml Index: resolver-catalog.xml =================================================================== <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> <public publicId="http://java.sun.com/xml/ns/j2ee" uri="../j2ee_1_4schema/j2ee_1_4.xsd"/> <public publicId="http://www.w3.org/XML/1998/namespace" uri="../j2ee_1_4schema/xml.xsd"/> <system systemId="http://www.ibm.com/webservices/xsd/j2ee_web_services_client_1_1.xsd" uri="../j2ee_1_4schema/j2ee_web_services_client_1_1.xsd"/> </catalog>