diff options
Diffstat (limited to 'sdnr/wt/odlux/README.md')
-rw-r--r-- | sdnr/wt/odlux/README.md | 259 |
1 files changed, 259 insertions, 0 deletions
diff --git a/sdnr/wt/odlux/README.md b/sdnr/wt/odlux/README.md new file mode 100644 index 000000000..a0b23fea2 --- /dev/null +++ b/sdnr/wt/odlux/README.md @@ -0,0 +1,259 @@ +# 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. + |