Можно ли использовать Scala с архитектурой сервисных компонентов? - PullRequest
1 голос
/ 11 марта 2011

Кто-нибудь знает, можно ли использовать Scala с реализациями с открытым исходным кодом SCA (Service Component Architecture), такими как Fabric3 или Apache Tuscany? Я не нашел такой информации в Интернете. Я знаю, что Scala компилируется в Java, но мне было интересно, усложнит ли внедрение зависимостей. Благодарю.

1 Ответ

1 голос
/ 11 марта 2011

Платформа FraSCAti уже поддерживает Scala в качестве языка реализации для компонентов SCA. Вы можете проверить следующий пример :

@Service
trait PrintService {
    def print(msg: String)
}

class Server extends PrintService {    
    println("SERVER created.")

    @Property protected var header = "->"
    @Property private var count = 1

    /** PrintService implementation. */
    def print(msg: String) {
        println("Server: begin printing...")
        for (i <- 0 until count)
            println(header + msg)
        println("Server: print done.")
    }        
}

@Service(classOf[Runnable])
class Client extends Runnable {
    println("CLIENT created")

    @Reference(required = true) private var service: PrintService = _
    def setPrintService(s: PrintService) { service = s }

    // Runnable interface implementation
    def run = service print "hello world"
}

Примеры в репозитории также показывают, как использовать bean-компоненты для реализации этих компонентов.

...