Versions Compared

Key

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

...

as you can see, we have to explicitly select version of the actor. An alternative approach would be importing actors by embedding version as a part of package (sort of: from actor_demo.1_0.actor_demo import wrapper). Anyway, there is no simple way of making the very same workflow to be compatible with different versions of actor without altering workflow's code, environment variables, whatever the way of selecting the version we choose. 

...

Alternative approach: One common installation of

...

Idea

...

actor resources

...

Layout of actor directory

TBD (the same as previously?)

IMAS Workspace

Code Block
workspaces/
|-- workspaceX
|-- workspaceY
`-- workspaceZ
    |-- common
    |   |-- actor1
    |   |   `-- lib
    |   |       `-- libActor1.so
    |   |-- actor2
    |   |   `-- lib
    |   |       `-- libActor2.so
    |   `-- lib
    |       |-- libActor1.so -> ../actor1/lib/libActor1.so
    |       `-- libActor2.so -> ../actor2/lib/libActor2.so
    `-- imas
        |-- 3.23.2
        |   |-- actorA
        |   |   `-- lib
        |   |       `-- libActorA.so
        |   |-- actorB
        |   |   `-- lib
        |   |       `-- libActorB.so
        |   |-- actorC
        |   |   `-- lib
        |   |       `-- libActorC.so
        |   `-- lib
        |       |-- libActorA.so -> ../actorA/lib/libActorA.so
        |       |-- libActorB.so -> ../actorB/lib/libActorB.so
        |       `-- libActorC.so -> ../actorC/lib/libActorC.so
        `-- 3.24.0
            |-- actorA
            |   `-- lib
            |       `-- libActorA.so
            |-- actorB
            |   `-- lib
            |       `-- libActorB.so
            |-- actorD
            |   `-- lib
            |       `-- libActorD.so
            `-- lib
                |-- libActorA.so -> ../actorA/lib/libActorA.so
                |-- libActorB.so -> ../actorB/lib/libActorB.so
                `-- libActorD.so -> ../actorD/lib/libActorD.so

Workspace layout:

  • directory common - keeps all actors with no IMAS dependencies
  • directory imas/$IMAS_VERSION - keeps all actors build for given version of IMAS
  • directories common/lib and imas/$IMAS_VERSION/lib - keeps links to libraries (to simplify LD_LIBRARY_PATH )

Actor generation:

  • Generated code (wrapper) will be saved under $ACTIVE_WORKSPACE/imas/$IMAS_VERSION/<actor_name> 

Switching workspace

  • LD_LIBRARY_PATH = $ACTIVE_WORKSPACE/common/lib + $ACTIVE_WORKSPACE/imas/$IMAS_VERSION/lib
  • java.lib.path = $LD_LIBRARY_PATH
  • Kepler: rm target/* ? ant compile?

Scripts:

  • list workspaces
  • switch workspace
  • remove workspace
  • create workspace

Open points

...

  • The whole imas related directory ( $KEPLER/imas  )  ?

  • How to achieve this? Kepler module or just CLASSPATH?

...