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