[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Can't compile basic mixin example

looks like a possible bug, have you tried avoiding the maven stuff and
just using ajc on the command line to see if the compiler behaves?
That will tell us if it is maven configuration that is at fault or
AspectJ.

Andy

On 14 November 2011 20:36, Abhijit Inamdar <Ainamdar@xxxxxxxxxxxxxx> wrote:
> 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
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>