Re: Switching off Reloading of Service Implemenation?

2013-10-29 Thread Martin Kersten
No comment... . :) 2013/10/28 Chris Mylonas > 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 >

Re: Switching off Reloading of Service Implemenation?

2013-10-28 Thread Chris Mylonas
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 NO

Re: Switching off Reloading of Service Implemenation?

2013-10-16 Thread Martin Kersten
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 m

Re: Switching off Reloading of Service Implemenation?

2013-10-16 Thread Martin Kersten
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

Re: Switching off Reloading of Service Implemenation?

2013-10-16 Thread Martin Kersten
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 > Here

Re: Switching off Reloading of Service Implemenation?

2013-10-16 Thread Lance Java
Here's a workaround public interface LegacyService { void method1(); } public class LegacyServiceImpl implements LegacyService { public void method1() { ... } public void method2() { ... } } public interface ExtendedService { void m

Re: Switching off Reloading of Service Implemenation?

2013-10-16 Thread Martin Kersten
I noticed. I read the source and this return bind(class,class) is what I missed: "So thanks you two". Maybe updating the documentation... well let it be :). Sadly I need AOP for that too, so having an undecorated service is not good enough. Currently I just stick with Reflection.invoke(ServiceProx

Re: Switching off Reloading of Service Implemenation?

2013-10-16 Thread Lance Java
If you really really really want to do this thing that we are both suggesting is a bad idea, you can do one of the following in AppModule public static MyServiceImpl buildMyServiceImpl(…) { return new MyServiceImpl(…); } OR public static void bind(ServiceBinder binder) { binder.bind(MyServ

Re: Switching off Reloading of Service Implemenation?

2013-10-16 Thread Martin Kersten
> > Also it makes everything feel stiff and decoupled in a not useful way. > > Stiff is the opposite of decoupled. And interfaces are quite useful, but I'm not really in the mood of explaining why. OOP and IoC already do that for me. Nope. Completely wrong :). Stiff means not changeable in terms

Re: Switching off Reloading of Service Implemenation?

2013-10-15 Thread Thiago H de Paula Figueiredo
Also, see @PostInjection: /** * Annotation for methods that should be invoked after injection. This occurs last: after constructor injection and * after field injection. It should be placed on a public method. Any return value from the method is * ignored. The order of invocation for class

Re: Switching off Reloading of Service Implemenation?

2013-10-15 Thread Thiago H de Paula Figueiredo
On Tue, 15 Oct 2013 19:06:17 -0300, Martin Kersten wrote: AFAIK, just set the tapestry.production-mode symbol to true and service reloading is turned off.< Wasn't this also turning of the template realoading and Page/Component replacement? Which I would like to have enabled. See my other

Re: Switching off Reloading of Service Implemenation?

2013-10-15 Thread Thiago H de Paula Figueiredo
On Tue, 15 Oct 2013 19:18:51 -0300, Martin Kersten wrote: And If I remember my diggin into the code session of tapestry's IOC correctly, binding a concrete (implementation) class is just binding the class to all its (super)interfaces. The only way of getting something concrete out of tapestri

Re: Switching off Reloading of Service Implemenation?

2013-10-15 Thread Cezary Biernacki
Even if do not own the interface, you can still create a new interface extending the original one. Than in your code you can inject your new interface to ger access to your extra methods. I am not at the computer now, so I do not have any examples, but I used such approach to "add" some methods to

Re: Switching off Reloading of Service Implemenation?

2013-10-15 Thread Martin Kersten
I do not own the interface. Currently I just use reflection to get the concrete service instance from the proxy and use reflection to call my method. And If I remember my diggin into the code session of tapestry's IOC correctly, binding a concrete (implementation) class is just binding the class t

Re: Switching off Reloading of Service Implemenation?

2013-10-15 Thread Martin Kersten
>AFAIK, just set the tapestry.production-mode symbol to true and service reloading is turned off.< Wasn't this also turning of the template realoading and Page/Component replacement? Which I would like to have enabled. Ok I use Screenshots and a Firefox Selenium Driver with a trigger so the testca

Re: Switching off Reloading of Service Implemenation?

2013-10-15 Thread Thiago H de Paula Figueiredo
On Tue, 15 Oct 2013 18:34:09 -0300, Lance Java wrote: I don't recommend this at all, in fact I think it is a terrible idea but if you really want to stop tapestry from creating reloadable proxies, you can declare your services by concrete class instead of by interface in your AppModule.

Re: Switching off Reloading of Service Implemenation?

2013-10-15 Thread Lance Java
Reloadable services are a development only feature that are aimed at improving developer productivity by reducing down time. As Thiago has said, casting to the concrete type is not good OO practice. If you need to access methods on the concrete class it's probably a sign that you need to add metho

Re: Switching off Reloading of Service Implemenation?

2013-10-15 Thread Thiago H de Paula Figueiredo
On Tue, 15 Oct 2013 13:01:51 -0300, Martin Kersten wrote: I struggle a bit with the class loader supporting service implemenation reloading. AFAIK, just set the tapestry.production-mode symbol to true and service reloading is turned off. I dont need this and I would love to be able to c

Switching off Reloading of Service Implemenation?

2013-10-15 Thread Martin Kersten
I struggle a bit with the class loader supporting service implemenation reloading. I dont need this and I would love to be able to cast my Service instances to the impl class which is quite a good way. Sometimes I think I want to go with a meta service object storing all the services that are per