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; > > >>> > > >> > > >> > > > > > >