diff options
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/CompositeArtifactRepositoryFactory.java')
-rw-r--r-- | bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/CompositeArtifactRepositoryFactory.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/CompositeArtifactRepositoryFactory.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/CompositeArtifactRepositoryFactory.java index 8d33d918c..c5a2deb75 100644 --- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/CompositeArtifactRepositoryFactory.java +++ b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/CompositeArtifactRepositoryFactory.java @@ -25,10 +25,17 @@ import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException; import org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository.ArtifactRepositoryFactory; import org.eclipse.equinox.p2.repository.IRepositoryManager; import org.eclipse.equinox.p2.repository.artifact.IArtifactRepository; +import org.eclipse.equinox.p2.repository.artifact.IArtifactRepositoryManager; import org.eclipse.osgi.util.NLS; public class CompositeArtifactRepositoryFactory extends ArtifactRepositoryFactory { + private IArtifactRepositoryManager getManager() { + if (getAgent() != null) + return (IArtifactRepositoryManager) getAgent().getService(IArtifactRepositoryManager.SERVICE_NAME); + return null; + } + public IArtifactRepository load(URI location, int flags, IProgressMonitor monitor) throws ProvisionException { final String PROTOCOL_FILE = "file"; //$NON-NLS-1$ long time = 0; @@ -95,7 +102,7 @@ public class CompositeArtifactRepositoryFactory extends ArtifactRepositoryFactor CompositeRepositoryState resultState = io.read(localFile.toURL(), descriptorStream, CompositeArtifactRepository.PI_REPOSITORY_TYPE, sub.newChild(100)); if (resultState.getLocation() == null) resultState.setLocation(location); - CompositeArtifactRepository result = new CompositeArtifactRepository(resultState); + CompositeArtifactRepository result = new CompositeArtifactRepository(getManager(), resultState); if (Tracing.DEBUG_METADATA_PARSING) { time += System.currentTimeMillis(); Tracing.debug(debugMsg + "time (ms): " + time); //$NON-NLS-1$ @@ -118,7 +125,7 @@ public class CompositeArtifactRepositoryFactory extends ArtifactRepositoryFactor } public IArtifactRepository create(URI location, String name, String type, Map properties) { - return new CompositeArtifactRepository(location, name, properties); + return new CompositeArtifactRepository(getManager(), location, name, properties); } private Transport getTransport() { |