/*
* 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 java.util.Map;
import org.eclipse.aether.RepositoryCache;
import org.eclipse.aether.RepositoryListener;
import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.SessionData;
import org.eclipse.aether.artifact.ArtifactTypeRegistry;
import org.eclipse.aether.collection.DependencyGraphTransformer;
import org.eclipse.aether.collection.DependencyManager;
import org.eclipse.aether.collection.DependencySelector;
import org.eclipse.aether.collection.DependencyTraverser;
import org.eclipse.aether.collection.VersionFilter;
import org.eclipse.aether.repository.AuthenticationSelector;
import org.eclipse.aether.repository.LocalRepository;
import org.eclipse.aether.repository.LocalRepositoryManager;
import org.eclipse.aether.repository.MirrorSelector;
import org.eclipse.aether.repository.ProxySelector;
import org.eclipse.aether.repository.WorkspaceReader;
import org.eclipse.aether.resolution.ArtifactDescriptorPolicy;
import org.eclipse.aether.resolution.ResolutionErrorPolicy;
import org.eclipse.aether.transfer.TransferListener;
import org.uberfire.commons.validation.PortablePreconditions;
/**
* A wrapper around the normal RepositorySystemSession to "fool" Maven into not checking local for remote artifacts
*/
public class MavenRepositorySystemSessionWrapper implements RepositorySystemSession {
private final String tempLocalRepositoryBaseDir;
private final RepositorySystemSession delegate;
public MavenRepositorySystemSessionWrapper( final String tempLocalRepositoryBaseDir,
final RepositorySystemSession delegate ) {
this.tempLocalRepositoryBaseDir = PortablePreconditions.checkNotNull( "tempLocalRepositoryBaseDir",
tempLocalRepositoryBaseDir );
this.delegate = PortablePreconditions.checkNotNull( "delegate",
delegate );
}
@Override
public boolean isOffline() {
return delegate.isOffline();
}
@Override
public boolean isIgnoreArtifactDescriptorRepositories() {
return delegate.isIgnoreArtifactDescriptorRepositories();
}
@Override
public ResolutionErrorPolicy getResolutionErrorPolicy() {
return delegate.getResolutionErrorPolicy();
}
@Override
public ArtifactDescriptorPolicy getArtifactDescriptorPolicy() {
return delegate.getArtifactDescriptorPolicy();
}
@Override
public String getChecksumPolicy() {
return delegate.getChecksumPolicy();
}
@Override
public String getUpdatePolicy() {
return delegate.getUpdatePolicy();
}
@Override
public LocalRepository getLocalRepository() {
return delegate.getLocalRepository();
}
@Override
public LocalRepositoryManager getLocalRepositoryManager() {
return new MavenLocalRepositoryManagerWrapper( tempLocalRepositoryBaseDir,
delegate.getLocalRepositoryManager() );
}
@Override
public WorkspaceReader getWorkspaceReader() {
return delegate.getWorkspaceReader();
}
@Override
public RepositoryListener getRepositoryListener() {
return delegate.getRepositoryListener();
}
@Override
public TransferListener getTransferListener() {
return delegate.getTransferListener();
}
@Override
public Map<String, String> getSystemProperties() {
return delegate.getSystemProperties();
}
@Override
public Map<String, String> getUserProperties() {
return delegate.getUserProperties();
}
@Override
public Map<String, Object> getConfigProperties() {
return delegate.getConfigProperties();
}
@Override
public MirrorSelector getMirrorSelector() {
return delegate.getMirrorSelector();
}
@Override
public ProxySelector getProxySelector() {
return delegate.getProxySelector();
}
@Override
public AuthenticationSelector getAuthenticationSelector() {
return delegate.getAuthenticationSelector();
}
@Override
public ArtifactTypeRegistry getArtifactTypeRegistry() {
return delegate.getArtifactTypeRegistry();
}
@Override
public DependencyTraverser getDependencyTraverser() {
return delegate.getDependencyTraverser();
}
@Override
public DependencyManager getDependencyManager() {
return delegate.getDependencyManager();
}
@Override
public DependencySelector getDependencySelector() {
return delegate.getDependencySelector();
}
@Override
public VersionFilter getVersionFilter() {
return delegate.getVersionFilter();
}
@Override
public DependencyGraphTransformer getDependencyGraphTransformer() {
return delegate.getDependencyGraphTransformer();
}
@Override
public SessionData getData() {
return delegate.getData();
}
@Override
public RepositoryCache getCache() {
return delegate.getCache();
}
}