update odlux and featureaggregator

v2 update odlux and featureaggregator bundles

Issue-ID: SDNC-1008
Signed-off-by: herbert <herbert.eiselt@highstreet-technologies.com>
Change-Id: I0018d7bfa3a0e6896c1b210b539a574af9808e22
Signed-off-by: herbert <herbert.eiselt@highstreet-technologies.com>
diff --git a/sdnr/wt/odlux/framework/webpack.config.js b/sdnr/wt/odlux/framework/webpack.config.js
new file mode 100644
index 0000000..578a0ae
--- /dev/null
+++ b/sdnr/wt/odlux/framework/webpack.config.js
@@ -0,0 +1,203 @@
+/**

+ * ============LICENSE_START========================================================================

+ * ONAP : ccsdk feature sdnr wt odlux

+ * =================================================================================================

+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.

+ * =================================================================================================

+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except

+ * in compliance with the License. You may obtain a copy of the License at

+ *

+ * http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing, software distributed under the License

+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express

+ * or implied. See the License for the specific language governing permissions and limitations under

+ * the License.

+ * ============LICENSE_END==========================================================================

+ */

+/**

+ * Webpack 4 configuration file

+ * see https://webpack.js.org/configuration/

+ * see https://webpack.js.org/configuration/dev-server/

+ */

+

+"use strict";

+

+const path = require("path");

+const webpack = require("webpack");

+const CopyWebpackPlugin = require("copy-webpack-plugin");

+const requirejsPlugin = require('requirejs-webpack-plugin');

+const TerserPlugin = require('terser-webpack-plugin');

+

+// const __dirname = (path => path.replace(/^([a-z]\:)/, c => c.toUpperCase()))(process.__dirname());

+

+module.exports = (env) => {

+  const distPath = path.resolve(__dirname, env === "release" ? "." : "..", "dist");

+  const frameworkPath = path.resolve(__dirname, env === "release" ? "." : "..", "dist");

+  return [{

+    name: "Client",

+    mode: "none", //disable default behavior

+    target: "web",

+

+    context: path.resolve(__dirname, "src"),

+

+    entry: {

+      app: [

+        "./app.tsx",

+        "./services",

+        "./components/material-table",

+        "./components/material-ui",

+        "./utilities/elasticSearch",

+        "./models"],

+    },

+

+    devtool: env === "release" ? false : "source-map",

+

+    resolve: {

+      extensions: [".ts", ".tsx", ".js", ".jsx"]

+    },

+

+    output: {

+      path: distPath,

+      library: "[name]", // related to webpack.DllPlugin::name

+      libraryTarget: "umd2",

+      filename: "[name].js",

+      chunkFilename: "[name].js"

+    },

+

+    module: {

+      rules: [{

+        test: /\.tsx?$/,

+        exclude: /node_modules/,

+        use: [{

+          loader: "babel-loader"

+        }, {

+          loader: "ts-loader"

+        }]

+      }, {

+        test: /\.jsx?$/,

+        exclude: /node_modules/,

+        use: [{

+          loader: "babel-loader"

+        }]

+      }, {

+        test: /\.(png|gif|jpg|svg)$/,

+        use: [{

+          loader: 'url-loader',

+          options: {

+            limit: 10000,

+            name: './images/[hash].[ext]'

+          }

+        }]

+      }]

+    },

+

+    optimization: {

+      noEmitOnErrors: true,

+      namedModules: env !== "release",

+      minimize: env === "release",

+      minimizer: env !== "release" ? [] : [new TerserPlugin({

+        terserOptions: {

+          mangle: {

+            reserved: ["./app.tsx"]

+          },

+          warnings: false, // false, true, "verbose"

+          compress: {

+            drop_console: true,

+            drop_debugger: true,

+          }

+        }

+      })],

+    },

+

+    plugins: [

+      new CopyWebpackPlugin([{

+        from: '../../node_modules/requirejs/require.js',

+        to: '.'

+      }, {

+        from: './favicon.ico',

+        to: '.'

+      }, {

+        from: env === "release" ? './index.html' : 'index.dev.html',

+        to: './index.html'

+      }]),

+      new requirejsPlugin({

+        path: distPath,

+        filename: 'config.js',

+        baseUrl: '',

+        pathUrl: '',

+        processOutput: function (assets) {

+          return 'require.config(' + JSON.stringify(assets, null, 2) + ')';

+        }

+      }),

+      // new HtmlWebpackPlugin({

+      //   filename: "index.html",

+      //   template: "./index.html",

+      //   inject: "head"

+      // }),

+      // new HtmlWebpackIncludeAssetsPlugin({

+      //    assets: ['vendor.js'],

+      //    append: false

+      // }),

+      new webpack.DllReferencePlugin({

+        context: path.resolve(__dirname, "src"),

+        manifest: require(path.resolve(frameworkPath, "vendor-manifest.json")),

+        sourceType: "umd2"

+      }),

+      new webpack.DllPlugin({

+        context: path.resolve(__dirname, "src"),

+        name: "[name]",

+        path: path.resolve(distPath, "[name]-manifest.json")

+      }),

+      ...(env === "release") ? [

+        new webpack.DefinePlugin({

+          "process.env": {

+            NODE_ENV: "'production'",

+            VERSION: JSON.stringify(require("./package.json").version)

+          }

+        }),

+      ] : [

+          new webpack.HotModuleReplacementPlugin(),

+          new webpack.DefinePlugin({

+            "process.env": {

+              NODE_ENV: "'development'",

+              VERSION: JSON.stringify(require("./package.json").version)

+            }

+          }),

+          new webpack.WatchIgnorePlugin([

+            /css\.d\.ts$/,

+            /less\.d\.ts$/

+          ])

+        ]

+    ],

+

+    devServer: {

+      public: "http://localhost:3100",

+      contentBase: distPath,

+

+      compress: true,

+      headers: {

+        "Access-Control-Allow-Origin": "*"

+      },

+      host: "0.0.0.0",

+      port: 3100,

+      disableHostCheck: true,

+      historyApiFallback: true,

+      inline: true,

+      hot: false,

+      quiet: false,

+      stats: {

+        colors: true

+      },

+      proxy: {

+        "/oauth2/**/*": {

+          target: "http://10.20.6.29:48181",

+          secure: false

+        }

+      }

+    }

+

+  }];

+}

+

+