001package org.apache.archiva.proxy.common; 002/* 003 * Licensed to the Apache Software Foundation (ASF) under one 004 * or more contributor license agreements. See the NOTICE file 005 * distributed with this work for additional information 006 * regarding copyright ownership. The ASF licenses this file 007 * to you under the Apache License, Version 2.0 (the 008 * "License"); you may not use this file except in compliance 009 * with the License. You may obtain a copy of the License at 010 * 011 * http://www.apache.org/licenses/LICENSE-2.0 012 * 013 * Unless required by applicable law or agreed to in writing, 014 * software distributed under the License is distributed on an 015 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 016 * KIND, either express or implied. See the License for the 017 * specific language governing permissions and limitations 018 * under the License. 019 */ 020 021import org.apache.archiva.admin.model.beans.NetworkProxy; 022import org.apache.commons.lang.StringUtils; 023 024import java.util.HashMap; 025import java.util.Map; 026 027/** 028 * @author Olivier Lamy 029 * @since 1.4-M4 030 */ 031public class WagonFactoryRequest 032{ 033 034 public static final String USER_AGENT_SYSTEM_PROPERTY = "archiva.userAgent"; 035 036 private static String DEFAULT_USER_AGENT = "Java-Archiva"; 037 038 /** 039 * the protocol to find the Wagon for, which must be prefixed with <code>wagon#</code>, for example 040 * <code>wagon#http</code>. <b>to have a wagon supporting ntlm add -ntlm</b> 041 */ 042 private String protocol; 043 044 private Map<String, String> headers = new HashMap<>(); 045 046 private String userAgent = DEFAULT_USER_AGENT; 047 048 static { 049 if ( StringUtils.isNotBlank( System.getProperty( USER_AGENT_SYSTEM_PROPERTY))) { 050 DEFAULT_USER_AGENT=System.getProperty(USER_AGENT_SYSTEM_PROPERTY); 051 } 052 } 053 054 private NetworkProxy networkProxy; 055 056 public WagonFactoryRequest() 057 { 058 // no op 059 } 060 061 public WagonFactoryRequest( String protocol, Map<String, String> headers ) 062 { 063 this.protocol = protocol; 064 this.headers = headers; 065 } 066 067 public String getProtocol() 068 { 069 return protocol; 070 } 071 072 public void setProtocol( String protocol ) 073 { 074 this.protocol = protocol; 075 } 076 077 public WagonFactoryRequest protocol( String protocol ) 078 { 079 this.protocol = protocol; 080 return this; 081 } 082 083 public Map<String, String> getHeaders() 084 { 085 if ( this.headers == null ) 086 { 087 this.headers = new HashMap<>(); 088 } 089 return headers; 090 } 091 092 public void setHeaders( Map<String, String> headers ) 093 { 094 this.headers = headers; 095 } 096 097 public WagonFactoryRequest headers( Map<String, String> headers ) 098 { 099 this.headers = headers; 100 return this; 101 } 102 103 public String getUserAgent() 104 { 105 return userAgent; 106 } 107 108 public void setUserAgent( String userAgent ) 109 { 110 this.userAgent = userAgent; 111 } 112 113 public WagonFactoryRequest userAgent( String userAgent ) 114 { 115 this.userAgent = userAgent; 116 return this; 117 } 118 119 public NetworkProxy getNetworkProxy() 120 { 121 return networkProxy; 122 } 123 124 public void setNetworkProxy( NetworkProxy networkProxy ) 125 { 126 this.networkProxy = networkProxy; 127 } 128 129 public WagonFactoryRequest networkProxy( NetworkProxy networkProxy ) 130 { 131 this.networkProxy = networkProxy; 132 return this; 133 } 134 135 @Override 136 public boolean equals( Object o ) 137 { 138 if ( this == o ) 139 { 140 return true; 141 } 142 if ( !( o instanceof WagonFactoryRequest ) ) 143 { 144 return false; 145 } 146 147 WagonFactoryRequest that = (WagonFactoryRequest) o; 148 149 if ( protocol != null ? !protocol.equals( that.protocol ) : that.protocol != null ) 150 { 151 return false; 152 } 153 if ( userAgent != null ? !userAgent.equals( that.userAgent ) : that.userAgent != null ) 154 { 155 return false; 156 } 157 158 return true; 159 } 160 161 @Override 162 public int hashCode() 163 { 164 int result = protocol != null ? protocol.hashCode() : 0; 165 result = 31 * result + ( userAgent != null ? userAgent.hashCode() : 0 ); 166 return result; 167 } 168 169 @Override 170 public String toString() 171 { 172 return "WagonFactoryRequest{" + 173 "protocol='" + protocol + '\'' + 174 ", headers=" + headers + 175 ", userAgent='" + userAgent + '\'' + 176 ", networkProxy=" + networkProxy + 177 '}'; 178 } 179}