From 5e14005f87300a29d3124bc910973bf68acb8814 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=8A?= =?UTF-8?q?=D1=80=20=D0=9A=D1=83=D1=80=D1=82=D0=B0=D0=BA=D0=BE=D0=B2?= Date: Thu, 30 Mar 2023 13:30:21 +0300 Subject: [PATCH] Remove pack200 API It's tracked in https://github.com/eclipse-equinox/p2/issues/238 . This is first iteration removing the already non-functional API. --- .../META-INF/MANIFEST.MF | 1 - .../plugin.xml | 6 - .../pack200/Pack200ProcessorStep.java | 64 -------- .../simple/SimpleArtifactRepository.java | 120 ++++++-------- .../internal/p2/jarprocessor/PackStep.java | 147 ------------------ .../p2/jarprocessor/PackUnpackStep.java | 60 ------- .../internal/p2/jarprocessor/UnpackStep.java | 65 -------- .../internal/p2/jarprocessor/Utils.java | 126 ++------------- .../internal/p2/jarprocessor/pack-readme.html | 85 ---------- .../p2/jarprocessor/verifier/Verifier.java | 39 +---- .../equinox/p2/jarprocessor/JarProcessor.java | 91 +++-------- .../p2/jarprocessor/ant/JarProcessorTask.java | 17 +- .../compatibility/IGeneratorConstants.java | 6 - .../pde/internal/publishing/Utils.java | 13 +- .../p2/publisher/ant/AbstractPublishTask.java | 17 +- .../p2/publisher/AbstractPublisherAction.java | 71 +++++---- .../AbstractPublisherApplication.java | 34 ++-- .../equinox/p2/publisher/Publisher.java | 66 ++------ .../repository/mirroring/Mirroring.java | 27 ++-- .../repository/tools/MirrorApplication.java | 40 +++-- .../tools/RecreateRepositoryApplication.java | 25 ++- .../repository/tools/Repo2Runnable.java | 62 ++++++-- .../repository/tools/tasks/MirrorTask.java | 5 +- .../tools/tasks/ProcessRepoTask.java | 43 ++--- .../tools/tasks/Repo2RunnableTask.java | 17 +- .../artifact/IArtifactDescriptor.java | 16 +- .../META-INF/MANIFEST.MF | 1 - .../equinox/p2/tests/ant/MirrorTaskTest.java | 17 +- .../equinox/p2/tests/gc/GCCleanTest.java | 1 + .../p2/tests/generator/GeneratorTests.java | 7 +- .../mirror/ArtifactMirrorApplicationTest.java | 3 +- .../NewMirrorApplicationArtifactTest.java | 3 +- .../testData/mirror/mirrorRepo/artifacts.xml | 36 +++++ ....core.filebuffers_3.4.0.v20080603-2000.jar | Bin 0 -> 112005 bytes ...osgi.services.source_3.1.200.v20071203.jar | Bin 0 -> 147113 bytes .../p2/updatesite/DefaultSiteParser.java | 40 +++-- .../internal/p2/updatesite/SiteModel.java | 30 +--- 37 files changed, 406 insertions(+), 995 deletions(-) delete mode 100644 bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/processors/pack200/Pack200ProcessorStep.java delete mode 100644 bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/PackStep.java delete mode 100644 bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/PackUnpackStep.java delete mode 100644 bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/UnpackStep.java delete mode 100644 bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/pack-readme.html create mode 100644 bundles/org.eclipse.equinox.p2.tests/testData/mirror/mirrorRepo/artifacts.xml create mode 100644 bundles/org.eclipse.equinox.p2.tests/testData/mirror/mirrorRepo/plugins/org.eclipse.core.filebuffers_3.4.0.v20080603-2000.jar create mode 100644 bundles/org.eclipse.equinox.p2.tests/testData/mirror/mirrorRepo/plugins/org.eclipse.osgi.services.source_3.1.200.v20071203.jar diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.artifact.repository/META-INF/MANIFEST.MF index 928321ad65..e6ba563fd6 100644 --- a/bundles/org.eclipse.equinox.p2.artifact.repository/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.p2.artifact.repository/META-INF/MANIFEST.MF @@ -9,7 +9,6 @@ Bundle-Localization: plugin Export-Package: org.eclipse.equinox.internal.p2.artifact.processing;x-friends:="org.eclipse.equinox.p2.artifact.processors,org.eclipse.equinox.p2.artifact.optimizers", org.eclipse.equinox.internal.p2.artifact.processors.checksum;x-friends:="org.eclipse.equinox.p2.publisher", org.eclipse.equinox.internal.p2.artifact.processors.md5;x-internal:=true, - org.eclipse.equinox.internal.p2.artifact.processors.pack200;x-friends:="org.eclipse.equinox.p2.artifact.processors,org.eclipse.equinox.p2.artifact.optimizers", org.eclipse.equinox.internal.p2.artifact.processors.pgp;x-friends:="org.eclipse.equinox.p2.engine,org.eclipse.equinox.p2.ui.sdk,org.eclipse.equinox.p2.ui", org.eclipse.equinox.internal.p2.artifact.repository; x-friends:="org.eclipse.equinox.p2.publisher, diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/plugin.xml b/bundles/org.eclipse.equinox.p2.artifact.repository/plugin.xml index c76afae803..8f02212972 100644 --- a/bundles/org.eclipse.equinox.p2.artifact.repository/plugin.xml +++ b/bundles/org.eclipse.equinox.p2.artifact.repository/plugin.xml @@ -6,12 +6,6 @@ - - - - diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/processors/pack200/Pack200ProcessorStep.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/processors/pack200/Pack200ProcessorStep.java deleted file mode 100644 index 1f21f0b4ab..0000000000 --- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/processors/pack200/Pack200ProcessorStep.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2018 compeople AG and others. - * - * This program and the accompanying materials - * are made available under the terms of the Eclipse Public License 2.0 - * which accompanies this distribution, and is available at - * https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - * - * Contributors: - * compeople AG (Stefan Liebig) - initial API and implementation - * IBM Corporation - ongoing development -* Mykola Nikishov - continuing development - *******************************************************************************/ -package org.eclipse.equinox.internal.p2.artifact.processors.pack200; - -import java.io.*; -import org.eclipse.equinox.internal.p2.artifact.processing.AbstractBufferingStep; -import org.eclipse.equinox.internal.p2.jarprocessor.UnpackStep; -import org.eclipse.internal.provisional.equinox.p2.jarprocessor.JarProcessorExecutor; -import org.eclipse.internal.provisional.equinox.p2.jarprocessor.JarProcessorExecutor.Options; - -/** - * The Pack200Unpacker expects an input containing ".jar.pack.gz" data. - * @noinstantiate This class is not intended to be instantiated by clients. - * @noextend This class is not intended to be subclassed by clients. - * @noreference This class is not intended to be referenced by clients. - * @deprecated See bug for details. - */ -@Deprecated(forRemoval = true, since = "1.4.100") -public class Pack200ProcessorStep extends AbstractBufferingStep { - public static final String PACKED_SUFFIX = ".pack.gz"; //$NON-NLS-1$ - - private File incoming; - - @Override - protected OutputStream createIncomingStream() throws IOException { - incoming = File.createTempFile(INCOMING_ROOT, JAR_SUFFIX + PACKED_SUFFIX); - return new BufferedOutputStream(new FileOutputStream(incoming)); - } - - @Override - protected void performProcessing() { - // NO-OP see https://github.com/eclipse-equinox/p2/issues/40 - } - - protected File process() throws IOException { - Options options = new Options(); - options.unpack = false; - // TODO use false here assuming that all content is conditioned. Need to revise this - options.processAll = false; - options.input = incoming; - options.outputDir = getWorkDir().getPath(); - options.verbose = false; - new JarProcessorExecutor().runJarProcessor(options); - return new File(getWorkDir(), incoming.getName().substring(0, incoming.getName().length() - PACKED_SUFFIX.length())); - } - - @Override - public boolean isEnabled() { - return UnpackStep.canUnpack(); - } -} diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java index 8ee48520d9..09511fdbfc 100644 --- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java +++ b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java @@ -19,20 +19,48 @@ *******************************************************************************/ package org.eclipse.equinox.internal.p2.artifact.repository.simple; -import java.io.*; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; import java.net.URI; import java.net.URISyntaxException; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; +import java.util.Set; import java.util.jar.JarEntry; import java.util.jar.JarOutputStream; -import org.eclipse.core.runtime.*; + +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.MultiStatus; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.OperationCanceledException; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.SubMonitor; +import org.eclipse.core.runtime.URIUtil; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.equinox.internal.p2.artifact.processors.checksum.ChecksumUtilities; import org.eclipse.equinox.internal.p2.artifact.processors.checksum.ChecksumVerifier; import org.eclipse.equinox.internal.p2.artifact.processors.pgp.PGPSignatureVerifier; -import org.eclipse.equinox.internal.p2.artifact.repository.*; +import org.eclipse.equinox.internal.p2.artifact.repository.Activator; import org.eclipse.equinox.internal.p2.artifact.repository.Messages; +import org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest; +import org.eclipse.equinox.internal.p2.artifact.repository.MirrorSelector; +import org.eclipse.equinox.internal.p2.artifact.repository.SignatureVerifier; import org.eclipse.equinox.internal.p2.core.helpers.FileUtils; import org.eclipse.equinox.internal.p2.core.helpers.LogHelper; import org.eclipse.equinox.internal.p2.metadata.ArtifactKey; @@ -41,17 +69,29 @@ import org.eclipse.equinox.internal.p2.repository.DownloadStatus; import org.eclipse.equinox.internal.p2.repository.Transport; import org.eclipse.equinox.internal.p2.repository.helpers.ChecksumHelper; -import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.*; +import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep; +import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepHandler; +import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ZipVerifierStep; import org.eclipse.equinox.internal.provisional.p2.repository.IStateful; import org.eclipse.equinox.p2.core.IProvisioningAgent; import org.eclipse.equinox.p2.core.ProvisionException; import org.eclipse.equinox.p2.metadata.IArtifactKey; import org.eclipse.equinox.p2.metadata.index.IIndex; import org.eclipse.equinox.p2.metadata.index.IIndexProvider; -import org.eclipse.equinox.p2.query.*; -import org.eclipse.equinox.p2.repository.*; -import org.eclipse.equinox.p2.repository.artifact.*; -import org.eclipse.equinox.p2.repository.artifact.spi.*; +import org.eclipse.equinox.p2.query.IQuery; +import org.eclipse.equinox.p2.query.IQueryResult; +import org.eclipse.equinox.p2.query.IQueryable; +import org.eclipse.equinox.p2.repository.IRepository; +import org.eclipse.equinox.p2.repository.IRepositoryManager; +import org.eclipse.equinox.p2.repository.IRunnableWithProgress; +import org.eclipse.equinox.p2.repository.artifact.IArtifactDescriptor; +import org.eclipse.equinox.p2.repository.artifact.IArtifactRepository; +import org.eclipse.equinox.p2.repository.artifact.IArtifactRepositoryManager; +import org.eclipse.equinox.p2.repository.artifact.IArtifactRequest; +import org.eclipse.equinox.p2.repository.artifact.IFileArtifactRepository; +import org.eclipse.equinox.p2.repository.artifact.spi.AbstractArtifactRepository; +import org.eclipse.equinox.p2.repository.artifact.spi.ArtifactDescriptor; +import org.eclipse.equinox.p2.repository.artifact.spi.ProcessingStepDescriptor; import org.eclipse.osgi.service.datalocation.Location; import org.eclipse.osgi.util.NLS; @@ -268,11 +308,6 @@ public void write(int b) throws IOException { private static final String ARTIFACT_FOLDER = "artifact.folder"; //$NON-NLS-1$ private static final String ARTIFACT_UUID = "artifact.uuid"; //$NON-NLS-1$ static final private String BLOBSTORE = ".blobstore/"; //$NON-NLS-1$ - static final private String[][] PACKED_MAPPING_RULES = {{"(& (classifier=osgi.bundle) (format=packed))", "${repoUrl}/plugins/${id}_${version}.jar.pack.gz"}, //$NON-NLS-1$//$NON-NLS-2$ - {"(& (classifier=osgi.bundle))", "${repoUrl}/plugins/${id}_${version}.jar"}, //$NON-NLS-1$//$NON-NLS-2$ - {"(& (classifier=binary))", "${repoUrl}/binary/${id}_${version}"}, //$NON-NLS-1$ //$NON-NLS-2$ - {"(& (classifier=org.eclipse.update.feature) (format=packed))", "${repoUrl}/features/${id}_${version}.jar.pack.gz"}, //$NON-NLS-1$//$NON-NLS-2$ - {"(& (classifier=org.eclipse.update.feature))", "${repoUrl}/features/${id}_${version}.jar"}}; //$NON-NLS-1$//$NON-NLS-2$ static final private String[][] DEFAULT_MAPPING_RULES = {{"(& (classifier=osgi.bundle))", "${repoUrl}/plugins/${id}_${version}.jar"}, //$NON-NLS-1$//$NON-NLS-2$ {"(& (classifier=binary))", "${repoUrl}/binary/${id}_${version}"}, //$NON-NLS-1$ //$NON-NLS-2$ @@ -292,8 +327,6 @@ public void write(int b) throws IOException { private KeyIndex keyIndex; private boolean snapshotNeeded = false; - static final private String PUBLISH_PACK_FILES_AS_SIBLINGS = "publishPackFilesAsSiblings"; //$NON-NLS-1$ - private static final int DEFAULT_MAX_THREADS = 4; protected String[][] mappingRules = DEFAULT_MAPPING_RULES; @@ -391,19 +424,6 @@ public SimpleArtifactRepository(IProvisioningAgent agent, String repositoryName, } initializeAfterLoad(location, false); // Don't update the timestamp, it will be done during save - if (properties != null) { - if (properties.containsKey(PUBLISH_PACK_FILES_AS_SIBLINGS)) { - synchronized (this) { - String newValue = properties.get(PUBLISH_PACK_FILES_AS_SIBLINGS); - if (Boolean.TRUE.toString().equals(newValue)) { - mappingRules = PACKED_MAPPING_RULES; - } else { - mappingRules = DEFAULT_MAPPING_RULES; - } - initializeMapper(); - } - } - } save(); } finally { if (lockAcquired) @@ -447,11 +467,6 @@ private SimpleArtifactDescriptor createInternalDescriptor(IArtifactDescriptor de if (isFolderBased(descriptor)) internal.setRepositoryProperty(ARTIFACT_FOLDER, Boolean.TRUE.toString()); - //clear out the UUID if we aren't using the blobstore. - if (flatButPackedEnabled(descriptor) && internal.getProperty(ARTIFACT_UUID) != null) { - internal.setProperty(ARTIFACT_UUID, null); - } - if (descriptor instanceof SimpleArtifactDescriptor) { Map repoProperties = ((SimpleArtifactDescriptor) descriptor).getRepositoryProperties(); for (Map.Entry entry : repoProperties.entrySet()) { @@ -584,9 +599,6 @@ public synchronized boolean contains(IArtifactKey key) { } public synchronized URI createLocation(ArtifactDescriptor descriptor) { - if (flatButPackedEnabled(descriptor)) { - return getLocationForPackedButFlatArtifacts(descriptor); - } // if the descriptor is canonical, clear out any UUID that might be set and use the Mapper if (descriptor.getProcessingSteps().length == 0) { descriptor.setProperty(ARTIFACT_UUID, null); @@ -934,36 +946,12 @@ public synchronized Set getDescriptors() { return artifactDescriptors; } - /** - * Typically non-canonical forms of the artifact are stored in the blob store. - * However, we support having the pack200 files alongside the canonical artifact - * for compatibility with the format used in optimized update sites. We call - * this arrangement "flat but packed". - */ - @SuppressWarnings("removal") - private boolean flatButPackedEnabled(IArtifactDescriptor descriptor) { - return Boolean.TRUE.toString().equals(getProperties().get(PUBLISH_PACK_FILES_AS_SIBLINGS)) && IArtifactDescriptor.FORMAT_PACKED.equals(descriptor.getProperty(IArtifactDescriptor.FORMAT)); - } - - /** - * @see #flatButPackedEnabled(IArtifactDescriptor) - */ - private URI getLocationForPackedButFlatArtifacts(IArtifactDescriptor descriptor) { - IArtifactKey key = descriptor.getArtifactKey(); - return mapper.map(getLocation(), key.getClassifier(), key.getId(), key.getVersion().toString(), - descriptor.getProperty(IArtifactDescriptor.FORMAT), descriptor.getProperties()); - } - public synchronized URI getLocation(IArtifactDescriptor descriptor) { // if the artifact has a uuid then use it String uuid = descriptor.getProperty(ARTIFACT_UUID); if (uuid != null) return blobStore.fileFor(bytesFromHexString(uuid)); - if (flatButPackedEnabled(descriptor)) { - return getLocationForPackedButFlatArtifacts(descriptor); - } - try { // if the artifact is just a reference then return the reference location if (descriptor instanceof SimpleArtifactDescriptor) { @@ -1387,16 +1375,6 @@ private String doSetProperty(String key, String newValue, IProgressMonitor monit String oldValue = super.setProperty(key, newValue, new NullProgressMonitor()); if (oldValue == newValue || (oldValue != null && oldValue.equals(newValue))) return oldValue; - if (PUBLISH_PACK_FILES_AS_SIBLINGS.equals(key)) { - synchronized (this) { - if (Boolean.TRUE.toString().equals(newValue)) { - mappingRules = PACKED_MAPPING_RULES; - } else { - mappingRules = DEFAULT_MAPPING_RULES; - } - initializeMapper(); - } - } if (save) save(); return oldValue; diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/PackStep.java b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/PackStep.java deleted file mode 100644 index 29ef701819..0000000000 --- a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/PackStep.java +++ /dev/null @@ -1,147 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2017 IBM Corporation and others. - * - * This program and the accompanying materials - * are made available under the terms of the Eclipse Public License 2.0 - * which accompanies this distribution, and is available at - * https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - * - * Contributors: - * IBM - Initial API and implementation - *******************************************************************************/ -package org.eclipse.equinox.internal.p2.jarprocessor; - -import java.io.File; -import java.io.IOException; -import java.util.List; -import java.util.Properties; - -/** - * @noreference This class is not intended to be referenced by clients. - * @noextend This class is not intended to be subclassed by clients. - * @noinstantiate This class is not intended to be instantiated by clients. - * @deprecated See bug - * and issue for - * details. - */ -@Deprecated(forRemoval = true, since = "1.2.0") -public class PackStep extends CommandStep { - - protected static String packCommand = null; - - public static boolean canPack() { - // Ignore everything pack200 https://github.com/eclipse-equinox/p2/issues/40 - return false; - } - - public PackStep(Properties options) { - super(options, null, null, false); - } - - public PackStep(Properties options, boolean verbose) { - super(options, null, null, verbose); - } - - @Override - public String recursionEffect(String entryName) { - return null; - } - - @Override - public File preProcess(File input, File workingDirectory, List containers) { - return null; - } - - @Override - public File postProcess(File input, File workingDirectory, List containers) { - return null; - } - - protected boolean shouldPack(File input, List containers, Properties inf) { - return false; - } - - protected String[] getCommand(File input, File outputFile, Properties inf, List containers) - throws IOException { - String[] cmd = null; - String arguments = getArguments(input, inf, containers); - if (arguments != null && arguments.length() > 0) { - String[] args = Utils.toStringArray(arguments, ","); //$NON-NLS-1$ - cmd = new String[3 + args.length]; - cmd[0] = packCommand; - System.arraycopy(args, 0, cmd, 1, args.length); - cmd[cmd.length - 2] = outputFile.getCanonicalPath(); - cmd[cmd.length - 1] = input.getCanonicalPath(); - } else { - cmd = new String[] { packCommand, outputFile.getCanonicalPath(), input.getCanonicalPath() }; - } - return cmd; - } - - protected String getArguments(File input, Properties inf, List containers) { - // 1: Explicitly marked in our .inf file - if (inf != null && inf.containsKey(Utils.PACK_ARGS)) { - return inf.getProperty(Utils.PACK_ARGS); - } - - // 2: Defaults set in one of our containing jars - for (Properties container : containers) { - if (container.containsKey(Utils.DEFAULT_PACK_ARGS)) { - return container.getProperty(Utils.DEFAULT_PACK_ARGS); - } - } - - // 3: Set by name in outside pack.properties file - Properties options = getOptions(); - String argsKey = input.getName() + Utils.PACK_ARGS_SUFFIX; - if (options.containsKey(argsKey)) { - return options.getProperty(argsKey); - } - - // 4: Set by default in outside pack.properties file - if (options.containsKey(Utils.DEFAULT_PACK_ARGS)) { - return options.getProperty(Utils.DEFAULT_PACK_ARGS); - } - - return ""; //$NON-NLS-1$ - } - - @Override - public String getStepName() { - return "Pack (NO-OP see https://github.com/eclipse-equinox/p2/issues/40)"; //$NON-NLS-1$ - } - - @Override - public boolean adjustInf(File input, Properties inf, List containers) { - if (input == null || inf == null) - return false; - - // don't be verbose to check if we should mark the inf - boolean v = verbose; - verbose = false; - if (!shouldPack(input, containers, inf)) { - verbose = v; - return false; - } - verbose = v; - - // mark as conditioned if not previously marked. A signed jar is assumed to be - // previously conditioned. - if (inf.getProperty(Utils.MARK_PROPERTY) != null) - return false; - - inf.put(Utils.MARK_PROPERTY, "true"); //$NON-NLS-1$ - // record arguments used - String arguments = inf.getProperty(Utils.PACK_ARGS); - if (arguments == null) { - arguments = getArguments(input, inf, containers); - if (arguments != null && arguments.length() > 0) - inf.put(Utils.PACK_ARGS, arguments); - } - return true; - } -} diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/PackUnpackStep.java b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/PackUnpackStep.java deleted file mode 100644 index ab6e34ca16..0000000000 --- a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/PackUnpackStep.java +++ /dev/null @@ -1,60 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2017 IBM Corporation and others. - * - * This program and the accompanying materials - * are made available under the terms of the Eclipse Public License 2.0 - * which accompanies this distribution, and is available at - * https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - * - * Contributors: - * IBM - Initial API and implementation - *******************************************************************************/ -package org.eclipse.equinox.internal.p2.jarprocessor; - -import java.io.File; -import java.util.List; -import java.util.Properties; - -/** - * @noreference This class is not intended to be referenced by clients. - * @noextend This class is not intended to be subclassed by clients. - * @noinstantiate This class is not intended to be instantiated by clients. - * @deprecated See bug - * and issue for - * details. - */ -@Deprecated(forRemoval = true, since = "1.2.0") -public class PackUnpackStep extends PackStep { - - public PackUnpackStep(Properties options) { - super(options); - } - - public PackUnpackStep(Properties options, boolean verbose) { - super(options, verbose); - } - - @Override - public String recursionEffect(String entryName) { - return null; - } - - @Override - public File postProcess(File input, File workingDirectory, List containers) { - return null; - } - - @Override - public File preProcess(File input, File workingDirectory, List containers) { - return null; - } - - @Override - public String getStepName() { - return "Repack (NO-OP see https://github.com/eclipse-equinox/p2/issues/40)"; //$NON-NLS-1$ - } -} diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/UnpackStep.java b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/UnpackStep.java deleted file mode 100644 index 2a0ff7ec66..0000000000 --- a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/UnpackStep.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2017 IBM Corporation and others. - * - * This program and the accompanying materials - * are made available under the terms of the Eclipse Public License 2.0 - * which accompanies this distribution, and is available at - * https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - * - * Contributors: - * IBM - Initial API and implementation - *******************************************************************************/ -package org.eclipse.equinox.internal.p2.jarprocessor; - -import java.io.File; -import java.util.List; -import java.util.Properties; - -/** - * @noreference This class is not intended to be referenced by clients. - * @noinstantiate This class is not intended to be instantiated by clients. - * @noextend This class is not intended to be subclassed by clients. - * @deprecated See bug - * and issue for - * details. - */ -@Deprecated(forRemoval = true, since = "1.2.0") -public class UnpackStep extends CommandStep { - public static final String UNPACKER_PROPERTY = "org.eclipse.update.jarprocessor.Unpacker"; //$NON-NLS-1$ - - public static boolean canUnpack() { - return false; - } - - public UnpackStep(Properties options) { - super(options, null, null, false); - } - - public UnpackStep(Properties options, boolean verbose) { - super(options, null, null, verbose); - } - - @Override - public String recursionEffect(String entryName) { - return null; - } - - @Override - public File preProcess(File input, File workingDirectory, List containers) { - return null; - } - - @Override - public File postProcess(File input, File workingDirectory, List containers) { - return null; - } - - @Override - public String getStepName() { - return "Unpack (NO-OP see https://github.com/eclipse-equinox/p2/issues/40)"; //$NON-NLS-1$ - } -} diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/Utils.java b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/Utils.java index 2ff3a65b3c..7847c7541b 100644 --- a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/Utils.java +++ b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/Utils.java @@ -13,12 +13,24 @@ *******************************************************************************/ package org.eclipse.equinox.internal.p2.jarprocessor; -import java.io.*; -import java.util.*; +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileFilter; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.PrintStream; +import java.util.Collections; +import java.util.HashSet; +import java.util.Properties; +import java.util.Set; +import java.util.SortedMap; +import java.util.StringTokenizer; +import java.util.TreeMap; import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.zip.ZipException; -import org.eclipse.internal.provisional.equinox.p2.jarprocessor.JarProcessor; /** * @author aniefer@ca.ibm.com @@ -32,106 +44,21 @@ public class Utils { */ // comma separated list of jars to exclude from sigining public static final String SIGN_EXCLUDES = "sign.excludes"; //$NON-NLS-1$ - // comma separated list of jars to exlclude from packing - /** - * @noreference This field is not intended to be referenced by clients. - * @deprecated See bug - * for details. - */ - @Deprecated(forRemoval = true, since = "1.2.0") - public static final String PACK_EXCLUDES = "pack.excludes"; //$NON-NLS-1$ - // Suffix used when specifying arguments to use when running pack200 on a jar - - /** - * @noreference This field is not intended to be referenced by clients. - * @deprecated See bug - * for details. - */ - @Deprecated(forRemoval = true, since = "1.2.0") - public static final String PACK_ARGS_SUFFIX = ".pack.args"; //$NON-NLS-1$ - - /* - * Properties found in both pack.properties and eclipse.inf - */ - // Default arguments to use when running pack200. - // Affects all jars when specified in pack.properties, affects children when - // specified in eclipse.inf - /** - * @noreference This field is not intended to be referenced by clients. - * @deprecated See bug - * for details. - */ - @Deprecated(forRemoval = true, since = "1.2.0") - public static final String DEFAULT_PACK_ARGS = "pack200.default.args"; //$NON-NLS-1$ - /* - * Properties found in eclipse.inf file - */ - // This jar has been conditioned with pack200 - /** - * @noreference This field is not intended to be referenced by clients. - * @deprecated See bug - * for details. - */ - @Deprecated(forRemoval = true, since = "1.2.0") - public static final String MARK_PROPERTY = "pack200.conditioned"; //$NON-NLS-1$ // Exclude this jar from processing public static final String MARK_EXCLUDE = "jarprocessor.exclude"; //$NON-NLS-1$ - // Exclude this jar from pack200 - public static final String MARK_EXCLUDE_PACK = "jarprocessor.exclude.pack"; //$NON-NLS-1$ // Exclude this jar from signing public static final String MARK_EXCLUDE_SIGN = "jarprocessor.exclude.sign"; //$NON-NLS-1$ // Exclude this jar's children from processing public static final String MARK_EXCLUDE_CHILDREN = "jarprocessor.exclude.children"; //$NON-NLS-1$ - // Exclude this jar's children from pack200 - public static final String MARK_EXCLUDE_CHILDREN_PACK = "jarprocessor.exclude.children.pack"; //$NON-NLS-1$ // Exclude this jar's children from signing public static final String MARK_EXCLUDE_CHILDREN_SIGN = "jarprocessor.exclude.children.sign"; //$NON-NLS-1$ - // Arguments used in pack200 for this jar - /** - * @noreference This field is not intended to be referenced by clients. - * @deprecated See bug - * for details. - */ - @Deprecated(forRemoval = true, since = "1.2.0") - public static final String PACK_ARGS = "pack200.args"; //$NON-NLS-1$ - /** - * @noreference This field is not intended to be referenced by clients. - * @deprecated See bug - * for details. - */ - @Deprecated(forRemoval = true, since = "1.2.0") - public static final String PACK200_PROPERTY = "org.eclipse.update.jarprocessor.pack200"; //$NON-NLS-1$ public static final String JRE = "@jre"; //$NON-NLS-1$ public static final String PATH = "@path"; //$NON-NLS-1$ public static final String NONE = "@none"; //$NON-NLS-1$ - /** - * @noreference This field is not intended to be referenced by clients. - * @deprecated See bug - * for details. - */ - @Deprecated(forRemoval = true, since = "1.2.0") - public static final String PACKED_SUFFIX = ".pack.gz"; //$NON-NLS-1$ public static final String JAR_SUFFIX = ".jar"; //$NON-NLS-1$ public static final FileFilter JAR_FILTER = pathname -> pathname.isFile() && pathname.getName().endsWith(".jar"); //$NON-NLS-1$ - /** - * @noreference This field is not intended to be referenced by clients. - * @deprecated See bug - * for details. - */ - @SuppressWarnings("removal") - @Deprecated(forRemoval = true, since = "1.2.0") - public static final FileFilter PACK_GZ_FILTER = pathname -> pathname.isFile() - && pathname.getName().endsWith(JarProcessor.PACKED_SUFFIX); public static void close(Object stream) { if (stream != null) { @@ -148,24 +75,6 @@ else if (stream instanceof JarFile) } } - /** - * Get the set of commands to try to execute pack/unpack - * - * @param cmd the command, either "pack200" or "unpack200" - * @return null as pack200 is not supported on Java >= 14 - * - * @noreference This method is not intended to be referenced by clients. - * @deprecated See bug - * and issue for - * details. - */ - @Deprecated(forRemoval = true, since = "1.2.0") - public static String[] getPack200Commands(String cmd) { - return null; - } - /** * Transfers all available bytes from the given input stream to the given output * stream. Closes both streams if close == true, regardless of failure. Flushes @@ -330,9 +239,8 @@ public static boolean shouldSkipJar(File input, boolean processAll, boolean verb if (processAll) return false; - // otherwise, we skip if not marked marked - String marked = inf.getProperty(MARK_PROPERTY); - return !Boolean.parseBoolean(marked); + // otherwise, we skip + return true; } /** diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/pack-readme.html b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/pack-readme.html deleted file mode 100644 index 084ab2972a..0000000000 --- a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/pack-readme.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - Eclipse update packing tool readme - - -

Eclipse update packing tool

- -

Overview

-The update packing tool processes a hierarchy of arbitrarily nested -JARs and ZIP files. It is a generic utility that performs a depth first traversal of -a nested hierarchy of ZIPs and JARs, performs various commands on -each of the JARs in the hierarchy, and then rebuilds the same hierarchy -of ZIPs and JARs again. Currently its main functions are: -
    -
  • Packing JARs using the Java 1.5 pack200 - command.
  • -
  • Unpacking PACK.GZs using the Java 1.5 unpack200 - command.
  • -
  • Normalizing JARs for future compression by pack200. This is accomplished - by running the pack200 command with the --repack command line argument.
  • -
  • Signing JARs to allow for authentication of the origin of JARs. This is accomplished by - running a supplied command (typically the command will just be a wrapper around - the Java jarsigner tool).
  • -
-The packing tool is used in the following contexts: -
    -
  • During a PDE build, to prepare JARs for uploading to an Eclipse - update site. In this usage, it is used to both nomalize JAR contents - (pack200 -repack), and sign JARs.
  • -
  • On an update site, to convert traditional JAR content into the - compressed pack200 format.
  • -
  • From an Eclipse client application during update, to convert - compressed pack200 format content into executable JAR files.
  • -
-

Tool usage

-To run the packing tool, you need a 1.5 JRE installed. The tool is run -by invoking Java as follows: - -
-	java jarprocessor.jar [options] input
-
- -Where input is either a zip file, a directory, or a JAR (or a pack.gz file). All files ending -in ".jar" or ".pack.gz" in the provided zip or directory hierarchy -will be processed. -The following additional command line arguments are supported: -
    -
  • -repack : Normalize the jars using pack200 --repack
  • -
  • -sign <cmd> : signs the jars by executing the provided command. -The command will be provided a single argument that will be the full path of the JAR to process. -
  • -
  • -pack : for each input in JAR form, produce a corresponding output -in packed form. For an input "a.jar", the output is a.jar.pack.gz. -
  • -
  • -unpack : for each input in packed form, produce a corresponding output -in unpacked form. For an input "a.jar.pack.gz", the output is "a.jar". -unpack is mutually exclusive with -repack, -pack and -sign.
  • -
  • -outputDir <dir> : The directory to put the tool's output into. If the input was a zip file, then an output zip file will be -created containg all the output files. If the input was a directory, for each input file there is a corresponding output file in the output directory. By default the current working directory is used. If the input is in the same -directory as the output, the input files may be overwritten.
  • -
- -Additionally, when the input is a zip file, it may contain a file called -pack.properties. The pack.properties file supports the following values: -
    -
  • pack.excludes = jarName[, jarName]* : A comma-delimited list of JARs that should not be packed or repacked. -
  • -
  • sign.excludes = jarName[, jarName]* : A comma-delimited list of JARs that should not be signed. -
  • -
  • <jarname>.pack.args = option[, option]* : A comma-delimited list of additional arguments that should -be passed to pack200 when packing any jar with name <jarname>. -
-

-

- -. -. This program and the accompanying materials -are made available under the terms of the -"https://www.eclipse.org/legal/epl-2.0/ -" -"SPDX-License-Identifier: EPL-2.0">Eclipse Public License 2.0. - - - diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/verifier/Verifier.java b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/verifier/Verifier.java index cd56f38195..9f400c7b9d 100644 --- a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/verifier/Verifier.java +++ b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/verifier/Verifier.java @@ -14,14 +14,16 @@ package org.eclipse.equinox.internal.p2.jarprocessor.verifier; -import java.io.*; +import java.io.File; +import java.io.IOException; import java.util.Iterator; import java.util.Properties; -import org.eclipse.equinox.internal.p2.jarprocessor.UnpackStep; + import org.eclipse.equinox.internal.p2.jarprocessor.Utils; -import org.eclipse.internal.provisional.equinox.p2.jarprocessor.*; +import org.eclipse.internal.provisional.equinox.p2.jarprocessor.IProcessStep; +import org.eclipse.internal.provisional.equinox.p2.jarprocessor.JarProcessor; +import org.eclipse.internal.provisional.equinox.p2.jarprocessor.JarProcessorExecutor; -@SuppressWarnings("removal") public class Verifier extends JarProcessorExecutor { private static void printUsage() { @@ -30,8 +32,8 @@ private static void printUsage() { System.out.println( "Usage: java -cp jarprocessor.jar org.eclipse.update.internal.jarprocessor.verifier.Verifier -dir input [input]"); //$NON-NLS-1$ System.out.println(""); //$NON-NLS-1$ - System.out.println("-dir : specifies a working directory where pack.gz files can be temporarily unpacked"); //$NON-NLS-1$ - System.out.println("input : a list of directories and/or pack.gz files to verify."); //$NON-NLS-1$ + System.out.println("-dir : specifies a working directory "); //$NON-NLS-1$ + System.out.println("input : a list of directories to verify."); //$NON-NLS-1$ } @@ -82,8 +84,6 @@ public static void main(String[] args) { public void verify(final File workingDirectory, String[] input) { options = new Options(); options.verbose = false; - options.repack = false; // We first unpack first during repack/sign phase - options.pack = false; // then we are verifying during the pack phase. options.outputDir = workingDirectory.toString(); Properties properties = new Properties(); @@ -106,29 +106,6 @@ public File processJar(File inputFile) throws IOException { }; verifier.setWorkingDirectory(workingDirectory.getAbsolutePath()); - for (String input1 : input) { - File inputFile = new File(input1); - if (inputFile.exists()) { - try { - process(inputFile, Utils.PACK_GZ_FILTER, true, verifier, properties); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } - } - } Utils.clear(workingDirectory); } - - @Override - @Deprecated(forRemoval = true, since = "1.2.0") - public void addPackStep(JarProcessor processor, Properties properties, - JarProcessorExecutor.Options processOptions) { - processor.addProcessStep(new VerifyStep(properties, processOptions.verbose)); - } - - @Override - @Deprecated(forRemoval = true, since = "1.2.0") - public void addPackUnpackStep(JarProcessor processor, Properties properties, Options processOptions) { - processor.addProcessStep(new UnpackStep(properties, processOptions.verbose)); - } } diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor.java b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor.java index a77fda1beb..1a6b9d4500 100644 --- a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor.java +++ b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor.java @@ -13,20 +13,31 @@ *******************************************************************************/ package org.eclipse.internal.provisional.equinox.p2.jarprocessor; -import java.io.*; -import java.util.*; -import java.util.jar.*; -import org.eclipse.equinox.internal.p2.jarprocessor.*; +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.jar.JarEntry; +import java.util.jar.JarException; +import java.util.jar.JarFile; +import java.util.jar.JarOutputStream; + +import org.eclipse.equinox.internal.p2.jarprocessor.Utils; +import org.eclipse.equinox.internal.p2.jarprocessor.ZipProcessor; public class JarProcessor { - /** - * @noreference This field is not intended to be referenced by clients. - * @deprecated See bug - * for details. - */ - @Deprecated(forRemoval = true, since = "1.2.0") - public static final String PACKED_SUFFIX = "pack.gz"; //$NON-NLS-1$ private List steps = new ArrayList<>(); private String workingDirectory = ""; //$NON-NLS-1$ @@ -35,58 +46,6 @@ public class JarProcessor { private boolean processAll = false; private LinkedList containingInfs = new LinkedList<>(); - /** - * @noreference This method is not intended to be referenced by clients. - * @deprecated See bug - * and issue for - * details. - */ - @Deprecated(forRemoval = true, since = "1.2.0") - public static JarProcessor getUnpackProcessor(Properties properties) { - throw new UnsupportedOperationException(); - } - - /** - * @noreference This method is not intended to be referenced by clients. - * @deprecated See bug - * and bug - * and bug - * and bug for details. - */ - @Deprecated(forRemoval = true, since = "1.6.0") - public static final String REUSE_PACK200 = "-reusePack200Files"; //$NON-NLS-1$ public static final String SOURCE = "-source"; //$NON-NLS-1$ public static final String INPLACE = "-inplace"; //$NON-NLS-1$ public static final String CONFIG = "-config"; //$NON-NLS-1$ diff --git a/bundles/org.eclipse.equinox.p2.publisher.eclipse/src/org/eclipse/pde/internal/publishing/Utils.java b/bundles/org.eclipse.equinox.p2.publisher.eclipse/src/org/eclipse/pde/internal/publishing/Utils.java index 8f603e313f..bb2a79bc0e 100644 --- a/bundles/org.eclipse.equinox.p2.publisher.eclipse/src/org/eclipse/pde/internal/publishing/Utils.java +++ b/bundles/org.eclipse.equinox.p2.publisher.eclipse/src/org/eclipse/pde/internal/publishing/Utils.java @@ -14,9 +14,17 @@ *******************************************************************************/ package org.eclipse.pde.internal.publishing; -import java.io.*; +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import java.util.Dictionary; import java.util.Enumeration; + import org.eclipse.osgi.service.resolver.BundleDescription; import org.eclipse.osgi.util.ManifestElement; import org.osgi.framework.BundleException; @@ -59,8 +67,7 @@ public static boolean guessUnpack(BundleDescription bundle, String[] classpath) return shape.equals("dir"); //$NON-NLS-1$ } - // launcher fragments are a special case, they have no bundle-classpath and they must - //be unpacked + // launcher fragments are a special case, they have no bundle-classpath if (bundle.getHost() != null && bundle.getName().startsWith(Constants.BUNDLE_EQUINOX_LAUNCHER)) return true; diff --git a/bundles/org.eclipse.equinox.p2.publisher.eclipse/src_ant/org/eclipse/equinox/internal/p2/publisher/ant/AbstractPublishTask.java b/bundles/org.eclipse.equinox.p2.publisher.eclipse/src_ant/org/eclipse/equinox/internal/p2/publisher/ant/AbstractPublishTask.java index c9a149b4e1..9ec8856460 100644 --- a/bundles/org.eclipse.equinox.p2.publisher.eclipse/src_ant/org/eclipse/equinox/internal/p2/publisher/ant/AbstractPublishTask.java +++ b/bundles/org.eclipse.equinox.p2.publisher.eclipse/src_ant/org/eclipse/equinox/internal/p2/publisher/ant/AbstractPublishTask.java @@ -19,8 +19,12 @@ import java.net.URISyntaxException; import java.util.ArrayList; import java.util.List; + import org.apache.tools.ant.Task; -import org.eclipse.core.runtime.*; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.URIUtil; import org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository; import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper; import org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository; @@ -28,7 +32,9 @@ import org.eclipse.equinox.p2.core.IProvisioningAgent; import org.eclipse.equinox.p2.core.ProvisionException; import org.eclipse.equinox.p2.metadata.IArtifactKey; -import org.eclipse.equinox.p2.publisher.*; +import org.eclipse.equinox.p2.publisher.IPublisherInfo; +import org.eclipse.equinox.p2.publisher.Publisher; +import org.eclipse.equinox.p2.publisher.PublisherInfo; import org.eclipse.equinox.p2.query.IQueryResult; import org.eclipse.equinox.p2.query.QueryUtil; import org.eclipse.equinox.p2.repository.artifact.ArtifactKeyQuery; @@ -91,7 +97,6 @@ public void setArtifact(boolean artifact) { } protected boolean compress = false; - protected boolean reusePackedFiles = false; protected boolean append = true; protected boolean publish = true; protected String source = null; @@ -119,7 +124,7 @@ protected void initializeRepositories(PublisherInfo info) throws ProvisionExcept if (artifactLocation != null) { @SuppressWarnings("removal") IArtifactRepository repo = Publisher.createArtifactRepository(getProvisioningAgent(), artifactLocation, - artifactRepoName, compress, reusePackedFiles); + artifactRepoName, compress); if (!append && !isEmpty(repo)) { File repoLocation = URIUtil.toFile(artifactLocation); if (repoLocation != null && source != null) { @@ -174,10 +179,6 @@ public void setCompress(String value) { compress = Boolean.parseBoolean(value); } - public void setReusePackedFiles(String value) { - reusePackedFiles = Boolean.parseBoolean(value); - } - public void setAppend(String value) { append = Boolean.parseBoolean(value); } diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/AbstractPublisherAction.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/AbstractPublisherAction.java index 8e4ca0c9a4..4e337c8642 100644 --- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/AbstractPublisherAction.java +++ b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/AbstractPublisherAction.java @@ -17,25 +17,60 @@ ******************************************************************************/ package org.eclipse.equinox.p2.publisher; -import java.io.*; -import java.util.*; +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; -import org.eclipse.core.runtime.*; +import java.util.Set; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Status; import org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactDescriptor; import org.eclipse.equinox.internal.p2.core.helpers.FileUtils; import org.eclipse.equinox.internal.p2.core.helpers.FileUtils.IPathComputer; import org.eclipse.equinox.internal.p2.core.helpers.LogHelper; -import org.eclipse.equinox.internal.p2.metadata.*; +import org.eclipse.equinox.internal.p2.metadata.IRequiredCapability; +import org.eclipse.equinox.internal.p2.metadata.InstallableUnit; +import org.eclipse.equinox.internal.p2.metadata.RequiredCapability; import org.eclipse.equinox.internal.p2.publisher.Activator; import org.eclipse.equinox.internal.p2.publisher.QuotedTokenizer; import org.eclipse.equinox.p2.core.ProvisionException; -import org.eclipse.equinox.p2.metadata.*; +import org.eclipse.equinox.p2.metadata.IInstallableUnit; +import org.eclipse.equinox.p2.metadata.IProvidedCapability; +import org.eclipse.equinox.p2.metadata.IRequirement; +import org.eclipse.equinox.p2.metadata.ITouchpointData; +import org.eclipse.equinox.p2.metadata.IUpdateDescriptor; +import org.eclipse.equinox.p2.metadata.IVersionedId; +import org.eclipse.equinox.p2.metadata.MetadataFactory; import org.eclipse.equinox.p2.metadata.MetadataFactory.InstallableUnitDescription; +import org.eclipse.equinox.p2.metadata.Version; +import org.eclipse.equinox.p2.metadata.VersionRange; import org.eclipse.equinox.p2.metadata.expression.IMatchExpression; -import org.eclipse.equinox.p2.publisher.actions.*; -import org.eclipse.equinox.p2.query.*; -import org.eclipse.equinox.p2.repository.artifact.*; -import org.eclipse.equinox.p2.repository.artifact.spi.ArtifactDescriptor; +import org.eclipse.equinox.p2.publisher.actions.IAdditionalInstallableUnitAdvice; +import org.eclipse.equinox.p2.publisher.actions.ICapabilityAdvice; +import org.eclipse.equinox.p2.publisher.actions.IFilterAdvice; +import org.eclipse.equinox.p2.publisher.actions.IPropertyAdvice; +import org.eclipse.equinox.p2.publisher.actions.ITouchpointAdvice; +import org.eclipse.equinox.p2.publisher.actions.IUpdateDescriptorAdvice; +import org.eclipse.equinox.p2.query.Collector; +import org.eclipse.equinox.p2.query.IQuery; +import org.eclipse.equinox.p2.query.IQueryResult; +import org.eclipse.equinox.p2.query.QueryUtil; +import org.eclipse.equinox.p2.repository.artifact.IArtifactDescriptor; +import org.eclipse.equinox.p2.repository.artifact.IArtifactRepository; +import org.eclipse.equinox.p2.repository.artifact.IFileArtifactRepository; import org.eclipse.equinox.spi.p2.publisher.PublisherHelper; public abstract class AbstractPublisherAction implements IPublisherAction { @@ -208,24 +243,6 @@ protected InstallableUnitDescription createIUShell(String id, Version version) { return root; } - /** - * @noreference This method is not intended to be referenced by clients. - * @deprecated See bug for details. - */ - @Deprecated(forRemoval = true, since = "1.6.0") - protected IArtifactDescriptor createPack200ArtifactDescriptor(IArtifactKey key, File pathOnDisk, - String installSize) { - ArtifactDescriptor result = (ArtifactDescriptor) PublisherHelper.createArtifactDescriptor(info, key, - pathOnDisk); - // TODO this size calculation is bogus - if (pathOnDisk != null) { - result.setProperty(IArtifactDescriptor.ARTIFACT_SIZE, installSize); - // TODO - this is wrong but I'm testing a work-around for bug 205842 - result.setProperty(IArtifactDescriptor.DOWNLOAD_SIZE, Long.toString(pathOnDisk.length())); - } - return result; - } - protected InstallableUnitDescription createParentIU(Collection children, String id, Version version) { InstallableUnitDescription root = createIUShell(id, version); diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/AbstractPublisherApplication.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/AbstractPublisherApplication.java index 25af85cb77..4bd160ecc4 100644 --- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/AbstractPublisherApplication.java +++ b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/AbstractPublisherApplication.java @@ -19,14 +19,20 @@ import java.net.URISyntaxException; import java.util.ArrayList; import java.util.List; -import org.eclipse.core.runtime.*; + +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.URIUtil; import org.eclipse.equinox.app.IApplication; import org.eclipse.equinox.app.IApplicationContext; import org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository; import org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository; import org.eclipse.equinox.internal.p2.publisher.Activator; import org.eclipse.equinox.internal.p2.publisher.Messages; -import org.eclipse.equinox.p2.core.*; +import org.eclipse.equinox.p2.core.IProvisioningAgent; +import org.eclipse.equinox.p2.core.IProvisioningAgentProvider; +import org.eclipse.equinox.p2.core.ProvisionException; import org.eclipse.equinox.p2.metadata.IArtifactKey; import org.eclipse.equinox.p2.query.IQueryResult; import org.eclipse.equinox.p2.query.QueryUtil; @@ -46,13 +52,10 @@ public abstract class AbstractPublisherApplication implements IApplication { // instead of a 'plugins' directory, so a separate constant is defined and used // here. protected static final String[][] INPLACE_MAPPING_RULES = { - { "(& (classifier=osgi.bundle) (format=packed)", "${repoUrl}/features/${id}_${version}.jar.pack.gz" }, //$NON-NLS-1$//$NON-NLS-2$ { "(& (classifier=osgi.bundle))", "${repoUrl}/plugins/${id}_${version}.jar" }, //$NON-NLS-1$//$NON-NLS-2$ { "(& (classifier=binary))", "${repoUrl}/binary/${id}_${version}" }, //$NON-NLS-1$//$NON-NLS-2$ { "(& (classifier=org.eclipse.update.feature))", "${repoUrl}/features/${id}_${version}.jar" } }; //$NON-NLS-1$//$NON-NLS-2$ - public static final String PUBLISH_PACK_FILES_AS_SIBLINGS = "publishPackFilesAsSiblings"; //$NON-NLS-1$ - protected PublisherInfo info; protected String source; protected URI metadataLocation; @@ -65,7 +68,6 @@ public abstract class AbstractPublisherApplication implements IApplication { protected boolean compress = false; protected boolean inplace = false; protected boolean append = false; - protected boolean reusePackedFiles = false; protected String[] configurations; private IStatus status; @@ -107,7 +109,7 @@ protected void initializeRepositories(PublisherInfo publisherInfo) throws Provis if (artifactLocation != null) { @SuppressWarnings("removal") IArtifactRepository repo = Publisher.createArtifactRepository(agent, artifactLocation, artifactRepoName, - compress, reusePackedFiles); + compress); if (!append && !isEmpty(repo)) { File repoLocation = URIUtil.toFile(artifactLocation); if (repoLocation != null && source != null) { @@ -246,9 +248,6 @@ protected void processFlag(String arg, PublisherInfo publisherInfo) { if (arg.equalsIgnoreCase("-compress")) //$NON-NLS-1$ compress = true; - if (arg.equalsIgnoreCase("-reusePack200Files")) //$NON-NLS-1$ - reusePackedFiles = true; - if (arg.equalsIgnoreCase("-inplace")) //$NON-NLS-1$ inplace = true; } @@ -362,21 +361,6 @@ public void setMetadataLocation(URI location) { this.metadataLocation = location; } - /** - * @noreference This method is not intended to be referenced by clients. - * @deprecated See bug - * for details. - */ - @Deprecated(forRemoval = true, since = "1.6.0") - public boolean reuseExistingPack200Files() { - return reusePackedFiles; - } - - public void setReuseExistingPackedFiles(boolean value) { - reusePackedFiles = value; - } - public void setCompress(boolean value) { compress = value; } diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/Publisher.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/Publisher.java index ebbdde5ead..8f79df8bb9 100644 --- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/Publisher.java +++ b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/Publisher.java @@ -17,13 +17,21 @@ import java.net.URI; import java.util.Collection; -import org.eclipse.core.runtime.*; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.MultiStatus; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.SubMonitor; import org.eclipse.equinox.internal.p2.core.helpers.Tracing; import org.eclipse.equinox.internal.p2.publisher.Activator; import org.eclipse.equinox.p2.core.IProvisioningAgent; import org.eclipse.equinox.p2.core.ProvisionException; import org.eclipse.equinox.p2.metadata.IInstallableUnit; -import org.eclipse.equinox.p2.repository.*; +import org.eclipse.equinox.p2.repository.IRepository; +import org.eclipse.equinox.p2.repository.IRepositoryManager; +import org.eclipse.equinox.p2.repository.IRunnableWithProgress; import org.eclipse.equinox.p2.repository.artifact.IArtifactRepository; import org.eclipse.equinox.p2.repository.artifact.IArtifactRepositoryManager; import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository; @@ -105,60 +113,6 @@ public static IMetadataRepository loadMetadataRepository(IProvisioningAgent agen return result; } - /** - * Returns an artifact repository that corresponds to the given settings. If a - * repository at the given location already exists, it is updated with the - * settings and returned. If no repository is found then a new Simple repository - * is created, configured and returned - * - * @param agent the provisioning agent to use when creating the - * repository - * @param location the URL location of the repository - * @param name the name of the repository - * @param compress whether or not to compress the repository index - * @param reusePackedFiles whether or not to include discovered Pack200 files in - * the repository - * @return the discovered or created repository - * @throws ProvisionException - * - * @deprecated See bug - * for details. Use - * {@link #createArtifactRepository(IprovisioningAgent, URI, String, boolean)} - * instead. - */ - @Deprecated(forRemoval = true, since = "2.3.0") - public static IArtifactRepository createArtifactRepository(IProvisioningAgent agent, URI location, String name, - boolean compress, boolean reusePackedFiles) throws ProvisionException { - try { - IArtifactRepository result = loadArtifactRepository(agent, location, true, true); - if (result != null && result.isModifiable()) { - result.setProperty(IRepository.PROP_COMPRESSED, compress ? "true" : "false"); //$NON-NLS-1$//$NON-NLS-2$ - if (reusePackedFiles) - result.setProperty(PUBLISH_PACK_FILES_AS_SIBLINGS, "true"); //$NON-NLS-1$ - return result; - } - } catch (ProvisionException e) { - // fall through and create a new repository - } - - IArtifactRepositoryManager manager = getService(agent, IArtifactRepositoryManager.SERVICE_NAME); - String repositoryName = name != null ? name : location + " - artifacts"; //$NON-NLS-1$ - IArtifactRepository result = manager.createRepository(location, repositoryName, - IArtifactRepositoryManager.TYPE_SIMPLE_REPOSITORY, null); - if (result != null) { - manager.removeRepository(result.getLocation()); - if (reusePackedFiles) - result.setProperty(PUBLISH_PACK_FILES_AS_SIBLINGS, "true"); //$NON-NLS-1$ - result.setProperty(IRepository.PROP_COMPRESSED, compress ? "true" : "false"); //$NON-NLS-1$//$NON-NLS-2$ - return result; - } - // I don't think we can really get here, but just in case, we better throw a - // provisioning exception - String msg = org.eclipse.equinox.internal.p2.artifact.repository.Messages.repoMan_internalError; - throw new ProvisionException( - new Status(IStatus.ERROR, Activator.ID, ProvisionException.INTERNAL_ERROR, msg, null)); - } /** * Returns an artifact repository that corresponds to the given settings. If a diff --git a/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/mirroring/Mirroring.java b/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/mirroring/Mirroring.java index 2a830635e4..3a4801fac4 100644 --- a/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/mirroring/Mirroring.java +++ b/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/mirroring/Mirroring.java @@ -15,8 +15,18 @@ *******************************************************************************/ package org.eclipse.equinox.p2.internal.repository.mirroring; -import java.util.*; -import org.eclipse.core.runtime.*; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.MultiStatus; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Status; import org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository; import org.eclipse.equinox.internal.p2.artifact.repository.RawMirrorRequest; import org.eclipse.equinox.internal.p2.repository.Transport; @@ -26,7 +36,9 @@ import org.eclipse.equinox.p2.metadata.IArtifactKey; import org.eclipse.equinox.p2.query.IQuery; import org.eclipse.equinox.p2.query.IQueryResult; -import org.eclipse.equinox.p2.repository.artifact.*; +import org.eclipse.equinox.p2.repository.artifact.ArtifactKeyQuery; +import org.eclipse.equinox.p2.repository.artifact.IArtifactDescriptor; +import org.eclipse.equinox.p2.repository.artifact.IArtifactRepository; import org.eclipse.equinox.p2.repository.artifact.spi.ArtifactDescriptor; import org.eclipse.equinox.p2.repository.tools.comparator.ArtifactComparatorFactory; import org.eclipse.equinox.p2.repository.tools.comparator.IArtifactComparator; @@ -49,7 +61,6 @@ public class Mirroring { private List keysToMirror; private IArtifactMirrorLog comparatorLog; private Transport transport; - private boolean includePacked = true; private boolean mirrorProperties = false; private IArtifactComparator getComparator() { @@ -149,12 +160,7 @@ public MultiStatus run(boolean failOnError, boolean verbose) { return multiStatus; } - @SuppressWarnings("removal") private IStatus mirror(IArtifactDescriptor sourceDescriptor, boolean verbose) { - if (!includePacked - && IArtifactDescriptor.FORMAT_PACKED.equals(sourceDescriptor.getProperty(IArtifactDescriptor.FORMAT))) - return Status.OK_STATUS; - IArtifactDescriptor targetDescriptor = raw ? sourceDescriptor : new ArtifactDescriptor(sourceDescriptor); IArtifactDescriptor baselineDescriptor = getBaselineDescriptor(sourceDescriptor); @@ -367,7 +373,4 @@ public void setTransport(Transport transport) { this.transport = transport; } - public void setIncludePacked(boolean includePacked) { - this.includePacked = includePacked; - } } diff --git a/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/MirrorApplication.java b/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/MirrorApplication.java index 72a4ab54ac..738ebe1a9c 100644 --- a/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/MirrorApplication.java +++ b/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/MirrorApplication.java @@ -16,8 +16,19 @@ import java.io.File; import java.net.URI; import java.net.URISyntaxException; -import java.util.*; -import org.eclipse.core.runtime.*; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.StringTokenizer; + +import org.eclipse.core.runtime.IConfigurationElement; +import org.eclipse.core.runtime.IExecutableExtension; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.URIUtil; import org.eclipse.equinox.app.IApplication; import org.eclipse.equinox.app.IApplicationContext; import org.eclipse.equinox.internal.p2.core.helpers.LogHelper; @@ -27,13 +38,24 @@ import org.eclipse.equinox.internal.p2.repository.helpers.RepositoryHelper; import org.eclipse.equinox.p2.core.IProvisioningAgent; import org.eclipse.equinox.p2.core.ProvisionException; -import org.eclipse.equinox.p2.engine.*; +import org.eclipse.equinox.p2.engine.IProfile; +import org.eclipse.equinox.p2.engine.IProfileRegistry; +import org.eclipse.equinox.p2.engine.IProvisioningPlan; import org.eclipse.equinox.p2.internal.repository.comparator.ArtifactChecksumComparator; -import org.eclipse.equinox.p2.internal.repository.mirroring.*; -import org.eclipse.equinox.p2.metadata.*; +import org.eclipse.equinox.p2.internal.repository.mirroring.FileMirrorLog; +import org.eclipse.equinox.p2.internal.repository.mirroring.IArtifactMirrorLog; +import org.eclipse.equinox.p2.internal.repository.mirroring.Mirroring; +import org.eclipse.equinox.p2.internal.repository.mirroring.XMLMirrorLog; +import org.eclipse.equinox.p2.metadata.IArtifactKey; +import org.eclipse.equinox.p2.metadata.IInstallableUnit; +import org.eclipse.equinox.p2.metadata.VersionRange; import org.eclipse.equinox.p2.planner.IPlanner; import org.eclipse.equinox.p2.planner.IProfileChangeRequest; -import org.eclipse.equinox.p2.query.*; +import org.eclipse.equinox.p2.query.CompoundQueryable; +import org.eclipse.equinox.p2.query.IQuery; +import org.eclipse.equinox.p2.query.IQueryResult; +import org.eclipse.equinox.p2.query.IQueryable; +import org.eclipse.equinox.p2.query.QueryUtil; import org.eclipse.equinox.p2.repository.artifact.IArtifactDescriptor; import org.eclipse.equinox.p2.repository.artifact.IArtifactRepository; import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository; @@ -57,7 +79,6 @@ public class MirrorApplication extends AbstractApplication implements IApplicati private boolean mirrorReferences = true; private String metadataOrArtifacts = null; private String[] rootIUs = null; - private boolean includePacked = true; private boolean mirrorProperties = false; private File mirrorLogFile; // file to log mirror output to (optional) @@ -255,7 +276,6 @@ protected Mirroring getMirroring(IQueryable slice, IProgressMo mirror.setValidate(validate); mirror.setCompareExclusions(compareExclusions); mirror.setTransport((Transport) agent.getService(Transport.SERVICE_NAME)); - mirror.setIncludePacked(includePacked); mirror.setMirrorProperties(mirrorProperties); // If IUs have been specified then only they should be mirrored, otherwise @@ -497,10 +517,6 @@ public void setComparatorExclusions(IQuery exclusions) { compareExclusions = exclusions; } - public void setIncludePacked(boolean includePacked) { - this.includePacked = includePacked; - } - public void setMirrorProperties(boolean mirrorProperties) { this.mirrorProperties = mirrorProperties; } diff --git a/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/RecreateRepositoryApplication.java b/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/RecreateRepositoryApplication.java index dc7183b0ef..994a7eb9fc 100644 --- a/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/RecreateRepositoryApplication.java +++ b/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/RecreateRepositoryApplication.java @@ -18,8 +18,17 @@ import java.io.File; import java.net.URI; -import java.util.*; -import org.eclipse.core.runtime.*; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.URIUtil; import org.eclipse.equinox.internal.p2.artifact.processors.checksum.ChecksumUtilities; import org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository; import org.eclipse.equinox.internal.p2.core.helpers.LogHelper; @@ -29,12 +38,15 @@ import org.eclipse.equinox.p2.query.IQueryResult; import org.eclipse.equinox.p2.repository.IRepository; import org.eclipse.equinox.p2.repository.IRepositoryManager; -import org.eclipse.equinox.p2.repository.artifact.*; +import org.eclipse.equinox.p2.repository.artifact.ArtifactKeyQuery; +import org.eclipse.equinox.p2.repository.artifact.IArtifactDescriptor; +import org.eclipse.equinox.p2.repository.artifact.IArtifactRepository; +import org.eclipse.equinox.p2.repository.artifact.IArtifactRepositoryManager; +import org.eclipse.equinox.p2.repository.artifact.IFileArtifactRepository; import org.eclipse.equinox.p2.repository.artifact.spi.ArtifactDescriptor; import org.eclipse.osgi.util.NLS; public class RecreateRepositoryApplication extends AbstractApplication { - static final private String PUBLISH_PACK_FILES_AS_SIBLINGS = "publishPackFilesAsSiblings"; //$NON-NLS-1$ private URI repoLocation; private String repoName = null; boolean removeArtifactRepo = true; @@ -109,11 +121,8 @@ private void removeRepository(IArtifactRepository repository, IProgressMonitor m private void recreateRepository(IProgressMonitor monitor) throws ProvisionException { IArtifactRepositoryManager manager = getArtifactRepositoryManager(); - // add pack200 mappings, the existing repoProperties is not modifiable - Map newProperties = new HashMap<>(repoProperties); - newProperties.put(PUBLISH_PACK_FILES_AS_SIBLINGS, "true"); //$NON-NLS-1$ IArtifactRepository repository = manager.createRepository(repoLocation, repoName, - IArtifactRepositoryManager.TYPE_SIMPLE_REPOSITORY, newProperties); + IArtifactRepositoryManager.TYPE_SIMPLE_REPOSITORY, repoProperties); if (!(repository instanceof IFileArtifactRepository)) throw new ProvisionException(NLS.bind(Messages.exception_notLocalFileRepo, repository.getLocation())); diff --git a/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/Repo2Runnable.java b/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/Repo2Runnable.java index 397cb4b05f..0fd0ce5bcb 100644 --- a/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/Repo2Runnable.java +++ b/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/Repo2Runnable.java @@ -1,13 +1,13 @@ /******************************************************************************* * Copyright (c) 2009, 2018 IBM Corporation and others. * - * This program and the accompanying materials + * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 - * + * * Contributors: * IBM Corporation - initial API and implementation * Sonatype, Inc. - ongoing development @@ -15,34 +15,64 @@ *******************************************************************************/ package org.eclipse.equinox.p2.internal.repository.tools; -import java.io.*; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.OutputStream; import java.net.URI; import java.net.URISyntaxException; -import java.util.*; -import org.eclipse.core.runtime.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.SubMonitor; +import org.eclipse.core.runtime.URIUtil; import org.eclipse.equinox.app.IApplication; import org.eclipse.equinox.app.IApplicationContext; import org.eclipse.equinox.frameworkadmin.BundleInfo; import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper; -import org.eclipse.equinox.internal.p2.engine.*; +import org.eclipse.equinox.internal.p2.engine.DownloadManager; +import org.eclipse.equinox.internal.p2.engine.InstallableUnitOperand; +import org.eclipse.equinox.internal.p2.engine.InstallableUnitPhase; +import org.eclipse.equinox.internal.p2.engine.Phase; +import org.eclipse.equinox.internal.p2.engine.PhaseSet; +import org.eclipse.equinox.internal.p2.engine.ProfileWriter; +import org.eclipse.equinox.internal.p2.engine.ProfileXMLConstants; import org.eclipse.equinox.internal.p2.engine.phases.Collect; import org.eclipse.equinox.p2.core.IProvisioningAgent; import org.eclipse.equinox.p2.core.ProvisionException; -import org.eclipse.equinox.p2.engine.*; +import org.eclipse.equinox.p2.engine.IEngine; +import org.eclipse.equinox.p2.engine.IProfile; +import org.eclipse.equinox.p2.engine.IProfileRegistry; +import org.eclipse.equinox.p2.engine.IProvisioningPlan; +import org.eclipse.equinox.p2.engine.ProvisioningContext; import org.eclipse.equinox.p2.engine.spi.ProvisioningAction; -import org.eclipse.equinox.p2.metadata.*; +import org.eclipse.equinox.p2.metadata.IArtifactKey; +import org.eclipse.equinox.p2.metadata.IInstallableUnit; +import org.eclipse.equinox.p2.metadata.IProvidedCapability; import org.eclipse.equinox.p2.query.IQueryResult; import org.eclipse.equinox.p2.query.QueryUtil; -import org.eclipse.equinox.p2.repository.artifact.*; +import org.eclipse.equinox.p2.repository.artifact.IArtifactRepository; +import org.eclipse.equinox.p2.repository.artifact.IArtifactRepositoryManager; +import org.eclipse.equinox.p2.repository.artifact.IArtifactRequest; import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository; import org.eclipse.equinox.simpleconfigurator.manipulator.SimpleConfiguratorManipulator; /** - * The transformer takes an existing p2 repository (local or remote), iterates over - * its list of IUs, and fetches all of the corresponding artifacts to a user-specified location. - * Once fetched, the artifacts will be in "runnable" form... that is directory-based bundles will be - * extracted into folders and packed JAR files will be un-packed. - * + * The transformer takes an existing p2 repository (local or remote), iterates + * over its list of IUs, and fetches all of the corresponding artifacts to a + * user-specified location. Once fetched, the artifacts will be in "runnable" + * form... that is directory-based bundles will be extracted into folders. + * * @since 1.0 */ public class Repo2Runnable extends AbstractApplication implements IApplication { @@ -121,7 +151,7 @@ protected IStatus completePhase(IProgressMonitor monitor, IProfile profile, Map< } } - // the list of IUs that we actually transformed... could have come from the repo + // the list of IUs that we actually transformed... could have come from the repo // or have been user-specified. private Collection processedIUs = new ArrayList<>(); @@ -260,7 +290,7 @@ private void collectIUs(IProgressMonitor monitor) throws ProvisionException { /* * If there is a destination metadata repository set, then add all our transformed - * IUs to it. + * IUs to it. */ private void publishMetadata(IProgressMonitor monitor) { // publishing the metadata is optional diff --git a/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/MirrorTask.java b/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/MirrorTask.java index 1169e61e44..b0396d66ab 100644 --- a/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/MirrorTask.java +++ b/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/MirrorTask.java @@ -16,6 +16,7 @@ import java.io.File; import java.util.ArrayList; import java.util.List; + import org.apache.tools.ant.BuildException; import org.eclipse.core.runtime.IStatus; import org.eclipse.equinox.p2.core.ProvisionException; @@ -138,10 +139,6 @@ public void setValidate(boolean value) { ((MirrorApplication) application).setValidate(value); } - public void setIncludePacked(boolean value) { - ((MirrorApplication) application).setIncludePacked(value); - } - public void setReferences(boolean value) { ((MirrorApplication) application).setReferences(value); } diff --git a/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/ProcessRepoTask.java b/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/ProcessRepoTask.java index 6a41e1dcc6..686f95a9ea 100644 --- a/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/ProcessRepoTask.java +++ b/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/ProcessRepoTask.java @@ -17,7 +17,9 @@ import java.io.File; import java.net.URI; import java.net.URISyntaxException; -import org.apache.tools.ant.*; + +import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.Task; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.URIUtil; import org.eclipse.equinox.internal.p2.jarprocessor.ant.JarProcessorTask; @@ -58,33 +60,28 @@ public void setUnsign(String unsign) { private URI repository = null; - private boolean pack = false; - private boolean repack = false; private SigningOptions signing = null; private JarProcessorTask jarProcessor = null; - @SuppressWarnings("removal") @Override public void execute() throws BuildException { File file = URIUtil.toFile(repository); if (file == null || !file.exists()) { throw new BuildException(NLS.bind(Messages.ProcessRepo_must_be_local, repository.toString())); } - if (pack | repack | signing != null) { - if (jarProcessor == null) + if (signing != null) { + if (jarProcessor == null) { jarProcessor = new JarProcessorTask(); - if (signing != null) { - jarProcessor.setAlias(signing.alias); - jarProcessor.setKeypass(signing.keypass); - jarProcessor.setKeystore(signing.keystore); - jarProcessor.setStorepass(signing.storepass); - jarProcessor.setUnsign(signing.unsign); - - if (signing.alias != null && signing.alias.length() > 0 && !signing.alias.startsWith("${")) //$NON-NLS-1$ - jarProcessor.setSign(true); } - jarProcessor.setPack(pack); - jarProcessor.setNormalize(repack); + + jarProcessor.setAlias(signing.alias); + jarProcessor.setKeypass(signing.keypass); + jarProcessor.setKeystore(signing.keystore); + jarProcessor.setStorepass(signing.storepass); + jarProcessor.setUnsign(signing.unsign); + + if (signing.alias != null && signing.alias.length() > 0 && !signing.alias.startsWith("${")) //$NON-NLS-1$ + jarProcessor.setSign(true); jarProcessor.setInputFolder(new File(repository)); jarProcessor.setProject(getProject()); jarProcessor.execute(); @@ -112,18 +109,6 @@ public void setRepositoryPath(String repository) { } } - @Deprecated(forRemoval = true, since = "2.3.0") - public void setPack(boolean pack) { - log("Support for pack200 is scheduled for removal after June 2023.", Project.MSG_WARN); //$NON-NLS-1$ - this.pack = pack; - } - - @Deprecated(forRemoval = true, since = "2.3.0") - public void setNormalize(boolean normalize) { - log("Support for pack200 is scheduled for removal after June 2023.", Project.MSG_WARN); //$NON-NLS-1$ - this.repack = normalize; - } - public void addConfiguredSign(SigningOptions options) { this.signing = options; } diff --git a/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/Repo2RunnableTask.java b/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/Repo2RunnableTask.java index a448a5ff4e..c6b41e1ebf 100644 --- a/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/Repo2RunnableTask.java +++ b/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/Repo2RunnableTask.java @@ -1,13 +1,13 @@ /******************************************************************************* * Copyright (c) 2009, 2017 IBM Corporation and others. * - * This program and the accompanying materials + * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 - * + * * Contributors: * IBM Corporation - initial API and implementation * Red Hat, Inc. - fragment creation @@ -15,6 +15,7 @@ package org.eclipse.equinox.p2.internal.repository.tools.tasks; import java.util.List; + import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; import org.eclipse.core.runtime.IStatus; @@ -25,12 +26,12 @@ import org.eclipse.osgi.util.NLS; /** - * Ant task which calls the "repo to runnable" application. This application takes an - * existing p2 repository (local or remote), iterates over its list of IUs, and fetches - * all of the corresponding artifacts to a user-specified location. Once fetched, the - * artifacts will be in "runnable" form... that is directory-based bundles will be - * extracted into folders and packed JAR files will be un-packed. - * + * Ant task which calls the "repo to runnable" application. This application + * takes an existing p2 repository (local or remote), iterates over its list of + * IUs, and fetches all of the corresponding artifacts to a user-specified + * location. Once fetched, the artifacts will be in "runnable" form... that is + * directory-based bundles will be extracted into folders. + * * @since 1.0 */ public class Repo2RunnableTask extends AbstractRepositoryTask { diff --git a/bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/p2/repository/artifact/IArtifactDescriptor.java b/bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/p2/repository/artifact/IArtifactDescriptor.java index 2403402ac9..89c4ea7842 100644 --- a/bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/p2/repository/artifact/IArtifactDescriptor.java +++ b/bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/p2/repository/artifact/IArtifactDescriptor.java @@ -15,6 +15,7 @@ package org.eclipse.equinox.p2.repository.artifact; import java.util.Map; + import org.eclipse.equinox.p2.metadata.IArtifactKey; import org.eclipse.equinox.p2.repository.artifact.spi.ArtifactDescriptor; @@ -89,17 +90,22 @@ public interface IArtifactDescriptor { String FORMAT = "format"; //$NON-NLS-1$ /** - * A property value for the {@link #FORMAT} artifact descriptor property (value "packed") - * indicating the storage format is using pack200 compression. + * A property value for the {@link #FORMAT} artifact descriptor property (value + * "packed") indicating the storage format is using pack200 compression. + * * @see #FORMAT * @noreference This field is not intended to be referenced by clients. - * - * @deprecated See bug for details. + * + * @deprecated See bug + * for details. */ - @Deprecated(forRemoval = true, since = "2.5.0") String FORMAT_PACKED = "packed"; //$NON-NLS-1$ + @Deprecated(forRemoval = true, since = "2.5.0") + String FORMAT_PACKED = "packed"; //$NON-NLS-1$ /** * Return the key for the artifact described by this descriptor. + * * @return the key associated with this descriptor */ IArtifactKey getArtifactKey(); diff --git a/bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF index af5b04a9a9..81acd4c83d 100644 --- a/bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF @@ -65,7 +65,6 @@ Import-Package: org.eclipse.ant.core, org.eclipse.ecf.filetransfer, org.eclipse.equinox.internal.p2.artifact.processors.checksum, org.eclipse.equinox.internal.p2.artifact.processors.md5, - org.eclipse.equinox.internal.p2.artifact.processors.pack200, org.eclipse.equinox.internal.p2.artifact.repository, org.eclipse.equinox.internal.p2.artifact.repository.simple, org.eclipse.equinox.internal.p2.core, diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ant/MirrorTaskTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ant/MirrorTaskTest.java index 6f6b4b43ab..5db1f5cbaa 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ant/MirrorTaskTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ant/MirrorTaskTest.java @@ -28,6 +28,7 @@ import java.util.Properties; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; + import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.URIUtil; @@ -57,7 +58,6 @@ public class MirrorTaskTest extends AbstractAntProvisioningTest { private static final String DOWNLOAD_CHECKSUM = IArtifactDescriptor.DOWNLOAD_CHECKSUM + ".sha-256"; private static final String MIRROR_TASK = "p2.mirror"; - private static final String MIRROR_ARTIFACTS_TASK = "p2.artifact.mirror"; private URI destinationRepo; private URI artifactRepo, sliceArtifactRepo, sliceRepo, sourceRepo2, zipRepo; @@ -66,7 +66,7 @@ public void setUp() throws Exception { super.setUp(); // Get a random location to create a repository destinationRepo = (new File(getTestFolder(getName()), "destinationRepo")).toURI(); - artifactRepo = getTestData("error loading data", "testData/mirror/mirrorPackedRepo").toURI(); + artifactRepo = getTestData("error loading data", "testData/mirror/mirrorRepo").toURI(); sourceRepo2 = getTestData("error loading data", "testData/mirror/mirrorSourceRepo2").toURI(); sliceRepo = getTestData("error loading data", "testData/permissiveSlicer").toURI(); sliceArtifactRepo = getTestData("error loading data", "testData/testRepos/updateSite").toURI(); @@ -709,19 +709,6 @@ public void testSlicingInvalid() { } } - public void testMirrorPackedRepo() { - AntTaskElement mirror = new AntTaskElement(MIRROR_ARTIFACTS_TASK); - mirror.addAttribute("destination", URIUtil.toUnencodedString(destinationRepo)); - mirror.addAttribute("source", URIUtil.toUnencodedString(artifactRepo)); - addTask(mirror); - runAntTask(); - - File repo = new File(destinationRepo); - - assertTrue(new File(repo, "plugins/org.eclipse.core.filebuffers_3.4.0.v20080603-2000.jar.pack.gz").exists()); - assertTrue(new File(repo, "plugins/org.eclipse.osgi.services.source_3.1.200.v20071203.jar.pack.gz").exists()); - } - /* * Modified from org.eclipse.equinox.p2.tests.mirror.ArtifactMirrorApplicationTest */ diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/gc/GCCleanTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/gc/GCCleanTest.java index e77597a59a..b89a38ed73 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/gc/GCCleanTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/gc/GCCleanTest.java @@ -16,6 +16,7 @@ import java.io.File; import java.net.URI; import java.util.HashMap; + import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.equinox.internal.p2.garbagecollector.CoreGarbageCollector; diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/GeneratorTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/GeneratorTests.java index e09e8bc4dd..09d64caed9 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/GeneratorTests.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/GeneratorTests.java @@ -16,6 +16,7 @@ import java.io.File; import java.io.PrintStream; import java.util.Map; + import org.eclipse.core.runtime.FileLocator; import org.eclipse.equinox.app.IApplicationContext; import org.eclipse.equinox.internal.p2.publisher.Messages; @@ -143,7 +144,11 @@ public void testBasicUpdateSite() throws Exception { new File(rootFolder, "content.xml").delete(); new File(rootFolder, "artifacts.xml").delete(); - String[] arguments = {"-updateSite", rootFolder.getAbsolutePath(), "-site", new File(rootFolder, "site.xml").getAbsolutePath(), "-metadataRepository", URIUtil.toUnencodedString(rootFolder.toURI()), "-artifactRepository", URIUtil.toUnencodedString(rootFolder.toURI()), "-metadataRepositoryName", "Basic Metadata Test Site", "-artifactRepositoryName", "Basic Artifact Test Site", "-compress", "-reusePack200Files", "-noDefaultIUs"}; + String[] arguments = { "-updateSite", rootFolder.getAbsolutePath(), "-site", + new File(rootFolder, "site.xml").getAbsolutePath(), "-metadataRepository", + URIUtil.toUnencodedString(rootFolder.toURI()), "-artifactRepository", + URIUtil.toUnencodedString(rootFolder.toURI()), "-metadataRepositoryName", "Basic Metadata Test Site", + "-artifactRepositoryName", "Basic Artifact Test Site", "-compress", "-noDefaultIUs" }; TestGeneratorApplication app = new TestGeneratorApplication(); app.go(arguments); diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/ArtifactMirrorApplicationTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/ArtifactMirrorApplicationTest.java index 25d76981f9..0529e84087 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/ArtifactMirrorApplicationTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/ArtifactMirrorApplicationTest.java @@ -25,6 +25,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Map; + import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; @@ -826,7 +827,7 @@ public void testExistingArtifactRepoWithNewName() { */ public void testArtifactFileCopying() throws MalformedURLException, Exception { //Setup: load the repository containing packed data - File packedRepoLocation = getTestData("26.0", "/testData/mirror/mirrorPackedRepo"); + File packedRepoLocation = getTestData("26.0", "/testData/mirror/mirrorRepo"); basicRunMirrorApplication("26.1", packedRepoLocation.toURL(), destRepoLocation.toURL(), false); diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/NewMirrorApplicationArtifactTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/NewMirrorApplicationArtifactTest.java index 16ebb46e24..aa1ccf1bd8 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/NewMirrorApplicationArtifactTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/NewMirrorApplicationArtifactTest.java @@ -26,6 +26,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Map; + import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; @@ -854,7 +855,7 @@ public void testExistingArtifactRepoWithNewName() { @Test public void testArtifactFileCopying() throws Exception { //Setup: load the repository containing packed data - File packedRepoLocation = getTestData("26.0", "/testData/mirror/mirrorPackedRepo"); + File packedRepoLocation = getTestData("26.0", "/testData/mirror/mirrorSourceRepo2"); basicRunMirrorApplication("26.1", packedRepoLocation.toURI(), destRepoLocation.toURI(), false, false); diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/mirror/mirrorRepo/artifacts.xml b/bundles/org.eclipse.equinox.p2.tests/testData/mirror/mirrorRepo/artifacts.xml new file mode 100644 index 0000000000..0e9f2e522b --- /dev/null +++ b/bundles/org.eclipse.equinox.p2.tests/testData/mirror/mirrorRepo/artifacts.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/mirror/mirrorRepo/plugins/org.eclipse.core.filebuffers_3.4.0.v20080603-2000.jar b/bundles/org.eclipse.equinox.p2.tests/testData/mirror/mirrorRepo/plugins/org.eclipse.core.filebuffers_3.4.0.v20080603-2000.jar new file mode 100644 index 0000000000000000000000000000000000000000..93b7ff38431e25d90c37b0487d0db08e15cf51fa GIT binary patch literal 112005 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 UcMuTjz)u$m1Vm;S5W++JA2)HbdH?_b literal 0 HcmV?d00001 diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/mirror/mirrorRepo/plugins/org.eclipse.osgi.services.source_3.1.200.v20071203.jar b/bundles/org.eclipse.equinox.p2.tests/testData/mirror/mirrorRepo/plugins/org.eclipse.osgi.services.source_3.1.200.v20071203.jar new file mode 100644 index 0000000000000000000000000000000000000000..c73882057780b3d5b152263e840a335e8c8880d7 GIT binary patch literal 147113 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 - * for details. - */ - @Deprecated(forRemoval = true, since = "1.2.0") - public boolean isPack200Supported() { - return false; - } - /** * Sets the site description. * @@ -413,18 +407,6 @@ public void setMirrorsURIString(String mirrorsURI) { this.mirrorsURIString = mirrorsURI; } - /** - * NO-OP as pack200 is not supported in Java 14+. - * - * @see https://github.com/eclipse-equinox/p2/issues/40 - * @param value - */ - @Deprecated(forRemoval = true, since = "1.2.0") - public void setSupportsPack200(boolean value) { - // NO-OP - } - /** * Sets the site type. Throws a runtime exception if this object is marked * read-only.