From 7dc7b950262b154ab24c30ef810268a0bce0092a Mon Sep 17 00:00:00 2001 From: Troy Dawson Date: Thu, 14 Apr 2022 13:17:36 -0700 Subject: [PATCH] tycho package is retired on c9s for CS-935 --- .gitignore | 18 - ...ix-the-Tycho-build-to-work-on-Fedora.patch | 53 - ...tom-resolver-for-Tycho-in-local-mode.patch | 692 --------- ...ays-delegate-artifact-resolution-to-.patch | 687 --------- 0004-Fix-uncaught-exception.patch | 31 - ...roblems-when-bootstrapping-with-extr.patch | 88 -- ...resolver-for-tycho-eclipserun-plugin.patch | 51 - ...date-API-change-in-surefire-3.0.0-M4.patch | 86 -- EmptyMojo.java | 19 - dead.package | 1 + p2-install.sh | 20 - sources | 3 - tycho-bootstrap.sh | 113 -- tycho-debundle.sh | 25 - tycho-scripts.sh | 181 --- tycho.spec | 1271 ----------------- 16 files changed, 1 insertion(+), 3338 deletions(-) delete mode 100644 .gitignore delete mode 100644 0001-Fix-the-Tycho-build-to-work-on-Fedora.patch delete mode 100644 0002-Implement-a-custom-resolver-for-Tycho-in-local-mode.patch delete mode 100644 0003-Tycho-should-always-delegate-artifact-resolution-to-.patch delete mode 100644 0004-Fix-uncaught-exception.patch delete mode 100644 0005-Fix-dependency-problems-when-bootstrapping-with-extr.patch delete mode 100644 0006-Use-custom-resolver-for-tycho-eclipserun-plugin.patch delete mode 100644 0007-Accomodate-API-change-in-surefire-3.0.0-M4.patch delete mode 100644 EmptyMojo.java create mode 100644 dead.package delete mode 100755 p2-install.sh delete mode 100644 sources delete mode 100755 tycho-bootstrap.sh delete mode 100755 tycho-debundle.sh delete mode 100755 tycho-scripts.sh delete mode 100644 tycho.spec diff --git a/.gitignore b/.gitignore deleted file mode 100644 index d13fcf2..0000000 --- a/.gitignore +++ /dev/null @@ -1,18 +0,0 @@ -/maven-repo.tar.bz2 -/org.eclipse.tycho-* -/tycho-*.xz -/tycho-*.bz2 -/tycho-*.gz -/tycho-*/ -maven-repo.tar.xz -*.src.rpm -/noarch -/.project -/fedoraproject-p2-*.tar.xz -/fedoraproject-p2-*.tar.gz -/eclipse-bootstrap-neon.tar.xz -/eclipse-bootstrap-oxygen.tar.xz -/eclipse-bootstrap-photon.tar.xz -/eclipse-bootstrap-2019-12.tar.xz -/eclipse-bootstrap-2020-09.tar.xz -/eclipse-bootstrap-2020-12.tar.xz diff --git a/0001-Fix-the-Tycho-build-to-work-on-Fedora.patch b/0001-Fix-the-Tycho-build-to-work-on-Fedora.patch deleted file mode 100644 index e10577f..0000000 --- a/0001-Fix-the-Tycho-build-to-work-on-Fedora.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 8c2fc50f696b1b17e869e0bed6fd042174d99f91 Mon Sep 17 00:00:00 2001 -From: Roland Grunberg -Date: Tue, 12 Jun 2012 09:56:38 -0400 -Subject: [PATCH 1/7] Fix the Tycho build to work on Fedora. - -Minor fixes of limited scope needed to have Tycho building on Fedora. - -Change-Id: Ic8c0514c1fa10ee53580d2654ac6a363ccd66814 ---- - .../core/maven/TychoMavenLifecycleParticipant.java | 4 +++- - .../tycho/test/AbstractTychoIntegrationTest.java | 11 +++++------ - 2 files changed, 8 insertions(+), 7 deletions(-) - -diff --git a/tycho-core/src/main/java/org/eclipse/tycho/core/maven/TychoMavenLifecycleParticipant.java b/tycho-core/src/main/java/org/eclipse/tycho/core/maven/TychoMavenLifecycleParticipant.java -index f19a8a9..4bbb59b 100644 ---- a/tycho-core/src/main/java/org/eclipse/tycho/core/maven/TychoMavenLifecycleParticipant.java -+++ b/tycho-core/src/main/java/org/eclipse/tycho/core/maven/TychoMavenLifecycleParticipant.java -@@ -108,7 +108,9 @@ public class TychoMavenLifecycleParticipant extends AbstractMavenLifecyclePartic - } - - private void validate(List projects) throws MavenExecutionException { -- validateConsistentTychoVersion(projects); -+ if (System.getProperty("tycho.enableVersionCheck") != null) { -+ validateConsistentTychoVersion(projects); -+ } - validateUniqueBaseDirs(projects); - } - -diff --git a/tycho-testing-harness/src/main/java/org/eclipse/tycho/test/AbstractTychoIntegrationTest.java b/tycho-testing-harness/src/main/java/org/eclipse/tycho/test/AbstractTychoIntegrationTest.java -index 96e42e5..d6c7678 100644 ---- a/tycho-testing-harness/src/main/java/org/eclipse/tycho/test/AbstractTychoIntegrationTest.java -+++ b/tycho-testing-harness/src/main/java/org/eclipse/tycho/test/AbstractTychoIntegrationTest.java -@@ -115,12 +115,11 @@ public abstract class AbstractTychoIntegrationTest { - verifier.getCliOptions().add(customOptions); - } - -- if (System.getProperty(SYSPROP_STATELOCATION) != null) { -- verifier.setForkJvm(false); -- String m2eresolver = System.getProperty("tychodev-maven.ext.class.path"); // XXX -- if (m2eresolver != null) { -- verifier.addCliOption("-Dmaven.ext.class.path=" + m2eresolver); -- } -+ String m2eState = System.getProperty("m2eclipse.workspace.state"); -+ String m2eResolver = System.getProperty("m2eclipse.workspace.resolver"); -+ -+ if (m2eState != null && m2eResolver != null) { -+ verifier.getVerifierProperties().put("m2eclipse.workspace.state", m2eState); - } - - return verifier; --- -2.28.0 - diff --git a/0002-Implement-a-custom-resolver-for-Tycho-in-local-mode.patch b/0002-Implement-a-custom-resolver-for-Tycho-in-local-mode.patch deleted file mode 100644 index c167510..0000000 --- a/0002-Implement-a-custom-resolver-for-Tycho-in-local-mode.patch +++ /dev/null @@ -1,692 +0,0 @@ -From 644f108f5b6453d88cd39771b944598de0ae60d1 Mon Sep 17 00:00:00 2001 -From: Roland Grunberg -Date: Tue, 12 Jun 2012 10:38:51 -0400 -Subject: [PATCH 2/7] Implement a custom resolver for Tycho in local mode. - -When running in local mode, dependencies should be resolved by looking -on the local system. Remote repositories should be ignored unless -offline mode is disabled. - -Use fedoraproject-p2 to resolve bundles from their system location. - -Relax constraints for bundles used in Tycho's Equinox runtime. - -Since Fedora 17, we need an Execution Environment of at least JavaSE-1.6 -for Eclipse bundles. Eclipse Juno platform bundles depend on -javax.annotation. In Fedora this is provided by geronimo-annotation, but -has a dependency on javax.lang.model (since 1.6). - -Use the defined target environments in local mode when the property -tycho.local.keepTarget is set. - -In situations where Tycho must resolve maven artifacts, upstream's -implementation only looks in the reactor cache. In Fedora, maven -artifacts may be located on the system using repository layouts -understood by XMvn. Therefore, when an artifact is not found in the -reactor cache, resolution should be attempted using the XMvn Resolver. - -Upstream/Fedora Tycho differ in the kind of OSGi Runtime used -(org.eclipse.tycho:tycho-bundles-external:zip) so use separate location -for our runtime (fedora-eclipse) to avoid collisions. - -Change-Id: Ia1ece07ece2412bc4a88901631f3f651ad2b634b ---- - .../internal/DefaultEquinoxEmbedder.java | 19 ++++++-- - .../remote/RemoteRepositoryCacheManager.java | 11 +++++ - .../p2/target/TargetDefinitionResolver.java | 11 ++++- - .../p2/target/TargetPlatformFactoryImpl.java | 45 +++++++++++++++++-- - .../MavenBundlesArtifactRepository.java | 20 +++------ - .../p2/repository/LocalRepositoryReader.java | 41 ++++++++++++++++- - .../TargetPlatformConfigurationStub.java | 6 ++- - .../tycho-bundles-external.product | 1 + - .../tycho/core/locking/FileLockerImpl.java | 26 ++++++++--- - .../maven/TychoMavenLifecycleParticipant.java | 13 ++++++ - .../core/osgitools/AbstractTychoProject.java | 37 +++++++++++++++ - .../core/osgitools/OsgiBundleProject.java | 6 ++- - ...aultTargetPlatformConfigurationReader.java | 6 ++- - .../osgi/runtime/TychoOsgiRuntimeLocator.java | 33 +++++++++----- - tycho-p2/tycho-p2-facade/pom.xml | 5 +++ - .../p2/resolver/P2DependencyResolver.java | 9 ++++ - 16 files changed, 244 insertions(+), 45 deletions(-) - -diff --git a/sisu-equinox/sisu-equinox-embedder/src/main/java/org/eclipse/sisu/equinox/embedder/internal/DefaultEquinoxEmbedder.java b/sisu-equinox/sisu-equinox-embedder/src/main/java/org/eclipse/sisu/equinox/embedder/internal/DefaultEquinoxEmbedder.java -index 3ea7278..fea08c7 100644 ---- a/sisu-equinox/sisu-equinox-embedder/src/main/java/org/eclipse/sisu/equinox/embedder/internal/DefaultEquinoxEmbedder.java -+++ b/sisu-equinox/sisu-equinox-embedder/src/main/java/org/eclipse/sisu/equinox/embedder/internal/DefaultEquinoxEmbedder.java -@@ -97,14 +97,18 @@ public class DefaultEquinoxEmbedder extends AbstractLogEnabled - - @Override - public void addInstallation(File location) { -- if (location == null || !location.isDirectory() || !new File(location, "plugins").isDirectory()) { -+ if (location == null || !location.isDirectory() || (!new File(location, "plugins").isDirectory() && !new File(location, "eclipse/plugins").isDirectory())) { - throw new IllegalArgumentException(); - } - if (!installationLocations.isEmpty()) { - // allow only one installation for now - throw new IllegalStateException(); - } -- installationLocations.add(location); -+ if (new File(location, "plugins").isDirectory()) { -+ installationLocations.add(location); -+ } else { -+ installationLocations.add(new File(location, "eclipse")); -+ } - } - - @Override -@@ -241,7 +245,14 @@ public class DefaultEquinoxEmbedder extends AbstractLogEnabled - if (verIdx > 0) { - bundles.append(name.substring(0, verIdx)); - } else { -- throw new EquinoxEmbedderException("File name doesn't match expected pattern: " + file); -+ // In Fedora, NAME_VERSION.QUALIFIER.jar is too fragile. -+ // Let's also accept NAME.jar -+ verIdx = name.lastIndexOf(".jar"); -+ if (verIdx > 0) { -+ bundles.append(name.substring(0, verIdx)); -+ } else { -+ throw new EquinoxEmbedderException("File name doesn't match expected pattern: " + file); -+ } - } - } - } -@@ -249,7 +260,7 @@ public class DefaultEquinoxEmbedder extends AbstractLogEnabled - } - - protected boolean isFrameworkBundle(File file) { -- return file.getName().startsWith("org.eclipse.osgi_"); -+ return file.getName().startsWith("org.eclipse.osgi_") || file.getName().equals("org.eclipse.osgi.jar"); - } - - String getReferenceUrl(File file) { -diff --git a/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/remote/RemoteRepositoryCacheManager.java b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/remote/RemoteRepositoryCacheManager.java -index 4cc81b1..63060e5 100644 ---- a/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/remote/RemoteRepositoryCacheManager.java -+++ b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/remote/RemoteRepositoryCacheManager.java -@@ -14,14 +14,18 @@ package org.eclipse.tycho.p2.remote; - - import java.io.File; - import java.io.IOException; -+import java.net.MalformedURLException; - import java.net.URI; -+import java.net.URL; - - import org.eclipse.core.runtime.IProgressMonitor; - import org.eclipse.core.runtime.IStatus; - import org.eclipse.core.runtime.Status; - import org.eclipse.equinox.internal.p2.repository.CacheManager; -+import org.eclipse.equinox.internal.p2.repository.Messages; - import org.eclipse.equinox.internal.p2.repository.Transport; - import org.eclipse.equinox.p2.core.ProvisionException; -+import org.eclipse.osgi.util.NLS; - import org.eclipse.tycho.core.shared.MavenContext; - import org.eclipse.tycho.core.shared.MavenLogger; - import org.eclipse.tycho.p2.impl.Activator; -@@ -53,6 +57,13 @@ class RemoteRepositoryCacheManager extends CacheManager { - @Override - public File createCache(URI repositoryLocation, String prefix, IProgressMonitor monitor) - throws IOException, ProvisionException { -+ try { -+ new URL(repositoryLocation.toASCIIString()); -+ } catch (MalformedURLException e) { -+ throw new ProvisionException(new Status(IStatus.ERROR, -+ org.eclipse.equinox.internal.p2.repository.Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, -+ NLS.bind(Messages.CacheManager_CannotLoadNonUrlLocation, repositoryLocation), null)); -+ } - File cacheFile = getCache(repositoryLocation, prefix); - if (offline) { - if (cacheFile != null) { -diff --git a/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/target/TargetDefinitionResolver.java b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/target/TargetDefinitionResolver.java -index 8cf981c..ce39b4a 100644 ---- a/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/target/TargetDefinitionResolver.java -+++ b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/target/TargetDefinitionResolver.java -@@ -29,6 +29,7 @@ import java.util.regex.Matcher; - import java.util.regex.Pattern; - - import org.eclipse.core.runtime.IProgressMonitor; -+import org.eclipse.core.runtime.URIUtil; - import org.eclipse.equinox.p2.core.IProvisioningAgent; - import org.eclipse.equinox.p2.metadata.IArtifactKey; - import org.eclipse.equinox.p2.metadata.IInstallableUnit; -@@ -141,8 +142,14 @@ public final class TargetDefinitionResolver { - for (Repository repository : installableUnitLocation.getRepositories()) { - URI location = repository.getLocation(); - String key = location.normalize().toASCIIString(); -- locations.add(uriRepositories.computeIfAbsent(key, -- s -> new URITargetDefinitionContent(provisioningAgent, location, repository.getId()))); -+ // We cannot resolve a non-file URI in local mode -+ if ((System.getProperty("TYCHO_MVN_LOCAL") == null -+ && System.getProperty("TYCHO_MVN_RPMBUILD") == null) -+ || URIUtil.isFileURI(repository.getLocation()) -+ || "fedora".equals(repository.getLocation().getScheme())) { -+ locations.add(uriRepositories.computeIfAbsent(key, -+ s -> new URITargetDefinitionContent(provisioningAgent, location, repository.getId()))); -+ } - } - IQueryable locationUnits = QueryUtil.compoundQueryable(locations); - installableUnitResolver.addLocation((InstallableUnitLocation) locationDefinition, locationUnits); -diff --git a/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/target/TargetPlatformFactoryImpl.java b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/target/TargetPlatformFactoryImpl.java -index bc98b2f..0156d94 100644 ---- a/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/target/TargetPlatformFactoryImpl.java -+++ b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/target/TargetPlatformFactoryImpl.java -@@ -37,6 +37,9 @@ import org.eclipse.core.runtime.URIUtil; - 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.metadata.expression.ExpressionUtil; -+import org.eclipse.equinox.p2.metadata.expression.IExpression; -+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.IArtifactRepository; -@@ -279,9 +282,43 @@ public class TargetPlatformFactoryImpl implements TargetPlatformFactory { - metadataRepositories.add(localMetadataRepository); - } - -- for (IMetadataRepository repository : metadataRepositories) { -- IQueryResult matches = repository.query(QueryUtil.ALL_UNITS, monitor); -- result.addAll(matches.toUnmodifiableSet()); -+ if (System.getProperty("TYCHO_MVN_LOCAL") != null) { -+ final IExpression notmatchIU_ID = ExpressionUtil.parse("id != $0"); -+ Set fedoraRepos = new HashSet(); -+ -+ // Sanity check even though the repo we want should be at index 1 -+ for (IMetadataRepository repository : metadataRepositories) { -+ if ("fedora".equals(repository.getLocation().getScheme())) { -+ fedoraRepos.add(repository); -+ } -+ } -+ -+ IQuery noLocalIUs = QueryUtil.createIUAnyQuery(); -+ -+ // Create a conjunction query that negates all IUs on the local system -+ for (IMetadataRepository repo : fedoraRepos) { -+ for (IInstallableUnit unit : repo.query(QueryUtil.ALL_UNITS, null).toUnmodifiableSet()) { -+ noLocalIUs = QueryUtil.createCompoundQuery(noLocalIUs, -+ QueryUtil.createMatchQuery(notmatchIU_ID, unit.getId()), true); -+ } -+ } -+ -+ for (IMetadataRepository repository : metadataRepositories) { -+ IQueryResult matches; -+ if ("fedora".equals(repository.getLocation().getScheme())) { -+ matches = repository.query(QueryUtil.ALL_UNITS, monitor); -+ } else { -+ // Don't collect any remote IUs that can be found on the system -+ // This will favour IUs in the system local p2 repository -+ matches = repository.query(noLocalIUs, monitor); -+ } -+ result.addAll(matches.toUnmodifiableSet()); -+ } -+ } else { -+ for (IMetadataRepository repository : metadataRepositories) { -+ IQueryResult matches = repository.query(QueryUtil.ALL_UNITS, monitor); -+ result.addAll(matches.toUnmodifiableSet()); -+ } - } - - result.addAll(pomDependenciesContent.gatherMavenInstallableUnits()); -@@ -335,7 +372,7 @@ public class TargetPlatformFactoryImpl implements TargetPlatformFactory { - List artifactRepositories = new ArrayList<>(); - - for (MavenRepositoryLocation location : mavenRepositories) { -- if (!offline || URIUtil.isFileURI(location.getURL())) { -+ if (!offline || URIUtil.isFileURI(location.getURL()) || "fedora".equals(location.getURL().getScheme())) { - artifactRepositories.add(new LazyArtifactRepository(remoteAgent, location.getURL(), - RepositoryArtifactProvider::loadRepository)); - } -diff --git a/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/target/repository/MavenBundlesArtifactRepository.java b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/target/repository/MavenBundlesArtifactRepository.java -index 503827d..59aab38 100644 ---- a/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/target/repository/MavenBundlesArtifactRepository.java -+++ b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/target/repository/MavenBundlesArtifactRepository.java -@@ -22,6 +22,7 @@ import org.eclipse.core.runtime.AssertionFailedException; - import org.eclipse.equinox.p2.metadata.IArtifactKey; - import org.eclipse.equinox.p2.repository.artifact.IArtifactDescriptor; - import org.eclipse.tycho.p2.metadata.IArtifactFacade; -+import org.eclipse.tycho.p2.repository.LocalRepositoryReader; - import org.eclipse.tycho.p2.repository.MavenRepositoryCoordinates; - import org.eclipse.tycho.repository.local.GAVArtifactDescriptor; - import org.eclipse.tycho.repository.p2base.artifact.provider.formats.ArtifactTransferPolicies; -@@ -61,22 +62,9 @@ public final class MavenBundlesArtifactRepository extends ArtifactRepositoryBase - GAVArtifactDescriptor descriptorForRepository = new GAVArtifactDescriptor(baseDescriptor, - repositoryCoordinates); - -- File requiredArtifactLocation = new File(getBaseDir(), -- descriptorForRepository.getMavenCoordinates().getLocalRepositoryPath()); -- File actualArtifactLocation = mavenArtifact.getLocation(); -- if (!equivalentPaths(requiredArtifactLocation, actualArtifactLocation)) { -- throw new AssertionFailedException( -- "The Maven artifact to be added to the target platform is not stored at the required location on disk: required \"" -- + requiredArtifactLocation + "\" but was \"" + actualArtifactLocation + "\""); -- } -- - internalAddInternalDescriptor(descriptorForRepository); - } - -- private boolean equivalentPaths(File path, File otherPath) { -- return path.equals(otherPath); -- } -- - @Override - protected GAVArtifactDescriptor getInternalDescriptorForAdding(IArtifactDescriptor descriptor) { - // artifacts are only added via the dedicated method -@@ -102,8 +90,10 @@ public final class MavenBundlesArtifactRepository extends ArtifactRepositoryBase - - @Override - protected File internalGetArtifactStorageLocation(IArtifactDescriptor descriptor) { -- String relativePath = toInternalDescriptor(descriptor).getMavenCoordinates().getLocalRepositoryPath(); -- return new File(getBaseDir(), relativePath); -+ MavenRepositoryCoordinates coord = toInternalDescriptor(descriptor).getMavenCoordinates(); -+ LocalRepositoryReader reader = new LocalRepositoryReader(getBaseDir()); -+ return reader.getLocalArtifactLocation(coord.getGav(), coord.getClassifier(), -+ coord.getExtensionOrDefault()); - } - - public File getBaseDir() { -diff --git a/tycho-bundles/org.eclipse.tycho.p2.resolver.shared/src/main/java/org/eclipse/tycho/p2/repository/LocalRepositoryReader.java b/tycho-bundles/org.eclipse.tycho.p2.resolver.shared/src/main/java/org/eclipse/tycho/p2/repository/LocalRepositoryReader.java -index 3bf2c33..959a257 100644 ---- a/tycho-bundles/org.eclipse.tycho.p2.resolver.shared/src/main/java/org/eclipse/tycho/p2/repository/LocalRepositoryReader.java -+++ b/tycho-bundles/org.eclipse.tycho.p2.resolver.shared/src/main/java/org/eclipse/tycho/p2/repository/LocalRepositoryReader.java -@@ -13,6 +13,8 @@ - package org.eclipse.tycho.p2.repository; - - import java.io.File; -+import java.lang.reflect.Constructor; -+import java.lang.reflect.Method; - - public class LocalRepositoryReader implements RepositoryReader { - -@@ -24,7 +26,44 @@ public class LocalRepositoryReader implements RepositoryReader { - - @Override - public File getLocalArtifactLocation(GAV gav, String classifier, String extension) { -- return new File(localMavenRepositoryRoot, RepositoryLayoutHelper.getRelativePath(gav, classifier, extension)); -+ File file = new File(localMavenRepositoryRoot, -+ RepositoryLayoutHelper.getRelativePath(gav, classifier, extension)); -+ // In Fedora the artifact may be in an XMvn-defined repository location (not in reactor cache) -+ if (!file.exists()) { -+ try { -+ // Create Plexus config -+ Class pcclazz = Class.forName("org.codehaus.plexus.ContainerConfiguration"); -+ Object conf = Class.forName("org.codehaus.plexus.DefaultContainerConfiguration").newInstance(); -+ pcclazz.getMethod("setAutoWiring", boolean.class).invoke(conf, true); -+ pcclazz.getMethod("setClassPathScanning", String.class).invoke(conf, "index"); -+ -+ // Use plexus container to lookup the reader -+ Class pclazz = Class.forName("org.codehaus.plexus.DefaultPlexusContainer"); -+ Object plexus = pclazz.getConstructor(pcclazz).newInstance(conf); -+ -+ // Retrieve the workspace reader from the plexus container -+ Method mLookup = pclazz.getMethod("lookup", String.class, String.class); -+ Object reader = mLookup.invoke(plexus, "org.eclipse.aether.repository.WorkspaceReader", "ide"); -+ -+ // Create an Aether Artifact based on GAV, classifier, and extension -+ Class iartclazz = Class.forName("org.eclipse.aether.artifact.Artifact"); -+ Class artclazz = Class.forName("org.eclipse.aether.artifact.DefaultArtifact"); -+ Constructor cNew = artclazz.getConstructor(String.class, String.class, String.class, String.class, -+ String.class); -+ Object artifact = cNew.newInstance(gav.getGroupId(), gav.getArtifactId(), classifier, extension, -+ gav.getVersion()); -+ -+ // Invoke "findArtifact" method of the workspace reader on the artifact -+ Method mfindArtifact = reader.getClass().getMethod("findArtifact", iartclazz); -+ File newFile = (File) mfindArtifact.invoke(reader, artifact); -+ if (newFile != null) { -+ file = newFile; -+ } -+ } catch (Exception e) { -+ e.printStackTrace(); -+ } -+ } -+ return file; - } - - } -diff --git a/tycho-bundles/org.eclipse.tycho.p2.resolver.shared/src/main/java/org/eclipse/tycho/p2/target/facade/TargetPlatformConfigurationStub.java b/tycho-bundles/org.eclipse.tycho.p2.resolver.shared/src/main/java/org/eclipse/tycho/p2/target/facade/TargetPlatformConfigurationStub.java -index 3e93ee1..c79d4f1 100644 ---- a/tycho-bundles/org.eclipse.tycho.p2.resolver.shared/src/main/java/org/eclipse/tycho/p2/target/facade/TargetPlatformConfigurationStub.java -+++ b/tycho-bundles/org.eclipse.tycho.p2.resolver.shared/src/main/java/org/eclipse/tycho/p2/target/facade/TargetPlatformConfigurationStub.java -@@ -61,7 +61,11 @@ public class TargetPlatformConfigurationStub { - } - - public void addP2Repository(MavenRepositoryLocation location) { -- this.repositories.add(location); -+ // We cannot resolve a non-file URI in local mode while offline -+ if (System.getProperty("TYCHO_MVN_RPMBUILD") == null || "file".equalsIgnoreCase(location.getURL().getScheme()) -+ || "fedora".equalsIgnoreCase(location.getURL().getScheme())) { -+ this.repositories.add(location); -+ } - } - - // convenience method for tests -diff --git a/tycho-bundles/tycho-bundles-external/tycho-bundles-external.product b/tycho-bundles/tycho-bundles-external/tycho-bundles-external.product -index 7e3d5fb..b146c08 100644 ---- a/tycho-bundles/tycho-bundles-external/tycho-bundles-external.product -+++ b/tycho-bundles/tycho-bundles-external/tycho-bundles-external.product -@@ -77,6 +77,7 @@ - - - -+ - - - -diff --git a/tycho-core/src/main/java/org/eclipse/tycho/core/locking/FileLockerImpl.java b/tycho-core/src/main/java/org/eclipse/tycho/core/locking/FileLockerImpl.java -index 9940561..9a98a40 100644 ---- a/tycho-core/src/main/java/org/eclipse/tycho/core/locking/FileLockerImpl.java -+++ b/tycho-core/src/main/java/org/eclipse/tycho/core/locking/FileLockerImpl.java -@@ -27,20 +27,34 @@ public class FileLockerImpl implements FileLocker { - final File lockMarkerFile; - - public FileLockerImpl(File file, Location anyLocation) { -+ File lockFileCandidate = null; - try { - if (file.isDirectory()) { -- this.lockMarkerFile = new File(file, LOCKFILE_SUFFIX).getCanonicalFile(); -+ lockFileCandidate = new File(file, LOCKFILE_SUFFIX).getCanonicalFile(); - } else { -- this.lockMarkerFile = new File(file.getParentFile(), file.getName() + LOCKFILE_SUFFIX) -- .getCanonicalFile(); -+ lockFileCandidate = new File(file.getParentFile(), file.getName() + LOCKFILE_SUFFIX).getCanonicalFile(); - } -- if (lockMarkerFile.isDirectory()) { -- throw new RuntimeException("Lock marker file " + lockMarkerFile + " already exists and is a directory"); -+ if (lockFileCandidate.isDirectory()) { -+ throw new RuntimeException( -+ "Lock marker file " + lockFileCandidate + " already exists and is a directory"); - } -- File parentDir = lockMarkerFile.getParentFile(); -+ File parentDir = lockFileCandidate.getParentFile(); - if (!parentDir.isDirectory() && !parentDir.mkdirs()) { - throw new RuntimeException("Could not create parent directory " + parentDir + " of lock marker file"); - } -+ -+ String baseDir = System.getProperty("user.dir"); -+ String reactorCache = baseDir + "/.m2/"; -+ // In Fedora we can only assume reactor cache is safe for read/write. -+ if (!lockFileCandidate.getAbsolutePath().startsWith(reactorCache)) { -+ String lockFileDir = reactorCache + LOCKFILE_SUFFIX; -+ // If the file is located within baseDir, no need to repeat -+ String lockFileName = file.getAbsolutePath().replace(baseDir, "").replace("/", "-").replaceFirst("-", -+ "/") + LOCKFILE_SUFFIX; -+ lockFileCandidate = new File(lockFileDir, lockFileName); -+ } -+ -+ this.lockMarkerFile = lockFileCandidate; - this.lockFileLocation = anyLocation.createLocation(null, null, false); - this.lockFileLocation.set(lockMarkerFile.toURL(), false, lockMarkerFile.getAbsolutePath()); - } catch (MalformedURLException e) { -diff --git a/tycho-core/src/main/java/org/eclipse/tycho/core/maven/TychoMavenLifecycleParticipant.java b/tycho-core/src/main/java/org/eclipse/tycho/core/maven/TychoMavenLifecycleParticipant.java -index 4bbb59b..008b9f2 100644 ---- a/tycho-core/src/main/java/org/eclipse/tycho/core/maven/TychoMavenLifecycleParticipant.java -+++ b/tycho-core/src/main/java/org/eclipse/tycho/core/maven/TychoMavenLifecycleParticipant.java -@@ -38,6 +38,7 @@ import org.apache.maven.project.MavenProject; - import org.codehaus.plexus.PlexusContainer; - import org.codehaus.plexus.component.annotations.Component; - import org.codehaus.plexus.component.annotations.Requirement; -+import org.codehaus.plexus.component.repository.exception.ComponentLookupException; - import org.codehaus.plexus.logging.Logger; - import org.eclipse.tycho.ReactorProject; - import org.eclipse.tycho.artifacts.DependencyResolutionException; -@@ -95,6 +96,18 @@ public class TychoMavenLifecycleParticipant extends AbstractMavenLifecyclePartic - - configureComponents(session); - -+ try { -+ if (plexus.lookup("org.fedoraproject.xmvn.resolver.Resolver") != null) { -+ if (session.isOffline()) { -+ System.setProperty("TYCHO_MVN_RPMBUILD", ""); -+ } else { -+ System.setProperty("TYCHO_MVN_LOCAL", ""); -+ } -+ } -+ } catch (ComponentLookupException e) { -+ // No XMvn (Upstream Maven in use) -+ } -+ - for (MavenProject project : projects) { - resolver.setupProject(session, project, DefaultReactorProject.adapt(project)); - } -diff --git a/tycho-core/src/main/java/org/eclipse/tycho/core/osgitools/AbstractTychoProject.java b/tycho-core/src/main/java/org/eclipse/tycho/core/osgitools/AbstractTychoProject.java -index 8daeef6..126be76 100644 ---- a/tycho-core/src/main/java/org/eclipse/tycho/core/osgitools/AbstractTychoProject.java -+++ b/tycho-core/src/main/java/org/eclipse/tycho/core/osgitools/AbstractTychoProject.java -@@ -15,13 +15,19 @@ import java.util.Objects; - - import org.apache.maven.execution.MavenSession; - import org.apache.maven.project.MavenProject; -+import org.apache.maven.toolchain.ToolchainManager; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.codehaus.plexus.logging.AbstractLogEnabled; -+import org.codehaus.plexus.logging.Logger; - import org.eclipse.tycho.ReactorProject; - import org.eclipse.tycho.artifacts.DependencyArtifacts; - import org.eclipse.tycho.core.TargetPlatformConfiguration; - import org.eclipse.tycho.core.TychoConstants; - import org.eclipse.tycho.core.TychoProject; -+import org.eclipse.tycho.core.ee.ExecutionEnvironmentUtils; - import org.eclipse.tycho.core.ee.TargetDefinitionFile; -+import org.eclipse.tycho.core.ee.UnknownEnvironmentException; -+import org.eclipse.tycho.core.ee.shared.ExecutionEnvironment; - import org.eclipse.tycho.core.ee.shared.ExecutionEnvironmentConfiguration; - import org.eclipse.tycho.core.osgitools.targetplatform.LocalDependencyResolver; - import org.eclipse.tycho.core.osgitools.targetplatform.MultiEnvironmentDependencyArtifacts; -@@ -31,6 +37,12 @@ import org.eclipse.tycho.p2.target.facade.TargetDefinition; - - public abstract class AbstractTychoProject extends AbstractLogEnabled implements TychoProject { - -+ @Requirement -+ private Logger logger; -+ -+ @Requirement -+ private ToolchainManager toolchainManager; -+ - @Override - public DependencyArtifacts getDependencyArtifacts(ReactorProject project) { - return TychoProjectUtils.getDependencyArtifacts(project); -@@ -99,6 +111,8 @@ public abstract class AbstractTychoProject extends AbstractLogEnabled implements - - String configuredForcedProfile = tpConfiguration.getExecutionEnvironment(); - if (configuredForcedProfile != null) { -+ configuredForcedProfile = overrideToAtLeastJavaSE16(configuredForcedProfile, toolchainManager, mavenSession, -+ logger); - sink.overrideProfileConfiguration(configuredForcedProfile, - "target-platform-configuration "); - } else { -@@ -113,9 +127,32 @@ public abstract class AbstractTychoProject extends AbstractLogEnabled implements - - String configuredDefaultProfile = tpConfiguration.getExecutionEnvironmentDefault(); - if (configuredDefaultProfile != null) { -+ configuredDefaultProfile = overrideToAtLeastJavaSE16(configuredDefaultProfile, toolchainManager, -+ mavenSession, logger); - sink.setProfileConfiguration(configuredDefaultProfile, - "target-platform-configuration "); - } - } - -+ public String overrideToAtLeastJavaSE16(String profile, ToolchainManager toolchainManager, MavenSession session, -+ Logger logger) { -+ try { -+ ExecutionEnvironment ee = ExecutionEnvironmentUtils.getExecutionEnvironment(profile, toolchainManager, -+ session, logger); -+ -+ if (System.getProperty("TYCHO_MVN_LOCAL") != null || System.getProperty("TYCHO_MVN_RPMBUILD") != null) { -+ // EE must be at least JavaSE-1.6 -+ final ExecutionEnvironment javaSE16 = ExecutionEnvironmentUtils.getExecutionEnvironment("JavaSE-1.6", -+ toolchainManager, session, logger); -+ if (!ee.isCompatibleCompilerTargetLevel(javaSE16.getCompilerTargetLevelDefault())) { -+ ee = javaSE16; -+ } -+ } -+ -+ return ee.getProfileName(); -+ } catch (UnknownEnvironmentException e) { -+ // can't happen, ee is validated during configuration parsing -+ return null; -+ } -+ } - } -diff --git a/tycho-core/src/main/java/org/eclipse/tycho/core/osgitools/OsgiBundleProject.java b/tycho-core/src/main/java/org/eclipse/tycho/core/osgitools/OsgiBundleProject.java -index 54e8227..2c0e0f9 100644 ---- a/tycho-core/src/main/java/org/eclipse/tycho/core/osgitools/OsgiBundleProject.java -+++ b/tycho-core/src/main/java/org/eclipse/tycho/core/osgitools/OsgiBundleProject.java -@@ -514,6 +514,7 @@ public class OsgiBundleProject extends AbstractTychoProject implements BundlePro - // ... specified in build.properties (for PDE compatibility) - String pdeProfileName = getEclipsePluginProject(project).getBuildProperties().getJreCompilationProfile(); - if (pdeProfileName != null) { -+ pdeProfileName = overrideToAtLeastJavaSE16(pdeProfileName, toolchainManager, mavenSession, logger); - sink.setProfileConfiguration(pdeProfileName.trim(), "build.properties"); - } else { - // ... derived from BREE in bundle manifest -@@ -546,16 +547,19 @@ public class OsgiBundleProject extends AbstractTychoProject implements BundlePro - StandardExecutionEnvironment configuredProfile = ExecutionEnvironmentUtils - .getExecutionEnvironment(configuredProfileName, toolchainManager, mavenSession, logger); - if (configuredProfile != null) { -+ configuredProfileName = overrideToAtLeastJavaSE16(configuredProfileName, toolchainManager, mavenSession, logger); - // non standard profile, stick to it - sink.setProfileConfiguration(configuredProfileName, reason); - } - StandardExecutionEnvironment currentProfile = ExecutionEnvironmentUtils.getExecutionEnvironment( - "JavaSE-" + Runtime.version().feature(), toolchainManager, mavenSession, logger); - if (currentProfile.compareTo(configuredProfile) > 0) { -- sink.setProfileConfiguration(currentProfile.getProfileName(), -+ String configuredProfile1 = overrideToAtLeastJavaSE16(currentProfile.getProfileName(), toolchainManager, mavenSession, logger); -+ sink.setProfileConfiguration(configuredProfile1, - "Currently running profile, newer than configured profile (" + configuredProfileName + ") from [" - + reason + "]"); - } else { -+ configuredProfileName = overrideToAtLeastJavaSE16(configuredProfileName, toolchainManager, mavenSession, logger); - sink.setProfileConfiguration(configuredProfileName, reason); - } - } -diff --git a/tycho-core/src/main/java/org/eclipse/tycho/core/resolver/DefaultTargetPlatformConfigurationReader.java b/tycho-core/src/main/java/org/eclipse/tycho/core/resolver/DefaultTargetPlatformConfigurationReader.java -index 355f64d..ab69849 100644 ---- a/tycho-core/src/main/java/org/eclipse/tycho/core/resolver/DefaultTargetPlatformConfigurationReader.java -+++ b/tycho-core/src/main/java/org/eclipse/tycho/core/resolver/DefaultTargetPlatformConfigurationReader.java -@@ -88,7 +88,11 @@ public class DefaultTargetPlatformConfigurationReader { - + configuration.toString()); - } - -- addTargetEnvironments(result, project, configuration); -+ // Use the defined environments only in local mode with tycho.local.keepTarget -+ if ((System.getProperty("TYCHO_MVN_LOCAL") == null && System.getProperty("TYCHO_MVN_RPMBUILD") == null) -+ || System.getProperty("tycho.local.keepTarget") != null) { -+ addTargetEnvironments(result, project, configuration); -+ } - - setTargetPlatformResolver(result, configuration); - -diff --git a/tycho-core/src/main/java/org/eclipse/tycho/osgi/runtime/TychoOsgiRuntimeLocator.java b/tycho-core/src/main/java/org/eclipse/tycho/osgi/runtime/TychoOsgiRuntimeLocator.java -index ea817a9..c71fc93 100644 ---- a/tycho-core/src/main/java/org/eclipse/tycho/osgi/runtime/TychoOsgiRuntimeLocator.java -+++ b/tycho-core/src/main/java/org/eclipse/tycho/osgi/runtime/TychoOsgiRuntimeLocator.java -@@ -160,40 +160,53 @@ public class TychoOsgiRuntimeLocator implements EquinoxRuntimeLocator { - Artifact artifact = resolveDependency(session, dependency); - - if ("zip".equals(dependency.getType())) { -- File artifactFile = new File(session.getLocalRepository().getBasedir(), session.getLocalRepository() -- .pathOf(artifact)); -+ File artifactFile = new File(session.getLocalRepository().getBasedir(), -+ session.getLocalRepository().pathOf(artifact)); - File eclipseDir = new File(artifactFile.getParentFile(), "eclipse"); -+ File eclipseSaveDir = new File(artifactFile.getParentFile(), "eclipse-save"); -+ File fedoraDir = new File(artifactFile.getParentFile(), "fedora-eclipse"); - - FileLocker locker = fileLockService.getFileLocker(artifactFile); - locker.lock(); - try { -- if (!eclipseDir.exists() || artifact.isSnapshot()) { -+ if (!fedoraDir.exists() || artifact.isSnapshot()) { - logger.debug("Extracting Tycho's OSGi runtime"); - -- if (artifact.getFile().lastModified() > eclipseDir.lastModified()) { -+ if (artifact.getFile().lastModified() > fedoraDir.lastModified()) { - logger.debug("Unpacking Tycho's OSGi runtime to " + eclipseDir); - try { -- FileUtils.deleteDirectory(eclipseDir); -+ FileUtils.deleteDirectory(fedoraDir); -+ if (eclipseDir.exists()) { -+ FileUtils.rename(eclipseDir, eclipseSaveDir); -+ } - } catch (IOException e) { -- logger.warn("Failed to delete Tycho's OSGi runtime " + eclipseDir + ": " + e.getMessage()); -+ logger.warn("Failed to delete Tycho's OSGi runtime " + fedoraDir + ": " + e.getMessage()); - } - eclipseDir.mkdirs(); - unArchiver.setSourceFile(artifact.getFile()); - unArchiver.setDestDirectory(eclipseDir); - try { - unArchiver.extract(); -+ logger.debug("Moving Tycho's OSGi runtime to " + fedoraDir); -+ FileUtils.rename(eclipseDir, fedoraDir); -+ if (eclipseSaveDir.exists()) { -+ FileUtils.rename(eclipseSaveDir, eclipseDir); -+ } - } catch (ArchiverException e) { -- throw new MavenExecutionException("Failed to unpack Tycho's OSGi runtime: " -- + e.getMessage(), e); -+ throw new MavenExecutionException( -+ "Failed to unpack Tycho's OSGi runtime: " + e.getMessage(), e); -+ } catch (IOException e) { -+ throw new MavenExecutionException("Failed to move Tycho's OSGi runtime: " + e.getMessage(), -+ e); - } - -- eclipseDir.setLastModified(artifact.getFile().lastModified()); -+ fedoraDir.setLastModified(artifact.getFile().lastModified()); - } - } - } finally { - locker.release(); - } -- description.addInstallation(eclipseDir); -+ description.addInstallation(fedoraDir); - } else { - description.addBundle(artifact.getFile()); - } -diff --git a/tycho-p2/tycho-p2-facade/pom.xml b/tycho-p2/tycho-p2-facade/pom.xml -index 2fa2201..8c5996b 100644 ---- a/tycho-p2/tycho-p2-facade/pom.xml -+++ b/tycho-p2/tycho-p2-facade/pom.xml -@@ -57,6 +57,11 @@ - junit-jupiter-api - test - -+ -+ org.fedoraproject.p2 -+ org.fedoraproject.p2 -+ 0.0.1-SNAPSHOT -+ - - - -diff --git a/tycho-p2/tycho-p2-facade/src/main/java/org/eclipse/tycho/p2/resolver/P2DependencyResolver.java b/tycho-p2/tycho-p2-facade/src/main/java/org/eclipse/tycho/p2/resolver/P2DependencyResolver.java -index de4e6aa..5543b01 100644 ---- a/tycho-p2/tycho-p2-facade/src/main/java/org/eclipse/tycho/p2/resolver/P2DependencyResolver.java -+++ b/tycho-p2/tycho-p2-facade/src/main/java/org/eclipse/tycho/p2/resolver/P2DependencyResolver.java -@@ -94,6 +94,7 @@ import org.eclipse.tycho.p2.resolver.facade.P2ResolverFactory; - import org.eclipse.tycho.p2.target.facade.PomDependencyCollector; - import org.eclipse.tycho.p2.target.facade.TargetPlatformConfigurationStub; - import org.eclipse.tycho.repository.registry.facade.ReactorRepositoryManagerFacade; -+import org.fedoraproject.p2.EclipseSystemLayout; - - @Component(role = DependencyResolver.class, hint = P2DependencyResolver.ROLE_HINT, instantiationStrategy = "per-lookup") - public class P2DependencyResolver extends AbstractLogEnabled implements DependencyResolver, Initializable { -@@ -200,6 +201,14 @@ public class P2DependencyResolver extends AbstractLogEnabled implements Dependen - - PomDependencyCollector pomDependencies = collectPomDependencies(project, reactorProjects, session, - configuration.getPomDependencies()); -+ -+ // Add Fedora Local P2 Repository when running in local mode -+ if (System.getProperty("TYCHO_MVN_LOCAL") != null || System.getProperty("TYCHO_MVN_RPMBUILD") != null) { -+ for (URI uri : EclipseSystemLayout.getRepositories()) { -+ tpConfiguration.addP2Repository(new MavenRepositoryLocation(uri.getPath(), uri)); -+ } -+ } -+ - for (ArtifactRepository repository : project.getRemoteArtifactRepositories()) { - addEntireP2RepositoryToTargetPlatform(repository, tpConfiguration); - } --- -2.28.0 - diff --git a/0003-Tycho-should-always-delegate-artifact-resolution-to-.patch b/0003-Tycho-should-always-delegate-artifact-resolution-to-.patch deleted file mode 100644 index 7b0bae0..0000000 --- a/0003-Tycho-should-always-delegate-artifact-resolution-to-.patch +++ /dev/null @@ -1,687 +0,0 @@ -From 9bba214b359e384b3c23b1d31541eda067a62ed3 Mon Sep 17 00:00:00 2001 -From: Roland Grunberg -Date: Wed, 18 Jun 2014 13:01:31 -0400 -Subject: [PATCH 3/7] Tycho should always delegate artifact resolution to - Maven. - -Maven resolves dependencies from the following locations in the -following order: - * reactor, - * workspace (eg. XMvn), - * local repository, - * remote repositories. - -Tycho assumes that all resolved artifacts are present within the reactor -cache but this is not true for artifacts resolved from workspace -locations. - -Change-Id: Ia44969ed1064965a82c3507a63e54caeebb75b18 ---- - .../tycho/core/shared/MavenContext.java | 1 + - .../tycho/core/shared/MavenContextImpl.java | 9 +++- - .../core/shared/MavenRepositorySystem.java | 19 +++++++ - .../LocalArtifactRepositoryP2APITest.java | 4 +- - .../local/LocalMetadataRepositoryTest.java | 3 +- - .../local/LocalArtifactRepository.java | 8 +-- - .../local/LocalArtifactRepositoryFactory.java | 3 +- - .../index/LocalRepositoryP2IndicesImpl.java | 6 +++ - .../remote/RemoteAgentMavenMirrorsTest.java | 3 +- - ...emoteAgentMetadataRepositoryCacheTest.java | 9 ++-- - .../TargetPlatformBundlePublisherTest.java | 4 +- - .../tycho/p2/target/TestResolverFactory.java | 7 ++- - .../p2/resolver/P2ResolverFactoryImpl.java | 8 +-- - .../p2/target/PomDependencyCollectorImpl.java | 2 +- - .../target/TargetPlatformBundlePublisher.java | 6 ++- - .../MavenBundlesArtifactRepository.java | 7 ++- - .../repository/LocalRepositoryP2Indices.java | 3 ++ - .../p2/repository/LocalRepositoryReader.java | 50 +++++-------------- - .../TemporaryLocalMavenRepository.java | 4 +- - .../test/util/MavenRepositorySystemStub.java | 30 +++++++++++ - .../MavenRepositorySystemAdapter.java | 37 ++++++++++++++ - .../MavenContextConfigurator.java | 7 ++- - 22 files changed, 166 insertions(+), 64 deletions(-) - create mode 100644 tycho-bundles/org.eclipse.tycho.core.shared/src/main/java/org/eclipse/tycho/core/shared/MavenRepositorySystem.java - create mode 100644 tycho-bundles/org.eclipse.tycho.test.utils/src/main/java/org/eclipse/tycho/test/util/MavenRepositorySystemStub.java - create mode 100644 tycho-core/src/main/java/org/eclipse/tycho/osgi/adapters/MavenRepositorySystemAdapter.java - -diff --git a/tycho-bundles/org.eclipse.tycho.core.shared/src/main/java/org/eclipse/tycho/core/shared/MavenContext.java b/tycho-bundles/org.eclipse.tycho.core.shared/src/main/java/org/eclipse/tycho/core/shared/MavenContext.java -index 3836f70..b87d1f3 100644 ---- a/tycho-bundles/org.eclipse.tycho.core.shared/src/main/java/org/eclipse/tycho/core/shared/MavenContext.java -+++ b/tycho-bundles/org.eclipse.tycho.core.shared/src/main/java/org/eclipse/tycho/core/shared/MavenContext.java -@@ -50,4 +50,5 @@ public interface MavenContext { - */ - public Collection getProjects(); - -+ public MavenRepositorySystem getRepositorySystem(); - } -diff --git a/tycho-bundles/org.eclipse.tycho.core.shared/src/main/java/org/eclipse/tycho/core/shared/MavenContextImpl.java b/tycho-bundles/org.eclipse.tycho.core.shared/src/main/java/org/eclipse/tycho/core/shared/MavenContextImpl.java -index 4a85819..fd831a1 100644 ---- a/tycho-bundles/org.eclipse.tycho.core.shared/src/main/java/org/eclipse/tycho/core/shared/MavenContextImpl.java -+++ b/tycho-bundles/org.eclipse.tycho.core.shared/src/main/java/org/eclipse/tycho/core/shared/MavenContextImpl.java -@@ -29,18 +29,20 @@ public class MavenContextImpl implements MavenContext { - private boolean offline; - private Properties mergedProperties; - private List projects = new ArrayList<>(); -+ private MavenRepositorySystem repositorySystem; - - public MavenContextImpl(File localRepositoryRoot, boolean offline, MavenLogger mavenLogger, -- Properties mergedProperties) { -+ Properties mergedProperties, MavenRepositorySystem repositorySystem) { - this.localRepositoryRoot = localRepositoryRoot; - this.offline = offline; - this.mavenLogger = mavenLogger; - this.mergedProperties = mergedProperties; -+ this.repositorySystem = repositorySystem; - } - - // constructor for tests - public MavenContextImpl(File localRepositoryRoot, MavenLogger mavenLogger) { -- this(localRepositoryRoot, false, mavenLogger, new Properties()); -+ this(localRepositoryRoot, false, mavenLogger, new Properties(), null); - } - - @Override -@@ -72,4 +74,7 @@ public class MavenContextImpl implements MavenContext { - projects.add(reactorProject); - } - -+ public MavenRepositorySystem getRepositorySystem() { -+ return repositorySystem; -+ } - } -diff --git a/tycho-bundles/org.eclipse.tycho.core.shared/src/main/java/org/eclipse/tycho/core/shared/MavenRepositorySystem.java b/tycho-bundles/org.eclipse.tycho.core.shared/src/main/java/org/eclipse/tycho/core/shared/MavenRepositorySystem.java -new file mode 100644 -index 0000000..965e5cd ---- /dev/null -+++ b/tycho-bundles/org.eclipse.tycho.core.shared/src/main/java/org/eclipse/tycho/core/shared/MavenRepositorySystem.java -@@ -0,0 +1,19 @@ -+/******************************************************************************* -+ * Copyright (c) 2014 Red Hat Inc. -+ * All rights reserved. This program and the accompanying materials -+ * are made available under the terms of the Eclipse Public License v1.0 -+ * which accompanies this distribution, and is available at -+ * http://www.eclipse.org/legal/epl-v10.html -+ * -+ * Contributors: -+ * Red Hat Inc. - initial API and implementation -+ *******************************************************************************/ -+package org.eclipse.tycho.core.shared; -+ -+import java.io.File; -+ -+public interface MavenRepositorySystem { -+ -+ public File resolve(String gid, String aid, String version, String type, String classifier); -+ -+} -diff --git a/tycho-bundles/org.eclipse.tycho.p2.maven.repository.tests/src/test/java/org/eclipse/tycho/repository/local/LocalArtifactRepositoryP2APITest.java b/tycho-bundles/org.eclipse.tycho.p2.maven.repository.tests/src/test/java/org/eclipse/tycho/repository/local/LocalArtifactRepositoryP2APITest.java -index 43eb9af..68c7878 100644 ---- a/tycho-bundles/org.eclipse.tycho.p2.maven.repository.tests/src/test/java/org/eclipse/tycho/repository/local/LocalArtifactRepositoryP2APITest.java -+++ b/tycho-bundles/org.eclipse.tycho.p2.maven.repository.tests/src/test/java/org/eclipse/tycho/repository/local/LocalArtifactRepositoryP2APITest.java -@@ -55,6 +55,7 @@ import org.eclipse.tycho.repository.p2base.artifact.repository.ArtifactRepositor - import org.eclipse.tycho.repository.streaming.testutil.ProbeArtifactSink; - import org.eclipse.tycho.repository.streaming.testutil.ProbeOutputStream; - import org.eclipse.tycho.repository.streaming.testutil.ProbeRawArtifactSink; -+import org.eclipse.tycho.test.util.MavenRepositorySystemStub; - import org.junit.After; - import org.junit.Assume; - import org.junit.Before; -@@ -116,7 +117,8 @@ public class LocalArtifactRepositoryP2APITest { - @Before - public void initSubject() throws Exception { - temporaryLocalMavenRepo.initContentFromResourceFolder(ResourceUtil.resourceFile("repositories/local")); -- subject = new LocalArtifactRepository(null, temporaryLocalMavenRepo.getLocalRepositoryIndex()); -+ subject = new LocalArtifactRepository(null, temporaryLocalMavenRepo.getLocalRepositoryIndex(), -+ new MavenRepositorySystemStub(temporaryLocalMavenRepo.getLocalRepositoryRoot())); - - testOutputStream = new ProbeOutputStream(); - } -diff --git a/tycho-bundles/org.eclipse.tycho.p2.maven.repository.tests/src/test/java/org/eclipse/tycho/repository/local/LocalMetadataRepositoryTest.java b/tycho-bundles/org.eclipse.tycho.p2.maven.repository.tests/src/test/java/org/eclipse/tycho/repository/local/LocalMetadataRepositoryTest.java -index 1c9fba1..b534686 100644 ---- a/tycho-bundles/org.eclipse.tycho.p2.maven.repository.tests/src/test/java/org/eclipse/tycho/repository/local/LocalMetadataRepositoryTest.java -+++ b/tycho-bundles/org.eclipse.tycho.p2.maven.repository.tests/src/test/java/org/eclipse/tycho/repository/local/LocalMetadataRepositoryTest.java -@@ -35,6 +35,7 @@ import org.eclipse.tycho.p2.repository.LocalRepositoryReader; - import org.eclipse.tycho.p2.repository.RepositoryLayoutHelper; - import org.eclipse.tycho.p2.repository.TychoRepositoryIndex; - import org.eclipse.tycho.repository.local.index.FileBasedTychoRepositoryIndex; -+import org.eclipse.tycho.test.util.MavenRepositorySystemStub; - import org.eclipse.tycho.test.util.NoopFileLockService; - import org.junit.Assert; - import org.junit.Test; -@@ -53,7 +54,7 @@ public class LocalMetadataRepositoryTest { - - protected IMetadataRepository loadRepository(File location) throws ProvisionException { - return new LocalMetadataRepository(location.toURI(), createMetadataIndex(location), -- new LocalRepositoryReader(location)); -+ new LocalRepositoryReader(location, new MavenRepositorySystemStub(location))); - } - - private TychoRepositoryIndex createMetadataIndex(File location) { -diff --git a/tycho-bundles/org.eclipse.tycho.p2.maven.repository/src/main/java/org/eclipse/tycho/repository/local/LocalArtifactRepository.java b/tycho-bundles/org.eclipse.tycho.p2.maven.repository/src/main/java/org/eclipse/tycho/repository/local/LocalArtifactRepository.java -index 7a11200..649042b 100644 ---- a/tycho-bundles/org.eclipse.tycho.p2.maven.repository/src/main/java/org/eclipse/tycho/repository/local/LocalArtifactRepository.java -+++ b/tycho-bundles/org.eclipse.tycho.p2.maven.repository/src/main/java/org/eclipse/tycho/repository/local/LocalArtifactRepository.java -@@ -31,6 +31,7 @@ import java.util.concurrent.locks.ReentrantLock; - import org.eclipse.equinox.p2.core.IProvisioningAgent; - import org.eclipse.equinox.p2.metadata.IArtifactKey; - import org.eclipse.equinox.p2.repository.artifact.IArtifactDescriptor; -+import org.eclipse.tycho.core.shared.MavenRepositorySystem; - import org.eclipse.tycho.p2.maven.repository.Activator; - import org.eclipse.tycho.p2.maven.repository.xmlio.ArtifactsIO; - import org.eclipse.tycho.p2.repository.GAV; -@@ -51,15 +52,16 @@ public class LocalArtifactRepository extends ArtifactRepositoryBaseImpl - */ - public final class MavenBundlesArtifactRepository extends ArtifactRepositoryBaseImpl { -+ private MavenRepositorySystem repositorySystem; - -- public MavenBundlesArtifactRepository(File localMavenRepositoryRoot) { -+ public MavenBundlesArtifactRepository(File localMavenRepositoryRoot, MavenRepositorySystem repositorySystem) { - super(null, localMavenRepositoryRoot.toURI(), ArtifactTransferPolicies.forLocalArtifacts()); -+ this.repositorySystem = repositorySystem; - } - - public void addPublishedArtifact(IArtifactDescriptor baseDescriptor, IArtifactFacade mavenArtifact) { -@@ -91,7 +94,7 @@ public final class MavenBundlesArtifactRepository extends ArtifactRepositoryBase - @Override - protected File internalGetArtifactStorageLocation(IArtifactDescriptor descriptor) { - MavenRepositoryCoordinates coord = toInternalDescriptor(descriptor).getMavenCoordinates(); -- LocalRepositoryReader reader = new LocalRepositoryReader(getBaseDir()); -+ LocalRepositoryReader reader = new LocalRepositoryReader(getBaseDir(), repositorySystem); - return reader.getLocalArtifactLocation(coord.getGav(), coord.getClassifier(), - coord.getExtensionOrDefault()); - } -diff --git a/tycho-bundles/org.eclipse.tycho.p2.resolver.shared/src/main/java/org/eclipse/tycho/p2/repository/LocalRepositoryP2Indices.java b/tycho-bundles/org.eclipse.tycho.p2.resolver.shared/src/main/java/org/eclipse/tycho/p2/repository/LocalRepositoryP2Indices.java -index 7a1303b..1a8feb4 100644 ---- a/tycho-bundles/org.eclipse.tycho.p2.resolver.shared/src/main/java/org/eclipse/tycho/p2/repository/LocalRepositoryP2Indices.java -+++ b/tycho-bundles/org.eclipse.tycho.p2.resolver.shared/src/main/java/org/eclipse/tycho/p2/repository/LocalRepositoryP2Indices.java -@@ -15,6 +15,8 @@ package org.eclipse.tycho.p2.repository; - - import java.io.File; - -+import org.eclipse.tycho.core.shared.MavenRepositorySystem; -+ - /** - * This service provides access to the tycho p2 index files of the local maven repository. - */ -@@ -26,4 +28,5 @@ public interface LocalRepositoryP2Indices { - - public File getBasedir(); - -+ public MavenRepositorySystem getRepositorySystem(); - } -diff --git a/tycho-bundles/org.eclipse.tycho.p2.resolver.shared/src/main/java/org/eclipse/tycho/p2/repository/LocalRepositoryReader.java b/tycho-bundles/org.eclipse.tycho.p2.resolver.shared/src/main/java/org/eclipse/tycho/p2/repository/LocalRepositoryReader.java -index 959a257..3c8fb8b 100644 ---- a/tycho-bundles/org.eclipse.tycho.p2.resolver.shared/src/main/java/org/eclipse/tycho/p2/repository/LocalRepositoryReader.java -+++ b/tycho-bundles/org.eclipse.tycho.p2.resolver.shared/src/main/java/org/eclipse/tycho/p2/repository/LocalRepositoryReader.java -@@ -13,57 +13,31 @@ - package org.eclipse.tycho.p2.repository; - - import java.io.File; --import java.lang.reflect.Constructor; --import java.lang.reflect.Method; -+ -+import org.eclipse.tycho.core.shared.MavenRepositorySystem; - - public class LocalRepositoryReader implements RepositoryReader { - - private final File localMavenRepositoryRoot; -+ private final MavenRepositorySystem repositorySystem; - -- public LocalRepositoryReader(File localMavenRepositoryRoot) { -+ public LocalRepositoryReader(File localMavenRepositoryRoot, MavenRepositorySystem repositorySystem) { - this.localMavenRepositoryRoot = localMavenRepositoryRoot; -+ this.repositorySystem = repositorySystem; - } - - @Override - public File getLocalArtifactLocation(GAV gav, String classifier, String extension) { -- File file = new File(localMavenRepositoryRoot, -+ File ret = new File(localMavenRepositoryRoot, - RepositoryLayoutHelper.getRelativePath(gav, classifier, extension)); -- // In Fedora the artifact may be in an XMvn-defined repository location (not in reactor cache) -- if (!file.exists()) { -- try { -- // Create Plexus config -- Class pcclazz = Class.forName("org.codehaus.plexus.ContainerConfiguration"); -- Object conf = Class.forName("org.codehaus.plexus.DefaultContainerConfiguration").newInstance(); -- pcclazz.getMethod("setAutoWiring", boolean.class).invoke(conf, true); -- pcclazz.getMethod("setClassPathScanning", String.class).invoke(conf, "index"); -- -- // Use plexus container to lookup the reader -- Class pclazz = Class.forName("org.codehaus.plexus.DefaultPlexusContainer"); -- Object plexus = pclazz.getConstructor(pcclazz).newInstance(conf); -- -- // Retrieve the workspace reader from the plexus container -- Method mLookup = pclazz.getMethod("lookup", String.class, String.class); -- Object reader = mLookup.invoke(plexus, "org.eclipse.aether.repository.WorkspaceReader", "ide"); -- -- // Create an Aether Artifact based on GAV, classifier, and extension -- Class iartclazz = Class.forName("org.eclipse.aether.artifact.Artifact"); -- Class artclazz = Class.forName("org.eclipse.aether.artifact.DefaultArtifact"); -- Constructor cNew = artclazz.getConstructor(String.class, String.class, String.class, String.class, -- String.class); -- Object artifact = cNew.newInstance(gav.getGroupId(), gav.getArtifactId(), classifier, extension, -- gav.getVersion()); -- -- // Invoke "findArtifact" method of the workspace reader on the artifact -- Method mfindArtifact = reader.getClass().getMethod("findArtifact", iartclazz); -- File newFile = (File) mfindArtifact.invoke(reader, artifact); -- if (newFile != null) { -- file = newFile; -- } -- } catch (Exception e) { -- e.printStackTrace(); -+ if (repositorySystem != null) { -+ File tmp = repositorySystem.resolve(gav.getGroupId(), gav.getArtifactId(), gav.getVersion(), extension, -+ classifier); -+ if (tmp != null) { -+ ret = tmp; - } - } -- return file; -+ return ret; - } - - } -diff --git a/tycho-bundles/org.eclipse.tycho.test.utils/src/main/java/org/eclipse/tycho/repository/local/testutil/TemporaryLocalMavenRepository.java b/tycho-bundles/org.eclipse.tycho.test.utils/src/main/java/org/eclipse/tycho/repository/local/testutil/TemporaryLocalMavenRepository.java -index fe0c456..8b1a9d1 100644 ---- a/tycho-bundles/org.eclipse.tycho.test.utils/src/main/java/org/eclipse/tycho/repository/local/testutil/TemporaryLocalMavenRepository.java -+++ b/tycho-bundles/org.eclipse.tycho.test.utils/src/main/java/org/eclipse/tycho/repository/local/testutil/TemporaryLocalMavenRepository.java -@@ -19,6 +19,7 @@ import org.eclipse.equinox.internal.p2.core.helpers.FileUtils; - import org.eclipse.tycho.p2.repository.LocalRepositoryP2Indices; - import org.eclipse.tycho.repository.local.LocalArtifactRepository; - import org.eclipse.tycho.repository.local.index.LocalRepositoryP2IndicesImpl; -+import org.eclipse.tycho.test.util.MavenRepositorySystemStub; - import org.eclipse.tycho.test.util.NoopFileLockService; - import org.junit.Rule; - import org.junit.rules.ExternalResource; -@@ -74,7 +75,8 @@ public class TemporaryLocalMavenRepository extends ExternalResource { - - public LocalArtifactRepository getLocalArtifactRepository() { - if (repo == null) { -- repo = new LocalArtifactRepository(null, getLocalRepositoryIndex()); -+ repo = new LocalArtifactRepository(null, getLocalRepositoryIndex(), -+ new MavenRepositorySystemStub(getLocalRepositoryRoot())); - } - return repo; - } -diff --git a/tycho-bundles/org.eclipse.tycho.test.utils/src/main/java/org/eclipse/tycho/test/util/MavenRepositorySystemStub.java b/tycho-bundles/org.eclipse.tycho.test.utils/src/main/java/org/eclipse/tycho/test/util/MavenRepositorySystemStub.java -new file mode 100644 -index 0000000..be02d64 ---- /dev/null -+++ b/tycho-bundles/org.eclipse.tycho.test.utils/src/main/java/org/eclipse/tycho/test/util/MavenRepositorySystemStub.java -@@ -0,0 +1,30 @@ -+/******************************************************************************* -+ * Copyright (c) 2014 Red Hat Inc. -+ * All rights reserved. This program and the accompanying materials -+ * are made available under the terms of the Eclipse Public License v1.0 -+ * which accompanies this distribution, and is available at -+ * http://www.eclipse.org/legal/epl-v10.html -+ * -+ * Contributors: -+ * Red Hat Inc. - initial API and implementation -+ *******************************************************************************/ -+package org.eclipse.tycho.test.util; -+ -+import java.io.File; -+ -+import org.eclipse.tycho.core.shared.MavenRepositorySystem; -+import org.eclipse.tycho.p2.repository.RepositoryLayoutHelper; -+ -+public class MavenRepositorySystemStub implements MavenRepositorySystem { -+ -+ private File localMavenRepositoryRoot; -+ -+ public MavenRepositorySystemStub(File localMavenRepositoryRoot) { -+ this.localMavenRepositoryRoot = localMavenRepositoryRoot; -+ } -+ -+ public File resolve(String gid, String aid, String version, String type, String classifier) { -+ return new File(localMavenRepositoryRoot, -+ RepositoryLayoutHelper.getRelativePath(gid, aid, version, classifier, type)); -+ } -+} -diff --git a/tycho-core/src/main/java/org/eclipse/tycho/osgi/adapters/MavenRepositorySystemAdapter.java b/tycho-core/src/main/java/org/eclipse/tycho/osgi/adapters/MavenRepositorySystemAdapter.java -new file mode 100644 -index 0000000..e1d46fa ---- /dev/null -+++ b/tycho-core/src/main/java/org/eclipse/tycho/osgi/adapters/MavenRepositorySystemAdapter.java -@@ -0,0 +1,37 @@ -+/******************************************************************************* -+ * Copyright (c) 2014 Red Hat Inc. -+ * All rights reserved. This program and the accompanying materials -+ * are made available under the terms of the Eclipse Public License v1.0 -+ * which accompanies this distribution, and is available at -+ * http://www.eclipse.org/legal/epl-v10.html -+ * -+ * Contributors: -+ * Red Hat Inc. - initial API and implementation -+ *******************************************************************************/ -+package org.eclipse.tycho.osgi.adapters; -+ -+import java.io.File; -+ -+import org.apache.maven.artifact.Artifact; -+import org.apache.maven.artifact.resolver.ArtifactResolutionRequest; -+import org.apache.maven.artifact.resolver.ArtifactResolutionResult; -+import org.apache.maven.repository.RepositorySystem; -+import org.eclipse.tycho.core.shared.MavenRepositorySystem; -+ -+public class MavenRepositorySystemAdapter implements MavenRepositorySystem { -+ -+ private RepositorySystem repoSystem; -+ -+ public MavenRepositorySystemAdapter(RepositorySystem repoSystem) { -+ this.repoSystem = repoSystem; -+ } -+ -+ public File resolve(String gid, String aid, String version, String type, String classifier) { -+ ArtifactResolutionRequest req = new ArtifactResolutionRequest(); -+ Artifact art = repoSystem.createArtifactWithClassifier(gid, aid, version, type, classifier); -+ req.setArtifact(art); -+ ArtifactResolutionResult res = repoSystem.resolve(req); -+ return res.getArtifacts().size() > 0 ? res.getArtifacts().toArray(new Artifact[0])[0].getFile() : null; -+ } -+ -+} -diff --git a/tycho-core/src/main/java/org/eclipse/tycho/osgi/configuration/MavenContextConfigurator.java b/tycho-core/src/main/java/org/eclipse/tycho/osgi/configuration/MavenContextConfigurator.java -index 4a21341..e16c7e0 100644 ---- a/tycho-core/src/main/java/org/eclipse/tycho/osgi/configuration/MavenContextConfigurator.java -+++ b/tycho-core/src/main/java/org/eclipse/tycho/osgi/configuration/MavenContextConfigurator.java -@@ -18,6 +18,7 @@ import java.util.Properties; - import org.apache.maven.execution.MavenSession; - import org.apache.maven.plugin.LegacySupport; - import org.apache.maven.project.MavenProject; -+import org.apache.maven.repository.RepositorySystem; - import org.apache.maven.settings.Profile; - import org.apache.maven.settings.Settings; - import org.codehaus.plexus.component.annotations.Component; -@@ -29,6 +30,7 @@ import org.eclipse.tycho.core.osgitools.DefaultReactorProject; - import org.eclipse.tycho.core.shared.MavenContext; - import org.eclipse.tycho.core.shared.MavenContextImpl; - import org.eclipse.tycho.osgi.adapters.MavenLoggerAdapter; -+import org.eclipse.tycho.osgi.adapters.MavenRepositorySystemAdapter; - - @Component(role = EquinoxLifecycleListener.class, hint = "MavenContextConfigurator") - public class MavenContextConfigurator extends EquinoxLifecycleListener { -@@ -39,6 +41,9 @@ public class MavenContextConfigurator extends EquinoxLifecycleListener { - @Requirement - private LegacySupport context; - -+ @Requirement -+ private RepositorySystem repositorySystem; -+ - @Override - public void afterFrameworkStarted(EmbeddedEquinox framework) { - MavenSession session = context.getSession(); -@@ -46,7 +51,7 @@ public class MavenContextConfigurator extends EquinoxLifecycleListener { - MavenLoggerAdapter mavenLogger = new MavenLoggerAdapter(logger, false); - Properties globalProps = getGlobalProperties(session); - MavenContextImpl mavenContext = new MavenContextImpl(localRepoRoot, session.isOffline(), mavenLogger, -- globalProps); -+ globalProps, new MavenRepositorySystemAdapter(repositorySystem)); - for (MavenProject project : session.getProjects()) { - mavenContext.addProject(DefaultReactorProject.adapt(project)); - } --- -2.28.0 - diff --git a/0004-Fix-uncaught-exception.patch b/0004-Fix-uncaught-exception.patch deleted file mode 100644 index aedf401..0000000 --- a/0004-Fix-uncaught-exception.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 3ad22ed9fa3d227fa0d508c333be9319d9082fc6 Mon Sep 17 00:00:00 2001 -From: Mat Booth -Date: Thu, 20 Feb 2020 16:08:00 +0000 -Subject: [PATCH 4/7] Fix uncaught exception - -"unreported exception org.codehaus.plexus.configuration.PlexusConfigurationException; must be caught or declared to be thrown" ---- - .../tycho/extras/sourcefeature/SourceFeatureMojo.java | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/tycho-extras/tycho-source-feature-plugin/src/main/java/org/eclipse/tycho/extras/sourcefeature/SourceFeatureMojo.java b/tycho-extras/tycho-source-feature-plugin/src/main/java/org/eclipse/tycho/extras/sourcefeature/SourceFeatureMojo.java -index 36f1eed..87815d1 100644 ---- a/tycho-extras/tycho-source-feature-plugin/src/main/java/org/eclipse/tycho/extras/sourcefeature/SourceFeatureMojo.java -+++ b/tycho-extras/tycho-source-feature-plugin/src/main/java/org/eclipse/tycho/extras/sourcefeature/SourceFeatureMojo.java -@@ -576,7 +576,12 @@ public class SourceFeatureMojo extends AbstractMojo { - } - - private String getAttribute(PlexusConfiguration dom, String attrName) { -- String attr = dom.getAttribute(attrName); -+ String attr = null; -+ try { -+ attr = dom.getAttribute(attrName); -+ } catch (Exception ex) { -+ attr = null; -+ } - if (attr == null) { - return null; - } --- -2.28.0 - diff --git a/0005-Fix-dependency-problems-when-bootstrapping-with-extr.patch b/0005-Fix-dependency-problems-when-bootstrapping-with-extr.patch deleted file mode 100644 index c0a8293..0000000 --- a/0005-Fix-dependency-problems-when-bootstrapping-with-extr.patch +++ /dev/null @@ -1,88 +0,0 @@ -From 085015460b077536f94cafeb21a3ce868fd56096 Mon Sep 17 00:00:00 2001 -From: Mat Booth -Date: Fri, 20 Mar 2020 02:35:02 +0000 -Subject: [PATCH 5/7] Fix dependency problems when bootstrapping with extras - ---- - tycho-extras/pack200/tycho-pack200b-plugin/pom.xml | 4 ++-- - tycho-extras/pom.xml | 10 +++++----- - tycho-extras/tycho-source-feature-plugin/pom.xml | 4 ++-- - 3 files changed, 9 insertions(+), 9 deletions(-) - -diff --git a/tycho-extras/pack200/tycho-pack200b-plugin/pom.xml b/tycho-extras/pack200/tycho-pack200b-plugin/pom.xml -index 55a4107..4af01c5 100644 ---- a/tycho-extras/pack200/tycho-pack200b-plugin/pom.xml -+++ b/tycho-extras/pack200/tycho-pack200b-plugin/pom.xml -@@ -36,7 +36,7 @@ - - org.eclipse.tycho - org.eclipse.tycho.p2.resolver.shared -- ${tycho-version} -+ ${project.version} - - -- -\ No newline at end of file -+ -diff --git a/tycho-extras/pom.xml b/tycho-extras/pom.xml -index 416abd1..53ddf73 100644 ---- a/tycho-extras/pom.xml -+++ b/tycho-extras/pom.xml -@@ -72,28 +72,28 @@ - - org.eclipse.tycho - tycho-core -- ${tycho-version} -+ ${project.version} - - - org.eclipse.tycho - tycho-p2-facade -- ${tycho-version} -+ ${project.version} - - - org.eclipse.tycho - org.eclipse.tycho.core.shared -- ${tycho-version} -+ ${project.version} - - - org.eclipse.tycho - tycho-testing-harness -- ${tycho-version} -+ ${project.version} - test - - - org.eclipse.tycho - sisu-equinox-launching -- ${tycho-version} -+ ${project.version} - - - org.eclipse.tycho -diff --git a/tycho-extras/tycho-source-feature-plugin/pom.xml b/tycho-extras/tycho-source-feature-plugin/pom.xml -index bfccba8..2d4162c 100644 ---- a/tycho-extras/tycho-source-feature-plugin/pom.xml -+++ b/tycho-extras/tycho-source-feature-plugin/pom.xml -@@ -42,14 +42,14 @@ - - org.eclipse.tycho - tycho-packaging-plugin -- ${tycho-version} -+ ${project.version} - maven-plugin - - - - org.eclipse.tycho - tycho-source-plugin -- ${tycho-version} -+ ${project.version} - maven-plugin - - --- -2.28.0 - diff --git a/0006-Use-custom-resolver-for-tycho-eclipserun-plugin.patch b/0006-Use-custom-resolver-for-tycho-eclipserun-plugin.patch deleted file mode 100644 index a6d61e0..0000000 --- a/0006-Use-custom-resolver-for-tycho-eclipserun-plugin.patch +++ /dev/null @@ -1,51 +0,0 @@ -From cec1526c14fe52697eea6864285f3700c22178fa Mon Sep 17 00:00:00 2001 -From: Roland Grunberg -Date: Mon, 6 May 2013 14:20:58 -0400 -Subject: [PATCH 6/7] Use custom resolver for tycho-eclipserun-plugin. - -Add various system local OSGi bundle locations to the target platform -used by tycho-eclipserun-plugin. - -Change-Id: Ifd0aae3f32c8077cd0ae33e70f40698c1129788d ---- - .../tycho/extras/eclipserun/EclipseRunMojo.java | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/tycho-extras/tycho-eclipserun-plugin/src/main/java/org/eclipse/tycho/extras/eclipserun/EclipseRunMojo.java b/tycho-extras/tycho-eclipserun-plugin/src/main/java/org/eclipse/tycho/extras/eclipserun/EclipseRunMojo.java -index e10b211..d0f0857 100644 ---- a/tycho-extras/tycho-eclipserun-plugin/src/main/java/org/eclipse/tycho/extras/eclipserun/EclipseRunMojo.java -+++ b/tycho-extras/tycho-eclipserun-plugin/src/main/java/org/eclipse/tycho/extras/eclipserun/EclipseRunMojo.java -@@ -15,6 +15,7 @@ package org.eclipse.tycho.extras.eclipserun; - - import java.io.File; - import java.net.MalformedURLException; -+import java.net.URI; - import java.util.ArrayList; - import java.util.List; - import java.util.Map; -@@ -57,6 +58,7 @@ import org.eclipse.tycho.p2.resolver.facade.P2Resolver; - import org.eclipse.tycho.p2.resolver.facade.P2ResolverFactory; - import org.eclipse.tycho.p2.target.facade.TargetPlatformConfigurationStub; - import org.eclipse.tycho.plugins.p2.extras.Repository; -+import org.fedoraproject.p2.EclipseSystemLayout; - - /** - * Launch an eclipse process with arbitrary commandline arguments. The eclipse installation is -@@ -240,6 +242,14 @@ public class EclipseRunMojo extends AbstractMojo { - TargetPlatformConfigurationStub tpConfiguration = new TargetPlatformConfigurationStub(); - // we want to resolve from remote repos only - tpConfiguration.setForceIgnoreLocalArtifacts(true); -+ -+ // Add Fedora Local P2 Repository when running in local mode -+ if (System.getProperty("TYCHO_MVN_LOCAL") != null || System.getProperty("TYCHO_MVN_RPMBUILD") != null) { -+ for (URI uri : EclipseSystemLayout.getRepositories()) { -+ tpConfiguration.addP2Repository(new MavenRepositoryLocation(uri.getPath(), uri)); -+ } -+ } -+ - for (Repository repository : repositories) { - tpConfiguration.addP2Repository(new MavenRepositoryLocation(repository.getId(), repository.getLocation())); - } --- -2.28.0 - diff --git a/0007-Accomodate-API-change-in-surefire-3.0.0-M4.patch b/0007-Accomodate-API-change-in-surefire-3.0.0-M4.patch deleted file mode 100644 index f497742..0000000 --- a/0007-Accomodate-API-change-in-surefire-3.0.0-M4.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 7aae9528d45e45602cf27122c07a065d47a8418d Mon Sep 17 00:00:00 2001 -From: Mat Booth -Date: Mon, 8 Feb 2021 13:49:24 +0000 -Subject: [PATCH 7/7] Accomodate API change in surefire 3.0.0~M4 - ---- - .../META-INF/MANIFEST.MF | 1 + - .../pom.xml | 5 +++++ - .../surefire/osgibooter/OsgiSurefireBooter.java | 17 +++++++++++++---- - 3 files changed, 19 insertions(+), 4 deletions(-) - -diff --git a/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/META-INF/MANIFEST.MF b/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/META-INF/MANIFEST.MF -index 9ad1c2e..4ad1fe9 100644 ---- a/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/META-INF/MANIFEST.MF -+++ b/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/META-INF/MANIFEST.MF -@@ -8,6 +8,7 @@ Bundle-ClassPath: ., - jars/surefire-booter-2.22.2.jar, - jars/surefire-api-2.22.2.jar, - jars/surefire-logger-api-2.22.2.jar, -+ jars/surefire-extensions-api-2.22.2.jar, - jars/maven-surefire-common-2.22.2.jar - Bundle-Name: Tycho Surefire OSGi Booter Eclipse Application - Bundle-ManifestVersion: 2 -diff --git a/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/pom.xml b/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/pom.xml -index 1ab4254..8255509 100644 ---- a/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/pom.xml -+++ b/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/pom.xml -@@ -57,6 +57,11 @@ - surefire-api - ${surefire-version} - -+ -+ org.apache.maven.surefire -+ surefire-extensions-api -+ ${surefire-version} -+ - - org.apache.maven.surefire - surefire-logger-api -diff --git a/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/src/main/java/org/eclipse/tycho/surefire/osgibooter/OsgiSurefireBooter.java b/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/src/main/java/org/eclipse/tycho/surefire/osgibooter/OsgiSurefireBooter.java -index 3680799..165c9a3 100644 ---- a/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/src/main/java/org/eclipse/tycho/surefire/osgibooter/OsgiSurefireBooter.java -+++ b/tycho-surefire/org.eclipse.tycho.surefire.osgibooter/src/main/java/org/eclipse/tycho/surefire/osgibooter/OsgiSurefireBooter.java -@@ -28,6 +28,9 @@ import java.util.Properties; - import java.util.Set; - - import org.apache.maven.plugin.surefire.StartupReportConfiguration; -+import org.apache.maven.plugin.surefire.extensions.SurefireConsoleOutputReporter; -+import org.apache.maven.plugin.surefire.extensions.SurefireStatelessReporter; -+import org.apache.maven.plugin.surefire.extensions.SurefireStatelessTestsetInfoReporter; - import org.apache.maven.plugin.surefire.log.api.PrintStreamLogger; - import org.apache.maven.plugin.surefire.report.ConsoleReporter; - import org.apache.maven.plugin.surefire.report.DefaultReporterFactory; -@@ -93,7 +96,7 @@ public class OsgiSurefireBooter { - - ClasspathConfiguration classPathConfig = new ClasspathConfiguration(false, false); - StartupConfiguration startupConfiguration = new StartupConfiguration(provider, classPathConfig, -- new ClassLoaderConfiguration(useSystemClassloader, useManifestOnlyJar), forkRequested, inForkedVM); -+ new ClassLoaderConfiguration(useSystemClassloader, useManifestOnlyJar), forkRequested, inForkedVM, null); - // TODO dir scanning with no includes done here (done in TestMojo already) - // but without dirScannerParams we get an NPE accessing runOrder - DirectoryScannerParameters dirScannerParams = new DirectoryScannerParameters(testClassesDir, -@@ -106,11 +109,17 @@ public class OsgiSurefireBooter { - new RunOrderParameters(runOrder, null), failIfNoTests, reporterConfig, null, testRequest, - extractProviderProperties(testProps), null, false, Collections. emptyList(), - skipAfterFailureCount, Shutdown.DEFAULT, 30); -+ -+ SurefireStatelessReporter xmlReporter = new SurefireStatelessReporter(disableXmlReport, "3.0" ); -+ xmlReporter.setDisable(disableXmlReport); -+ SurefireConsoleOutputReporter outReporter = new SurefireConsoleOutputReporter(); -+ SurefireStatelessTestsetInfoReporter testsetReporter = new SurefireStatelessTestsetInfoReporter(); -+ - StartupReportConfiguration startupReportConfig = new StartupReportConfiguration(useFile, printSummary, -- ConsoleReporter.PLAIN, redirectTestOutputToFile, disableXmlReport, reportsDir, trimStackTrace, null, -- new File(reportsDir, "TESTHASH"), false, rerunFailingTestsCount, XSD, null, false); -+ ConsoleReporter.PLAIN, redirectTestOutputToFile, reportsDir, trimStackTrace, null, -+ new File(reportsDir, "TESTHASH"), false, rerunFailingTestsCount, XSD, null, false, xmlReporter, outReporter, testsetReporter); - ReporterFactory reporterFactory = new DefaultReporterFactory(startupReportConfig, -- new PrintStreamLogger(startupReportConfig.getOriginalSystemOut())); -+ new PrintStreamLogger(System.out)); - // API indicates we should use testClassLoader below but surefire also tries - // to load surefire classes using this classloader - RunResult result = ProviderFactory.invokeProvider(null, createCombinedClassLoader(testPlugin), reporterFactory, --- -2.28.0 - diff --git a/EmptyMojo.java b/EmptyMojo.java deleted file mode 100644 index 84d970f..0000000 --- a/EmptyMojo.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.fedoraproject; - -import org.apache.maven.plugin.MojoExecutionException; -import org.apache.maven.plugin.MojoFailureException; -import org.apache.maven.plugin.AbstractMojo; - -/** - * Empty goal to fix - * @goal empty - * @phase clean - */ -public class EmptyMojo - extends AbstractMojo -{ - public void execute() - throws MojoExecutionException, MojoFailureException - { - } -} diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..af85249 --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +tycho package is retired on c9s for CS-935 diff --git a/p2-install.sh b/p2-install.sh deleted file mode 100755 index e04cb9d..0000000 --- a/p2-install.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -set -e - -_prefer_jre="true" -. /usr/share/java-utils/java-functions - -set_jvm - -set_classpath \ - beust-jcommander \ - eclipse/osgi \ - slf4j/api \ - slf4j/simple \ - tycho/org.fedoraproject.p2 \ - tycho/xmvn-p2-installer-plugin \ - xmvn/xmvn-api \ - xmvn/xmvn-core \ - -MAIN_CLASS=org.fedoraproject.p2.app.P2InstallerApp -run "$@" diff --git a/sources b/sources deleted file mode 100644 index 2e1ff11..0000000 --- a/sources +++ /dev/null @@ -1,3 +0,0 @@ -SHA512 (fedoraproject-p2-0be3abaa1729553b13f384a008b1cd1fb00beaf4.tar.gz) = 0fc3585203eff6dcaf08c679a258dc8f108a6d64a29f88983a8ac10ae82641b85ea5cf05e112daadaeef95d798255d1307efd8b2d55b5d482b36b448709f7ab5 -SHA512 (eclipse-bootstrap-2020-12.tar.xz) = 28d93663bb7e4d86341fc40c648416039f57cee7bb3922ea1cb939f69d70e8fd857120ead181e3877455af5abfb3d400dacb7efcffd3344e1276c0ad11782513 -SHA512 (org.eclipse.tycho-tycho-2.2.0.tar.xz) = 4c37b4d3bbd55bf4a433f44cf0f98f63c147d97f094a0c43e8379c5006df8eb033b2000abfa148ad279129d70bb6499dca9f0e753c2f60697e7042187483e457 diff --git a/tycho-bootstrap.sh b/tycho-bootstrap.sh deleted file mode 100755 index 279df55..0000000 --- a/tycho-bootstrap.sh +++ /dev/null @@ -1,113 +0,0 @@ -#! /bin/bash -e - -. $(pwd)/tycho-scripts.sh - -preV=$1 -v="$preV-SNAPSHOT" -osgiV='3.16.100.v20201211-1332' -osgiCompatV='1.2.200.v20201211-1332' -fp2V='0.0.1-SNAPSHOT' -bundles=() -bundles[0]='tycho-bundles/org.eclipse.tycho.embedder.shared' -bundles[1]='tycho-bundles/org.eclipse.tycho.core.shared' -bundles[2]='tycho-bundles/org.eclipse.tycho.p2.resolver.shared' -bundles[3]='tycho-bundles/org.eclipse.tycho.p2.tools.shared' -bundles[4]='tycho-bundles/org.eclipse.tycho.p2.maven.repository' -bundles[5]='tycho-bundles/org.eclipse.tycho.p2.resolver.impl' -bundles[6]='tycho-bundles/org.eclipse.tycho.p2.tools.impl' - -xtraBundles[0]='fedoraproject-p2/org.fedoraproject.p2' - -deps[0]="" -deps[1]="tycho-bundles/org.eclipse.tycho.embedder.shared/target/org.eclipse.tycho.embedder.shared-${v}.jar" -deps[2]="tycho-bundles/org.eclipse.tycho.embedder.shared/target/org.eclipse.tycho.embedder.shared-${v}.jar:tycho-bundles/org.eclipse.tycho.core.shared/target/org.eclipse.tycho.core.shared-${v}.jar" -deps[3]="tycho-bundles/org.eclipse.tycho.embedder.shared/target/org.eclipse.tycho.embedder.shared-${v}.jar:tycho-bundles/org.eclipse.tycho.core.shared/target/org.eclipse.tycho.core.shared-${v}.jar:tycho-bundles/org.eclipse.tycho.p2.resolver.shared/target/org.eclipse.tycho.p2.resolver.shared-${v}.jar" -deps[4]="tycho-bundles/org.eclipse.tycho.embedder.shared/target/org.eclipse.tycho.embedder.shared-${v}.jar:tycho-bundles/org.eclipse.tycho.core.shared/target/org.eclipse.tycho.core.shared-${v}.jar:tycho-bundles/org.eclipse.tycho.p2.resolver.shared/target/org.eclipse.tycho.p2.resolver.shared-${v}.jar" -deps[5]="tycho-bundles/org.eclipse.tycho.embedder.shared/target/org.eclipse.tycho.embedder.shared-${v}.jar:tycho-bundles/org.eclipse.tycho.core.shared/target/org.eclipse.tycho.core.shared-${v}.jar:tycho-bundles/org.eclipse.tycho.p2.resolver.shared/target/org.eclipse.tycho.p2.resolver.shared-${v}.jar:tycho-bundles/org.eclipse.tycho.p2.maven.repository/target/org.eclipse.tycho.p2.maven.repository-${v}.jar:fedoraproject-p2/org.fedoraproject.p2/target/org.fedoraproject.p2-${fp2V}.jar" -deps[6]="tycho-bundles/org.eclipse.tycho.embedder.shared/target/org.eclipse.tycho.embedder.shared-${v}.jar:tycho-bundles/org.eclipse.tycho.core.shared/target/org.eclipse.tycho.core.shared-${v}.jar:tycho-bundles/org.eclipse.tycho.p2.resolver.shared/target/org.eclipse.tycho.p2.resolver.shared-${v}.jar:tycho-bundles/org.eclipse.tycho.p2.tools.shared/target/org.eclipse.tycho.p2.tools.shared-${v}.jar:tycho-bundles/org.eclipse.tycho.p2.maven.repository/target/org.eclipse.tycho.p2.maven.repository-${v}.jar:tycho-bundles/org.eclipse.tycho.p2.resolver.impl/target/org.eclipse.tycho.p2.resolver.impl-${v}.jar" - -xtraDeps[0]="" - -externalDeps[4]="org.eclipse.equinox.common,org.eclipse.equinox.p2.repository,org.eclipse.equinox.p2.metadata,org.eclipse.equinox.p2.core,org.eclipse.equinox.p2.metadata.repository,org.eclipse.equinox.p2.artifact.repository,org.eclipse.osgi" -externalDeps[5]="org.eclipse.core.runtime,org.eclipse.equinox.security,org.eclipse.equinox.frameworkadmin.equinox,org.eclipse.equinox.frameworkadmin,org.eclipse.equinox.p2.core,org.eclipse.equinox.p2.metadata,org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.p2.artifact.repository,org.eclipse.equinox.p2.metadata.repository,org.eclipse.equinox.p2.director,org.eclipse.equinox.p2.repository,org.eclipse.equinox.p2.updatesite,org.eclipse.core.net,org.eclipse.equinox.common,org.eclipse.osgi,org.eclipse.equinox.preferences,biz.aQute.bndlib" -externalDeps[6]="org.eclipse.equinox.p2.director.app,org.eclipse.equinox.frameworkadmin.equinox,org.eclipse.equinox.frameworkadmin,org.eclipse.equinox.p2.core,org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.updatesite,org.eclipse.core.runtime,org.eclipse.equinox.p2.metadata,org.eclipse.equinox.p2.repository,org.eclipse.equinox.p2.repository.tools,org.eclipse.equinox.p2.metadata.repository,org.eclipse.equinox.p2.artifact.repository,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.p2.engine,org.eclipse.equinox.p2.director,org.eclipse.osgi,org.eclipse.equinox.common,org.eclipse.equinox.app,org.eclipse.equinox.registry" - -xtraExternalDeps[0]="org.eclipse.osgi,org.eclipse.core.runtime,org.eclipse.equinox.common,org.eclipse.equinox.p2.metadata,org.eclipse.equinox.p2.repository,org.eclipse.equinox.p2.core,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.touchpoint.eclipse,org.eclipse.equinox.p2.updatesite,org.eclipse.equinox.p2.repository.tools,org.eclipse.equinox.app,slf4j.api" - -reactorprojs=( 'tycho-embedder-api' 'tycho-metadata-model' 'sisu-equinox/sisu-equinox-api' 'sisu-equinox/sisu-equinox-embedder' 'tycho-core' 'tycho-packaging-plugin' 'tycho-p2/tycho-p2-facade' 'tycho-maven-plugin' 'tycho-p2/tycho-p2-repository-plugin' 'tycho-p2/tycho-p2-publisher-plugin' 'target-platform-configuration' 'tycho-artifactcomparator' 'sisu-equinox/sisu-equinox-launching' 'tycho-p2/tycho-p2-plugin' 'tycho-lib-detector' 'tycho-compiler-jdt' 'tycho-compiler-plugin' ) - -for ((i=0; i < ${#xtraBundles[@]}; i++)) ;do - echo '' - echo 'Building ' ${xtraBundles[${i}]} '...' - echo '' - isolateProject ${xtraBundles[${i}]} ${fp2V} - minibuild ${xtraBundles[${i}]} "${xtraDeps[${i}]}" ${xtraExternalDeps[${i}]} - unifyProject ${xtraBundles[${i}]} -done - -# TODO: stop minibuild function from hard-coding org/eclipse/tycho GID path -dir=$(pwd)/.m2/org/fedoraproject/p2/org.fedoraproject.p2/ -mkdir -p ${dir} -ln -s $(pwd)/.m2/org/eclipse/tycho/org.fedoraproject.p2/${fp2V} ${dir} - -for ((i=0; i < ${#bundles[@]}; i++)) ;do - echo '' - echo 'Building ' ${bundles[${i}]} '...' - echo '' - isolateProject ${bundles[${i}]} - minibuild ${bundles[${i}]} "${deps[${i}]}" ${externalDeps[${i}]} - unifyProject ${bundles[${i}]} -done - -# Run the build on this maven reactor project -for proj in ${reactorprojs[@]} ; do - isolateProject ${proj} - xmvn -B -o -e -f "${proj}/pom.xml" -Dmaven.repo.local=$(pwd)/.m2 -Dmaven.test.skip=true \ - -Dmaven.compiler.source=11 -Dmaven.compiler.target=11 -Dmaven.compiler.release=11 -Dproject.build.sourceEncoding=UTF-8 \ - clean install - unifyProject ${proj} -done - -# Add org.fedoraproject.p2 to target platform for tycho-bundles-external -extras='bootstrap/extras' -mkdir -p ${extras} -fp2Loc=`find .m2 -name "org.fedoraproject.p2-*.jar"` -cp ${fp2Loc} ${extras} - -# Tycho Bundles External (needed for Tycho's OSGi Runtime) -tbeDir='tycho-bundles/tycho-bundles-external' -tbeTargetDir="${tbeDir}/target" -wantedBundles=`sed 's/ fragment=\"true\"//' "${tbeDir}/tycho-bundles-external.product" | sed -n 's/.*.*/\1/ p'` - -mkdir -p ${tbeTargetDir}'/eclipse/plugins' -copyBundles "${wantedBundles}" "${tbeTargetDir}/eclipse/plugins" - -pushd ${tbeTargetDir} - -echo "#Eclipse Product File -version=${v} -name=org.eclipse.tycho.p2 -id=tycho-bundles-external" > 'eclipse/.eclipseproduct' - -mkdir -p 'eclipse/configuration' - -echo '#Product Runtime Configuration File -osgi.bundles=org.apache.commons.codec,org.apache.commons.logging,org.apache.httpcomponents.httpclient,org.apache.httpcomponents.httpcore,org.eclipse.core.contenttype,org.eclipse.core.jobs,org.eclipse.core.net,org.eclipse.core.runtime@4\:start,org.eclipse.core.runtime.compatibility.registry,org.eclipse.ecf,org.eclipse.ecf.filetransfer,org.eclipse.ecf.identity,org.eclipse.ecf.provider.filetransfer,org.eclipse.ecf.provider.filetransfer.httpclient4,org.eclipse.ecf.provider.filetransfer.httpclient4.ssl,org.eclipse.ecf.provider.filetransfer.ssl,org.eclipse.ecf.ssl,org.eclipse.equinox.app,org.eclipse.equinox.common@2\:start,org.eclipse.equinox.concurrent,org.eclipse.equinox.ds@2\:start,org.eclipse.equinox.frameworkadmin,org.eclipse.equinox.frameworkadmin.equinox,org.eclipse.equinox.launcher,org.eclipse.equinox.p2.artifact.repository,org.eclipse.equinox.p2.core,org.eclipse.equinox.p2.director,org.eclipse.equinox.p2.director.app,org.eclipse.equinox.p2.engine,org.eclipse.equinox.p2.garbagecollector,org.eclipse.equinox.p2.jarprocessor,org.eclipse.equinox.p2.metadata,org.eclipse.equinox.p2.metadata.repository,org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.p2.repository,org.eclipse.equinox.p2.repository.tools,org.eclipse.equinox.p2.touchpoint.eclipse,org.eclipse.equinox.p2.touchpoint.natives,org.eclipse.equinox.p2.transport.ecf,org.eclipse.equinox.p2.updatesite,org.eclipse.equinox.preferences,org.eclipse.equinox.registry,org.eclipse.equinox.security,org.eclipse.equinox.simpleconfigurator,org.eclipse.equinox.simpleconfigurator.manipulator,org.eclipse.equinox.util,org.eclipse.osgi.services,org.eclipse.osgi.compatibility.state,org.eclipse.tycho.noopsecurity,org.sat4j.core,org.sat4j.pb,org.eclipse.osgi.util,org.apache.felix.scr,org.kxml2,org.xmlpull,org.fedoraproject.p2 -osgi.bundles.defaultStartLevel=4 -eclipse.product=org.eclipse.equinox.p2.director.app.product -osgi.splashPath=platform\:/base/plugins/org' > 'eclipse/configuration/config.ini' - -zip -r "tycho-bundles-external-${v}.zip" 'eclipse' - -popd - -loc=".m2/org/eclipse/tycho/tycho-bundles-external/${v}" - -mkdir -p ${loc} -cp "${tbeTargetDir}/tycho-bundles-external-${v}.zip" ${loc} -cp 'tycho-bundles/tycho-bundles-external/pom.xml' "${loc}/tycho-bundles-external-${v}.pom" - -sed -i "s/.*<\/equinoxVersion>/${osgiV}<\/equinoxVersion>/" pom.xml -sed -i "s/.*<\/equinoxCompatVersion>/${osgiCompatV}<\/equinoxCompatVersion>/" pom.xml -# xmvn-p2-installer-plugin needs to find the org.eclipse.osgi bundle -sed -i "s/>\${equinox-version}${osgiV}.*/\1/ p'` -pushd ${tmpDir} -pluginsDir=`find . -type d -name plugins` -pushd ${pluginsDir} && rm -rf * -symlinkBundles "${wantedBundles}" -for b in *; do readlink $b; done >$mfLoc -popd -zip -ry ${zipFile} * -popd -mv ${tmpDir}/${zipFile} ${zipLoc} diff --git a/tycho-scripts.sh b/tycho-scripts.sh deleted file mode 100755 index 2043adb..0000000 --- a/tycho-scripts.sh +++ /dev/null @@ -1,181 +0,0 @@ -#! /bin/bash - -function minibuild () { - -basedir=$1 - -src=$(cat "${basedir}/build.properties" | grep 'source..' | cut -d'=' -f2 | sed -e 's/ //g') -output=$(cat "${basedir}/build.properties" | grep 'output..' | cut -d'=' -f2 | sed -e 's/ //g') -bName=$(cat "${basedir}/META-INF/MANIFEST.MF" | grep 'Bundle-SymbolicName:' | sed 's/Bundle-SymbolicName: \([a-zA-Z0-9_.-]*\)\(;\)\?.*/\1/') -artifactId=$(cat "${basedir}/pom.xml" | sed '//,/<\/parent>/ d' | grep "" | sed 's/.*\(.*\)<\/artifactId>.*/\1/') -version=$(cat "${basedir}/pom.xml" | grep "" | sed 's/.*\(.*\)<\/version>.*/\1/') - -# External (System) dependencies -if [ $# -eq 3 ]; then - mkdir -p "${basedir}/target/externalDeps" - copyBundles $3 "${basedir}/target/externalDeps" -else - mkdir -p "${basedir}/target" -fi - -mkdir -p "${basedir}/${output}" - -# Compile -cp= -if [ $# -gt 1 ]; then - cp='-classpath '$2':'"${basedir}"'/target/externalDeps/*' -fi - -javac -d "${basedir}/${output}" -encoding utf8 --release 11 \ - $(for file in `find "${basedir}/${src}" -name "*.java"`; \ - do echo -n "${file} "; \ - done;) \ - ${cp} - -# Package -pushd ${basedir} -pushd ${output} -classfiles=`for file in $(find . -name "*.class"); do echo -n ' -C '${output} ${file} ; done;` -popd -packagefiles="${classfiles}" -[ -e about.html ] && packagefiles="about.html $packagefiles" -[ -e plugin.properties ] && packagefiles="plugin.properties $packagefiles" -[ -e plugin.xml ] && packagefiles="plugin.xml $packagefiles" -[ -e OSGI-INF ] && packagefiles="OSGI-INF $packagefiles" -jar -cfmv "target/${bName}-${version}.jar" 'META-INF/MANIFEST.MF' ${packagefiles} -popd - -# Install -loc=".m2/org/eclipse/tycho/${artifactId}/${version}" -mkdir -p ${loc} -cp "${basedir}/target/${bName}-${version}.jar" ${loc} -cp "${basedir}/pom.xml" "${loc}/${bName}-${version}.pom" - -} - - -function copyBundles () { - -# X_SCLS expands to list of currently enabled SCLs, in the order they were enabled, if any -scls="$X_SCLS" -baseLocations=( '/usr/share/java' '/usr/lib/java' '/usr/lib/eclipse' ) -osgiLocations=(${baseLocations[@]} ${osgiLocations[@]} ) -for scl in ${scls} ; do - osgiLocations=( ${baseLocations[@]/#//opt/rh/${scl}/root} ${osgiLocations[@]} ) -done - -prefix="$(pwd)/bootstrap" -osgiLocations=( ${osgiLocations[@]/#/${prefix}} ) -osgiLocations+=( ${osgiLocations[@]/${prefix}/} ) -osgiLocations=( ${prefix}/extras ${osgiLocations[@]} ) - -wantedBundles=`echo $1 | tr ',' ' '` -destDir=$2 - -for loc in ${osgiLocations[@]} ; do - for jar in `find ${loc} -name "*.jar" 2>/dev/null`; do - bsn=`readBSN ${jar}` - if [ -n "${bsn}" ]; then - versionline=`unzip -p ${jar} 'META-INF/MANIFEST.MF' | grep 'Bundle-Version:'` - vers=`echo "${versionline}" | sed 's/Bundle-Version: \([a-zA-Z0-9_.-]*\).*/\1/'` - if echo ${wantedBundles} | grep "${bsn}" ; then - cp ${jar} "${destDir}/${bsn}_${vers}.jar" - wantedBundles=`removeFromList "${wantedBundles}" "${bsn}"` - fi - fi - done -done - -} - -function symlinkBundles () { - -# Bootstrap Built Tycho provides some Eclipse bundles -# Prevent non-bootstrap build's de-bundling from symlinking to them -# SCL priority is from right to left. -# X_SCLS expands to list of currently enabled SCLs, in the order they were enabled, if any -scls="$X_SCLS" -baseLocations=( '/usr/share/java/eclipse' '/usr/share/java' '/usr/lib/java' ) -osgiLocations=(${baseLocations[@]} ${osgiLocations[@]} ) -for scl in ${scls} ; do - osgiLocations=( ${baseLocations[@]/#//opt/rh/${scl}/root} ${osgiLocations[@]} ) -done - - -wantedBundles=`echo $1 | tr ',' ' '` - -for loc in ${osgiLocations[@]} ; do - for jar in `find ${loc} -name "*.jar" 2>/dev/null`; do - bsn=`readBSN ${jar}` - if [ -n "${bsn}" ]; then - echo ${wantedBundles} | grep -q "${bsn}" - if [ $? -eq 0 ]; then - ln -s ${jar} "${bsn}.jar" - wantedBundles=`removeFromList "${wantedBundles}" "${bsn}"` - fi - fi - done -done -} - -function removeFromList () { -arr=( ${1} ) -for (( i=0; i < ${#arr[@]}; i++ )); do - if [ "${arr[${i}]}" = "$2" ]; then - arr[${i}]= - fi -done -echo ${arr[@]} -} - -function isolateProject () { - cp $1/pom.xml $1/pom.xml.boot - - sed -i -e "/org.eclipse.osgi${osgiV}" \ - -e "/org.eclipse.osgi.compatibility.state${osgiCompatV}" \ - -e '//,/<\/parent>/ d' "$1/pom.xml" - if ! grep -q generate-metadata "$1/pom.xml" ; then - sed -i -e "/plexus-component-metadata1.5.5generate-metadata" "$1/pom.xml" - fi - - if [ $# -eq 2 ]; then - sed -i "// a org.eclipse.tycho<\/groupId>$2<\/version>" "$1/pom.xml" - else - sed -i "// a org.eclipse.tycho<\/groupId>${v}<\/version>" "$1/pom.xml" - fi -} - -function unifyProject () { - cp $1/pom.xml.boot $1/pom.xml -} - -function readBSN () { - -bsn= -manEntryPat="^[a-zA-Z-]*:" -foundBSNLine=0 - -while read line; do -if [ ${foundBSNLine} -eq 1 ]; then - echo ${line} | grep -qE ${manEntryPat} - if [ $? -eq 0 ]; then - break - else - bsn=${bsn}"`echo ${line} | sed 's/\([a-zA-Z0-9_.-]*\)\(;\)\?.*/\1/'`" - fi -fi - -echo ${line} | grep -q "Bundle-SymbolicName:" -if [ $? -eq 0 ]; then - bsn=`echo ${line} | grep 'Bundle-SymbolicName:' | sed 's/Bundle-SymbolicName: \([a-zA-Z0-9_.-]*\)\(;\)\?.*/\1/'` - echo ${line} | grep "Bundle-SymbolicName:" | grep -q ";" - if [ $? -eq 0 ]; then - break - fi - foundBSNLine=1 -fi -done < <(unzip -p $1 'META-INF/MANIFEST.MF') - -echo ${bsn} - -} diff --git a/tycho.spec b/tycho.spec deleted file mode 100644 index 8945bb8..0000000 --- a/tycho.spec +++ /dev/null @@ -1,1271 +0,0 @@ -# Tycho depends on itself, and Eclipse to build but in certain cases these -# requirements may not be satisfiable then building Tycho becomes problematic. -# For example: -# * A library (in Fedora) used by Tycho's runtime broke API and so Tycho -# from the buildroot is broken -# * Building into a new distro or buildroot, where neither Tycho nor Eclipse -# is available yet and we need to build Tycho before building Eclipse -# In bootstrap mode, javac and plain xmvn are used to build a subset of -# Tycho such that it can build a bootstrap mode Eclipse and subsequently -# fully rebuild itself. In this mode, there may be reduced functionality, -# so a full non-bootstrap mode build should always be done afterwards. -%bcond_with bootstrap - -# Allow conditionally building without Junit 5 support -%bcond_with junit5 - -# Release tags or git SHAs -%global git_tag tycho-%{version} -%global fp_p2_git_tag 0be3abaa1729553b13f384a008b1cd1fb00beaf4 - -%global fp_p2_version 0.0.1 -%global fp_p2_snap -SNAPSHOT - -# The location of the xmvn dir into which we need to install the xmvn plugin -%global xmvn_libdir %(realpath $(dirname $(readlink -f $(which xmvn)))/../lib) - -%define __requires_exclude osgi* - -Name: tycho -Version: 2.2.0 -Release: 5%{?dist} -Summary: Plugins and extensions for building Eclipse plugins and OSGI bundles with Maven - -# license file is missing but all files having some licensing information are ASL 2.0 -License: ASL 2.0 and EPL-1.0 -URL: https://eclipse.org/tycho - -# Tycho project source -Source0: https://git.eclipse.org/c/tycho/org.eclipse.tycho.git/snapshot/org.eclipse.tycho-%{git_tag}.tar.xz -# Eclipse Plugin Project supporting filesystem as p2 repository -Source1: https://github.com/rgrunber/fedoraproject-p2/archive/%{fp_p2_git_tag}/fedoraproject-p2-%{fp_p2_git_tag}.tar.gz - -# this is a workaround for maven-plugin-plugin changes that happened after -# version 2.4.3 (impossible to have empty mojo created as aggregate). This -# should be fixed upstream properly -Source2: EmptyMojo.java -Source3: tycho-scripts.sh -Source4: tycho-bootstrap.sh -Source5: tycho-debundle.sh -# Script that can be used to install or simulate installation of P2 -# artifacts. It is used in OSGi requires generation. -Source6: p2-install.sh - -# Fedora Eclipse bundles needed to build Tycho when Eclipse is not present -# or when the Eclipse that is present is not compatible -%if %{with bootstrap} -Source10: eclipse-bootstrap-2020-12.tar.xz -%endif - -# Fedora-specific patches -Patch0: 0001-Fix-the-Tycho-build-to-work-on-Fedora.patch -Patch1: 0002-Implement-a-custom-resolver-for-Tycho-in-local-mode.patch -Patch2: 0003-Tycho-should-always-delegate-artifact-resolution-to-.patch -Patch5: 0006-Use-custom-resolver-for-tycho-eclipserun-plugin.patch -# Fix compile error with uncaught exception -Patch3: 0004-Fix-uncaught-exception.patch -# Fix incorrect generated requires -Patch4: 0005-Fix-dependency-problems-when-bootstrapping-with-extr.patch -%if 0%{?fedora} >= 34 || 0%{?eln} -# API between surefire 3.0.0~M3 and 3.0.0~M4 -# Patch is applicable only when building against surefire 3.0.0~M4 and newer -Patch6: 0007-Accomodate-API-change-in-surefire-3.0.0-M4.patch -%endif - -# Upstream Eclipse no longer supports non-64bit arches -ExcludeArch: s390 %{arm} %{ix86} - -BuildArch: noarch - -# Extras was folded into the main tycho package in F31 -Obsoletes: tycho-extras < 1.6.0-1 -Provides: tycho-extras = %{version}-%{release} - -BuildRequires: maven-local -BuildRequires: mvn(biz.aQute.bnd:bnd-maven-plugin) -BuildRequires: mvn(com.beust:jcommander) -BuildRequires: mvn(de.pdark:decentxml) -BuildRequires: mvn(io.takari.polyglot:polyglot-common) >= 0.4.6 -BuildRequires: mvn(org.apache.commons:commons-compress) -BuildRequires: mvn(org.apache.commons:commons-exec) -BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) -BuildRequires: mvn(org.apache.maven:maven-archiver) -BuildRequires: mvn(org.apache.maven:maven-artifact) -BuildRequires: mvn(org.apache.maven:maven-compat) -BuildRequires: mvn(org.apache.maven:maven-core) -BuildRequires: mvn(org.apache.maven:maven-model) -BuildRequires: mvn(org.apache.maven:maven-model-builder) -BuildRequires: mvn(org.apache.maven:maven-plugin-api) -BuildRequires: mvn(org.apache.maven.plugins:maven-antrun-plugin) -BuildRequires: mvn(org.apache.maven.plugins:maven-clean-plugin) -BuildRequires: mvn(org.apache.maven.plugins:maven-dependency-plugin) -BuildRequires: mvn(org.apache.maven.plugins:maven-install-plugin) -BuildRequires: mvn(org.apache.maven.plugins:maven-plugin-plugin) -BuildRequires: mvn(org.apache.maven.plugins:maven-source-plugin) -BuildRequires: mvn(org.apache.maven.plugin-tools:maven-plugin-annotations) -BuildRequires: mvn(org.apache.maven.surefire:maven-surefire-common) -BuildRequires: mvn(org.apache.maven.surefire:surefire-api) -BuildRequires: mvn(org.codehaus.plexus:plexus-archiver) -BuildRequires: mvn(org.codehaus.plexus:plexus-compiler-api) -BuildRequires: mvn(org.codehaus.plexus:plexus-compiler-manager) -BuildRequires: mvn(org.codehaus.plexus:plexus-component-annotations) -BuildRequires: mvn(org.codehaus.plexus:plexus-component-metadata) -BuildRequires: mvn(org.codehaus.plexus:plexus-utils) -BuildRequires: mvn(org.eclipse.jdt:ecj) -BuildRequires: mvn(org.eclipse.sisu:org.eclipse.sisu.plexus) -BuildRequires: mvn(org.fedoraproject.xmvn:xmvn-api) -BuildRequires: mvn(org.fedoraproject.xmvn:xmvn-core) -BuildRequires: mvn(org.fedoraproject.xmvn:xmvn-install) -BuildRequires: mvn(org.fedoraproject.xmvn:xmvn-parent:pom:) -BuildRequires: mvn(org.osgi:osgi.annotation) -BuildRequires: mvn(org.ow2.asm:asm-tree) -BuildRequires: mvn(org.ow2.asm:asm-util) -BuildRequires: mvn(org.slf4j:slf4j-api) -BuildRequires: mvn(org.slf4j:slf4j-simple) -%if %{with junit5} -BuildRequires: mvn(org.apache.maven.surefire:surefire-junit-platform) -BuildRequires: mvn(org.apiguardian:apiguardian-api) -BuildRequires: mvn(org.opentest4j:opentest4j) -%endif - -%if ! %{with bootstrap} -# Ordinarily Tycho additionally requires itself and Eclipse to build -BuildRequires: %{name} -BuildRequires: eclipse-platform >= 1:4.17 -%else -# For bootstrapping, we just need the dependencies of the Eclipse bundles we use -BuildRequires: osgi(com.ibm.icu) -BuildRequires: osgi(org.apache.commons.jxpath) -BuildRequires: osgi(org.apache.batik.css) -BuildRequires: osgi(org.apache.felix.scr) -BuildRequires: osgi(org.sat4j.core) -BuildRequires: osgi(org.sat4j.pb) -BuildRequires: osgi(org.w3c.css.sac) -BuildRequires: glassfish-annotation-api -BuildRequires: glassfish-servlet-api -BuildRequires: glassfish-jsp-api -%endif - -Requires: maven-local -Requires: xmvn-minimal -Requires: ecj -Requires: aqute-bndlib - -%if ! %{with bootstrap} -Requires: eclipse-platform >= 1:4.17 -%endif - -# maven-clean-plugin is bound to "initialize" Maven phase for -# "eclipse-repository" projects -Requires: maven-clean-plugin - -%description -Tycho is a set of Maven plugins and extensions for building Eclipse -plugins and OSGI bundles with Maven. Eclipse plugins and OSGI bundles -have their own metadata for expressing dependencies, source folder -locations, etc. that are normally found in a Maven POM. Tycho uses -native metadata for Eclipse plugins and OSGi bundles and uses the POM -to configure and drive the build. Tycho supports bundles, fragments, -features, update site projects and RCP applications. Tycho also knows -how to run JUnit test plugins using OSGi runtime and there is also -support for sharing build results using Maven artifact repositories. - -Tycho plugins introduce new packaging types and the corresponding -lifecycle bindings that allow Maven to use OSGi and Eclipse metadata -during a Maven build. OSGi rules are used to resolve project -dependencies and package visibility restrictions are honored by the -OSGi-aware JDT-based compiler plugin. Tycho will use OSGi metadata and -OSGi rules to calculate project dependencies dynamically and injects -them into the Maven project model at build time. Tycho supports all -attributes supported by the Eclipse OSGi resolver (Require-Bundle, -Import-Package, Eclipse-GenericRequire, etc). Tycho will use proper -classpath access rules during compilation. Tycho supports all project -types supported by PDE and will use PDE/JDT project metadata where -possible. One important design goal in Tycho is to make sure there is -no duplication of metadata between POM and OSGi metadata. - -%package javadoc -Summary: Javadocs for %{name} -# Extras was folded into the main tycho package in F31 -Obsoletes: tycho-extras-javadoc < 1.6.0-1 -Provides: tycho-extras-javadoc = %{version}-%{release} - -%description javadoc -This package contains the API documentation for %{name}. - -%prep -%setup -q -n org.eclipse.tycho-%{git_tag} -a 1 -mv fedoraproject-p2-%{fp_p2_git_tag} fedoraproject-p2 - -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%if 0%{?fedora} >= 34 || 0%{?eln} -%patch6 -p1 -%endif - -# Unneeded for RPM builds -%pom_remove_plugin :maven-site-plugin - -# These tycho plug-ins don't make sense in the context of RPM builds of Eclipse plug-ins -%pom_disable_module tycho-buildtimestamp-jgit tycho-extras -%pom_disable_module tycho-sourceref-jgit tycho-extras - -%if %{without junit5} -%pom_disable_module org.eclipse.tycho.surefire.junit5 tycho-surefire -%pom_disable_module org.eclipse.tycho.surefire.junit54 tycho-surefire -%pom_disable_module org.eclipse.tycho.surefire.junit55 tycho-surefire -%pom_disable_module org.eclipse.tycho.surefire.junit56 tycho-surefire -%pom_disable_module org.eclipse.tycho.surefire.junit57 tycho-surefire -%pom_remove_dep ":org.eclipse.tycho.surefire.junit5" tycho-surefire/tycho-surefire-plugin -%pom_remove_dep ":org.eclipse.tycho.surefire.junit54" tycho-surefire/tycho-surefire-plugin -%pom_remove_dep ":org.eclipse.tycho.surefire.junit55" tycho-surefire/tycho-surefire-plugin -%pom_remove_dep ":org.eclipse.tycho.surefire.junit56" tycho-surefire/tycho-surefire-plugin -%pom_remove_dep ":org.eclipse.tycho.surefire.junit57" tycho-surefire/tycho-surefire-plugin -%endif - -# Relax dep on aqute-bndlib -sed -i -e '/biz.aQute.bndlib/s/5.1.2/3.5.0/' \ - tycho-bundles/org.eclipse.tycho.p2.resolver.impl/META-INF/MANIFEST.MF -# Relax dep on asm -sed -i -e 's/ASM9/ASM8/' \ - tycho-artifactcomparator/src/main/java/org/eclipse/tycho/zipcomparator/internal/ClassfileComparator.java -# Fix dep on slf4j -sed -i -e '/slf4j.api/s/org.slf4j.api/slf4j.api/' \ - tycho-bundles/tycho-bundles-external/tycho-bundles-external.product - -# Remove repositories section and pom imports -%pom_xpath_remove "pom:repositories" fedoraproject-p2 -# Use osgi from local repo -%pom_xpath_remove "pom:dependencyManagement/pom:dependencies/pom:dependency[pom:artifactId='tycho']" fedoraproject-p2/xmvn-p2-installer-plugin -%pom_xpath_inject "pom:dependencies/pom:dependency[pom:artifactId='org.eclipse.osgi']" "\${equinox-version}" fedoraproject-p2/xmvn-p2-installer-plugin - -# place empty mojo in place -mkdir -p tycho-maven-plugin/src/main/java/org/fedoraproject -pushd tycho-maven-plugin/src/main/java/org/fedoraproject -cp %{SOURCE2} . -popd - -# Homogenise requirement on OSGi bundle -%if %{with bootstrap} -sed -i -e "s/>org.eclipse.platformorg.eclipse.tychotycho" %{_mavenpomdir}/tycho/tycho.pom | grep "version" | sed 's/.*>\(.*\)<.*/\1/'` -mkdir boot -sed -e 's/ns[0-9]://g' %{_datadir}/maven-metadata/%{name}.xml > boot/tycho-metadata.xml - -# Copy Tycho POMs from system repo and set their versions to %%{version}-SNAPSHOT. -for pom in $(grep 'pom' boot/tycho-metadata.xml | sed 's|.*>\(.*\)<.*|\1|'); do - sed -e "s/>$sysVer/>%{version}-SNAPSHOT/g" -e "s/%{fp_p2_version}%{fp_p2_snap}/%{fp_p2_version}/" <$pom >boot/$(basename $pom) -done - -# Update Maven lifecycle mappings for Tycho packaging types provided by tycho-maven-plugin. -cp -p $(build-classpath tycho/tycho-maven-plugin) boot/tycho-maven-plugin.jar -jar xf boot/tycho-maven-plugin.jar META-INF/plexus/components.xml -sed -i s/$sysVer/%{version}-SNAPSHOT/ META-INF/plexus/components.xml -jar uf boot/tycho-maven-plugin.jar META-INF/plexus/components.xml - -# Create XMvn metadata for the new JARs and POMs by customizing system Tycho metadata. -sed -i -e 's/xmlns=".*"//' boot/tycho-metadata.xml -%pom_xpath_remove -f "metadata/artifacts/artifact[artifactId='org.eclipse.osgi']" boot/tycho-metadata.xml -%pom_xpath_remove -f "metadata/artifacts/artifact[artifactId='org.eclipse.osgi.util']" boot/tycho-metadata.xml -%pom_xpath_remove -f "metadata/artifacts/artifact[artifactId='org.eclipse.osgi.services']" boot/tycho-metadata.xml -%pom_xpath_remove -f "metadata/artifacts/artifact[artifactId='org.eclipse.osgi.compatibility.state']" boot/tycho-metadata.xml -sed -i ' - s|>/[^<]*/\([^/]*\.pom\)|>'$PWD'/boot/\1| - s|>'$sysVer'|>%{version}-SNAPSHOT%{version}-SNAPSHOT| - s|>'%{fp_p2_version}%{fp_p2_snap}'|>%{fp_p2_version}%{fp_p2_version}| - s|%{_javadir}/tycho/tycho-maven-plugin.jar|'$PWD'/boot/tycho-maven-plugin.jar| -' boot/tycho-metadata.xml -%mvn_config resolverSettings/metadataRepositories/repository $PWD/boot/tycho-metadata.xml -%endif - -# Avoid duplicate execution of clean when generating javadocs, see ebz#399756 -%pom_add_plugin :maven-clean-plugin tycho-bundles/tycho-standalone-p2-director " - - - default-clean-1 - initialize - - true - - -" - -# Add fp-p2 to main build -%pom_xpath_inject "pom:modules" "fedoraproject-p2" - -%build -%mvn_build -f -- \ - -Dtycho-version=%{version}-SNAPSHOT -DtychoBootstrapVersion=%{version}-SNAPSHOT \ - -Dmaven.repo.local=$(pwd)/.m2 -Dfedora.p2.repos=$(pwd)/bootstrap -Dasm-version=8.0.1 -Dequinox-version=3.16.100.v20201211-1332 - -%mvn_artifact fedoraproject-p2/org.fedoraproject.p2/pom.xml - -# Relying on xmvn p2 plugin being present would be a circular dep -# So install as if all artifacts are normal jar files -sed -i -e 's|type>eclipse.*<|type>jar<|' .xmvn-reactor - -# Don't package target platform definition files -%mvn_package "::target::" __noinstall - -%install -# Get debundling scripts -cp %{SOURCE3} %{SOURCE5} . - -%if ! %{with bootstrap} -# Debundle p2 runtime -./tycho-debundle.sh $(pwd)/tycho-bundles/tycho-bundles-external \ - $(pwd)/tycho-bundles/tycho-bundles-external/target/tycho-bundles-external-manifest.txt - -# Debundle standalone p2 director -./tycho-debundle.sh $(pwd)/tycho-bundles/tycho-standalone-p2-director -%endif - -%if %{with bootstrap} -# Install our own copy of OSGi runtime when bootstrapping to avoid external dep on Eclipse -for b in org.eclipse.osgi \ - org.eclipse.osgi.util \ - org.eclipse.osgi.services \ - org.eclipse.osgi.compatibility.state ; do - osgiJarPath=$(find .m2/org/eclipse/tycho/$b/*/ -name "*.jar") - osgiPomPath=$(find .m2/org/eclipse/tycho/$b/*/ -name "*.pom") - %mvn_artifact $osgiPomPath $osgiJarPath -done -%endif - -%mvn_install - -%if ! %{with bootstrap} -install -pm 644 tycho-bundles/tycho-bundles-external/target/tycho-bundles-external-manifest.txt %{buildroot}%{_javadir}/tycho -%add_maven_depmap org.eclipse.tycho:tycho-bundles-external:txt:manifest:%{version} tycho/tycho-bundles-external-manifest.txt -%endif - -%if %{with bootstrap} -# Misc other bundles needed for bootstrapping -for bnd in \ - core.contenttype \ - core.expressions \ - core.filesystem \ - core.jobs \ - core.net \ - core.resources \ - core.runtime \ - equinox.app \ - equinox.common \ - equinox.concurrent \ - equinox.preferences \ - equinox.registry \ - equinox.security ; do -bndJarPath=$(find bootstrap -name "org.eclipse.${bnd}_*.jar") -install -m 644 -T $bndJarPath $RPM_BUILD_ROOT%{_javadir}/tycho/$bnd.jar -done -%endif - -# For some reason fp-p2 is treated as a compat version, this prevents that -# TODO: figure out why -sed -i '//d' %{buildroot}%{_datadir}/maven-metadata/%{name}.xml - -# p2-install script -install -dm 755 %{buildroot}%{_javadir}-utils/ -install -pm 755 %{SOURCE6} %{buildroot}%{_javadir}-utils/ - -# Symlink XMvn P2 plugin with all dependencies so that it can be loaded by XMvn -install -dm 755 %{buildroot}%{xmvn_libdir}/installer/ -%if %{with bootstrap} -ln -s %{_javadir}/tycho/org.eclipse.osgi.jar %{buildroot}%{xmvn_libdir}/installer/ -%else -ln -s %{_javadir}/eclipse/osgi.jar %{buildroot}%{xmvn_libdir}/installer/ -%endif -ln -s %{_javadir}/tycho/xmvn-p2-installer-plugin.jar %{buildroot}%{xmvn_libdir}/installer/ -ln -s %{_javadir}/tycho/org.fedoraproject.p2.jar %{buildroot}%{xmvn_libdir}/installer/ - -%files -f .mfiles -%{xmvn_libdir}/installer/* -%{_javadir}-utils/p2-install.sh -%if %{with bootstrap} -%{_javadir}/tycho/core.*.jar -%{_javadir}/tycho/equinox.*.jar -%endif -%doc README.md - -%files javadoc -f .mfiles-javadoc - -%changelog -* Fri Apr 16 2021 Mohan Boddu - 2.2.0-5 -- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 - -* Mon Feb 8 2021 Mat Booth - 2.2.0-4 -- Fix eln build - -* Mon Feb 8 2021 Mat Booth - 2.2.0-3 -- Accomodate for API change in surefire 3.0.0~M4 - -* Thu Feb 4 2021 Mat Booth - 2.2.0-2 -- Add missing runtime dep on aqute-bnd - -* Tue Feb 2 2021 Mat Booth - 2.2.0-1 -- Update to latest upstream release -- Update bootstrap Eclipse version - -* Tue Feb 2 2021 Mat Booth - 2.1.0-5 -- Debootstrap build - -* Wed Jan 27 2021 Fedora Release Engineering - 2.1.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Thu Jan 14 2021 Mat Booth - 2.1.0-3 -- Enable bootstrap mode -- Update fp-p2 snapshot to fix xmvn installation failure - -* Thu Jan 14 2021 Mat Booth - 2.1.0-2 -- Fix embedded equinox location discovery and fix bootstrapping on Java 11 - -* Tue Nov 24 2020 Mat Booth - 2.1.0-1 -- Update to latest upstream release - -* Wed Nov 11 2020 Mat Booth - 1.7.0-4 -- Debootstrap build - -* Wed Nov 11 2020 Mat Booth - 1.7.0-3 -- Add deps needed for bootstrapping - -* Wed Nov 11 2020 Mat Booth - 1.7.0-2 -- Bootstrap against Eclipse 4.17 - -* Wed Nov 11 2020 Mat Booth - 1.7.0-1 -- Interrim update to tycho version - -* Tue Aug 18 2020 Mat Booth - 1.6.0-6 -- Fix bootstrap mode against Java 11 - -* Wed Jul 29 2020 Fedora Release Engineering - 1.6.0-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Sat Jul 11 2020 Jiri Vanek - 1.6.0-4 -- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 - -* Sat Mar 21 2020 Mat Booth - 1.6.0-3 -- Add missing resolver patch for eclipserun plugin - -* Fri Mar 20 2020 Mat Booth - 1.6.0-2 -- Add obsoletes/provides for extras javadoc package - -* Wed Feb 19 2020 Mat Booth - 1.6.0-1 -- Update to latest upstream release - -* Fri Jan 31 2020 Fedora Release Engineering - 1.5.0-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Mon Jan 27 2020 Mat Booth - 1.5.0-5 -- Fix build with Eclipse 4.14 - -* Thu Jan 23 2020 Mat Booth - 1.5.0-4 -- Remove references to kxml/xpp3 - -* Wed Dec 18 2019 Mat Booth - 1.5.0-3 -- Full build - -* Wed Dec 18 2019 Mat Booth - 1.5.0-2 -- Bootstrap mode - -* Tue Dec 17 2019 Mat Booth - 1.5.0-1 -- Update to latest upstream release - -* Fri Aug 09 2019 Mat Booth - 1.4.0-2 -- Fix bootstrapping with new ECF - -* Fri May 24 2019 Mat Booth - 1.4.0-1 -- Update to latest upstream release - -* Tue May 07 2019 Mat Booth - 1.3.0-5 -- Don't build tests, they are not being run anyway - -* Mon Mar 11 2019 Mat Booth - 1.3.0-4 -- Debootstrap build -- Restrict to the same architectures as Eclipse itself - -* Mon Mar 11 2019 Mat Booth - 1.3.0-3 -- Bootstrap with new felix-scr - -* Tue Feb 19 2019 Mat Booth - 1.3.0-2 -- Allow building against ASM 6 - -* Mon Feb 18 2019 Mat Booth - 1.3.0-1 -- Update to latest upstream release -- Allow conditionally building Junit5 support - -* Sun Feb 03 2019 Fedora Release Engineering - 1.2.0-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Thu Dec 13 2018 Mat Booth - 1.2.0-7 -- Fix build against newest Mockito and ASM - -* Mon Aug 20 2018 Mat Booth - 1.2.0-6 -- Rebuild against Eclipse 2018-09 - -* Fri Aug 17 2018 Mat Booth - 1.2.0-5 -- Bootstrap mode improvements -- Patch to use Java 8 as the default target EE, prevents unnecessary dep - on Java 9 - -* Wed Jul 25 2018 Mat Booth - 1.2.0-4 -- Fix build against new surefire - -* Sat Jul 14 2018 Fedora Release Engineering - 1.2.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Thu Jul 12 2018 Mat Booth - 1.2.0-2 -- Bootstrap build - -* Tue Jun 05 2018 Mat Booth - 1.2.0-1 -- Update to latest release for Java 10 support -- Drop upstreamed patch - -* Wed May 09 2018 Mat Booth - 1.2.0-0.5.git5d018bb -- Surefure now used maven-shared-utils instead of plexus-utils, fixes test runs - in other packages - -* Thu May 03 2018 Mat Booth - 1.2.0-0.4.git5d018bb -- Add a proper patch for ebz#534255 - -* Wed May 02 2018 Mat Booth - 1.2.0-0.3.git5d018bb -- Update tycho snapshot and simplify bootstrapping - -* Wed May 02 2018 Mat Booth - 1.2.0-0.2.gitd9ce75d -- Non-bootstrap build - -* Mon Apr 30 2018 Mat Booth - 1.2.0-0.1.gitd9ce75d -- Update to latest tycho snapshot -- Bootstrap build - -* Fri Feb 09 2018 Fedora Release Engineering - 1.0.0-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Fri Dec 08 2017 Mat Booth - 1.0.0-10 -- Calculate xmvn/lib path, allow building against older and newer surefire - -* Wed Oct 11 2017 Mat Booth - 1.0.0-9 -- Port to latest surefire - -* Thu Jul 27 2017 Fedora Release Engineering - 1.0.0-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Wed Jun 21 2017 Mikolaj Izdebski - 1.0.0-7 -- Update to latest fp-p2 snapshot for XMvn 3.0.0 support - -* Tue Jun 20 2017 Mat Booth - 1.0.0-6 -- Improve bootstrap mode - -* Sat Jun 17 2017 Mat Booth - 1.0.0-5 -- Debootstrap build - -* Sat Jun 17 2017 Mat Booth - 1.0.0-4 -- Add osgi.util bundle to tycho runtime - -* Wed May 24 2017 Mikolaj Izdebski - 1.0.0-3 -- Remove no longer needed requires on Maven plugins - -* Wed Apr 26 2017 Mat Booth - 1.0.0-2 -- Debootstrap build - -* Thu Apr 20 2017 Mat Booth - 1.0.0-1 -- Update to 1.0.0 -- Simplify artifact installation -- Tycho 1.0 requires Eclipse Oxygen -- Add felix-scr and deps to tycho-bundles-external - -* Thu Apr 20 2017 Mat Booth - 0.26.0-3 -- Fix and enable bootstrap mode - -* Sat Feb 11 2017 Fedora Release Engineering - 0.26.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Wed Nov 02 2016 Mat Booth - 0.26.0-1 -- Update to latest upstream - -* Mon Jul 25 2016 Mat Booth - 0.25.0-7 -- Remove incomplete SCL macros - -* Thu Jun 30 2016 Mikolaj Izdebski - 0.25.0-6 -- Add missing requires on maven-plugin-testing-harness - -* Thu Jun 30 2016 Mikolaj Izdebski - 0.25.0-5 -- Require full xmvn - -* Wed Jun 15 2016 Mikolaj Izdebski - 0.25.0-4 -- Add missing requires on maven-source-plugin - -* Fri Apr 22 2016 Mat Booth - 0.25.0-3 -- Require newer ECJ with correct aliases - -* Thu Apr 21 2016 Mat Booth - 0.25.0-2 -- Non-bootstrap build against Eclipse Neon - -* Wed Apr 20 2016 Mat Booth - 0.25.0-1 -- Update to latest upstream release -- Full bootstrap mode due to incompatibility with Eclipse Mars - -* Thu Apr 14 2016 Mat Booth - 0.23.0-17 -- Fix build against new maven-archiver, which removed some deprecated methods - that tycho was using - -* Tue Mar 15 2016 Mat Booth - 0.23.0-16 -- Update to latest fp-p2 snapshot - -* Fri Feb 05 2016 Fedora Release Engineering - 0.23.0-15 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Mon Jan 25 2016 Mat Booth - 0.23.0-14 -- Updates to latest version of fedoraproject-p2. -- fedoraproject-p2: Fix a concurrent modification exception when feature - plugins have circular deps - -* Mon Jan 11 2016 Roland Grunberg - 0.23.0-13 -- Updated to latest version of fedoraproject-p2. -- fedoraproject-p2: Correctly handle splitting virtual packages. - -* Mon Jan 4 2016 Mikolaj Izdebski - 0.23.0-12 -- Update for maven-surefire 2.19.1 - -* Mon Oct 26 2015 Roland Grunberg - 0.23.0-11 -- Fix bug in org.eclipse.tycho.surefire.junit4 provider. - -* Tue Oct 20 2015 Roland Grunberg - 0.23.0-10 -- Update to work with maven-surefire 2.19. - -* Thu Aug 27 2015 Roland Grunberg - 0.23.0-9 -- fedoraproject-p2: Enable support for p2 Droplets. - -* Tue Jul 28 2015 Roland Grunberg - 0.23.0-8 -- fedoraproject-p2: Single IU resolving requirements with multiple matches. - -* Fri Jul 17 2015 Roland Grunberg - 0.23.0-7 -- fedoraproject-p2: Remove host localization fragments from reactor units. - -* Tue Jun 30 2015 Mat Booth - 0.23.0-6 -- Fix bootstrap build -- fedoraproject-p2: Allow xmvn-p2-installer to work in bootstrap mode - -* Thu Jun 25 2015 Roland Grunberg - 0.23.0-5 -- fedoraproject-p2: Do not generate requires for fragments. -- Update to work with maven-surefire 2.18. - -* Fri Jun 19 2015 Fedora Release Engineering - 0.23.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Tue Jun 09 2015 Mat Booth - 0.23.0-3 -- Fix bootstrap build - -* Tue Jun 9 2015 Mikolaj Izdebski - 0.23.0-2 -- Port to Plexus Archiver 3.0.1 - -* Fri Jun 05 2015 Mat Booth - 0.23.0-1 -- Update to 0.23.0 release -- Allow tycho-bootstrap.sh to work with "set -e" to fail faster - and see errors more easily - -* Sat May 30 2015 Alexander Kurtakov 0.22.0-18 -- Fix build with no tomcat servlet. - -* Thu May 07 2015 Mat Booth - 0.22.0-17 -- Add org.tukaani.xz to tycho-bundles-external - -* Tue Apr 28 2015 Roland Grunberg - 0.22.0-16 -- Fix resolution issues when upstream version in local repository. -- Resolves: rhbz#1216170 - -* Thu Apr 23 2015 Mat Booth - 0.22.0-15 -- fedoraproject-p2: Add support for archful dropins - -* Mon Apr 20 2015 Roland Grunberg - 0.22.0-14 -- Handle possible changes to metadata namespace (ns[0-9]). - -* Fri Apr 17 2015 Roland Grunberg - 0.22.0-13 -- fedoraproject-p2: Subpackages '*-tests' should not be in dropins. - -* Sun Mar 29 2015 Mikolaj Izdebski - 0.22.0-12 -- Port to Jetty 9.3.0 - -* Thu Feb 5 2015 Mikolaj Izdebski - 0.22.0-11 -- fedoraproject-p2: Fix support for shallow dropin directory layout - -* Wed Feb 4 2015 Mikolaj Izdebski - 0.22.0-10 -- fedoraproject-p2: Bump BREE to JavaSE-1.8 -- fedoraproject-p2: Fix installing of virtual bundles provided by p2.inf - -* Wed Jan 28 2015 Mikolaj Izdebski - 0.22.0-9 -- fedoraproject-p2: Allow installation of bundles not built with tycho - -* Mon Jan 19 2015 Roland Grunberg - 0.22.0-8 -- Introduce basic SCL support. -- Minor changes for bootstrap build. -- Suppress failed lookups on non-existing paths in scripts. -- Explicitly depend on org.hamcrest.core where necessary. - -* Thu Dec 11 2014 Mat Booth - 0.22.0-7 -- fedoraproject-p2: Fix for bundles containing underscores - -* Wed Dec 10 2014 Mat Booth - 0.22.0-6 -- fedoraproject-p2: Update to latest snapshot - -* Wed Dec 10 2014 Roland Grunberg - 0.22.0-5 -- Rebuild to pick up arch-independent ECF bundle locations. - -* Mon Dec 08 2014 Roland Grunberg - 0.22.0-4 -- fedoraproject-p2: Permit installation of tycho-generated source features. - -* Thu Dec 4 2014 Mikolaj Izdebski - 0.22.0-3 -- Non-bootstrap build - -* Thu Dec 4 2014 Mikolaj Izdebski - 0.22.0-2.1 -- fedoraproject-p2: Add support for installation into SCLs -- Bootstrap build - -* Thu Dec 04 2014 Mat Booth - 0.22.0-2 -- Fix osgi.jar symlink when in eclipse-bootstrap mode -- Remove no longer needed workaround for rhbz#1139180 -- Tidy up and remove unneeded R/BRs -- Also reduce number of changes needed to SCL-ise package - -* Mon Dec 01 2014 Mat Booth - 0.22.0-1 -- Update to tagged release - -* Thu Nov 27 2014 Roland Grunberg - 0.22.0-0.1.gitb1051d -- Update to 0.22.0 pre-release. - -* Thu Nov 27 2014 Mikolaj Izdebski - 0.21.0-23 -- fedoraproject-p2: Obtain SCL roots by parsing Java conf files -- fedoraproject-p2: Add support for installing into SCL root - -* Thu Nov 27 2014 Mikolaj Izdebski - 0.21.0-22 -- Install p2-install.sh script in java-utils/ - -* Thu Nov 27 2014 Mikolaj Izdebski - 0.21.0-21 -- fedoraproject-p2: Implement installer application - -* Tue Nov 25 2014 Mikolaj Izdebski - 0.21.0-20 -- fedoraproject-p2: Update to latest snapshot (SCL improvements) - -* Thu Nov 06 2014 Mat Booth - 0.21.0-19 -- fedoraproject-p2: Fix occasionally failing to generate metadata - -* Tue Oct 28 2014 Roland Grunberg - 0.21.0-18 -- Fixes to bootstrap build. -- Package com.ibm.icu (icu4j-eclipse) for bootstrap build. -- Resolves: rhbz#1129801 - -* Thu Oct 09 2014 Mat Booth - 0.21.0-17 -- fedoraproject-p2: Fix incorrect metadata generation bugs - -* Tue Oct 07 2014 Mat Booth - 0.21.0-16 -- fedoraproject-p2: Update to latest snapshot - -* Thu Oct 02 2014 Roland Grunberg - 0.21.0-15 -- Update to build against plexus-archiver 2.6. - -* Thu Sep 25 2014 Mikolaj Izdebski - 0.21.0-14 -- fedoraproject-p2: Fix requires generation bug - -* Wed Sep 24 2014 Mikolaj Izdebski - 0.21.0-13 -- fedoraproject-p2: Allow installation of source bundles - -* Mon Sep 22 2014 Roland Grunberg - 0.21.0-12 -- Add Fedora system repos to target definition resolver. -- Look for any IU if IU/Version query fails in target definition resolver. - -* Fri Sep 12 2014 Mikolaj Izdebski - 0.21.0-11 -- fedoraproject-p2: Allow installing the same symlink into separate dropins - -* Wed Sep 10 2014 Mikolaj Izdebski - 0.21.0-10 -- Fix tycho-bundles-external-manifest.txt generation - -* Wed Sep 10 2014 Mikolaj Izdebski - 0.21.0-9 -- fedoraproject-p2: Fix self-dependencies failing builds - -* Tue Sep 9 2014 Roland Grunberg - 0.21.0-8 -- Make debundling more resilient to changes. -- fedoraproject-p2: Update to latest (Fix metapackage merging). - -* Mon Sep 8 2014 Mikolaj Izdebski - 0.21.0-8 -- fedoraproject-p2: Import XMvn P2 plugin -- fedoraproject-p2: Fix NPE bug -- fedoraproject-p2: Avoid extracting tycho-bundles-external.zip - -* Fri Sep 05 2014 Roland Grunberg - 0.21.0-7 -- Debundle tycho-bundles-external and tycho-standalone-p2-director. -- Resolves: rhbz#789272 - -* Thu Sep 04 2014 Roland Grunberg - 0.21.0-6 -- Use fedoraproject-p2 to do OSGi bundle discovery. - -* Wed Sep 03 2014 Mat Booth - 0.21.0-5 -- Include eclipse features dir in custom resolver - -* Wed Sep 03 2014 Roland Grunberg - 0.21.0-4 -- fedoraproject-p2: Do not regenerate IU metadata on every query. - -* Thu Aug 28 2014 Mat Booth - 0.21.0-3 -- Perform non-bootstrap build -- Update running-env-only patch - -* Wed Aug 27 2014 Roland Grunberg - 0.21.0-2.1 -- fedoraproject-p2: Fix issues with creation of feature IUs. -- fedoraproject-p2: Fix jar corruption bug. - -* Thu Aug 21 2014 Roland Grunberg - 0.21.0-2 -- Integrate fedoraproject-p2 into Tycho. - -* Thu Jul 24 2014 Roland Grunberg - 0.21.0-1 -- Update to 0.21.0 Release. - -* Fri Jul 11 2014 Mat Booth - 0.20.0-18 -- Allow director plugin to only assemble products for the current arch -- Drop some unneeded BR/Rs on surefire (maven-local pulls these in) - -* Wed Jul 02 2014 Roland Grunberg - 0.20.0-17 -- Return non-existant expected local path when resolution fails. -- Resolves: rhbz#1114120 - -* Fri Jun 27 2014 Roland Grunberg - 0.20.0-16 -- Tycho should always delegate artifact resolution to Maven. - -* Wed Jun 25 2014 Alexander Kurtakov 0.20.0-15 -- Non-bootstrap build now that aarch64 is done. - -* Tue Jun 24 2014 Roland Grunberg - 0.20.0-14.1 -- Add swt aarch64 fragment to bootstrap repo. - -* Tue Jun 24 2014 Alexander Kurtakov 0.20.0-14 -- Full bootstrap build for secondary archs. - -* Thu Jun 12 2014 Mikolaj Izdebski - 0.20.0-13 -- Restore runtime dependencies on XMvn - -* Sun Jun 08 2014 Fedora Release Engineering - 0.20.0-12 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Tue Jun 3 2014 Mikolaj Izdebski - 0.20.0-11 -- Skip intermediary build in non-bootstrap mode -- Resolves: rhbz#1103839 -- Remove unneeded XMvn bits - -* Fri May 30 2014 Mikolaj Izdebski - 0.20.0-10 -- Fix runtime dependencies on XMvn in POMs -- Use custom Plexus config to lookup XMvn classes -- Lookup Aether WorkspaceReader using role hint "ide" - -* Thu May 29 2014 Mikolaj Izdebski - 0.20.0-9 -- Don'n install duplicate Maven metadata for sisu-equinox - -* Wed May 21 2014 Mikolaj Izdebski - 0.20.0-8 -- Use .mfiles generated during build - -* Fri May 16 2014 Mikolaj Izdebski - 0.20.0-7 -- Add support for XMvn 2.0 - -* Tue May 13 2014 Alexander Kurtakov 0.20.0-6 -- Make tycho copy licence feature to the system repo. - -* Wed Apr 30 2014 Alexander Kurtakov 0.20.0-5 -- Non-bootstrap build. - -* Tue Apr 29 2014 Alexander Kurtakov 0.20.0-4 -- Organize patches. - -* Tue Apr 22 2014 Roland Grunberg - 0.20.0-3 -- Add support for compact profiles (Bug 1090003). - -* Wed Apr 02 2014 Roland Grunberg - 0.20.0-2 -- Non-bootstrap build. - -* Thu Mar 27 2014 Roland Grunberg - 0.20.0-1.1 -- Update to Eclipse Luna (4.4). - -* Mon Mar 24 2014 Roland Grunberg - 0.20.0-1 -- Update to 0.20.0 Release. - -* Wed Mar 12 2014 Roland Grunberg - 0.19.0-11 -- Respect %%{eclipse_bootstrap} flag in tycho-bootstrap.sh. -- Update Eclipse bootstrap cache. -- Fix Equinox Launcher usage logic in copy-platform-all. - -* Thu Mar 06 2014 Roland Grunberg - 0.19.0-10 -- Non-bootstrap build. - -* Thu Mar 06 2014 Roland Grunberg - 0.19.0-9.1 -- Do not check %%{_libdir}/eclipse plugins/features folders twice. - -* Wed Feb 26 2014 Mikolaj Izdebski - 0.19.0-9 -- Improve logging and error handling fop copy-platform-all - -* Wed Jan 15 2014 Roland Grunberg - 0.19.0-8 -- Perform a pure bootstrap build. -- Fix issues with bootstrap build. - -* Thu Jan 09 2014 Roland Grunberg - 0.19.0-7 -- Fix bootstrap build. - -* Mon Jan 6 2014 Mikolaj Izdebski - 0.19.0-6 -- Fix usage of %%add_maven_depmap for zip files -- Resolves: rhbz#1004310 - -* Mon Dec 9 2013 Alexander Kurtakov 0.19.0-5 -- Switch to using %%mvn_build. -- Update BR/R names. -- Adapt to asm5. - -* Thu Nov 21 2013 Roland Grunberg - 0.19.0-4 -- Return expected reactor cache location when XMvn resolution fails. - -* Wed Nov 20 2013 Roland Grunberg - 0.19.0-3 -- Bump release for rebuild (Bug 1031769). - -* Mon Nov 18 2013 Roland Grunberg - 0.19.0-2 -- Reduce length of file lock name when file is in build directory. - -* Thu Oct 24 2013 Roland Grunberg - 0.19.0-1 -- Update to 0.19.0 Release. - -* Fri Oct 04 2013 Roland Grunberg - 0.18.1-7 -- Do not use XMvn internals (Bug 1015038). - -* Thu Oct 3 2013 Krzysztof Daniel 0.18.1-6 -- Adjust to latest Xmvn (workaround for 1015038). - -* Mon Sep 9 2013 Mikolaj Izdebski - 0.18.1-5 -- Add workaround for rhbz#1004310 - -* Tue Jul 30 2013 Roland Grunberg - 0.18.1-4 -- Improve artifact resolution using XMvn Resolver. (Bug 986900) - -* Mon Jul 29 2013 Roland Grunberg - 0.18.1-3 -- Fix Tycho file locking to work in Fedora. -- Skip validateConsistentTychoVersion by default. (Bug 987271) - -* Wed Jul 24 2013 Roland Grunberg - 0.18.1-2 -- Non-bootstrap build. - -* Wed Jul 24 2013 Roland Grunberg - 0.18.1-1.1 -- Update to use Eclipse Aether. -- Use MavenSession and Plexus to determine state. -- Fix bootstrap build. - -* Thu Jul 18 2013 Roland Grunberg 0.18.1-1 -- Make changes to ensure intermediary build succeeds. -- Remove %%Patch6 in favour of call to sed. - -* Thu Jul 18 2013 Krzysztof Daniel 0.18.1-1 -- Update to 0.18.1. - -* Tue Jul 16 2013 Roland Grunberg - 0.18.0-5 -- Look for maven artifacts using XMvn Resolver. - -* Tue Jul 9 2013 Roland Grunberg 0.18.0-4 -- Update to use maven-surefire 2.15 API. - -* Fri Jul 5 2013 Alexander Kurtakov 0.18.0-3 -- Use _jnidir too when building local p2 repo. - -* Thu Jun 6 2013 Mikolaj Izdebski - 0.18.0-2 -- Add Requires on plugins present in Maven super POM -- Resolves: rhbz#971301 - -* Tue May 28 2013 Roland Grunberg 0.18.0-1 -- Update to 0.18.0 Release. - -* Thu Apr 11 2013 Roland Grunberg 0.17.0-1 -- Fix bootstrap build for potential future use. - -* Tue Apr 2 2013 Roland Grunberg 0.17.0-1 -- Update to 0.17.0 Release. - -* Mon Mar 18 2013 Roland Grunberg 0.17.0-0.11.git3351b1 -- Non-bootstrap build. - -* Mon Mar 18 2013 Krzysztof Daniel 0.17.0-0.10.git3351b1 -- Merge mizdebsk patch with existing custom resolver patch. - -* Mon Mar 18 2013 Krzysztof Daniel 0.17.0-0.9.git3351b1 -- Move the patch into better place. - -* Mon Mar 18 2013 Krzysztof Daniel 0.17.0-0.8.git3351b1 -- Non-bootstrap build. - -* Mon Mar 18 2013 Krzysztof Daniel 0.17.0-0.7.git3351b1 -- Commit the patch. - -* Mon Mar 18 2013 Krzysztof Daniel 0.17.0-0.6.git3351b1 -- Use plexus to instantiate workspace reader. - -* Sun Mar 17 2013 Roland Grunberg 0.17.0-0.5.git3351b1 -- Non-bootstrap build. - -* Fri Mar 15 2013 Roland Grunberg 0.17.0-0.4.git3351b1 -- Update bootstrapped build for 0.17.0-SNAPSHOT to work against 0.16.0. -- Update to Plexus Compiler 2.2 API. - -* Thu Feb 28 2013 Roland Grunberg 0.17.0-0.3.git3351b1 -- Update to using Jetty 9 API. - -* Mon Feb 25 2013 Roland Grunberg 0.17.0-0.2.git3351b1 -- Set the global default execution environment to JavaSE-1.6. -- Patch clean-up. - -* Mon Feb 25 2013 Krzysztof Daniel 0.17.0-0.1.git3351b1 -- Update to latest upstream. -- RHBZ#915194 - API changed in maven-surefire - -* Wed Feb 6 2013 Roland Grunberg 0.16.0-21 -- Non-bootstrap build. - -* Wed Feb 06 2013 Java SIG - 0.16.0-20.2 -- Update for https://fedoraproject.org/wiki/Fedora_19_Maven_Rebuild -- Replace maven BuildRequires with maven-local - -* Wed Feb 6 2013 Roland Grunberg 0.16.0-20.1 -- Change BR/R on maven to maven-local for XMvn support. -- Build bootstrapped to fix missing Fedora Maven class. - -* Thu Jan 24 2013 Roland Grunberg 0.16.0-20 -- Use TYCHO_MVN_{LOCAL,RPMBUILD} to determine how maven was called. -- Update to maven-surefire 2.13. - -* Thu Dec 20 2012 Roland Grunberg 0.16.0-19 -- Fix upstream Bug 361204. - -* Mon Dec 3 2012 Roland Grunberg 0.16.0-18 -- Add support for more flexible OSGi bundle paths. -- Use OSGi Requires instead of package name. -- Expand Requires to include the Eclipse platform. - -* Mon Nov 19 2012 Roland Grunberg 0.16.0-17 -- Make additional changes to get Tycho building bootstrapped. - -* Mon Nov 5 2012 Roland Grunberg 0.16.0-16 -- Add capability to build without depending on Tycho or Eclipse. - -* Sat Oct 20 2012 Roland Grunberg 0.16.0-15 -- Package org.eclipse.osgi and org.eclipse.jdt.core. - -* Fri Oct 19 2012 Roland Grunberg 0.16.0-14 -- Update to finalized 0.16.0 Release. - -* Wed Oct 17 2012 Roland Grunberg 0.16.0-13 -- Build Tycho properly in one RPM build. -- Update to 0.16.0 Release. - -* Thu Oct 11 2012 Roland Grunberg 0.16.0-12.d7f885 -- Non-bootstrap build. - -* Thu Oct 11 2012 Roland Grunberg 0.16.0-11.1.d7f885 -- Remove dependence on eclipse by use of self-bundled equinox launcher. - -* Wed Oct 10 2012 Roland Grunberg 0.16.0-11.d7f885 -- copy-platform-all should make symlinked jars from %%{_javadir} unique. -- Non-bootstrap build (reset the %%bootstrap flag properly). - -* Mon Oct 8 2012 Krzysztof Daniel 0.16.0-10.d7f885 -- Non-bootstrap build. - -* Mon Oct 8 2012 Krzysztof Daniel 0.16.0-9.1.d7f885 -- Filter out OSGi dependencies. - -* Thu Oct 4 2012 Roland Grunberg 0.16.0-9.d7f885 -- Non-bootstrap build. - -* Thu Oct 4 2012 Roland Grunberg 0.16.0-8.1.d7f885 -- Fix Bug in overriding of BREE to JavaSE-1.6. - -* Wed Oct 3 2012 Roland Grunberg 0.16.0-8.d7f885 -- Non-bootstrap build. - -* Wed Oct 3 2012 Roland Grunberg 0.16.0-7.1.d7f885 -- Update to latest 0.16.0 SNAPSHOT. -- First attempts to build without cyclic dependency to JDT. - -* Mon Aug 27 2012 Roland Grunberg 0.16.0-7.df2c35 -- Non bootstrap-build. - -* Mon Aug 27 2012 Roland Grunberg 0.16.0-6.1.df2c35 -- Add BR/R on explicit dependency objectweb-asm4. -- Use consistent whitespace in specfile. - -* Fri Aug 24 2012 Roland Grunberg 0.16.0-6.df2c35 -- Non-bootstrap build. - -* Thu Aug 23 2012 Roland Grunberg 0.16.0-5.1.df2c35 -- Set BREE to at least JavaSE-1.6 for all eclipse packaging types. -- Remove unneeded workaround for JSR14 incompatibility of JDK 1.7. - -* Wed Aug 15 2012 Roland Grunberg 0.16.0-5.df2c35 -- Non-bootstrap build. - -* Mon Aug 13 2012 Roland Grunberg 0.16.0-4.1.df2c35 -- Correctly reference objectweb-asm4 and fix local mode resolution bug. -- Update spec file to honour new java packaging guidelines. - -* Thu Aug 9 2012 Roland Grunberg 0.16.0-4.df2c35 -- Non-bootstrap build. - -* Thu Aug 9 2012 Roland Grunberg 0.16.0-3.1.df2c35 -- Add tycho.local.keepTarget flag to bypass ignoring environments. - -* Thu Aug 9 2012 Krzysztof Daniel 0.16.0-3.df2c35 -- Non-bootstrap build. - -* Thu Aug 9 2012 Krzysztof Daniel 0.16.0-2.1.df2c35 -- Use recommended %%add_maven_depmap. - -* Thu Aug 9 2012 Krzysztof Daniel 0.16.0-2.df2c35 -- Non-bootstrap build. - -* Thu Aug 9 2012 Krzysztof Daniel 0.16.0-1.2.df2c35 -- Properly change bootstrap flag. -- Add some git ignores. - -* Thu Aug 9 2012 Krzysztof Daniel 0.16.0-1.1.df2c35 -- Install missing tycho-standalone-p2-director.zip. - -* Thu Aug 2 2012 Roland Grunberg 0.16.0-1.df2c35 -- Update to 0.16.0 SNAPSHOT. - -* Tue Jul 31 2012 Roland Grunberg 0.15.0-3 -- Non-bootstrap build. - -* Tue Jul 31 2012 Roland Grunberg 0.15.0-2.1 -- Ignore defined environments in local mode. - -* Mon Jul 30 2012 Roland Grunberg 0.15.0-2 -- Non-bootstrap build. - -* Mon Jul 30 2012 Roland Grunberg 0.15.0-1.1 -- Fix copy-platform-all script to properly link %%{_datadir}/eclipse jars. - -* Thu Jul 26 2012 Roland Grunberg 0.15.0-1 -- Update to 0.15.0. -- Set BREE to at least JavaSE-1.6 for Eclipse feature bundles. - -* Wed Jul 25 2012 Roland Grunberg 0.14.1-7 -- Non-bootstrap build. - -* Mon Jul 23 2012 Roland Grunberg 0.14.1-6 -- Detect OSGi jars using presence of Bundle-SymbolicName entry (BZ #838513). - -* Sun Jul 22 2012 Fedora Release Engineering - 0.14.1-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Mon Jun 11 2012 Roland Grunberg 0.14.1-5 -- Non-bootstrap build. - -* Tue May 29 2012 Roland Grunberg 0.14.1-4.1 -- Fix Tycho Surfire to run Eclipse test bundles. -- Implement automatic creation of a system p2 repository. -- Allow building SWT fragments (BZ #380934). - -* Wed May 23 2012 Roland Grunberg 0.14.1-4 -- Non-bootstrap build. - -* Thu May 17 2012 Roland Grunberg 0.14.1-3.1 -- Set BREE to be at least JavaSE-1.6 for Eclipse OSGi bundles. - -* Wed May 16 2012 Roland Grunberg 0.14.1-3 -- Non-bootstrap build. - -* Wed Apr 25 2012 Roland Grunberg 0.14.1-2.1 -- Implement a custom resolver when running in local mode. -- Use upstream solution for BZ #372395 to fix the build. - -* Wed Apr 4 2012 Roland Grunberg 0.14.1-2 -- Non-bootstrap build. - -* Tue Mar 27 2012 Roland Grunberg 0.14.1-1.1 -- Add missing tycho-testing-harness to be packaged. -- Use %%{_eclipse_base} from eclipse-platform. - -* Fri Mar 9 2012 Roland Grunberg 0.14.1-1 -- Update to 0.14.1 upstream tag. -- Allow building against maven-surefire 2.12 (instead of 2.10). -- Stop symlinking o.e.osgi and o.e.jdt.core into the m2 cache. - -* Thu Feb 16 2012 Roland Grunberg 0.14.0-4 -- Non-bootstrap build. - -* Tue Feb 14 2012 Roland Grunberg 0.14.0-3 -- Update to 0.14.0 upstream tag. - -* Thu Feb 9 2012 Roland Grunberg 0.14.0-2 -- Non-bootstrap build. - -* Wed Feb 01 2012 Roland Grunberg - 0.14.0-1 -- Update to 0.14.0. - -* Sat Jan 14 2012 Fedora Release Engineering - 0.10.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Fri May 27 2011 Stanislav Ochotnicky - 0.12.0-0.1.a74b1717 -- Update to new version do bootstrap from scratch - -* Fri May 6 2011 Alexander Kurtakov 0.10.0-3 -- Non-bootstrap build. - -* Tue May 3 2011 Stanislav Ochotnicky - 0.10.0-2 -- Add README and make build more silent - -* Tue Mar 29 2011 Stanislav Ochotnicky - 0.10.0-1 -- First bootstrapped version