You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "Friederich Christophe (JIRA)" <ji...@apache.org> on 2014/09/12 11:43:33 UTC

[jira] [Updated] (CAY-1955) add support jsr-250 and jsr330 to DI

     [ https://issues.apache.org/jira/browse/CAY-1955?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Friederich Christophe updated CAY-1955:
---------------------------------------
    Description: 
h4. Add partial *JSR-250* lifecycle annotations support:
* {{@PostConstruct}} is used on methods that need to get executed after dependency injection is done to perform any initialization.
* {{@PreDestroy}} is used on methods that are called before the instance is removed from the container

h4. Add partial *JSR-330* dependency injector annotations support
* {{@Inject}} identifies injectable constructors, methods, and fields.
* {{@Named}} type named.
* {{Provider<T>}} interface Provides instances of T.
* {{@Scope}} Identifies scope annotations.
* {{@Singleton}} Identifies a type that the injector only instantiates once.
* {{-@Qualifier-}} not implemented.

h4. Deprecate _org.apache.cayenne.di.Inject_ annotion and _org.apache.cayenne.di.Provider_ interface

h4. add {{lazy}}/{{eager}} singleton instantiation
- {{lazy}} is default implementation.
- {{earger}} allows initializing singleton upon cayenne run-time started, exceptions will occur at start-up time vs first be used and avoids any delay when the service provided is requested the first time.

h4. add possibility  to inject a specific provider (_optional_)
{code}
public interface ProviderResource extends Provider<Resource> {
    public Resource get() {...}
    public void close() {...}
}
...
public class Manager {
    @Inject
    @Named("domainFile")
    private ProviderResource resource;
}
{code}


  was:
h4. Add partial *JSR-250* lifecycle annotations support:
* {{@PostConstruct}} is used on methods that need to get executed after dependency injection is done to perform any initialization.
* {{@PreDestroy}} is used on methods that are called before the instance is removed from the container

h4. Add partial *JSR-330* dependency injector annotations support
* {{@Inject}} identifies injectable constructors, methods, and fields.
* {{@Named}} type named.
* {{@Provider<T>}} Provides instances of T.
* {{@Scope}} Identifies scope annotations.
* {{@Singleton}} Identifies a type that the injector only instantiates once.
* {{-@Qualifier-}} not implemented.

h4. Deprecate _org.apache.cayenne.di.Inject_ annotion and _org.apache.cayenne.di.Provider_ interface

h4. add {{lazy}}/{{eager}} singleton instantiation
- {{lazy}} is default implementation.
- {{earger}} allows initializing singleton upon cayenne run-time started, exceptions will occur at start-up time vs first be used and avoids any delay when the service provided is requested the first time.



> add support jsr-250 and jsr330 to DI
> ------------------------------------
>
>                 Key: CAY-1955
>                 URL: https://issues.apache.org/jira/browse/CAY-1955
>             Project: Cayenne
>          Issue Type: Improvement
>          Components: Core Library
>            Reporter: Friederich Christophe
>            Priority: Minor
>              Labels: patch
>
> h4. Add partial *JSR-250* lifecycle annotations support:
> * {{@PostConstruct}} is used on methods that need to get executed after dependency injection is done to perform any initialization.
> * {{@PreDestroy}} is used on methods that are called before the instance is removed from the container
> h4. Add partial *JSR-330* dependency injector annotations support
> * {{@Inject}} identifies injectable constructors, methods, and fields.
> * {{@Named}} type named.
> * {{Provider<T>}} interface Provides instances of T.
> * {{@Scope}} Identifies scope annotations.
> * {{@Singleton}} Identifies a type that the injector only instantiates once.
> * {{-@Qualifier-}} not implemented.
> h4. Deprecate _org.apache.cayenne.di.Inject_ annotion and _org.apache.cayenne.di.Provider_ interface
> h4. add {{lazy}}/{{eager}} singleton instantiation
> - {{lazy}} is default implementation.
> - {{earger}} allows initializing singleton upon cayenne run-time started, exceptions will occur at start-up time vs first be used and avoids any delay when the service provided is requested the first time.
> h4. add possibility  to inject a specific provider (_optional_)
> {code}
> public interface ProviderResource extends Provider<Resource> {
>     public Resource get() {...}
>     public void close() {...}
> }
> ...
> public class Manager {
>     @Inject
>     @Named("domainFile")
>     private ProviderResource resource;
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)