Justin Case
Tue, 16 Jun 2009 01:51:24 -0700
Sure, I'm moving it there. However, given there's no mention of that list whatsoever on the project's page, and googling its name gives a whooping 12 matches, sorry but I really missed it :)
Thanks a lot,
M
--- On Tue, 6/16/09, Konstantin Priblouda <kpriblo...@yahoo.com> wrote:
> From: Konstantin Priblouda <kpriblo...@yahoo.com>
> Subject: Re: [Xdoclet-user] how to create own tags using qtags
> To: "End-user support for the XDoclet code generator"
> <xdoclet-user@lists.sourceforge.net>
> Date: Tuesday, June 16, 2009, 1:44 AM
>
> This discussion belongs on xdoclet-plugin-interest mailing
> list!!!!!
>
> --- On Mon, 6/15/09, Justin Case <send_lotsa_spam_h...@yahoo.com>
> wrote:
>
> > From: Justin Case <send_lotsa_spam_h...@yahoo.com>
> > Subject: [Xdoclet-user] how to create own tags using
> qtags
> > To: "End-user support for the XDoclet code generator"
> <xdoclet-user@lists.sourceforge.net>
> > Date: Monday, June 15, 2009, 6:01 PM
> >
> > 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?
>
> For the qtags to work properly you shall first generate
> their implementations (there is xdoclet plugin for this
> puprose). Then you can registzer this tag library, and
> magic can begin.
>
> You can see how qtags plugin is invoked in xd2 plugin
> sources,
> and tag library registration (for example) in hibernate
> plugin.
>
>
>
> > Note: I couldn't really figure out what the
> "namespace"
> > attributes need to contain, but I picked something
> hopefully
> > appropriate.
>
> namespace is first part of tag name
>
> > 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
>
------------------------------------------------------------------------------
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