Hi Alex,
thanks for your positive vote.

Yes, I looked at Qi4J and I find it an extremely interesting project.

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.

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>">
>>>> <foaf:name>Simone
>>>> Gianni</foaf:name> <foaf:homepage
>>>> rdf:resource="http://people.apache.org/~simoneg/<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]

Reply via email to