Hi,
I'm trying to use xdoclet from within an EJB I have been able to model my xml target in code (see below) Except for the classpath.
Can someone show me how to dynamically add files to the class path ?

Thank you.
Matthew Demerath
ParadiseBay.com

public void ejbdoclet(String baseDir, String srcDir) {
        Project project = createProject();
        project.setBasedir(baseDir);

        //<taskdef classpathref="xdoclet.classpath"
        //classname="xdoclet.modules.ejb.EjbDocletTask"
        //name="ejbdoclet"/>

        EjbDocletTask ejb = new EjbDocletTask();
        ejb.setProject(project);
        ejb.setTaskName("ejbdoclet");
EjbDocletTask.EjbSpecVersion ejbSpec = new EjbDocletTask.EjbSpecVersion();

        //<ejbdoclet ejbSpec="2.0"  destDir="${src.dir}" >
        ejbSpec.setValue(EjbDocletTask.EjbSpecVersion.EJB_2_0);
        ejb.setEjbSpec(ejbSpec);
ejb.setDestDir(new File(project.getBaseDir().getAbsolutePath () + "/" + srcDir + "/generated"));
        //ejb.setExcludedTags("@version,@author,@todo");
//ejb.setAddedTags("@xdoclet-generated at $ {TODAY},@copyright The XDoclet Team,@author XDoclet,@version $ {version}");

        //debugging?
        ejb.setVerbose(true);

        //<fileset dir="${src.dir}"  includes="**/*Bean.java" />
        FilenameSelector fns = new FilenameSelector();
        fns.setName("**/*Bean.java");
        FileSet fsFrom = new FileSet();
fsFrom.setDir(new File(project.getBaseDir().getAbsolutePath () + "/" + srcDir));
        fsFrom.addFilename(fns);
        ejb.addFileset(fsFrom);

//<deploymentdescriptor destDir="${src.dir}/${meta.dir}/$ {package_name}"
        //      mergeDir="${meta.merge.dir}" />
        EjbDotXmlSubTask dd = new EjbDotXmlSubTask();
dd.setDestDir(new File(project.getBaseDir().getAbsolutePath () + "/src/META-INF/ejb")); dd.setMergeDir(new File(project.getBaseDir().getAbsolutePath () + "/src/merge/META/ejb"));

        //<jboss Version="3.2"
        //    datasource="java:/MySqlDS"
        //    datasourceMapping="mySQL"
        //    preferredRelationMapping="foreign-key"
        //    createTable="true"
        //    removeTable="true"
        //    destDir="${src.dir}/${meta.dir}/${package_name}"
        //    mergeDir="${meta.merge.dir}" />
xdoclet.modules.jboss.ejb.JBossSubTask jboss = new xdoclet.modules.jboss.ejb.JBossSubTask(); JBossSubTask.JBossVersionTypes jbVersion = new JBossSubTask.JBossVersionTypes();
        jbVersion.setValue(JBossSubTask.JBossVersionTypes.VERSION_3_2);
        jboss.setVersion(jbVersion);
        jboss.setDatasource("java:/MySqlDS");
        jboss.setDatasourceMapping("mySQL");
        jboss.setPreferredRelationMapping("foreign-key");
        jboss.setCreateTable("true");
        jboss.setRemoveTable("true");
jboss.setDestDir(new File(project.getBaseDir ().getAbsolutePath() + "/src/META-INF/ejb")); jboss.setMergeDir(new File(project.getBaseDir ().getAbsolutePath() + "/src/merge/META/ejb"));

        ejb.addSubTask(jboss);

        //<remoteinterface>
// <packageSubstitution packages="${package_name}" substituteWith="${package_name}.${interfaces}"/> // <packageSubstitution packages="${package_name}.items" substituteWith="${package_name}.items.interfaces"/>
        //</remoteinterface>
PackageTagsHandler.PackageSubstitution ps = new PackageTagsHandler.PackageSubstitution();
        ps.setPackages("ejb");
        ps.setSubstituteWith("interfaces");

PackageTagsHandler.PackageSubstitution ps1 = new PackageTagsHandler.PackageSubstitution();
        ps1.setPackages("items");
        ps1.setSubstituteWith("items.interfaces");

        RemoteInterfaceSubTask remote = new RemoteInterfaceSubTask();
        remote.addPackageSubstitution(ps);
        remote.addPackageSubstitution(ps1);
        ejb.addSubTask(remote);

        //<homeinterface>
// <packageSubstitution packages="${package_name}" substituteWith="${package_name}.${interfaces}"/> // <packageSubstitution packages="${package_name}.items" substituteWith="${package_name}.items.interfaces"/>
        //</homeinterface>
        HomeInterfaceSubTask home = new HomeInterfaceSubTask();
        home.addPackageSubstitution(ps);
        home.addPackageSubstitution(ps1);
        ejb.addSubTask(home);

        //<localhomeinterface>
// <packageSubstitution packages="${package_name}" substituteWith="${package_name}.${interfaces}"/> // <packageSubstitution packages="${package_name}.items" substituteWith="${package_name}.items.interfaces"/>
        //</localhomeinterface>
LocalHomeInterfaceSubTask localhome = new LocalHomeInterfaceSubTask();
        localhome.addPackageSubstitution(ps);
        localhome.addPackageSubstitution(ps1);
        ejb.addSubTask(localhome);

        //<localinterface>
// <packageSubstitution packages="${package_name}" substituteWith="${package_name}.${interfaces}"/> // <packageSubstitution packages="${package_name}.items" substituteWith="${package_name}.items.interfaces"/>
        //</localinterface>
        LocalInterfaceSubTask local = new LocalInterfaceSubTask();
        local.addPackageSubstitution(ps);
        local.addPackageSubstitution(ps1);
        ejb.addSubTask(local);

//<valueobject pattern="{0}DTO" templateFile="${merge.dir}/ valueobject.xdt" > // <PackageSubstitution packages="${package_name}" substituteWith="${package_name}.dto" /> // <packageSubstitution packages="${package_name}.items" substituteWith="${package_name}.items.dto"/>
        //</valueobject>
PackageTagsHandler.PackageSubstitution ps_dto = new PackageTagsHandler.PackageSubstitution();
        ps.setPackages("ejb");
        ps.setSubstituteWith("dto");


PackageTagsHandler.PackageSubstitution ps_dto1 = new PackageTagsHandler.PackageSubstitution();
        ps1.setPackages("items");
        ps1.setSubstituteWith("items.dto");

        ValueObjectSubTask value = new ValueObjectSubTask();
        value.setPattern("{0}DTO");
        try {
value.setTemplateFile(new File(project.getBaseDir ().getAbsolutePath() + "/src/merge/valueobject.xdt"));
        } catch (XDocletException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        value.addPackageSubstitution(ps_dto);
        value.addPackageSubstitution(ps_dto1);
        ejb.addSubTask(value);

//<utilobject cacheHomes="True" packageSubstitutionInheritanceSupported="false" templateFile="$ {merge.dir}/utils.xdt"> // <PackageSubstitution packages="${package_name}" substituteWith="${package_name}.${util}" /> // <packageSubstitution packages="${package_name}.items" substituteWith="${package_name}.items.util"/>
        //</utilobject>
PackageTagsHandler.PackageSubstitution ps_util = new PackageTagsHandler.PackageSubstitution();
        ps.setPackages("ejb");
        ps.setSubstituteWith("util");

PackageTagsHandler.PackageSubstitution ps_util1 = new PackageTagsHandler.PackageSubstitution();
        ps1.setPackages("items");
        ps1.setSubstituteWith("items.util");

ejb.addPackageSubstitution (ps_dto1);xdoclet.modules.ejb.lookup.LookupObjectSubTask util = new xdoclet.modules.ejb.lookup.LookupObjectSubTask();
        util.setCacheHomes(true);
        try {
util.setTemplateFile(new File(project.getBaseDir ().getAbsolutePath() + "/src/merge/utils.xdt"));
        } catch (XDocletException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        util.addPackageSubstitution(ps_util);
        util.addPackageSubstitution(ps_util1);
        ejb.addSubTask(util);

        //Kick it off.
        ejb.perform();

}



-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
xdoclet-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user

Reply via email to