You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jb...@apache.org on 2006/09/08 20:43:31 UTC

svn commit: r441610 - /incubator/tuscany/java/sca/plugins/plugin.war/src/main/java/org/apache/tuscany/plugin/war/TuscanyWarMojo.java

Author: jboynes
Date: Fri Sep  8 11:43:30 2006
New Revision: 441610

URL: http://svn.apache.org/viewvc?view=rev&rev=441610
Log:
apply patch from Meeraj for TUSCANY-688 until his svn access works

Modified:
    incubator/tuscany/java/sca/plugins/plugin.war/src/main/java/org/apache/tuscany/plugin/war/TuscanyWarMojo.java

Modified: incubator/tuscany/java/sca/plugins/plugin.war/src/main/java/org/apache/tuscany/plugin/war/TuscanyWarMojo.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/plugins/plugin.war/src/main/java/org/apache/tuscany/plugin/war/TuscanyWarMojo.java?view=diff&rev=441610&r1=441609&r2=441610
==============================================================================
--- incubator/tuscany/java/sca/plugins/plugin.war/src/main/java/org/apache/tuscany/plugin/war/TuscanyWarMojo.java (original)
+++ incubator/tuscany/java/sca/plugins/plugin.war/src/main/java/org/apache/tuscany/plugin/war/TuscanyWarMojo.java Fri Sep  8 11:43:30 2006
@@ -24,6 +24,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Enumeration;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import java.util.jar.JarEntry;
@@ -50,10 +51,17 @@
  * @goal tuscany-war
  * @phase package
  * @version
+ *
+ * TODO Check timestamp for copying resources from the repo
  */
 public class TuscanyWarMojo extends AbstractMojo {
 
     /**
+     * WEB-INF lib.
+     */
+    private static final String WEB_INF_LIB = "WEB-INF/lib";
+
+    /**
      * Tuscany boot path.
      */
     private static final String BOOT_PATH = "WEB-INF/tuscany/boot/";
@@ -137,6 +145,11 @@
     private String warName;
 
     /**
+     * WEB-INF jar files.
+     */
+    private Set<String> packagedLibs = new HashSet<String>();
+
+    /**
      * Executes the task.
      *
      * The plugin executes the following tasks.
@@ -171,7 +184,7 @@
                 addTuscanyDependency(newWar, dependency, BOOT_PATH);
             }
 
-            if(extensions != null) {
+            if (extensions != null) {
                 for (Dependency dependency : extensions) {
                     addTuscanyDependency(newWar, dependency, EXTENSION_PATH);
                 }
@@ -262,6 +275,9 @@
 
             File artifactFile = artifact.getFile();
             artifactStream = new FileInputStream(artifactFile);
+            if (packagedLibs.contains(artifactFile.getName())) {
+                return;
+            }
 
             newWar.putNextEntry(new JarEntry(path + artifactFile.getName()));
 
@@ -297,6 +313,7 @@
     private void copyOriginal(JarFile originalWar, JarOutputStream newWar) throws IOException {
 
         Enumeration entries = originalWar.entries();
+        packagedLibs.clear();
 
         while (entries.hasMoreElements()) {
 
@@ -307,6 +324,11 @@
                 jarEntryStream = originalWar.getInputStream(entry);
                 newWar.putNextEntry(entry);
                 IOUtils.copy(jarEntryStream, newWar);
+                String name = entry.getName();
+
+                if (name.endsWith(".jar") && (name.startsWith(WEB_INF_LIB) || name.startsWith(BOOT_PATH) || name.startsWith(EXTENSION_PATH))) {
+                    packagedLibs.add(name.substring(name.lastIndexOf("/") + 1));
+                }
             } finally {
                 IOUtils.closeQuietly(jarEntryStream);
             }



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org