On Tue, 27 May 2014 19:14:25 -0300, Jigar Joshi <jiga...@gmail.com> wrote:
Thanks Basile, if you could comment on how to add constructor to
generated
proxy class, I couldn't find introduceConstructor(...) or
PlasticConstructor
Why do you need a constructor for a proxy?
On Fri, May 23, 2014 at 2:54 PM, Basile Chandesris <ba...@free.fr> wrote:
http://tawus.wordpress.com/2011/05/22/meeting-plastic-v-
a-method-shadow-builder/
Le 23/05/14 00:40, Jigar Joshi a écrit :
Thank you,
the closest implementation I found is here
PlasticManager plasticManager =
PlasticManager.withContextClassLoader().create();
PlasticClass plasticClass =
plasticManager.createProxyTransformation(serviceInterface,
null).getPlasticClass();
PlasticField plasticField =
plasticClass.introduceField(IProvider.class, "_creator");
PlasticProxyFactory factory = new
PlasticProxyFactoryImpl(plasticManager, log);
MethodDescription methodDescription = new
MethodDescription(serviceInterface.getClass().getName(),
"_scopeInstance",
null, null);
plasticClass.introduceMethod(methodDescription);
this doesn't help me to create class instance on the fly though, it is
creates PlasticClass also I didn't find flexibility to specify field
access
specifiers
I must be looking at wrong set of class it seems, any thoughts ?
On Tue, May 20, 2014 at 12:42 AM, Lance Java
<lance.j...@googlemail.com>
wrote:
Tapestry has switched to plastic for its byte code magic. Currently,
plastic isn't well documented. I find that the best documentation
currently
is the test cases. Perhaps you can find your answer here:
https://github.com/apache/tapestry-5/tree/master/
plastic/src/test/groovy/org/apache/tapestry5/plastic
On 19 May 2014 23:46, "Jigar Joshi" <jiga...@gmail.com> wrote:
Hello
with tapestry 5.3.4 and java 7 with use of
org.apache.tapestry5.ioc.services.ClassFactory
private Class<?> createProxyClass(ServiceResources resources) {
Class<?> serviceInterface = resources.getServiceInterface();
ClassFab cf = classFactory.newClass(serviceInterface);
// add field
cf.addField("_creator", Modifier.PRIVATE | Modifier.FINAL,
SomeClass.class);
// Constructor takes a ServiceCreator
cf.addConstructor(new Class[] { SomeClass.class }, null,
"_creator
= $1;");
// add method
String body = format("return (%s) _creator.get();",
serviceInterface.getName());
MethodSignature sig = new MethodSignature(serviceInterface,
SCOPE_METHOD_NAME, null, null);
cf.addMethod(Modifier.PRIVATE, sig, body);
String toString = format("<Scoped Proxy for scope(%s):
%s(%s)>",
scope, resources.getServiceId(),
serviceInterface.getName());
cf.proxyMethodsToDelegate(serviceInterface,
SCOPE_METHOD_NAME
+
"()", toString);
return cf.createClass();
}
with tapestry 5.4-beta3 this class has been removed (it was
depricated)
I played around a little bit to find related implementation in new
replaced
class
org.apache.tapestry5.ioc.services.PlasticProxyFactory
couldn't find it offhand, how to achieve same thing with tapestry
5.4 ?
Thanks!
Jigar
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tapestry.apache.org
For additional commands, e-mail: dev-h...@tapestry.apache.org
--
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tapestry.apache.org
For additional commands, e-mail: dev-h...@tapestry.apache.org