One reason for using Inject would be that @Reference is a compile time
annotation (i.e. RetentionPolicy.SOURCE). And due do that a new
annotation TestReference is being used in Sling Testing component [1].

And as Inject is part of JSR 300 we can possibly have reference to
such a class in the code.

Chetan Mehrotra

[1] 
http://svn.apache.org/viewvc/sling/trunk/testing/junit/core/src/main/java/org/apache/sling/junit/annotations/TestReference.java?view=markup

On Tue, Mar 15, 2011 at 1:45 PM, Markus Joschko
<[email protected]> wrote:
>
> I like the idea.
> I just wonder if it might be a bit inconsistent to use @Inject when
> most of the other code in a sling project (OSGI components) uses
> @Reference.
> As a developer I would appreciate consistency in how dependency
> injection is done.
>
> Regards,
>  Markus
>
> On Tue, Mar 15, 2011 at 2:51 AM, Justin Edelson
> <[email protected]> wrote:
> > I was looking at how much code is involved in referencing an OSGi
> > service from a script built using the scripting.java bundle and think
> > it's a bit verbose:
> >
> > SlingBindings bindings = (SlingBindings)
> > request.getAttribute(SlingBindings.class.getName());
> > SlingScriptHelper sling = bindings.getSling();
> > Interface service = sling.getService(Interface.class);
> >
> > I was thinking about adding some kind of annotation-based injection
> > support so that you could replace these lines with just:
> >
> >
> > @Inject
> > private Interface service;
> >
> > public void service(request, response) {
> >  // some code using service
> >
> > }
> >
> > @Inject seems like the obvious candidate to support for this. WDYT?
> >
> > Justin
> >

Reply via email to