Add DCAE MOD design tool project
[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 $NIFI_BASE_DIR/nifi-toolkit-current/lib/nifi-client-dto-$NIFI_VERSION.jar \
40     org/apache/nifi/web/api/dto/FlowConfigurationDTO*.class
41 jar uf $TARGETS/META-INF/bundled-dependencies/nifi-jetty-$NIFI_VERSION.jar \
42     org/apache/nifi/web/server/JettyServer*.class
43 jar uf $NIFI_BASE_DIR/nifi-current/lib/nifi-properties-$NIFI_VERSION.jar \
44     org/apache/nifi/util/NiFiProperties*.class
45 jar uf $NIFI_BASE_DIR/nifi-current/lib/nifi-runtime-$NIFI_VERSION.jar \
46     org/apache/nifi/NiFi*.class
47 jar uf $NIFI_BASE_DIR/nifi-toolkit-current/lib/nifi-framework-core-api-$NIFI_VERSION.jar \
48     org/apache/nifi/controller/AbstractPort*.class
49 jar uf $TARGETS/META-INF/bundled-dependencies/nifi-framework-nar-loading-utils-$NIFI_VERSION.jar \
50     org/apache/nifi/nar/DCAEClassLoaders*.class \
51     org/apache/nifi/nar/DCAEAutoLoader*.class
52 # patch war files
53 cd $PATCHES
54 jar uf $TARGETS/META-INF/bundled-dependencies/nifi-web-api-$NIFI_VERSION.war \
55     WEB-INF/classes/org/apache/nifi/web/StandardNiFiServiceFacade*.class \
56     WEB-INF/classes/org/apache/nifi/web/api/dto/DtoFactory*.class \
57     WEB-INF/classes/org/apache/nifi/web/dao/impl/StandardConnectionDAO*.class
58 set -f
59 jar xf $TARGETS/META-INF/bundled-dependencies/nifi-web-ui-$NIFI_VERSION.war \
60     css/nf-canvas-all.css \
61     js/nf/canvas/nf-canvas-all.js \
62     js/nf/summary/nf-summary-all.js
63 rm -f \
64     css/nf-canvas-all.css.gz \
65     js/nf/canvas/nf-canvas-all.js.gz \
66     js/nf/summary/nf-summary-all.js.gz
67 sed -i \
68     -e '/graph-controls/{r navigation-min.css' -e 'd}' \
69     css/nf-canvas-all.css
70 sed -i \
71     -e '/process-group-up-to-date/{r nf-process-group-min.js' -e 'd}' \
72     -e '/div.available-relationship/{r nf-connection-configuration-min.js' -e 'd}' \
73     -e '/nf.FlowVerison/{r nf-flow-version-min.js' -e 'd}' \
74     -e '/controllerConfig/{r nf-settings-min.js' -e 'd}' \
75     -e '/this.breadcrumbs/{r nf-ng-breadcrumbs-controller-min.js' -e 'd}' \
76     -e '/processor-types-table/{r nf-ng-processor-component-min.js' -e 'd}' \
77     js/nf/canvas/nf-canvas-all.js
78 sed -i \
79     -e '/controllerConfig/{r nf-settings-min.js' -e 'd}' \
80     js/nf/summary/nf-summary-all.js
81 gzip -k \
82     css/nf-canvas-all.css \
83     js/nf/canvas/nf-canvas-all.js \
84     js/nf/summary/nf-summary-all.js
85 jar uf $TARGETS/META-INF/bundled-dependencies/nifi-web-ui-$NIFI_VERSION.war \
86     $(find WEB-INF/classes/org/apache/jsp/WEB_002dINF WEB-INF/pages WEB-INF/partials css js images -type f -print)
87 # patch scripts
88 cp common.sh start.sh $NIFI_BASE_DIR/scripts/
89 # patch nar files
90 cd $TARGETS
91 cp $NIFI_BASE_DIR/nifi-toolkit-current/lib/nifi-client-dto-$NIFI_VERSION.jar \
92     META-INF/bundled-dependencies/nifi-client-dto-$NIFI_VERSION.jar
93 jar uf $NIFI_BASE_DIR/nifi-current/lib/nifi-site-to-site-reporting-nar-$NIFI_VERSION.nar \
94     META-INF/bundled-dependencies/nifi-client-dto-$NIFI_VERSION.jar
95 cp $NIFI_BASE_DIR/nifi-toolkit-current/lib/nifi-framework-core-api-$NIFI_VERSION.jar \
96     META-INF/bundled-dependencies/nifi-framework-core-api-$NIFI_VERSION.jar
97 jar uf $NIFI_BASE_DIR/nifi-current/lib/nifi-framework-nar-$NIFI_VERSION.nar \
98     META-INF/bundled-dependencies/nifi-client-dto-$NIFI_VERSION.jar \
99     META-INF/bundled-dependencies/nifi-framework-core-api-$NIFI_VERSION.jar \
100     META-INF/bundled-dependencies/nifi-framework-nar-loading-utils-$NIFI_VERSION.jar \
101     META-INF/bundled-dependencies/nifi-jetty-$NIFI_VERSION.jar \
102     META-INF/bundled-dependencies/nifi-web-api-$NIFI_VERSION.war \
103     META-INF/bundled-dependencies/nifi-web-ui-$NIFI_VERSION.war
104 cp $NIFI_BASE_DIR/nifi-current/lib/nifi-properties-$NIFI_VERSION.jar \
105     $NIFI_BASE_DIR/nifi-toolkit-current/lib/nifi-properties-$NIFI_VERSION.jar
106 echo Success
107 exit 0