I am probably doing something really dumb here, but I can't seem to compile a 
basic mixin example under maven.  I am using the example code from AspectJ in 
Action by Ramnivas Laddad Chapter 5(Like Listing 5.15 in section 5.1.5).
I am packaging a basic Nameable mixin into a jar and that seems to work ok in 
that even though the files have the .java extension, the class files seem to 
build the aspect stuff  correctly including the NameableMixin$Impl.

I have ...

1.  src/main/java/ajia/mixin/Entity.java

package ajia.mixin;

public class Entity implements Nameable {
}

2. src/main/java/ajia/mixin/Nameable.java


package ajia.mixin;

public interface Nameable {
        public void setName(String name);
        public String getName();
        
        static aspect Impl {
        private String Nameable.name;
                public void Nameable.setName(String name) {
                        this.name = name;
                }
                public String Nameable.getName() {
                        return this.name;
                }
        }
}


which yields (as expected) ...

$ unzip -l target/myaspect-1.0-SNAPSHOT.jar 
Archive:  target/myaspect-1.0-SNAPSHOT.jar
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2011-11-14 17:17   META-INF/
      127  2011-11-14 17:17   META-INF/MANIFEST.MF
        0  2011-11-14 17:17   ajia/
        0  2011-11-14 17:17   ajia/mixin/
     1767  2011-11-14 17:17   ajia/mixin/Nameable.class
     4613  2011-11-14 17:17   ajia/mixin/Nameable$Impl.class
     1681  2011-11-14 17:17   ajia/Nameable.class
     4511  2011-11-14 17:17   ajia/Nameable$Impl.class
      525  2011-11-14 17:17   builddef.lst
        0  2011-11-14 17:17   META-INF/maven/
        0  2011-11-14 17:17   META-INF/maven/ajia.mixin/
        0  2011-11-14 17:17   META-INF/maven/ajia.mixin/myaspect/
     1318  2011-11-14 16:47   META-INF/maven/ajia.mixin/myaspect/pom.xml
      110  2011-11-14 17:17   META-INF/maven/ajia.mixin/myaspect/pom.properties
---------                     -------
    17296                     15 files



Please let me know if any files in this jar are of interest.
Then I try to use this in another project but the build breaks with 

[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] <snipped>src/main/java/<blah blah>/MyMixinTarget.java:[14,7]  
MyMixinTarget is not abstract and does not override abstract method 
setName(java.lang.String) in ajia/mixin/NameableMixin
[INFO] 1 error
[INFO] -------------------------------------------------------------

Not sure why this is happening.  Clearly the ajc is not getting involved where 
it should, and javac isn't looking for the aspect.  Must all mixin targets be 
under src/main/aspect?  

The pom.xml for the target project contains(among many other things) :

                <dependency>
                        <groupId> ajia.mixin</groupId>
                        <artifactId>myaspect</artifactId>
                        <version>2.0.7-SNAPSHOT</version>
                        <scope>compile</scope>
                </dependency>
                <dependency>
                        <groupId>org.aspectj</groupId>
                        <artifactId>aspectjweaver</artifactId>
                        <version>1.6.11</version>
                        <scope>compile</scope>
                </dependency>
                <dependency>
                        <groupId>org.aspectj</groupId>
                        <artifactId>aspectjrt</artifactId>
                        <version>1.6.11</version>
                </dependency>

AND

                        <plugin>
                                <groupId>org.codehaus.mojo</groupId>
                                <artifactId>aspectj-maven-plugin</artifactId>
                                <version>1.4</version>
                                <configuration>
                                        <source>1.6</source>
                                        <target>1.6</target>
                                        <verbose>true</verbose>
                                        <outxml>false</outxml>
                                        <showWeaveInfo>true</showWeaveInfo>

                                        <weaveDependencies>
                                                <weaveDependency>
                                                        
<groupId>ajia.mixin</groupId>
                                                        
<artifactId>myaspects</artifactId>
                                                </weaveDependency>
                                        </weaveDependencies>
                                </configuration>
                                <executions>
                                        <execution>
                                                <goals>
                                                        <goal>compile</goal>
                                                </goals>
                                        </execution>
                                </executions>
                        </plugin>




********************************************************************************
Other info:



$ ajc -version
AspectJ Compiler 1.6.6 (1.6.5 - Built: Wednesday Nov 4, 2009 at 04:40:09 GMT) - 
Eclipse Compiler 0.785_R33x, 3.3

$ java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)

$ mvn -version
Apache Maven 2.2.1 (r801777; 2009-08-06 12:16:01-0700)

_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to