You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/09/24 14:43:11 UTC
svn commit: r1389340 - in
/openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin:
BuildTomEEMojo.java DebugTomEEMojo.java HelpTomEEMojo.java util/
util/Zips.java
Author: rmannibucau
Date: Mon Sep 24 12:43:10 2012
New Revision: 1389340
URL: http://svn.apache.org/viewvc?rev=1389340&view=rev
Log:
TOMEE-425 zip and atatch a custom tomee distribution
Added:
openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/DebugTomEEMojo.java
- copied, changed from r1388365, openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/RunTomEEMojo.java
openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/util/
openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/util/Zips.java
Modified:
openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/BuildTomEEMojo.java
openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/HelpTomEEMojo.java
Modified: openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/BuildTomEEMojo.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/BuildTomEEMojo.java?rev=1389340&r1=1389339&r2=1389340&view=diff
==============================================================================
--- openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/BuildTomEEMojo.java (original)
+++ openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/BuildTomEEMojo.java Mon Sep 24 12:43:10 2012
@@ -17,11 +17,77 @@
package org.apache.openejb.maven.plugin;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.MavenProjectHelper;
+
+import java.io.File;
+import java.io.IOException;
+
+import static org.apache.openejb.maven.plugin.util.Zips.zip;
+
/**
* @goal build
* @requiresDependencyResolution runtime
*/
public class BuildTomEEMojo extends AbstractTomEEMojo {
+ /**
+ * @parameter expression="${tomee-plugin.zip}" default-value="true"
+ */
+ protected boolean zip;
+
+ /**
+ * @parameter expression="${tomee-plugin.attach}" default-value="true"
+ */
+ protected boolean attach;
+
+ /**
+ * @parameter expression="${tomee-plugin.zip-file}" default-value="${project.build.directory}/${project.build.finalName}.zip""
+ * @required
+ * @readOnly
+ */
+ private File zipFile;
+
+ /**
+ * @component
+ */
+ private MavenProjectHelper projectHelper;
+
+ /**
+ * @parameter default-value="${project}"
+ * @required
+ * @readonly
+ */
+ private MavenProject project;
+
+ /**
+ * @parameter expression="${tomee-plugin.classifier}"
+ */
+ protected String classifier = null;
+
+ @Override
+ public void execute() throws MojoExecutionException, MojoFailureException {
+ super.execute();
+ if (zip) {
+ getLog().info("Zipping Custom TomEE Distribution");
+ try {
+ zip(catalinaBase, zipFile);
+ } catch (IOException e) {
+ throw new MojoExecutionException(e.getMessage(), e);
+ }
+
+ if (attach) {
+ getLog().info("Attaching Custom TomEE Distribution");
+ if (classifier != null) {
+ projectHelper.attachArtifact(project, "zip", classifier, zipFile);
+ } else {
+ projectHelper.attachArtifact(project, "zip", zipFile);
+ }
+ }
+ }
+ }
+
@Override
protected void run() {
// don't start
Copied: openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/DebugTomEEMojo.java (from r1388365, openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/RunTomEEMojo.java)
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/DebugTomEEMojo.java?p2=openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/DebugTomEEMojo.java&p1=openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/RunTomEEMojo.java&r1=1388365&r2=1389340&rev=1389340&view=diff
==============================================================================
--- openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/RunTomEEMojo.java (original)
+++ openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/DebugTomEEMojo.java Mon Sep 24 12:43:10 2012
@@ -18,17 +18,13 @@
package org.apache.openejb.maven.plugin;
/**
- * @goal run
+ * @goal debug
* @requiresDependencyResolution runtime
*/
-public class RunTomEEMojo extends UpdatableTomEEMojo {
+public class DebugTomEEMojo extends RunTomEEMojo {
@Override
- public String getCmd() {
- return "start";
- }
-
- @Override
- protected boolean getNoShutdownHook() {
- return false;
+ protected void run() {
+ debug = true;
+ super.run();
}
}
Modified: openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/HelpTomEEMojo.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/HelpTomEEMojo.java?rev=1389340&r1=1389339&r2=1389340&view=diff
==============================================================================
--- openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/HelpTomEEMojo.java (original)
+++ openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/HelpTomEEMojo.java Mon Sep 24 12:43:10 2012
@@ -28,7 +28,8 @@ public class HelpTomEEMojo extends Abstr
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
getLog().info("Available commands:");
- getLog().info("\t- tomee:run: run and wait the server");
+ getLog().info("\t- tomee:run: run and wait for the server");
+ getLog().info("\t- tomee:debug: run in debug mode and wait for the server (alias of run)");
getLog().info("\t- tomee:start: run the server");
getLog().info("\t- tomee:stop: stop the server (to use with start)");
getLog().info("\t- tomee:configtest: run configtest tomcat command");
Added: openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/util/Zips.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/util/Zips.java?rev=1389340&view=auto
==============================================================================
--- openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/util/Zips.java (added)
+++ openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/util/Zips.java Mon Sep 24 12:43:10 2012
@@ -0,0 +1,60 @@
+package org.apache.openejb.maven.plugin.util;
+
+import org.apache.openejb.loader.IO;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.jar.JarEntry;
+import java.util.jar.JarOutputStream;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
+
+public final class Zips {
+ private static final int BUFFER_SIZE = 1024;
+
+ private Zips() {
+ // no-op
+ }
+
+ public static void zip(final File dir, final File zipName) throws IOException, IllegalArgumentException {
+ final String[] entries = dir.list();
+ final ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipName));
+
+ String prefix = dir.getAbsolutePath();
+ if (!prefix.endsWith(File.separator)) {
+ prefix += File.separator;
+ }
+
+ for (String entry : entries) {
+ File f = new File(dir, entry);
+ zip(out, f, prefix);
+ }
+ IO.close(out);
+ }
+
+ private static void zip(final ZipOutputStream out, final File f, final String prefix) throws IOException {
+ if (f.isDirectory()) {
+ final File[] files = f.listFiles();
+ if (files != null) {
+ for (File child : files) {
+ zip(out, child, prefix);
+ }
+ }
+ } else {
+ final byte[] buffer = new byte[BUFFER_SIZE];
+ int bytesRead;
+
+ final String path = f.getPath().replace(prefix, "");
+
+ final FileInputStream in = new FileInputStream(f);
+ final ZipEntry entry = new ZipEntry(path);
+ out.putNextEntry(entry);
+ while ((bytesRead = in.read(buffer)) != -1) {
+ out.write(buffer, 0, bytesRead);
+ }
+ IO.close(in);
+ }
+ }
+}