Packages

  • package root
    Definition Classes
    root
  • package domino

    Contains Domino, a lightweight Scala library for writing elegant OSGi bundle activators.

    Contains Domino, a lightweight Scala library for writing elegant OSGi bundle activators.

    For getting started, please see DominoActivator, the main entry point to the Domino DSL. Each sub package contains functionality for a specific part of the DSL.

    Definition Classes
    root
  • package bundle_watching

    Contains functionality related to watching OSGi bundles coming and going.

    Contains functionality related to watching OSGi bundles coming and going.

    Definition Classes
    domino
  • package capsule

    Contains a basic API and default implementation for building, using and extending a capsule-based DSL.

    Contains a basic API and default implementation for building, using and extending a capsule-based DSL.

    A capsule-based DSL is a generalization of the DSL used in the project "Domino". Here's an illustrative example how a capsuled-based DSL might look like:

    // Somewhere in your code
    whenTurnedOn {
      whenDevicePluggedIn {
        lightLED()
      }
    }

    The documentation distinguishes between 3 types of API clients: End users, capsule providers and context providers. The majority of developers will just come into contact with this API as end users.

    Definition Classes
    domino
  • Capsule
  • CapsuleContext
  • CapsuleConvenience
  • CapsuleScope
  • DefaultCapsuleScope
  • DynamicCapsuleContext
  • SimpleDynamicCapsuleContext
  • package configuration_watching

    Contains functionality related to watching OSGi configuration changes.

    Contains functionality related to watching OSGi configuration changes.

    Definition Classes
    domino
  • package logging

    Contains functionality related to OSGi logging.

    Contains functionality related to OSGi logging.

    Definition Classes
    domino
  • package scala_logging

    Contains a simple Scala API for logging along with a Java Logging API implementation.

    Contains a simple Scala API for logging along with a Java Logging API implementation.

    The generic logging interface is provided by the Logger trait. Implementations for various logging frameworks such as SLF4J or OSGi LogService are provided in separate modules.

    See JavaUtilLogging for a convenient way to use Java Logging API.

    Definition Classes
    domino
  • package scala_osgi_metatype

    Contains Scala interfaces, adapters and builders for easily building OSGi Metatype descriptions.

    Contains Scala interfaces, adapters and builders for easily building OSGi Metatype descriptions. OSGi Metatype descriptions are very well suited for quickly providing administration user interfaces.

    You probably want to check out the builders.

    Definition Classes
    domino
    Note

    I created totally new Scala interfaces and adapters instead of directly implementing the Java interfaces of the OSGi Metatype API in order to prevent name clashes and confusion about what method to call. Scala Swing does it the same way, I guess for the same reasons.

  • package service_consuming

    Contains functionality related to acquiring OSGi services.

    Contains functionality related to acquiring OSGi services.

    Definition Classes
    domino
  • package service_providing

    Contains functionality related to registering objects in the OSGi service registry.

    Contains functionality related to registering objects in the OSGi service registry.

    Definition Classes
    domino
  • package service_watching

    Contains functionality related to watching OSGi services coming and going.

    Contains functionality related to watching OSGi services coming and going.

    Definition Classes
    domino
p

domino

capsule

package capsule

Contains a basic API and default implementation for building, using and extending a capsule-based DSL.

A capsule-based DSL is a generalization of the DSL used in the project "Domino". Here's an illustrative example how a capsuled-based DSL might look like:

// Somewhere in your code
whenTurnedOn {
  whenDevicePluggedIn {
    lightLED()
  }
}

The documentation distinguishes between 3 types of API clients: End users, capsule providers and context providers. The majority of developers will just come into contact with this API as end users.

Linear Supertypes
AnyRef, Any

Type Members

  1. trait Capsule extends AnyRef

    A capsule represents something which is startable and stoppable.

    A capsule represents something which is startable and stoppable. After being started and before being stopped, we say the capsule is active. Otherwise, we say it's inactive.

    As end user, you usually don't come into contact with capsules directly, you rather add them using convenience methods.

    As capsule provider, you should implement this interface in order to provide logic which will be started and stopped on certain events. You might also want to implement convenience methods which use CapsuleContext to add the logic to the current capsule scope.

  2. trait CapsuleContext extends AnyRef

    Represents the tree structure which is formed by capsule scopes and their contained capsules.

    Represents the tree structure which is formed by capsule scopes and their contained capsules.

    As end user, you usually don't deal with this interface.

    As capsule provider, you use this interface for implementing the convenience methods and providing new capsule scopes.

    As context provider, you can implement this interface. However, you can also use the existing implementation DynamicCapsuleContext.

  3. trait CapsuleConvenience extends AnyRef

    Provides convenient onStart and onStop methods which the end user can use for ad-hoc adding start and stop logic to the current scope.

  4. trait CapsuleScope extends AnyRef

    Represents a collection of capsules which shall all be stopped on the same event.

    Represents a collection of capsules which shall all be stopped on the same event.

    As end user, you don't deal with this interface at all.

    As capsule provider, you might use this interface but you don't have to implement it. An object of this type is returned from CapsuleContext.executeWithinNewCapsuleScope which is used to create a new scope. You should then use this object later to stop all capsules in your new scope when the stopping event occurs.

  5. class DefaultCapsuleScope extends CapsuleScope

    A capsule scope implementation based on a scala.collection.Traversable.

  6. trait DynamicCapsuleContext extends CapsuleContext

    A CapsuleContext implementation based on scala.util.DynamicVariable and DefaultCapsuleScope.

    A CapsuleContext implementation based on scala.util.DynamicVariable and DefaultCapsuleScope.

    As a context provider, you might want to mix this trait into your class to provide the framework for a capsule-based DSL. See class domino.OsgiContext in the project "Domino" for an example.

  7. class SimpleDynamicCapsuleContext extends DynamicCapsuleContext

    A class extending from DynamicCapsuleContext.

    A class extending from DynamicCapsuleContext. Use this if you want to use a class instead of a trait.

Inherited from AnyRef

Inherited from Any

Ungrouped