From ebd47ebba08d9d8d06ddb1ee4de5fdeb5ab035bd Mon Sep 17 00:00:00 2001 From: Bjørn Christian Seime Date: Tue, 11 Jul 2017 19:27:43 +0200 Subject: Remove use of deprecated JavaConversions API --- .../src/test/java/com/yahoo/BundleIT.java | 5 ++- .../yahoo/container/plugin/mojo/Artifacts.scala | 7 ++-- .../searchchain/FederationSearcherTest.scala | 39 ++++++++++------------ .../yahoo/config/codegen/JavaClassBuilder.scala | 11 +++--- .../http/filter/FilterChainRepository.scala | 34 +++++++++---------- .../container/di/CloudSubscriberFactory.scala | 22 ++++++------ .../com/yahoo/container/di/ConfigRetriever.scala | 14 ++++---- .../scala/com/yahoo/container/di/Container.scala | 16 ++++----- .../yahoo/container/di/ConfigRetrieverTest.scala | 17 +++++----- .../com/yahoo/container/di/ContainerTest.scala | 32 +++++++++--------- .../monitor/SlobrokAndConfigIntersector.scala | 7 ++-- .../vespa/service/monitor/SlobrokMonitor.scala | 7 ++-- .../monitor/config/InstancesObservables.scala | 17 +++++----- .../container/impl/ClassLoaderOsgiFramework.scala | 27 +++++++-------- .../yahoo/container/standalone/LocalFileDb.scala | 12 +++---- .../StandaloneContainerApplication.scala | 6 ++-- .../standalone/StandaloneSubscriberFactory.scala | 11 +++--- 17 files changed, 138 insertions(+), 146 deletions(-) diff --git a/bundle-plugin-test/src/test/java/com/yahoo/BundleIT.java b/bundle-plugin-test/src/test/java/com/yahoo/BundleIT.java index aab918a910f..a7d27a449e6 100644 --- a/bundle-plugin-test/src/test/java/com/yahoo/BundleIT.java +++ b/bundle-plugin-test/src/test/java/com/yahoo/BundleIT.java @@ -5,7 +5,7 @@ import com.yahoo.vespa.scalalib.osgi.maven.ProjectBundleClassPaths; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; -import scala.collection.JavaConversions; +import scala.collection.JavaConverters; import java.io.File; import java.io.FilenameFilter; @@ -28,7 +28,6 @@ import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; /** * Verifies the bundle jar file built and its manifest. @@ -144,7 +143,7 @@ public class BundleIT { assertThat(bundleClassPaths.mainBundle().bundleSymbolicName(), is("bundle-plugin-test")); Collection mainBundleClassPaths = - JavaConversions.asJavaCollection(bundleClassPaths.mainBundle().classPathElements()); + JavaConverters.asJavaCollectionConverter(bundleClassPaths.mainBundle().classPathElements()).asJavaCollection(); assertThat(mainBundleClassPaths, hasItems( diff --git a/bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/Artifacts.scala b/bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/Artifacts.scala index 8e9f06cdde6..8370f8c615e 100644 --- a/bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/Artifacts.scala +++ b/bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/Artifacts.scala @@ -1,11 +1,10 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.container.plugin.mojo - -import scala.collection.JavaConversions._ -import org.apache.maven.project.MavenProject import org.apache.maven.artifact.Artifact +import org.apache.maven.project.MavenProject +import scala.collection.JavaConverters._ /** * @author tonytv @@ -13,7 +12,7 @@ import org.apache.maven.artifact.Artifact object Artifacts { def getArtifacts(project : MavenProject) = { type artifactSet = java.util.Set[Artifact] - val artifacts = project.getArtifacts.asInstanceOf[artifactSet].groupBy(_.getScope) + val artifacts = project.getArtifacts.asInstanceOf[artifactSet].asScala.groupBy(_.getScope) def isTypeJar(artifact : Artifact) = artifact.getType == "jar" def getByScope(scope: String) = diff --git a/config-model/src/test/scala/com/yahoo/vespa/model/container/search/searchchain/FederationSearcherTest.scala b/config-model/src/test/scala/com/yahoo/vespa/model/container/search/searchchain/FederationSearcherTest.scala index 322b47ad3b5..318e35a2173 100644 --- a/config-model/src/test/scala/com/yahoo/vespa/model/container/search/searchchain/FederationSearcherTest.scala +++ b/config-model/src/test/scala/com/yahoo/vespa/model/container/search/searchchain/FederationSearcherTest.scala @@ -1,31 +1,28 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.model.container.search.searchchain +import java.util.Collections.{emptyList, emptySet} import java.util.Optional -import scala.language.implicitConversions -import org.junit.Test -import org.junit.runner.RunWith -import org.scalatest.junit.JUnitRunner -import org.scalatest.FunSuite -import com.yahoo.search.searchchain.model.federation.{FederationOptions, FederationSearcherModel} -import com.yahoo.component.{ComponentSpecification, ComponentId} import com.yahoo.component.chain.dependencies.Dependencies -import java.util.Collections.{emptyList, emptySet} -import com.yahoo.component.provider.ComponentRegistry - -import FederationSearcherTest._ import com.yahoo.component.chain.model.ChainSpecification -import com.yahoo.search.federation.FederationConfig +import com.yahoo.component.provider.ComponentRegistry +import com.yahoo.component.{ComponentId, ComponentSpecification} import com.yahoo.config.ConfigInstance +import com.yahoo.search.federation.FederationConfig +import com.yahoo.search.searchchain.model.federation.FederationSearcherModel.TargetSpec +import com.yahoo.search.searchchain.model.federation.{FederationOptions, FederationSearcherModel} import com.yahoo.vespa.model.ConfigProducer -import scala.reflect.ClassTag -import scala.collection.JavaConversions._ -import scala.collection.breakOut +import com.yahoo.vespa.model.container.search.searchchain.FederationSearcherTest._ import com.yahoo.vespa.model.container.search.searchchain.Source.GroupOption -import com.yahoo.search.federation.sourceref.Target -import com.yahoo.search.searchchain.model.federation.FederationSearcherModel.TargetSpec +import org.junit.runner.RunWith +import org.scalatest.FunSuite +import org.scalatest.junit.JUnitRunner +import scala.collection.JavaConverters._ +import scala.collection.breakOut +import scala.language.implicitConversions +import scala.reflect.ClassTag /** * @author tonytv @@ -43,7 +40,7 @@ class FederationSearcherTest extends FunSuite{ } def registerProviderWithSources(provider: Provider) = { - provider :: provider.getSources.toList foreach { chain => searchChainRegistry.register(chain.getId, chain) } + provider :: provider.getSources.asScala.toList foreach { chain => searchChainRegistry.register(chain.getId, chain) } sourceGroupRegistry.addSources(provider) } } @@ -77,7 +74,7 @@ class FederationSearcherTest extends FunSuite{ } def toMapByKey[KEY, VALUE](collection: java.util.Collection[VALUE])(f: VALUE => KEY): Map[KEY, VALUE] = - collection.map(e => (f(e), e))(breakOut) + collection.asScala.map(e => (f(e), e))(breakOut) test("source groups are inherited when inheritDefaultSources=true") { val f = new ProvidersWithSourceFixture @@ -92,7 +89,7 @@ class FederationSearcherTest extends FunSuite{ //val chainsByProviderId = toMapByKey(target.searchChain())(_.providerId()) - assert(Set("provider1", "provider2") === target.searchChain().map(_.providerId()).toSet) + assert(Set("provider1", "provider2") === target.searchChain().asScala.map(_.providerId()).toSet) } test("source groups are not inherited when inheritDefaultSources=false") { @@ -124,7 +121,7 @@ class FederationSearcherTest extends FunSuite{ registerProviderWithSources(createProvider("provider1")) val federation = newFederationSearcher(inheritDefaultSources = true, - targets = List(new TargetSpec("provider1", new FederationOptions().setTimeoutInMilliseconds(12345)))) + targets = List(new TargetSpec("provider1", new FederationOptions().setTimeoutInMilliseconds(12345))).asJava) initializeFederationSearcher(federation) diff --git a/configgen/src/main/scala/com/yahoo/config/codegen/JavaClassBuilder.scala b/configgen/src/main/scala/com/yahoo/config/codegen/JavaClassBuilder.scala index c8c0b659b2f..578a8215750 100644 --- a/configgen/src/main/scala/com/yahoo/config/codegen/JavaClassBuilder.scala +++ b/configgen/src/main/scala/com/yahoo/config/codegen/JavaClassBuilder.scala @@ -1,11 +1,12 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.config.codegen -import java.io.{FileNotFoundException, FileOutputStream, PrintStream, File} -import ConfigGenerator.{indentCode, createClassName} -import util.Random -import scala.collection.JavaConversions._ +import java.io.{File, FileNotFoundException, FileOutputStream, PrintStream} +import com.yahoo.config.codegen.ConfigGenerator.{createClassName, indentCode} + +import scala.collection.JavaConverters._ +import scala.util.Random /** * Builds one Java class based on the given CNode tree. * @@ -104,7 +105,7 @@ class JavaClassBuilder( } private def getDefSchema: String = { - nd.getNormalizedContent.map { line => + nd.getNormalizedContent.asScala.map { line => "\"" + line.replace("\"", "\\\"") + "\"" diff --git a/container-core/src/main/scala/com/yahoo/container/http/filter/FilterChainRepository.scala b/container-core/src/main/scala/com/yahoo/container/http/filter/FilterChainRepository.scala index 3d74fbaf223..18195b7dc50 100644 --- a/container-core/src/main/scala/com/yahoo/container/http/filter/FilterChainRepository.scala +++ b/container-core/src/main/scala/com/yahoo/container/http/filter/FilterChainRepository.scala @@ -1,17 +1,17 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.container.http.filter -import com.yahoo.container.core.ChainsConfig -import com.yahoo.component.provider.ComponentRegistry -import com.yahoo.jdisc.http.filter.chain.{RequestFilterChain, ResponseFilterChain} -import com.yahoo.jdisc.http.filter.{RequestFilter, ResponseFilter} -import com.yahoo.jdisc.http.filter.{SecurityResponseFilterChain, SecurityRequestFilterChain, SecurityResponseFilter, SecurityRequestFilter} -import com.yahoo.component.{ComponentSpecification, ComponentId, AbstractComponent} import com.yahoo.component.chain.model.ChainsModelBuilder import com.yahoo.component.chain.{Chain, ChainedComponent, ChainsConfigurer} +import com.yahoo.component.provider.ComponentRegistry +import com.yahoo.component.{AbstractComponent, ComponentId, ComponentSpecification} +import com.yahoo.container.core.ChainsConfig +import com.yahoo.container.http.filter.FilterChainRepository._ +import com.yahoo.jdisc.http.filter.chain.{RequestFilterChain, ResponseFilterChain} +import com.yahoo.jdisc.http.filter.{RequestFilter, ResponseFilter, SecurityRequestFilter, SecurityRequestFilterChain, SecurityResponseFilter, SecurityResponseFilterChain} import com.yahoo.processing.execution.chain.ChainRegistry -import FilterChainRepository._ -import scala.collection.JavaConversions._ + +import scala.collection.JavaConverters._ /** @@ -48,7 +48,7 @@ class FilterChainRepository(chainsConfig: ChainsConfig, val wrappedFilters = new ComponentRegistry[FilterWrapper] def registerWrappedFilters(registry: ComponentRegistry[_ <: AnyRef]) { - for ((id, filter) <- registry.allComponentsById()) + for ((id, filter) <- registry.allComponentsById().asScala) wrappedFilters.register(id, new FilterWrapper(id, filter)) } @@ -65,14 +65,14 @@ class FilterChainRepository(chainsConfig: ChainsConfig, for { registry <- registries - (id, filter) <- registry.allComponentsById() + (id, filter) <- registry.allComponentsById().asScala } destination.register(id, wrapSecurityFilter(filter)) } private def addAllChains(destination: ComponentRegistry[AnyRef], chainsConfig: ChainsConfig, filters: ComponentRegistry[_ <: AnyRef]*) { val chainRegistry = buildChainsRegistry(chainsConfig, filters) - for (chain <- chainRegistry.allComponents()) { + for (chain <- chainRegistry.allComponents().asScala) { destination.register(chain.getId, toJDiscChain(chain)) } } @@ -89,7 +89,7 @@ class FilterChainRepository(chainsConfig: ChainsConfig, private def toJDiscChain(chain: Chain[FilterWrapper]): AnyRef = { checkFilterTypesCompatible(chain) - val jDiscFilters = chain.components() map {_.filter} + val jDiscFilters = chain.components().asScala map {_.filter} wrapJDiscChain(wrapSecurityFilters(jDiscFilters.toList)) } @@ -98,8 +98,8 @@ class FilterChainRepository(chainsConfig: ChainsConfig, if (filters.size == 1) filters.head else { filters.head match { - case _: RequestFilter => RequestFilterChain.newInstance(filters.asInstanceOf[List[RequestFilter]]) - case _: ResponseFilter => ResponseFilterChain.newInstance(filters.asInstanceOf[List[ResponseFilter]]) + case _: RequestFilter => RequestFilterChain.newInstance(filters.asInstanceOf[List[RequestFilter]].asJava) + case _: ResponseFilter => ResponseFilterChain.newInstance(filters.asInstanceOf[List[ResponseFilter]].asJava) } } } @@ -119,8 +119,8 @@ class FilterChainRepository(chainsConfig: ChainsConfig, def createSecurityChain(filters: List[AnyRef]): AnyRef = { filters.head match { - case _: SecurityRequestFilter => SecurityRequestFilterChain.newInstance(filters.asInstanceOf[List[SecurityRequestFilter]]) - case _: SecurityResponseFilter => SecurityResponseFilterChain.newInstance(filters.asInstanceOf[List[SecurityResponseFilter]]) + case _: SecurityRequestFilter => SecurityRequestFilterChain.newInstance(filters.asInstanceOf[List[SecurityRequestFilter]].asJava) + case _: SecurityResponseFilter => SecurityResponseFilterChain.newInstance(filters.asInstanceOf[List[SecurityResponseFilter]].asJava) case _ => throw new IllegalArgumentException("Unexpected class " + filters.head.getClass) } } @@ -142,7 +142,7 @@ class FilterChainRepository(chainsConfig: ChainsConfig, throw new RuntimeException("Can't mix request and response filters in chain %s: %s, %s".format(chain.getId, a.getId, b.getId)) } - overlappingPairIterator(chain.components).foreach { + overlappingPairIterator(chain.components.asScala).foreach { case Seq(_) => case Seq(filter1: FilterWrapper, filter2: FilterWrapper) => check(filter1, filter2) 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 2e9856fd0c8..25ec75da5b1 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 @@ -1,16 +1,16 @@ // 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 -import com.yahoo.config.{ConfigInstance} -import CloudSubscriberFactory._ -import config.{Subscriber, SubscriberFactory} -import scala.collection.JavaConversions._ -import com.yahoo.vespa.config.ConfigKey -import scala.Some -import com.yahoo.config.subscription.{ConfigHandle, ConfigSource, ConfigSourceSet, ConfigSubscriber} -import java.lang.IllegalArgumentException import java.util.logging.Logger + +import com.yahoo.config.ConfigInstance +import com.yahoo.config.subscription.{ConfigHandle, ConfigSource, ConfigSourceSet, ConfigSubscriber} +import com.yahoo.container.di.CloudSubscriberFactory._ +import com.yahoo.container.di.config.{Subscriber, SubscriberFactory} import com.yahoo.log.LogLevel +import com.yahoo.vespa.config.ConfigKey + +import scala.collection.JavaConverters._ /** @@ -24,7 +24,7 @@ class CloudSubscriberFactory(configSource: ConfigSource) extends SubscriberFacto private val activeSubscribers = new java.util.WeakHashMap[CloudSubscriber, Int]() override def getSubscriber(configKeys: java.util.Set[_ <: ConfigKey[_]]): Subscriber = { - val subscriber = new CloudSubscriber(configKeys.toSet.asInstanceOf[Set[ConfigKeyT]], configSource) + val subscriber = new CloudSubscriber(configKeys.asScala.toSet.asInstanceOf[Set[ConfigKeyT]], configSource) testGeneration.foreach(subscriber.subscriber.reload(_)) //TODO: test specific code, remove activeSubscribers.put(subscriber, 0) @@ -36,7 +36,7 @@ class CloudSubscriberFactory(configSource: ConfigSource) extends SubscriberFacto override def reloadActiveSubscribers(generation: Long) { testGeneration = Some(generation) - val l = activeSubscribers.keySet().toSet + val l = activeSubscribers.keySet().asScala.toSet l.foreach { _.subscriber.reload(generation) } } } @@ -59,7 +59,7 @@ object CloudSubscriberFactory { //mapValues returns a view,, so we need to force evaluation of it here to prevent deferred evaluation. override def config = handles.mapValues(_.getConfig).toMap.view.force. - asInstanceOf[Map[ConfigKey[ConfigInstance], ConfigInstance]] + asInstanceOf[Map[ConfigKey[ConfigInstance], ConfigInstance]].asJava override def waitNextGeneration() = { require(!handles.isEmpty) 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 ec857e439f9..a4d7370429e 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 @@ -2,17 +2,15 @@ package com.yahoo.container.di -import config.Subscriber import java.util.logging.{Level, Logger} -import com.yahoo.log.LogLevel -import ConfigRetriever._ - -import annotation.tailrec import com.yahoo.config.ConfigInstance +import com.yahoo.container.di.ConfigRetriever._ +import com.yahoo.container.di.config.Subscriber +import com.yahoo.log.LogLevel -import scala.collection.JavaConversions._ -import com.yahoo.vespa.config.ConfigKey +import scala.annotation.tailrec +import scala.collection.JavaConverters._ /** * @author tonytv @@ -64,7 +62,7 @@ final class ConfigRetriever(bootstrapKeys: Set[ConfigKeyT], private def configIfChanged[T <: ConfigSnapshot](subscriber: Subscriber, constructor: Map[ConfigKeyT, ConfigInstance] => T ): Option[T] = { - if (subscriber.configChanged) Some(constructor(subscriber.config.toMap)) + if (subscriber.configChanged) Some(constructor(subscriber.config.asScala.toMap)) else None } diff --git a/container-di/src/main/scala/com/yahoo/container/di/Container.scala b/container-di/src/main/scala/com/yahoo/container/di/Container.scala index 550f61c0cf2..af73730afa2 100644 --- a/container-di/src/main/scala/com/yahoo/container/di/Container.scala +++ b/container-di/src/main/scala/com/yahoo/container/di/Container.scala @@ -1,8 +1,8 @@ // 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 -import java.util.{IdentityHashMap, Random} import java.util.logging.{Level, Logger} +import java.util.{IdentityHashMap, Random} import com.google.inject.{Guice, Injector} import com.yahoo.config._ @@ -17,10 +17,10 @@ import com.yahoo.container.{BundlesConfig, ComponentsConfig} import com.yahoo.protect.Process import com.yahoo.vespa.config.ConfigKey -import scala.collection.JavaConversions._ -import scala.math.max +import scala.collection.JavaConverters._ import scala.concurrent.duration._ import scala.language.postfixOps +import scala.math.max /** @@ -38,7 +38,7 @@ class Container( val bundlesConfigKey = new ConfigKey(classOf[BundlesConfig], configId) val componentsConfigKey = new ConfigKey(classOf[ComponentsConfig], configId) - var configurer = new ConfigRetriever(Set(bundlesConfigKey, componentsConfigKey), subscriberFactory.getSubscriber(_)) + var configurer = new ConfigRetriever(Set(bundlesConfigKey, componentsConfigKey), (keys) => subscriberFactory.getSubscriber(keys.asJava)) var previousConfigGeneration = -1L var leastGeneration = -1L @@ -51,7 +51,7 @@ class Container( val oldComponents = new IdentityHashMap[AnyRef, AnyRef]() oldGraph.allComponentsAndProviders foreach (oldComponents.put(_, null)) newGraph.allComponentsAndProviders foreach (oldComponents.remove(_)) - oldComponents.keySet foreach (componentDeconstructor.deconstruct(_)) + oldComponents.keySet.asScala foreach (componentDeconstructor.deconstruct(_)) } try { @@ -157,8 +157,8 @@ class Container( def injectNodes(config: ComponentsConfig, graph: ComponentGraph) { for { - component <- config.components() - inject <- component.inject() + component <- config.components().asScala + inject <- component.inject().asScala } { def getNode = ComponentGraph.getNode(graph, _: String) @@ -194,7 +194,7 @@ class Container( def isRestApiContext(clazz: Class[_]) = classOf[RestApiContext].isAssignableFrom(clazz) def asRestApiContext(clazz: Class[_]) = clazz.asInstanceOf[Class[RestApiContext]] - for (config : ComponentsConfig.Components <- componentsConfig.components) { + for (config : ComponentsConfig.Components <- componentsConfig.components.asScala) { val specification = bundleInstatiationSpecification(config) val componentClass = osgi.resolveClass(specification) diff --git a/container-di/src/test/scala/com/yahoo/container/di/ConfigRetrieverTest.scala b/container-di/src/test/scala/com/yahoo/container/di/ConfigRetrieverTest.scala index 9d343ce74cf..93618f90e92 100644 --- a/container-di/src/test/scala/com/yahoo/container/di/ConfigRetrieverTest.scala +++ b/container-di/src/test/scala/com/yahoo/container/di/ConfigRetrieverTest.scala @@ -1,15 +1,16 @@ // 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 -import org.junit.Assert._ -import org.hamcrest.CoreMatchers.{is, instanceOf => hamcrestInstanceOf} +import com.yahoo.config.test.{Bootstrap1Config, Bootstrap2Config, TestConfig} +import com.yahoo.container.di.ConfigRetriever.{BootstrapConfigs, ComponentsConfigs} import com.yahoo.vespa.config.ConfigKey -import com.yahoo.config.test.{TestConfig, Bootstrap2Config, Bootstrap1Config} -import com.yahoo.container.di.ConfigRetriever.{ComponentsConfigs, BootstrapConfigs} -import org.junit.{Ignore, After, Before, Test} -import scala.collection.JavaConversions._ -import scala.reflect.ClassTag +import org.hamcrest.CoreMatchers.{is, instanceOf => hamcrestInstanceOf} import org.hamcrest.Matcher +import org.junit.Assert._ +import org.junit.{After, Before, Ignore, Test} + +import scala.reflect.ClassTag +import scala.collection.JavaConverters._ /** * @@ -79,7 +80,7 @@ class ConfigRetrieverTest { new ConfigRetriever( Set(new ConfigKey(classOf[Bootstrap1Config], configId), new ConfigKey(classOf[Bootstrap2Config], configId)), - subscriber.getSubscriber(_)) + (keys) => subscriber.getSubscriber(keys.asJava)) } def writeConfig = dirConfigSource.writeConfig _ 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 a571369a759..d8734e81948 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 @@ -1,28 +1,26 @@ // 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 -import com.yahoo.container.di.componentgraph.core.ComponentGraphTest.{SimpleComponent, SimpleComponent2} -import com.yahoo.container.di.componentgraph.Provider -import com.yahoo.container.di.componentgraph.core.{ComponentGraph, ComponentNode, Node} -import org.junit.{After, Before, Ignore, Test} -import org.junit.Assert._ -import org.hamcrest.CoreMatchers._ -import com.yahoo.config.test.TestConfig import com.yahoo.component.AbstractComponent -import ContainerTest._ - -import scala.collection.JavaConversions import com.yahoo.config.di.IntConfig - -import scala.concurrent.{Await, Future, future} -import scala.concurrent.duration._ -import scala.concurrent.ExecutionContext.Implicits.global -import scala.util.Try -import com.yahoo.container.di.config.RestApiContext +import com.yahoo.config.test.TestConfig import com.yahoo.container.bundle.MockBundle +import com.yahoo.container.di.ContainerTest._ +import com.yahoo.container.di.componentgraph.Provider +import com.yahoo.container.di.componentgraph.core.ComponentGraphTest.{SimpleComponent, SimpleComponent2} import com.yahoo.container.di.componentgraph.core.ComponentNode.ComponentConstructorException +import com.yahoo.container.di.componentgraph.core.{ComponentGraph, Node} +import com.yahoo.container.di.config.RestApiContext +import org.hamcrest.CoreMatchers._ +import org.junit.Assert._ +import org.junit.{After, Before, Ignore, Test} +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.util.Try /** * @author tonytv @@ -396,5 +394,5 @@ object ContainerTest { componentGraph.getInstance(classOf[ComponentTakingConfig]) } - def convertMap[K, V](map: java.util.Map[K, V]): Map[K, V] = JavaConversions.mapAsScalaMap(map).toMap + def convertMap[K, V](map: java.util.Map[K, V]): Map[K, V] = map.asScala.toMap } diff --git a/service-monitor/src/main/scala/com/yahoo/vespa/service/monitor/SlobrokAndConfigIntersector.scala b/service-monitor/src/main/scala/com/yahoo/vespa/service/monitor/SlobrokAndConfigIntersector.scala index 2c259d6f56e..958a9bc462c 100644 --- a/service-monitor/src/main/scala/com/yahoo/vespa/service/monitor/SlobrokAndConfigIntersector.scala +++ b/service-monitor/src/main/scala/com/yahoo/vespa/service/monitor/SlobrokAndConfigIntersector.scala @@ -1,8 +1,8 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.service.monitor -import java.util.{Collections, Optional} import java.util.logging.Logger +import java.util.{Collections, Optional} import com.google.inject.Inject import com.yahoo.cloud.config.ConfigserverConfig @@ -15,10 +15,9 @@ import com.yahoo.vespa.service.monitor.SlobrokAndConfigIntersector._ import com.yahoo.vespa.service.monitor.SlobrokMonitor._ import com.yahoo.vespa.service.monitor.config.InstancesObservables import com.yahoo.vespa.service.monitor.config.InstancesObservables._ -import rx.lang.scala.{Subscription, Observable} +import rx.lang.scala.{Observable, Subscription} -import scala.collection.convert.decorateAsJava._ -import scala.collection.convert.decorateAsScala._ +import scala.collection.JavaConverters._ import scala.collection.immutable.Set import scala.concurrent.duration._ import scala.language.postfixOps diff --git a/service-monitor/src/main/scala/com/yahoo/vespa/service/monitor/SlobrokMonitor.scala b/service-monitor/src/main/scala/com/yahoo/vespa/service/monitor/SlobrokMonitor.scala index 03f47b7192c..f5ae2eeb510 100644 --- a/service-monitor/src/main/scala/com/yahoo/vespa/service/monitor/SlobrokMonitor.scala +++ b/service-monitor/src/main/scala/com/yahoo/vespa/service/monitor/SlobrokMonitor.scala @@ -3,9 +3,10 @@ package com.yahoo.vespa.service.monitor import com.yahoo.jrt.slobrok.api.Mirror.Entry import com.yahoo.jrt.slobrok.api.{Mirror, SlobrokList} -import com.yahoo.jrt.{Transport, Supervisor} +import com.yahoo.jrt.{Supervisor, Transport} import com.yahoo.vespa.service.monitor.SlobrokMonitor._ -import scala.collection.convert.wrapAsJava._ + +import scala.collection.JavaConverters._ /** * @author bakksjo @@ -16,7 +17,7 @@ class SlobrokMonitor { private val mirror = new Mirror(supervisor, slobrokList) def setSlobrokConnectionSpecs(slobrokConnectionSpecs: Traversable[String]): Unit = { - val slobrokConnectionSpecsJavaList: java.util.List[String] = slobrokConnectionSpecs.toList + val slobrokConnectionSpecsJavaList: java.util.List[String] = slobrokConnectionSpecs.toList.asJava slobrokList.setup(slobrokConnectionSpecsJavaList.toArray(new Array[java.lang.String](0))) } diff --git a/service-monitor/src/main/scala/com/yahoo/vespa/service/monitor/config/InstancesObservables.scala b/service-monitor/src/main/scala/com/yahoo/vespa/service/monitor/config/InstancesObservables.scala index 9388549046f..ac9b8f5e5b0 100644 --- a/service-monitor/src/main/scala/com/yahoo/vespa/service/monitor/config/InstancesObservables.scala +++ b/service-monitor/src/main/scala/com/yahoo/vespa/service/monitor/config/InstancesObservables.scala @@ -8,14 +8,13 @@ import com.yahoo.cloud.config.LbServicesConfig import com.yahoo.cloud.config.LbServicesConfig.Tenants.Applications.Hosts import com.yahoo.cloud.config.LbServicesConfig.Tenants.Applications.Hosts.Services.Ports import com.yahoo.config.subscription.ConfigSourceSet -import com.yahoo.vespa.applicationmodel.{ApplicationInstanceId, TenantId, ServiceClusterKey, ServiceCluster, ServiceInstance, ApplicationInstance, ServiceType, HostName, ConfigId, ClusterId, ApplicationInstanceReference} +import com.yahoo.vespa.applicationmodel.{ApplicationInstance, ApplicationInstanceId, ApplicationInstanceReference, ClusterId, ConfigId, HostName, ServiceCluster, ServiceClusterKey, ServiceInstance, ServiceType, TenantId} import com.yahoo.vespa.service.monitor.config.InstancesObservables._ import rx.lang.scala.JavaConversions._ import rx.lang.scala.{Observable, Subscription} import rx.schedulers.Schedulers -import scala.collection.convert.decorateAsJava._ -import scala.collection.convert.wrapAsScala._ +import scala.collection.JavaConverters._ import scala.concurrent.duration._ /** @@ -63,8 +62,8 @@ object InstancesObservables { private def asInstanceReferenceToHostConfigMap(config: LbServicesConfig) = { for { - (tenantIdString, tenantConfig) <- config.tenants() - (applicationIdString, applicationConfig) <- tenantConfig.applications() + (tenantIdString, tenantConfig) <- config.tenants().asScala + (applicationIdString, applicationConfig) <- tenantConfig.applications().asScala } yield { val applicationInstanceReference: ApplicationInstanceReference = new ApplicationInstanceReference( new TenantId(tenantIdString), @@ -80,19 +79,19 @@ object InstancesObservables { } for { - (hostName, hostConfig) <- hostsConfigs + (hostName, hostConfig) <- hostsConfigs.asScala slobrokService <- Option(hostConfig.services("slobrok")) } yield SlobrokService( hostName, - rpcPort(slobrokService.ports()).getOrElse(throw new RuntimeException("Found slobrok without rpc port"))) + rpcPort(slobrokService.ports().asScala).getOrElse(throw new RuntimeException("Found slobrok without rpc port"))) } private def asServiceClusterSet(hostsConfigs: java.util.Map[String, Hosts]) : java.util.Set[ServiceCluster[Void]] = { val serviceInstancesGroupedByCluster: Map[ServiceClusterKey, Iterable[ServiceInstance[Void]]] = (for { - (hostName, hostConfig) <- hostsConfigs.view - (serviceName, servicesConfig) <- hostConfig.services() + (hostName, hostConfig) <- hostsConfigs.asScala.view + (serviceName, servicesConfig) <- hostConfig.services().asScala } yield { (new ServiceClusterKey(new ClusterId(servicesConfig.clustername()), new ServiceType(servicesConfig.`type`())), new ServiceInstance(new ConfigId(servicesConfig.configId()), new HostName(hostName), null.asInstanceOf[Void])) diff --git a/standalone-container/src/main/scala/com/yahoo/application/container/impl/ClassLoaderOsgiFramework.scala b/standalone-container/src/main/scala/com/yahoo/application/container/impl/ClassLoaderOsgiFramework.scala index e07957db5a7..02ff2c60ce6 100644 --- a/standalone-container/src/main/scala/com/yahoo/application/container/impl/ClassLoaderOsgiFramework.scala +++ b/standalone-container/src/main/scala/com/yahoo/application/container/impl/ClassLoaderOsgiFramework.scala @@ -1,20 +1,21 @@ // 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.impl -import com.yahoo.jdisc.application.{OsgiHeader, OsgiFramework} -import java.util -import org.osgi.framework._ import java.io.InputStream -import util.concurrent.atomic.AtomicInteger -import util.jar.JarFile -import util.{Dictionary, Collections, Hashtable} +import java.net.{URL, URLClassLoader} +import java.util +import java.util.concurrent.atomic.AtomicInteger +import java.util.jar.JarFile +import java.util.{Collections, Dictionary, Hashtable} -import scala.collection.JavaConversions._ import com.yahoo.container.standalone.StandaloneContainerApplication -import collection.mutable.ArrayBuffer -import java.net.{URL, URLClassLoader} +import com.yahoo.jdisc.application.{OsgiFramework, OsgiHeader} +import org.osgi.framework._ import org.osgi.framework.wiring._ -import org.osgi.resource.{Wire, Capability, Requirement} +import org.osgi.resource.{Capability, Requirement, Wire} + +import scala.collection.JavaConverters._ +import scala.collection.mutable.ArrayBuffer /** * A (mock) OSGI implementation which loads classes from the system classpath @@ -55,7 +56,7 @@ final class ClassLoaderOsgiFramework extends OsgiFramework { override def bundleContext():BundleContext = BundleContextImpl - override def bundles() = bundleList + override def bundles() = bundleList.asJava override def start() {} @@ -139,7 +140,7 @@ final class ClassLoaderOsgiFramework extends OsgiFramework { private object SystemBundleImpl extends BundleImpl { override val getBundleId = 0L override def getVersion = Version.emptyVersion - override def getHeaders: Dictionary[String, String] = new Hashtable[String, String](Map(OsgiHeader.APPLICATION -> classOf[StandaloneContainerApplication].getName)) + override def getHeaders: Dictionary[String, String] = new Hashtable[String, String](Map(OsgiHeader.APPLICATION -> classOf[StandaloneContainerApplication].getName).asJava) } @@ -157,7 +158,7 @@ final class ClassLoaderOsgiFramework extends OsgiFramework { val jarFile = new JarFile(location.getFile) try { val attributes = jarFile.getManifest.getMainAttributes - new Hashtable[String, String](attributes.entrySet().map( entry => entry.getKey.toString -> entry.getValue.toString).toMap) + new Hashtable[String, String](attributes.entrySet().asScala.map( entry => entry.getKey.toString -> entry.getValue.toString).toMap.asJava) } finally { jarFile.close() } diff --git a/standalone-container/src/main/scala/com/yahoo/container/standalone/LocalFileDb.scala b/standalone-container/src/main/scala/com/yahoo/container/standalone/LocalFileDb.scala index c237aa25663..69443c73b3a 100644 --- a/standalone-container/src/main/scala/com/yahoo/container/standalone/LocalFileDb.scala +++ b/standalone-container/src/main/scala/com/yahoo/container/standalone/LocalFileDb.scala @@ -3,19 +3,19 @@ package com.yahoo.container.standalone import java.io.File import java.lang.reflect.Constructor +import java.nio.file.Path import java.util import java.util.concurrent.TimeUnit + import com.yahoo.config.FileReference import com.yahoo.config.application.api.FileRegistry import com.yahoo.config.application.api.FileRegistry.Entry +import com.yahoo.container.standalone.LocalFileDb._ import com.yahoo.filedistribution.fileacquirer.FileAcquirer import com.yahoo.net.HostName -import scala.collection.JavaConversions._ - -import LocalFileDb._ +import scala.collection.JavaConverters._ import scala.collection.mutable -import java.nio.file.Path /** @@ -52,11 +52,11 @@ class LocalFileDb(appPath: Path) extends FileAcquirer with FileRegistry { HostName.getLocalhost def allRelativePaths: java.util.Set[String] = { - new java.util.HashSet(fileReferenceToFile.values.map(_.getPath)) + new java.util.HashSet(fileReferenceToFile.values.map(_.getPath).asJavaCollection) } override def export(): util.List[Entry] = { - new java.util.ArrayList(fileReferenceToFile.keys.map{ (ref: FileReference) => new Entry(fileReferenceToFile.get(ref).get.getPath, ref)}) + new java.util.ArrayList(fileReferenceToFile.keys.map{ (ref: FileReference) => new Entry(fileReferenceToFile.get(ref).get.getPath, ref)}.asJavaCollection) } } diff --git a/standalone-container/src/main/scala/com/yahoo/container/standalone/StandaloneContainerApplication.scala b/standalone-container/src/main/scala/com/yahoo/container/standalone/StandaloneContainerApplication.scala index 210394dcf88..14187afdaaa 100644 --- a/standalone-container/src/main/scala/com/yahoo/container/standalone/StandaloneContainerApplication.scala +++ b/standalone-container/src/main/scala/com/yahoo/container/standalone/StandaloneContainerApplication.scala @@ -29,7 +29,7 @@ import com.yahoo.vespa.model.container.xml.ContainerModelBuilder.Networking import com.yahoo.vespa.model.container.xml.{ConfigServerContainerModelBuilder, ContainerModelBuilder} import org.w3c.dom.Element -import scala.collection.JavaConversions._ +import scala.collection.JavaConverters._ import scala.util.Try /** @@ -210,7 +210,7 @@ object StandaloneContainerApplication { elements map { e => s"${e.getNodeName} id='${e.getAttribute("id")}'" } } - val jDiscElements = ContainerModelBuilder.configModelIds flatMap { name => XML.getChildren(element, name.getName) } + val jDiscElements = ContainerModelBuilder.configModelIds.asScala flatMap { name => XML.getChildren(element, name.getName).asScala } jDiscElements.toList match { case List(e) => e case Nil => throw new RuntimeException("No jdisc element found under services.") @@ -222,7 +222,7 @@ object StandaloneContainerApplication { val element = XmlHelper.getDocument(applicationPackage.getServices).getDocumentElement val nodeName = element.getNodeName - if (ContainerModelBuilder.configModelIds.map(_.getName).contains(nodeName)) element + if (ContainerModelBuilder.configModelIds.asScala.map(_.getName).contains(nodeName)) element else getJDiscInServices(element) } diff --git a/standalone-container/src/main/scala/com/yahoo/container/standalone/StandaloneSubscriberFactory.scala b/standalone-container/src/main/scala/com/yahoo/container/standalone/StandaloneSubscriberFactory.scala index 5ae300edc22..47219d2893a 100644 --- a/standalone-container/src/main/scala/com/yahoo/container/standalone/StandaloneSubscriberFactory.scala +++ b/standalone-container/src/main/scala/com/yahoo/container/standalone/StandaloneSubscriberFactory.scala @@ -1,15 +1,14 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.container.standalone -import com.yahoo.config.model.test.MockRoot import com.yahoo.config.{ConfigBuilder, ConfigInstance} import com.yahoo.container.di.ConfigKeyT +import com.yahoo.container.di.config.{Subscriber, SubscriberFactory} +import com.yahoo.container.standalone.StandaloneSubscriberFactory._ +import com.yahoo.vespa.config.ConfigKey import com.yahoo.vespa.model.VespaModel -import scala.collection.JavaConversions._ + import scala.collection.JavaConverters._ -import com.yahoo.vespa.config.ConfigKey -import com.yahoo.container.di.config.{SubscriberFactory, Subscriber} -import StandaloneSubscriberFactory._ /** * @author tonytv @@ -50,7 +49,7 @@ class StandaloneSubscriberFactory(root: VespaModel) extends SubscriberFactory { } override def getSubscriber(configKeys: java.util.Set[_ <: ConfigKey[_]]) = - new StandaloneSubscriber(configKeys.toSet.asInstanceOf[Set[ConfigKeyT]]) + new StandaloneSubscriber(configKeys.asScala.toSet.asInstanceOf[Set[ConfigKeyT]]) def reloadActiveSubscribers(generation: Long) { throw new RuntimeException("unsupported") -- cgit v1.2.3