Author: objectiser
Date: 2008-08-27 09:11:27 -0400 (Wed, 27 Aug 2008)
New Revision: 279
Added:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/AbstractBuildSystem.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/template/
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/template/Ant.template
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/template/Maven.template
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/AntBuildSystem.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/BuildSystem.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/Generator.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/MavenBuildSystem.java
Log:
Added build script templates for Ant and Maven.
Added:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/AbstractBuildSystem.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/AbstractBuildSystem.java
(rev 0)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/AbstractBuildSystem.java 2008-08-27
13:11:27 UTC (rev 279)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+package org.jboss.tools.overlord.cdl.jbossesb.generator;
+
+/**
+ * This class represents an abstract build system.
+ */
+public abstract class AbstractBuildSystem implements BuildSystem {
+
+ private static final String TEMPLATE_SUFFIX = ".template";
+ private static final String TEMPLATE_PREFIX = "template/";
+
+ /**
+ * This method returns the contents for the build
+ * configuration file.
+ *
+ * @param projectName The project name
+ * @return The build file contents
+ */
+ public String getBuildFileContents(String projectName) {
+ String ret=null;
+
+ java.io.InputStream is=
+ AbstractBuildSystem.class.getResourceAsStream(
+ TEMPLATE_PREFIX+getName()+TEMPLATE_SUFFIX);
+
+ if (is != null) {
+
+ try {
+ byte[] b=new byte[is.available()];
+ is.read(b);
+
+ ret = new String(b);
+
+ ret = ret.replaceAll("%PROJECT%", projectName);
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ return(ret);
+ }
+}
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/AntBuildSystem.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/AntBuildSystem.java 2008-08-27
11:29:26 UTC (rev 278)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/AntBuildSystem.java 2008-08-27
13:11:27 UTC (rev 279)
@@ -20,7 +20,7 @@
/**
* This class represents the Ant build system.
*/
-public class AntBuildSystem implements BuildSystem {
+public class AntBuildSystem extends AbstractBuildSystem {
private static final String BUILD_FILE = "build.xml";
private static final String ANT = "Ant";
@@ -28,6 +28,7 @@
private static final String DEPLOYMENT_PATH = "src/conf/deployment.xml";
private static final String JBMQ_CONFIG_PATH =
"src/conf/jbmq-queue-service.xml";
private static final String JAVA_SOURCE_PATH = "src/java";
+ private static final String LIBRARY_PATH = "src/lib";
/**
* This method represents the name of the build
@@ -48,25 +49,7 @@
public String getBuildFilePath() {
return(BUILD_FILE);
}
-
- /**
- * This method returns the contents for the build
- * configuration file.
- *
- * @param projectName The project name
- * @return The build file contents
- */
- public String getBuildFileContents(String projectName) {
- StringBuffer ret=new StringBuffer();
- ret.append("<project name=\""+projectName+
- "\" default=\"startdb\" basedir=\".\">\r\n");
-
- ret.append("</project>\r\n");
-
- return(ret.toString());
- }
-
/**
* This method returns the ESB configuration file
* path.
@@ -106,4 +89,13 @@
return(JAVA_SOURCE_PATH);
}
+ /**
+ * This method returns the library path.
+ *
+ * @return The library path
+ */
+ public String getLibraryPath() {
+ return(LIBRARY_PATH);
+ }
+
}
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/BuildSystem.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/BuildSystem.java 2008-08-27
11:29:26 UTC (rev 278)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/BuildSystem.java 2008-08-27
13:11:27 UTC (rev 279)
@@ -79,4 +79,11 @@
*/
public String getJavaSourcePath();
+ /**
+ * This method returns the library path.
+ *
+ * @return The library path, or null if not required
+ */
+ public String getLibraryPath();
+
}
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/Generator.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/Generator.java 2008-08-27
11:29:26 UTC (rev 278)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/Generator.java 2008-08-27
13:11:27 UTC (rev 279)
@@ -258,7 +258,12 @@
IPath classpathLocation=jproj.getPath().append(new Path(CLASSPATH_FILENAME));
IPath sourceLocation=jproj.getPath().append(
new Path(getBuildSystem().getJavaSourcePath()));
+ IPath libLocation=null;
+ if (getBuildSystem().getLibraryPath() != null) {
+ libLocation=jproj.getPath().append(new Path(getBuildSystem().getLibraryPath()));
+ }
+
// create and set the output and source paths first
IFolder outputFolder=
jproj.getProject().getWorkspace().getRoot().getFolder(outputLocation);
GeneratorUtil.createParentFolder(outputFolder);
@@ -270,6 +275,13 @@
sourceFolder.create(true, true, new org.eclipse.core.runtime.NullProgressMonitor());
sourceFolder.setDerived(true);
+ if (libLocation != null) {
+ IFolder libFolder=
jproj.getProject().getWorkspace().getRoot().getFolder(libLocation);
+ GeneratorUtil.createParentFolder(libFolder);
+ libFolder.create(true, true, new org.eclipse.core.runtime.NullProgressMonitor());
+ libFolder.setDerived(true);
+ }
+
IFile file=jproj.getProject().getWorkspace().getRoot().getFile(classpathLocation);
file.create(null, true, new org.eclipse.core.runtime.NullProgressMonitor());
file.setDerived(true);
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/MavenBuildSystem.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/MavenBuildSystem.java 2008-08-27
11:29:26 UTC (rev 278)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/MavenBuildSystem.java 2008-08-27
13:11:27 UTC (rev 279)
@@ -20,7 +20,7 @@
/**
* This class represents the Ant build system.
*/
-public class MavenBuildSystem implements BuildSystem {
+public class MavenBuildSystem extends AbstractBuildSystem {
private static final String BUILD_FILE = "pom.xml";
private static final String MAVEN = "Maven";
@@ -28,6 +28,7 @@
private static final String DEPLOYMENT_PATH =
"src/main/resources/META-INF/deployment.xml";
private static final String JBMQ_CONFIG_PATH =
"src/main/resources/jbmq-queue-service.xml";
private static final String JAVA_SOURCE_PATH = "src/main/java";
+ private static final String LIBRARY_PATH = null;
/**
* This method represents the name of the build
@@ -50,25 +51,6 @@
}
/**
- * This method returns the contents for the build
- * configuration file.
- *
- * @param projectName The project name
- * @return The build file contents
- */
- public String getBuildFileContents(String projectName) {
- StringBuffer ret=new StringBuffer();
-
- ret.append("<project
xmlns=\"http://maven.apache.org/POM/4.0.0\"\r\n");
-
ret.append("\t\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-in...;
-
ret.append("\t\txsi:schemaLocation=\"http://maven.apache.org/PO...
http://maven.apache.org/maven-v4_0_0.xsd\">\r\n");
-
- ret.append("</project>\r\n");
-
- return(ret.toString());
- }
-
- /**
* This method returns the ESB configuration file
* path.
*
@@ -107,4 +89,13 @@
return(JAVA_SOURCE_PATH);
}
+ /**
+ * This method returns the library path.
+ *
+ * @return The library path
+ */
+ public String getLibraryPath() {
+ return(LIBRARY_PATH);
+ }
+
}
Added:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/template/Ant.template
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/template/Ant.template
(rev 0)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/template/Ant.template 2008-08-27
13:11:27 UTC (rev 279)
@@ -0,0 +1,44 @@
+<project name="%PROJECT%" basedir="." default="deploy"
>
+ <property name="build.dir" value="${basedir}/target" />
+ <property name="classes" value="${build.dir}/classes" />
+ <property name="lib" value="src/lib" />
+ <property name="src" value="src/java" />
+ <property name="conf" value="src/conf" />
+
+ <path id="compile-classpath">
+ <fileset dir="${lib}" includes="*.jar" />
+ </path>
+
+ <target name="init" depends="clean">
+ <mkdir dir="${build.dir}" />
+ </target>
+
+ <target name="clean">
+ <delete dir="${build.dir}" />
+ </target>
+
+ <target name="compile" depends="init">
+ <mkdir dir="${classes}" />
+ <javac srcdir="${src}" destdir="${classes}"
debug="true" deprecation="true">
+ <classpath refid="compile-classpath" />
+ </javac>
+ <copy todir="${classes}">
+ <fileset dir="${conf}" includes="**/*.xml"/>
+ </copy>
+ </target>
+
+ <target name="esbjar" depends="compile">
+ <jar destfile="${build.dir}/${ant.project.name}.esb">
+ <fileset dir="${classes}" />
+ <fileset dir="${build.dir}"
includes="*.jar,*.war"/>
+ <fileset dir="${classes}"
includes="deployment.xml"/>
+ <fileset dir="${classes}"
includes="META-INF/**" />
+ <fileset dir="${lib}" includes="*.jar"/>
+ </jar>
+ </target>
+
+ <target name="deploy" depends="esbjar">
+ <copy todir="${org.jboss.esb.server.deploy.dir}"
+ file="${build.dir}/${ant.project.name}.esb"/>
+ </target>
+</project>
Added:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/template/Maven.template
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/template/Maven.template
(rev 0)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/generator/template/Maven.template 2008-08-27
13:11:27 UTC (rev 279)
@@ -0,0 +1,54 @@
+<project
xmlns="http://maven.apache.org/POM/4.0.0"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.soa.overlord.cdl.project</groupId>
+ <artifactId>%PROJECT%</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <packaging>jboss-esb</packaging>
+ <name>%PROJECT%</name>
+ <
url>http://www.jboss.org/overlord</url>
+
+
+ <dependencies>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.soa.overlord.cdl</groupId>
+ <artifactId>runtime-jbossesb</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <scope>provided</scope>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <finalName>%PROJECT%</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>jboss-packaging-maven-plugin</artifactId>
+ <version>2.0-20080130.110241-9</version>
+ <extensions>true</extensions>
+ </plugin>
+ </plugins>
+ </build>
+
+ <pluginRepositories>
+ <pluginRepository>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots/>
+ <id>jboss-plugin-snapshots</id>
+ <name>JBoss Snapshot Plugin Repository</name>
+ <url>http://snapshots.repository.codehaus.org</url>
+ </pluginRepository>
+ </pluginRepositories>
+
+
+</project>