(1) Download the simple example service-demo.zip
from https://wiki-bsse.ethz.ch/download/attachments/101197296/service-demo.zip?version=1&modificationDate=1380265520019
(2) Unzip it in the core plugins folder:
# ~/stage/openBIS/servers/core-plugins> unzip service-demo.zip
(3) Enable the new core plugin by editing the core-plugins.propeties
file:
# ~/stage/openBIS/servers/core-plugins> vi core-plugins.properties
Once edited this file has the following content:
enabled-modules = screening, service-demo #disabled-core-plugins = screening: disabled-core-plugins = screening:data-sources, screening:drop-boxes, screening:image-overview-plugins, screening:maintenance-tasks, screening:services, screening:dss-data-sources
(4) Restart openBIS:
# ~/stage/openBIS/servers/openBIS-server/jetty/logs> alldown.sh Stopping Data Store Server (not running - nothing to do) Shutting openBIS down... # ~/stage/openBIS/servers/openBIS-server/jetty/logs> allup.sh Starting openBIS... .........Done. Starting Data Store Server (pid 5918)
Info: During openBIS start, two new symlinks are created in the jetty webapp directory pointing to the two new installed wepapps from the “service-demo” example:
# ~/stage/openBIS/servers/openBIS-server/jetty/webapps/openbis/webapp> ls -al total 16 drwxr-xr-x 2 mx_nas mx-servers 4096 Oct 2 12:28 . drwxr-xr-x 9 mx_nas mx-servers 4096 Aug 20 17:41 .. lrwxrwxrwx 1 mx_nas mx-servers 118 Oct 2 12:28 aggregation -> /home/openbis/stage/openBIS/servers/openBIS-server/jetty/../../core-plugins/service-demo/1/as/webapps/aggregation/html lrwxrwxrwx 1 mx_nas mx-servers 116 Oct 2 12:28 ingestion -> /home/openbis/stage/openBIS/servers/openBIS-server/jetty/../../core-plugins/service-demo/1/as/webapps/ingestion/html
(5) Adapt webapp.js
:
# ~/stage/openBIS/servers/core-plugins/service-demo/1/as/webapps/aggregation/html> vi webapp.js # ~/stage/openBIS/servers/core-plugins/service-demo/1/as/webapps/ingestion/html> vi webapp.js
What to adapt:
In our case the hostname is infectx-stage.biozentrum.unibas.ch
:
openbisServer = new openbis('https://infectx-stage.biozentrum.unibas.ch/openbis/openbis', 'https://infectx-stage.biozentrum.unibas.ch/datastore_server');
To find out what the code of the data source is, either have a look at the service.properties
of the data store server, (key: data-store-server-code = DSS1
), or have a look at the openbis DB calling <openBIS_DB>=# select code from data_stores;
In our case tha value is dss-screening
:
openbisServer.createReportFromAggregationService("dss-screening", "example-aggregation-service", parameters, displayReturnedTable);
(6) For the ingestion service, adapt the script.py
script which registers a new sample into openBIS:
# ~/stage/openBIS/servers/core-plugins/service-demo/1/dss/reporting-plugins/example-ingestion-service> vi script.py
It is necessary to set an existing experiment and sample type.
In our case we set as experiment /BEE/VACCINIA_TEAM/VACCINIA-DU-K1
and as sample type CONTROL_WELL
:
sampleId = "/BEE/" + sampleCode sample = tr.createNewSample(sampleId, "CONTROL_WELL") exp = tr.getExperiment("/BEE/VACCINIA_TEAM/VACCINIA-DU-K1") sample.setExperiment(exp)
(7) The wepapps can be accessed at the URLs:
https://infectx-stage.biozentrum.unibas.ch/openbis/webapp/aggregation/
https://infectx-stage.biozentrum.unibas.ch/openbis/webapp/ingestion/
1. The lib should go into folder where the Jython script resides. Simply create a lib
folder and put all jars inside.
Here is an example:
# ~/openbis_example_wepapp/servers/core-plugins/appExample/1/dss/reporting-plugins/apiExample> ll lib/ total 17104 drwxr-xr-x 7 kohleman staff 238 Oct 9 17:23 ./ drwxr-xr-x 6 kohleman staff 204 Oct 9 17:25 ../ -rw-r--r--@ 1 kohleman staff 168586 Sep 27 14:34 cisd-hcscld.jar -rw-r--r--@ 1 kohleman staff 1252347 Sep 27 14:34 cisd-jhdf5-core.jar -rw-r--r--@ 1 kohleman staff 2852257 Sep 27 14:34 hdf5-linux-intel.jar -rw-r--r--@ 1 kohleman staff 2652865 Sep 27 14:34 hdf5-macosx-intel.jar -rw-r--r--@ 1 kohleman staff 1821318 Sep 27 14:34 hdf5-windows-intel.jar
2. Then restart openBIS. This creates links in the dss/lib
folder to those jars. For old version, this doesn't happen and the jars should be copied there directly.
3. In the jython script use the import command, for example:
from ch.ethz.sis.hcscld import CellLevelDataset
The * star does not work, you have to import each class separately.
4. And that is it! Use Java from Jython as in any other case.