From beaff130631c53df1fcfa99ca8981d1f162d1578 Mon Sep 17 00:00:00 2001 From: Giri Dandu Date: Tue, 17 Mar 2015 10:21:28 -0400 Subject: [PATCH] Add whoas configuration and factory to create runner and queue based on configuration - Fixes #3 - Modified .gitignore to remove idea directory --- .gitignore | 2 + .idea/gradle.xml | 16 +++++++ .../Gradle__cglib_cglib_nodep_2_2_2.xml | 11 +++++ ...jackson_core_jackson_annotations_2_3_0.xml | 11 +++++ ...terxml_jackson_core_jackson_core_2_3_3.xml | 11 +++++ ...ml_jackson_core_jackson_databind_2_3_3.xml | 11 +++++ ...ax_annotation_javax_annotation_api_1_2.xml | 11 +++++ .../Gradle__javax_inject_javax_inject_1.xml | 11 +++++ ...radle__javax_ws_rs_javax_ws_rs_api_2_0.xml | 11 +++++ .../Gradle__joda_time_joda_time_2_6.xml | 11 +++++ .../Gradle__junit_junit_dep_4_10.xml | 11 +++++ ...__org_codehaus_groovy_groovy_all_2_3_9.xml | 11 +++++ ..._external_aopalliance_repackaged_2_2_0.xml | 11 +++++ ...ssfish_hk2_external_javax_inject_2_2_0.xml | 11 +++++ ...radle__org_glassfish_hk2_hk2_api_2_2_0.xml | 11 +++++ ...e__org_glassfish_hk2_hk2_locator_2_2_0.xml | 11 +++++ ...dle__org_glassfish_hk2_hk2_utils_2_2_0.xml | 11 +++++ ...ssfish_hk2_osgi_resource_locator_1_0_1.xml | 11 +++++ ...ey_bundles_repackaged_jersey_guava_2_6.xml | 11 +++++ ...lassfish_jersey_core_jersey_client_2_6.xml | 11 +++++ ...lassfish_jersey_core_jersey_common_2_6.xml | 11 +++++ ...Gradle__org_hamcrest_hamcrest_core_1_3.xml | 11 +++++ ...dle__org_javassist_javassist_3_18_1_GA.xml | 11 +++++ ...ockframework_spock_core_0_7_groovy_2_0.xml | 11 +++++ build.gradle | 25 +++++++++++ .../lookout/whoas/WhoasConfiguration.groovy | 8 ++++ .../github/lookout/whoas/WhoasFactory.groovy | 44 +++++++++++++++++++ whoas.iml | 42 ++++++++++++++++++ 28 files changed, 379 insertions(+) create mode 100644 .idea/gradle.xml create mode 100644 .idea/libraries/Gradle__cglib_cglib_nodep_2_2_2.xml create mode 100644 .idea/libraries/Gradle__com_fasterxml_jackson_core_jackson_annotations_2_3_0.xml create mode 100644 .idea/libraries/Gradle__com_fasterxml_jackson_core_jackson_core_2_3_3.xml create mode 100644 .idea/libraries/Gradle__com_fasterxml_jackson_core_jackson_databind_2_3_3.xml create mode 100644 .idea/libraries/Gradle__javax_annotation_javax_annotation_api_1_2.xml create mode 100644 .idea/libraries/Gradle__javax_inject_javax_inject_1.xml create mode 100644 .idea/libraries/Gradle__javax_ws_rs_javax_ws_rs_api_2_0.xml create mode 100644 .idea/libraries/Gradle__joda_time_joda_time_2_6.xml create mode 100644 .idea/libraries/Gradle__junit_junit_dep_4_10.xml create mode 100644 .idea/libraries/Gradle__org_codehaus_groovy_groovy_all_2_3_9.xml create mode 100644 .idea/libraries/Gradle__org_glassfish_hk2_external_aopalliance_repackaged_2_2_0.xml create mode 100644 .idea/libraries/Gradle__org_glassfish_hk2_external_javax_inject_2_2_0.xml create mode 100644 .idea/libraries/Gradle__org_glassfish_hk2_hk2_api_2_2_0.xml create mode 100644 .idea/libraries/Gradle__org_glassfish_hk2_hk2_locator_2_2_0.xml create mode 100644 .idea/libraries/Gradle__org_glassfish_hk2_hk2_utils_2_2_0.xml create mode 100644 .idea/libraries/Gradle__org_glassfish_hk2_osgi_resource_locator_1_0_1.xml create mode 100644 .idea/libraries/Gradle__org_glassfish_jersey_bundles_repackaged_jersey_guava_2_6.xml create mode 100644 .idea/libraries/Gradle__org_glassfish_jersey_core_jersey_client_2_6.xml create mode 100644 .idea/libraries/Gradle__org_glassfish_jersey_core_jersey_common_2_6.xml create mode 100644 .idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3.xml create mode 100644 .idea/libraries/Gradle__org_javassist_javassist_3_18_1_GA.xml create mode 100644 .idea/libraries/Gradle__org_spockframework_spock_core_0_7_groovy_2_0.xml create mode 100644 src/main/groovy/com/github/lookout/whoas/WhoasConfiguration.groovy create mode 100644 src/main/groovy/com/github/lookout/whoas/WhoasFactory.groovy create mode 100644 whoas.iml diff --git a/.gitignore b/.gitignore index 0962a33..754a413 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ build/ +.idea/ +whoas.iml *.sw* .gradle/ diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..ba1ec5c --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__cglib_cglib_nodep_2_2_2.xml b/.idea/libraries/Gradle__cglib_cglib_nodep_2_2_2.xml new file mode 100644 index 0000000..eb17151 --- /dev/null +++ b/.idea/libraries/Gradle__cglib_cglib_nodep_2_2_2.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_fasterxml_jackson_core_jackson_annotations_2_3_0.xml b/.idea/libraries/Gradle__com_fasterxml_jackson_core_jackson_annotations_2_3_0.xml new file mode 100644 index 0000000..c7ced7a --- /dev/null +++ b/.idea/libraries/Gradle__com_fasterxml_jackson_core_jackson_annotations_2_3_0.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_fasterxml_jackson_core_jackson_core_2_3_3.xml b/.idea/libraries/Gradle__com_fasterxml_jackson_core_jackson_core_2_3_3.xml new file mode 100644 index 0000000..d6091ff --- /dev/null +++ b/.idea/libraries/Gradle__com_fasterxml_jackson_core_jackson_core_2_3_3.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_fasterxml_jackson_core_jackson_databind_2_3_3.xml b/.idea/libraries/Gradle__com_fasterxml_jackson_core_jackson_databind_2_3_3.xml new file mode 100644 index 0000000..97f6c73 --- /dev/null +++ b/.idea/libraries/Gradle__com_fasterxml_jackson_core_jackson_databind_2_3_3.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__javax_annotation_javax_annotation_api_1_2.xml b/.idea/libraries/Gradle__javax_annotation_javax_annotation_api_1_2.xml new file mode 100644 index 0000000..6c8357e --- /dev/null +++ b/.idea/libraries/Gradle__javax_annotation_javax_annotation_api_1_2.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml b/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml new file mode 100644 index 0000000..d92a561 --- /dev/null +++ b/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__javax_ws_rs_javax_ws_rs_api_2_0.xml b/.idea/libraries/Gradle__javax_ws_rs_javax_ws_rs_api_2_0.xml new file mode 100644 index 0000000..7fd1ef5 --- /dev/null +++ b/.idea/libraries/Gradle__javax_ws_rs_javax_ws_rs_api_2_0.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__joda_time_joda_time_2_6.xml b/.idea/libraries/Gradle__joda_time_joda_time_2_6.xml new file mode 100644 index 0000000..4d6f806 --- /dev/null +++ b/.idea/libraries/Gradle__joda_time_joda_time_2_6.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__junit_junit_dep_4_10.xml b/.idea/libraries/Gradle__junit_junit_dep_4_10.xml new file mode 100644 index 0000000..c2d6895 --- /dev/null +++ b/.idea/libraries/Gradle__junit_junit_dep_4_10.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_codehaus_groovy_groovy_all_2_3_9.xml b/.idea/libraries/Gradle__org_codehaus_groovy_groovy_all_2_3_9.xml new file mode 100644 index 0000000..006278d --- /dev/null +++ b/.idea/libraries/Gradle__org_codehaus_groovy_groovy_all_2_3_9.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_glassfish_hk2_external_aopalliance_repackaged_2_2_0.xml b/.idea/libraries/Gradle__org_glassfish_hk2_external_aopalliance_repackaged_2_2_0.xml new file mode 100644 index 0000000..f879591 --- /dev/null +++ b/.idea/libraries/Gradle__org_glassfish_hk2_external_aopalliance_repackaged_2_2_0.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_glassfish_hk2_external_javax_inject_2_2_0.xml b/.idea/libraries/Gradle__org_glassfish_hk2_external_javax_inject_2_2_0.xml new file mode 100644 index 0000000..ca5bfdc --- /dev/null +++ b/.idea/libraries/Gradle__org_glassfish_hk2_external_javax_inject_2_2_0.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_glassfish_hk2_hk2_api_2_2_0.xml b/.idea/libraries/Gradle__org_glassfish_hk2_hk2_api_2_2_0.xml new file mode 100644 index 0000000..c79bbf5 --- /dev/null +++ b/.idea/libraries/Gradle__org_glassfish_hk2_hk2_api_2_2_0.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_glassfish_hk2_hk2_locator_2_2_0.xml b/.idea/libraries/Gradle__org_glassfish_hk2_hk2_locator_2_2_0.xml new file mode 100644 index 0000000..74f25e6 --- /dev/null +++ b/.idea/libraries/Gradle__org_glassfish_hk2_hk2_locator_2_2_0.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_glassfish_hk2_hk2_utils_2_2_0.xml b/.idea/libraries/Gradle__org_glassfish_hk2_hk2_utils_2_2_0.xml new file mode 100644 index 0000000..c09b3c7 --- /dev/null +++ b/.idea/libraries/Gradle__org_glassfish_hk2_hk2_utils_2_2_0.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_glassfish_hk2_osgi_resource_locator_1_0_1.xml b/.idea/libraries/Gradle__org_glassfish_hk2_osgi_resource_locator_1_0_1.xml new file mode 100644 index 0000000..6271d65 --- /dev/null +++ b/.idea/libraries/Gradle__org_glassfish_hk2_osgi_resource_locator_1_0_1.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_glassfish_jersey_bundles_repackaged_jersey_guava_2_6.xml b/.idea/libraries/Gradle__org_glassfish_jersey_bundles_repackaged_jersey_guava_2_6.xml new file mode 100644 index 0000000..288433e --- /dev/null +++ b/.idea/libraries/Gradle__org_glassfish_jersey_bundles_repackaged_jersey_guava_2_6.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_glassfish_jersey_core_jersey_client_2_6.xml b/.idea/libraries/Gradle__org_glassfish_jersey_core_jersey_client_2_6.xml new file mode 100644 index 0000000..9336ee5 --- /dev/null +++ b/.idea/libraries/Gradle__org_glassfish_jersey_core_jersey_client_2_6.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_glassfish_jersey_core_jersey_common_2_6.xml b/.idea/libraries/Gradle__org_glassfish_jersey_core_jersey_common_2_6.xml new file mode 100644 index 0000000..083bb73 --- /dev/null +++ b/.idea/libraries/Gradle__org_glassfish_jersey_core_jersey_common_2_6.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3.xml b/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3.xml new file mode 100644 index 0000000..8262f72 --- /dev/null +++ b/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_javassist_javassist_3_18_1_GA.xml b/.idea/libraries/Gradle__org_javassist_javassist_3_18_1_GA.xml new file mode 100644 index 0000000..ecd5950 --- /dev/null +++ b/.idea/libraries/Gradle__org_javassist_javassist_3_18_1_GA.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_spockframework_spock_core_0_7_groovy_2_0.xml b/.idea/libraries/Gradle__org_spockframework_spock_core_0_7_groovy_2_0.xml new file mode 100644 index 0000000..bd868d6 --- /dev/null +++ b/.idea/libraries/Gradle__org_spockframework_spock_core_0_7_groovy_2_0.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle index e5cb9df..4918b1d 100644 --- a/build.gradle +++ b/build.gradle @@ -24,6 +24,13 @@ repositories { mavenCentral() } +//////////////////////////////////////////////////////////////////////////////// +// DEPENDENCY MANAGEMENT +//////////////////////////////////////////////////////////////////////////////// +configurations { + localJavadocs +} + dependencies { compile 'org.codehaus.groovy:groovy-all:2.3.9+' compile 'org.glassfish.jersey.core:jersey-client:2.6+' @@ -36,6 +43,15 @@ dependencies { testCompile 'org.spockframework:spock-core:0.7-groovy-2.0' testCompile 'cglib:cglib-nodep:2.2.+' + + [ + 'dropwizard-core', + 'dropwizard-configuration', + 'dropwizard-hibernate', + ].each { + compile withSources("io.dropwizard:${it}:0.8.0-rc1") + } + } //////////////////////////////////////////////////////////////////////////////// @@ -71,6 +87,15 @@ groovydoc { destinationDir file('docs/html5/groovydoc') shouldRunAfter test } + +def withSources(String dependency) { + ['sources'].each { + def sourceDependency = dependencies.create("${dependency}:${it}") + configurations.localJavadocs.dependencies.add(sourceDependency) + } + return dependency +} + check.dependsOn groovydoc //////////////////////////////////////////////////////////////////////////////// diff --git a/src/main/groovy/com/github/lookout/whoas/WhoasConfiguration.groovy b/src/main/groovy/com/github/lookout/whoas/WhoasConfiguration.groovy new file mode 100644 index 0000000..3537f61 --- /dev/null +++ b/src/main/groovy/com/github/lookout/whoas/WhoasConfiguration.groovy @@ -0,0 +1,8 @@ +package com.github.lookout.whoas + + +import io.dropwizard.Configuration; + +public interface WhoasConfiguration { + WhoasFactory getWhoasFactory(T configuration); +} \ No newline at end of file diff --git a/src/main/groovy/com/github/lookout/whoas/WhoasFactory.groovy b/src/main/groovy/com/github/lookout/whoas/WhoasFactory.groovy new file mode 100644 index 0000000..eb74475 --- /dev/null +++ b/src/main/groovy/com/github/lookout/whoas/WhoasFactory.groovy @@ -0,0 +1,44 @@ +package com.github.lookout.whoas + +import com.fasterxml.jackson.annotation.JsonProperty +import org.hibernate.validator.constraints.NotEmpty; + +public class WhoasFactory { + @JsonProperty + @NotEmpty + String queueType + + public getQueueType() { + return queueType + } + + public setQueueType(String queueType) { + this.queueType = queueType + } + + @JsonProperty + @NotEmpty + String runnerType + + public getRunnerType() { + return runnerType + } + + public setRunnerType(String runnerType) { + this.runnerType = runnerType + } + + public AbstractHookQueue buildQueue() { + if(queueType == "InMemoryQueue") { + return new InMemoryQueue() + } + return null + } + + public AbstractHookRunner buildRunner(AbstractHookQueue hookQueue) { + if(runnerType == "SequentialHookRunner") { + return new SequentialHookRunner(hookQueue) + } + return null + } +} \ No newline at end of file diff --git a/whoas.iml b/whoas.iml new file mode 100644 index 0000000..54523a4 --- /dev/null +++ b/whoas.iml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file