You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jd...@apache.org on 2006/09/04 02:01:26 UTC

svn commit: r439879 - /geronimo/server/trunk/maven-plugins/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/InstallAssemblyMojo.java

Author: jdillon
Date: Sun Sep  3 17:01:25 2006
New Revision: 439879

URL: http://svn.apache.org/viewvc?view=rev&rev=439879
Log:
Adding geronimo:install helper, pending how to allow geronimo:start to re-use this goal

Added:
    geronimo/server/trunk/maven-plugins/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/InstallAssemblyMojo.java   (with props)

Added: geronimo/server/trunk/maven-plugins/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/InstallAssemblyMojo.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/maven-plugins/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/InstallAssemblyMojo.java?view=auto&rev=439879
==============================================================================
--- geronimo/server/trunk/maven-plugins/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/InstallAssemblyMojo.java (added)
+++ geronimo/server/trunk/maven-plugins/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/InstallAssemblyMojo.java Sun Sep  3 17:01:25 2006
@@ -0,0 +1,86 @@
+/*
+ *  Copyright 2006 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package org.apache.geronimo.mavenplugins.geronimo;
+
+import java.io.File;
+
+import org.apache.tools.ant.taskdefs.Expand;
+
+import org.codehaus.plexus.util.FileUtils;
+
+/**
+ * Install a Geronimo server assembly.
+ *
+ * @goal install
+ *
+ * @version $Rev$ $Date$
+ */
+public class InstallAssemblyMojo
+    extends ServerMojoSupport
+{
+    /**
+     * Enable forced install refresh.
+     *
+     * @parameter expression="${refresh}" default-value="false"
+     */
+    private boolean refresh = false;
+
+    //
+    // TODO: Allow this code to be used by this goal + start
+    //
+    
+    protected void doExecute() throws Exception {
+        // Check if there is a newer archive or missing marker to trigger assembly install
+        File installMarker = new File(installDir, ".installed");
+        boolean refresh = this.refresh; // don't override config state with local state
+
+        if (!refresh) {
+            if (!installMarker.exists()) {
+                refresh = true;
+            }
+            else if (installArchive.lastModified() > installMarker.lastModified()) {
+                log.debug("Detected new assembly archive");
+                refresh = true;
+            }
+        }
+        else {
+            log.debug("User requested installation refresh");
+        }
+
+        if (refresh) {
+            if (installDir.exists()) {
+                log.debug("Removing: " + installDir);
+                FileUtils.forceDelete(installDir);
+            }
+        }
+
+        // Install the assembly
+        if (!installMarker.exists()) {
+            log.info("Installing assembly...");
+
+            Expand unzip = (Expand)createTask("unzip");
+            unzip.setSrc(installArchive);
+            unzip.setDest(outputDirectory);
+            unzip.execute();
+
+            installMarker.createNewFile();
+        }
+        else {
+            log.debug("Assembly already installed");
+        }
+    }
+}

Propchange: geronimo/server/trunk/maven-plugins/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/InstallAssemblyMojo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/maven-plugins/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/InstallAssemblyMojo.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/server/trunk/maven-plugins/geronimo-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/geronimo/InstallAssemblyMojo.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain