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