[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[wtp-dev] Re: WTP modules, facets and extensability
|
Gunnar Wagenknecht wrote:
> Naci Dai wrote:
>> *<wb-resource source-path="/JUPWebContent" deploy-path="/"/>*
>
> Can anybody give me a good reference which API I should use to add such
> an entry to the ".component" file of a project?
I found some useful snippets in WebFacetInstallDelegate and
WebLibDependencyPropertiesPage. I could manage to work with public API
except for one tiny little constant.
VirtualArchiveComponent.VARARCHIVETYPE
Is there a constant in an public API package available? Should I create
the constant myself? If yes then the value must be documented somewhere.
I couldn't find the doc.
Anyway, here is the code snippet just for the archive and the search
engine. ;)
--snip--
final IProject project = ...;
final IPath deployPath = ...;
final IPath outputPath = ...;
WorkspaceJob updateFlexProjectJob =
new WorkspaceJob("Configuring Web Project...") {
@Override
public IStatus runInWorkspace(IProgressMonitor monitor)
throws CoreException {
monitor = ProgressUtil.monitor(monitor);
try {
monitor.beginTask(
NLS.bind("Configuring Web Project {0}", project.getName()),
10);
// get the flex project component
final IVirtualComponent flexProject =
ComponentCore.createComponent(project);
if (!flexProject.exists())
flexProject.create(IResource.FORCE, null);
// link the deployment folder to the build output folder
final IVirtualFolder deployFolder =
flexProject.getRootFolder().getFolder(deployPath);
if(deployFolder.exists())
deployFolder.delete(
IResource.FORCE,
ProgressUtil.subProgressMonitor(monitor, 1));
deployFolder.createLink(
outputPath,
IResource.FORCE,
ProgressUtil.subProgressMonitor(monitor, 1));
// get current references
List<IVirtualReference> references =
new ArrayList<IVirtualReference>();
IVirtualReference[] currentReferences =
flexProject.getReferences();
for (IVirtualReference reference : currentReferences) {
references.add(reference);
}
// gwt-user.jar
String type = VirtualArchiveComponent.VARARCHIVETYPE
+ IPath.SEPARATOR;
IVirtualComponent archive =
ComponentCore.createArchiveComponent(
project,
type + Util.getGwtUserLibPath().toString());
IVirtualReference gwtUserJarReference =
ComponentCore.createReference(
flexProject,
archive,
new Path("/WEB-INF/lib"));
if(!references.contains(gwtUserJarReference))
references.add(gwtUserJarReference);
// apply references
flexProject.setReferences(
references.toArray(new IVirtualReference[references.size()]));
} finally {
monitor.done();
}
return Status.OK_STATUS;
}
flexProjectJob.setRule(ResourcesPlugin.getWorkspace().getRuleFactory().createRule(project));
flexProjectJob.setUser(true);
flexProjectJob.schedule();
--/snip--
Cu, Gunnar
--
Gunnar Wagenknecht
gunnar@xxxxxxxxxxxxxxx
http://wagenknecht.org/