[webbeans-dev] Re: Packages proposal

Scott Ferguson ferg at caucho.com
Wed Jan 21 17:09:44 EST 2009


On Jan 21, 2009, at 1:48 PM, Gavin King wrote:

> How would the "import list" be specified?

I'd assume a text file in the classpath like javax/javaee/ 
urn.java.imports or META-INF, if that's more appropriate.  It's just a  
list of packages, so the file is trivial.

I believe JAXB has a similar kind of file called jaxb.index, but I  
can't remember where it lives or exactly what it contains.

As long as an IDE or WebBeans implementation can grab and parse the  
file using ClassLoader.getResource, it doesn't really matter.

-- Scott

>
>
> On Thu, Jan 22, 2009 at 4:55 AM, Scott Ferguson <ferg at caucho.com>  
> wrote:
>>
>> On Jan 19, 2009, at 10:33 PM, Gavin King wrote:
>>
>>> In conjunction with this proposal, I would like to propose that we
>>> have a "special" XML namespace, which instead of mapping to a single
>>> package, maps to several packages. This is an ease of use feature  
>>> for
>>> commonly used types.
>>
>> I like the idea, but I'd want a consistent mechanism as an  
>> extension of
>> normal WebBeans urn:java handling:
>>
>> For example,
>>
>> Given xmlns:foo="urn:java:com.foo"
>>
>> 1. <foo:MyBar> - WebBeans looks for com.foo.MyBar for a class or  
>> annotation
>> (same as current rule).
>>
>> 2. if com.foo has an "import list" of packages, then WebBeans also  
>> looks in
>> those packages.
>>
>> As long as the spec defines "urn:java:javax.javaee" along that kind  
>> of rule,
>> the "package import" doesn't need to be an explicit part of the  
>> current
>> spec.  Just as long as it could be generalized for a future spec.
>>
>>> The namespace "urn:java:javax" is a shortcut that may be used to  
>>> refer
>>> to types in any of the following packages (as long as there is no
>>> ambiguity):
>>
>> It would need to be "urn:java:javax.javaee" because the JavaEE  
>> specs don't
>> have ownership over all of "urn:java:javax".
>>
>>>
>>> Potentially even:
>>>
>>> javax.jms
>>> javax.sql
>>> javax.annotation.security
>>> JAX-RS
>>
>> Eventually, javax.servlet.http.annotation.WebServlet :)
>>
>> <qa:MyServlet>
>> <javaee:WebServlet value="/foo"/>
>> </qa:MyServlet>
>>
>> -- Scott
>>
>>>
>>>
>>>
>>> On Tue, Jan 20, 2009 at 5:18 PM, Gavin King <gavin at hibernate.org>  
>>> wrote:
>>>>
>>>> Here's a proposal for API repackaging:
>>>>
>>>> javax.annotation: (existing package)
>>>> @NonBinding
>>>>
>>>> javax.interceptor: (existing package)
>>>> @Interceptor
>>>> @InterceptorBindingType
>>>>
>>>> javax.decorator: (decorators)
>>>> @Decorator
>>>> @Decorates
>>>>
>>>> javax.stereotype: (stereotypes)
>>>> @Stereotype
>>>> @Model
>>>>
>>>> javax.context: (scopes and contexts)
>>>> @ScopeType
>>>> @ApplicationScoped
>>>> @RequestScoped
>>>> @SessionScoped
>>>> @ConversationScoped
>>>> Context
>>>> Contextual
>>>> ContextNotActiveException
>>>> Conversation
>>>>
>>>> javax.inject: (injection, binding types, deployment types)
>>>> @BindingType
>>>> @DeploymentType
>>>> @Named
>>>> @Initializer
>>>> @New
>>>> @Specializes
>>>> @Realizes
>>>> @Current
>>>> @Production
>>>> @Standard
>>>> @Produces
>>>> @Disposes
>>>> @Obtains
>>>> Instance
>>>> DefinitionException
>>>> DeploymentException
>>>> ExecutionException
>>>> IllegalProductException
>>>> CreationException
>>>> AmbiguousDependencyException
>>>> DuplicateBindingTypeException
>>>> InconsistentSpecializationException
>>>> NullableDependencyException
>>>> UnproxyableDependencyException
>>>> UnsatisfiedDependencyException
>>>> UnserializableDependencyException
>>>> TypeLiteral
>>>> AnnotationLiteral
>>>>
>>>> javax.inject.manager: (framework integration SPI)
>>>> @Initialized
>>>> @Deployed
>>>> Bean
>>>> InjectionPoint
>>>> Decorator
>>>> Interceptor
>>>> InterceptionType
>>>> Manager
>>>>
>>>> javax.event: (events)
>>>> @Observes
>>>> @Asynchronously
>>>> @IfExists
>>>> @AfterTransactionCompletion
>>>> @AfterTransactionFailure
>>>> @AfterTransactionSuccess
>>>> @BeforeTransactionCompletion
>>>> @Fires
>>>> Event
>>>> Observer
>>>> ObserverException
>>>>
>>>>
>>>> The types I'm most uncomfortable with are TypeLiteral and
>>>> AnnotationLiteral, which aren't really specific to injection. I  
>>>> wonder
>>>> if there's some other place they could go....?
>>>>
>>>> Arguably @Named belongs somewhere else....
>>>>
>>>> And there's a piece of me which wants to put @Realizes and
>>>> @Specializes in javax.stereotype, for some reason which I can't  
>>>> quite
>>>> put my finger on....
>>>>
>>>> Thoughts?
>>>>
>>>> --
>>>> Gavin King
>>>> gavin.king at gmail.com
>>>> http://in.relation.to/Bloggers/Gavin
>>>> http://hibernate.org
>>>> http://seamframework.org
>>>>
>>>
>>>
>>>
>>> --
>>> Gavin King
>>> gavin.king at gmail.com
>>> http://in.relation.to/Bloggers/Gavin
>>> http://hibernate.org
>>> http://seamframework.org
>>>
>>>
>>
>> _______________________________________________
>> webbeans-dev mailing list
>> webbeans-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/webbeans-dev
>>
>
>
>
> -- 
> Gavin King
> gavin.king at gmail.com
> http://in.relation.to/Bloggers/Gavin
> http://hibernate.org
> http://seamframework.org
>
>




More information about the weld-dev mailing list