cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrus Adamchik (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CAY-1955) add support jsr-250 and jsr330 to DI
Date Fri, 12 Sep 2014 10:24:33 GMT

    [ https://issues.apache.org/jira/browse/CAY-1955?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14131354#comment-14131354
] 

Andrus Adamchik commented on CAY-1955:
--------------------------------------

an email to the dev mailing list would work. More importantly this is the format that would
work for a discussion. 

> 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 constant binding injection
> {code}
> public class ClientModule implements Module {
>     private String ROPServiceUrl;
>  
>     public void configure(Binder binder) {
>         Assert.notNull(ROPServiceUrl, "ROP  service url is required");
>         ...
>         binder.bindConstant(String.class, "rop-service-url").to(ROPServiceUrl);
>         ...
>     }
> }
> public class HessianConnectionProvider implements Provider<ClientConnection> {
>     private String url;
>     public HessianConnectionProvider(@Inject @Named("rop-service-url") String url) {
>         this.url = url;
>     }
>     ...
> }
> {code}
> 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)

Mime
View raw message