Return-Path: Delivered-To: apmail-cocoon-users-archive@www.apache.org Received: (qmail 1785 invoked from network); 6 Oct 2009 13:54:49 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 6 Oct 2009 13:54:49 -0000 Received: (qmail 81876 invoked by uid 500); 6 Oct 2009 13:54:48 -0000 Delivered-To: apmail-cocoon-users-archive@cocoon.apache.org Received: (qmail 81818 invoked by uid 500); 6 Oct 2009 13:54:48 -0000 Mailing-List: contact users-help@cocoon.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: users@cocoon.apache.org List-Id: Delivered-To: mailing list users@cocoon.apache.org Received: (qmail 81810 invoked by uid 99); 6 Oct 2009 13:54:48 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Oct 2009 13:54:48 +0000 X-ASF-Spam-Status: No, hits=1.2 required=10.0 tests=SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (nike.apache.org: local policy) Received: from [82.99.2.81] (HELO mx4.ciber-europe.com) (82.99.2.81) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Oct 2009 13:54:36 +0000 Received: from eusex01.sweden.ecsoft ([10.46.0.69]) by mx4.ciber-europe.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 6 Oct 2009 15:54:16 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Subject: RE: using Spring AOP in cocoon block [SOLVED] Date: Tue, 6 Oct 2009 15:58:49 +0200 Message-ID: <7C655C04B6F59643A1EF66056C0E095E02CE5A63@eusex01.sweden.ecsoft> In-Reply-To: <7C655C04B6F59643A1EF66056C0E095E02CE5A2F@eusex01.sweden.ecsoft> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: using Spring AOP in cocoon block [SOLVED] Thread-Index: AcpGgMBsuHDZJJiWSs+NBGE9lJnE0QAAW45QAAJP8/A= References: <7C655C04B6F59643A1EF66056C0E095E02C73FB1@eusex01.sweden.ecsoft> <4AC991F4.5000806@uninett.no> <7C655C04B6F59643A1EF66056C0E095E02CE58DE@eusex01.sweden.ecsoft> <7C655C04B6F59643A1EF66056C0E095E02CE597D@eusex01.sweden.ecsoft> <4ACB37CA.8000903@uninett.no> <7C655C04B6F59643A1EF66056C0E095E02CE5A2F@eusex01.sweden.ecsoft> From: "Robby Pelssers" To: X-OriginalArrivalTime: 06 Oct 2009 13:54:16.0288 (UTC) FILETIME=[7E5D2600:01CA468C] X-Virus-Checked: Checked by ClamAV on apache.org Ok... so here is what I did to get a typical Core Spring AOP example working in a Cocoon 2.2 block. 1) generate the block using the Cocoon archetype. 2) add the necessary dependencies to the pom.xml org.aspectj aspectjrt 1.6.4 org.aspectj aspectjweaver 1.6.4 =20 cglib cglib-nodep 2.2 3) run "mvn eclipse:eclipse" 4) import the project in eclipse 5) Create an Aspect which logs if the message on the sample MyBean.java included in the block archetype is set ------------------------------------------------------------------------ ------------------------------------ package com.ciber; import org.apache.log4j.Logger; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; @Aspect public class PropertyChangeTracker { private Logger logger =3D Logger.getLogger(getClass()); =09 @Before("execution(void com.ciber.MyBean.set*(*))") public void trackChange(JoinPoint point) { String name =3D point.getSignature().getName(); Object newValue =3D point.getArgs()[0]; logger.info(name + " about to change to " + newValue + " on " + point.getTarget()); } } ------------------------------------------------------------------------ ------------------------------------ 6) add an aspects.xml to META-INF/cocoon/spring ------------------------------------------------------------------------ ------------------------------------ =20 ------------------------------------------------------------------------ ------------------------------------ 7) change /COB-INF/flow/spring-bean.js and set the message so we can see if our aspect is invoked function demo() { var demoBean =3D cocoon.getComponent("demo"); =20 demoBean.setMessage("Changed message from flowscript ;-)"); cocoon.sendPage("screens/spring-bean", { "message" : demoBean.message } ); } I changed logger.info() to System.out.println() to do a quick test and the output was what I'd expect: setMessage about to change to Changed message from flowscript ;-) on com.ciber.MyBean@16b4e30 Nice stuff....=20 Finally being able to play around with AOP in cocoon ;-) Cheers, Robby Pelssers --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org For additional commands, e-mail: users-help@cocoon.apache.org