[wildfly-dev] SDDS (Silly Deployment Detector Subsystem)
Stephen Coy
steve.coy at me.com
Wed May 22 09:10:29 EDT 2013
Hi Nicklas,
I had been thinking of doing something along similar lines.
However, I was considering a CLI command related to "deploy" that is able to replicate the class loading environment for each part of a deployment (ear, ejb-jar, war, far, etc) and then check whether or not each class in the deployment is already available in the class loader, subject to the spec's API visibility rules.
That may be a bit over the top though.
This is also a big +10 from me too, btw. We spend more time on the forums getting people to list their deployment contents when troubleshooting than anything else.
Steve C
On 22/05/2013, at 10:34 PM, Nicklas Karlsson <nickarls at gmail.com> wrote:
> An external tool is probably easiest to develop but wouldn't it be hard to know what classes are implicitly added by the deployers (e.g. JPA stuff based on persistence.xml) presence?
> For the modules, I guess one could iterate over the module roots, read in the module.xml:S, load thes module and see what's exported and build up a registry to see if there are packages provided both by the deployment and the AS.
>
>
> On Wed, May 22, 2013 at 3:23 PM, Scott Marlow <smarlow at redhat.com> wrote:
> On 05/22/2013 04:04 AM, Nicklas Karlsson wrote:
> That's a good example. I guess the JPA subsystem could check for
> incorrectly bundled Hibernate, JSF for incorrectly bundled impl, JAX-RS
> probably could use their own. Could they all be extracted to a common
> deployment-check-subsystem (or more precisely, should they?)
>
> +10 for this idea.
>
> I like both approaches. It would be great to have a deployment *lint* detector of some form. If it is created as a common system, it might be more difficult to reach into the various deployers to diagnose issues.
>
> For the common approach, it could also be a standalone tool that is built up over time. If it is standalone, a log scanner would be a nice complement so that we could easily identify common runtime problems in addition to deployment time.
>
>
>
> On Wed, May 22, 2013 at 10:46 AM, Alessio Soldano <asoldano at redhat.com
> <mailto:asoldano at redhat.com>> wrote:
>
> Just FYI, the webservices subsystem has something related to this topic,
> see https://issues.jboss.org/browse/WFLY-451 . Basically deployments
> containing WS endpoints are scanned by the webservices susbsystem to
> detect Apache CXF libraries (which should not be included in the
> deployment, being them already available on the server). If they're
> found, a verbose/explanatory warning is printed and the deployment
> aborted.
> User will either fix the deployment or disable the webservices subsystem
> for it.
>
> Alessio
>
> On 05/22/2013 09:22 AM, Nicklas Karlsson wrote:
> > (I know there has been some discussion on the topic (old community
> > AS7-dev postings, IRC-chat with Tomaz Cerar etc)
> >
> > Hanging around the forums, I've noticed that a frequent
> source of
> > hard-to-debug deployment problems and other non-linear-behavior
> is that
> > people often try to deploy archives with conflicting dependencies
> > (various EE APIs/impls already on the AS, JDBC drivers, maven
> plugins,
> > you name it).
> >
> > Would it be worthwhile to implement a deployment processor
> (disabled
> > by default) that would act as a helpful bouncer for the deployment
> > archive? We could have a simple isSane(Archive) interface or
> something
> > and people could write their own implementations (that would be
> picked
> > up through the java services system or listed explicitly in some
> > module?). Default implementation that come to mind is
> >
> > * Blacklisted packages (using Tattletale to warn users if they are
> > bundling e.g. EE impls/APIs)
> > * Version limiter (using Tattletale to warn if deployment
> contains too
> > old version of lib, e.g. Spring)
> > * Unused libs (using Tattletale to warn if deployment contains
> unused jars)
> > * Server provided libs (using Tattletale and JBoss Modules) to show
> > which dependencies could be handled by a server module dependency)
> >
> > I'm not sure JBoss Modules contains any "directory" for
> > which-modules-provides functionality but I guess the module root
> could
> > be scanned and the resources indexed or something. Performance
> would not
> > be an issue because it's still going to be faster that a user playing
> > around with dependencies for days.
> >
> > Thoughts?
> >
> > --
> > Nicklas Karlsson, +358 40 5062266 <tel:%2B358%2040%205062266>
>
> > Vaakunatie 10 as 7, 20780 Kaarina
> >
> >
> >
> > _______________________________________________
> > wildfly-dev mailing list
> > wildfly-dev at lists.jboss.org <mailto:wildfly-dev at lists.jboss.org>
>
> > https://lists.jboss.org/mailman/listinfo/wildfly-dev
>
>
> --
> Alessio Soldano
> Web Service Lead, JBoss
> _______________________________________________
> wildfly-dev mailing list
> wildfly-dev at lists.jboss.org <mailto:wildfly-dev at lists.jboss.org>
>
> https://lists.jboss.org/mailman/listinfo/wildfly-dev
>
>
>
>
> --
> Nicklas Karlsson, +358 40 5062266
> Vaakunatie 10 as 7, 20780 Kaarina
>
>
> _______________________________________________
> wildfly-dev mailing list
> wildfly-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/wildfly-dev
>
>
>
>
>
> --
> Nicklas Karlsson, +358 40 5062266
> Vaakunatie 10 as 7, 20780 Kaarina
> _______________________________________________
> wildfly-dev mailing list
> wildfly-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/wildfly-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/wildfly-dev/attachments/20130522/ff67ffa4/attachment-0001.html
More information about the wildfly-dev
mailing list