Sample application showcasing usage of technologies such as:
For detailed overview, please see the following articles:
I. Mono version
1. Set up PostgreSQL database
Create database and user using PostgreSQL command line or GUI
If not already installed, install the postgresql-contrib package as that’s what’s required to use the gen_random_uuid() function; same function is available out-of-the-box on CockroachDB which is used for Kubernetes version
2. Set up RabbitMQ message broker
(optional) Set up RabbitMQ Web Management console – once set up it will be accessible via http://localhost:15672/ (u/p: guest/guest)
rabbitmq-plugins enable rabbitmq_management
3. Open configuration.json file residing in mono-app module in src/main/resources/OSGI-INF/configurator directory
org.apache.aries.tx.control.jpa.xa~ala PID, configure database, user name and passwordsoftware.into.ala.service.messaging PID, configure message broker host and port or leave as is to use defaultsorg.apache.aries.jax.rs.whiteboard.default PID, configure file storage location – this must match file storage location seen in software.into.ala.service.transcription PIDsoftware.into.ala.service.transcription PID, configure IBM Watson Speech to Text endpoint and API key – small footprint instances are free and sufficient to test drive this application; for more information see https://www.ibm.com/watson/services/speech-to-text/software.into.ala.service.linguistics PID, configure IBM Watson Tone Analyzer endpoint and API key – small footprint instances are free and sufficient to test drive this application; for more information see https://www.ibm.com/watson/services/tone-analyzer/II. Kubernetes version
1. Web application (k8-web-app module) – no configuration is necessary, unless you wish to use custom settings, i.e.
configuration.json file residing in k8-web-app module in src/main/resources/OSGI-INF/configurator directoryorg.apache.aries.tx.control.jpa.xa~ala PID – in Kubernetes version, both user and database are created automatically during cluster initialization, which also happens automatically during deploymentsoftware.into.ala.service.messaging PIDorg.apache.aries.jax.rs.whiteboard.default PID, e.g. file storage location2. Transcription application (k8-transcription-app module) – only IBM Watson configuration is required, i.e.
configuration.json file residing in k8-transcription-app module in src/main/resources/OSGI-INF/configurator directorysoftware.into.ala.service.transcription PID, configure IBM Watson Speech to Text endpoint and API key – small footprint instances are free and sufficient to test drive this application; for more information see https://www.ibm.com/watson/services/speech-to-text/3. Linguistics application (k8-linguistics-app module) – only IBM Watson configuration is required, i.e.
configuration.json file residing in k8-linguistics-app module in src/main/resources/OSGI-INF/configurator directorysoftware.into.ala.service.linguistics PID, configure IBM Watson Tone Analyzer endpoint and API key – small footprint instances are free and sufficient to test drive this application; for more information see https://www.ibm.com/watson/services/tone-analyzer/4. In main project POM
docker-registry property to use external Docker registry or set up a local Docker registry; for more information see https://docs.docker.com/registry/deploying/k8-maven.insecureRegistry property – this one is used for minikube automation and required if using local Docker registryk8-maven.memory and k8-maven.cpus properties as needed – this is used for minikube automation5. Set up and start Kubernetes cluster – e.g. minikube can be used to quickly set up local Kubernetes cluster; for more information see https://github.com/kubernetes/minikube
6. (optional) Customize Kubernetes descriptors for deploying cluster versions of RabbitMQ and CockroachDB as StatefulSets – these reside in k8-infra project, in src/main/k8 directory; for more information see:
I. Mono version
mvn install
II. Kubernetes version
Build project and Docker images, automatically pushing Docker images to configured repository
mvn -P k8 install
I. Mono version
1. Go to mono-app module directory and run
java -jar target/mono-app.jar
2. Open http://localhost:8080/spa/index.html in web browser
II. Kubernetes version
1. To deploy onto Kubernetes cluster from main project directory, run
mvn -P k8 deploy
2. Find IP and service port of ala-k8-web-app service – e.g. for minikube you can use
minikube service --url ala-k8-web-app
3. Open http://IP:SERVICEPORT/spa/index.html in web browser
I. Mono version
1. Deployment view

2. Component view

II. Kubernetes version
1. Deployment view

2. Component view



Java 8
OSGi Release 7 Core and Enterprise specifications implementations, including
Equinox OSGi container 3.13.100