diff --git a/src/site/markdown/Category.md b/src/site/markdown/Category.md
index 307a849b4c..c8517dc96e 100644
--- a/src/site/markdown/Category.md
+++ b/src/site/markdown/Category.md
@@ -32,8 +32,10 @@ The following is an example, demonstrating a complex category definition.
+
+
@@ -58,7 +60,11 @@ The following is an example, demonstrating a complex category definition.
- id ~= /javax.*/
+
+ id ~= /javax.*/
+
-```
\ No newline at end of file
+```
+
+You can read more about P2 Query Syntax [here](https://wiki.eclipse.org/Equinox/p2/Query_Language_for_p2).
diff --git a/tycho-core/src/main/java/org/eclipse/tycho/p2/tools/publisher/PublisherActionRunner.java b/tycho-core/src/main/java/org/eclipse/tycho/p2/tools/publisher/PublisherActionRunner.java
index ed5c02b328..197ae94481 100644
--- a/tycho-core/src/main/java/org/eclipse/tycho/p2/tools/publisher/PublisherActionRunner.java
+++ b/tycho-core/src/main/java/org/eclipse/tycho/p2/tools/publisher/PublisherActionRunner.java
@@ -96,10 +96,9 @@ private void setTargetEnvironments(PublisherInfo publisherInfo) {
private void handlePublisherStatus(IStatus result) {
if (result.matches(IStatus.INFO)) {
- logger.info(StatusTool.collectProblems(result));
+ logger.info(StatusTool.toLogMessage(result));
} else if (result.matches(IStatus.WARNING)) {
- logger.warn(StatusTool.collectProblems(result));
-
+ logger.warn(StatusTool.toLogMessage(result));
} else if (!result.isOK()) {
Throwable directlyIncludedException = result.getException();
throw directlyIncludedException instanceof RuntimeException runtimeEx //
diff --git a/tycho-core/src/main/java/org/eclipse/tycho/p2tools/MirrorApplicationServiceImpl.java b/tycho-core/src/main/java/org/eclipse/tycho/p2tools/MirrorApplicationServiceImpl.java
index 4709107cdb..76a629c9eb 100644
--- a/tycho-core/src/main/java/org/eclipse/tycho/p2tools/MirrorApplicationServiceImpl.java
+++ b/tycho-core/src/main/java/org/eclipse/tycho/p2tools/MirrorApplicationServiceImpl.java
@@ -354,7 +354,7 @@ static class LogListener implements IArtifactMirrorLog {
@Override
public void log(IArtifactDescriptor descriptor, IStatus status) {
if (!status.isOK()) {
- logger.debug(MIRROR_TOOL_MESSAGE_PREFIX + StatusTool.collectProblems(status));
+ logger.debug(MIRROR_TOOL_MESSAGE_PREFIX + StatusTool.toLogMessage(status));
hasLogged = true;
}
}
@@ -362,7 +362,7 @@ public void log(IArtifactDescriptor descriptor, IStatus status) {
@Override
public void log(IStatus status) {
if (!status.isOK()) {
- logger.warn(MIRROR_TOOL_MESSAGE_PREFIX + StatusTool.collectProblems(status));
+ logger.warn(MIRROR_TOOL_MESSAGE_PREFIX + StatusTool.toLogMessage(status));
hasLogged = true;
}
}
diff --git a/tycho-core/src/main/java/org/eclipse/tycho/p2tools/TychoMirrorApplication.java b/tycho-core/src/main/java/org/eclipse/tycho/p2tools/TychoMirrorApplication.java
index 8406843f51..1cbfc30708 100644
--- a/tycho-core/src/main/java/org/eclipse/tycho/p2tools/TychoMirrorApplication.java
+++ b/tycho-core/src/main/java/org/eclipse/tycho/p2tools/TychoMirrorApplication.java
@@ -22,6 +22,7 @@
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -32,8 +33,6 @@
import java.util.stream.Stream;
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.equinox.internal.p2.director.PermissiveSlicer;
-import org.eclipse.equinox.internal.p2.director.Slicer;
import org.eclipse.equinox.internal.p2.metadata.IRequiredCapability;
import org.eclipse.equinox.internal.p2.metadata.InstallableUnit;
import org.eclipse.equinox.internal.p2.metadata.RequiredCapability;
@@ -59,6 +58,9 @@
import org.eclipse.tycho.TargetPlatform;
import org.eclipse.tycho.p2.tools.DestinationRepositoryDescriptor;
import org.eclipse.tycho.p2.tools.RepositoryReference;
+import org.eclipse.tycho.p2maven.ListCompositeArtifactRepository;
+import org.eclipse.tycho.p2tools.copiedfromp2.PermissiveSlicer;
+import org.eclipse.tycho.p2tools.copiedfromp2.Slicer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -94,6 +96,16 @@ protected IArtifactRepository initializeDestination(RepositoryDescriptor toInit,
return result;
}
+ @Override
+ public IArtifactRepository getCompositeArtifactRepository() {
+ IArtifactRepository repository = super.getCompositeArtifactRepository();
+ if (targetPlatform != null) {
+ return new ListCompositeArtifactRepository(List.of(repository, targetPlatform.getArtifactRepository()),
+ agent);
+ }
+ return repository;
+ }
+
@Override
protected Slicer createSlicer(SlicingOptions options) {
List