Author: antelder
Date: Tue Nov 27 10:14:37 2007
New Revision: 598725

URL: http://svn.apache.org/viewvc?rev=598725&view=rev
Log:
Support sub folders with un-jar'd contributions

Modified:
    
incubator/tuscany/java/sca/modules/runtime-war/src/main/java/org/apache/tuscany/sca/runtime/war/Launcher.java

Modified: 
incubator/tuscany/java/sca/modules/runtime-war/src/main/java/org/apache/tuscany/sca/runtime/war/Launcher.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/runtime-war/src/main/java/org/apache/tuscany/sca/runtime/war/Launcher.java?rev=598725&r1=598724&r2=598725&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/runtime-war/src/main/java/org/apache/tuscany/sca/runtime/war/Launcher.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/runtime-war/src/main/java/org/apache/tuscany/sca/runtime/war/Launcher.java
 Tue Nov 27 10:14:37 2007
@@ -141,19 +141,19 @@
     }
 
     protected void initNode(SCANode scaNode) throws NodeException, 
URISyntaxException, MalformedURLException {
-        URL[] contributions = getContributionJarURLs(repository);
-        if (contributions.length > 0) {
-            existingContributions = new HashMap<URL, Long>();
-            for (URL contribution : contributions) {
-                scaNode.addContribution(contribution.toString(), contribution);
-                existingContributions.put(contribution, new Long(new 
File(contribution.toURI()).lastModified()));
-                logger.log(Level.INFO, "Added contribution: " + contribution);
-            }
-        } else {
-            scaNode.addContribution(repository.toString(), repository.toURL());
-            logger.log(Level.INFO, "Added contribution folder: " + repository);
+        existingContributions = new HashMap<URL, Long>();
+
+        for (URL contribution : getContributionJarURLs(repository)) {
+            scaNode.addContribution(contribution.toString(), contribution);
+            existingContributions.put(contribution, new Long(new 
File(contribution.toURI()).lastModified()));
+            logger.log(Level.INFO, "Added contribution: " + contribution);
         }
-        
+            
+        for (URL contribution : getContributionFolderURLs(repository)) {
+            scaNode.addContribution(contribution.toString(), contribution);
+            logger.log(Level.INFO, "Added contribution folder: " + 
contribution);
+        }
+
         scaNode.addToDomainLevelComposite((QName)null);
         scaNode.start();
     }
@@ -193,6 +193,26 @@
         }
 
         return contributionJars.toArray(new URL[contributionJars.size()]);
+    }
+
+    protected URL[] getContributionFolderURLs(File repositoryDir) {
+        String[] folderNames = repositoryDir.list(new FilenameFilter() {
+            public boolean accept(File dir, String name) {
+                return new File(dir, name).isDirectory();
+            }});
+
+        List<URL> contributionFolders = new ArrayList<URL>();
+        if (folderNames != null) {
+            for (String folder : folderNames) {
+                try {
+                    contributionFolders.add(new File(repositoryDir, 
folder).toURL());
+                } catch (MalformedURLException e) {
+                    throw new RuntimeException(e);
+                }
+            }
+        }
+        
+        return contributionFolders.toArray(new 
URL[contributionFolders.size()]);
     }
 
     protected void initHotDeploy(final File repository) {



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to