Hi all,

Velocity code generation works fine with a VM file. I thought I'd use also the 
qtags special annotations to implement easier restrictions instead of checking 
everything in the VM file. 

However I can't seem to understand how to activate them. I created the tags as 
needed, put restrictions in their annotations, started the Ant build with some 
broken files, the process flows happily ignoring all the qtags restrictions 
I've got there. Shouldn't I get some kind of error? Do you see anything unusual 
below - or forgotten?

Note: I couldn't really figure out what the "namespace" attributes need to 
contain, but I picked something hopefully appropriate.

Thanks a lot,
M

Here more info:

---------The tag class:
package org.xdoclet.plugin.myplugin.qtags;
import com.thoughtworks.qdox.model.AbstractJavaEntity;
import org.xdoclet.XDocletTag;
/**
 * @qtags.location class
 * @qtags.once
 */
public class MyClassTag extends XDocletTag {

-------- the VM file:
#set( $class = $metadata )
public interface I${class.getName()} {
  #set( $parameterTagsClass = $class.getTagsByName("mytag.classlvl") )
  #foreach( $parameterTagClass in $parameterTagsClass )
        #if ($parameterTagClass.getNamedParameter("table"))
          public static final String TABLE = 
"$parameterTagClass.getNamedParameter("table")";
        #end
  #end

---------- the build.xml
                <taskdef name="xdoclet2"
                         classname="org.xdoclet.ant.XDocletTask"
                         classpathref="lib2.class.path" />
                <xdoclet2>
                        <fileset dir="${src.java.dir}">
                                <include name="**/test/*Base.java" />
                        </fileset>

            <component classname="org.generama.VelocityTemplateEngine"/>
            <component classname="org.generama.JellyTemplateEngine"/>
            <component
                classname="org.xdoclet.plugin.qtags.impl.QTagImplPlugin"
                destdir="${build2.java.dir}"
                />
            <component
                classname="org.xdoclet.plugin.qtags.impl.QTagLibraryPlugin"
                destdir="${build2.java.dir}"
                packagereplace="org.xdoclet.plugin.myplugin.qtags"
                />
            <component
                classname="org.xdoclet.plugin.qtags.xdoc.QTagXDocPlugin"
                destdir="${build2.java.dir}/generated-xdocs"
                namespace="myplugin"
                />
            <component
                
classname="org.xdoclet.plugin.qtags.confluence.QTagConfluencePlugin"
                destdir="${build2.java.dir}/confluence"
                namespace="myplugin"
                />
                        <component 
classname="org.xdoclet.plugin.myplugin.MyPlugin"
                                   destdir="${build2.java.dir}"
                                   fileregex="(.*)(.java)"
                                   filereplace="I$1.java"
                                   packageregex="test"
                                   packagereplace="test.generated" />

--------tags registration:
package org.xdoclet.plugin.myplugin;
import org.generama.QDoxCapableMetadataProvider;
import org.generama.VelocityTemplateEngine;
import org.generama.WriterMapper;
import org.generama.defaults.JavaGeneratingPlugin;
import org.xdoclet.plugin.sqlinterface.qtags.MyClassTag;

public class MyPlugin extends JavaGeneratingPlugin {

        public MyPlugin(VelocityTemplateEngine templateEngine,
                        QDoxCapableMetadataProvider metadataProvider,
                        WriterMapper writerMapper) {
                super(templateEngine, metadataProvider, writerMapper);
                setMultioutput(true);

                
metadataProvider.getDocletTagFactory().registerTag(MyClassTag.NAME,
                                MyClassTag.class);

--------- and the broken Java source
package com.test;
/**
 * @mytag.classlvl table="firstone"
 * @mytag.classlvl table="second"
 **/


      

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
xdoclet-user mailing list
xdoclet-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xdoclet-user

Reply via email to