Link DCAE MOD design tool to Acumos Adapter
[dcaegen2/platform.git] / mod / designtool / designtool-web / sh / applypatches.sh
1 #!/bin/bash
2 # ============LICENSE_START=====================================================
3 # Copyright (c) 2020 AT&T Intellectual Property. All rights reserved.
4 # ==============================================================================
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 #      http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 # ============LICENSE_END=======================================================
17
18 set -eufx -o pipefail
19
20 PATCH_BINARY=/tmp/patches/designtool-web-$1.war
21 NIFI_VERSION=$2
22 PATCHES=/tmp/patches
23 TARGETS=/tmp/targets
24 mkdir -p $PATCHES $TARGETS
25 # extract patches
26 cd $PATCHES
27 jar xf $PATCH_BINARY
28 rm $PATCH_BINARY
29 # extract jars and wars to be patched
30 cd $TARGETS
31 jar xf $NIFI_BASE_DIR/nifi-current/lib/nifi-framework-nar-$NIFI_VERSION.nar \
32     META-INF/bundled-dependencies/nifi-framework-nar-loading-utils-$NIFI_VERSION.jar \
33     META-INF/bundled-dependencies/nifi-jetty-$NIFI_VERSION.jar \
34     META-INF/bundled-dependencies/nifi-web-api-$NIFI_VERSION.war \
35     META-INF/bundled-dependencies/nifi-web-ui-$NIFI_VERSION.war
36 # patch jar files
37 cd $PATCHES/WEB-INF/classes
38 set +f
39 jar uf $TARGETS/META-INF/bundled-dependencies/nifi-jetty-$NIFI_VERSION.jar \
40     org/apache/nifi/web/server/JettyServer*.class
41 jar uf $NIFI_BASE_DIR/nifi-current/lib/nifi-properties-$NIFI_VERSION.jar \
42     org/apache/nifi/util/NiFiProperties*.class
43 jar uf $NIFI_BASE_DIR/nifi-toolkit-current/lib/nifi-framework-core-api-$NIFI_VERSION.jar \
44     org/apache/nifi/controller/AbstractPort*.class
45 jar uf $TARGETS/META-INF/bundled-dependencies/nifi-framework-nar-loading-utils-$NIFI_VERSION.jar \
46     org/apache/nifi/nar/DCAEClassLoaders*.class \
47     org/apache/nifi/nar/DCAEAutoLoader*.class
48 # patch war files
49 cd $PATCHES
50 jar uf $TARGETS/META-INF/bundled-dependencies/nifi-web-api-$NIFI_VERSION.war \
51     WEB-INF/classes/org/apache/nifi/web/api/dto/DtoFactory*.class \
52     WEB-INF/classes/org/apache/nifi/web/dao/impl/StandardConnectionDAO*.class
53 set -f
54 jar xf $TARGETS/META-INF/bundled-dependencies/nifi-web-ui-$NIFI_VERSION.war \
55     css/nf-canvas-all.css \
56     js/nf/canvas/nf-canvas-all.js \
57     js/nf/summary/nf-summary-all.js
58 rm -f \
59     css/nf-canvas-all.css.gz \
60     js/nf/canvas/nf-canvas-all.js.gz \
61     js/nf/summary/nf-summary-all.js.gz
62 sed -i \
63     -e '/graph-controls/{r navigation-min.css' -e 'd}' \
64     css/nf-canvas-all.css
65 sed -i \
66     -e '/process-group-up-to-date/{r nf-process-group-min.js' -e 'd}' \
67     -e '/div.available-relationship/{r nf-connection-configuration-min.js' -e 'd}' \
68     -e '/nf.FlowVerison/{r nf-flow-version-min.js' -e 'd}' \
69     -e '/controllerConfig/{r nf-settings-min.js' -e 'd}' \
70     -e '/this.breadcrumbs/{r nf-ng-breadcrumbs-controller-min.js' -e 'd}' \
71     -e '/Canvas.GlobalMenuCtrl=/{r nf-ng-canvas-global-menu-controller-min.js' -e 'd}' \
72     -e '/processor-types-table/{r nf-ng-processor-component-min.js' -e 'd}' \
73     js/nf/canvas/nf-canvas-all.js
74 sed -i \
75     -e '/controllerConfig/{r nf-settings-min.js' -e 'd}' \
76     js/nf/summary/nf-summary-all.js
77 gzip -k \
78     css/nf-canvas-all.css \
79     js/nf/canvas/nf-canvas-all.js \
80     js/nf/summary/nf-summary-all.js
81 jar uf $TARGETS/META-INF/bundled-dependencies/nifi-web-ui-$NIFI_VERSION.war \
82     $(find WEB-INF/classes/org/apache/jsp/WEB_002dINF WEB-INF/pages WEB-INF/partials css js images fonts -type f -print)
83 # patch scripts
84 cp common.sh start.sh $NIFI_BASE_DIR/scripts/
85 # patch nar files
86 cd $TARGETS
87 cp $NIFI_BASE_DIR/nifi-toolkit-current/lib/nifi-framework-core-api-$NIFI_VERSION.jar \
88     META-INF/bundled-dependencies/nifi-framework-core-api-$NIFI_VERSION.jar
89 jar uf $NIFI_BASE_DIR/nifi-current/lib/nifi-framework-nar-$NIFI_VERSION.nar \
90     META-INF/bundled-dependencies/nifi-framework-core-api-$NIFI_VERSION.jar \
91     META-INF/bundled-dependencies/nifi-framework-nar-loading-utils-$NIFI_VERSION.jar \
92     META-INF/bundled-dependencies/nifi-jetty-$NIFI_VERSION.jar \
93     META-INF/bundled-dependencies/nifi-web-api-$NIFI_VERSION.war \
94     META-INF/bundled-dependencies/nifi-web-ui-$NIFI_VERSION.war
95 cp $NIFI_BASE_DIR/nifi-current/lib/nifi-properties-$NIFI_VERSION.jar \
96     $NIFI_BASE_DIR/nifi-toolkit-current/lib/nifi-properties-$NIFI_VERSION.jar
97 echo Success
98 exit 0