Josh, I adapted the bundle deployment code from original ODE sources that had a few limitations, and added the bundle activator that you see today. The original code didn't handle subdirectories, and I didn't fix this limitation. I think there's no real reason why you wouldn't be able to modify the source and have it handle nested subdirectories--I think it's an oversight that should be fixed. My suggestion is to file a JIRA bug report and attach a patch to it. I think your assessment is correct that you should only need to deal with the two areas you identified, although you may find that resolving WSDL imports is a big topic all by itself and I really don't like the way the code needs to be exploded from bundle form in the first place.
HTH, Kurt On Jul 7, 2011, at 1:50 PM, Josh Mahonin wrote: > Hi, > > I'm using Apache ODE 1.3.5 in ServiceMix, and am seeing an issue with > deploying OSGI bundles with subfolders in them. I was getting errors about > not being able to find the WSDL file I was referencing from my BPEL, and saw > that my subfolders don't get deployed at all into the 'bpelData/<bundlename>' > folder at all. > > Looking through > "jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeDeployedBundle.java", > I see on line 123, the Enumeration is calling 'findEntries' on the bundle, > without the recursion flag set. As well, the 'copyOne' function in the same > file, starting at line 203, appears to have specific directory handling set > up (that is to say, it ignores them). > > In my case, I have various WSDL and XSD files tucked in a 'schemas' folder, > which includes multiple sub-folders as well. The WSDLs reference various XSD > files in separate sub-folders, and the whole thing is source controlled and > referenced in multiple other projects. As such, the obvious work-around of > flattening the structure and packing them in the root directory isn't ideal. > > I'm unfamiliar with the internals of ODE, but is there any reason why the > deployment folder doesn't support sub-directories? If not, is the fix just a > matter of switching the flag on 'findEntries', and tweaking the 'copyOne' > function? > > Thanks, > > Josh > >