Hi All:
Regarding JBIDE-11729, JBIDE-11645, JBIDE-12613, and
others, I've pushed in a significant file move in astools. For the
most part, logic and package names were not changed. There are a few
examples where they did change, though. I've done my best to do a
usage scan and verify that nobody is using the old classes, but it's
possible I missed one.
So what was done exactly? Basically, because plugins were depending
on as.core to use some interface or utility method, an installation
of their component would drag in as.core, all our runtime and server
types, but NOT the full implementation of as7, due to declarative
services.
What I've done here is I've moved a large number of interfaces and
utility classes from as.core into as.wtp.core plugin. as.core
depends on, and re-exports, as.wtp.core, so users depending on the
old interfaces should not be affected.
In general, what this means is that if a component, like seam,
requires ALL of astools to be included if seam-tools are installed,
then seam-tools needs to require the astools all-inclusive feature.
Depending on plugins alone is NOT enough.
If however you JUST need api access, the interfaces or common
utility methods, to provide support (but not a full dependency) for
astools, then you can depend only on o.j.ide.eclipse.as.wtp.core
plugin.
Now, I'm not sure how this works in teh build system to be honest,
so I'm looking for advice from Nick / Mistria. Does the
as.wtp.core/ui plugins need their own low-level feature? Or can
other components simply depend on the single plugins?
Either way, if you are writing code for a component, and find you
want to extend astools or make use of astools support in some way,
you have a decision to make. Do you need all of ASTools installed?
Or do you only need access to the api / interfaces.
If you are only requiring the interfaces, you should depend only on
o.j.ide.eclipse.as.wtp.core. If you find that the plugin is missing
something that you believe should live there, then you should put in
an api request to me to move the code, utility, or extension point
from as.core into as.wtp.core. Simply depending on as.core by
yourself and using the internal api will lead to problems.
What problems, you ask? Well, if you depend on as.core but do NOT
depend on the full astools feature, someone installing your
component from an update site will get your component + as.core,
which includes a half-complete jboss-7 server adapter.
So... basically after this recent commit, it is now up to component
owners to decide if they need all of astools or just the api. If you
THINK you just need api, but many of the classes you need are still
in as.core, send me an email and we can discuss it, but it might
just be the case that you're forced to require all of astools until
the situation can be fixed.
As always, I'm here for any questions.
- Rob