diff options
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/AbstractRepositoryTask.java')
-rw-r--r-- | bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/AbstractRepositoryTask.java | 200 |
1 files changed, 0 insertions, 200 deletions
diff --git a/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/AbstractRepositoryTask.java b/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/AbstractRepositoryTask.java deleted file mode 100644 index bd9d05760..000000000 --- a/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/AbstractRepositoryTask.java +++ /dev/null @@ -1,200 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 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.internal.repository.tools.tasks; - -import java.io.File; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.*; -import org.apache.tools.ant.*; -import org.apache.tools.ant.types.FileSet; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.URIUtil; -import org.eclipse.equinox.internal.p2.artifact.repository.Activator; -import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper; -import org.eclipse.equinox.p2.core.IProvisioningAgent; -import org.eclipse.equinox.p2.internal.repository.tools.*; -import org.eclipse.equinox.p2.metadata.IInstallableUnit; -import org.eclipse.equinox.p2.query.IQuery; -import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository; -import org.eclipse.osgi.util.NLS; - -public abstract class AbstractRepositoryTask extends Task { - protected static final String ANT_PREFIX = "${"; //$NON-NLS-1$ - protected AbstractApplication application; - protected List<IUDescription> iuTasks = new ArrayList<IUDescription>(); - protected List<FileSet> sourceRepos = new ArrayList<FileSet>(); - protected List<DestinationRepository> destinations = new ArrayList<DestinationRepository>(); - - protected void addMetadataSourceRepository(URI repoLocation, boolean optional) { - RepositoryDescriptor source = new RepositoryDescriptor(); - source.setLocation(repoLocation); - source.setKind(RepositoryDescriptor.KIND_METADATA); - source.setOptional(optional); - application.addSource(source); - } - - protected void addArtifactSourceRepository(URI repoLocation, boolean optional) { - RepositoryDescriptor source = new RepositoryDescriptor(); - source.setLocation(repoLocation); - source.setKind(RepositoryDescriptor.KIND_ARTIFACT); - source.setOptional(optional); - application.addSource(source); - } - - /* - * Create an object to hold IU information since the user specified an "iu" sub-element. - */ - public Object createIu() { - IUDescription iu = new IUDescription(); - iuTasks.add(iu); - return iu; - } - - /* - * If the repositories are co-located then the user just has to set one - * argument to specify both the artifact and metadata repositories. - */ - public void setSource(String location) { - RepositoryDescriptor source = new RepositoryDescriptor(); - try { - source.setLocation(URIUtil.fromString(location)); - application.addSource(source); - } catch (URISyntaxException e) { - throw new BuildException(e); - } - } - - /* - * If the repositories are co-located then the user just has to set one - * argument to specify both the artifact and metadata repositories. - */ - public void setDestination(String location) { - // TODO depreciate - DestinationRepository dest = new DestinationRepository(); - dest.setLocation(location); - destinations.add(dest); - application.addDestination(dest.getDescriptor()); - } - - public DestinationRepository createDestination() { - // TODO depreciate - DestinationRepository destination = new DestinationRepository(); - destinations.add(destination); - application.addDestination(destination.getDescriptor()); - return destination; - } - - /* - * Add a repository to mirror into - */ - public DestinationRepository createRepository() { - DestinationRepository destination = new DestinationRepository(); - destinations.add(destination); - application.addDestination(destination.getDescriptor()); - return destination; - } - - /* - * Return the provisioning agent. Throw an exception if it cannot be obtained. - */ - public static IProvisioningAgent getAgent() throws BuildException { - IProvisioningAgent agent = (IProvisioningAgent) ServiceHelper.getService(Activator.getContext(), IProvisioningAgent.SERVICE_NAME); - if (agent == null) - throw new BuildException(Messages.no_provisioning_agent); - return agent; - } - - /* - * Add source repositories to mirror from - */ - public void addConfiguredSource(RepositoryList sourceList) { - for (DestinationRepository repo : sourceList.getRepositoryList()) { - application.addSource(repo.getDescriptor()); - } - - for (FileSet fileSet : sourceList.getFileSetList()) { - sourceRepos.add(fileSet); - // Added to the application later through prepareSourceRepos - } - } - - /* - * If the user specified some source repositories via sub-elements - * then add them to the transformer for consideration. - */ - protected void prepareSourceRepos() { - if (sourceRepos == null || sourceRepos.isEmpty()) - return; - for (Iterator<FileSet> iter = sourceRepos.iterator(); iter.hasNext();) { - RepositoryFileSet fileset = (RepositoryFileSet) iter.next(); - - if (fileset.getRepoLocation() != null) { - if (!fileset.getRepoLocation().startsWith(ANT_PREFIX)) { - if (fileset.isArtifact()) - addArtifactSourceRepository(fileset.getRepoLocationURI(), fileset.isOptional()); - if (fileset.isMetadata()) - addMetadataSourceRepository(fileset.getRepoLocationURI(), fileset.isOptional()); - } - } else if (fileset.getDir() != null) { - DirectoryScanner scanner = fileset.getDirectoryScanner(getProject()); - String[][] elements = new String[][] {scanner.getIncludedDirectories(), scanner.getIncludedFiles()}; - for (int i = 0; i < 2; i++) { - for (int j = 0; j < elements[i].length; j++) { - File file = new File(fileset.getDir(), elements[i][j]); - URI uri = file.toURI(); - - if (file.isFile() && file.getName().endsWith(".zip")) { //$NON-NLS-1$ - uri = URIUtil.toJarURI(uri, null); - } - if (fileset.isBoth()) { - addArtifactSourceRepository(uri, fileset.isOptional()); - addMetadataSourceRepository(uri, fileset.isOptional()); - } else if (fileset.isArtifact()) - addArtifactSourceRepository(uri, fileset.isOptional()); - else if (fileset.isMetadata()) - addMetadataSourceRepository(uri, fileset.isOptional()); - else - throw new BuildException(NLS.bind(Messages.unknown_repository_type, uri)); - } - } - } - } - sourceRepos.clear(); - } - - protected List<IInstallableUnit> prepareIUs() { - if (iuTasks == null || iuTasks.isEmpty()) - return null; - - IMetadataRepository repository = application.getCompositeMetadataRepository(); - List<IInstallableUnit> result = new ArrayList<IInstallableUnit>(); - for (IUDescription iu : iuTasks) { - IQuery<IInstallableUnit> iuQuery = iu.createQuery(); - - Iterator<IInstallableUnit> queryResult = repository.query(iuQuery, null).iterator(); - - if (iu.isRequired() && !queryResult.hasNext()) - throw new BuildException(NLS.bind(Messages.AbstractRepositoryTask_unableToFind, iu.toString())); - while (queryResult.hasNext()) - result.add(queryResult.next()); - } - return result; - } - - protected void log(IStatus status) { - try { - new AntMirrorLog(this).log(status); - } catch (NoSuchMethodException e) { - // Shouldn't occur - } - } -} |