Re: Antlib enhancement

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Sun Apr 24 2005 - 20:39:55 EDT

  • Next message: jira-norepl..bjectstyle.org: "[OS-JIRA] Created: (CAY-310) Calling <DataObject>.addTo<DataObject>List() with a null parameter crashes later in commitChanges()"

    Adding Antlib support is a great idea. I am all for including the
    descriptor in 1.2 distro and updating the docs.

    Andrus

    On Apr 22, 2005, at 6:27 PM, Mike Kienenberger wrote:

    > Thanks, Erik. I think the cdbgen task was just recently contributed
    > by a
    > user. I am just starting to use it myself.
    >
    > The best way to make the antlib enhancement happen is to open a Jira
    > issue
    > and optionally submit a patch.
    >
    > Otherwise, all of these little improvements tend to get lost.
    >
    > Dev-related mail like this generally gets greater exposure (or at
    > least is
    > easier to browse for in the archives) if you send it to
    > cayenne-deve..bjectstyle.org.
    >
    > -Mike
    >
    >
    > Erik Hatcher <eri..hatchersolutions.com> wrote:
    >> Big thanks to the Cayenne team for building a very nice tool. I have
    >> been using 1.2M3 and was wanting a way to create my database from Ant
    >> directly from the model rather than from exporting a .sql file. I dug
    >> around a little and found the <cdbgen> task that has been added - very
    >> nice and exactly what I was looking for. Works great.
    >>
    >> One suggestion for making life easier in Ant with Cayenne is to take
    >> advantage of the Antlib facility:
    >>
    >> http://ant.apache.org/manual/CoreTypes/antlib.html
    >>
    >> To show how this works, I integrated it into my builds. First I
    >> created a cayenne-antlib.xml file like this:
    >>
    >> <antlib>
    >> <taskdef name="cgen"
    >> classname="org.objectstyle.cayenne.tools.CayenneGenerator"/>
    >> <taskdef name="cdbgen"
    >> classname="org.objectstyle.cayenne.tools.DbGeneratorTask"/> </antlib>
    >>
    >> I'm not using <cdeploy> yet, so I didn't add it.
    >>
    >> To pull in the Cayenne tasks into Ant in one shot, I do this:
    >>
    >> <project name="collex" default="default" xmlns:cayenne="cayenne">
    >>
    >> <typedef file="cayenne-antlib.xml" uri="cayenne">
    >> <classpath>
    >> <fileset refid="cayenne.jars"/>
    >> </classpath>
    >> </typedef>
    >>
    >> ...
    >>
    >> </project>
    >>
    >> I now use the tasks using <cayenne:cdbgen> and <cayenne:cgen>.
    >>
    >> Cayenne itself could embed an antlib.xml file like the above (with the
    >> cdeploy added) inside the Cayenne JAR file, and then it could be
    >> imported magically from the classpath using <typedef> as above, except
    >> resource="org/objectstyle/cayenne/antlib.xml" instead of file="..."
    >> (with antlib.xml living in the package org.objectstyle.cayenne). With
    >> Antlib, the tasks could even be defined just on the Ant <project>
    >> element using xmlns:cayenne="antlib:org.objectstyle.cayenne", but this
    >> would require all the dependent JAR's be on the Ant classpath and not
    >> quite friendly for Cayenne. But, Antlib in general is a great way to
    >> work with Ant these days.. it'll hide your fully qualified class names
    >> into a descriptor you control and will allow you to define new tasks
    >> without requiring more copy/paste into build files to taskdef.
    >>
    >> I would like to see this in the final binary release of 1.2 if
    >> possible. It's simple - embed a single XML file like the above in the
    >> Cayenne JAR files, that's all.
    >>
    >> Erik
    >>
    >



    This archive was generated by hypermail 2.0.0 : Sun Apr 24 2005 - 20:39:52 EDT