users@javaee-spec.java.net

[javaee-spec users] Re: [jsr366-experts] Re: class-level resource annotations

From: arjan tijms <arjan.tijms_at_gmail.com>
Date: Sat, 24 Jan 2015 00:39:23 +0100

Hi,

On Tue, Dec 9, 2014 at 9:49 AM, Florent BENOIT <Florent.Benoit_at_ow2.org> wrote:
> When embedding external libraries it may look strange to get new
> resources (without tuning metadata-complete flag)

Hope this discussion is not too much off topic here, but I don't think
this is strange.

External libraries contribute all kinds of things, like Servlets,
Filterers, @Named beans, etc. A library like OmniFaces would not be
possible if Java EE didn't allow an external library to contribute
these kinds of things. I don't see something like e.g. a datasource as
something that's necessarily totally different (remember that it could
give access to say an embedded in-memory repository implemented by
said external library).

Kind regards,
Arjan Tijms



>
> Regards,
>
> Florent
>
> On Tue, Dec 9, 2014 at 12:25 AM, Bill Shannon <bill.shannon_at_oracle.com> wrote:
>> I'd like to clarify some of the requirements around resource annotations.
>>
>> There's two kinds of resource annotations that can be applied to a class:
>>
>> 1. Resource reference annotations such as @Resource. This is probably
>> rarely used (as opposed to injection), but can be useful in cases where
>> dynamic lookup of the resource is required.
>>
>> @Resource(name = "myDS", lookup = "java:app/application-database")
>> public class Something {
>> public void someMethod() {
>> ...
>> InitialContext ic = new InitialContext();
>> DataSource ds = (DataSource)ic.lookup("myDS");
>> }
>> }
>>
>> 2. Resource definition annotations such as @DataSourceDefinition.
>>
>> @DataSourceDefinition(
>> name = "java:app/applicaiton-database",
>> className="org.apache.derby.jdbc.ClientDataSource",
>> url="jdbc:derby://localhost:1527/myDB;user=bill",
>> databaseName="testDB",
>> serverName="luckydog"
>> )
>> public class SomeOtherClass {
>> ...
>> }
>>
>> I have some questions that I'd like each of you to answer:
>>
>> For Java EE implementors:
>>
>> In your implementation, what classes may contain each of these
>> types of annotations?
>>
>> A. A limited set of container-managed classes.
>> B. Any class that also supports injection (table EE-5.1).
>> C. Any class in the application package (ear/war/jar file).
>> D. Any class in the application package or referenced as an
>> external library.
>> E. Other. (Explain)
>>
>>
>> For Java EE developers:
>>
>> What classes do you expect may contain each of these types of annotations?
>>
>> A. A limited set of container-managed classes.
>> B. Any class that also supports injection (table EE-5.1).
>> C. Any class in the application package (ear/war/jar file).
>> D. Any class in the application package or referenced as an
>> external library.
>> E. Other. (Explain)
>>
>>
>>
>> For everyone:
>>
>> What classes do you think the Java EE 7 spec requires must be able
>> to contain each of these types of annotations?
>>
>> A. A limited set of container-managed classes.
>> B. Any class that also supports injection (table EE-5.1).
>> C. Any class in the application package (ear/war/jar file).
>> D. Any class in the application package or referenced as an
>> external library.
>> E. Other. (Explain)
>> F. I don't know.
>>
>>
>> Thanks.