# # Copyright 2017-present Open Networking Foundation # # 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. # # Bucklet to create Java Code from XSD using the 'xjc' tool from the JAXB API v2. # The genrule() creates the Java code, zips it and puts it in the output of jaxb2-xjc # The osgi_jar_with_tests() takes the sources in this ZIP and adds them to what ever # sources were used in the call to this method, and compiles all of them and adds # them to a JAR file in the output folder include_defs('//onos.defs') include_defs('//bucklets/onos.bucklet') def _get_name(): base_path = get_base_path() return ONOS_ARTIFACT_BASE + base_path.replace('/', '-') #TODO Unix-separator def jaxb2_xjc_osgi_jar( name, srcs, xsd, bindinfo=None, destdir='.', deps=[], test_deps=[], visibility = [], **kwargs ): if name is None: name = _get_name() cmd = 'xjc '+xsd if bindinfo is not None: cmd=cmd+' -b '+bindinfo cmd=cmd+' -d '+destdir genrule( name = 'jaxb2-xjc', srcs = glob(['src/main/resources/*.xsd','src/main/resources/*.xjb']), bash = cmd + ' && zip $OUT -r *', out = name+'.src.zip', visibility = [ ], ) osgi_jar_with_tests ( deps = [":jaxb2-xjc"] + deps, srcs = [':jaxb2-xjc'] + srcs, test_deps = test_deps, do_javadocs = False, do_checkstyle = False, **kwargs )