No comment... . :)

2013/10/28 Chris Mylonas <ch...@opencsta.org>

> Sorry to bring up an old thread, I'm just reading it now - to my
> entertainment and learning :)
>
> I've created a JIRA - https://issues.apache.org/jira/browse/TAP5-2210
>
> For the purpose of suggesting an "Alternatives" section for the tapestry
> features that would be commonly used and how to initiate NOT using them -
> e.g. this service implementation preventReloading()
>
> I'm sure there are a few "alternatives" that would save some mailing list
> time and dev-ing.
>
> Cheers
> Chris
>
>
>
> On Wed, Oct 16, 2013 at 10:46 PM, Martin Kersten <
> martin.kersten...@gmail.com> wrote:
>
> > Using serviceBinder.bind(Service, ServiceImpl).preventReloading() solves
> > the issue. Now I can use impl =
> >
> >
> (ServiceImpl)ServiceProxyUtil.getImplementation(registry.getService(Service.class)).
> > So I dont need to invoke methods using reflection and I have AOP and
> > Decoration for the rest of the service methods as long as I use the proxy
> > to access the methods.
> >
> > Mission successful.
> >
> >
> > 2013/10/16 Martin Kersten <martin.kersten...@gmail.com>
> >
> > > I checked the sources. After setting production mode to test my proxy
> > util
> > > for this it does not change reload behaviour. It seams to be only
> > switched
> > > off in case a service is bound with preventReload or a global property
> to
> > > prevent reloading is set or the service is not an interface.
> > >
> > > So in the end in production mode the reloading is enabled(?).
> > >
> > >
> > > 2013/10/16 Martin Kersten <martin.kersten...@gmail.com>
> > >
> > >> Dont see this to work with AOP on the LegacyInterface or do I overlook
> > >> something.
> > >>
> > >> Better might be the use of a legacy service and provide an extended
> > >> service using refelction to access the legacy service implementation
> > >> (subclass). Would also make it clear and nice.
> > >>
> > >>
> > >> 2013/10/16 Lance Java <lance.j...@googlemail.com>
> > >>
> > >>> Here's a workaround
> > >>>
> > >>> public interface LegacyService {
> > >>>                 void method1();
> > >>> }
> > >>>
> > >>> public class LegacyServiceImpl implements LegacyService {
> > >>>                 public void method1() { ... }
> > >>>                 public void method2() { ... }
> > >>> }
> > >>>
> > >>> public interface ExtendedService {
> > >>>                 void method2();
> > >>> }
> > >>>
> > >>> public interface Hack {
> > >>>                 public LegacyService getLegacyService();
> > >>>                 public ExtendedService getExtendedService();
> > >>> }
> > >>>
> > >>> AppModule
> > >>> ---------
> > >>> public Hack buildHack(@Autobuild LegacyServiceImpl impl) {
> > >>>                 return new Hack() {
> > >>>                                 public LegacyService
> > getLegacyService() {
> > >>> return impl; }
> > >>>
> > >>>                                 public ExtendedService
> > >>> getExtendedService()
> > >>> {
> > >>>                                                 return new
> > >>> ExtendedService()
> > >>> {
> public
> > >>> void
> > >>> method2()
> > >>> {
> > >>> return impl.method2();
> > >>>                                                                 }
> > >>>                                                 };
> > >>>                                 };
> > >>>                 };
> > >>> }
> > >>>
> > >>> public LegacyService buildLegacyService(Hack hack) {
> > >>>                 return hack.getLegacyService();
> > >>> }
> > >>>
> > >>> public ExtendedService buildExtendedService(Hack hack) {
> > >>>                 return hack.getExtendedService();
> > >>> }
> > >>>
> > >>>
> > >>>
> > >>> Component
> > >>> ---------
> > >>> @Inject
> > >>> private LegacyService legacyService;
> > >>>
> > >>> @Inject
> > >>> private ExtendedService extendedService;
> > >>>
> > >>
> > >>
> > >
> >
>

Reply via email to