Skip to content
This repository has been archived by the owner on May 11, 2021. It is now read-only.

Commit

Permalink
Bumping up micro-infra-spring
Browse files Browse the repository at this point in the history
  • Loading branch information
Marcin Grzejszczak committed Nov 25, 2014
1 parent 4f52ecb commit b5e41b9
Show file tree
Hide file tree
Showing 29 changed files with 73 additions and 58 deletions.
12 changes: 7 additions & 5 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ buildscript {
jcenter()
}
dependencies {
classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.1.6.RELEASE'
classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.1.8.RELEASE'
classpath 'com.ofg:uptodate-gradle-plugin:1.1.0'
classpath 'com.moowork.gradle:gradle-node-plugin:0.6'
classpath 'joda-time:joda-time:2.4'
Expand Down Expand Up @@ -38,7 +38,7 @@ ext {
springVersion = '4.1.1.RELEASE'
jacksonMapper = '1.9.13'
aspectjVersion = '1.8.3'
microInfraSpringVersion = '0.5.4'
microInfraSpringVersion = '0.7.1'
}

uploadArchives {
Expand Down Expand Up @@ -109,15 +109,15 @@ dependencies {
compile 'com.google.guava:guava:18.0'
compile 'org.apache.commons:commons-lang3:3.3.2'
compile 'org.apache.tomcat.embed:tomcat-embed-el:8.0.14'
compile 'com.jayway.jsonpath:json-path-assert:1.1.0'
compile 'com.jayway.jsonpath:json-path-assert:1.2.0'
compile 'org.yaml:snakeyaml:1.14'
compile 'javax.validation:validation-api:1.1.0.Final'
compile 'org.hibernate:hibernate-validator:5.1.3.Final'
compile "org.aspectj:aspectjrt:$aspectjVersion"
compile 'org.codehaus.gpars:gpars:1.2.1'
compile 'net.sf.ehcache:ehcache:2.9.0'
// microservices
compile "com.ofg:micro-infra-spring:$microInfraSpringVersion"
compile "com.ofg:micro-infra-spring-boot-starter:$microInfraSpringVersion"

runtime "cglib:cglib-nodep:3.1"
runtime "org.objenesis:objenesis:2.1" // allows mocking of classes without default constructor (together with CGLIB)
Expand All @@ -133,7 +133,9 @@ dependencies {
exclude group: 'org.spockframework', module: 'spock-core'
}
testCompile "org.springframework:spring-test:$springVersion"
testCompile 'com.github.tomakehurst:wiremock:1.51'
testCompile('com.github.tomakehurst:wiremock:1.52'){
exclude group: 'org.mortbay.jetty', module: 'servlet-api'
}
testCompile "com.ofg:micro-infra-spring-test:$microInfraSpringVersion"
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.ofg.microservice
package com.ofg.twitter

import com.ofg.infrastructure.environment.EnvironmentSetupVerifier
import groovy.transform.TypeChecked
Expand All @@ -16,7 +16,7 @@ import static com.ofg.config.BasicProfiles.*
@Configuration
@EnableAutoConfiguration
@EnableAspectJAutoProxy(proxyTargetClass = true)
@ComponentScan(basePackages = ["com.ofg.microservice", "com.ofg.twitter"])
@ComponentScan
@EnableCaching
@EnableAsync
class Application {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.ofg.microservice.config
package com.ofg.twitter.config

import net.sf.ehcache.config.CacheConfiguration
import org.springframework.cache.CacheManager
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.ofg.microservice
package com.ofg.twitter.config

import groovy.transform.CompileStatic

Expand Down
16 changes: 16 additions & 0 deletions src/main/groovy/com/ofg/twitter/config/Versions.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.ofg.twitter.config;

public final class Versions {
private Versions() {
throw new UnsupportedOperationException("Can't instantiate a utility class");
}

public static final String APP_NAME = "com.ofg.twitter-places-analyzer";
public static final String APPLICATION_PREFIX = "application";
public static final String VND_PREFIX = "vnd";
public static final String JSON_TYPE_SUFFIX = "+json";

public static final String VERSION_1 = "v1";
public static final String TWITTER_PLACES_ANALYZER_JSON_VERSION_1 = VND_PREFIX + "." + APP_NAME + "." + VERSION_1 + JSON_TYPE_SUFFIX;
public static final String TWITTER_PLACES_ANALYZER_JSON_VERSION_1_CONTENT_TYPE = APPLICATION_PREFIX + "/" + TWITTER_PLACES_ANALYZER_JSON_VERSION_1;
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.RestController

import javax.validation.constraints.NotNull

import static com.ofg.twitter.config.Versions.TWITTER_PLACES_ANALYZER_JSON_VERSION_1_CONTENT_TYPE
import static org.springframework.web.bind.annotation.RequestMethod.POST

@Slf4j
Expand All @@ -19,13 +20,17 @@ import static org.springframework.web.bind.annotation.RequestMethod.POST
@Api(value = "city", description = "Operations on cities")
class CityFindController {

@Autowired private CityFinder cityFinder
private final CityFinder cityFinder

@Autowired CityFindController(CityFinder cityFinder) {
this.cityFinder = cityFinder
}

@RequestMapping(
value = '/{lat}/{lon}',
method = POST,
consumes = 'application/vnd.com.ofg.twitter-places-analyzer.v1+json',
produces = 'application/vnd.com.ofg.twitter-places-analyzer.v1+json')
consumes = TWITTER_PLACES_ANALYZER_JSON_VERSION_1_CONTENT_TYPE,
produces = TWITTER_PLACES_ANALYZER_JSON_VERSION_1_CONTENT_TYPE)
@ApiOperation(value = "Gets city name from the coordinates",
notes = "The code calls openweather to get the city")
String findCity(@PathVariable("lat") @NotNull Double lat, @PathVariable("lon") @NotNull Double lon) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
package com.ofg.twitter.controller

import com.ofg.twitter.controller.place.extractor.PropagationWorker
import com.wordnik.swagger.annotations.Api
import com.wordnik.swagger.annotations.ApiOperation
Expand All @@ -12,6 +13,7 @@ import org.springframework.web.bind.annotation.RestController
import javax.validation.constraints.NotNull
import java.util.concurrent.Callable

import static com.ofg.twitter.config.Versions.TWITTER_PLACES_ANALYZER_JSON_VERSION_1_CONTENT_TYPE
import static org.springframework.web.bind.annotation.RequestMethod.PUT

@Slf4j
Expand All @@ -20,14 +22,18 @@ import static org.springframework.web.bind.annotation.RequestMethod.PUT
@Api(value = "pairId", description = "Collects places from tweets and propagates them to Collerators")
class PairIdController {

@Autowired private PropagationWorker propagationWorker
private final PropagationWorker propagationWorker

@Autowired PairIdController(PropagationWorker propagationWorker) {
this.propagationWorker = propagationWorker
}


@RequestMapping(
value = '{pairId}',
method = PUT,
consumes = 'application/vnd.com.ofg.twitter-places-analyzer.v1+json',
produces = 'application/vnd.com.ofg.twitter-places-analyzer.v1+json')
consumes = TWITTER_PLACES_ANALYZER_JSON_VERSION_1_CONTENT_TYPE,
produces = TWITTER_PLACES_ANALYZER_JSON_VERSION_1_CONTENT_TYPE)
@ApiOperation(value = "Async collecting and propagating of tweets for a given pairId",
notes = "This will asynchronously call tweet collecting, place extracting and their propagation to Collerators")
Callable<Void> getPlacesFromTweets(@PathVariable @NotNull long pairId, @RequestBody @NotNull String tweets) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package com.ofg.twitter.controller.place.extractor
import com.ofg.twitter.controller.place.Place

import groovy.json.JsonSlurper
import org.springframework.cache.annotation.Cacheable
import org.springframework.http.HttpStatus
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.ofg.twitter.controller.place.extractor

import com.ofg.infrastructure.web.resttemplate.fluent.ServiceRestClient
import com.ofg.microservice.Collaborators
import com.ofg.twitter.config.Collaborators
import groovy.transform.CompileStatic

@CompileStatic
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.ofg.twitter.controller.place.extractor

import com.ofg.twitter.controller.place.Place
import com.ofg.twitter.controller.place.Place.PlaceDetails
import com.ofg.twitter.controller.place.extractor.Place.PlaceDetails
import com.ofg.twitter.controller.place.extractor.PlaceExtractor.PlaceResolutionProbability
import com.ofg.twitter.controller.place.extractor.metrics.MatchProbabilityMetrics
import groovy.transform.PackageScope
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.ofg.twitter.controller.place.extractor

import com.ofg.twitter.controller.place.Place
import com.ofg.twitter.controller.place.Place.PlaceDetails
import com.ofg.twitter.controller.place.extractor.Place.PlaceDetails
import com.ofg.twitter.controller.place.extractor.PlaceExtractor.PlaceResolutionProbability
import com.ofg.twitter.controller.place.extractor.metrics.MatchProbabilityMetrics
import groovy.transform.PackageScope
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package com.ofg.twitter.controller.place
package com.ofg.twitter.controller.place.extractor

import com.ofg.twitter.controller.place.extractor.PlaceExtractor
import groovy.transform.PackageScope
import groovy.transform.ToString

@ToString
@PackageScope
class Place {
final PlaceDetails placeDetails
final String placeResolutionOrigin
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package com.ofg.twitter.controller.place.extractor

import com.ofg.twitter.controller.place.Place
import com.ofg.twitter.controller.place.extractor.PlaceExtractor.PlaceResolutionProbability
import groovy.transform.PackageScope

@PackageScope
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,12 @@ package com.ofg.twitter.controller.place.extractor
import com.codahale.metrics.Meter
import com.codahale.metrics.MetricRegistry
import com.ofg.infrastructure.web.resttemplate.fluent.ServiceRestClient
import com.ofg.infrastructure.web.resttemplate.RestTemplate
import com.ofg.twitter.controller.place.PlacesJsonBuilder
import com.ofg.twitter.controller.place.extractor.metrics.ExtractorMetricsConfiguration
import com.ofg.twitter.controller.place.extractor.metrics.MatchProbabilityMetrics
import org.springframework.beans.factory.annotation.Value
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.context.annotation.Import
import org.springframework.web.client.RestTemplate

@Configuration
@Import(ExtractorMetricsConfiguration)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,16 @@
package com.ofg.twitter.controller.place.extractor

import com.ofg.twitter.controller.place.Place
import com.ofg.twitter.controller.place.PlacesJsonBuilder
import groovy.transform.TypeChecked
import groovy.util.logging.Slf4j
import org.springframework.beans.factory.annotation.Autowired

@TypeChecked
@Slf4j
class PlacePropagatingWorker implements PropagationWorker {

public static final String COLLERATOR_DEPENDENCY_NAME = 'collerator'

private final PlacesExtractor placesExtractor
private final PlacesJsonBuilder placesJsonBuilder
private final ColleratorClient colleratorClient


@Autowired
PlacePropagatingWorker(PlacesExtractor placesExtractor,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.ofg.twitter.controller.place.extractor

import com.ofg.twitter.controller.place.Place
import com.ofg.twitter.controller.place.Place.PlaceDetails
import com.ofg.twitter.controller.place.extractor.Place.PlaceDetails
import com.ofg.twitter.controller.place.extractor.PlaceExtractor.PlaceResolutionProbability
import com.ofg.twitter.controller.place.extractor.metrics.MatchProbabilityMetrics
import groovy.transform.PackageScope
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.ofg.twitter.controller.place.extractor

import com.codahale.metrics.Meter
import com.ofg.twitter.controller.place.Place
import groovy.json.JsonSlurper
import groovy.transform.PackageScope
import groovyx.gpars.GParsPool
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package com.ofg.twitter.controller.place
package com.ofg.twitter.controller.place.extractor

import groovy.text.SimpleTemplateEngine
import groovy.transform.PackageScope
import groovy.transform.TypeChecked

@TypeChecked
@PackageScope
class PlacesJsonBuilder {

String buildPlacesJson(long pairId, Map<String, Optional<Place>> places) {
Expand Down
3 changes: 1 addition & 2 deletions src/main/resources/banner.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

__ __ ______ __ ______ ________
| \ | \ / \ | \ | \| \
| $$ | $$| $$$$$$\ \$$ _______ ______ _______ _______ ______ \$$$$$$ \$$$$$$$$
Expand All @@ -9,5 +8,5 @@
| $$| $$ | $$| $$ | $$ \$$ $$| $$ | $$ \$$ \ \$$ \| $$ \ | $$
\$$ \$$ \$$ \$$ \$$ \$$$$$$$ \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$$$ \$$

Wanna join? Visit: http://www.4finance.com/careers/being-with-us/
Wanna join? Visit: http://www.4financeit.com/

4 changes: 3 additions & 1 deletion src/main/resources/microservice.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
"pl": {
"this": "com/ofg/twitter-places-analyzer",
"dependencies": {
"collerator": "com/ofg/twitter-places-collerator"
"collerator": {
"path": "com/ofg/twitter-places-collerator"
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.ofg.base

import com.ofg.infrastructure.base.IntegrationSpec
import com.ofg.microservice.Application
import com.ofg.twitter.Application
import org.springframework.boot.test.SpringApplicationContextLoader
import org.springframework.test.context.ActiveProfiles
import org.springframework.test.context.ContextConfiguration
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.ofg.base

import com.ofg.infrastructure.base.MvcIntegrationSpec
import com.ofg.microservice.Application
import com.ofg.twitter.Application
import org.springframework.boot.test.SpringApplicationContextLoader
import org.springframework.test.context.ActiveProfiles
import org.springframework.test.context.ContextConfiguration
Expand All @@ -11,6 +11,4 @@ import static com.ofg.config.BasicProfiles.TEST
@ContextConfiguration(classes = [Application], loader = SpringApplicationContextLoader)
@ActiveProfiles(TEST)
class MicroserviceMvcIntegrationSpec extends MvcIntegrationSpec {


}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.ofg.base

import com.ofg.infrastructure.base.MvcWiremockIntegrationSpec
import com.ofg.microservice.Application
import com.ofg.twitter.Application
import org.springframework.boot.test.SpringApplicationContextLoader
import org.springframework.test.context.ActiveProfiles
import org.springframework.test.context.ContextConfiguration
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.ofg.twitter.controller.place.extractor

import com.ofg.twitter.controller.place.Place
import org.springframework.web.client.RestOperations
import spock.lang.Specification

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package com.ofg.twitter.controller.place.extractor
import com.ofg.twitter.controller.place.Place

import com.ofg.twitter.controller.place.extractor.metrics.MatchProbabilityMetrics
import com.ofg.twitter.tweets.Tweets
import groovy.json.JsonSlurper
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.ofg.twitter.controller.place.extractor

import com.ofg.twitter.controller.place.Place
import com.ofg.twitter.controller.place.extractor.PlaceExtractor.PlaceResolutionProbability
import com.ofg.twitter.controller.place.extractor.metrics.MatchProbabilityMetrics
import groovy.json.JsonSlurper
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package com.ofg.twitter.controller.place.extractor

import com.codahale.metrics.Meter
import com.jayway.awaitility.Awaitility
import com.ofg.twitter.controller.place.Place
import spock.lang.Specification

import static com.jayway.awaitility.Duration.ONE_SECOND
Expand Down
12 changes: 5 additions & 7 deletions src/test/groovy/com/ofg/twitter/places/AcceptanceSpec.groovy
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package com.ofg.twitter.places
import com.github.tomakehurst.wiremock.client.UrlMatchingStrategy

import com.ofg.base.MicroserviceMvcWiremockSpec
import com.ofg.twitter.config.Versions
import org.hamcrest.CoreMatchers
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.http.MediaType
import org.springframework.test.context.ContextConfiguration

import static com.github.tomakehurst.wiremock.client.WireMock.aResponse
import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo
import static com.jayway.awaitility.Awaitility.await
import static com.ofg.infrastructure.base.dsl.Matchers.equalsReferenceJson
import static com.ofg.infrastructure.base.dsl.WireMockHttpRequestMapper.wireMockGet
Expand All @@ -24,11 +24,9 @@ class AcceptanceSpec extends MicroserviceMvcWiremockSpec {

@Autowired ColleratorClientStub colleratorClientStub

static final String ROOT_PATH = '/api'
static final Long PAIR_ID = 1
static final MediaType TWITTER_PLACES_ANALYZER_MICROSERVICE_V1 = new MediaType('application', 'vnd.com.ofg.twitter-places-analyzer.v1+json')
static final String COLLERATOR_ENPOINT_URL = '/collerator'
static final UrlMatchingStrategy COLLERATOR_URL_WITH_PAIR_ID = urlEqualTo("$COLLERATOR_ENPOINT_URL/$PAIR_ID")
private static final String ROOT_PATH = '/api'
private static final Long PAIR_ID = 1
private static final MediaType TWITTER_PLACES_ANALYZER_MICROSERVICE_V1 = new MediaType('application', Versions.TWITTER_PLACES_ANALYZER_JSON_VERSION_1)

def "should find a place by verifying tweet's geolocation"() {
given: 'a tweet with a place section filled in'
Expand Down
Loading

0 comments on commit b5e41b9

Please sign in to comment.