blob: 6752559fde6ab42d580dcca0606ae7c135355546 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
// Copyright 2016 Yahoo Inc. 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.FileReference
import com.yahoo.container.bundle.{MockBundle, BundleInstantiationSpecification}
import com.yahoo.container.di.Osgi.BundleClasses
import org.osgi.framework.Bundle
import com.yahoo.component.ComponentSpecification
/**
*
* @author gjoranv
* @author tonytv
*/
trait Osgi {
def getBundleClasses(bundle: ComponentSpecification, packagesToScan: Set[String]): BundleClasses = {
BundleClasses(new MockBundle, List())
}
def useBundles(bundles: java.util.Collection[FileReference]) {
println("useBundles " + bundles.toArray.mkString(", "))
}
def resolveClass(spec: BundleInstantiationSpecification): Class[AnyRef] = {
println("resolving class " + spec.classId)
Class.forName(spec.classId.getName).asInstanceOf[Class[AnyRef]]
}
def getBundle(spec: ComponentSpecification): Bundle = {
println("resolving bundle " + spec)
new MockBundle()
}
}
object Osgi {
type RelativePath = String //e.g. "com/yahoo/MyClass.class"
case class BundleClasses(bundle: Bundle, classEntries: Iterable[RelativePath])
}
|