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.

Bug 49712 - WSCompile should have some kind of dependency check
Summary: WSCompile should have some kind of dependency check
Status: VERIFIED FIXED
Alias: None
Product: webservices
Classification: Unclassified
Component: Code (show other bugs)
Version: 4.x
Hardware: PC All
: P3 blocker (vote)
Assignee: _ pcw
URL:
Keywords:
: 54592 (view as bug list)
Depends on:
Blocks: 54476 56023
  Show dependency tree
 
Reported: 2004-09-29 21:48 UTC by _ pcw
Modified: 2005-07-11 12:35 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description _ pcw 2004-09-29 21:48:58 UTC
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.
Comment 1 Petr Blaha 2004-10-13 10:39:49 UTC
Remove all issues from temporary component.
Comment 2 _ pcw 2005-02-07 04:24:13 UTC
*** Issue 54592 has been marked as a duplicate of this issue. ***
Comment 3 Pavel Buzek 2005-03-03 20:29:29 UTC
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?
Comment 4 _ pcw 2005-03-04 00:27:00 UTC
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?
Comment 5 _ pcw 2005-03-04 00:32:42 UTC
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.
Comment 6 Pavel Buzek 2005-03-07 14:33:46 UTC
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.
Comment 7 _ ludo 2005-03-15 22:08:07 UTC
fixed now.
Comment 8 Petr Blaha 2005-07-11 12:35:50 UTC
v