On Mon, Jan 8, 2018 at 9:25 AM, David Lloyd <david.lloyd(a)redhat.com> wrote:
On Sun, Jan 7, 2018 at 7:37 PM, Stuart Douglas
<stuart.w.douglas(a)gmail.com> wrote:
> On Sat, Jan 6, 2018 at 2:06 AM, Brian Stansberry
> <brian.stansberry(a)redhat.com> wrote:
>> On Fri, Jan 5, 2018 at 8:43 AM, David Lloyd <david.lloyd(a)redhat.com>
>> wrote:
>>>
>>> On Fri, Jan 5, 2018 at 8:20 AM, Brian Stansberry
>>> <brian.stansberry(a)redhat.com> wrote:
>>> > In practice the suffix is required. The deployment unit processors
need
>>> > to
>>> > know whether they are interested in the deployment, and in the end
that
>>> > gets
>>> > back to some DUP or other checking the suffix. The alternative would
be
>>> > DUPs
>>> > speculatively digging into the deployment, checking for deployment
>>> > descriptors or annotations and the like and that would be more
>>> > expensive,
>>> > likely buggy (e.g. false positives when some class in the classpath
>>> > includes
>>> > an annotation not relevant to the deployment) and could mess up some
>>> > use
>>> > cases where we want to defer classloading.
>>>
>>> Another alternative is for an early processor to identify the type,
>>> tag it on to the deployment context, and then we modify all other DUPs
>>> to use that information. It seems pretty fragile to rely on the name,
>>> particularly if that mechanism allows the "type" of deployment to
>>> change in mid-deploy.
>>
>>
>> I agree; if it's not done that way now, it should be. My *impression* is
>> the general pattern was the way you describe, i.e. for each significant
type
>> some early DUP determines it's a relevant type and attaches some stuff
and
>> then later ones rely on the attachments. But my impression could very
well
>> be wrong in some or many cases. I haven't done much DUP work beyond code
>> reviews or simple fixes since the AS 7.0 days.
>>
>> But that early processor still needs a way to identify type and I think
>> that comes down to the suffix.
>
>
> Yes, various early DUP's call
> org.jboss.as.ee.structure.DeploymentTypeMarker#setType to set the
deployment
> type, but it is identified via suffix.
>
> As most deployment descriptors are optional there is no 100% reliable
way of
> identifying this other than the suffix.
I guess I wasn't too clear. I didn't mean to say there was some other
way to detect the type. I meant to say that the type determination
should be done *before* the overridden runtime name is applied, not
after.
I'm confused now. :)
--
Brian Stansberry
Manager, Senior Principal Software Engineer
Red Hat