summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--application/src/test/scala/com/yahoo/application/container/jersey/JerseyTest.scala16
-rw-r--r--bundle-plugin/pom.xml4
-rw-r--r--bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/AssembleContainerPluginMojo.scala4
-rw-r--r--container-di/src/main/scala/com/yahoo/container/di/CloudSubscriberFactory.scala1
-rw-r--r--container-di/src/main/scala/com/yahoo/container/di/ConfigRetriever.scala1
-rw-r--r--container-di/src/main/scala/com/yahoo/container/di/componentgraph/core/ComponentGraph.scala6
-rw-r--r--container-di/src/main/scala/com/yahoo/container/di/componentgraph/core/JerseyNode.scala18
-rw-r--r--container-di/src/main/scala/com/yahoo/container/di/osgi/OsgiUtil.scala8
-rw-r--r--container-di/src/main/scala/com/yahoo/container/di/package.scala7
-rw-r--r--container-di/src/test/scala/com/yahoo/container/di/ContainerTest.scala2
-rw-r--r--container-di/src/test/scala/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.scala30
-rw-r--r--container-jersey2/src/main/scala/com/yahoo/container/servlet/jersey/JerseyApplication.scala4
-rw-r--r--container-jersey2/src/main/scala/com/yahoo/container/servlet/jersey/JerseyServletProvider.scala13
-rw-r--r--pom.xml2
-rw-r--r--standalone-container/pom.xml7
15 files changed, 69 insertions, 54 deletions
diff --git a/application/src/test/scala/com/yahoo/application/container/jersey/JerseyTest.scala b/application/src/test/scala/com/yahoo/application/container/jersey/JerseyTest.scala
index 5801197602b..cdf2d9ee1c6 100644
--- a/application/src/test/scala/com/yahoo/application/container/jersey/JerseyTest.scala
+++ b/application/src/test/scala/com/yahoo/application/container/jersey/JerseyTest.scala
@@ -1,27 +1,23 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.application.container.jersey
-import java.nio.file.{Path, Files, Paths}
+import java.nio.file.{Files, Path, Paths}
import javax.ws.rs.core.UriBuilder
import com.yahoo.application.Networking
-
+import com.yahoo.application.container.JDiscTest._
import com.yahoo.container.test.jars.jersey.resources.TestResourceBase
+import com.yahoo.container.test.jars.jersey.{resources => jarResources}
import com.yahoo.vespa.scalalib.osgi.maven.ProjectBundleClassPaths
import com.yahoo.vespa.scalalib.osgi.maven.ProjectBundleClassPaths.BundleClasspathMapping
import org.apache.http.HttpResponse
import org.apache.http.client.methods.HttpGet
-import org.apache.http.impl.client.DefaultHttpClient
+import org.apache.http.impl.client.HttpClientBuilder
import org.apache.http.util.EntityUtils
+import org.hamcrest.CoreMatchers.is
import org.junit.Assert._
import org.junit.Test
-import com.yahoo.container.test.jars.jersey.{resources => jarResources}
-
-import org.hamcrest.CoreMatchers.is
-
-import com.yahoo.application.container.JDiscTest._
-
import scala.io.Source
/**
@@ -125,7 +121,7 @@ class JerseyTest {
</services>,
Networking.enable)) { jdisc =>
- val client = new DefaultHttpClient
+ val client = HttpClientBuilder.create().build()
def httpGetter(path: HttpPath) = {
client.execute(new HttpGet(s"http://localhost:$getListenPort/rest-api/${path.stripPrefix("/")}"))
diff --git a/bundle-plugin/pom.xml b/bundle-plugin/pom.xml
index cda5a64d050..31355ff21d2 100644
--- a/bundle-plugin/pom.xml
+++ b/bundle-plugin/pom.xml
@@ -77,6 +77,10 @@
<artifactId>scalalib</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>jsr305</artifactId>
+ </dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
diff --git a/bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/AssembleContainerPluginMojo.scala b/bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/AssembleContainerPluginMojo.scala
index 795a0eaf86e..4104e349208 100644
--- a/bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/AssembleContainerPluginMojo.scala
+++ b/bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/AssembleContainerPluginMojo.scala
@@ -14,7 +14,7 @@ import org.apache.maven.plugins.annotations.{Mojo, Parameter, ResolutionScope}
import org.apache.maven.project.MavenProject
import org.codehaus.plexus.archiver.jar.JarArchiver
-import scala.collection.convert.wrapAsScala._
+import scala.collection.JavaConverters._
/**
* @author tonytv
@@ -91,7 +91,7 @@ class AssembleContainerPluginMojo extends AbstractMojo {
private def copyConfigDefinitions(file: File, jarArchiver: JarArchiver) {
JarFiles.withJarFile(file) { jarFile =>
for {
- entry <- jarFile.entries()
+ entry <- jarFile.entries().asScala
name = entry.getName
if name.startsWith("configdefinitions/") && name.endsWith(".def")
diff --git a/container-di/src/main/scala/com/yahoo/container/di/CloudSubscriberFactory.scala b/container-di/src/main/scala/com/yahoo/container/di/CloudSubscriberFactory.scala
index 25ec75da5b1..cf047503d71 100644
--- a/container-di/src/main/scala/com/yahoo/container/di/CloudSubscriberFactory.scala
+++ b/container-di/src/main/scala/com/yahoo/container/di/CloudSubscriberFactory.scala
@@ -11,6 +11,7 @@ import com.yahoo.log.LogLevel
import com.yahoo.vespa.config.ConfigKey
import scala.collection.JavaConverters._
+import scala.language.existentials
/**
diff --git a/container-di/src/main/scala/com/yahoo/container/di/ConfigRetriever.scala b/container-di/src/main/scala/com/yahoo/container/di/ConfigRetriever.scala
index a4d7370429e..ac5f9bb589f 100644
--- a/container-di/src/main/scala/com/yahoo/container/di/ConfigRetriever.scala
+++ b/container-di/src/main/scala/com/yahoo/container/di/ConfigRetriever.scala
@@ -11,6 +11,7 @@ import com.yahoo.log.LogLevel
import scala.annotation.tailrec
import scala.collection.JavaConverters._
+import scala.language.postfixOps
/**
* @author tonytv
diff --git a/container-di/src/main/scala/com/yahoo/container/di/componentgraph/core/ComponentGraph.scala b/container-di/src/main/scala/com/yahoo/container/di/componentgraph/core/ComponentGraph.scala
index 2bae9d67f27..f27dfc54b75 100644
--- a/container-di/src/main/scala/com/yahoo/container/di/componentgraph/core/ComponentGraph.scala
+++ b/container-di/src/main/scala/com/yahoo/container/di/componentgraph/core/ComponentGraph.scala
@@ -25,6 +25,8 @@ import com.yahoo.container.di.removeStackTrace
import scala.util.Try
import scala.Some
+import scala.language.existentials
+
/**
* @author tonytv
* @author gjoranv
@@ -177,13 +179,13 @@ class ComponentGraph(val generation: Long = 0) {
assert(wildCardType.getLowerBounds.isEmpty)
assert(wildCardType.getUpperBounds.size == 1)
wildCardType.getUpperBounds.head.asInstanceOf[Class[AnyRef]]
- case clazz: Class[AnyRef] => clazz
+ case clazz: Class[_] => clazz
case typeVariable: TypeVariable[_] =>
throw new RuntimeException("Can't create ComponentRegistry of unknown type variable " + typeVariable)
}
componentRegistryNodes.find(_.componentClass == componentType).
- getOrElse(newComponentRegistryNode(componentClass))
+ getOrElse(newComponentRegistryNode(componentClass.asInstanceOf[Class[AnyRef]]))
}
def handleConfigParameter(node : ComponentNode, clazz: Class[_]) : ConfigKeyT = {
diff --git a/container-di/src/main/scala/com/yahoo/container/di/componentgraph/core/JerseyNode.scala b/container-di/src/main/scala/com/yahoo/container/di/componentgraph/core/JerseyNode.scala
index 92d83f2ecc7..aeae227f4cb 100644
--- a/container-di/src/main/scala/com/yahoo/container/di/componentgraph/core/JerseyNode.scala
+++ b/container-di/src/main/scala/com/yahoo/container/di/componentgraph/core/JerseyNode.scala
@@ -1,18 +1,18 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.container.di.componentgraph.core
-import com.yahoo.component.{ComponentSpecification, ComponentId}
+import java.net.URL
+
+import com.yahoo.component.{ComponentId, ComponentSpecification}
+import com.yahoo.container.di.Osgi
import com.yahoo.container.di.Osgi.RelativePath
+import com.yahoo.container.di.componentgraph.core.JerseyNode._
import com.yahoo.container.di.config.RestApiContext
+import com.yahoo.container.di.config.RestApiContext.BundleInfo
+import org.osgi.framework.Bundle
import org.osgi.framework.wiring.BundleWiring
-import scala.collection.JavaConverters._
-import scala.collection.convert.wrapAsJava._
-import RestApiContext.BundleInfo
-import JerseyNode._
-import com.yahoo.container.di.Osgi
-import org.osgi.framework.Bundle
-import java.net.URL
+import scala.collection.JavaConverters._
/**
* Represents an instance of RestApiContext
@@ -70,7 +70,7 @@ object JerseyNode {
webInfUrl(bundle),
bundle.adapt(classOf[BundleWiring]).getClassLoader)
- bundleInfo.setClassEntries(classEntries)
+ bundleInfo.setClassEntries(classEntries.asJavaCollection)
bundleInfo
}
diff --git a/container-di/src/main/scala/com/yahoo/container/di/osgi/OsgiUtil.scala b/container-di/src/main/scala/com/yahoo/container/di/osgi/OsgiUtil.scala
index 8b4be3f5c10..f2120786579 100644
--- a/container-di/src/main/scala/com/yahoo/container/di/osgi/OsgiUtil.scala
+++ b/container-di/src/main/scala/com/yahoo/container/di/osgi/OsgiUtil.scala
@@ -7,19 +7,17 @@ import java.util.jar.{JarEntry, JarFile}
import java.util.logging.{Level, Logger}
import java.util.stream.Collectors
+import com.google.common.io.Files.fileTreeTraverser
import com.yahoo.component.ComponentSpecification
import com.yahoo.container.di.Osgi.RelativePath
import com.yahoo.vespa.scalalib.arm.Using.using
+import com.yahoo.vespa.scalalib.java.function.FunctionConverters._
import com.yahoo.vespa.scalalib.osgi.maven.ProjectBundleClassPaths
import com.yahoo.vespa.scalalib.osgi.maven.ProjectBundleClassPaths.BundleClasspathMapping
import org.osgi.framework.Bundle
import org.osgi.framework.wiring.BundleWiring
-import com.google.common.io.Files.fileTreeTraverser
-
-import scala.collection.convert.decorateAsScala._
-
-import com.yahoo.vespa.scalalib.java.function.FunctionConverters._
+import scala.collection.JavaConverters._
/**
* Tested by com.yahoo.application.container.jersey.JerseyTest
diff --git a/container-di/src/main/scala/com/yahoo/container/di/package.scala b/container-di/src/main/scala/com/yahoo/container/di/package.scala
index df7c8359795..e580d928ebb 100644
--- a/container-di/src/main/scala/com/yahoo/container/di/package.scala
+++ b/container-di/src/main/scala/com/yahoo/container/di/package.scala
@@ -1,10 +1,13 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.container
-import com.yahoo.config.ConfigInstance
-import com.yahoo.vespa.config.ConfigKey
import java.lang.reflect.Type
+
import com.google.inject.Key
+import com.yahoo.config.ConfigInstance
+import com.yahoo.vespa.config.ConfigKey
+
+import scala.language.implicitConversions
/**
*
diff --git a/container-di/src/test/scala/com/yahoo/container/di/ContainerTest.scala b/container-di/src/test/scala/com/yahoo/container/di/ContainerTest.scala
index d8734e81948..8e7fbde3f5e 100644
--- a/container-di/src/test/scala/com/yahoo/container/di/ContainerTest.scala
+++ b/container-di/src/test/scala/com/yahoo/container/di/ContainerTest.scala
@@ -19,7 +19,7 @@ import scala.collection.JavaConverters._
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.duration._
import scala.concurrent.{Await, Future}
-import scala.language.postfixOps
+import scala.language.{existentials, postfixOps}
import scala.util.Try
/**
diff --git a/container-di/src/test/scala/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.scala b/container-di/src/test/scala/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.scala
index 867b5b79203..05194cb911b 100644
--- a/container-di/src/test/scala/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.scala
+++ b/container-di/src/test/scala/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.scala
@@ -1,23 +1,25 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.container.di.componentgraph.core
-import org.junit.Test
-import org.junit.Assert._
-import org.hamcrest.CoreMatchers.{is, sameInstance, equalTo, not, containsString}
+import java.util.concurrent.{Executor, Executors}
+import com.google.inject.name.{Named, Names}
+import com.google.inject.{AbstractModule, Guice, Inject, Key, Provider => GuiceProvider}
import com.yahoo.component.provider.ComponentRegistry
-import com.google.inject.name.{Names, Named}
-import com.yahoo.component.{ComponentId, AbstractComponent}
-import org.hamcrest.Matcher
-import com.yahoo.vespa.config.ConfigKey
-import com.yahoo.config.{ConfigInstance}
-import com.yahoo.config.test.{TestConfig, Test2Config}
-import java.util.concurrent.{Executors, Executor}
-import com.google.inject.{Guice, Key, AbstractModule, Inject, Provider=>GuiceProvider}
-import com.yahoo.container.di._
+import com.yahoo.component.{AbstractComponent, ComponentId}
+import com.yahoo.config.ConfigInstance
import com.yahoo.config.subscription.ConfigGetter
-import com.yahoo.container.di.config.{JerseyInjectionConfig, JerseyBundlesConfig, RestApiContext}
+import com.yahoo.config.test.{Test2Config, TestConfig}
+import com.yahoo.container.di._
import com.yahoo.container.di.componentgraph.Provider
+import com.yahoo.container.di.config.{JerseyBundlesConfig, JerseyInjectionConfig, RestApiContext}
+import com.yahoo.vespa.config.ConfigKey
+import org.hamcrest.CoreMatchers.{containsString, equalTo, is, not, sameInstance}
+import org.hamcrest.Matcher
+import org.junit.Assert._
+import org.junit.Test
+
+import scala.language.implicitConversions
/**
* @author gjoranv
@@ -330,7 +332,7 @@ class ComponentGraphTest {
def child_injector_can_inject_multiple_instances_for_same_key() {
def executorProvider() = Executors.newSingleThreadExecutor()
- val (graphSize, executorA, executorB) = buildGraphWithChildInjector(executorProvider)
+ val (graphSize, executorA, executorB) = buildGraphWithChildInjector(() => executorProvider())
assertThat(graphSize, is(4))
assertThat(executorA, not(sameInstance(executorB)))
diff --git a/container-jersey2/src/main/scala/com/yahoo/container/servlet/jersey/JerseyApplication.scala b/container-jersey2/src/main/scala/com/yahoo/container/servlet/jersey/JerseyApplication.scala
index 3bd4c08e2e5..eea41003984 100644
--- a/container-jersey2/src/main/scala/com/yahoo/container/servlet/jersey/JerseyApplication.scala
+++ b/container-jersey2/src/main/scala/com/yahoo/container/servlet/jersey/JerseyApplication.scala
@@ -3,13 +3,13 @@ package com.yahoo.container.servlet.jersey
import javax.ws.rs.core.Application
-import scala.collection.convert.wrapAsJava._
+import scala.collection.JavaConverters._
/**
* @author tonytv
*/
class JerseyApplication(resourcesAndProviderClasses: Set[Class[_]]) extends Application {
- private val classes: java.util.Set[Class[_]] = resourcesAndProviderClasses
+ private val classes: java.util.Set[Class[_]] = resourcesAndProviderClasses.asJava
override def getClasses = classes
override def getSingletons = super.getSingletons
diff --git a/container-jersey2/src/main/scala/com/yahoo/container/servlet/jersey/JerseyServletProvider.scala b/container-jersey2/src/main/scala/com/yahoo/container/servlet/jersey/JerseyServletProvider.scala
index 73480482641..c83f6a63954 100644
--- a/container-jersey2/src/main/scala/com/yahoo/container/servlet/jersey/JerseyServletProvider.scala
+++ b/container-jersey2/src/main/scala/com/yahoo/container/servlet/jersey/JerseyServletProvider.scala
@@ -12,15 +12,16 @@ import com.yahoo.container.di.config.RestApiContext.BundleInfo
import com.yahoo.container.jaxrs.annotation.Component
import com.yahoo.container.servlet.jersey.util.ResourceConfigUtil.registerComponent
import org.eclipse.jetty.servlet.ServletHolder
-import org.glassfish.hk2.api.{TypeLiteral, InjectionResolver}
-import org.glassfish.hk2.utilities.binding.AbstractBinder
+import org.glassfish.hk2.api.{InjectionResolver, TypeLiteral}
import org.glassfish.hk2.utilities.Binder
+import org.glassfish.hk2.utilities.binding.AbstractBinder
import org.glassfish.jersey.media.multipart.MultiPartFeature
import org.glassfish.jersey.server.ResourceConfig
import org.glassfish.jersey.servlet.ServletContainer
import org.objectweb.asm.ClassReader
-import scala.collection.convert.wrapAsScala._
+import scala.collection.JavaConverters._
+
import scala.util.control.Exception
@@ -32,7 +33,7 @@ class JerseyServletProvider(restApiContext: RestApiContext) extends Provider[Ser
private def resourceConfig(restApiContext: RestApiContext) = {
val resourceConfig = ResourceConfig.forApplication(
- new JerseyApplication(resourcesAndProviders(restApiContext.getBundles)))
+ new JerseyApplication(resourcesAndProviders(restApiContext.getBundles.asScala)))
registerComponent(resourceConfig, componentInjectorBinder(restApiContext))
registerComponent(resourceConfig, jacksonDatatypeJdk8Provider)
@@ -44,7 +45,7 @@ class JerseyServletProvider(restApiContext: RestApiContext) extends Provider[Ser
def resourcesAndProviders(bundles: Traversable[BundleInfo]) =
(for {
bundle <- bundles.view
- classEntry <- bundle.getClassEntries
+ classEntry <- bundle.getClassEntries.asScala
className <- detectResourceOrProvider(bundle.classLoader, classEntry)
} yield loadClass(bundle.symbolicName, bundle.classLoader, className)).toSet
@@ -83,7 +84,7 @@ class JerseyServletProvider(restApiContext: RestApiContext) extends Provider[Ser
}
def componentInjectorBinder(restApiContext: RestApiContext): Binder = {
- val componentGraphProvider = new ComponentGraphProvider(restApiContext.getInjectableComponents.toTraversable)
+ val componentGraphProvider = new ComponentGraphProvider(restApiContext.getInjectableComponents.asScala)
val componentAnnotationType = new TypeLiteral[InjectionResolver[Component]] {}
new AbstractBinder {
diff --git a/pom.xml b/pom.xml
index cba2dcd54cb..982dda46a9c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -231,7 +231,7 @@
<arg>-unchecked</arg>
<arg>-deprecation</arg>
<arg>-feature</arg>
- <arg>-explaintypes</arg>
+ <arg>-Xfatal-warnings</arg>
</args>
</configuration>
</plugin>
diff --git a/standalone-container/pom.xml b/standalone-container/pom.xml
index 85a401d6af3..6e29d7fcc7c 100644
--- a/standalone-container/pom.xml
+++ b/standalone-container/pom.xml
@@ -99,6 +99,13 @@
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
+ <configuration>
+ <args>
+ <arg>-unchecked</arg>
+ <arg>-feature</arg>
+ <arg>-deprecation</arg>
+ </args>
+ </configuration>
<executions>
<execution>
<id>compile</id>