There appears to be a great deal of mystery surrounding the build process. I'll include here a few more details for other that may be interested, but it appears that a headless build is not possible or practical at this time.
First of all, the information found here:
http://blogs.sun.com/tronds/entry/creating_a_simple_headless_buildis vital to even getting started with regard to the build environment. That setup may be enough for most projects, or at least projects other than BPEL projects that refer to WSDLs in other projects.
The nature of the "location" clause of an import in a BPEL file is unknown. It is not a file path, nor does using "file://" work. The build process somehow knows where to look for "AAA" when the location tag is "AAA/BBB.wsdl", even when the target is in some completely different project and hierarchy on the machine. I have been unable to determine how this happens - ie, how "AAA/BBB.wsdl" is mapped to a physical file.
This magic occurs in at least two classes invoked by the build process:
org.netbeans.modules.bpel.project.anttasks.cli.CliValidateBpelProjectTask
org.netbeans.modules.bpel.project.anttasks.cli.CliGenerateCatalogTask
Somehow, inside the GUI only, these classes can map the location tags to physical files and find thus the WSDLs required. GUI-only builds is a very surprising limitation, but there it is. I anyone has anyother information on this, I'd very much like to hear about it. It seems we will have to replace the build scripts for our projects.
jsexton0 wrote:
Hello -
When a WSDL from a separate project is included in a BPEL, the <import> tag's location cause looks like this:
<import namespace="
http://myns" location="otherProject/my.wsdl" importType="
http://schemas.xmlsoap.org/wsdl/"/>
whereas WSDLs from the local BPEL project look like this:
<import namespace="
http://myns" location="my.wsdl" importType="
http://schemas.xmlsoap.org/wsdl/"/>
Both forms work when building from inside Netbeans. When building from the command line with ant, the WSDL file pointed to by the location cause for these imported from other projects can not be found.
My question is, what is the location clause exactly? A path? It doesn't seem to be if both the above forms work. What do we have to do so the WSDLs in other projects are found when building from the command line? How does the validation/build process search for included WSDL files?
Thank you