diff options
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.director.app/src_ant/org/eclipse/equinox/p2/director/app/ant/DirectorTask.java')
-rw-r--r-- | bundles/org.eclipse.equinox.p2.director.app/src_ant/org/eclipse/equinox/p2/director/app/ant/DirectorTask.java | 332 |
1 files changed, 0 insertions, 332 deletions
diff --git a/bundles/org.eclipse.equinox.p2.director.app/src_ant/org/eclipse/equinox/p2/director/app/ant/DirectorTask.java b/bundles/org.eclipse.equinox.p2.director.app/src_ant/org/eclipse/equinox/p2/director/app/ant/DirectorTask.java deleted file mode 100644 index a753b225f..000000000 --- a/bundles/org.eclipse.equinox.p2.director.app/src_ant/org/eclipse/equinox/p2/director/app/ant/DirectorTask.java +++ /dev/null @@ -1,332 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.equinox.p2.director.app.ant; - -import java.io.*; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.*; -import org.apache.tools.ant.*; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.URIUtil; -import org.eclipse.equinox.app.IApplication; -import org.eclipse.equinox.internal.p2.director.app.*; -import org.eclipse.equinox.p2.metadata.VersionedId; -import org.eclipse.osgi.util.NLS; - -/** - * An Ant task to call the p2 Director application. - * - * @since 1.0 - */ -public class DirectorTask extends Task implements ILog { - private static final String ANT_PREFIX = "${"; //$NON-NLS-1$ - private static final String ENTRY = "!ENTRY "; //$NON-NLS-1$ - private static final String SUBENTRY = "!SUBENTRY "; //$NON-NLS-1$ - private static final String logEntry = "{0} {1} {2}\n"; //$NON-NLS-1$ - private static final String MESSAGE = "!MESSAGE "; //$NON-NLS-1$ - - private boolean roaming; - private boolean list; - private String profile, flavor, os, ws, nl, arch, uninstallIU; - private String extraArguments; - private File destination, bundlePool, agentLocation; - private URI metadataRepository, artifactRepository; - private List<IUDescription> ius = new ArrayList<IUDescription>(); - private String outputProperty; - private StringBuffer outputBuffer = null; - private File logFile = null; - - public static class IUDescription { - private String id = null; - private String version = null; - - public VersionedId getVersionedId() { - return new VersionedId(id, version); - } - - public void setId(String id) { - this.id = id; - } - - public void setVersion(String version) { - if (version.length() > 0 && !version.startsWith(ANT_PREFIX)) - this.version = version; - } - } - - /* - * (non-Javadoc) - * @see org.apache.tools.ant.Task#execute() - */ - public void execute() throws BuildException { - Object result = null; - try { - if (outputProperty != null) - outputBuffer = new StringBuffer(); - - // collect the arguments and call the application - DirectorApplication application = new DirectorApplication(); - application.setLog(this); - result = application.run(getArguments()); - } catch (Exception e) { - getProject().log(Messages.problem_CallingDirector, e, Project.MSG_ERR); - throw new BuildException(Messages.problem_CallingDirector, e); - } finally { - log(outputBuffer); - } - if (result != null && !result.equals(IApplication.EXIT_OK)) { - getProject().log(Messages.problem_CallingDirector, Project.MSG_ERR); - throw new BuildException(Messages.problem_CallingDirector); - } - } - - public void addConfiguredIu(IUDescription iu) { - ius.add(iu); - } - - private String[] getArguments() { - List<String> result = new ArrayList<String>(); - if (roaming) - result.add("-roaming"); //$NON-NLS-1$ - if (profile != null) { - result.add("-profile"); //$NON-NLS-1$ - result.add(profile); - } - if (extraArguments != null) { - StringTokenizer tokenizer = new StringTokenizer(extraArguments); - while (tokenizer.hasMoreTokens()) { - result.add(tokenizer.nextToken()); - } - } - if (destination != null) { - result.add("-destination"); //$NON-NLS-1$ - result.add(destination.getAbsolutePath()); - } - if (bundlePool != null) { - result.add("-bundlePool"); //$NON-NLS-1$ - result.add(bundlePool.getAbsolutePath()); - } - if (agentLocation != null) { - result.add("-shared"); //$NON-NLS-1$ - result.add(agentLocation.getAbsolutePath()); - } - if (metadataRepository != null) { - result.add("-metadataRepository"); //$NON-NLS-1$ - result.add(URIUtil.toUnencodedString(metadataRepository)); - } - if (artifactRepository != null) { - result.add("-artifactRepository"); //$NON-NLS-1$ - result.add(URIUtil.toUnencodedString(artifactRepository)); - } - if (flavor != null) { - result.add("-flavor"); //$NON-NLS-1$ - result.add(flavor); - } - if (ius.size() > 0) { - result.add("-installIUs"); //$NON-NLS-1$ - StringBuffer arg = new StringBuffer(); - for (Iterator<IUDescription> iterator = ius.iterator(); iterator.hasNext();) { - IUDescription object = iterator.next(); - arg.append(object.getVersionedId().toString()); - if (iterator.hasNext()) - arg.append(','); - } - result.add(arg.toString()); - } - if (os != null) { - result.add("-p2.os"); //$NON-NLS-1$ - result.add(os); - } - if (ws != null) { - result.add("-p2.ws"); //$NON-NLS-1$ - result.add(ws); - } - if (arch != null) { - result.add("-p2.arch"); //$NON-NLS-1$ - result.add(arch); - } - if (nl != null) { - result.add("-p2.nl"); //$NON-NLS-1$ - result.add(nl); - } - if (list) { - result.add("-list"); //$NON-NLS-1$ - } - - if (uninstallIU != null) { - result.add("-uninstallIU"); //$NON-NLS-1$ - result.add(uninstallIU); - } - return result.toArray(new String[result.size()]); - } - - public void setArch(String value) { - arch = value; - } - - public void setArtifactRepository(String value) { - try { - artifactRepository = URIUtil.fromString(value); - } catch (URISyntaxException e) { - log(NLS.bind(Messages.problem_repoMustBeURI, value), e, Project.MSG_ERR); - } - } - - public void setBundlePool(String value) { - bundlePool = new File(value); - } - - public void setDestination(String value) { - destination = new File(value); - } - - public void setFlavor(String value) { - if (value != null && value.length() > 0 && !value.startsWith(ANT_PREFIX)) - flavor = value; - } - - public void setList(String value) { - if (value != null && value.length() > 0 && !value.startsWith(ANT_PREFIX)) - list = Boolean.valueOf(value).booleanValue(); - } - - public void setMetadataRepository(String value) { - try { - metadataRepository = URIUtil.fromString(value); - } catch (URISyntaxException e) { - log(NLS.bind(Messages.problem_repoMustBeURI, value), e, Project.MSG_ERR); - } - } - - public void setNl(String value) { - if (value != null && value.length() > 0 && !value.startsWith(ANT_PREFIX)) - nl = value; - } - - public void setOs(String value) { - if (value != null && value.length() > 0 && !value.startsWith(ANT_PREFIX)) - os = value; - } - - public void setProfile(String value) { - if (value != null && value.length() > 0 && !value.startsWith(ANT_PREFIX)) - profile = value; - } - - public void setExtraArguments(String value) { - if (value != null && value.length() > 0 && !value.startsWith(ANT_PREFIX)) { - extraArguments = value; - } - - } - - public void setRoaming(String value) { - if (value != null && value.length() > 0 && !value.startsWith(ANT_PREFIX)) - roaming = Boolean.valueOf(value).booleanValue(); - } - - public void setUninstallIU(String value) { - if (value != null && value.length() > 0 && !value.startsWith(ANT_PREFIX)) - uninstallIU = value; - } - - public void setWs(String value) { - if (value != null && value.length() > 0 && !value.startsWith(ANT_PREFIX)) - ws = value; - } - - public void setAgentLocation(String value) { - if (value != null && value.length() > 0 && !value.startsWith(ANT_PREFIX)) - agentLocation = new File(value); - } - - public void log(String msg) { - if (outputBuffer != null) { - outputBuffer.append(msg); - if (!msg.endsWith("\n")) //$NON-NLS-1$ - outputBuffer.append('\n'); - } - super.log(msg, Project.MSG_INFO); - } - - public void log(IStatus status) { - log(0, status); - if (status.isMultiStatus()) { - IStatus[] children = status.getChildren(); - for (int i = 0; i < children.length; i++) { - log(1, children[i]); - } - } - } - - private void log(int depth, IStatus status) { - log(status.getMessage(), status.getException(), Project.MSG_ERR); - if (outputBuffer != null) { - if (depth == 0) - outputBuffer.append(ENTRY); - else - outputBuffer.append(SUBENTRY); - outputBuffer.append(NLS.bind(logEntry, new String[] {status.getPlugin(), Integer.toString(status.getSeverity()), Integer.toString(status.getCode())})); - outputBuffer.append(MESSAGE); - outputBuffer.append(status.getMessage()); - outputBuffer.append('\n'); - } - } - - private void log(StringBuffer buffer) { - if (outputBuffer == null) - return; - - String logString = outputBuffer.toString(); - getProject().setNewProperty(outputProperty, logString); - - if (logFile != null) { - File parentFile = logFile.getParentFile(); - if (parentFile != null && !parentFile.exists()) - parentFile.mkdirs(); - - FileWriter writer = null; - try { - writer = new FileWriter(logFile); - writer.write(logString); - - } catch (IOException e) { - getProject().log(NLS.bind(Messages.unableToWriteLogFile, logFile.getAbsolutePath()), e, Project.MSG_WARN); - } finally { - if (writer != null) { - try { - writer.close(); - } catch (IOException e) { - //ignore - } - } - } - } - } - - public void setOutputProperty(String property) { - this.outputProperty = property; - } - - public void setLogFile(String file) { - if (file != null && !file.startsWith(ANT_PREFIX)) { - this.logFile = new File(file); - if (!logFile.isAbsolute()) { - logFile = new File(getProject().getBaseDir(), file); - } - } - } - - public void close() { - // ILog#close(), nothing to do here - } -} |