diff --git a/pom.xml b/pom.xml index 851c3c3..de3d8ae 100644 --- a/pom.xml +++ b/pom.xml @@ -102,6 +102,19 @@ + + maven-javadoc-plugin + + + javadoc + package + jar + + public + + + + diff --git a/src/main/java/com/inteligr8/alfresco/activiti/ApsClientConfiguration.java b/src/main/java/com/inteligr8/alfresco/activiti/ApsClientConfiguration.java index dd98971..3bbefc2 100644 --- a/src/main/java/com/inteligr8/alfresco/activiti/ApsClientConfiguration.java +++ b/src/main/java/com/inteligr8/alfresco/activiti/ApsClientConfiguration.java @@ -7,6 +7,14 @@ import org.springframework.context.annotation.Configuration; import com.inteligr8.rs.ClientCxfConfiguration; import com.inteligr8.rs.ClientJerseyConfiguration; +/** + * This class provides a POJO & Spring-based implementation of the + * ClientConfiguration interface. You can use it outside of the Spring + * context, but you will need the spring-context and spring-beans libraries in + * your non-Spring application. + * + * @author brian@inteligr8.com + */ @Configuration @ComponentScan public class ApsClientConfiguration implements ClientCxfConfiguration, ClientJerseyConfiguration { @@ -20,8 +28,8 @@ public class ApsClientConfiguration implements ClientCxfConfiguration, ClientJer @Value("${process.service.security.basicAuth.password:admin}") private String basicAuthPassword; - @Value("${process.service.security.accessToken:#{null}}") - private String accessToken; + @Value("${process.service.security.bearerToken:#{null}}") + private String bearerToken; @Value("${process.service.security.oauth.tokenUrl:#{null}}") private String oAuthTokenUrl; @@ -49,57 +57,109 @@ public class ApsClientConfiguration implements ClientCxfConfiguration, ClientJer @Value("${process.service.jersey.putBodyRequired:true}") private boolean putBodyRequired; - + public String getBaseUrl() { return this.baseUrl; } + public void setBaseUrl(String baseUrl) { + this.baseUrl = baseUrl; + } + public String getBasicAuthUsername() { return this.basicAuthUsername; } + + public void setBasicAuthUsername(String basicAuthUsername) { + this.basicAuthUsername = basicAuthUsername; + } public String getBasicAuthPassword() { return this.basicAuthPassword; } + + public void setBasicAuthPassword(String basicAuthPassword) { + this.basicAuthPassword = basicAuthPassword; + } - public String getAccessToken() { - return this.accessToken; + public String getBearerToken() { + return this.bearerToken; + } + + public void setBearerToken(String bearerToken) { + this.bearerToken = bearerToken; } public String getOAuthTokenUrl() { return this.oAuthTokenUrl; } + + public void setOAuthTokenUrl(String oAuthTokenUrl) { + this.oAuthTokenUrl = oAuthTokenUrl; + } public String getOAuthClientId() { return this.oAuthClientId; } + + public void setOAuthClientId(String oAuthClientId) { + this.oAuthClientId = oAuthClientId; + } public String getOAuthClientSecret() { return this.oAuthClientSecret; } + + public void setOAuthClientSecret(String oAuthClientSecret) { + this.oAuthClientSecret = oAuthClientSecret; + } public String getOAuthAuthCode() { return this.oAuthAuthCode; } + + public void setOAuthAuthCode(String oAuthAuthCode) { + this.oAuthAuthCode = oAuthAuthCode; + } public String getOAuthAuthRedirectUri() { return this.oAuthAuthRedirectUri; } + + public void setOAuthAuthRedirectUri(String oAuthAuthRedirectUri) { + this.oAuthAuthRedirectUri = oAuthAuthRedirectUri; + } public String getOAuthUsername() { return this.oAuthUsername; } + + public void setOAuthUsername(String oAuthUsername) { + this.oAuthUsername = oAuthUsername; + } public String getOAuthPassword() { return this.oAuthPassword; } + + public void setOAuthPassword(String oAuthPassword) { + this.oAuthPassword = oAuthPassword; + } public boolean isDefaultBusEnabled() { return this.defaultBusEnabled; } + + public void setDefaultBusEnabled(boolean defaultBusEnabled) { + this.defaultBusEnabled = defaultBusEnabled; + } public boolean isPutBodyRequired() { return this.putBodyRequired; } + public void setPutBodyRequired(boolean putBodyRequired) { + this.putBodyRequired = putBodyRequired; + } + } diff --git a/src/main/java/com/inteligr8/alfresco/activiti/ApsClientCxfImpl.java b/src/main/java/com/inteligr8/alfresco/activiti/ApsClientCxfImpl.java index aee055f..aa82f4d 100644 --- a/src/main/java/com/inteligr8/alfresco/activiti/ApsClientCxfImpl.java +++ b/src/main/java/com/inteligr8/alfresco/activiti/ApsClientCxfImpl.java @@ -8,7 +8,12 @@ import com.inteligr8.rs.ClientCxfConfiguration; import com.inteligr8.rs.ClientCxfImpl; /** - * Configured JAX-RS Client & WebTarget for APS & CXF + * This class provides a POJO & Spring-based implementation of the Apache + * CXF client. You can use it outside of the Spring context, but you will need + * the spring-context and spring-beans libraries in your non-Spring + * application. + * + * @author brian@inteligr8.com */ @Component("aps.client.cxf") @Lazy @@ -17,6 +22,19 @@ public class ApsClientCxfImpl extends ClientCxfImpl { @Autowired private ApsClientConfiguration config; + /** + * This constructor is for Spring use + */ + ApsClientCxfImpl() { + } + + /** + * This constructor is for POJO use + */ + public ApsClientCxfImpl(ApsClientConfiguration config) { + this.config = config; + } + @Override protected ClientCxfConfiguration getConfig() { return this.config; diff --git a/src/main/java/com/inteligr8/alfresco/activiti/ApsClientJerseyImpl.java b/src/main/java/com/inteligr8/alfresco/activiti/ApsClientJerseyImpl.java index 8eca94f..fed0eeb 100644 --- a/src/main/java/com/inteligr8/alfresco/activiti/ApsClientJerseyImpl.java +++ b/src/main/java/com/inteligr8/alfresco/activiti/ApsClientJerseyImpl.java @@ -8,7 +8,12 @@ import com.inteligr8.rs.ClientJerseyConfiguration; import com.inteligr8.rs.ClientJerseyImpl; /** - * Configured JAX-RS Client & WebTarget for APS & Jersey + * This class provides a POJO & Spring-based implementation of the Apache + * CXF client. You can use it outside of the Spring context, but you will need + * the spring-context and spring-beans libraries in your non-Spring + * application. + * + * @author brian@inteligr8.com */ @Component("aps.client.jersey") @Lazy @@ -17,6 +22,19 @@ public class ApsClientJerseyImpl extends ClientJerseyImpl { @Autowired private ApsClientConfiguration config; + /** + * This constructor is for Spring use + */ + ApsClientJerseyImpl() { + } + + /** + * This constructor is for POJO use + */ + public ApsClientJerseyImpl(ApsClientConfiguration config) { + this.config = config; + } + @Override protected ClientJerseyConfiguration getConfig() { return this.config; diff --git a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApi.java b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApi.java index fea480b..ce4ce6b 100644 --- a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApi.java +++ b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApi.java @@ -5,35 +5,68 @@ import com.inteligr8.alfresco.activiti.api.AppVersionApi; import com.inteligr8.alfresco.activiti.api.ProcessInstancesApi; import com.inteligr8.alfresco.activiti.api.ProfileApi; import com.inteligr8.alfresco.activiti.api.TasksApi; +import com.inteligr8.rs.AuthorizationFilter; +import com.inteligr8.rs.Client; import com.inteligr8.rs.ClientConfiguration; /** - * Alfresco Process Services Spring-ready API + * This class serves as the base implementation for the JAX-RS API for the APS + * Public ReST API. + * + * @author brian@inteligr8.com */ public abstract class ApsPublicRestApi { - protected abstract ClientConfiguration getConfig(); + abstract ClientConfiguration getConfig(); - protected abstract T getApi(Class apiClass); + abstract Client getClient(); + + protected final T getApi(Class apiClass) { + return this.getApi(null, apiClass); + } + + protected T getApi(AuthorizationFilter authFilter, Class apiClass) { + return this.getClient().getApi(authFilter, apiClass); + } public AdminApi getAdminApi() { return this.getApi(AdminApi.class); } + public AdminApi getAdminApi(AuthorizationFilter authFilter) { + return this.getApi(authFilter, AdminApi.class); + } + public AppVersionApi getAppVersionApi() { return this.getApi(AppVersionApi.class); } + public AppVersionApi getAppVersionApi(AuthorizationFilter authFilter) { + return this.getApi(authFilter, AppVersionApi.class); + } + public ProcessInstancesApi getProcessInstancesApi() { return this.getApi(ProcessInstancesApi.class); } + public ProcessInstancesApi getProcessInstancesApi(AuthorizationFilter authFilter) { + return this.getApi(authFilter, ProcessInstancesApi.class); + } + public ProfileApi getProfileApi() { return this.getApi(ProfileApi.class); } + public ProfileApi getProfileApi(AuthorizationFilter authFilter) { + return this.getApi(authFilter, ProfileApi.class); + } + public TasksApi getTasksApi() { return this.getApi(TasksApi.class); } + + public TasksApi getTasksApi(AuthorizationFilter authFilter) { + return this.getApi(authFilter, TasksApi.class); + } } diff --git a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiCxfImpl.java b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiCxfImpl.java index c261ae2..68e3049 100644 --- a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiCxfImpl.java +++ b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiCxfImpl.java @@ -4,10 +4,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; +import com.inteligr8.rs.Client; import com.inteligr8.rs.ClientConfiguration; /** - * Alfresco Process Services Spring-ready API for CXF + * This class provides the Apache CXF client to the JAX-RS API for the APS + * Public ReST API. + * + * @author brian@inteligr8.com */ @Component("aps.api.cxf") @Lazy @@ -16,14 +20,27 @@ public class ApsPublicRestApiCxfImpl extends ApsPublicRestApi { @Autowired private ApsClientCxfImpl client; - @Override - protected ClientConfiguration getConfig() { - return this.client.getConfig(); + /** + * This constructor is for Spring use + */ + ApsPublicRestApiCxfImpl() { } + /** + * This constructor is for POJO use + */ + public ApsPublicRestApiCxfImpl(ApsClientCxfImpl client) { + this.client = client; + } + @Override - protected T getApi(Class apiClass) { - return this.client.getApi(apiClass); + ClientConfiguration getConfig() { + return this.client.getConfig(); + } + + @Override + Client getClient() { + return this.client; } } diff --git a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiJerseyImpl.java b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiJerseyImpl.java index aa80486..7f8c364 100644 --- a/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiJerseyImpl.java +++ b/src/main/java/com/inteligr8/alfresco/activiti/ApsPublicRestApiJerseyImpl.java @@ -4,10 +4,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; +import com.inteligr8.rs.Client; import com.inteligr8.rs.ClientConfiguration; /** - * Alfresco Process Services Spring-ready API for Jersey + * This class provides the Jersey client to the JAX-RS API for the APS Public + * ReST API. + * + * @author brian@inteligr8.com */ @Component("aps.api.jersey") @Lazy @@ -16,14 +20,27 @@ public class ApsPublicRestApiJerseyImpl extends ApsPublicRestApi { @Autowired private ApsClientJerseyImpl client; + /** + * This constructor is for Spring use + */ + ApsPublicRestApiJerseyImpl() { + } + + /** + * This constructor is for POJO use + */ + public ApsPublicRestApiJerseyImpl(ApsClientJerseyImpl client) { + this.client = client; + } + @Override - protected ClientConfiguration getConfig() { + ClientConfiguration getConfig() { return this.client.getConfig(); } @Override - protected T getApi(Class apiClass) { - return this.client.getApi(apiClass); + Client getClient() { + return this.client; } }