Updated buid info and made package list consistant.
This commit is contained in:
parent
f290b73132
commit
d4f80f338a
11
build.txt
11
build.txt
|
@ -41,8 +41,9 @@ src/main/build/jvm-test.sh /usr/lib/jvm/jdk1.5.0_22/
|
||||||
|
|
||||||
-- Make release build --
|
-- Make release build --
|
||||||
|
|
||||||
# todo make work
|
cd /tmp;
|
||||||
cd project-root/;
|
git clone ssh://<scm_username>@git.sv.gnu.org/srv/git/x4o.git;
|
||||||
|
cd x4o;
|
||||||
mvn clean package;
|
mvn clean package;
|
||||||
mvn -B -Dusername=<scm_username> clean install release:clean release:prepare release:perform;
|
mvn -B -Dusername=<scm_username> clean install release:clean release:prepare release:perform;
|
||||||
src/main/build/gnu-up.sh <scm_username> <version>
|
src/main/build/gnu-up.sh <scm_username> <version>
|
||||||
|
@ -51,8 +52,10 @@ src/main/build/gnu-up.sh <scm_username> <version>
|
||||||
-- Make site --
|
-- Make site --
|
||||||
|
|
||||||
cd project-root/;
|
cd project-root/;
|
||||||
MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=128m" mvn -Pbuild-site-x4o-support clean package site site:stage
|
mvn clean install; # (installs the snapshots plugins so we can run the current eld-doc task in site phase)
|
||||||
|
MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=128m" mvn -Pbuild-site-x4o-support clean package site site:stage;
|
||||||
|
cp -r target/staging/x4o-* target/site/;
|
||||||
|
cp -r target/site/ ~/public_html/site-x4o;
|
||||||
|
|
||||||
-- Check for code style --
|
-- Check for code style --
|
||||||
|
|
||||||
|
|
|
@ -53,6 +53,9 @@ public class TestFooBarDriver extends X4ODriver<TestFooBar> {
|
||||||
return LANGUAGE_VERSIONS;
|
return LANGUAGE_VERSIONS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Convenience method not really needed but like this it limits a few non-needed objects.
|
||||||
|
// and does makes sure only only one instance is registered to the X4ODriverManager.
|
||||||
|
// thus it is currently the preferred way to create and get an instance of your language driver.
|
||||||
static public TestFooBarDriver getInstance() {
|
static public TestFooBarDriver getInstance() {
|
||||||
return (TestFooBarDriver)X4ODriverManager.getX4ODriver(LANGUAGE_NAME);
|
return (TestFooBarDriver)X4ODriverManager.getX4ODriver(LANGUAGE_NAME);
|
||||||
}
|
}
|
||||||
|
@ -172,6 +175,7 @@ writer.writeFile(result, new File("/tmp/test-bean.xml");
|
||||||
+--
|
+--
|
||||||
|
|
||||||
And writer gives output like;
|
And writer gives output like;
|
||||||
|
(please note that full write support is not yet completed)
|
||||||
|
|
||||||
+--
|
+--
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
|
@ -64,7 +64,7 @@ Usage
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.x4o.plugin</groupId>
|
<groupId>org.x4o.plugin</groupId>
|
||||||
<artifactId>x4o-plugin-ant</artifactId>
|
<artifactId>x4o-plugin-ant</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>0.8.6-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
+--
|
+--
|
||||||
|
|
||||||
|
|
|
@ -48,9 +48,9 @@ public abstract class X4ODriver<T> {
|
||||||
public final static String DEFAULT_LANGUAGE_VERSION = "1.0";
|
public final static String DEFAULT_LANGUAGE_VERSION = "1.0";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Public constructor.
|
* marker constructor.
|
||||||
*/
|
*/
|
||||||
public X4ODriver() {
|
public X4ODriver(/*X4ODriverManager.ConstructorMarker marker*/) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -207,6 +207,8 @@ public final class X4ODriverManager {
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
Class<?> driverClass = X4OLanguageClassLoader.loadClass(driverClassName);
|
Class<?> driverClass = X4OLanguageClassLoader.loadClass(driverClassName);
|
||||||
|
//Constructor<?> markedConstructor = driverClass.getDeclaredConstructor(new Class[]{ConstructorMarker.class});
|
||||||
|
//X4ODriver<?> driver = (X4ODriver<?>)markedConstructor.newInstance(new Object[]{new ConstructorMarker()});
|
||||||
X4ODriver<?> driver = (X4ODriver<?>)driverClass.newInstance();
|
X4ODriver<?> driver = (X4ODriver<?>)driverClass.newInstance();
|
||||||
registerX4ODriver(driver);
|
registerX4ODriver(driver);
|
||||||
return driver;
|
return driver;
|
||||||
|
@ -215,6 +217,14 @@ public final class X4ODriverManager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class to make sure all driver instances are created by this manager instance.
|
||||||
|
|
||||||
|
final public class ConstructorMarker {
|
||||||
|
private ConstructorMarker() {
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Loads all defined language drivers in classpath.
|
* Loads all defined language drivers in classpath.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* Provides interfaces for two way object converters.
|
* The interfaces for two way object converters.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* Provides implementations of object to text converters.
|
* The default implementations to convert text to objects.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2004-2013, Willem Cazander
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||||
|
* that the following conditions are met:
|
||||||
|
*
|
||||||
|
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||||
|
* following disclaimer.
|
||||||
|
* * 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.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||||
|
* EXPRESS 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 COPYRIGHT HOLDER OR 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.
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* The SAX Extended classes and interfaces.
|
||||||
|
*
|
||||||
|
* @since 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.x4o.xml.io.sax.ext;
|
|
@ -21,7 +21,7 @@
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* The Sax based classes and interfaces.
|
* The SAX based classes and interfaces.
|
||||||
*
|
*
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -42,7 +42,7 @@ import org.xml.sax.SAXException;
|
||||||
public class ApiDocNodeWriterBean implements ApiDocNodeWriter {
|
public class ApiDocNodeWriterBean implements ApiDocNodeWriter {
|
||||||
|
|
||||||
private ApiDocNodeBody nodeBody = null;
|
private ApiDocNodeBody nodeBody = null;
|
||||||
private Integer nodeBodyOrder = null;
|
private List<Integer> nodeBodyOrders = null;
|
||||||
private Object bean = null;
|
private Object bean = null;
|
||||||
private String method = null;
|
private String method = null;
|
||||||
private List<Class<?>> targetClasses = null;
|
private List<Class<?>> targetClasses = null;
|
||||||
|
@ -75,10 +75,18 @@ public class ApiDocNodeWriterBean implements ApiDocNodeWriter {
|
||||||
if (ammo==null) {
|
if (ammo==null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
ApiDocNodeWriterBean methodWriter = new ApiDocNodeWriterBean(ammo.nodeBody(), bean, method.getName(), ammo.targetClasses());
|
if (ammo.targetClasses().length==0) {
|
||||||
if (ammo.nodeBodyOrder()!=-1) {
|
throw new IllegalArgumentException("Can't configure writer bean with empty 'targetClasses' parameter.");
|
||||||
methodWriter.setNodeBodyOrder(ammo.nodeBodyOrder());
|
|
||||||
}
|
}
|
||||||
|
if (ammo.targetClasses().length!=ammo.nodeBodyOrders().length) {
|
||||||
|
throw new IllegalArgumentException("Can't configure writer bean with non-equal array size of 'nodeBodyOrders'("+ammo.nodeBodyOrders().length+") and 'targetClasses'("+ammo.targetClasses().length+") parameters.");
|
||||||
|
}
|
||||||
|
ApiDocNodeWriterBean methodWriter = new ApiDocNodeWriterBean(ammo.nodeBody(), bean, method.getName(), ammo.targetClasses());
|
||||||
|
List<Integer> nodeBodyOrder = new ArrayList<Integer>();
|
||||||
|
for (int order:ammo.nodeBodyOrders()) {
|
||||||
|
nodeBodyOrder.add(order);
|
||||||
|
}
|
||||||
|
methodWriter.setNodeBodyOrders(nodeBodyOrder);
|
||||||
if (ammo.contentGroup().length()>0) {
|
if (ammo.contentGroup().length()>0) {
|
||||||
methodWriter.setContentGroup(ammo.contentGroup());
|
methodWriter.setContentGroup(ammo.contentGroup());
|
||||||
}
|
}
|
||||||
|
@ -154,17 +162,17 @@ public class ApiDocNodeWriterBean implements ApiDocNodeWriter {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the nodeBodyOrder
|
* @return the nodeBodyOrders
|
||||||
*/
|
*/
|
||||||
public Integer getNodeBodyOrder() {
|
public List<Integer> getNodeBodyOrders() {
|
||||||
return nodeBodyOrder;
|
return nodeBodyOrders;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param nodeBodyOrder the nodeBodyOrder to set
|
* @param nodeBodyOrders the nodeBodyOrders to set
|
||||||
*/
|
*/
|
||||||
public void setNodeBodyOrder(Integer nodeBodyOrder) {
|
public void setNodeBodyOrders(List<Integer> nodeBodyOrders) {
|
||||||
this.nodeBodyOrder = nodeBodyOrder;
|
this.nodeBodyOrders = nodeBodyOrders;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -43,7 +43,7 @@ public @interface ApiDocNodeWriterMethod {
|
||||||
|
|
||||||
ApiDocNodeBody nodeBody();
|
ApiDocNodeBody nodeBody();
|
||||||
|
|
||||||
int nodeBodyOrder() default -1;
|
int[] nodeBodyOrders() default {-1};
|
||||||
|
|
||||||
String contentGroup() default "";
|
String contentGroup() default "";
|
||||||
|
|
||||||
|
|
|
@ -34,6 +34,8 @@ import java.io.OutputStreamWriter;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.io.Writer;
|
import java.io.Writer;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -387,7 +389,7 @@ public class ApiDocWriter {
|
||||||
|
|
||||||
private List<ApiDocNodeWriter> findNodeBodyWriters(ApiDocNode node,ApiDocNodeBody nodeBody) {
|
private List<ApiDocNodeWriter> findNodeBodyWriters(ApiDocNode node,ApiDocNodeBody nodeBody) {
|
||||||
List<ApiDocNodeWriter> result = new ArrayList<ApiDocNodeWriter>();
|
List<ApiDocNodeWriter> result = new ArrayList<ApiDocNodeWriter>();
|
||||||
Class<?> objClass = node.getUserData().getClass();
|
final Class<?> objClass = node.getUserData().getClass();
|
||||||
for (ApiDocNodeWriter writer:doc.getNodeBodyWriters()) {
|
for (ApiDocNodeWriter writer:doc.getNodeBodyWriters()) {
|
||||||
if (!nodeBody.equals(writer.getNodeBody())) {
|
if (!nodeBody.equals(writer.getNodeBody())) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -398,6 +400,45 @@ public class ApiDocWriter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Collections.sort(result, new Comparator<ApiDocNodeWriter>() {
|
||||||
|
public int compare(ApiDocNodeWriter o1, ApiDocNodeWriter o2) {
|
||||||
|
int index1 = -1;
|
||||||
|
int index2 = -1;
|
||||||
|
for (int i=0;i<o1.getTargetClasses().size();i++) {
|
||||||
|
Class<?> c = o1.getTargetClasses().get(i);
|
||||||
|
if (c.isAssignableFrom(objClass)) {
|
||||||
|
index1 = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (int i=0;i<o2.getTargetClasses().size();i++) {
|
||||||
|
Class<?> c = o2.getTargetClasses().get(i);
|
||||||
|
if (c.isAssignableFrom(objClass)) {
|
||||||
|
index1 = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// TODO: note check return value if are oke in order..
|
||||||
|
if (index1==-1 && index2==-1) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (index1==-1) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (index2==-1) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
int orderValue1 = o1.getNodeBodyOrders().get(index1);
|
||||||
|
int orderValue2 = o2.getNodeBodyOrders().get(index2);
|
||||||
|
if (orderValue1==orderValue2) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (orderValue1 > orderValue2) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
});
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,6 +36,7 @@ public interface ApiDocNodeWriter {
|
||||||
|
|
||||||
ApiDocNodeBody getNodeBody();
|
ApiDocNodeBody getNodeBody();
|
||||||
List<Class<?>> getTargetClasses();
|
List<Class<?>> getTargetClasses();
|
||||||
|
List<Integer> getNodeBodyOrders();
|
||||||
|
|
||||||
void writeNodeContent(ApiDocWriteEvent<ApiDocNode> e) throws SAXException;
|
void writeNodeContent(ApiDocWriteEvent<ApiDocNode> e) throws SAXException;
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Api Doc Dom classes.
|
* The Api Doc Dom classes.
|
||||||
*
|
*
|
||||||
* @author Willem Cazander
|
* @author Willem Cazander
|
||||||
* @since 1.0 May 12,2013
|
* @since 1.0 May 12,2013
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Api Doc Writer classes.
|
* The Api Doc Writer classes.
|
||||||
*
|
*
|
||||||
* @author Willem Cazander
|
* @author Willem Cazander
|
||||||
* @since 1.0 May 12,2013
|
* @since 1.0 May 12,2013
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* The ant plugin tasks.
|
* The Ant plugin tasks.
|
||||||
*
|
*
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* The maven plugin mojos.
|
* The Maven plugin mojos.
|
||||||
*
|
*
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue