This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
As written, wscompile invocations for building either web services or web service clients do not perform any dependency check whatsoever, but rather, always execute. There should be at least limited dependency checking so that they are not executed each time if nothing has changed. The dependency check should work such that "Clean & Build" works and an immediate subsequent build does nothing.
Remove all issues from temporary component.
*** Issue 54592 has been marked as a duplicate of this issue. ***
Peter, as I indicated to you offline and in #54476 there are some issues with custom ant tasks. The bad thing is that custom tasks require the jar files on ant's classpath so they make it harder to cvs co and build the project w/o netbeans. I assume this taks would not be needed in headless build. Please setup the build-impl.xml so that if this task is not available it compiles all webservices w/o dependency checking. BTW: when I test in web project it requires the custom task but it runs wscompile anyway. This is probably still work in progress, right?
Second point first - no, this is not a work in progress (though I do want add a few more checks to the ant task). Unless you are deliberately trying to sabotage it, it should work. If it does not, forward me the WSDL that it failed on and I'll check it out (or email/attach debug level ant build output.) As for custom ant tasks in general, I do not know any other way to reliably solve this problem and this is after spending many fulltime+ days studying ant scripts to find a pure-ant solution. If client generation is not part of the build, but a one time action, then actions such as adding message handlers, security handlers, etc. will ALL require that the user somehow have a UI by which they can indicate they need a new client. This is very poor usability and why we did not implement clients this way in the first place. If client generation is part of the build, then it needs a dependency check, otherwise the build will be unnecessarily slow, especially for projects with more than 1 or two clients, or a single large client (EBay WSDL is over 1MB, client generation is non-trivial.) Dependency checking is not done by wscompile from JWSDP. That would be ideal, but it is not implemented and it is not going to be. In order to properly check dependencies, we need to compare an arbitrary number of buildtime generated dynamic filenames against certain elements found within the WSDL file. I actually have hardcoded an ant 1.6.2 script that does this, but in order to work, it relies on many properties generated and maintained by the IDE, it cannot as far as I can tell, be turned into a macro, and the only way I can see to have the XSL build script generate this would be to also replicate the aforementioned list of properties into project.xml. None of this is desirable, and I think it's far better to maintain a simple ant task than to maintain that scope of material across project.properties, project.xml and build-impl.xsl. It's cleaner and it's less work. As for installing into a separate ant install, isn't that a matter of placing the wscompileuptodate.jar in ant/optional (or something similar) on machines that do not have NetBeans installed? Regarding headless builds, how can headless build state be determined? Is this an ant runtime property? build script option? Do headless builds run using the identical build-impl.xml script that would also be used by the IDE, or is it a separate script?
Final comment from me -- if someone has a better idea on how to solve this problem, I'm open to discussing it. However, any solution must address all the points I've mentioned above. The custom ant task does. No other solution that I've tried has ever worked in the general case and most have not even worked in a hardcoded example.
I do not know if headless build can be determined. What I wanted to say is if the build-impl.xml can be changed so that when the task is not available it would still be possible to build the project. It would have to rebuild web services, but at least it would build. This should not happen in IDE, because the task will be there, but building from command line ant it can happen.
fixed now.
v