Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Language extensions
    • Create a new language (not only for queries, could be a DSL for anything)
    • Create a new Odysseus Script Commands (#....)
    • Create a new Logical/PQL Operator
  • Processing function extensions
    • Create new datatypes
    • Create new stream object types
      • Data Handler
    • Create a new wrapper
      • Transport handler
      • Protocol handler
    • Create new functions for expressions and predicates
    • Create new aggregation functions
    • Create new operators
  • Create new schedulers and scheduling strategies
  • Create new meta data

Table of Contents

Some OSGi/Eclipse basics

  • Bundles
    • Aka plugin: An eclipse project
    • Each bundle has its own class loader
    • MANIFEST.MF: meta data for that bundle (name, version, imports, exports…)
    • In Odysseus: a module that encapsulates functions
  • Fragment
    • A special bundle that will not exist allone but together with a host bundle
    • Same class loader as host bundle
    • Used to extend host bundle
    • We do not use this anymore, better approach is declarative services
  • Declarative Services
    • OSGi way of dependency injection
    • Defined by so called components
    • Can provide functions by interfaces or use (bind/unbind) implementations by interfaces à examples later
  • Feature: a feature is a collection of bundles
    • Define a set of bundles, that belong together and builds some functionality (e.g. each wrapper has its own feature)
    • An update site provides features
    • A bundle can be part of many features

...

  • ls: shows all currently installed (declarative) services
  • Unsatisfied: Some dependencies cannot be found
  • Use comp <id> to determine missing dependencies

See also some newer slides


Setting up Setting up 

This section describes how to set up Eclipse and Odysseus for development.

New:

  • See also

...

1. Prerequisites

You will need the following tools:

...

Code Block
languagebash
// in your newRepo Folder!
git remote set-url origin <new url>

ODT

There is also a first approach for an eclipse plugin that could make processing easier. For this, install the Odysseus Development Tools from the following update site

...

You want to extend an existing plugin from Odysseus or extend the core system? Then, instead of cloning the empty template from Option 1, clone the repository of the plugin you want to develop on. If the plugin is hosted in our Bitbucket, you can probably find it in one of the projects in this list: https://git.swl.informatik.uni-oldenburg.de/projects . Look for example at the Odysseus, the Odysseus Incubation and Odysseus Wrapper projects. When you have found the repository you want to use, check it out and don't forget to clone the submodule to get the target platform definition and the standard products:

...

You now see a lot of compiler error. This is because the target platform ist is not set.

The target platform can be found in the project targetplatform.

...