summaryrefslogtreecommitdiffstats
path: root/sdnr/wt/odlux/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'sdnr/wt/odlux/README.md')
-rw-r--r--sdnr/wt/odlux/README.md260
1 files changed, 260 insertions, 0 deletions
diff --git a/sdnr/wt/odlux/README.md b/sdnr/wt/odlux/README.md
new file mode 100644
index 000000000..6e02db0e0
--- /dev/null
+++ b/sdnr/wt/odlux/README.md
@@ -0,0 +1,260 @@
+# Developing a ODLUX application
+
+## Prerequisites
+
+* Node: 8.10 or higher
+* Yarn: 1.12.3 or higher
+* Lerna: 3.10.7 or higher
+
+You can install these globally or let it be installed by maven due "mvn clean install"
+
+* Maven: 3 or higher
+* Java: 8 or higher
+
+## Dev-Environment Installation
+
+ * install NodeJS LTS https://nodejs.org/en/ or via packetmanager
+ * sudo npm install -g yarn
+ * sudo yarn global add lerna
+ * get framework from repository: git clone https://gerrit.onap.org/r/ccsdk/features
+ * in features/sdnr/wt/odlux you find a structure like this:
+ ```
+ odlux
+ |-apps
+ |-core
+ |-framework
+
+ ```
+ * go to features/sdnr/wt/odlux/apps and create your app:
+ ```
+ mvn archetype:generate -DarchetypeGroupId=org.onap.ccsdk.features.sdnr.wt \
+ -DarchetypeArtifactId=odlux-app-archetype \
+ -DgroupId=<groupId> \
+ -DartifactId=<artifactId> \
+ -Dversion=<version> \
+ -DappName=<applicationName>
+ ```
+
+ * your start folder for your web application is src/
+ * in src2/main/java are located the Java files and in src2/main/resources/ is the blueprint located
+ * with ```yarn start``` you can run your application due runtime in your application folder
+ * by default this will run on http://localhost:3100/index.html
+ * if you have added new dependencies you have to run ```lerna bootstrap``` in odlux/
+ * build your app for development version you can use ```yarn run build``` or ```yarn run build:dev```
+ * build for karaf with ```mvn clean install```
+
+
+## Including app into karaf environment
+
+ * copy maven repository files to karaf repository e.g.: ```cp ~/.m2/repository/path/of/groupId/artifactId $KARAF_HOME/system/path/of/groupId/```
+ * check if odlux-core is started in karaf console: ```feature:list | grep odlux```
+ * if not install: ```sdnr-wt-odlux-core-feature```
+ * start your app in karaf console: ```bundle:install -s mvn:<groupId>/<artifactId>/<version>```
+
+## Including into ONAP sdnc docker container
+
+ * add maven module to odlux/pom.xml
+ * add dependency to odlux/apps/app-feature/pom.xml and odlux/apps/app-installer/pom.xml
+ * build odlux/pom.xml
+ * this will automatically package your app into the packaged zip file of the installer
+
+## Details
+
+### Default menu positions
+
+ * from 0 for top to 999 for bottom.
+
+```
+0 Connect
+10 Fault
+20 Maintenance
+30 Configuration
+40 Protection
+50 Performance
+60 Security
+70 Inventory
+80 Topology
+90 Mediator
+100 Help
+```
+
+### blueprint.xml
+
+```
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
+ <reference id="loadersvc" availability="mandatory" activation="eager" interface="org.onap.ccsdk.features.sdnr.wt.odlux.model.bundles.OdluxBundleLoader"/>
+ <bean id="bundle" init-method="initialize" destroy-method="clean" class="org.onap.ccsdk.features.sdnr.wt.odlux.bundles.MyOdluxBundle">
+ <property name="loader" ref="loadersvc"/>
+ <property name="bundleName" value="demoApp"/>
+ <property name="index" value="999"/>
+ </bean>
+</blueprint>
+```
+ * bundleName defines the applicationName => default javascript file: <applicationName>.js
+ * index defines the menu position.
+
+### MyOdluxBundle.java
+
+ * is just for getting access to the resources of its bundle (implemented because of OSGi access restrictions)
+
+### pom.xml
+
+```
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>odlparent</artifactId>
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath />
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-odlux-app-demoApp</artifactId>
+ <version>0.4.1-SNAPSHOT</version>
+ <packaging>bundle</packaging>
+ <name>sdnr-wt-odlux-app-demoApp</name>
+ <licenses>
+ <license>
+ <name>Apache License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0</url>
+ </license>
+ </licenses>
+ <dependencies>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>sdnr-wt-odlux-core-model</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>sdnr-wt-odlux-core-provider</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <sourceDirectory>src2/main/java</sourceDirectory>
+ <plugins>
+ <plugin>
+ <artifactId>maven-clean-plugin</artifactId>
+ <configuration>
+ <filesets>
+ <fileset>
+ <directory>dist</directory>
+ <followSymlinks>false</followSymlinks>
+ </fileset>
+ <fileset>
+ <directory>node</directory>
+ <followSymlinks>false</followSymlinks>
+ </fileset>
+ <fileset>
+ <directory>node_modules</directory>
+ <followSymlinks>false</followSymlinks>
+ </fileset>
+ <fileset>
+ <directory>../node_modules</directory>
+ <followSymlinks>false</followSymlinks>
+ </fileset>
+ </filesets>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>add-test-source</id>
+ <phase>generate-test-sources</phase>
+ <goals>
+ <goal>add-test-source</goal>
+ </goals>
+ <configuration>
+ <sources>
+ <source>src2/test/java</source>
+ </sources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>com.github.eirslett</groupId>
+ <artifactId>frontend-maven-plugin</artifactId>
+ <version>1.8-SNAPSHOT</version>
+ <executions>
+ <execution>
+ <id>install node and yarn</id>
+ <goals>
+ <goal>install-node-and-yarn</goal>
+ </goals>
+ <!-- optional: default phase is "generate-resources" -->
+ <phase>initialize</phase>
+ <configuration>
+ <nodeVersion>v8.10.0</nodeVersion>
+ <yarnVersion>v1.12.3</yarnVersion>
+ </configuration>
+ </execution>
+ <execution>
+ <id>yarn build</id>
+ <goals>
+ <goal>yarn</goal>
+ </goals>
+ <configuration>
+ <arguments>run build</arguments>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+ <Import-Package>org.onap.ccsdk.features.sdnr.wt.odlux.model.*,com.opensymphony.*</Import-Package>
+ <Private-Package></Private-Package>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ <resources>
+ <resource>
+ <directory>dist</directory>
+ <targetPath>odlux</targetPath>
+ </resource>
+ <resource>
+ <directory>src2/main/resources</directory>
+ </resource>
+ <resource>
+ <directory>src2/test/resources</directory>
+ </resource>
+ </resources>
+ </build>
+ <pluginRepositories>
+ <pluginRepository>
+ <id>highstreet repo</id>
+ <url>https://cloud-highstreet-technologies.com/mvn/</url>
+ <snapshots>
+ <enabled>true</enabled>
+ <updatePolicy>always</updatePolicy>
+ </snapshots>
+ </pluginRepository>
+ </pluginRepositories>
+</project>
+your
+```
+
+* a modified frontend-maven-plugin installs node, yarn and (optionally lerna) to compile the typescript sources to javascript. These will be build into the dist folder.
+