Hi Felix,

I pushed all the required changes to the forked repo. Things left to do:

* check what we actually need to export for preventing class loading
problems
* expand JavaDoc

At this point I think that we can create a patch with our changes and apply
it to trunk.

Cheers,
Radu

On Thu, Nov 20, 2014 at 6:53 PM, Felix Meschberger <fmesc...@adobe.com>
wrote:

> Hi
>
> Thanks for your reply.
>
> For those interested in following, Radu and I are cooperating on these
> changes in my GitHub fork at https://github.com/fmeschbe/sling
>
>
> > Am 19.11.2014 um 22:53 schrieb Radu Cotescu <r...@cotescu.com>:
> >
> > Hi Felix,
> >
> > The API reorganisation looks good to me.
> >
> > On Wed, Nov 19, 2014 at 10:49 PM, Felix Meschberger <fmesc...@adobe.com>
> > wrote:
> >
> >> Apart from splitting the base .api package, this are further
> discussions:
> >>
> >> * Exceptions are forming a hierarchy with SightlyEngineException being
> the
> >> root and itself extending from SlingException
> >>
> >
> > Sure, it makes sense.
>
> Done in the fork. The „root“ exception for Sightly is not SightlyException
> (SightlyEngineException renamed to SightlyException).
>
> >
> >
> >> * I wonder, whether we should really drop the *Component abstract
> classes
> >> (RuntimeExtensionComponent and UseProviderComponent). I don’t think they
> >> provide real value at all but have an activate method, which they
> expect to
> >> be called and which they expect to be a DS component annotated with the
> >> Felix annotations. I think this is brittle.
> >>
> >
> > The abstract classes were written specifically for that activate method,
> in
> > order to avoid writing those lines of code for every implementation.
>
> We are working on removing these abstract classes by leveraging service
> properties for
>
>  * UseProvider ranking (service.ranking)
>  * ExtensionProvider naming
>
> >
> >
> >
> >> * UseProvider defines an ordering method and declares itself being
> >> Comparable. I think this is wrong. The UseProviders should be sorted
> using
> >> regular OSGi service ranking.
> >>
> >
> > If we make the service.ranking property configurable (metatype = true) I
> > guess we could use the OSGi ranking. Theoretically the Use providers can
> be
> > configured to be called in a pre-determined order, depending on how the
> > Sightly projects from an instance make use of the Use-API (Java Use-API
> > objects deployed in bundles / Java Use objects near the component script
> in
> > the repo / JS Use-API, etc.). Having the Use providers called in the most
> > favourable way can increase performance for Sightly applications.
>
> Yes, the service.ranking property can be added to metatype for
> configurable ranking.
>
> >
> >
> >> * I wonder, whether we really have to have all this API exported at all:
> >> Some API I don’t see implemented at all (e.g. BaseRenderUnit — or is
> that
> >> the base class for the Java classes generated from the Sightly
> templates ?)
> >>
> >
> > The BaseRenderUnit is indeed the base class for classes generated from
> > Sightly scripts, which is why we need to export the other classes as
> well.
> > In this regard Sightly is no different from the JSP engine.
>
> Ok. We’d have to test this more. But I suspect we don’t really need to
> export the BaseRenderUnit abstract class.
>
> IIRC the reason for exporting the base JSP servlet is that other classes
> in the same package must be exported.
>
> >
> >
> >> * Last but not least (actually most important of all): There is close to
> >> no JavaDoc. Before cutting a release of this bundle, JavaDoc must be
> >> provided for the API. For example I am not sure, what the Record or the
> >> ObjectModel interfaces are really used for.
> >>
> >
> > It's on my TODO list.
>
> Cool. Thanks.
>
> Regards
> Felix
>

Reply via email to