Awesome, I had discovered both of these bugs last night...but hadn't tackled trying to fix them. Glad someone better equipped to do it jumped in. :)
I've confirmed it's working...thanks for the quick response! -Lon On Thu, Oct 30, 2014 at 8:32 AM, Andrus Adamchik <[email protected]> wrote: > Should be fixed on master per > https://issues.apache.org/jira/browse/CAY-1964 > > If you were successful compiling Cayenne, appreciate if you could assemble > the latest code and confirm the fix. > > Andrus > > > On Oct 30, 2014, at 9:46 AM, Andrus Adamchik <[email protected]> > wrote: > > > > I just spotted a couple of 'additionalMaps' processing issues at > > > > > https://github.com/apache/cayenne/blob/47d809497ba45e555ee9fa7460fe315d8c9412b1/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java > > > > 1. 'convertAdditionalDataMaps' method does not do extension filtering, > so there is a good chance it will include unrelated files, then try to > parse them as DataMaps downstream, then fail. > > > > 2. 'convertAdditionalDataMaps' doesn't set the absolute path when > creating a File, so it is resolved against an incorrect base directory. > > > > Both should be easy to fix. Let me see what I can do... > > > > Andrus > > > > > > > > > >> On Oct 30, 2014, at 12:11 AM, Lon Varscsak <[email protected]> > wrote: > >> > >> Below is my plugin section for reference, but when I have the > >> additionalMaps section, I get this error: > >> > >> [ERROR] Failed to execute goal > >> org.apache.cayenne.plugins:maven-cayenne-plugin:3.2M1:cgen (production) > on > >> project shbusinesslogic: Error generating classes: [v.3.2M1 Jul 07 2013 > >> 16:23:58] Error loading DataMap, last processed tag: <null>: > >> > /Users/varscsak/Development/git/smarthealth/tapestry/libraries/SHCayenneBusinessLogic/cayenne-model.xml > >> (No such file or directory) -> [Help 1] > >> > >> But the cayenne-model.xml is no where in that directory...not sure why > it's > >> trying to look there. > >> > >> <plugin> > >> > >> <groupId>org.apache.cayenne.plugins</groupId> > >> > >> <artifactId>maven-cayenne-plugin</artifactId> > >> > >> <!-- shared config part --> > >> > >> <configuration> > >> > >> <destDir>${project.build.sourceDirectory}</destDir> > >> > >> <template>${basedir}/supporting/subclass.vm</template> > >> > >> <superTemplate>${basedir}/supporting/superclass.vm</superTemplate> > >> > >> <additionalMaps>${project.build.sourceDirectory}/../resources/</ > >> additionalMaps> > >> > >> </configuration> > >> > >> <executions> > >> > >> <execution> > >> > >> <id>production</id> > >> > >> <!-- Per execution config --> > >> > >> <configuration> > >> > >> > <map>${project.build.sourceDirectory}/../resources/production.map.xml</map> > >> > >> </configuration> > >> > >> <goals> > >> > >> <goal>cgen</goal> > >> > >> </goals> > >> > >> </execution> > >> > >> <execution> > >> > >> <id>marketing</id> > >> > >> <!-- Per execution config --> > >> > >> <configuration> > >> > >> > <map>${project.build.sourceDirectory}/../resources/marketing.map.xml</map> > >> > >> </configuration> > >> > >> <goals> > >> > >> <goal>cgen</goal> > >> > >> </goals> > >> > >> </execution> > >> > >> <execution> > >> > >> <id>customer</id> > >> > >> <!-- Per execution config --> > >> > >> <configuration> > >> > >> > <map>${project.build.sourceDirectory}/../resources/customer.map.xml</map> > >> > >> </configuration> > >> > >> <goals> > >> > >> <goal>cgen</goal> > >> > >> </goals> > >> > >> </execution> > >> > >> <execution> > >> > >> <id>personalization</id> > >> > >> <!-- Per execution config --> > >> > >> <configuration> > >> > >> > <map>${project.build.sourceDirectory}/../resources/personalization.map.xml</ > >> map> > >> > >> </configuration> > >> > >> <goals> > >> > >> <goal>cgen</goal> > >> > >> </goals> > >> > >> </execution> > >> > >> </executions> > >> > >> </plugin> > >> > >> > >> On Wed, Oct 29, 2014 at 9:45 AM, Lon Varscsak <[email protected]> > >> wrote: > >> > >>> I agree on the project.xml idea...makes a lot of sense. > >>> > >>> Okay, on additionalMaps I was trying this yesterday and couldn't get > it > >>> to work. I've provided the directory to where my datamap files are > stored > >>> and I see that it fails (although I don't have any detail...not sure > how to > >>> see that in m2e). I've tried the full path, trailing slashes, no > trailing > >>> slashes, etc. > >>> > >>> I'm probably being dense...but just not sure how. :D > >>> > >>> -Lon > >>> > >>> > >>> On Tue, Oct 28, 2014 at 11:19 PM, Andrus Adamchik < > [email protected]> > >>> wrote: > >>> > >>>> Try using "additionalMaps" parameter: > >>>> > >>>> > >>>> > http://cayenne.apache.org/docs/3.1/cayenne-guide/including-cayenne-in-project.html#maven-projects > >>>> > >>>> "additionalMaps [...] A directory that contains additional DataMap XML > >>>> files that may be needed to resolve cross-DataMap relationships for > the the > >>>> main DataMap, for which class generation occurs." > >>>> > >>>> On a side note, I don't recall why we initially went with per-DataMap > >>>> instead of per-project "cgen", but now I feel like cgen should read > >>>> cayenne-project.xml and discover all this information on its own. > Until we > >>>> change this approach, "additionalMaps" should help. > >>>> > >>>> HTH, > >>>> Andrus > >>>> > >>>>> On Oct 29, 2014, at 2:59 AM, Lon Varscsak <[email protected]> > >>>> wrote: > >>>>> > >>>>> There appears to be an issue either with class generation or > something > >>>> with > >>>>> my model. > >>>>> > >>>>> Whenever I have a relationship that crosses datanodes the > TargetEntity > >>>> is > >>>>> null. So I get things like in the Java class: > >>>>> > >>>>> public static final > >>>> Property<$importUtils.formatJavaType(${rel.TargetEntity. > >>>>> ClassName})> COMPANY = new Property<$importUtils.formatJavaType(${rel > >>>>> .TargetEntity.ClassName})>("company"); > >>>>> > >>>>> If the entity is with the same datanode I don't have an issue (same > >>>> line in > >>>>> the velocity template). > >>>>> > >>>>> Any ideas? > >>>>> > >>>>> Thanks, > >>>>> > >>>>> Lon > >>>> > >>>> > >>> > > > > > >
