mirror of
https://github.com/opennetworkinglab/onos.git
synced 2025-10-17 18:32:28 +02:00
- fix issues detected - YANG custom registrator should be subject to checkstyle - fix Java 8 syntax related violations Change-Id: I0fc52c6612a40d851fd9bc3bf019621776b1f92a
149 lines
3.5 KiB
Plaintext
149 lines
3.5 KiB
Plaintext
include_defs('//onos.defs')
|
|
include_defs('//bucklets/onos.bucklet')
|
|
include_defs('//bucklets/onos_app.bucklet')
|
|
|
|
def _get_name():
|
|
base_path = get_base_path()
|
|
return ONOS_ARTIFACT_BASE + base_path.replace('/', '-') #TODO Unix-separator
|
|
|
|
YANG_TOOLS = [
|
|
'//lib:onos-yang-model',
|
|
'//lib:onos-yang-compiler-api',
|
|
'//lib:onos-yang-runtime',
|
|
'//lib:org.apache.felix.scr.annotations',
|
|
'//apps/yang:onos-apps-yang',
|
|
]
|
|
|
|
def yang_model(
|
|
name = None,
|
|
app_name = None,
|
|
model_id = None,
|
|
title = 'YANG Model',
|
|
url = 'http://onosproject.org',
|
|
description = None,
|
|
deps = [],
|
|
required_apps = [],
|
|
custom_registrator = False,
|
|
yang_src = None,
|
|
custom_src = None,
|
|
**kwargs
|
|
):
|
|
|
|
if name is None:
|
|
name = _get_name()
|
|
|
|
if model_id is None:
|
|
model_id = app_name
|
|
|
|
if yang_src is None:
|
|
yang_src = glob(['src/main/yang/**/*.yang'])
|
|
|
|
if custom_src is None:
|
|
custom_src = glob(['src/main/java/**/*.java'])
|
|
|
|
yang = name + '-yang'
|
|
yangSrcs = yang + '#srcs'
|
|
schema = name + '-schema'
|
|
registrator = name + '-registrator'
|
|
|
|
yang_library(
|
|
deps = deps,
|
|
name = yang,
|
|
srcs = yang_src,
|
|
model_id = model_id
|
|
)
|
|
|
|
genrule(
|
|
name = schema,
|
|
srcs = [ ':' + yangSrcs ],
|
|
cmd = '$(location //buck-tools:yang-schema) $OUT $SRCS',
|
|
out = 'yang'
|
|
)
|
|
|
|
if custom_registrator:
|
|
osgi_jar(
|
|
name = name,
|
|
srcs = [ ':' + yangSrcs ] + custom_src,
|
|
deps = deps + YANG_TOOLS,
|
|
resources = [ ':' + schema ],
|
|
resources_root = ".",
|
|
do_checkstyle = True,
|
|
do_javadocs = False,
|
|
)
|
|
else:
|
|
genrule(
|
|
name = registrator,
|
|
srcs = [ ':' + yangSrcs ],
|
|
cmd = '$(location //buck-tools:yang-registrator) $OUT ' + app_name.replace('-', '_') + ' $SRCS',
|
|
out = 'YangModelRegistrator.java'
|
|
)
|
|
osgi_jar(
|
|
name = name,
|
|
srcs = [ ':' + yangSrcs, ':' + registrator ],
|
|
deps = deps + YANG_TOOLS,
|
|
resources = [ ':' + schema ],
|
|
resources_root = ".",
|
|
do_checkstyle = False,
|
|
do_javadocs = False,
|
|
)
|
|
|
|
onos_app (
|
|
name = name,
|
|
app_name = app_name,
|
|
title = title,
|
|
category = 'Models',
|
|
url = url,
|
|
description = description,
|
|
required_apps = required_apps + [ 'org.onosproject.yang' ],
|
|
)
|
|
|
|
def yang_osgi_jar(
|
|
name = None,
|
|
srcs = None,
|
|
model_id = None,
|
|
group_id = ONOS_GROUP_ID,
|
|
version = ONOS_VERSION,
|
|
deps = [],
|
|
visibility = ['PUBLIC'],
|
|
license = 'NONE',
|
|
**kwargs
|
|
):
|
|
|
|
if name is None:
|
|
name = _get_name()
|
|
|
|
if model_id is None:
|
|
model_id = name
|
|
yang_jar = name + '-yang'
|
|
bnd_jar = name + '-bnd'
|
|
|
|
args = { 'group':group_id, 'artifact':name, 'version':version }
|
|
|
|
yang_library(
|
|
deps = deps,
|
|
name = yang_jar,
|
|
srcs = srcs,
|
|
model_id = model_id,
|
|
visibility = [ ],
|
|
)
|
|
|
|
cmd = 'java -jar $(location //lib:bndexe) wrap -o $OUT '
|
|
cmd += '-b %(group)s.%(artifact)s ' % args
|
|
cmd += '-v ' + version.replace('-', '.') + ' '
|
|
cmd += '$(location :%s) ' % yang_jar
|
|
cmd += ' >/dev/null 2>&1'
|
|
|
|
genrule(
|
|
name = bnd_jar,
|
|
bash = cmd,
|
|
out = name + '.jar',
|
|
visibility = [],
|
|
)
|
|
|
|
prebuilt_jar(
|
|
name = name,
|
|
binary_jar = ':' + bnd_jar,
|
|
maven_coords = '%(group)s:%(artifact)s:%(version)s'%args,
|
|
visibility = visibility,
|
|
)
|