OK, sometimes I should just wait until sending the email. ;-)

Adding this to dependencies {} makes it work w/ "gradle build":

aspects 'org.springframework.data:spring-data-neo4j:1.0.0.RELEASE'

However, the generated project files for Eclipse and IDEA still don't
seem to be happy.

-Matt

On Fri, Apr 22, 2011 at 2:53 PM, Matt Stine <[email protected]> wrote:
> Hi all-
>
> I am trying to get a spike going w/ Spring Data Graph and Neo4J. SDG
> uses AspectJ under the covers to enhance your persistent POJO's.
> Pretty much all of the existing samples for SDG are Maven-centric, and
> being the maverick that I am I am trying to use the Gradle AspectJ
> plugin.
>
> Here's the build.gradle:
> =================
>
> apply plugin: 'java'
> apply plugin: 'idea'
> apply from: 
> 'https://github.com/breskeby/gradleplugins/raw/0.9-upgrade/aspectjPlugin/aspectJ.gradle'
>
> repositories {
>  mavenCentral()
>  mavenRepo urls: 'http://maven.springframework.org/milestone'
>  mavenRepo urls: 'http://maven.springframework.org/release'
>  mavenRepo urls: 'http://maven.springframework.org/snapshot'
>  mavenRepo urls: 'http://m2.neo4j.org'
>  mavenRepo urls: 'http://repository.jboss.com/maven2/'
> }
>
> dependencies {
>  ajc 'org.aspectj:aspectjtools:1.6.11.RELEASE'
>  compile 'org.springframework.data:spring-data-neo4j:1.0.0.RELEASE',
>          'org.aspectj:aspectjrt:1.6.11.RELEASE'
> }
>
> ideaProject {
>  javaVersion = '1.6'
> }
>
> Here are the classes I'm trying to compile:
> ===============================
>
> package org.stjude.sprdatagraphspike;
>
> import org.springframework.data.graph.annotation.NodeEntity;
> import org.springframework.data.graph.annotation.RelatedTo;
> import org.springframework.data.graph.core.Direction;
> import org.springframework.data.graph.neo4j.annotation.Indexed;
>
> import java.util.Set;
>
> @NodeEntity
> public class Person {
>
>    @Indexed
>    private String name;
>
>    @RelatedTo(direction = Direction.BOTH, elementClass = Person.class)
>    private Set<Person> friends;
>
>    public Person() {}
>    public Person(String name) {
>        this.name = name;
>    }
>
>    private void knows(Person friend) { friends.add(friend); }
> }
>
> package org.stjude.sprdatagraphspike;
>
> import org.springframework.context.ApplicationContext;
> import org.springframework.context.support.ClassPathXmlApplicationContext;
>
> public class SpikeApp {
>
>    public static void main(String[] args) {
>        ApplicationContext context = new
> ClassPathXmlApplicationContext("application-context.xml");
>
>        Person jon = new Person("Jon").persist();
>    }
> }
>
> **** Note that the elementClass property of @RelatedTo will only
> accept the type Class<? extends NodeBacked>. The application of
> @NodeEntity to this class is supposed to add the NodeBacked interface
> via AspectJ. It also adds the missing "persist" method that I'm
> referencing in SpikeApp.main.
>
> Here's the output from gradle build:
> =========================
>
> [~/Projects/spr-data-graph-spike] ➔ gradle build
> :processResources
> :compileJava
> [ant:iajc] 
> /Users/mstine/Projects/spr-data-graph-spike/src/main/java/org/stjude/sprdatagraphspike/Person.java:16
> [error] Type mismatch: cannot convert from Class<Person> to Class<?
> extends NodeBacked>
> [ant:iajc] @RelatedTo(direction = Direction.BOTH, elementClass = Person.class)
> [ant:iajc]                                                       ^^^^^^^
> [ant:iajc] 
> /Users/mstine/Projects/spr-data-graph-spike/src/main/java/org/stjude/sprdatagraphspike/SpikeApp.java:18
> [error] The method persist() is undefined for the type Person
> [ant:iajc] Person jon = new Person("Jon").persist();
> [ant:iajc]
> [ant:iajc]
> [ant:iajc] 2 errors
>
> FAILURE: Build failed with an exception.
>
> **** As you can see, all of the things that I said are "supposed to
> happen" aren't. Now I am able to get this to compile by using the
> AspectJ compiler directly inside of IntelliJ. Interestingly enough,
> when I generate Eclipse project files and pull this into SpringSource
> Tool Suite, it doesn't seem to get the AspectJ stuff right and balks
> at the same things the ajc compiler is balking at in Gradle.
>
> At any rate, has anyone had success with this or something similar?
> I've done very little w/ AspectJ directly, so I'm not sure where to
> go.
>
> Thanks!
>
> --
> Matt Stine
> Deep South Software: Training, Consulting, Coaching
> http://www.deepsouthsoftware.com
> [email protected]
>



-- 
Matt Stine
Deep South Software: Training, Consulting, Coaching
http://www.deepsouthsoftware.com
[email protected]

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to