I now have my resources defined nicely in index.xml. I also created a separate file, that I include to define my custom ant tasks. My current build file for xsd2jibx looks like so:

<project name="xsd2jibx" default="build" basedir="./"
   xmlns:x="antlib:org.apache.avalon.tools">

<x:home index="."/>
<import file="${magic.templates}/standard.xml"/> <import file="jibx-ant-task.xml"/>


 <target name="jibx" depends="build"
     description="compile the jibx bindings into the class files">
   <jibx>
     <classpath>
       <path refid="jibx.classpath"/>
       <pathelement location="target/classes"/>
     </classpath>
     <bindingfileset dir="target/classes/org/jibx/xsd2jibx">
       <include name="xsd.jibx.xml"/>
       <include name="jibx.jibx.xml"/>
     </bindingfileset>
   </jibx>
 </target>
</project>

My included "jibx-ant-task.xml" is as follows:

<project xmlns:x="antlib:org.apache.avalon.tools">
 <x:property name="jibx-bind.path" key="jibx-bind" feature="path"/>
 <x:property name="xpp3.path" key="xpp3" feature="path"/>
 <x:property name="jibx-run.path" key="jibx-run" feature="path"/>
 <x:property name="bcel.path" key="bcel" feature="path"/>

 <path id="jibx.classpath">
   <fileset dir="${magic.cache}" includes="
      ${jibx-bind.path},
      ${jibx-run.path},
      ${xpp3.path},
      ${bcel.path}"/>
 </path>

 <taskdef name="jibx" classname="org.jibx.binding.ant.CompileTask">
   <classpath>
     <path refid="jibx.classpath"/>
   </classpath>
 </taskdef>
</project>


Is there a magic variable that I could use instead of "target/classes"? Should the xml files I use go in "src/main" (what about src/etc)? I tried create a JiBX magic plugin, but I got confused by the avalon-meta-tools example. Must a plugin be defined in the index.xml and a .plugin file? Which of those who should indicate what dependencies (jar's) are needed? Must a task have a listener (I assume no)? Where can you change the list of repositories to look for the jars?


Keep up the good work! I hope to use Magic as the build tool for xsd2jibx in the near future.

Cameron



Just add a <resource> definition to your index for the hbm2ddl jar, then you can use a property to access the repository location.

    <x:property name="filepath" key="hbm2ddl" feature="path"/>

The property "filepath" now contains the location of the hbm2ddl jar file and you can use this to construct a <classpath> - for example:

      <classpath>
        <pathelement path="${magic.cache}/${filepath}"/>
      </classpath>

You can also use <x:path> but I need to get the docs in place on that first of all. Basically you can use <x:path> to get a dependency chain as a proper ant path object that you can reference using refid. The following example get the build time path for the current project:

    <x:path id="build.path" mode="BUILD"/>

Stephen.



--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to