Skip to content

Commit

Permalink
Merge pull request cashapp#30 in CASH/backfila from yunchi/inject to …
Browse files Browse the repository at this point in the history
…master

* commit 'b893f5bcc3463904c0028ef9b439ceb500a6cebc':
  Misk explicit config & requireAtInjectOnConstructors()
  • Loading branch information
mightyguava committed Mar 7, 2019
2 parents 4201766 + b893f5b commit dcb91c4
Show file tree
Hide file tree
Showing 12 changed files with 92 additions and 77 deletions.
24 changes: 12 additions & 12 deletions dependencies.gradle
Expand Up @@ -62,18 +62,18 @@ ext.dep = [
"loggingImpl": "org.apache.logging.log4j:log4j-slf4j-impl:2.10.0",
"metricsCore": "io.dropwizard.metrics:metrics-core:4.0.1",
"metricsParent": "io.dropwizard.metrics:metrics-parent:4.0.1",
"misk": "com.squareup.misk:misk:2019.03.02-4aec7979",
"miskAws": "com.squareup.misk:misk-aws:2019.03.02-4aec7979",
"miskEvents": "com.squareup.misk:misk-events:2019.03.02-4aec7979",
"miskGcp": "com.squareup.misk:misk-gcp:2019.03.02-4aec7979",
"miskGcpTesting": "com.squareup.misk:misk-gcp-testing:2019.03.02-4aec7979",
"miskHibernate": "com.squareup.misk:misk-hibernate:2019.03.02-4aec7979",
"miskHibernateTesting": "com.squareup.misk:misk-hibernate-testing:2019.03.02-4aec7979",
"miskJaeger": "com.squareup.misk:misk-jaeger:2019.03.02-4aec7979",
"miskPrometheus": "com.squareup.misk:misk-prometheus:2019.03.02-4aec7979",
"miskTesting": "com.squareup.misk:misk-testing:2019.03.02-4aec7979",
"misk": "com.squareup.misk:misk:2019.03.06-e82b920a",
"miskAws": "com.squareup.misk:misk-aws:2019.03.06-e82b920a",
"miskEvents": "com.squareup.misk:misk-events:2019.03.06-e82b920a",
"miskGcp": "com.squareup.misk:misk-gcp:2019.03.06-e82b920a",
"miskGcpTesting": "com.squareup.misk:misk-gcp-testing:2019.03.06-e82b920a",
"miskHibernate": "com.squareup.misk:misk-hibernate:2019.03.06-e82b920a",
"miskHibernateTesting": "com.squareup.misk:misk-hibernate-testing:2019.03.06-e82b920a",
"miskJaeger": "com.squareup.misk:misk-jaeger:2019.03.06-e82b920a",
"miskPrometheus": "com.squareup.misk:misk-prometheus:2019.03.06-e82b920a",
"miskTesting": "com.squareup.misk:misk-testing:2019.03.06-e82b920a",
"miskWeb": "com.squareup.misk-web:misk-web:2018.12.08-fee59f3",
"miskZipkin": "com.squareup.misk:misk-zipkin:2019.03.02-4aec7979",
"miskZipkin": "com.squareup.misk:misk-zipkin:2019.03.06-e82b920a",
"mockito": "org.mockito:mockito-core:2.23.4",
"mockitoCore": "org.mockito:mockito-core:2.23.4",
"mockitoKotlin": "com.nhaarman:mockito-kotlin:1.5.0",
Expand All @@ -99,7 +99,7 @@ ext.dep = [
"retrofitWire": "com.squareup.retrofit2:converter-wire:2.4.0",
"servletApi": "javax.servlet:javax.servlet-api:3.1.0",
"shadowJarPlugin": "com.github.jengelman.gradle.plugins:shadow:4.0.4",
"skim": "com.squareup.skim:skim:2019.03.02-ab944ab",
"skim": "com.squareup.skim:skim:2019.03.07-45fb21c",
"slf4jApi": "org.slf4j:slf4j-api:1.7.25",
"snappy": "org.xerial.snappy:snappy-java:1.1.7.1",
"sunMail": "com.sun.mail:javax.mail:1.6.2",
Expand Down
@@ -1,10 +1,10 @@
package com.squareup.backfila.dashboard

import misk.inject.KAbstractModule
import misk.web.actions.WebActionEntry
import misk.web.WebActionModule

class DashboardModule : KAbstractModule() {
override fun configure() {
multibind<WebActionEntry>().toInstance(WebActionEntry<GetDashboardAction>())
install(WebActionModule.create<GetDashboardAction>())
}
}
Expand Up @@ -5,8 +5,9 @@ import misk.web.Get
import misk.web.ResponseContentType
import misk.web.actions.WebAction
import misk.web.mediatype.MediaTypes
import javax.inject.Inject

class GetDashboardAction : WebAction {
class GetDashboardAction @Inject constructor() : WebAction {

@Get("/dashboard")
@ResponseContentType(MediaTypes.APPLICATION_JSON)
Expand Down
@@ -1,10 +1,10 @@
package com.squareup.backfila.service

import com.squareup.skim.config.SkimServiceConfig
import misk.client.HttpClientsConfig
import misk.config.Config
import misk.web.WebConfig

data class BackfilaConfig(
val web: WebConfig,
val http_clients: HttpClientsConfig
val skim: SkimServiceConfig
) : Config

This file was deleted.

@@ -1,12 +1,14 @@
package com.squareup.backfila.service

import com.squareup.skim.ServiceBuilder
import misk.config.ConfigModule
import misk.environment.EnvironmentModule
import misk.inject.KAbstractModule

fun main(args: Array<String>) {
ServiceBuilder.getMiskApplication(::applicationModules).run(args)
}

fun applicationModules(serviceBuilder: ServiceBuilder<BackfilaConfig>): List<KAbstractModule> {
return listOf(BackfilaServiceModule())
return listOf(BackfilaServiceModule(serviceBuilder.env, serviceBuilder.config))
}
Expand Up @@ -2,21 +2,23 @@ package com.squareup.backfila.service

import com.squareup.backfila.dashboard.DashboardModule
import com.squareup.skim.SkimModule
import com.squareup.skim.logging.SkimLogging
import misk.MiskCaller
import misk.config.ConfigModule
import misk.environment.Environment
import misk.environment.EnvironmentModule
import misk.inject.KAbstractModule
import misk.security.authz.AccessAnnotationEntry
import misk.security.authz.DevelopmentOnly
import misk.web.metadata.AdminDashboardAccess

class BackfilaServiceModule : KAbstractModule() {
class BackfilaServiceModule(
private val environment: Environment,
private val config: BackfilaConfig
) : KAbstractModule() {
override fun configure() {
val environment = Environment.fromEnvironmentVariable()
SkimLogging.configure(environment)
install(BackfilaModule(environment))

install(SkimModule(environment))
install(ConfigModule.create("backfila", config))
install(EnvironmentModule(environment))
install(SkimModule(environment, config.skim))
install(DashboardModule())
multibind<AccessAnnotationEntry>().toInstance(
AccessAnnotationEntry<AdminDashboardAccess>(roles = listOf("eng")))
Expand Down
15 changes: 8 additions & 7 deletions service/src/main/resources/backfila-common.yaml
@@ -1,8 +1,9 @@
web:
port: 8080
idle_timeout: 30000
skim:
web:
port: 8080
idle_timeout: 30000

http_clients:
endpoints:
web_proxy_action:
url: http://localhost/
http_clients:
endpoints:
web_proxy_action:
url: http://localhost/
27 changes: 14 additions & 13 deletions service/src/main/resources/backfila-production.yaml
@@ -1,13 +1,14 @@
web:
port: 8080
idle_timeout: 30000
ssl:
port: 8443
mutual_auth: DESIRED
cert_store:
resource: filesystem:/etc/secrets/ssl/certificate_private_key_combo.pem
passphrase: doesntmatter
format: PEM
trust_store:
resource: filesystem:/etc/config/certificate_authority.pem
format: PEM
skim:
web:
port: 8080
idle_timeout: 30000
ssl:
port: 8443
mutual_auth: DESIRED
cert_store:
resource: filesystem:/etc/secrets/ssl/certificate_private_key_combo.pem
passphrase: doesntmatter
format: PEM
trust_store:
resource: filesystem:/etc/config/certificate_authority.pem
format: PEM
28 changes: 14 additions & 14 deletions service/src/main/resources/backfila-staging.yaml
@@ -1,14 +1,14 @@
web:
port: 8080
idle_timeout: 30000
ssl:
port: 8443
mutual_auth: DESIRED
cert_store:
resource: filesystem:/etc/secrets/ssl/certificate_private_key_combo.pem
passphrase: doesntmatter
format: PEM
trust_store:
resource: filesystem:/etc/config/certificate_authority.pem
format: PEM

skim:
web:
port: 8080
idle_timeout: 30000
ssl:
port: 8443
mutual_auth: DESIRED
cert_store:
resource: filesystem:/etc/secrets/ssl/certificate_private_key_combo.pem
passphrase: doesntmatter
format: PEM
trust_store:
resource: filesystem:/etc/config/certificate_authority.pem
format: PEM
25 changes: 25 additions & 0 deletions service/src/test/kotlin/com/squareup/backfila/InjectorTest.kt
@@ -0,0 +1,25 @@
package com.squareup.backfila

import com.squareup.backfila.service.applicationModules
import com.squareup.skim.ServiceBuilder
import misk.environment.Environment
import org.junit.jupiter.api.Test

/** Tests if guice bindings are setup properly in all environments. */
internal class InjectorTest {
@Test fun development() {
test(Environment.DEVELOPMENT)
}

@Test fun staging() {
test(Environment.STAGING)
}

@Test fun production() {
test(Environment.PRODUCTION)
}

private fun test(env : Environment) {
ServiceBuilder.getTestVerifier("backfila", env, ::applicationModules).verify()
}
}
@@ -1,7 +1,7 @@
package com.squareup.backfila.actions

import com.squareup.backfila.dashboard.DashboardModule
import com.squareup.backfila.service.BackfilaModule
import com.squareup.skim.SkimTestingModule
import misk.MiskTestingServiceModule
import misk.environment.Environment
import misk.environment.EnvironmentModule
Expand All @@ -13,7 +13,6 @@ internal class BackfilaWebActionTestingModule : KAbstractModule() {
install(EnvironmentModule(Environment.TESTING))
install(LogCollectorModule())
install(MiskTestingServiceModule())
install(BackfilaModule(Environment.TESTING))
install(DashboardModule())
}
}

0 comments on commit dcb91c4

Please sign in to comment.