blob: edcbef4747b1df738381c7f496f5077f8faaf7c4 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.apache.maven.mercury.transport.api;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Set;
import org.apache.maven.mercury.crypto.api.StreamObserverFactory;
import org.apache.maven.mercury.crypto.api.StreamVerifierFactory;
public class Server
{
private String id;
private URL url;
private Credentials serverCredentials;
private URL proxy;
private Credentials proxyCredentials;
private boolean requireEncryption = false;
private boolean requireTrustedServer = false;
private Set<StreamObserverFactory> writerStreamObserverFactories;
private Set<StreamObserverFactory> readerStreamObserverFactories;
private Set<StreamVerifierFactory> writerStreamVerifierFactories;
private Set<StreamVerifierFactory> readerStreamVerifierFactories;
private String userAgent;
public Server( String id, URL url )
{
if( url == null )
throw new IllegalArgumentException( "URL: "+url );
String ustr = url.toString();
if( ustr.endsWith( "/" ) )
try
{
this.url = new URL( ustr.substring( 0, ustr.length()-1 ) );
}
catch( MalformedURLException e )
{
throw new IllegalArgumentException( e.getMessage() );
}
else
this.url = url;
this.id = id;
}
public Server( String id, URL url, boolean requireEncryption, boolean requireTrustedServer )
{
this( id, url );
this.requireEncryption = requireEncryption;
this.requireTrustedServer = requireTrustedServer;
}
public Server( String id, URL url, boolean requireEncryption, boolean requireTrustedServer, Credentials serverCredentials )
{
this( id, url, requireEncryption, requireTrustedServer );
this.serverCredentials = serverCredentials;
}
public Server( String id, URL url, boolean requireEncryption, boolean requireTrustedServer, Credentials serverCredentials, URL proxy )
{
this( id, url, requireEncryption, requireTrustedServer, serverCredentials );
this.proxy = proxy;
}
public Server( String id, URL url, boolean requireEncryption, boolean requireTrustedServer, Credentials serverCredentials, URL proxy, Credentials proxyCredentials )
{
this( id, url, requireEncryption, requireTrustedServer, serverCredentials, proxy );
this.proxyCredentials = proxyCredentials;
}
public String getId()
{
return id;
}
public boolean hasUserAgent()
{
return userAgent != null;
}
public String getUserAgent()
{
return userAgent;
}
public void setUserAgent( String userAgent )
{
this.userAgent = userAgent;
}
public void setURL( URL url )
{
this.url = url;
}
public URL getURL()
{
return this.url;
}
public Credentials getServerCredentials()
{
return this.serverCredentials;
}
public void setServerCredentials( Credentials cred )
{
this.serverCredentials = cred;
}
public URL getProxy()
{
return this.proxy;
}
public boolean hasProxy()
{
return this.proxy != null;
}
public void setProxy( URL proxy )
{
this.proxy = proxy;
}
public Credentials getProxyCredentials()
{
return this.proxyCredentials;
}
public void setProxyCredentials( Credentials user )
{
this.proxyCredentials = user;
}
public boolean hasWriterStreamVerifierFactories()
{
return writerStreamVerifierFactories != null && writerStreamVerifierFactories.size() > 0;
}
public Set<StreamVerifierFactory> getWriterStreamVerifierFactories()
{
return writerStreamVerifierFactories;
}
public void setWriterStreamVerifierFactories( Set<StreamVerifierFactory> factories )
{
writerStreamVerifierFactories = factories;
}
public boolean hasReaderStreamVerifierFactories()
{
return readerStreamVerifierFactories != null && readerStreamVerifierFactories.size() > 0;
}
public Set<StreamVerifierFactory> getReaderStreamVerifierFactories()
{
return readerStreamVerifierFactories;
}
public void setReaderStreamVerifierFactories( Set<StreamVerifierFactory> factories )
{
readerStreamVerifierFactories = factories;
}
public boolean hasWriterStreamObserverFactories()
{
return writerStreamObserverFactories != null && writerStreamObserverFactories.size() > 0;
}
public Set<StreamObserverFactory> getWriterStreamObserverFactories()
{
return writerStreamObserverFactories;
}
public void setWriterStreamObserverFactories( Set<StreamObserverFactory> factories )
{
writerStreamObserverFactories = factories;
}
public boolean hasReaderStreamObserverFactories()
{
return readerStreamObserverFactories != null && readerStreamObserverFactories.size() > 0;
}
public Set<StreamObserverFactory> getReaderStreamObserverFactories()
{
return readerStreamObserverFactories;
}
public void setReaderStreamObserverFactories( Set<StreamObserverFactory> factories )
{
readerStreamObserverFactories = factories;
}
public boolean isRequireEncryption()
{
return requireEncryption;
}
public boolean isRequireTrustedServer()
{
return requireTrustedServer;
}
@Override
public String toString()
{
return id+": "+url;
}
}