Skip to content

Latest commit

 

History

History
155 lines (98 loc) · 5.17 KB

development.md

File metadata and controls

155 lines (98 loc) · 5.17 KB

Development

Configuring LASSO

For further configuration options (i.e., system properties like -Dlasso.workspace.root=/some/path) see:

Development & Debugging (IntelliJ IDEA)

  1. Clone this repository
  2. Click File->Open select your cloned repository to import all modules

Run LASSO

  1. Run LASSO platform in embedded (standalone) mode (service module):
# Edit run configuration in your IDE to
de.uni_mannheim.swt.lasso.service.app.LassoApplication
Embedded Mode
  • -Dcluster.embedded=true - sets the platfrom into standalone mode in which a local worker node is started in addition to the manager node
  • -Dusers=classpath:/users.json - points to user accounts
  • -Dcorpus=classpath:/corpus.json - points to the current executable corpus configurations
code2vec

If text-based search is used, the following method name vectors from code2vec need to be present

Testing LASSO

Note: Depending on the module, unit tests are either written in JUnit4 or JUnit5.

Action, script and system (integration tests) are located in module service:

  • de.uni_mannheim.swt.lasso.service.systemtests.integration

Note: Some packages come with their own set of tests.

Note: Integration tests run in embedded mode (manager + worker nodes are deployed on the same machine).

Make sure that the following properties are passed (see above)

  • -Dusers=classpath:/users.json - points to user accounts
  • -Dcorpus=classpath:/corpus.json - points to the current executable corpus configurations
Running Ignite with Java 11 or later

see https://ignite.apache.org/docs/latest/quick-start/java#running-ignite-with-java-11-or-later

--add-opens=java.base/jdk.internal.access=ALL-UNNAMED
--add-opens=java.base/jdk.internal.misc=ALL-UNNAMED
--add-opens=java.base/sun.nio.ch=ALL-UNNAMED
--add-opens=java.base/sun.util.calendar=ALL-UNNAMED
--add-opens=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED
--add-opens=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED
--add-opens=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED
--add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED
--add-opens=java.base/java.io=ALL-UNNAMED
--add-opens=java.base/java.nio=ALL-UNNAMED
--add-opens=java.base/java.net=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED
--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED
--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.lang.invoke=ALL-UNNAMED
--add-opens=java.base/java.math=ALL-UNNAMED
--add-opens=java.sql/java.sql=ALL-UNNAMED
--add-opens=java.base/java.lang.reflect=ALL-UNNAMED
--add-opens=java.base/java.time=ALL-UNNAMED
--add-opens=java.base/java.text=ALL-UNNAMED
--add-opens=java.management/sun.management=ALL-UNNAMED
--add-opens java.desktop/java.awt.font=ALL-UNNAMED

Main Integration Points

engine module:

  • LASSO actions: de.uni_mannheim.swt.lasso.engine.action.DefaultAction and de.uni_mannheim.swt.lasso.engine.action.maven.MavenAction for Maven-based actions.
  • LASSO record collectors: de.uni_mannheim.swt.lasso.engine.collect.RecordCollector

Note: Many LASSO Actions and examples of LASSO's Action API can be found in de.uni_mannheim.swt.lasso.engine.action.*.

LASSO (RESTful) API

The API is secured using bearer tokens (jwt + Spring Security).

For interactive API testing, swagger-ui (OpenAPI V3) is available

The RESTful API can be tested directly in the swagger UI. First sign in using /auth/signin to obtain a bearer token and then "Authorize" (top-right button).

LASSO Database (User/Workspace Model Persistence)

User and workspace descriptions are stored in an embedded database.

LSL (Lasso Scripting Language)

To enable DAG visualization (for debugging purposes), graphviz is required (used by plantuml):

  • apt install graphviz

LASSO Dashboard - Webapp (GUI)

LASSO webui (current)

An Angular 16 (https://angular.io/) web application using Material (https://material.angular.io/).

It is located in webui.

Start the test server with Angular CLI:

./webui/search/SERVE.sh

LASSO's service URL can be defined in environments/.

nodejs and npm are automatically downloaded as part of webui's pom.xml.

URLs
Out of Memory Issues

On some machines, nodejs may run into out of memory issues, see

To fix it, modify

  • frontend/lasso-app/package.json#L7

and set the following

"build": "node --max_old_space_size=4096 ./node_modules/.bin/ng build"