aboutsummaryrefslogtreecommitdiffstats
path: root/ajsc-aai/src/main/scripts/yangToJava.sh
diff options
context:
space:
mode:
authorSteve Smokowski <ss835w@att.com>2017-02-09 15:27:43 -0500
committerSteve Smokowski <ss835w@att.com>2017-02-09 15:28:15 -0500
commit4c790f64daf7822de00405140d17e08f296a642f (patch)
tree1a608a463115640bc59260eef90a08a70c93880c /ajsc-aai/src/main/scripts/yangToJava.sh
parent2f3dcb75d2f658fd7af04ea908c70c5104c2b9ef (diff)
Initial OpenECOMP A&AI commit
Change-Id: I8b06519995d9dc0f220b80a6d9a71865b23e4edb Signed-off-by: Steve Smokowski <ss835w@att.com>
Diffstat (limited to 'ajsc-aai/src/main/scripts/yangToJava.sh')
-rw-r--r--ajsc-aai/src/main/scripts/yangToJava.sh117
1 files changed, 117 insertions, 0 deletions
diff --git a/ajsc-aai/src/main/scripts/yangToJava.sh b/ajsc-aai/src/main/scripts/yangToJava.sh
new file mode 100644
index 0000000..ac10e7d
--- /dev/null
+++ b/ajsc-aai/src/main/scripts/yangToJava.sh
@@ -0,0 +1,117 @@
+#!/bin/bash
+
+###
+# ============LICENSE_START=======================================================
+# org.openecomp.aai
+# ================================================================================
+# Copyright (C) 2017 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=========================================================
+###
+
+#check system vars
+: ${AAI_HOME:?"AAI_HOME must be set. This is typically your git root/aai-webapp/all/src"}
+: ${SCRIPT_HOME:?"SCRIPT_HOME must be set. This is typically your git root/packages/scripts"}
+: ${YANG_OUTPUT:?"YANG_OUTPUT must be set. This should be a temporary directory outside of your git root."}
+: ${REV:?"REV must be set. The format is vX where X is the version you'd like to create."}
+
+usage() {
+ echo "-b [use defaults for all prompts] --help [display help]"
+}
+SKIP=false
+while getopts ":b-" opt; do
+ case $opt in
+ b)
+ echo "skipping prompts"
+ SKIP=true
+ ;;
+ \?)
+ echo "Invalid option: -$OPTARG" >&2
+ usage
+ exit 1
+ ;;
+ -)
+ case "${OPTARG}" in
+ help)
+ usage
+ exit 1
+ ;;
+ *)
+ usage
+ exit 1
+ ;;
+ esac;;
+ *)
+ usage
+ exit 1
+ ;;
+ esac
+done
+
+
+YANGDIR=$AAI_HOME/main/yang/$REV
+cd $YANGDIR
+
+if [ ! -d "$YANG_OUTPUT/xsd" ]; then
+ mkdir $YANG_OUTPUT/xsd
+fi
+
+for i in *.yang ; do x=`echo $i | cut -d"." -f 1`; echo $i " " $x; pyang -f xsd $i > $YANG_OUTPUT/xsd/$x.xsd; done
+
+cd $AAI_HOME/main/java/
+javac org/openecomp/aai/util/FixXSDNew.java
+java org.openecomp.aai.util.FixXSDNew
+
+rm org/openecomp/aai/util/FixXSDNew.class
+cd $YANG_OUTPUT/xsd
+
+$SCRIPT_HOME/make_refs_in_xsd.pl fixedup.xsd > aai$REV-corrected.xsd
+
+echo "compiling class files..."
+xjc -p org.openecomp.aai.domain.yang -b $AAI_HOME/main/yang/$REV/bindings.xml aai$REV-corrected.xsd
+
+echo "done!"
+cd $YANG_OUTPUT/xsd/org/openecomp/aai/domain/yang/
+
+if [ ! $SKIP = true ]; then
+ read -p "Remove relationship classes? (N/y)" choice
+else
+ choice="N"
+fi
+case "$choice" in
+ y|Y ) echo "removing..."
+ rm -v Relationship*
+ ;;
+ * ) echo "skipping removal"
+ ;;
+esac
+
+echo "fixing yang classes via perl script..."
+for i in *.java; do $SCRIPT_HOME/fix_yang_classes.pl -n "http://org.openecomp.aai.inventory/$REV" $i > $i.new; mv $i $i.bak; mv $i.new $i; done
+
+if [ ! $SKIP = true ]; then
+ read -p "Copy generated classes into git home? (Y/n)" choice
+else
+ choice="Y"
+fi
+case "$choice" in
+ n|N ) echo "classes are at $YANG_OUTPUT";;
+ * ) echo "moving files..."
+ cp -fv *.java $AAI_HOME/main/java/org/openecomp/aai/domain/yang
+ ;;
+esac
+
+echo "generation complete"
+exit 1
+