djencks 2004/02/02 14:04:22
Added: modules/maven-xmlbeans-plugin .cvsignore maven.xml
plugin.jelly project.xml
modules/maven-xmlbeans-plugin/src/java/org/apache/geronimo/tools/xmlbeans
SchemaCompilerWrapper.java
Log:
apache xmlbeans maven plugin
Revision Changes Path
1.1 incubator-geronimo/modules/maven-xmlbeans-plugin/.cvsignore
Index: .cvsignore
===================================================================
.project
.classpath
maven.log
junit*.properties
target
1.1 incubator-geronimo/modules/maven-xmlbeans-plugin/maven.xml
Index: maven.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Revision: 1.1 $ $Date: 2004/02/02 22:04:21 $ -->
<project default="default"
xmlns:j="jelly:core"
xmlns:u="jelly:util"
xmlns:ant="jelly:ant"
xmlns:maven="jelly:maven"
xmlns:define="jelly:define"
xmlns:deploy="geronimo:xmlbeans">
<!-- ================= -->
<!-- Global Properties -->
<!-- ================= -->
<!-- Determine what the top-level project root is -->
<j:set var="project.root" value="${pom.parentBasedir().getParentFile().getCanonicalFile()}"/>
<!-- Load the global properties -->
<ant:property file="${project.root}/etc/global.properties"/>
<!-- ==================== -->
<!-- Default Global Goals -->
<!-- ==================== -->
<goal name="default">
<attainGoal name="plugin:install"/>
</goal>
<goal name="build">
<attainGoal name="default"/>
</goal>
<goal name="rebuild">
<attainGoal name="clean"/>
<attainGoal name="build"/>
</goal>
<goal name="clover.wrapper">
<!-- no src/test, don't run clover -->
<!--attainGoal name="clover"/-->
</goal>
</project>
1.1 incubator-geronimo/modules/maven-xmlbeans-plugin/plugin.jelly
Index: plugin.jelly
===================================================================
<?xml version="1.0"?>
<!-- ================================================================== -->
<!-- Geronimo deployment plugin -->
<!-- ================================================================== -->
<project xmlns:j="jelly:core"
xmlns:u="jelly:util"
xmlns:ant="jelly:ant"
xmlns:maven="jelly:maven"
xmlns:define="jelly:define"
xmlns:xmlbeans="geronimo:xmlbeans"
>
<define:taglib uri="geronimo:xmlbeans">
<define:tag name="schema2java" xmlns="jelly:ant">
<j:if test="${targetdir == null}">
<fail>Missing required attribute: targetdir</fail>
</j:if>
<j:if test="${sourceschema == null}">
<fail>Missing required attribute: sourceschema</fail>
</j:if>
<j:if test="${xmlconfigs == null}">
<fail>Missing required attribute: xmlconfigs</fail>
</j:if>
<j:jelly xmlns="jelly:ant">
<j:set var="uptodatePropName" value="xmlbeans.uptodate"/>
<j:expr value="${context.setVariable(uptodatePropName, null)}"/>
<j:set var="uptodateFile" value="${targetdir}/tstamp"/>
<uptodate property="${uptodatePropName}"
targetfile="${uptodateFile}">
<srcfiles dir="${targetdir}" includes="**/*.xsd*"/>
</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="${sourceschema}"/>
<j:arg type="java.lang.String" value="${xmlconfigs}"/>
<j:arg type="java.lang.String" value="${targetdir}"/>
</j:invokeStatic>
<touch file="${uptodateFile}"/>
</j:if>
<ant:path id="maven.xmlbeans.compile.src.set"
location="${targetdir}"/>
<maven:addPath id="maven.compile.src.set"
refid="maven.xmlbeans.compile.src.set"/>
</j:jelly>
</define:tag>
</define:taglib>
</project>
1.1 incubator-geronimo/modules/maven-xmlbeans-plugin/project.xml
Index: project.xml
===================================================================
<?xml version="1.0" encoding="ISO-8859-1"?>
<project>
<pomVersion>3</pomVersion>
<id>geronimo-maven-xmlbeans-plugin</id>
<name>Geronimo maven xmlbeans plugin</name>
<groupId>geronimo</groupId>
<currentVersion>DEV</currentVersion>
<organization>
<name>Apache Software Foundation</name>
<url>http://www.apache.org/</url>
<logo></logo>
</organization>
<inceptionYear>2004</inceptionYear>
<package>org.apache.geronimo</package>
<logo></logo>
<dependencies>
<dependency>
<groupId>xml-commons-resolver</groupId>
<artifactId>xml-commons-resolver</artifactId>
<version>1.1</version>
<properties>
<classloader>root</classloader>
</properties>
</dependency>
<dependency>
<groupId>xmlbeans</groupId>
<artifactId>xbean-apache</artifactId>
<version>1.0-DEV</version>
<properties>
<classloader>root</classloader>
</properties>
</dependency>
</dependencies>
<build>
<sourceDirectory>src/java</sourceDirectory>
<unitTestSourceDirectory>src/test</unitTestSourceDirectory>
<unitTest>
<includes>
<include>**/*Test.java</include>
</includes>
</unitTest>
<resources>
<resource>
<directory>src/plugin-resources</directory>
<targetPath>plugin-resources</targetPath>
</resource>
<resource>
<directory>.</directory>
<includes>
<include>plugin.jelly</include>
<include>plugin.properties</include>
<include>project.properties</include>
<include>project.xml</include>
</includes>
</resource>
</resources>
</build>
</project>
1.1 incubator-geronimo/modules/maven-xmlbeans-plugin/src/java/org/apache/geronimo/tools/xmlbeans/SchemaCompilerWrapper.java
Index: SchemaCompilerWrapper.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 apache@apache.org.
*
* 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. 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.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.StringTokenizer;
import org.apache.xmlbeans.impl.tool.SchemaCompiler;
/**
*
*
* @version $Revision: 1.1 $ $Date: 2004/02/02 22:04:21 $
*
* */
public class SchemaCompilerWrapper {
public static void CompileSchemas(String sourceSchemas, String xmlConfigs, String targetDir)
throws Exception {
List schemas = new ArrayList();
for (StringTokenizer st = new StringTokenizer(sourceSchemas, ","); st.hasMoreTokens();)
{
String schemaName = st.nextToken();
schemas.add(new File(schemaName));
}
List configs = new ArrayList();
if (xmlConfigs != null) {
for (StringTokenizer st = new StringTokenizer(xmlConfigs, ","); st.hasMoreTokens();)
{
String configName = st.nextToken();
configs.add(new File(configName));
}
}
SchemaCompiler.Parameters params = new SchemaCompiler.Parameters();
params.setBaseDir(null);
params.setXsdFiles((File[])schemas.toArray(new File[] {}));
params.setWsdlFiles(new File[] {});
params.setJavaFiles(new File[] {});
params.setConfigFiles((File[])configs.toArray(new File[] {}));
params.setClasspath(new File[] {});
params.setOutputJar(null);
params.setName(null);
params.setSrcDir(new File(targetDir));
params.setClassesDir(new File(targetDir));
params.setCompiler(null);
params.setJar(null);
params.setMemoryInitialSize(null);
params.setMemoryMaximumSize(null);
params.setNojavac(true);
params.setQuiet(false);
params.setVerbose(true);
params.setDownload(true);
params.setNoUpa(true);
params.setNoPvr(true);
params.setDebug(true);
params.setErrorListener(new ArrayList());
params.setRepackage(null);
params.setExtensions(null);
params.setJaxb(false);
params.setMdefNamespaces(null);
boolean result = SchemaCompiler.compile(params);
if (!result) {
Collection errors = params.getErrorListener();
for (Iterator iterator = errors.iterator(); iterator.hasNext();) {
Object o = (Object) iterator.next();
System.out.println("xmlbeans error: " + o);
}
throw new Exception("Schema compilation failed");
}
}
}
|