/* * Copyright 2016 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.guvnor.common.services.project.backend.server; import org.eclipse.aether.RepositorySystemSession; import org.eclipse.aether.artifact.Artifact; import org.eclipse.aether.metadata.Metadata; import org.eclipse.aether.repository.LocalArtifactRegistration; import org.eclipse.aether.repository.LocalArtifactRequest; import org.eclipse.aether.repository.LocalArtifactResult; import org.eclipse.aether.repository.LocalMetadataRegistration; import org.eclipse.aether.repository.LocalMetadataRequest; import org.eclipse.aether.repository.LocalMetadataResult; import org.eclipse.aether.repository.LocalRepository; import org.eclipse.aether.repository.LocalRepositoryManager; import org.eclipse.aether.repository.RemoteRepository; import org.uberfire.commons.validation.PortablePreconditions; /** * A wrapper around the normal LocalRepositoryManager to "fool" Maven into not checking local for remote artifacts */ public class MavenLocalRepositoryManagerWrapper implements LocalRepositoryManager { private final String tempLocalRepositoryBaseDir; private final LocalRepositoryManager delegate; public MavenLocalRepositoryManagerWrapper( final String tempLocalRepositoryBaseDir, final LocalRepositoryManager delegate ) { this.tempLocalRepositoryBaseDir = PortablePreconditions.checkNotNull( "tempLocalRepositoryBaseDir", tempLocalRepositoryBaseDir ); this.delegate = PortablePreconditions.checkNotNull( "delegate", delegate ); } @Override public LocalRepository getRepository() { return new LocalRepository( tempLocalRepositoryBaseDir ); } @Override public String getPathForLocalArtifact( final Artifact artifact ) { return delegate.getPathForLocalArtifact( artifact ); } @Override public String getPathForRemoteArtifact( final Artifact artifact, final RemoteRepository repository, final String context ) { return delegate.getPathForRemoteArtifact( artifact, repository, context ); } @Override public String getPathForLocalMetadata( final Metadata metadata ) { return delegate.getPathForLocalMetadata( metadata ); } @Override public String getPathForRemoteMetadata( final Metadata metadata, final RemoteRepository repository, final String context ) { return delegate.getPathForRemoteMetadata( metadata, repository, context ); } @Override public LocalArtifactResult find( final RepositorySystemSession session, final LocalArtifactRequest request ) { return new LocalArtifactResult( request ); } @Override public void add( final RepositorySystemSession session, final LocalArtifactRegistration request ) { delegate.add( session, request ); } @Override public LocalMetadataResult find( final RepositorySystemSession session, final LocalMetadataRequest request ) { return delegate.find( session, request ); } @Override public void add( final RepositorySystemSession session, final LocalMetadataRegistration request ) { delegate.add( session, request ); } }