Packages

  • package root
    Definition Classes
    root
  • package com
    Definition Classes
    root
  • package cisco
    Definition Classes
    com
  • package streambed

    The base package of the Streambed library.

    The base package of the Streambed library. Of note is the com.cisco.streambed.Application suite of types. These types conveniently establish a streambed environment for an application.

    Sample usage from Java:

    /**
     * Bootstraps our application and handles signals
     */
    public class MyServerEntryPoints {
        private static ApplicationProcess applicationProcess = null;
    
        public static void main(String[] args) {
            applicationProcess = new ApplicationProcess(new MyServer());
            applicationProcess.main(args);
        }
    
        public static void trap(int signal) {
          if (applicationProcess != null) {
                applicationProcess.trap(signal);
            }
        }
    }

    ...with MyServer being declared as:

    public class MyServer extends Application {
        @Override
        public void main(String[] args, ApplicationContext context) {
          ..
        }
    }

    The equivalent in Scala:

    object MyServerEntryPoints {
      private lazy val applicationProcess = ApplicationProcess(MyServer)
    
      def main(args: Array[String]): Unit =
        applicationProcess.main(args)
    
      def trap(signal: Int): Unit =
        applicationProcess.trap(signal)
    }

    ...with MyServer being declared as:

    object MyServer extends Application {
      override def main(args: Array[String], applicationContext: ApplicationContext): Unit = {
        ..
      }
    }

    The essential idea is that a regular JVM entry point (MyServerEntryPoints), establishes a com.cisco.streambed.ApplicationProcess of a class named MyServer. The trap method is used by Landlord for whenever an operating systemm signal is sent to the process. My extending com.cisco.streambed.Application, a com.cisco.streambed.ApplicationContext is provided by Streambed, containing almost all of what an application will require in order to startup (an actor system, metrics, logging...). The resources provided within the context are also automatically released on exit.

    Definition Classes
    cisco
  • package controlplane

    Generic meta data event declarations so that observations, and other things, can be made known to the system as a whole.

  • package crypto

    Utilities that abstract crypto functions, such as encoding/decoding given a salt.

  • package durablequeue

    The com.cisco.streambed.durablequeue.DurableQueue is at the heart of streambed.

    The com.cisco.streambed.durablequeue.DurableQueue is at the heart of streambed. Streambed programs are essentially formed around the durable queue. Use a com.cisco.streambed.durablequeue.DurableQueue.Provider to declare the type of queue you require. See the package doc for Streambed's ChronicleQueue for an example.

  • package http

    High level Akka http utilities e.g.

    High level Akka http utilities e.g. making it easier to bind and handle an HTTP port with a TLS certificate as per com.cisco.streambed.http.HttpServerConfig.

  • package identity

    Identity management inspired by Hashicorp Vault's secret storage model.

    Identity management inspired by Hashicorp Vault's secret storage model. com.cisco.streambed.identity.Principal objects represent a entity that has attempted to authenticate. An authenticated entity yields a com.cisco.streambed.identity.Principal.AuthenticationToken by which secrets can then be requested against a com.cisco.streambed.identity.SecretStore. Secret stores can come in many forms and are selected by using a com.cisco.streambed.identity.SecretStore.Provider. See the streambed.identity.iox package for one such implementation.

  • package lora
  • package mqttgateway

    A streambed service that can be dynamically configured to publish and subscribe to sensor events and their meta data.

    A streambed service that can be dynamically configured to publish and subscribe to sensor events and their meta data. An HTTP API is provided as a control plane.

  • package storage

    Storage provides mechanisms to persist and retrieve arbitrary data.

    Storage provides mechanisms to persist and retrieve arbitrary data. This complements com.cisco.streambed.durablequeue.DurableQueue and can be used a snapshotting mechanism, a common pattern in event sourcing and CQRS systems.

    By default, an implementation using the local filesystem is provided. E.g. see "com.cisco.streambed.storage.fs.FileSystemRawStorage" elsewhere.

  • package telemetry

    Metrics and tracing functionality.

    Metrics and tracing functionality. Leverages the reactive-streams-telemetry project.

  • package testkit

    Various utilities to support streambed based tests

  • Application
  • ApplicationContext
  • ApplicationProcess
  • HexString
  • LogbackConfigurator
  • UuidOps
p

com.cisco

streambed

package streambed

The base package of the Streambed library. Of note is the com.cisco.streambed.Application suite of types. These types conveniently establish a streambed environment for an application.

Sample usage from Java:

/**
 * Bootstraps our application and handles signals
 */
public class MyServerEntryPoints {
    private static ApplicationProcess applicationProcess = null;

    public static void main(String[] args) {
        applicationProcess = new ApplicationProcess(new MyServer());
        applicationProcess.main(args);
    }

    public static void trap(int signal) {
      if (applicationProcess != null) {
            applicationProcess.trap(signal);
        }
    }
}

...with MyServer being declared as:

public class MyServer extends Application {
    @Override
    public void main(String[] args, ApplicationContext context) {
      ..
    }
}

The equivalent in Scala:

object MyServerEntryPoints {
  private lazy val applicationProcess = ApplicationProcess(MyServer)

  def main(args: Array[String]): Unit =
    applicationProcess.main(args)

  def trap(signal: Int): Unit =
    applicationProcess.trap(signal)
}

...with MyServer being declared as:

object MyServer extends Application {
  override def main(args: Array[String], applicationContext: ApplicationContext): Unit = {
    ..
  }
}

The essential idea is that a regular JVM entry point (MyServerEntryPoints), establishes a com.cisco.streambed.ApplicationProcess of a class named MyServer. The trap method is used by Landlord for whenever an operating systemm signal is sent to the process. My extending com.cisco.streambed.Application, a com.cisco.streambed.ApplicationContext is provided by Streambed, containing almost all of what an application will require in order to startup (an actor system, metrics, logging...). The resources provided within the context are also automatically released on exit.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. streambed
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Package Members

  1. package controlplane

    Generic meta data event declarations so that observations, and other things, can be made known to the system as a whole.

  2. package crypto

    Utilities that abstract crypto functions, such as encoding/decoding given a salt.

  3. package durablequeue

    The com.cisco.streambed.durablequeue.DurableQueue is at the heart of streambed.

    The com.cisco.streambed.durablequeue.DurableQueue is at the heart of streambed. Streambed programs are essentially formed around the durable queue. Use a com.cisco.streambed.durablequeue.DurableQueue.Provider to declare the type of queue you require. See the package doc for Streambed's ChronicleQueue for an example.

  4. package http

    High level Akka http utilities e.g.

    High level Akka http utilities e.g. making it easier to bind and handle an HTTP port with a TLS certificate as per com.cisco.streambed.http.HttpServerConfig.

  5. package identity

    Identity management inspired by Hashicorp Vault's secret storage model.

    Identity management inspired by Hashicorp Vault's secret storage model. com.cisco.streambed.identity.Principal objects represent a entity that has attempted to authenticate. An authenticated entity yields a com.cisco.streambed.identity.Principal.AuthenticationToken by which secrets can then be requested against a com.cisco.streambed.identity.SecretStore. Secret stores can come in many forms and are selected by using a com.cisco.streambed.identity.SecretStore.Provider. See the streambed.identity.iox package for one such implementation.

  6. package lora
  7. package mqttgateway

    A streambed service that can be dynamically configured to publish and subscribe to sensor events and their meta data.

    A streambed service that can be dynamically configured to publish and subscribe to sensor events and their meta data. An HTTP API is provided as a control plane.

  8. package storage

    Storage provides mechanisms to persist and retrieve arbitrary data.

    Storage provides mechanisms to persist and retrieve arbitrary data. This complements com.cisco.streambed.durablequeue.DurableQueue and can be used a snapshotting mechanism, a common pattern in event sourcing and CQRS systems.

    By default, an implementation using the local filesystem is provided. E.g. see "com.cisco.streambed.storage.fs.FileSystemRawStorage" elsewhere.

  9. package telemetry

    Metrics and tracing functionality.

    Metrics and tracing functionality. Leverages the reactive-streams-telemetry project.

  10. package testkit

    Various utilities to support streambed based tests

Type Members

  1. abstract class Application extends AnyRef

    A Streambed application

  2. final class ApplicationContext extends AnyRef

    An application context provides a Streambed based application with all that it needs to operate i.e.

    An application context provides a Streambed based application with all that it needs to operate i.e. identity services, metrics services etc.

  3. class ApplicationProcess extends AnyRef

    Processes an application, akin to an operating system process.

    Processes an application, akin to an operating system process.

    Sets up the application context and invokes the main and trap methods of a streambed application while also providing the default handling around termination.

    Annotations
    @SuppressWarnings()
  4. class LogbackConfigurator extends ContextAwareBase with Configurator

    Provides the basic configuration for Logback for streambed applications.

    Provides the basic configuration for Logback for streambed applications. In particular, we take care in provide a console configuration that avoids blocking on stdout/err as this can halt an application.

Value Members

  1. object ApplicationProcess
  2. object HexString

    Utilities for representing values as hexstrings and to be able to parse hex strings as values

  3. object UuidOps

    Complements the JDK java.util.UUID class, providing additional methods to generate V5 IDs.

Inherited from AnyRef

Inherited from Any

Ungrouped