Hello again,
I really don?t know how to aspectize the objects I want to cache. As I said in my first
post, all the examples that I have found are standalone. I want to use it in the Jboss AS,
so I am having problems to understand exactly what to do. Please remember that I am newbie
in Jboss and JbossCache. I have read all the documentation, and examples and I am quite
lost right now, so I hope you can help me.
According to the documentation, there are two steps needed to instrument or aspectize the
POJOs via JBossAop:
1. Prepare POJO. Via annotation or xml declaration. For annotation either JDK 1.4 or JDK
5.0.
2. Instrumentation. Instrument the POJO either at compile-time or load-time. Compile-time
=> use the so-called aop pro-compiler to do bytecode manipulation. Load-time => you
need either a special system class loader or in JDK 5.0 you use the javaagent option.
I want to use JDK 5.0 via annotation and also I want to use the load-time mode (I don?t
want to do any pre-compilation at all). I think that this way is easy for a beginner like
me in JbossCache. No xml files, no pre-compilation? just annotation
I am using JBossCache 1.4.1. GA under Jboss 4.0.5. GA (EJB3).
-- POJO declaration --
For the first step, I am using two classes from example directory
(JBossCache-1.4.1.GA\examples\PojoCache\annotated50), Person.java and Address.java. So
this is the POJO declaration:
| package stpd.component.sensors.reads;
|
| /**
| * @author Ben Wang
| */
| @org.jboss.cache.aop.annotation.InstanceOfPojoCacheable
| public class Person {
| protected String name;
| protected Address address;
|
| ...
|
| package stpd.component.sensors.reads;
|
| /**
| * @author Ben Wang
| */
| @org.jboss.cache.aop.annotation.PojoCacheable
| public class Address {
| protected String city;
| protected int zip;
| protected String street;
|
| ...
|
-- Instrumentation ?
For the second step I am using file \META-INF\jboss-aop.xml:
| <?xml version="1.0" encoding="UTF-8"?>
|
| <!--
| This is the meta file to declare user's POJO as "aspectized" under
| JBossCacheAop. User will need this file when:
| 1. Run off-line precompier, aopc, to generate the "aspectized" class
| 2. Run on-line with a special aop class loader.
| -->
| <aop>
| <prepare expr="field(*
@org.jboss.cache.aop.annotation.PojoCacheable->*)" />
| <prepare expr="field(*
$instanceof{(a)org.jboss.cache.aop.annotation.InstanceOfPojoCacheable}->*)" />
| </aop>
|
There is an example called ?annotated50? that uses JDK50 POJO Cache annotation and that
can be run in load-time mode. It uses ant to build and run the example. This is how you
run the example in Load-time mode:
| <target name="run.loadtime.example" depends="compile"
description="run standalone server replicator.">
| <java classname="test.examples.StudentMaintTest"
fork="yes">
| <jvmarg
value="-Djboss.aop.path=${cache_resources}/jboss-aop.xml"/>
| <jvmarg
value="-javaagent:${cache_lib-50}/jboss-aop-jdk50.jar"/>
| <classpath refid="lib.classpath"/>
| <classpath path="${output}/etc"/>
| <classpath path="${build}"/>
| </java>
| </target>
|
I am not using ant to build my project, and I don?t know how to use javaagent option for
JDK 5.0.
Sorry and thank you agian.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4008946#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...