summaryrefslogtreecommitdiffstats
path: root/mod/designtool/designtool-web/sh/applypatches.sh
blob: 0b20969c4826f91c6fd5ec3375d07ea9444c4c8c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/bin/bash
# ============LICENSE_START=====================================================
# Copyright (c) 2020 AT&T 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=======================================================

set -eufx -o pipefail

PATCH_BINARY=/tmp/patches/designtool-web-$1.war
NIFI_VERSION=$2
PATCHES=/tmp/patches
TARGETS=/tmp/targets
mkdir -p $PATCHES $TARGETS
# extract patches
cd $PATCHES
jar xf $PATCH_BINARY
rm $PATCH_BINARY
# extract jars and wars to be patched
cd $TARGETS
jar xf $NIFI_BASE_DIR/nifi-current/lib/nifi-framework-nar-$NIFI_VERSION.nar \
    META-INF/bundled-dependencies/nifi-framework-nar-loading-utils-$NIFI_VERSION.jar \
    META-INF/bundled-dependencies/nifi-jetty-$NIFI_VERSION.jar \
    META-INF/bundled-dependencies/nifi-web-api-$NIFI_VERSION.war \
    META-INF/bundled-dependencies/nifi-web-ui-$NIFI_VERSION.war
# patch jar files
cd $PATCHES/WEB-INF/classes
set +f
jar uf $TARGETS/META-INF/bundled-dependencies/nifi-jetty-$NIFI_VERSION.jar \
    org/apache/nifi/web/server/JettyServer*.class
jar uf $NIFI_BASE_DIR/nifi-current/lib/nifi-properties-$NIFI_VERSION.jar \
    org/apache/nifi/util/NiFiProperties*.class
jar uf $NIFI_BASE_DIR/nifi-toolkit-current/lib/nifi-framework-core-api-$NIFI_VERSION.jar \
    org/apache/nifi/controller/AbstractPort*.class
jar uf $TARGETS/META-INF/bundled-dependencies/nifi-framework-nar-loading-utils-$NIFI_VERSION.jar \
    org/apache/nifi/nar/DCAEClassLoaders*.class \
    org/apache/nifi/nar/DCAEAutoLoader*.class
# patch war files
cd $PATCHES
jar uf $TARGETS/META-INF/bundled-dependencies/nifi-web-api-$NIFI_VERSION.war \
    WEB-INF/classes/org/apache/nifi/web/api/dto/DtoFactory*.class \
    WEB-INF/classes/org/apache/nifi/web/dao/impl/StandardConnectionDAO*.class
set -f
jar xf $TARGETS/META-INF/bundled-dependencies/nifi-web-ui-$NIFI_VERSION.war \
    css/nf-canvas-all.css \
    js/nf/canvas/nf-canvas-all.js \
    js/nf/summary/nf-summary-all.js
rm -f \
    css/nf-canvas-all.css.gz \
    js/nf/canvas/nf-canvas-all.js.gz \
    js/nf/summary/nf-summary-all.js.gz
sed -i \
    -e '/graph-controls/{r navigation-min.css' -e 'd}' \
    css/nf-canvas-all.css
sed -i \
    -e '/process-group-up-to-date/{r nf-process-group-min.js' -e 'd}' \
    -e '/div.available-relationship/{r nf-connection-configuration-min.js' -e 'd}' \
    -e '/nf.FlowVerison/{r nf-flow-version-min.js' -e 'd}' \
    -e '/controllerConfig/{r nf-settings-min.js' -e 'd}' \
    -e '/this.breadcrumbs/{r nf-ng-breadcrumbs-controller-min.js' -e 'd}' \
    -e '/Canvas.GlobalMenuCtrl=/{r nf-ng-canvas-global-menu-controller-min.js' -e 'd}' \
    -e '/processor-types-table/{r nf-ng-processor-component-min.js' -e 'd}' \
    js/nf/canvas/nf-canvas-all.js
sed -i \
    -e '/controllerConfig/{r nf-settings-min.js' -e 'd}' \
    js/nf/summary/nf-summary-all.js
gzip -k \
    css/nf-canvas-all.css \
    js/nf/canvas/nf-canvas-all.js \
    js/nf/summary/nf-summary-all.js
jar uf $TARGETS/META-INF/bundled-dependencies/nifi-web-ui-$NIFI_VERSION.war \
    $(find WEB-INF/classes/org/apache/jsp/WEB_002dINF WEB-INF/pages WEB-INF/partials css js images fonts -type f -print)
# patch scripts
cp common.sh start.sh $NIFI_BASE_DIR/scripts/
# patch nar files
cd $TARGETS
cp $NIFI_BASE_DIR/nifi-toolkit-current/lib/nifi-framework-core-api-$NIFI_VERSION.jar \
    META-INF/bundled-dependencies/nifi-framework-core-api-$NIFI_VERSION.jar
jar uf $NIFI_BASE_DIR/nifi-current/lib/nifi-framework-nar-$NIFI_VERSION.nar \
    META-INF/bundled-dependencies/nifi-framework-core-api-$NIFI_VERSION.jar \
    META-INF/bundled-dependencies/nifi-framework-nar-loading-utils-$NIFI_VERSION.jar \
    META-INF/bundled-dependencies/nifi-jetty-$NIFI_VERSION.jar \
    META-INF/bundled-dependencies/nifi-web-api-$NIFI_VERSION.war \
    META-INF/bundled-dependencies/nifi-web-ui-$NIFI_VERSION.war
cp $NIFI_BASE_DIR/nifi-current/lib/nifi-properties-$NIFI_VERSION.jar \
    $NIFI_BASE_DIR/nifi-toolkit-current/lib/nifi-properties-$NIFI_VERSION.jar
echo Success
exit 0