On 08/01/18 10:04 PM, Brian Stansberry wrote:
On Mon, Jan 8, 2018 at 10:08 AM, David Lloyd <david.lloyd@redhat.com> wrote:
On Mon, Jan 8, 2018 at 9:41 AM, Brian Stansberry
<brian.stansberry@redhat.com> wrote:
> On Mon, Jan 8, 2018 at 9:25 AM, David Lloyd <david.lloyd@redhat.com> wrote:
>> 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. :)

Isn't this entire thread about the ability to use the "runtime-name"
attribute to override the actual file name of the JAR?  I'm simply
stating that the type probably should be based on the name of the
content file, not the runtime-name.


Gotcha.

We don't reliably know the name of the content file. For unmanaged content we should, but for managed content when the user adds the deployment they provide a stream or a url (or in theory a ModelType.BYTES ModelNode). It's possible to add an optional param to the add ops to pass in a suffix and then our standard clients could provide that if they are able to figure it out. But if that wasn't provided it would still be down to the suffix of the runtime name.
So it looks like there's no easy way to either mandate the suffix for runtime name, either as a new param or for the value of runtime-name param (backward compatibility issues), nor is there a credible way to get access or infer the suffix of the deployment for managed deployments.


I also have a vague memory of some of the EE stuff (i.e. not our DUP code) being driven by suffixes. IOW even if our DUPs didn't need to get type info from the suffix, something in EE might. I don't recall the details of this though; something about default values of EE application and module names. Perhaps the DUPs could be adapted to deal with that, or perhaps not.
I suspect it was the EJB JNDI name requirements, which rely on the deployment's suffix (.ear specifically) to decide whether or not to use a "app-name" portion in the JNDI name for the EJB [1]. So yes, currently, runtime-name without a suffix affects this semantics too. I guess, given how rarely anyone has reported this so far, not many use runtime-name without a (proper) suffix.

[1] https://github.com/wildfly/wildfly/blob/master/ejb3/src/main/java/org/jboss/as/ejb3/deployment/processors/EjbJndiBindingsDeploymentUnitProcessor.java#L111

-Jaikiran