Commit 53d9c738 authored by Brian Long's avatar Brian Long
Browse files

allow singleton classes (might be bad)

parent 3a003eff
Loading
Loading
Loading
Loading
+21 −7
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@ package com.inteligr8.rs;
import java.util.LinkedList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.ws.rs.ext.RuntimeDelegate;

import org.apache.cxf.BusFactory;
@@ -11,7 +12,7 @@ import org.apache.cxf.jaxrs.client.WebClient;
import org.apache.cxf.jaxrs.impl.RuntimeDelegateImpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component;

import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider;

@@ -21,22 +22,31 @@ import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider;
 * 
 * @author brian@inteligr8.com
 */
public abstract class ClientCxfImpl extends Client implements InitializingBean {
@Component("client.cxf")
public class ClientCxfImpl extends Client {
	
	private final Logger logger = LoggerFactory.getLogger(ClientCxfImpl.class);
	
	@Override
	protected abstract ClientCxfConfiguration getConfig();
	private ClientCxfConfiguration config;
	
	@Override
	public void afterPropertiesSet() {
		this.register();
	/**
	 * This constructor is for Spring use and inheriting APIs
	 */
	protected ClientCxfImpl() {
	}
	
	/**
	 * This constructor is for POJO use
	 */
	public ClientCxfImpl(ClientCxfConfiguration config) {
		this.config = config;
	}
	
	/**
	 * This method registers the Apache CXF library as the default provider for
	 * the JAX-RS specification.
	 */
	@PostConstruct
	public void register() {
		if (RuntimeDelegate.getInstance() == null) {
			this.logger.info("Setting JAX-RS runtime delegate to the CXF library");
@@ -95,6 +105,10 @@ public abstract class ClientCxfImpl extends Client implements InitializingBean {
		// for extension purposes
	}
	
	protected ClientCxfConfiguration getConfig() {
		return this.config;
	}

	/**
	 * This method retrieves a JAX-RS implementation of the specified API with
	 * the specified authorization.
+23 −7
Original line number Diff line number Diff line
package com.inteligr8.rs;

import javax.annotation.PostConstruct;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.ext.RuntimeDelegate;

@@ -9,7 +10,8 @@ import org.glassfish.jersey.internal.RuntimeDelegateImpl;
import org.glassfish.jersey.media.multipart.MultiPartFeature;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * A class that provides pre-configured JAX-RS Client & WebTarget objects
@@ -17,22 +19,32 @@ import org.springframework.beans.factory.InitializingBean;
 * 
 * @author brian@inteligr8.com
 */
public abstract class ClientJerseyImpl extends Client implements InitializingBean {
@Component("client.jersey")
public class ClientJerseyImpl extends Client {
	
	private final Logger logger = LoggerFactory.getLogger(ClientJerseyImpl.class);
	
	@Override
	protected abstract ClientJerseyConfiguration getConfig();
	@Autowired
	private ClientJerseyConfiguration config;
	
	@Override
	public void afterPropertiesSet() {
		this.register();
	/**
	 * This constructor is for Spring use and inheriting APIs
	 */
	protected ClientJerseyImpl() {
	}
	
	/**
	 * This constructor is for POJO use
	 */
	public ClientJerseyImpl(ClientJerseyConfiguration config) {
		this.config = config;
	}

	/**
	 * This method registers the Jersey library as the default provider for the
	 * JAX-RS specification.
	 */
	@PostConstruct
	public void register() {
		if (RuntimeDelegate.getInstance() == null) {
			this.logger.info("Setting JAX-RS runtime delegate to the Jersey library");
@@ -58,6 +70,10 @@ public abstract class ClientJerseyImpl extends Client implements InitializingBea
		}
	}
	
	protected ClientJerseyConfiguration getConfig() {
		return this.config;
	}

	/**
	 * This method retrieves a JAX-RS implementation of the specified API with
	 * the specified authorization.