Author: mriou
Date: Thu Sep 28 13:06:10 2006
New Revision: 451001

URL: http://svn.apache.org/viewvc?view=rev&rev=451001
Log:
Recursively looking for bpel, wsdl and schemas in deployment unit 
subdirectories instead of only the root.

Modified:
    
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/deploy/DeploymentUnitImpl.java

Modified: 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/deploy/DeploymentUnitImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/deploy/DeploymentUnitImpl.java?view=diff&rev=451001&r1=451000&r2=451001
==============================================================================
--- 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/deploy/DeploymentUnitImpl.java
 (original)
+++ 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/deploy/DeploymentUnitImpl.java
 Thu Sep 28 13:06:10 2006
@@ -117,7 +117,7 @@
      * compilation, whether a cbp file exists or not.
      */
     private void compileProcesses(boolean force) {
-        File[] bpels = _duDirectory.listFiles(_bpelFilter);
+        ArrayList<File> bpels = listFilesRecursively(_duDirectory, 
_bpelFilter);
         for (File bpel : bpels) {
             File compiled = new File(bpel.getParentFile(), 
bpel.getName().substring(0,bpel.getName().length()-".bpel".length()) + ".cbp");
             if (compiled.exists() && !force) {
@@ -149,7 +149,7 @@
         }
         if (_processes == null || force) {
             _processes = new HashMap<QName, OProcess>();
-            File[] cbps = _duDirectory.listFiles(_cbpFilter);
+            ArrayList<File> cbps = listFilesRecursively(_duDirectory, 
_cbpFilter);
             for (File file : cbps) {
                 OProcess oprocess = loadProcess(file);
                 _processes.put(new QName(oprocess.targetNamespace, 
oprocess.getName()), oprocess);
@@ -239,7 +239,7 @@
             WSDLFactory4BPEL wsdlFactory = (WSDLFactory4BPEL) 
WSDLFactoryBPEL20.newInstance();
             WSDLReader r = wsdlFactory.newWSDLReader();
 
-            File[] wsdls = _duDirectory.listFiles(_wsdlFilter);
+            ArrayList<File> wsdls = listFilesRecursively(_duDirectory, 
_wsdlFilter);
             for (File file : wsdls) {
                 try {
                     _docRegistry.addDefinition((Definition4BPEL) 
r.readWSDL(file.toURI().toString()));
@@ -286,5 +286,21 @@
 
     public void refresh() {
         loadProcessDefinitions(true);
+    }
+
+    private ArrayList<File> listFilesRecursively(File root, FileFilter filter) 
{
+        ArrayList<File> result = new ArrayList<File>();
+        // Filtrating the files we're interested in in the current directory
+        File[] select = root.listFiles(filter);
+        for (File file : select) {
+            result.add(file);
+        }
+        // Then we can check the directories
+        File[] all = root.listFiles();
+        for (File file : all) {
+            if (file.isDirectory())
+                result.addAll(listFilesRecursively(file, filter));
+        }
+        return result;
     }
 }


Reply via email to