Community
Participate
Working Groups
Created attachment 222686 [details] failing weaving mvn clean package to reproduce (Dummy.java is a "quick 'n dirty hack" for forcing org.codehaus.mojo:aspectj-mavan-plugin:1.4 to launch ajc Context: scala class annotated with javax.persistence.* and org.springframework.data.neo4j.annotations.* What's going on: 1. Person.scala gets compiled with scalac 2.9.2, .class file is sent to unwoven-classes 2. javap on target/unwoven-classes/Person.class shows: Compiled from "Person.scala" public class Person extends java.lang.Object implements scala.ScalaObject{ public java.lang.Long id(); public void id_$eq(java.lang.Long); public void setId(java.lang.Long); public java.lang.Integer version(); public void version_$eq(java.lang.Integer); public void setVersion(java.lang.Integer); public java.lang.String lastName(); public void lastName_$eq(java.lang.String); public void setLastName(java.lang.String); public java.lang.String username(); public void username_$eq(java.lang.String); public void setUsername(java.lang.String); public java.lang.String getUsername(); public java.lang.String getLastName(); public java.lang.Integer getVersion(); public java.lang.Long getId(); public Person(); } 3. aspectj 1.7.1 weaver tries to weave aspects contained in org.springframework.data:spring-data-neo4j-aspects:2.1.0-RELEASE into the unwoven classes failing to do so with: [ERROR] error at /Person.scala::0 The type Person must implement the inherited abstract method org.springframework.data.neo4j.aspects.core.GraphBacked.setPersistentState(Ljava/lang/Object;) [ERROR] see also: org/springframework/data/neo4j/aspects/core/GraphBacked.java:35::1348 [ERROR] see also: org/springframework/data/neo4j/aspects/support/node/Neo4jNodeBacking.aj:66::0 [ERROR] error at /Person.scala::0 The type Person must implement the inherited abstract method org.springframework.data.neo4j.mapping.ManagedEntity.setPersistentState(Ljava/lang/Object;) [ERROR] see also: org/springframework/data/neo4j/mapping/ManagedEntity.java::0 [ERROR] see also: org/springframework/data/neo4j/aspects/support/node/Neo4jNodeBacking.aj:66::0 4. javap on target/classes/Person.class shows it has done something (some static crosscutting at least) but Person does not look like it's implementing NodeBacked... (there's a "declare parents : (@NodeEntity *) implements NodeBacked;" in org.springframework.data.neo4j.aspects.support.node.Neo4jNodeBacking.aj: Compiled from "Person.scala" public class Person extends java.lang.Object implements scala.ScalaObject{ public transient org.springframework.data.neo4j.core.EntityState entityState; public java.lang.Long id(); public void id_$eq(java.lang.Long); public void setId(java.lang.Long); public java.lang.Integer version(); public void version_$eq(java.lang.Integer); public void setVersion(java.lang.Integer); public java.lang.String lastName(); public void lastName_$eq(java.lang.String); public void setLastName(java.lang.String); public java.lang.String username(); public void username_$eq(java.lang.String); public void setUsername(java.lang.String); public java.lang.String getUsername(); public java.lang.String getLastName(); public java.lang.Integer getVersion(); public java.lang.Long getId(); public Person(); public org.springframework.data.neo4j.core.EntityState ajc$interFieldGet$org_springframework_data_neo4j_aspects_support_node_Neo4jNodeBacking$org_springframework_data_neo4j_aspects_core_NodeBacked$entityState(); public void ajc$interFieldSet$org_springframework_data_neo4j_aspects_support_node_Neo4jNodeBacking$org_springframework_data_neo4j_aspects_core_NodeBacked$entityState(org.springframework.data.neo4j.core.EntityState); static {}; public boolean equals(java.lang.Object); public java.lang.Iterable findAllByQuery(java.lang.String, java.lang.Class, java.util.Map); public java.lang.Iterable findAllByQuery(java.lang.String, java.util.Map); public java.lang.Iterable findAllByTraversal(java.lang.Class, org.neo4j.graphdb.traversal.TraversalDescription); public java.lang.Iterable findAllPathsByTraversal(org.neo4j.graphdb.traversal.TraversalDescription); public java.lang.Object findByQuery(java.lang.String, java.lang.Class, java.util.Map); public org.springframework.data.neo4j.core.EntityState getEntityState(); public java.lang.Long getNodeId(); public org.neo4j.graphdb.Node getPersistentState(); public org.springframework.data.neo4j.aspects.core.RelationshipBacked getRelationshipTo(org.springframework.data.neo4j.aspects.core.NodeBacked, java.lang.Class, java.lang.String); public org.neo4j.graphdb.Relationship getRelationshipTo(org.springframework.data.neo4j.aspects.core.NodeBacked, java.lang.String); public org.springframework.data.neo4j.support.Neo4jTemplate getTemplate(); public boolean hasPersistentState(); public int hashCode(); public org.springframework.data.neo4j.aspects.core.NodeBacked persist(); public org.springframework.data.neo4j.aspects.core.NodeBacked projectTo(java.lang.Class); public org.springframework.data.neo4j.aspects.core.RelationshipBacked relateTo(org.springframework.data.neo4j.aspects.core.NodeBacked, java.lang.Class, java.lang.String); public org.springframework.data.neo4j.aspects.core.RelationshipBacked relateTo(org.springframework.data.neo4j.aspects.core.NodeBacked, java.lang.Class, java.lang.String, boolean); public org.neo4j.graphdb.Relationship relateTo(org.springframework.data.neo4j.aspects.core.NodeBacked, java.lang.String); public org.neo4j.graphdb.Relationship relateTo(org.springframework.data.neo4j.aspects.core.NodeBacked, java.lang.String, boolean); public void remove(); public void removeRelationshipTo(org.springframework.data.neo4j.aspects.core.NodeBacked, java.lang.String); public void setPersistentState(org.neo4j.graphdb.Node); } 5. Tried also running ajc manually, same issue: ajc -classpath ~/.m2/repository/org/aspectj/aspectjrt/1.7.1/aspectjrt-1.7.1.jar:~/.m2/repository/org/springframework/data/spring-data-neo4j-aspects/2.1.0.RELEASE/spring-data-neo4j-aspects-2.1.0.RELEASE.jar:~/.m2/repository/org/springframework/data/spring-data-neo4j/2.1.0.RELEASE/spring-data-neo4j-2.1.0.RELEASE.jar:~/.m2/repository/org/hibernate/javax/persistence/hibernate-jpa-2.0-api/1.0.1.Final/hibernate-jpa-2.0-api-1.0.1.Final.jar:~/.m2/repository/org/scala-lang/scala-library/2.9.2/scala-library-2.9.2.jar -aspectpath ~/.m2/repository/org/springframework/data/spring-data-neo4j-aspects/2.1.0.RELEASE/spring-data-neo4j-aspects-2.1.0.RELEASE.jar -inpath ./target/unwoven-classes -d ./target/classes Apologies for the pom.xml cluttered, I've tried to extract the minimum stuff needed to reproduce the problem but I'm sure there's more that can go away. I just hope it's not going to distract. Cheers \j