Hi Simone, On Sun, Sep 7, 2008 at 7:34 PM, Simone Gianni <[EMAIL PROTECTED]> wrote:
> Hi Alex, > thanks for your positive vote. > > Yes, I looked at Qi4J and I find it an extremely interesting project. > It's something very interesting in the AOP landscape but I guess you're all over it. > > However, while taking the same philosophy of overcoming OO limitations > using AOP, providing highly reusable fragments and giving many > out-of-the-box functionalities, I find the "plain AOP" (like AspectJ) > approach by far simpler. > > Qi4J is cleaner cause it uses Java interfaces and dynamic proxies only, > requires no bytecode manipulators, and strongly separates all aspects of > a bean in different interfaces. > > Magma focuses on a less verbose, faster approach, using Intertype > Declarations to create mixins, and pure AOP to specialize behaviors. > Also, using in place AOP technologies for java (again, mainly AspectJ), > it's possible to bring existing code (even foreign code, even if you > don't have the source) inside a Magma application without effort or need > to refactor, and still benefit from all features. > > IMO bytecode modification is not such a black magic art anymore : JDO, > JPA (and Hibernate), Cocoon/Commons Javaflow and many other projects > have been using it in production for years now. Also, folks at Eclipse > managed to bring AspectJ inside an OSGi container, making the bytecode > manipulation process as dynamic as required by such a dynamic environment. > > Writing many interfaces, while it's a perfect programming technique, has > been proven to be a tedious task for many programmers (EJB docet). > > So, while both Magma and Qi4J starts from the same POV on current > problems, and goes in the same direction, they will follow quite > different paths to get there. > > However, since both focus on DDD and provide reusable fragments, nothing > prevents Magma to have an integration module for Qi4J fragments and the > opposite way around. > That's cool. Thanks for the breakdown and comparison. Looking forward to the lab. Alex > > Simone > > Alex Karasulu wrote: > > +1 > > > > Simone have you had a look at http://www.qi4j.org/ yet? > > > > Alex > > > > On Sun, Sep 7, 2008 at 6:14 PM, Geir Magnusson Jr. <[EMAIL PROTECTED]> > wrote: > > > > > >> +1 > >> > >> > >> On Sep 7, 2008, at 4:40 PM, Brett Porter wrote: > >> > >> +1 > >> > >>> On 08/09/2008, at 3:19 AM, Simone Gianni wrote: > >>> > >>> Dear researchers, > >>> > >>>> lately I've been playing around with AOP and related technologies to > >>>> overcome the common code reuse and extension limitations in Java. > While > >>>> AOP is a good answer to many common system integration problems, and > is > >>>> therefore an already well established practice coming in various Java > >>>> forms (AspectJ, Spring AOP etc..), it is commonly used in the > background > >>>> and rarely at its full potential. > >>>> > >>>> So, I'm asking for a lab named Magma. There I'd like to research the > >>>> possibility to use a strongly "AOPized" approach to application > >>>> development and integration of various Apache technologies, in the > field > >>>> of (but not limited to) web application development. > >>>> > >>>> Apache Labs is the perfect place for such an effort for a number of > >>>> reasons : > >>>> - The research nature of the lab > >>>> - Connection with many Apache technologies > >>>> - The cross-project integration objective > >>>> > >>>> I have a basic but working codebase, maven built, fully Junit'ed and > >>>> quite documented. It is a good starting point to build a simple web > >>>> site, web application or REST style web service endpoint. It already > >>>> provides a very easy way to integrate Velocity, Struts, Cocoon 3.0, > >>>> OpenJPA and Jackrabbit in a single product using annotation based > >>>> syntax, plain java, convention over configuration coding, and > providing > >>>> endless extensibility and "pluggability" using AOP. The aim is to > >>>> further explore the possibilities of this approach while delineating > an > >>>> integration framework. > >>>> > >>>> The DOAP definition follows : > >>>> > >>>> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" > >>>> xmlns="http://usefulinc.com/ns/doap#" > >>>> xmlns:foaf="http://xmlns.com/foaf/0.1/" > >>>> xmlns:labs="http://labs.apache.org/doap-ext/1.0#" > >>>> xmlns:projects="http://projects.apache.org/ns/asfext#"> <Project > >>>> rdf:about="http://labs.apache.org/labs#magma"> <name>Magma</name> > >>>> <shortname>magma</shortname> <shortdesc xml:lang="en">Innovative > >>>> integration framework to achieve extremely simple code > reuse</shortdesc> > >>>> <description xml:lang="en">Magma uses AOP technology to achieve > extreme > >>>> code reuse. This makes it a perfect integration platform to build > >>>> websites or common applications. </description> <homepage > >>>> rdf:resource="http://labs.apache.org/magma/"/> <license > >>>> rdf:resource="http://usefulinc.com/doap/licenses/asl20"/> > >>>> <created>2008-9-7</created> <labs:status>active</labs:status> > >>>> <maintainer> <foaf:Person > >>>> rdf:about="http://people.apache.org/~simoneg/#me<http://people.apache.org/%7Esimoneg/#me> > <http://people.apache.org/%7Esimoneg/#me>"> > >>>> <foaf:name>Simone > >>>> Gianni</foaf:name> <foaf:homepage > >>>> rdf:resource="http://people.apache.org/~simoneg/<http://people.apache.org/%7Esimoneg/> > <http://people.apache.org/%7Esimoneg/> > >>>> "/> > >>>> > >>>> > <foaf:mbox_sha1sum>5855125bbffa22f2309661a463c4e310c44580c6</foaf:mbox_sha1sum> > >>>> </foaf:Person> </maintainer> <repository> <SVNRepository> <location > >>>> rdf:resource="http://svn.apache.org/repos/asf/labs/magma/"/> <browse > >>>> rdf:resource="http://svn.apache.org/viewvc/labs/magma/"/> > >>>> </SVNRepository> </repository> > >>>> <programming-language>java</programming-language> > >>>> <programming-language>aspectj</programming-language> </Project> > >>>> </rdf:RDF> > >>>> > >>>> > >>>> -- > >>>> Simone Gianni > >>>> http://www.simonegianni.it/ > >>>> CEO Semeru s.r.l. > >>>> Apache Committer > >>>> > >>>> > >>>> > >>>> > >>>> --------------------------------------------------------------------- > >>>> To unsubscribe, e-mail: [EMAIL PROTECTED] > >>>> For additional commands, e-mail: [EMAIL PROTECTED] > >>>> > >>>> > >>>> > >>> -- > >>> Brett Porter > >>> [EMAIL PROTECTED] > >>> http://blogs.exist.com/bporter/ > >>> > >>> > >>> --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: [EMAIL PROTECTED] > >>> For additional commands, e-mail: [EMAIL PROTECTED] > >>> > >>> > >>> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: [EMAIL PROTECTED] > >> For additional commands, e-mail: [EMAIL PROTECTED] > >> > >> > >> > > > > > > > -- > Simone Gianni > http://www.simonegianni.it/ > CEO Semeru s.r.l. > Apache Committer > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >