protected NexusClient getNexusClientForBaseUrl(final String baseUrlString, final SubsystemFactory<?, JerseyNexusClient>... subsystemFactories) { if (baseUrlString == null) { throw new IllegalStateException(); } BaseUrl baseUrl; try { baseUrl = BaseUrl.baseUrlFrom(sanitizeBaseurl(baseUrlString)); } catch (MalformedURLException e) { throw new RuntimeException(e); } AuthenticationInfo authenticationInfo = new UsernamePasswordAuthenticationInfo(nexus.getUsername(), nexus.getPassword()); ConnectionInfo connectionInfo = new ConnectionInfo(baseUrl, authenticationInfo, null /* proxyInfos */); return new JerseyNexusClientFactory(subsystemFactories).createFor(connectionInfo); }
protected ApacheHttpClient4 doCreateHttpClientFor( final ConnectionInfo connectionInfo, final XStream xstream ) { final ApacheHttpClient4Config config = new DefaultApacheHttpClient4Config(); config.getSingletons().add( new XStreamXmlProvider( xstream, APPLICATION_XML_UTF8_TYPE ) ); // set _real_ URL for baseUrl, and not a redirection (typically http instead of https) config.getProperties().put( ApacheHttpClient4Config.PROPERTY_FOLLOW_REDIRECTS, Boolean.FALSE ); config.getFeatures().put( JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE ); applyAuthenticationIfAny( connectionInfo, config ); applyProxyIfAny( connectionInfo, config ); final ApacheHttpClient4 client = ApacheHttpClient4.create( config ); // set UA client.getClientHandler().getHttpClient().getParams().setParameter( CoreProtocolPNames.USER_AGENT, "Nexus-Client/" + discoverClientVersion() ); // NXCM-4547 JERSEY-1293 Enforce proxy setting on httpclient enforceProxyUri( config, client ); if ( LOG.isDebugEnabled() ) { client.addFilter( new LoggingFilter() ); } return client; }
@Override protected JerseyNexusClient doCreateFor( final Condition connectionCondition, final SubsystemFactory<?, JerseyNexusClient>[] subsystemFactories, final ConnectionInfo connectionInfo ) { // we are java2java client, so we use XML instead of JSON, as // some current Nexus are one way only! So, we fix for XML final XStream xstream = new NexusXStreamFactory().createAndConfigureForXml(); // we use XML for communication (unlike web browsers do, for which JSON makes more sense) return new JerseyNexusClient( connectionCondition, subsystemFactories, connectionInfo, xstream, doCreateHttpClientFor( connectionInfo, xstream ), APPLICATION_XML_UTF8_TYPE ); }
/** * NXCM-4547 JERSEY-1293 Enforce proxy setting on httpclient * <p/> * Revisit for jersey 1.13. */ private void enforceProxyUri( final ApacheHttpClient4Config config, final ApacheHttpClient4 client ) { final Object proxyProperty = config.getProperties().get( ApacheHttpClient4Config.PROPERTY_PROXY_URI ); if ( proxyProperty != null ) { final URI uri = getProxyUri( proxyProperty ); final HttpHost proxy = new HttpHost( uri.getHost(), uri.getPort(), uri.getScheme() ); client.getClientHandler().getHttpClient().getParams().setParameter( ConnRoutePNames.DEFAULT_PROXY, proxy ); } }
final ConnectionInfo connectionInfo = new ConnectionInfo(baseUrl, authenticationInfo, proxyInfos, sslCertificateValidationLevel, sslCertificateHostnameValidationLevel); final NexusClient nexusClient = new JerseyNexusClientFactory( ).createFor(connectionInfo); final NexusStatus nexusStatus = nexusClient.getNexusStatus(); log.info(" * Connected to Nexus at {}, is version {} and edition \"{}\"",
new org.sonatype.nexus.client.rest.ConnectionInfo(baseUrl, authenticationInfo, proxyInfos); this.nexusClient = new JerseyNexusClientFactory( .createFor(connectionInfo);