Initial BUCK build
Change-Id: I64e8a979301989062f4545a4841b06c15a372049
diff --git a/.buckconfig b/.buckconfig
new file mode 100644
index 0000000..3270c10
--- /dev/null
+++ b/.buckconfig
@@ -0,0 +1,7 @@
+[buildfile]
+ includes = //buck-tools/default.defs
+
+[java]
+ source_level = 8
+ target_level = 8
+
diff --git a/BUCK b/BUCK
new file mode 100644
index 0000000..fe16934
--- /dev/null
+++ b/BUCK
@@ -0,0 +1,121 @@
+DEPS = [
+ '//utils/osgi:onlab-osgi',
+ '//utils/junit:onlab-junit',
+ '//utils/misc:onlab-misc',
+ '//utils/rest:onlab-rest',
+ '//core/api:onos-api',
+ '//incubator/api:onos-incubator-api',
+ '//incubator/net:onos-incubator-net',
+ '//core/net:onos-core-net',
+ '//core/store/primitives:onos-core-primitives',
+ '//core/store/serializers:onos-core-serializers',
+ '//core/store/dist:onos-core-dist',
+ '//core/security:onos-security',
+ '//core/store/persistence:onos-core-persistence',
+ '//cli:onos-cli',
+
+ '//protocols/rest/api:onos-restsb-api',
+ '//protocols/rest/ctl:onos-restsb-ctl',
+ '//protocols/bgp/bgpio:onos-bgpio',
+ '//protocols/bgp/api:onos-bgp-api',
+ '//protocols/bgp/ctl:onos-bgp-ctl',
+ '//protocols/netconf/api:onos-netconf-api',
+ '//protocols/netconf/ctl:onos-netconf-ctl',
+ '//protocols/openflow/api:onos-of-api',
+ '//protocols/openflow/ctl:onos-of-ctl',
+ '//protocols/ospf/api:onos-ospf-api',
+ '//protocols/ospf/protocol:onos-ospf-protocol',
+ '//protocols/ospf/ctl:onos-ospf-ctl',
+ '//protocols/ovsdb/rfc:onos-ovsdb-rfc',
+ '//protocols/ovsdb/api:onos-ovsdb-api',
+ '//protocols/ovsdb/ctl:onos-ovsdb-ctl',
+ '//protocols/pcep/pcepio:onos-pcep-pcepio',
+ '//protocols/pcep/api:onos-pcep-controller-api',
+ '//protocols/pcep/ctl:onos-pcep-ctl',
+
+ '//drivers/utilities:onos-drivers-utilities',
+ '//drivers/ciena:onos-drivers-ciena',
+ '//drivers/cisco:onos-drivers-cisco',
+ '//drivers/default:onos-drivers-default',
+ '//drivers/fujitsu:onos-drivers-fujitsu',
+ '//drivers/lumentum:onos-drivers-lumentum',
+ '//drivers/netconf:onos-drivers-netconf',
+ '//drivers/ovsdb:onos-drivers-ovsdb',
+
+ '//providers/bgp/cfg:onos-bgp-provider-cfg',
+ '//providers/bgp/flow:onos-bgp-provider-flow',
+ '//providers/bgp/topology:onos-bgp-provider-topology',
+ '//providers/host:onos-host-provider',
+ '//providers/lldpcommon:onos-lldp-provider-common',
+ '//providers/netcfglinks:onos-netcfg-links-provider',
+ '//providers/lldp:onos-lldp-provider',
+ '//providers/netconf/device:onos-netconf-provider-device',
+ '//providers/netcfghost:onos-netcfg-links-provider',
+ '//providers/null:onos-null-providers',
+ '//providers/openflow/device:onos-of-provider-device',
+ '//providers/openflow/flow:onos-of-provider-flow',
+ '//providers/openflow/group:onos-of-provider-group',
+ '//providers/openflow/message:onos-of-provider-message',
+ '//providers/openflow/meter:onos-of-provider-meter',
+ '//providers/openflow/packet:onos-of-provider-packet',
+ '//providers/ovsdb/device:onos-ovsdb-provider-device',
+ '//providers/ovsdb/host:onos-ovsdb-provider-host',
+ '//providers/ovsdb/tunnel:onos-ovsdb-provider-tunnel',
+ '//providers/pcep/topology:onos-pcep-provider-topology',
+ '//providers/pcep/tunnel:onos-pcep-provider-tunnel',
+ '//providers/rest/device:onos-restsb-provider-device',
+ '//providers/snmp/alarm:onos-snmp-provider-alarm',
+ '//providers/snmp/device:onos-snmp-provider-device',
+
+ '//web/api:onos-rest',
+ '//web/gui:onos-gui',
+
+ '//apps/cpman/api:onos-app-cpman-api',
+ '//apps/cpman/app:onos-app-cpman-app',
+ '//apps/aaa:onos-app-aaa',
+ '//apps/acl:onos-app-acl',
+ '//apps/bgprouter:onos-app-bgprouter',
+ '//apps/routing-api:onos-app-routing-api',
+ '//apps/cip:onos-app-cip',
+ '//apps/cordmcast:onos-app-cord-mcast',
+ '//apps/cordvtn:onos-app-cordvtn',
+ '//apps/dhcp/api:onos-app-dhcp-api',
+ '//apps/dhcp/app:onos-app-dhcp-app',
+ '//apps/drivermatrix:onos-app-drivermatrix',
+ '//apps/events:onos-app-events',
+ '//apps/faultmanagement:onos-app-fm',
+ '//apps/flowanalyzer:onos-app-flowanalyzer',
+ '//apps/fwd:onos-app-fwd',
+ '//apps/igmp:onos-app-igmp',
+ '//apps/influxdbmetrics:onos-app-influxdb',
+ '//apps/olt:onos-app-olt-api',
+ '//apps/olt:onos-app-olt-app',
+ '//apps/iptopology-api:onos-app-iptopology-api',
+ '//apps/metrics:onos-app-metrics',
+ '//apps/metricsreporter:onos-app-metrics-reporter',
+ '//apps/mfwd:onos-app-mfwd',
+ '//apps/mlb:onos-app-mlb',
+ '//apps/mobility:onos-app-mobility',
+ '//apps/openstackinterface:onos-app-openstackinterface-api',
+ '//apps/openstackinterface:onos-app-openstackinterface-app',
+ '//apps/openstacknetworking:onos-app-openstacknetworking',
+ '//apps/openstacknode:onos-app-openstacknode',
+ '//apps/optical:onos-app-optical',
+ '//apps/pathpainter:onos-app-pp',
+ '//apps/pim:onos-app-pim',
+ '//apps/proxyarp:onos-app-proxyarp',
+ '//apps/routing:onos-app-routing',
+ '//apps/sdnip:onos-app-sdnip',
+ '//apps/segmentrouting:onos-app-segmentrouting',
+ '//apps/test:onos-app-test',
+ '//apps/vtn:onos-app-vtn',
+ '//apps/virtualbng:onos-app-virtualbng',
+ '//apps/vpls:onos-app-vpls',
+ '//apps/vrouter:onos-app-vrouter',
+]
+
+java_library(
+ name = 'onos',
+ visibility = ['PUBLIC'],
+ deps = DEPS
+)
diff --git a/apps/aaa/BUCK b/apps/aaa/BUCK
new file mode 100644
index 0000000..160c420
--- /dev/null
+++ b/apps/aaa/BUCK
@@ -0,0 +1,31 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-aaa'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:org.apache.karaf.shell.console',
+ '//cli:onos-cli',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/acl/BUCK b/apps/acl/BUCK
new file mode 100644
index 0000000..72f4eb4
--- /dev/null
+++ b/apps/acl/BUCK
@@ -0,0 +1,32 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-acl'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:javax.ws.rs-api',
+ '//utils/rest:onlab-rest',
+ '//core/store/serializers:onos-core-serializers',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/bgprouter/BUCK b/apps/bgprouter/BUCK
new file mode 100644
index 0000000..dcf4c8b
--- /dev/null
+++ b/apps/bgprouter/BUCK
@@ -0,0 +1,31 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-bgprouter'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//incubator/api:onos-incubator-api',
+ '//apps/routing-api:onos-app-routing-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/cip/BUCK b/apps/cip/BUCK
new file mode 100644
index 0000000..dbaa33b
--- /dev/null
+++ b/apps/cip/BUCK
@@ -0,0 +1,29 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-cip'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/cordmcast/BUCK b/apps/cordmcast/BUCK
new file mode 100644
index 0000000..0b61f99
--- /dev/null
+++ b/apps/cordmcast/BUCK
@@ -0,0 +1,34 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-cord-mcast'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:javax.ws.rs-api',
+ '//lib:jersey-client',
+ '//lib:jersey-common',
+ '//utils/rest:onlab-rest',
+ '//apps/olt:onos-app-olt-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/cordvtn/BUCK b/apps/cordvtn/BUCK
new file mode 100644
index 0000000..5ceb313
--- /dev/null
+++ b/apps/cordvtn/BUCK
@@ -0,0 +1,41 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-cordvtn'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:org.apache.karaf.shell.console',
+ '//lib:javax.ws.rs-api',
+ '//lib:jsch',
+ '//utils/rest:onlab-rest',
+ '//cli:onos-cli',
+ '//core/store/serializers:onos-core-serializers',
+ '//apps/openstackinterface:onos-app-openstackinterface-api',
+ '//apps/dhcp/api:onos-app-dhcp-api',
+ '//protocols/ovsdb/api:onos-ovsdb-api',
+ '//protocols/ovsdb/rfc:onos-ovsdb-rfc',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'src/main/resources',
+ resources = glob(['src/main/resources/**']),
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/cpman/api/BUCK b/apps/cpman/api/BUCK
new file mode 100644
index 0000000..1d410b0
--- /dev/null
+++ b/apps/cpman/api/BUCK
@@ -0,0 +1,29 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-cpman-api'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ ]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/cpman/app/BUCK b/apps/cpman/app/BUCK
new file mode 100644
index 0000000..b42d086
--- /dev/null
+++ b/apps/cpman/app/BUCK
@@ -0,0 +1,35 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-cpman-app'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:org.apache.karaf.shell.console',
+ '//lib:javax.ws.rs-api',
+ '//lib:rrd4j',
+ '//apps/cpman/api:onos-app-cpman-api',
+ '//utils/rest:onlab-rest',
+ '//cli:onos-cli',
+ ]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/dhcp/api/BUCK b/apps/dhcp/api/BUCK
new file mode 100644
index 0000000..eaa368b
--- /dev/null
+++ b/apps/dhcp/api/BUCK
@@ -0,0 +1,29 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-dhcp-api'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/dhcp/app/BUCK b/apps/dhcp/app/BUCK
new file mode 100644
index 0000000..e11bea9
--- /dev/null
+++ b/apps/dhcp/app/BUCK
@@ -0,0 +1,35 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-dhcp-app'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:javax.ws.rs-api',
+ '//lib:org.apache.karaf.shell.console',
+ '//apps/dhcp/api:onos-app-dhcp-api',
+ '//utils/rest:onlab-rest',
+ '//core/store/serializers:onos-core-serializers',
+ '//cli:onos-cli',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/drivermatrix/BUCK b/apps/drivermatrix/BUCK
new file mode 100644
index 0000000..d8ac3bb
--- /dev/null
+++ b/apps/drivermatrix/BUCK
@@ -0,0 +1,33 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-drivermatrix'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:org.apache.karaf.shell.console',
+ '//cli:onos-cli',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'src/main/resources',
+ resources = glob(['src/main/resources/**']),
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/events/BUCK b/apps/events/BUCK
new file mode 100644
index 0000000..e3ec6cf
--- /dev/null
+++ b/apps/events/BUCK
@@ -0,0 +1,33 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-events'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:org.apache.karaf.shell.console',
+ '//cli:onos-cli',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'src/main/resources',
+ resources = glob(['src/main/resources/**']),
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/faultmanagement/BUCK b/apps/faultmanagement/BUCK
new file mode 100644
index 0000000..7dd4252
--- /dev/null
+++ b/apps/faultmanagement/BUCK
@@ -0,0 +1,91 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:org.apache.karaf.shell.console',
+ '//incubator/api:onos-incubator-api',
+ '//cli:onos-cli',
+ '//utils/rest:onlab-rest',
+ '//lib:javax.ws.rs-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = 'onos-app-fm',
+ visibility = ['PUBLIC'],
+ deps = [':fmcli', ':fmgui', ':fmmgr', ':fmweb'],
+)
+
+java_library(
+ name = 'fmcli',
+ srcs = glob(['fmcli/' + SRC + '*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'fmcli/src/main/resources',
+ resources = glob(['fmcli/src/main/resources/**']),
+)
+
+java_test(
+ name = 'fmcli-tests',
+ srcs = glob(['fmcli/' + TEST + '*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [':fmcli'],
+ source_under_test = [':fmcli'],
+)
+
+java_library(
+ name = 'fmgui',
+ srcs = glob(['fmgui/' + SRC + '*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'fmgui/src/main/resources',
+ resources = glob(['fmgui/src/main/resources/**']),
+)
+
+java_test(
+ name = 'fmgui-tests',
+ srcs = glob(['fmgui/' + TEST + '*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [':fmgui'],
+ source_under_test = [':fmgui'],
+)
+
+java_library(
+ name = 'fmmgr',
+ srcs = glob(['fmmgr/' + SRC + '*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'fmmgr-tests',
+ srcs = glob(['fmmgr/' + TEST + '*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [':fmmgr'],
+ source_under_test = [':fmmgr'],
+)
+
+java_library(
+ name = 'fmweb',
+ srcs = glob(['fmweb/' + SRC + '*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'fmweb-tests',
+ srcs = glob(['fmweb/' + TEST + '*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [':fmweb'],
+ source_under_test = [':fmweb'],
+ resources_root = 'fmweb/src/test/resources',
+ resources = glob(['fmweb/src/test/resources/**']),
+)
diff --git a/apps/flowanalyzer/BUCK b/apps/flowanalyzer/BUCK
new file mode 100644
index 0000000..e377f7c
--- /dev/null
+++ b/apps/flowanalyzer/BUCK
@@ -0,0 +1,33 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-flowanalyzer'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:org.apache.karaf.shell.console',
+ '//cli:onos-cli',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'src/main/resources',
+ resources = glob(['src/main/resources/**']),
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/fwd/BUCK b/apps/fwd/BUCK
new file mode 100644
index 0000000..62529ce
--- /dev/null
+++ b/apps/fwd/BUCK
@@ -0,0 +1,31 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-fwd'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:org.apache.karaf.shell.console',
+ '//cli:onos-cli',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/igmp/BUCK b/apps/igmp/BUCK
new file mode 100644
index 0000000..c298964
--- /dev/null
+++ b/apps/igmp/BUCK
@@ -0,0 +1,32 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-igmp'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:org.apache.karaf.shell.console',
+ '//cli:onos-cli',
+ '//apps/olt:onos-app-olt-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/influxdbmetrics/BUCK b/apps/influxdbmetrics/BUCK
new file mode 100644
index 0000000..0847bb7
--- /dev/null
+++ b/apps/influxdbmetrics/BUCK
@@ -0,0 +1,33 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-influxdb'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:org.apache.karaf.shell.console',
+ '//lib:metrics-influxdb',
+ '//lib:influxdb-java',
+ '//cli:onos-cli',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/iptopology-api/BUCK b/apps/iptopology-api/BUCK
new file mode 100644
index 0000000..79a4146
--- /dev/null
+++ b/apps/iptopology-api/BUCK
@@ -0,0 +1,29 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-iptopology-api'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/metrics/BUCK b/apps/metrics/BUCK
new file mode 100644
index 0000000..ad1b452
--- /dev/null
+++ b/apps/metrics/BUCK
@@ -0,0 +1,35 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-metrics'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:org.apache.karaf.shell.console',
+ '//lib:javax.ws.rs-api',
+ '//utils/rest:onlab-rest',
+ '//cli:onos-cli',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'src/main/resources',
+ resources = glob(['src/main/resources/**']),
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/metricsreporter/BUCK b/apps/metricsreporter/BUCK
new file mode 100644
index 0000000..9a2fa1c
--- /dev/null
+++ b/apps/metricsreporter/BUCK
@@ -0,0 +1,31 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-metrics-reporter'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:gmetric4j',
+ '//lib:metrics-ganglia',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/mfwd/BUCK b/apps/mfwd/BUCK
new file mode 100644
index 0000000..46730ef
--- /dev/null
+++ b/apps/mfwd/BUCK
@@ -0,0 +1,29 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-mfwd'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/mlb/BUCK b/apps/mlb/BUCK
new file mode 100644
index 0000000..dc45bb0
--- /dev/null
+++ b/apps/mlb/BUCK
@@ -0,0 +1,29 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-mlb'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/mobility/BUCK b/apps/mobility/BUCK
new file mode 100644
index 0000000..4adca9f
--- /dev/null
+++ b/apps/mobility/BUCK
@@ -0,0 +1,29 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-mobility'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/olt/BUCK b/apps/olt/BUCK
new file mode 100644
index 0000000..a626006
--- /dev/null
+++ b/apps/olt/BUCK
@@ -0,0 +1,48 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:javax.ws.rs-api',
+ '//lib:jersey-client',
+ '//lib:org.apache.karaf.shell.console',
+ '//utils/rest:onlab-rest',
+ '//cli:onos-cli',
+ '//core/store/serializers:onos-core-serializers',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = 'onos-app-olt-api',
+ srcs = glob(['api/' + SRC + '*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'onos-app-olt-api-tests',
+ srcs = glob([TEST + 'api/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [':onos-app-olt-api'],
+ source_under_test = [':onos-app-olt-api'],
+)
+
+java_library(
+ name = 'onos-app-olt-app',
+ srcs = glob(['app/' + SRC + '*.java']),
+ deps = COMPILE_DEPS + [':onos-app-olt-api'],
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'onos-app-olt-app-tests',
+ srcs = glob([TEST + 'app/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [':onos-app-olt-api', ':onos-app-olt-app'],
+ source_under_test = [':onos-app-olt-app'],
+)
diff --git a/apps/openstackinterface/BUCK b/apps/openstackinterface/BUCK
new file mode 100644
index 0000000..a43ca84
--- /dev/null
+++ b/apps/openstackinterface/BUCK
@@ -0,0 +1,44 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:jersey-client',
+ '//lib:javax.ws.rs-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = 'onos-app-openstackinterface-api',
+ srcs = glob(['api/' + SRC + '*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'onos-app-openstackinterface-api-tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [':onos-app-openstackinterface-api'],
+ source_under_test = [':onos-app-openstackinterface-api'],
+)
+
+java_library(
+ name = 'onos-app-openstackinterface-app',
+ srcs = glob(['app/' + SRC + '*.java']),
+ deps = COMPILE_DEPS + [':onos-app-openstackinterface-api'],
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'onos-app-openstackinterface-app-tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [':onos-app-openstackinterface-api', ':onos-app-openstackinterface-app'],
+ source_under_test = [':onos-app-openstackinterface-app'],
+)
diff --git a/apps/openstacknetworking/BUCK b/apps/openstacknetworking/BUCK
new file mode 100644
index 0000000..65b6acc
--- /dev/null
+++ b/apps/openstacknetworking/BUCK
@@ -0,0 +1,102 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:jersey-client',
+ '//lib:javax.ws.rs-api',
+ '//apps/openstackinterface:onos-app-openstackinterface-api',
+ '//core/store/serializers:onos-core-serializers',
+]
+
+java_library(
+ name = 'onos-app-openstacknetworking',
+ visibility = ['PUBLIC'],
+ deps = [
+ ':onos-app-openstacknetworking-api',
+ ':onos-app-openstacknetworking-app',
+ ':onos-app-openstackrouting',
+ ':onos-app-openstackswitching',
+ ':onos-app-openstacknetworking-web',
+ ]
+)
+
+TEST_DEPS = [
+ '//lib:TEST',
+ ':onos-app-openstacknetworking',
+]
+
+java_library(
+ name = 'onos-app-openstacknetworking-api',
+ srcs = glob(['api/' + SRC + '*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'onos-app-openstacknetworking-api-tests',
+ srcs = glob([TEST + 'api/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS,
+ source_under_test = [':onos-app-openstacknetworking-api'],
+)
+
+java_library(
+ name = 'onos-app-openstacknetworking-app',
+ srcs = glob(['app/' + SRC + '*.java']),
+ deps = COMPILE_DEPS + [':onos-app-openstacknetworking-api'],
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'onos-app-openstacknetworking-app-tests',
+ srcs = glob([TEST + 'app/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS,
+ source_under_test = [':onos-app-openstacknetworking-app'],
+)
+
+java_library(
+ name = 'onos-app-openstackrouting',
+ srcs = glob(['openstackrouting/' + SRC + '*.java']),
+ deps = COMPILE_DEPS + [':onos-app-openstacknetworking-api'],
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'onos-app-openstackrouting-tests',
+ srcs = glob([TEST + 'openstackrouting/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS,
+ source_under_test = [':onos-app-openstackrouting'],
+)
+
+java_library(
+ name = 'onos-app-openstackswitching',
+ srcs = glob(['openstgackswitching/' + SRC + '*.java']),
+ deps = COMPILE_DEPS + [':onos-app-openstacknetworking-api'],
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'onos-app-openstackswitching-tests',
+ srcs = glob([TEST + 'openstackswitching/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS,
+ source_under_test = [':onos-app-openstackswitching'],
+)
+
+java_library(
+ name = 'onos-app-openstacknetworking-web',
+ srcs = glob(['openstgacknetworking/' + SRC + '*.java']),
+ deps = COMPILE_DEPS + [':onos-app-openstacknetworking-api'],
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'onos-app-openstacknetworking-web-tests',
+ srcs = glob([TEST + 'openstackswitching/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS,
+ source_under_test = [':onos-app-openstacknetworking-web'],
+)
diff --git a/apps/openstacknode/BUCK b/apps/openstacknode/BUCK
new file mode 100644
index 0000000..856dc7e
--- /dev/null
+++ b/apps/openstacknode/BUCK
@@ -0,0 +1,32 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-openstacknode'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//protocols/ovsdb/api:onos-ovsdb-api',
+ '//protocols/ovsdb/rfc:onos-ovsdb-rfc',
+ '//core/store/serializers:onos-core-serializers',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/optical/BUCK b/apps/optical/BUCK
new file mode 100644
index 0000000..33a5615
--- /dev/null
+++ b/apps/optical/BUCK
@@ -0,0 +1,29 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-optical'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/pathpainter/BUCK b/apps/pathpainter/BUCK
new file mode 100644
index 0000000..99cbcb6
--- /dev/null
+++ b/apps/pathpainter/BUCK
@@ -0,0 +1,31 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-pp'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'src/main/resources',
+ resources = glob(['src/main/resources/**']),
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/pcep-api/BUCK b/apps/pcep-api/BUCK
new file mode 100644
index 0000000..4b78c47
--- /dev/null
+++ b/apps/pcep-api/BUCK
@@ -0,0 +1,31 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-pcep-api'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//protocols/ovsdb/api:onos-ovsdb-api',
+ '//protocols/ovsdb/rfc:onos-ovsdb-rfc',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/pim/BUCK b/apps/pim/BUCK
new file mode 100644
index 0000000..5a1c074
--- /dev/null
+++ b/apps/pim/BUCK
@@ -0,0 +1,35 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-pim'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:org.apache.karaf.shell.console',
+ '//cli:onos-cli',
+ '//incubator/api:onos-incubator-api',
+ '//apps/routing-api:onos-app-routing-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'src/main/resources',
+ resources = glob(['src/main/resources/**']),
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/proxyarp/BUCK b/apps/proxyarp/BUCK
new file mode 100644
index 0000000..8c7328e
--- /dev/null
+++ b/apps/proxyarp/BUCK
@@ -0,0 +1,29 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-proxyarp'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/routing-api/BUCK b/apps/routing-api/BUCK
new file mode 100644
index 0000000..26c30ad
--- /dev/null
+++ b/apps/routing-api/BUCK
@@ -0,0 +1,29 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-routing-api'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/routing/BUCK b/apps/routing/BUCK
new file mode 100644
index 0000000..7523af9
--- /dev/null
+++ b/apps/routing/BUCK
@@ -0,0 +1,37 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-routing'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:org.apache.karaf.shell.console',
+ '//lib:concurrent-trees',
+ '//cli:onos-cli',
+ '//incubator/api:onos-incubator-api',
+ '//apps/routing-api:onos-app-routing-api',
+ '//core/common:onos-core-common',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'src/main/resources',
+ resources = glob(['src/main/resources/**']),
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/sdnip/BUCK b/apps/sdnip/BUCK
new file mode 100644
index 0000000..450ab22
--- /dev/null
+++ b/apps/sdnip/BUCK
@@ -0,0 +1,31 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-sdnip'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//incubator/api:onos-incubator-api',
+ '//apps/routing-api:onos-app-routing-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/segmentrouting/BUCK b/apps/segmentrouting/BUCK
new file mode 100644
index 0000000..3ed2a55
--- /dev/null
+++ b/apps/segmentrouting/BUCK
@@ -0,0 +1,38 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-segmentrouting'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:org.apache.karaf.shell.console',
+ '//lib:javax.ws.rs-api',
+ '//cli:onos-cli',
+ '//incubator/api:onos-incubator-api',
+ '//apps/routing-api:onos-app-routing-api',
+ '//utils/rest:onlab-rest',
+
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'src/main/resources',
+ resources = glob(['src/main/resources/**']),
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/test/BUCK b/apps/test/BUCK
new file mode 100644
index 0000000..a7cf25d
--- /dev/null
+++ b/apps/test/BUCK
@@ -0,0 +1,136 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:org.apache.karaf.shell.console',
+ '//cli:onos-cli',
+ '//utils/rest:onlab-rest',
+ '//lib:javax.ws.rs-api',
+ '//core/store/serializers:onos-core-serializers',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = 'onos-app-test',
+ visibility = ['PUBLIC'],
+ deps = [':onos-app-demo',
+ ':onos-app-distributed-primitives',
+ ':onos-app-election',
+ ':onos-app-intent-perf',
+ ':onos-app-loadtest',
+ ':onos-app-messaging-perf',
+ ],
+)
+
+# demo
+
+java_library(
+ name = 'onos-app-demo',
+ srcs = glob(['demo/' + SRC + '*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'onos-app-demo-tests',
+ srcs = glob(['demo/' + TEST + '*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [':onos-app-demo'],
+ source_under_test = [':onos-app-demo'],
+)
+
+# distributed-primitives
+
+java_library(
+ name = 'onos-app-distributed-primitives',
+ srcs = glob(['distributed-primitives/' + SRC + '*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'onos-app-distributed-primitives-tests',
+ srcs = glob(['distributed-primitives/' + TEST + '*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [':onos-app-distributed-primitives'],
+ source_under_test = [':onos-app-distributed-primitives'],
+)
+
+# election
+
+java_library(
+ name = 'onos-app-election',
+ srcs = glob(['election/' + SRC + '*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'onos-app-election-tests',
+ srcs = glob(['election/' + TEST + '*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [':onos-app-election'],
+ source_under_test = [':onos-app-election'],
+)
+
+# intent-perf
+
+java_library(
+ name = 'onos-app-intent-perf',
+ srcs = glob(['intent-perf/' + SRC + '*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'onos-app-intent-perf-tests',
+ srcs = glob(['intent-perf/' + TEST + '*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [':onos-app-intent-perf'],
+ source_under_test = [':onos-app-intent-perf'],
+)
+
+# loadtest
+
+java_library(
+ name = 'onos-app-loadtest',
+ srcs = glob(['loadtest/' + SRC + '*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'onos-app-loadtest-tests',
+ srcs = glob(['loadtest/' + TEST + '*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [':onos-app-loadtest'],
+ source_under_test = [':onos-app-loadtest'],
+)
+
+# messaging-perf
+
+java_library(
+ name = 'onos-app-messaging-perf',
+ srcs = glob(['messaging-perf/' + SRC + '*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'onos-app-messaging-perf-tests',
+ srcs = glob(['messaging-perf/' + TEST + '*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [':onos-app-messaging-perf'],
+ source_under_test = [':onos-app-messaging-perf'],
+)
+
diff --git a/apps/virtualbng/BUCK b/apps/virtualbng/BUCK
new file mode 100644
index 0000000..b453226
--- /dev/null
+++ b/apps/virtualbng/BUCK
@@ -0,0 +1,36 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-virtualbng'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:jersey-client',
+ '//lib:javax.ws.rs-api',
+ '//lib:org.apache.karaf.shell.console',
+ '//cli:onos-cli',
+ '//utils/rest:onlab-rest',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'src/main/resources',
+ resources = glob(['src/main/resources/**']),
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/vpls/BUCK b/apps/vpls/BUCK
new file mode 100644
index 0000000..f9c88b3
--- /dev/null
+++ b/apps/vpls/BUCK
@@ -0,0 +1,36 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-vpls'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:jersey-client',
+ '//lib:javax.ws.rs-api',
+ '//lib:org.apache.karaf.shell.console',
+ '//cli:onos-cli',
+ '//utils/rest:onlab-rest',
+ '//incubator/api:onos-incubator-api',
+ '//apps/routing-api:onos-app-routing-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/vrouter/BUCK b/apps/vrouter/BUCK
new file mode 100644
index 0000000..b94198a
--- /dev/null
+++ b/apps/vrouter/BUCK
@@ -0,0 +1,30 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-vrouter'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//incubator/api:onos-incubator-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/apps/vtn/BUCK b/apps/vtn/BUCK
new file mode 100644
index 0000000..e653036
--- /dev/null
+++ b/apps/vtn/BUCK
@@ -0,0 +1,104 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:org.apache.karaf.shell.console',
+ '//cli:onos-cli',
+ '//utils/rest:onlab-rest',
+ '//lib:javax.ws.rs-api',
+ '//core/store/serializers:onos-core-serializers',
+ '//incubator/api:onos-incubator-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = 'onos-app-vtn',
+ visibility = ['PUBLIC'],
+ deps = [':onos-app-sfc-mgr',
+ ':onos-app-vtn-mgr',
+ ':onos-app-vtn-rsc',
+ ':onos-app-vtn-web',
+ ],
+)
+
+# sfcmgr
+
+java_library(
+ name = 'onos-app-sfc-mgr',
+ srcs = glob(['sfcmgr/' + SRC + '*.java']),
+ deps = COMPILE_DEPS + [':onos-app-vtn-rsc'],
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'onos-app-sfc-mgr-tests',
+ srcs = glob(['sfcmgr/' + TEST + '*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [':onos-app-sfc-mgr', ':onos-app-vtn-rsc'],
+ source_under_test = [':onos-app-sfc-mgr'],
+)
+
+# vtnmgr
+
+java_library(
+ name = 'onos-app-vtn-mgr',
+ srcs = glob(['vtnmgr/' + SRC + '*.java']),
+ deps = COMPILE_DEPS + [':onos-app-vtn-rsc'],
+ visibility = ['PUBLIC'],
+ resources_root = 'vtnmgr/src/main/resources',
+ resources = glob(['vtnmgr/src/main/resources/**']),
+)
+
+java_test(
+ name = 'onos-app-vtn-mgr-tests',
+ srcs = glob(['vtnmgr/' + TEST + '*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [':onos-app-vtn-mgr', ':onos-app-vtn-rsc'],
+ source_under_test = [':onos-app-vtn-mgr'],
+)
+
+# vtnrsc
+
+java_library(
+ name = 'onos-app-vtn-rsc',
+ srcs = glob(['vtnrsc/' + SRC + '*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'vtnrsc/src/main/resources',
+ resources = glob(['vtnrsc/src/main/resources/**']),
+)
+
+java_test(
+ name = 'onos-app-vtn-rsc-tests',
+ srcs = glob(['vtnrsc/' + TEST + '*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [':onos-app-vtn-rsc'],
+ source_under_test = [':onos-app-vtn-rsc'],
+)
+
+# vtnweb
+
+java_library(
+ name = 'onos-app-vtn-web',
+ srcs = glob(['vtnweb/' + SRC + '*.java']),
+ deps = COMPILE_DEPS + [':onos-app-vtn-rsc'],
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'onos-app-vtn-web-tests',
+ srcs = glob(['vtnweb/' + TEST + '*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [':onos-app-vtn-web', ':onos-app-vtn-rsc'],
+ source_under_test = [':onos-app-vtn-web'],
+ resources_root = 'vtnweb/src/test/resources',
+ resources = glob(['vtnweb/src/test/resources/**']),
+)
diff --git a/apps/xos-integration/BUCK b/apps/xos-integration/BUCK
new file mode 100644
index 0000000..1413d0f
--- /dev/null
+++ b/apps/xos-integration/BUCK
@@ -0,0 +1,36 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-app-xos-integration'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:jersey-client',
+ '//lib:javax.ws.rs-api',
+ '//lib:org.apache.karaf.shell.console',
+ '//cli:onos-cli',
+ '//utils/rest:onlab-rest',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'src/main/resources',
+ resources = glob(['src/main/resources/**']),
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/buck-tools/BUCK b/buck-tools/BUCK
new file mode 100644
index 0000000..96c787a
--- /dev/null
+++ b/buck-tools/BUCK
@@ -0,0 +1,38 @@
+python_binary(
+ name = 'download_file',
+ main = 'download_file.py',
+ deps = [':util'],
+ visibility = ['PUBLIC'],
+)
+
+python_binary(
+ name = 'pack_war',
+ main = 'pack_war.py',
+ deps = [':util'],
+ visibility = ['PUBLIC'],
+)
+
+python_library(
+ name = 'util',
+ srcs = [
+ 'util.py',
+ '__init__.py'
+ ],
+ visibility = ['PUBLIC'],
+)
+
+def shquote(s):
+ return s.replace("'", "'\\''")
+
+def os_path():
+ from os import environ
+ return environ.get('PATH')
+
+genrule(
+ name = 'buck',
+ cmd = 'echo buck=`which buck`>$OUT;' +
+ ("echo PATH=\''%s'\' >>$OUT;" % shquote(os_path())),
+ out = 'buck.properties',
+ visibility = ['PUBLIC'],
+)
+
diff --git a/buck-tools/GoogleFormat.xml b/buck-tools/GoogleFormat.xml
new file mode 100644
index 0000000..8062246
--- /dev/null
+++ b/buck-tools/GoogleFormat.xml
@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<profiles version="11">
+<profile kind="CodeFormatterProfile" name="Google Format" version="11">
+<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="2"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0"/>
+<setting id="org.eclipse.jdt.core.compiler.source" value="1.7"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="80"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="16"/>
+<setting id="org.eclipse.jdt.core.compiler.problem.assertIdentifier" value="error"/>
+<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.compiler.problem.enumIdentifier" value="error"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="2"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="3"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
+<setting id="org.eclipse.jdt.core.compiler.compliance" value="1.7"/>
+<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode" value="enabled"/>
+<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="80"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.wrap_before_binary_operator" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="2"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.compiler.codegen.targetPlatform" value="1.7"/>
+<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
+</profile>
+</profiles>
diff --git a/buck-tools/__init__.py b/buck-tools/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/buck-tools/__init__.py
diff --git a/buck-tools/build.defs b/buck-tools/build.defs
new file mode 100644
index 0000000..3ea506c
--- /dev/null
+++ b/buck-tools/build.defs
@@ -0,0 +1,80 @@
+# Copyright (C) 2013 The Android Open Source Project
+#
+# 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.
+
+# These definitions support building a runnable version of Gerrit.
+
+DOCS_HTML = '//Documentation:html'
+DOCS_LIB = '//Documentation:index_lib'
+LIBS = [
+ '//gerrit-war:log4j-config',
+ '//gerrit-war:init',
+ '//lib:postgresql',
+ '//lib/log:impl_log4j',
+]
+PGMLIBS = ['//gerrit-pgm:pgm']
+
+def scan_plugins():
+ import os
+ deps = []
+ for n in os.listdir('plugins'):
+ if os.path.exists(os.path.join('plugins', n, 'BUCK')):
+ deps.append('//plugins/%s:%s__plugin' % (n, n))
+ return deps
+
+def war(
+ name,
+ libs = [],
+ pgmlibs = [],
+ context = [],
+ visibility = [],
+ docs = False
+ ):
+ cmd = ['$(exe //tools:pack_war)', '-o', '$OUT', '--tmp', '$TMP']
+ for l in libs:
+ cmd.extend(['--lib', '$(classpath %s)' % l])
+ for l in pgmlibs:
+ cmd.extend(['--pgmlib', '$(classpath %s)' % l])
+
+ if docs:
+ cmd.append('$(location %s)' % DOCS_HTML)
+ cmd.extend(['--lib', '$(classpath %s)' % DOCS_LIB])
+ if context:
+ for t in context:
+ cmd.append('$(location %s)' % t)
+
+ genrule(
+ name = name,
+ cmd = ' '.join(cmd),
+ out = name + '.war',
+ visibility = visibility,
+ )
+
+def gerrit_war(name, ui = 'ui_optdbg', context = [], docs = False, visibility = []):
+ ui_deps = []
+ if ui:
+ if ui == 'polygerrit' or ui == 'ui_optdbg' or ui == 'ui_optdbg_r':
+ ui_deps.append('//polygerrit-ui/app:polygerrit_ui')
+ if ui != 'polygerrit':
+ ui_deps.append('//gerrit-gwtui:%s' % ui)
+ war(
+ name = name,
+ libs = LIBS + ['//gerrit-war:version'],
+ pgmlibs = PGMLIBS,
+ context = ui_deps + context + [
+ '//gerrit-main:main_bin',
+ '//gerrit-war:webapp_assets',
+ ],
+ docs = docs,
+ visibility = visibility,
+ )
diff --git a/buck-tools/checkstyle.xml b/buck-tools/checkstyle.xml
new file mode 100644
index 0000000..1bb40f7
--- /dev/null
+++ b/buck-tools/checkstyle.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
+
+<!--
+ This configuration file was written by the eclipse-cs plugin configuration editor
+-->
+<!--
+ Checkstyle-Configuration: Google Checks for Gerrit
+ Description:
+Checkstyle configuration based on the Google coding conventions (https://google-styleguide.googlecode.com/svn-history/r130/trunk/javaguide.html),
+edited to remove noisy warnings.
+-->
+<module name="Checker">
+ <property name="severity" value="warning"/>
+ <property name="charset" value="UTF-8"/>
+ <module name="TreeWalker">
+ <module name="FileContentsHolder"/>
+ <module name="OuterTypeFilename"/>
+ <module name="LineLength">
+ <property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
+ <property name="max" value="150"/>
+ <property name="tabWidth" value="2"/>
+ </module>
+ <module name="OneTopLevelClass"/>
+ <module name="NoLineWrap"/>
+ <module name="EmptyBlock">
+ <property name="option" value="TEXT"/>
+ <property name="tokens" value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
+ </module>
+ <module name="NeedBraces"/>
+ <module name="LeftCurly">
+ <property name="maxLineLength" value="150"/>
+ </module>
+ <module name="RightCurly">
+ <property name="option" value="alone"/>
+ <property name="tokens" value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, LITERAL_DO, STATIC_INIT, INSTANCE_INIT"/>
+ </module>
+ <module name="WhitespaceAround">
+ <property name="severity" value="ignore"/>
+ <property name="allowEmptyConstructors" value="true"/>
+ <property name="allowEmptyMethods" value="true"/>
+ <property name="allowEmptyTypes" value="true"/>
+ <property name="allowEmptyLoops" value="true"/>
+ <message key="ws.notFollowed" value="WhitespaceAround: ''{0}'' is not followed by whitespace."/>
+ <message key="ws.notPreceded" value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/>
+ <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
+ </module>
+ <module name="OneStatementPerLine"/>
+ <module name="MultipleVariableDeclarations"/>
+ <module name="ArrayTypeStyle"/>
+ <module name="UpperEll"/>
+ <module name="ModifierOrder"/>
+ <module name="EmptyLineSeparator">
+ <property name="severity" value="ignore"/>
+ <property name="allowNoEmptyLineBetweenFields" value="true"/>
+ <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
+ </module>
+ <module name="SeparatorWrap">
+ <property name="severity" value="ignore"/>
+ <property name="option" value="nl"/>
+ <property name="tokens" value="DOT"/>
+ <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
+ </module>
+ <module name="SeparatorWrap">
+ <property name="severity" value="ignore"/>
+ <property name="option" value="EOL"/>
+ <property name="tokens" value="COMMA"/>
+ <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
+ </module>
+ <module name="NoFinalizer"/>
+ <module name="GenericWhitespace">
+ <property name="severity" value="ignore"/>
+ <message key="ws.followed" value="GenericWhitespace ''{0}'' is followed by whitespace."/>
+ <message key="ws.illegalFollow" value="GenericWhitespace ''{0}'' should followed by whitespace."/>
+ <message key="ws.preceded" value="GenericWhitespace ''{0}'' is preceded with whitespace."/>
+ <message key="ws.notPreceded" value="GenericWhitespace ''{0}'' is not preceded with whitespace."/>
+ <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
+ </module>
+ <module name="Indentation">
+ <property name="severity" value="ignore"/>
+ <property name="basicOffset" value="2"/>
+ <property name="caseIndent" value="2"/>
+ <property name="arrayInitIndent" value="2"/>
+ <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
+ </module>
+ <module name="MethodParamPad">
+ <property name="severity" value="ignore"/>
+ <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
+ </module>
+ <module name="OperatorWrap">
+ <property name="severity" value="ignore"/>
+ <property name="option" value="NL"/>
+ <property name="tokens" value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR "/>
+ <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
+ </module>
+ </module>
+ <module name="FileTabCharacter">
+ <property name="severity" value="ignore"/>
+ <property name="eachLine" value="true"/>
+ <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
+ </module>
+ <module name="SuppressWithNearbyCommentFilter">
+ <property name="commentFormat" value="CS IGNORE (\w+) FOR NEXT (\d+) LINES\. REASON\: \w+"/>
+ <property name="checkFormat" value="$1"/>
+ <property name="influenceFormat" value="$2"/>
+ </module>
+ <module name="SuppressionFilter">
+ <property name="file" value="${samedir}/checkstyle_suppressions.xml"/>
+ </module>
+</module>
diff --git a/buck-tools/checkstyle_suppressions.xml b/buck-tools/checkstyle_suppressions.xml
new file mode 100644
index 0000000..5f5d9ee
--- /dev/null
+++ b/buck-tools/checkstyle_suppressions.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE suppressions PUBLIC
+ "-//Puppy Crawl//DTD Suppressions 1.1//EN"
+ "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
+<suppressions>
+ <suppress files="[/\\].apt_generated[/\\]" checks=".*"/>
+</suppressions>
diff --git a/buck-tools/default.defs b/buck-tools/default.defs
new file mode 100644
index 0000000..86b7149
--- /dev/null
+++ b/buck-tools/default.defs
@@ -0,0 +1,8 @@
+include_defs('//bucklets/maven_jar.bucklet')
+
+BASE_DEPS = [
+ '//lib:junit',
+ '//lib:hamcrest-all',
+ '//lib:slf4j-api',
+ '//lib:guava-testlib',
+]
diff --git a/buck-tools/download_all.py b/buck-tools/download_all.py
new file mode 100755
index 0000000..ba1c199
--- /dev/null
+++ b/buck-tools/download_all.py
@@ -0,0 +1,51 @@
+#!/usr/bin/env python
+# Copyright (C) 2013 The Android Open Source Project
+#
+# 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.
+
+from optparse import OptionParser
+import re
+from subprocess import check_call, CalledProcessError, Popen, PIPE
+
+MAIN = ['//buck-tools/eclipse:classpath']
+PAT = re.compile(r'"(//.*?)" -> "//buck-tools:download_file"')
+# TODO(davido): Remove this hack when Buck bugs are fixed:
+# https://github.com/facebook/buck/issues/656
+# https://github.com/facebook/buck/issues/658
+JGIT = re.compile(r'//org.eclipse.jgit.*')
+CELL = '//lib/jgit'
+
+opts = OptionParser()
+opts.add_option('--src', action='store_true')
+args, _ = opts.parse_args()
+
+targets = set()
+
+p = Popen(['buck', 'audit', 'classpath', '--dot'] + MAIN, stdout = PIPE)
+for line in p.stdout:
+ m = PAT.search(line)
+ if m:
+ n = m.group(1)
+ if JGIT.match(n):
+ n = CELL + n[1:]
+ if args.src and n.endswith('__download_bin'):
+ n = n[:-13] + 'src'
+ targets.add(n)
+r = p.wait()
+if r != 0:
+ exit(r)
+
+try:
+ check_call(['buck', 'build'] + sorted(targets))
+except CalledProcessError as err:
+ exit(1)
diff --git a/buck-tools/download_file.py b/buck-tools/download_file.py
new file mode 100755
index 0000000..bd67b50
--- /dev/null
+++ b/buck-tools/download_file.py
@@ -0,0 +1,198 @@
+#!/usr/bin/env python
+# Copyright (C) 2013 The Android Open Source Project
+#
+# 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.
+
+from __future__ import print_function
+
+from hashlib import sha1
+from optparse import OptionParser
+from os import link, makedirs, path, remove
+import shutil
+from subprocess import check_call, CalledProcessError
+from sys import stderr
+from util import hash_file, resolve_url
+from zipfile import ZipFile, BadZipfile, LargeZipFile
+
+GERRIT_HOME = path.expanduser('~/.gerritcodereview')
+CACHE_DIR = path.join(GERRIT_HOME, 'buck-cache', 'downloaded-artifacts')
+# LEGACY_CACHE_DIR is only used to allow existing workspaces to move already
+# downloaded files to the new cache directory.
+# Please remove after 3 months (2015-10-07).
+LEGACY_CACHE_DIR = path.join(GERRIT_HOME, 'buck-cache')
+LOCAL_PROPERTIES = 'local.properties'
+
+
+def safe_mkdirs(d):
+ if path.isdir(d):
+ return
+ try:
+ makedirs(d)
+ except OSError as err:
+ if not path.isdir(d):
+ raise err
+
+
+def download_properties(root_dir):
+ """ Get the download properties.
+
+ First tries to find the properties file in the given root directory,
+ and if not found there, tries in the Gerrit settings folder in the
+ user's home directory.
+
+ Returns a set of download properties, which may be empty.
+
+ """
+ p = {}
+ local_prop = path.join(root_dir, LOCAL_PROPERTIES)
+ if not path.isfile(local_prop):
+ local_prop = path.join(GERRIT_HOME, LOCAL_PROPERTIES)
+ if path.isfile(local_prop):
+ try:
+ with open(local_prop) as fd:
+ for line in fd:
+ if line.startswith('download.'):
+ d = [e.strip() for e in line.split('=', 1)]
+ name, url = d[0], d[1]
+ p[name[len('download.'):]] = url
+ except OSError:
+ pass
+ return p
+
+
+def cache_entry(args):
+ if args.v:
+ h = args.v
+ else:
+ h = sha1(args.u.encode('utf-8')).hexdigest()
+ name = '%s-%s' % (path.basename(args.o), h)
+ return path.join(CACHE_DIR, name)
+
+# Please remove after 3 months (2015-10-07). See LEGACY_CACHE_DIR above.
+def legacy_cache_entry(args):
+ if args.v:
+ h = args.v
+ else:
+ h = sha1(args.u.encode('utf-8')).hexdigest()
+ name = '%s-%s' % (path.basename(args.o), h)
+ return path.join(LEGACY_CACHE_DIR, name)
+
+
+opts = OptionParser()
+opts.add_option('-o', help='local output file')
+opts.add_option('-u', help='URL to download')
+opts.add_option('-v', help='expected content SHA-1')
+opts.add_option('-x', action='append', help='file to delete from ZIP')
+opts.add_option('--exclude_java_sources', action='store_true')
+opts.add_option('--unsign', action='store_true')
+args, _ = opts.parse_args()
+
+root_dir = args.o
+while root_dir:
+ root_dir, n = path.split(root_dir)
+ if n == 'buck-out':
+ break
+
+redirects = download_properties(root_dir)
+cache_ent = cache_entry(args)
+legacy_cache_ent = legacy_cache_entry(args)
+src_url = resolve_url(args.u, redirects)
+
+# Please remove after 3 months (2015-10-07). See LEGACY_CACHE_DIR above.
+if not path.exists(cache_ent) and path.exists(legacy_cache_ent):
+ try:
+ safe_mkdirs(path.dirname(cache_ent))
+ except OSError as err:
+ print('error creating directory %s: %s' %
+ (path.dirname(cache_ent), err), file=stderr)
+ exit(1)
+ shutil.move(legacy_cache_ent, cache_ent)
+
+if not path.exists(cache_ent):
+ try:
+ safe_mkdirs(path.dirname(cache_ent))
+ except OSError as err:
+ print('error creating directory %s: %s' %
+ (path.dirname(cache_ent), err), file=stderr)
+ exit(1)
+
+ print('Download %s' % src_url, file=stderr)
+ try:
+ check_call(['curl', '--proxy-anyauth', '-ksfo', cache_ent, src_url])
+ except OSError as err:
+ print('could not invoke curl: %s\nis curl installed?' % err, file=stderr)
+ exit(1)
+ except CalledProcessError as err:
+ print('error using curl: %s' % err, file=stderr)
+ exit(1)
+
+if args.v:
+ have = hash_file(sha1(), cache_ent).hexdigest()
+ if args.v != have:
+ print((
+ '%s:\n' +
+ 'expected %s\n' +
+ 'received %s\n') % (src_url, args.v, have), file=stderr)
+ try:
+ remove(cache_ent)
+ except OSError as err:
+ if path.exists(cache_ent):
+ print('error removing %s: %s' % (cache_ent, err), file=stderr)
+ exit(1)
+
+exclude = []
+if args.x:
+ exclude += args.x
+if args.exclude_java_sources:
+ try:
+ with ZipFile(cache_ent, 'r') as zf:
+ for n in zf.namelist():
+ if n.endswith('.java'):
+ exclude.append(n)
+ except (BadZipfile, LargeZipFile) as err:
+ print('error opening %s: %s' % (cache_ent, err), file=stderr)
+ exit(1)
+
+if args.unsign:
+ try:
+ with ZipFile(cache_ent, 'r') as zf:
+ for n in zf.namelist():
+ if (n.endswith('.RSA')
+ or n.endswith('.SF')
+ or n.endswith('.LIST')):
+ exclude.append(n)
+ except (BadZipfile, LargeZipFile) as err:
+ print('error opening %s: %s' % (cache_ent, err), file=stderr)
+ exit(1)
+
+safe_mkdirs(path.dirname(args.o))
+if exclude:
+ try:
+ shutil.copyfile(cache_ent, args.o)
+ except (shutil.Error, IOError) as err:
+ print('error copying to %s: %s' % (args.o, err), file=stderr)
+ exit(1)
+ try:
+ check_call(['zip', '-d', args.o] + exclude)
+ except CalledProcessError as err:
+ print('error removing files from zip: %s' % err, file=stderr)
+ exit(1)
+else:
+ try:
+ link(cache_ent, args.o)
+ except OSError as err:
+ try:
+ shutil.copyfile(cache_ent, args.o)
+ except (shutil.Error, IOError) as err:
+ print('error copying to %s: %s' % (args.o, err), file=stderr)
+ exit(1)
diff --git a/buck-tools/java_doc.defs b/buck-tools/java_doc.defs
new file mode 100644
index 0000000..65865bb
--- /dev/null
+++ b/buck-tools/java_doc.defs
@@ -0,0 +1,38 @@
+def java_doc(
+ name,
+ title,
+ pkgs,
+ paths,
+ srcs = [],
+ deps = [],
+ visibility = [],
+ do_it_wrong = False,
+ ):
+ if do_it_wrong:
+ sourcepath = paths
+ else:
+ sourcepath = ['$SRCDIR/' + n for n in paths]
+ genrule(
+ name = name,
+ cmd = ' '.join([
+ 'while ! test -f .buckconfig; do cd ..; done;',
+ 'javadoc',
+ '-quiet',
+ '-protected',
+ '-encoding UTF-8',
+ '-charset UTF-8',
+ '-notimestamp',
+ '-windowtitle "' + title + '"',
+ '-link http://docs.oracle.com/javase/7/docs/api',
+ '-subpackages ',
+ ':'.join(pkgs),
+ '-sourcepath ',
+ ':'.join(sourcepath),
+ ' -classpath ',
+ ':'.join(['$(classpath %s)' % n for n in deps]),
+ '-d $TMP',
+ ]) + ';jar cf $OUT -C $TMP .',
+ srcs = srcs,
+ out = name + '.jar',
+ visibility = visibility,
+)
diff --git a/buck-tools/java_sources.defs b/buck-tools/java_sources.defs
new file mode 100644
index 0000000..0b3974e
--- /dev/null
+++ b/buck-tools/java_sources.defs
@@ -0,0 +1,10 @@
+def java_sources(
+ name,
+ srcs,
+ visibility = []
+ ):
+ java_library(
+ name = name,
+ resources = srcs,
+ visibility = visibility,
+ )
diff --git a/buck-tools/pack_war.py b/buck-tools/pack_war.py
new file mode 100755
index 0000000..cd836a8
--- /dev/null
+++ b/buck-tools/pack_war.py
@@ -0,0 +1,65 @@
+#!/usr/bin/env python
+# Copyright (C) 2013 The Android Open Source Project
+#
+# 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.
+
+from __future__ import print_function
+from optparse import OptionParser
+from os import makedirs, path, symlink
+from subprocess import check_call
+import sys
+
+opts = OptionParser()
+opts.add_option('-o', help='path to write WAR to')
+opts.add_option('--lib', action='append', help='target for WEB-INF/lib')
+opts.add_option('--pgmlib', action='append', help='target for WEB-INF/pgm-lib')
+opts.add_option('--tmp', help='temporary directory')
+args, ctx = opts.parse_args()
+
+war = args.tmp
+jars = set()
+basenames = set()
+
+def prune(l):
+ return [j for e in l for j in e.split(':')]
+
+def link_jars(libs, directory):
+ makedirs(directory)
+ for j in libs:
+ if j not in jars:
+ # When jgit is consumed from its own cell,
+ # potential duplicates should be filtered.
+ # e.g. jsch.jar will be reached through:
+ # 1. /home/username/projects/gerrit/buck-out/gen/lib/jsch.jar
+ # 2. /home/username/projects/jgit/buck-out/gen/lib/jsch.jar
+ if (j.find('jgit/buck-out/gen/lib') > 0
+ and path.basename(j) in basenames):
+ continue
+ jars.add(j)
+ n = path.basename(j)
+ if j.find('buck-out/gen/gerrit-') > 0:
+ n = j[j.find('buck-out'):].split('/')[2] + '-' + n
+ basenames.add(n)
+ symlink(j, path.join(directory, n))
+
+if args.lib:
+ link_jars(prune(args.lib), path.join(war, 'WEB-INF', 'lib'))
+if args.pgmlib:
+ link_jars(prune(args.pgmlib), path.join(war, 'WEB-INF', 'pgm-lib'))
+try:
+ for s in ctx:
+ check_call(['unzip', '-q', '-d', war, s])
+ check_call(['zip', '-9qr', args.o, '.'], cwd=war)
+except KeyboardInterrupt:
+ print('Interrupted by user', file=sys.stderr)
+ exit(1)
diff --git a/buck-tools/util.py b/buck-tools/util.py
new file mode 100644
index 0000000..96f6047
--- /dev/null
+++ b/buck-tools/util.py
@@ -0,0 +1,102 @@
+# Copyright (C) 2013 The Android Open Source Project
+#
+# 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.
+
+import os
+from os import path
+
+REPO_ROOTS = {
+ 'GERRIT': 'http://gerrit-maven.storage.googleapis.com',
+ 'GERRIT_API': 'https://gerrit-api.commondatastorage.googleapis.com/release',
+ 'MAVEN_CENTRAL': 'http://repo1.maven.org/maven2',
+ 'MAVEN_LOCAL': 'file://' + path.expanduser('~/.m2/repository'),
+}
+
+
+def resolve_url(url, redirects):
+ """ Resolve URL of a Maven artifact.
+
+ prefix:path is passed as URL. prefix identifies known or custom
+ repositories that can be rewritten in redirects set, passed as
+ second arguments.
+
+ A special case is supported, when prefix neither exists in
+ REPO_ROOTS, no in redirects set: the url is returned as is.
+ This enables plugins to pass custom maven_repository URL as is
+ directly to maven_jar().
+
+ Returns a resolved path for Maven artifact.
+ """
+ s = url.find(':')
+ if s < 0:
+ return url
+ scheme, rest = url[:s], url[s+1:]
+ if scheme in redirects:
+ root = redirects[scheme]
+ elif scheme in REPO_ROOTS:
+ root = REPO_ROOTS[scheme]
+ else:
+ return url
+ root = root.rstrip('/')
+ rest = rest.lstrip('/')
+ return '/'.join([root, rest])
+
+
+def hash_file(hash_obj, path):
+ """Hash the contents of a file.
+
+ Args:
+ hash_obj: an open hash object, e.g. hashlib.sha1().
+ path: path to the file to hash.
+
+ Returns:
+ The passed-in hash_obj.
+ """
+ with open(path, 'rb') as f:
+ while True:
+ b = f.read(8192)
+ if not b:
+ break
+ hash_obj.update(b)
+ return hash_obj
+
+
+def hash_bower_component(hash_obj, path):
+ """Hash the contents of a bower component directory.
+
+ This is a stable hash of a directory downloaded with `bower install`, minus
+ the .bower.json file, which is autogenerated each time by bower. Used in lieu
+ of hashing a zipfile of the contents, since zipfiles are difficult to hash in
+ a stable manner.
+
+ Args:
+ hash_obj: an open hash object, e.g. hashlib.sha1().
+ path: path to the directory to hash.
+
+ Returns:
+ The passed-in hash_obj.
+ """
+ if not os.path.isdir(path):
+ raise ValueError('Not a directory: %s' % path)
+
+ path = os.path.abspath(path)
+ for root, dirs, files in os.walk(path):
+ dirs.sort()
+ for f in sorted(files):
+ if f == '.bower.json':
+ continue
+ p = os.path.join(root, f)
+ hash_obj.update(p[len(path)+1:])
+ hash_file(hash_obj, p)
+
+ return hash_obj
diff --git a/bucklets/maven_jar.bucklet b/bucklets/maven_jar.bucklet
new file mode 100644
index 0000000..16a3f91
--- /dev/null
+++ b/bucklets/maven_jar.bucklet
@@ -0,0 +1,180 @@
+# Copyright (C) 2013 The Android Open Source Project
+#
+# 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.
+
+GERRIT = 'GERRIT:'
+GERRIT_API = 'GERRIT_API:'
+MAVEN_CENTRAL = 'MAVEN_CENTRAL:'
+MAVEN_LOCAL = 'MAVEN_LOCAL:'
+
+def define_license(name):
+ n = 'LICENSE-' + name
+ genrule(
+ name = n,
+ cmd = 'ln -s $SRCS $OUT',
+ srcs = [n],
+ out = n,
+ visibility = ['PUBLIC'],
+ )
+
+def maven_jar(
+ name,
+ id,
+ license,
+ exclude = [],
+ exclude_java_sources = False,
+ unsign = False,
+ deps = [],
+ exported_deps = [],
+ sha1 = '', bin_sha1 = '', src_sha1 = '',
+ repository = MAVEN_CENTRAL,
+ attach_source = True,
+ visibility = ['PUBLIC'],
+ local_license = False,
+ full_url = ''):
+ from os import path
+
+ parts = id.split(':')
+ if len(parts) not in [3, 4]:
+ raise NameError('%s:\nexpected id="groupId:artifactId:version[:classifier]"'
+ % id)
+ if len(parts) == 4:
+ group, artifact, version, classifier = parts
+ else:
+ group, artifact, version = parts
+ classifier = None
+
+ # SNAPSHOT artifacts are handled differently on Google storage bucket:
+ # 'SNAPSHOT' is discarded from the directory name. However on other
+ # Maven repositories, most notable local repository located in
+ # ~/.m2/repository (and is supported through MAVEN_LOCAL repository)
+ # it must be preserved, otherwise the artifact wouldn't be found.
+ # Atm the SNAPSHOT part is only discarded for Google storage bucket.
+ if 'SNAPSHOT' in version and repository.startswith(GERRIT):
+ file_version = version.replace('-SNAPSHOT', '')
+ version = version.split('-SNAPSHOT')[0] + '-SNAPSHOT'
+ else:
+ file_version = version
+
+ if classifier is not None:
+ file_version += '-' + classifier
+
+ jar = path.join(name, artifact.lower() + '-' + file_version)
+
+ url = '/'.join([
+ repository,
+ group.replace('.', '/'), artifact, version,
+ artifact + '-' + file_version])
+
+ if full_url != '':
+ url = full_url
+
+ binjar = jar + '.jar'
+ binurl = url + '.jar'
+
+ srcjar = jar + '-src.jar'
+ srcurl = url + '-sources.jar'
+
+ cmd = ['$(exe //buck-tools:download_file)', '-o', '$OUT', '-u', binurl]
+ if sha1:
+ cmd.extend(['-v', sha1])
+ elif bin_sha1:
+ cmd.extend(['-v', bin_sha1])
+ for x in exclude:
+ cmd.extend(['-x', x])
+ if exclude_java_sources:
+ cmd.append('--exclude_java_sources')
+ if unsign:
+ cmd.append('--unsign')
+
+ genrule(
+ name = '%s__download_bin' % name,
+ cmd = ' '.join(cmd),
+ out = binjar,
+ )
+ license = ':LICENSE-' + license
+ if not local_license:
+ license = '//lib' + license
+ license = [license]
+
+ if src_sha1 or attach_source:
+ cmd = ['$(exe //buck-tools:download_file)', '-o', '$OUT', '-u', srcurl]
+ if src_sha1:
+ cmd.extend(['-v', src_sha1])
+ genrule(
+ name = '%s__download_src' % name,
+ cmd = ' '.join(cmd),
+ out = srcjar,
+ )
+ prebuilt_jar(
+ name = '%s_src' % name,
+ binary_jar = ':%s__download_src' % name,
+ deps = license,
+ visibility = visibility,
+ )
+ else:
+ srcjar = None
+ genrule(
+ name = '%s_src' % name,
+ cmd = ':>$OUT',
+ out = '__%s__no_src' % name,
+ )
+
+ if exported_deps:
+ prebuilt_jar(
+ name = '%s__jar' % name,
+ deps = deps + license,
+ binary_jar = ':%s__download_bin' % name,
+ source_jar = ':%s__download_src' % name if srcjar else None,
+ )
+ java_library(
+ name = name,
+ exported_deps = exported_deps + [':' + name + '__jar'],
+ visibility = visibility,
+ )
+ else:
+ prebuilt_jar(
+ name = name,
+ deps = deps + license,
+ binary_jar = ':%s__download_bin' % name,
+ source_jar = ':%s__download_src' % name if srcjar else None,
+ visibility = visibility,
+ )
+
+
+def merge_maven_jars(
+ name,
+ srcs,
+ visibility = []):
+
+ def cmd(jars):
+ return ('$(location //buck-tools:merge_jars) $OUT '
+ + ' '.join(['$(location %s)' % j for j in jars]))
+
+ genrule(
+ name = '%s__merged_bin' % name,
+ cmd = cmd(['%s__download_bin' % s for s in srcs]),
+ out = '%s__merged.jar' % name,
+ )
+ genrule(
+ name = '%s__merged_src' % name,
+ cmd = cmd(['%s__download_src' % s for s in srcs]),
+ # buck-tools/eclipse/project.py requires -src.jar suffix.
+ out = '%s__merged-src.jar' % name,
+ )
+ prebuilt_jar(
+ name = name,
+ binary_jar = ':%s__merged_bin' % name,
+ source_jar = ':%s__merged_src' % name,
+ visibility = visibility,
+ )
diff --git a/cli/BUCK b/cli/BUCK
new file mode 100644
index 0000000..521be31
--- /dev/null
+++ b/cli/BUCK
@@ -0,0 +1,22 @@
+SRC = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-cli'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:org.apache.karaf.shell.console',
+ '//incubator/api:onos-incubator-api',
+ '//utils/rest:onlab-rest',
+ '//core/common:onos-core-common',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'src/main/resources',
+ resources = glob(['src/main/resources/**']),
+)
+
diff --git a/core/api/BUCK b/core/api/BUCK
new file mode 100644
index 0000000..387c502
--- /dev/null
+++ b/core/api/BUCK
@@ -0,0 +1,34 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/test/java/org/onosproject/**/'
+CURRENT_NAME = 'onos-api'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:COMPILE',
+ '//utils/misc:onlab-misc',
+ '//utils/osgi:onlab-osgi',
+ '//utils/rest:onlab-rest',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ resources_root = 'src/test/resources',
+ resources = glob(['src/test/resources/**']),
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'onos-api-tests',
+ visibility = ['PUBLIC'],
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/core/common/BUCK b/core/common/BUCK
new file mode 100644
index 0000000..cbe9efc
--- /dev/null
+++ b/core/common/BUCK
@@ -0,0 +1,33 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/test/java/org/onosproject/**/'
+CURRENT_NAME = 'onos-core-common'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+SRC_DEPS = [
+ '//lib:CORE_DEPS',
+ '//incubator/api:onos-incubator-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+ '//core/api:onos-api-tests',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = SRC_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'onos-core-common-tests',
+ visibility = ['PUBLIC'],
+ srcs = glob([TEST + '/*.java']),
+ resources_root = 'src/test/resources',
+ resources = glob(['src/test/resources/**']),
+ deps = SRC_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/core/net/BUCK b/core/net/BUCK
new file mode 100644
index 0000000..42cb80c
--- /dev/null
+++ b/core/net/BUCK
@@ -0,0 +1,29 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+CURRENT_NAME = 'onos-core-net'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//incubator/api:onos-incubator-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/core/net/src/main/java/org/onosproject/net/statistic/impl/FlowStatisticManager.java b/core/net/src/main/java/org/onosproject/net/statistic/impl/FlowStatisticManager.java
index 859c4da..23b981e 100644
--- a/core/net/src/main/java/org/onosproject/net/statistic/impl/FlowStatisticManager.java
+++ b/core/net/src/main/java/org/onosproject/net/statistic/impl/FlowStatisticManager.java
@@ -25,9 +25,10 @@
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.ReferenceCardinality;
import org.apache.felix.scr.annotations.Service;
-import org.onosproject.utils.Comparators;
+
import org.onosproject.net.ConnectPoint;
import org.onosproject.net.Device;
+import org.onosproject.net.ElementId;
import org.onosproject.net.Port;
import org.onosproject.net.PortNumber;
import org.onosproject.net.device.DeviceService;
@@ -49,6 +50,7 @@
import org.slf4j.Logger;
import java.util.ArrayList;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -81,6 +83,33 @@
private final InternalFlowRuleStatsListener frListener = new InternalFlowRuleStatsListener();
+ // FIXME: refactor these comparators to be shared with the CLI implmentations
+ public static final Comparator<ElementId> ELEMENT_ID_COMPARATOR = new Comparator<ElementId>() {
+ @Override
+ public int compare(ElementId id1, ElementId id2) {
+ return id1.toString().compareTo(id2.toString());
+ }
+ };
+
+ public static final Comparator<ConnectPoint> CONNECT_POINT_COMPARATOR = new Comparator<ConnectPoint>() {
+ @Override
+ public int compare(ConnectPoint o1, ConnectPoint o2) {
+ int compareId = ELEMENT_ID_COMPARATOR.compare(o1.elementId(), o2.elementId());
+ return (compareId != 0) ?
+ compareId :
+ Long.signum(o1.port().toLong() - o2.port().toLong());
+ }
+ };
+
+ public static final Comparator<TypedFlowEntryWithLoad> TYPEFLOWENTRY_WITHLOAD_COMPARATOR =
+ new Comparator<TypedFlowEntryWithLoad>() {
+ @Override
+ public int compare(TypedFlowEntryWithLoad fe1, TypedFlowEntryWithLoad fe2) {
+ long delta = fe1.load().rate() - fe2.load().rate();
+ return delta == 0 ? 0 : (delta > 0 ? -1 : +1);
+ }
+ };
+
@Activate
public void activate() {
flowRuleService.addListener(frListener);
@@ -97,7 +126,7 @@
public Map<ConnectPoint, SummaryFlowEntryWithLoad> loadSummary(Device device) {
checkPermission(STATISTIC_READ);
- Map<ConnectPoint, SummaryFlowEntryWithLoad> summaryLoad = new TreeMap<>(Comparators.CONNECT_POINT_COMPARATOR);
+ Map<ConnectPoint, SummaryFlowEntryWithLoad> summaryLoad = new TreeMap<>(CONNECT_POINT_COMPARATOR);
if (device == null) {
return summaryLoad;
@@ -128,7 +157,7 @@
Instruction.Type instType) {
checkPermission(STATISTIC_READ);
- Map<ConnectPoint, List<TypedFlowEntryWithLoad>> allLoad = new TreeMap<>(Comparators.CONNECT_POINT_COMPARATOR);
+ Map<ConnectPoint, List<TypedFlowEntryWithLoad>> allLoad = new TreeMap<>(CONNECT_POINT_COMPARATOR);
if (device == null) {
return allLoad;
@@ -162,7 +191,7 @@
int topn) {
checkPermission(STATISTIC_READ);
- Map<ConnectPoint, List<TypedFlowEntryWithLoad>> allLoad = new TreeMap<>(Comparators.CONNECT_POINT_COMPARATOR);
+ Map<ConnectPoint, List<TypedFlowEntryWithLoad>> allLoad = new TreeMap<>(CONNECT_POINT_COMPARATOR);
if (device == null) {
return allLoad;
@@ -373,7 +402,7 @@
// Sort with descending order of load
List<TypedFlowEntryWithLoad> tfel =
- fel.stream().sorted(Comparators.TYPEFLOWENTRY_WITHLOAD_COMPARATOR).
+ fel.stream().sorted(TYPEFLOWENTRY_WITHLOAD_COMPARATOR).
limit(topn).collect(Collectors.toList());
return tfel;
diff --git a/core/security/BUCK b/core/security/BUCK
new file mode 100644
index 0000000..3618496
--- /dev/null
+++ b/core/security/BUCK
@@ -0,0 +1,29 @@
+SRC = 'src/main/java/org/onosproject/security/**/'
+TEST = 'src/test/java/org/onosproject/security/**/'
+CURRENT_NAME = 'onos-security'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//core/store/serializers:onos-core-serializers',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/core/store/dist/BUCK b/core/store/dist/BUCK
new file mode 100644
index 0000000..8653ad5
--- /dev/null
+++ b/core/store/dist/BUCK
@@ -0,0 +1,39 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/test/java/org/onosproject/**/'
+CURRENT_NAME = 'onos-core-dist'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//core/common:onos-core-common',
+ '//utils/rest:onlab-rest',
+ '//core/store/serializers:onos-core-serializers',
+ '//lib:netty-transport',
+ '//lib:netty-codec',
+ '//lib:netty-buffer',
+ '//lib:netty-handler',
+ '//lib:netty-transport-native-epoll',
+ '//lib:commons-math3',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+ '//core/api:onos-api-tests',
+ '//core/common:onos-core-common-tests',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name= 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/core/store/persistence/BUCK b/core/store/persistence/BUCK
new file mode 100644
index 0000000..3caf6ea
--- /dev/null
+++ b/core/store/persistence/BUCK
@@ -0,0 +1,30 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/test/java/org/onosproject/**/'
+CURRENT_NAME = 'onos-core-persistence'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:catalyst-serializer',
+ '//lib:mapdb',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/core/store/primitives/BUCK b/core/store/primitives/BUCK
new file mode 100644
index 0000000..1e77e32
--- /dev/null
+++ b/core/store/primitives/BUCK
@@ -0,0 +1,49 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/test/java/org/onosproject/**/'
+CURRENT_NAME = 'onos-core-primitives'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//core/common:onos-core-common',
+ '//incubator/api:onos-incubator-api',
+ '//core/store/serializers:onos-core-serializers',
+ '//lib:copycat-client',
+ '//lib:copycat-server',
+ '//lib:copycat-protocol',
+ '//lib:copycat-core',
+ '//lib:typesafe-config',
+ '//lib:copycat-api',
+ '//lib:copycat-state-machine',
+ '//lib:copycat-state-log',
+ '//lib:catalyst-transport',
+ '//lib:catalyst-buffer',
+ '//lib:catalyst-common',
+ '//lib:catalyst-local',
+ '//lib:catalyst-serializer',
+ '//lib:atomix',
+ '//lib:atomix-resource',
+ '//lib:atomix-variables',
+ '//lib:atomix-resource-manager',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+ '//core/api:onos-api-tests',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/core/store/serializers/BUCK b/core/store/serializers/BUCK
new file mode 100644
index 0000000..050269d
--- /dev/null
+++ b/core/store/serializers/BUCK
@@ -0,0 +1,29 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/test/java/org/onosproject/**/'
+CURRENT_NAME = 'onos-core-serializers'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//incubator/api:onos-incubator-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/drivers/ciena/BUCK b/drivers/ciena/BUCK
new file mode 100644
index 0000000..ec8a793
--- /dev/null
+++ b/drivers/ciena/BUCK
@@ -0,0 +1,21 @@
+SRC = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-drivers-ciena'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//incubator/api:onos-incubator-api',
+ '//utils/rest:onlab-rest',
+ '//drivers/utilities:onos-drivers-utilities',
+ '//protocols/rest/api:onos-restsb-api',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'src/main/resources',
+ resources = glob(['src/main/resources/**']),
+)
diff --git a/drivers/cisco/BUCK b/drivers/cisco/BUCK
new file mode 100644
index 0000000..3d25bff
--- /dev/null
+++ b/drivers/cisco/BUCK
@@ -0,0 +1,19 @@
+SRC = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-drivers-cisco'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//drivers/utilities:onos-drivers-utilities',
+ '//protocols/netconf/api:onos-netconf-api',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'src/main/resources',
+ resources = glob(['src/main/resources/**']),
+)
diff --git a/drivers/default/BUCK b/drivers/default/BUCK
new file mode 100644
index 0000000..7d72141
--- /dev/null
+++ b/drivers/default/BUCK
@@ -0,0 +1,35 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-drivers-default'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:openflowj',
+ '//drivers/utilities:onos-drivers-utilities',
+ '//protocols/openflow/api:onos-of-api',
+ '//core/store/serializers:onos-core-serializers',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'src/main/resources',
+ resources = glob(['src/main/resources/**']),
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/drivers/fujitsu/BUCK b/drivers/fujitsu/BUCK
new file mode 100644
index 0000000..512cc2b
--- /dev/null
+++ b/drivers/fujitsu/BUCK
@@ -0,0 +1,19 @@
+SRC = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-drivers-fujitsu'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//drivers/utilities:onos-drivers-utilities',
+ '//protocols/netconf/api:onos-netconf-api',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'src/main/resources',
+ resources = glob(['src/main/resources/**']),
+)
diff --git a/drivers/lumentum/BUCK b/drivers/lumentum/BUCK
new file mode 100644
index 0000000..0d8c328
--- /dev/null
+++ b/drivers/lumentum/BUCK
@@ -0,0 +1,19 @@
+SRC = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-drivers-lumentum'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:org.apache.servicemix.bundles.snmp4j',
+ '//drivers/utilities:onos-drivers-utilities',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'src/main/resources',
+ resources = glob(['src/main/resources/**']),
+)
diff --git a/drivers/netconf/BUCK b/drivers/netconf/BUCK
new file mode 100644
index 0000000..c292fa6
--- /dev/null
+++ b/drivers/netconf/BUCK
@@ -0,0 +1,19 @@
+SRC = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-drivers-netconf'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//drivers/utilities:onos-drivers-utilities',
+ '//protocols/netconf/api:onos-netconf-api',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'src/main/resources',
+ resources = glob(['src/main/resources/**']),
+)
diff --git a/drivers/ovsdb/BUCK b/drivers/ovsdb/BUCK
new file mode 100644
index 0000000..d1ec756
--- /dev/null
+++ b/drivers/ovsdb/BUCK
@@ -0,0 +1,20 @@
+SRC = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-drivers-ovsdb'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//drivers/utilities:onos-drivers-utilities',
+ '//protocols/ovsdb/api:onos-ovsdb-api',
+ '//protocols/ovsdb/rfc:onos-ovsdb-rfc',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'src/main/resources',
+ resources = glob(['src/main/resources/**']),
+)
diff --git a/drivers/utilities/BUCK b/drivers/utilities/BUCK
new file mode 100644
index 0000000..09c6916
--- /dev/null
+++ b/drivers/utilities/BUCK
@@ -0,0 +1,34 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/test/java/org/onosproject/**/'
+CURRENT_NAME = 'onos-drivers-utilities'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//core/net:onos-core-net',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'src/main/resources',
+ resources = glob(['src/main/resources/**']),
+)
+
+java_test(
+ name = 'onos-drivers-utilities-tests',
+ visibility = ['PUBLIC'],
+ resources_root = 'src/test/resources',
+ resources = glob(['src/test/resources/**']),
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/incubator/api/BUCK b/incubator/api/BUCK
new file mode 100644
index 0000000..13fd42b
--- /dev/null
+++ b/incubator/api/BUCK
@@ -0,0 +1,28 @@
+SRC = 'src/main/java/org/onosproject/incubator/**/'
+TEST = 'src/main/java/org/onosproject/incubator/**/'
+CURRENT_NAME = 'onos-incubator-api'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/incubator/net/BUCK b/incubator/net/BUCK
new file mode 100644
index 0000000..8a87455
--- /dev/null
+++ b/incubator/net/BUCK
@@ -0,0 +1,29 @@
+SRC = 'src/main/java/org/onosproject/incubator/net/**/'
+TEST = 'src/main/java/org/onosproject/incubator/net/**/'
+CURRENT_NAME = 'onos-incubator-net'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//incubator/api:onos-incubator-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/lib/BUCK b/lib/BUCK
new file mode 100644
index 0000000..24d4c3a
--- /dev/null
+++ b/lib/BUCK
@@ -0,0 +1,778 @@
+def define_license(name):
+ n = 'LICENSE-' + name
+ genrule(
+ name = n,
+ cmd = 'ln -s $SRCS $OUT',
+ srcs = [n],
+ out = n,
+ visibility = ['PUBLIC'],
+ )
+
+define_license(name = 'Apache2.0')
+
+include_defs('//bucklets/maven_jar.bucklet')
+
+java_library(
+ name = 'COMPILE',
+ visibility = ['PUBLIC'],
+ exported_deps = [
+ ':joda-time',
+ ':commons-configuration',
+ ':commons-logging',
+ ':commons-collections',
+ ':commons-lang3',
+ ':commons-io',
+ ':commons-pool',
+ ':objenesis',
+ ':guava',
+ ':netty',
+ ':netty-common',
+ ':commons-lang',
+ ':minimal-json',
+ ':kryo',
+ ':reflectasm',
+ ':asm',
+ ':minlog',
+ ':metrics-core',
+ ':metrics-json',
+ ':slf4j-api',
+ ':osgi-core',
+ ':org.osgi.compendium',
+ ':org.apache.felix.scr.annotations',
+ ':org.apache.felix.scr',
+ ':jackson-annotations',
+ ':jackson-core',
+ ':jackson-databind',
+ ':org.apache.karaf.features.core',
+ ':org.apache.karaf.system.core',
+
+# Is this still needed?
+ ':jsr305',
+ ],
+)
+
+java_library(
+ name = 'CORE_DEPS',
+ visibility = ['PUBLIC'],
+ exported_deps = [
+ ':COMPILE',
+ '//core/api:onos-api',
+ '//utils/misc:onlab-misc',
+ '//utils/osgi:onlab-osgi',
+ ],
+)
+
+java_library(
+ name = 'TEST',
+ visibility = ['PUBLIC'],
+ exported_deps = [
+ ':junit',
+ ':easymock',
+ ':hamcrest-core',
+ ':hamcrest-library',
+ ':hamcrest-all',
+ ':guava-testlib',
+ '//utils/junit:onlab-junit',
+ ],
+)
+
+maven_jar(
+ name = 'minimal-json',
+ id = 'com.eclipsesource.minimal-json:minimal-json:0.9.4',
+ sha1 = 'd6e7dd22569de97c2697a4af301a623f35028972',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'kryo',
+ id = 'com.esotericsoftware:kryo:3.0.0',
+ sha1 = '86f0de889ece7c30115d27d1c56246fd509201a8',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'minlog',
+ id = 'com.esotericsoftware:minlog:1.3.0',
+ sha1 = 'ff07b5f1b01d2f92bb00a337f9a94873712f0827',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'reflectasm',
+ id = 'com.esotericsoftware:reflectasm:1.11.0',
+ sha1 = 'f747d8b017a26bac575f8da14e8c1df6aecd3154',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'jackson-annotations',
+ id = 'com.fasterxml.jackson.core:jackson-annotations:2.7.0',
+ sha1 = '19f42c154ffc689f40a77613bc32caeb17d744e3',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'org.apache.felix.scr',
+ id = 'org.apache.felix:org.apache.felix.scr:1.8.2',
+ sha1 = 'c3047d56ee57de0752821fd9c3894dda664f2e37',
+ license = 'Apache2.0',
+)
+
+
+
+maven_jar(
+ name = 'jackson-core',
+ id = 'com.fasterxml.jackson.core:jackson-core:2.7.0',
+ sha1 = '05f2bfd0866bcacbcc7c25ce25f80b5aeed0f72f',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'jackson-databind',
+ id = 'com.fasterxml.jackson.core:jackson-databind:2.7.0',
+ sha1 = '7d3430de9f2b600b074ba3bc007edcfbc4bbf4fb',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'jsr305',
+ id = 'com.google.code.findbugs:jsr305:3.0.1',
+ sha1 = 'f7be08ec23c21485b9b5a1cf1654c2ec8c58168d',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'error_prone_annotations',
+ id = 'com.google.errorprone:error_prone_annotations:2.0.2',
+ sha1 = '8382c6cdc18c8c8ad7840024fa340509cf16be11',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'guava',
+ id = 'com.google.guava:guava:19.0',
+ sha1 = '6ce200f6b23222af3d8abb6b6459e6c44f4bb0e9',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'guava-testlib',
+ id = 'com.google.guava:guava-testlib:19.0',
+ sha1 = 'ce5b880b206de3f76d364988a6308c68c726f74a',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'commons-collections',
+ id = 'commons-collections:commons-collections:3.2.2',
+ sha1 = '8ad72fe39fa8c91eaaf12aadb21e0c3661fe26d5',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'commons-configuration',
+ id = 'commons-configuration:commons-configuration:1.10',
+ sha1 = '2b36e4adfb66d966c5aef2d73deb6be716389dc9',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'commons-lang',
+ id = 'commons-lang:commons-lang:2.6',
+ sha1 = '0ce1edb914c94ebc388f086c6827e8bdeec71ac2',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'commons-logging',
+ id = 'commons-logging:commons-logging:1.1.1',
+ sha1 = '5043bfebc3db072ed80fbd362e7caf00e885d8ae',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'commons-pool',
+ id = 'commons-pool:commons-pool:1.6',
+ sha1 = '4572d589699f09d866a226a14b7f4323c6d8f040',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'commons-io',
+ id = 'commons-io:commons-io:2.4',
+ sha1 = 'b1b6ea3b7e4aa4f492509a4952029cd8e48019ad',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'metrics-core',
+ id = 'io.dropwizard.metrics:metrics-core:3.1.0',
+ sha1 = '40e16d596ca49964a88bbce2261e387895b3499e',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'metrics-json',
+ id = 'io.dropwizard.metrics:metrics-json:3.1.0',
+ sha1 = '47b1c72af77ca81771422269b807ef6198392741',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'netty',
+ id = 'io.netty:netty:3.10.5.Final',
+ sha1 = '9ca7d55d246092bddd29b867706e2f6c7db701a0',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'netty-buffer',
+ id = 'io.netty:netty-buffer:4.0.33.Final',
+ sha1 = 'dd14c35b020af7aa1c6fed7ec5e67a2aa165619e',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'netty-codec',
+ id = 'io.netty:netty-codec:4.0.33.Final',
+ sha1 = '56c31f1e373a9374f56173383fe8b6e089ea0351',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'netty-common',
+ id = 'io.netty:netty-common:4.0.33.Final',
+ sha1 = '1a1fde71cb95a6e18754b0fd7ac6749f15a86543',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'netty-handler',
+ id = 'io.netty:netty-handler:4.0.33.Final',
+ sha1 = '88325df280c3ba83011cf442883f9f55dc83d5bb',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'netty-transport',
+ id = 'io.netty:netty-transport:4.0.33.Final',
+ sha1 = '287c2378318efc12d6bfe00835cd66317fc53dcd',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'netty-transport-native-epoll',
+ id = 'io.netty:netty-transport-native-epoll:4.0.33.Final',
+ sha1 = 'f17c2b172e28e9447e0ecf1a87bc4ce3d45647f0',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'joda-time',
+ id = 'joda-time:joda-time:2.9',
+ sha1 = 'e8a58b7f5853b693b8c4795a714fe77c266c3acc',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'junit',
+ id = 'junit:junit:4.12',
+ sha1 = '2973d150c0dc1fefe998f834810d68f278ea58ec',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'commons-lang3',
+ id = 'org.apache.commons:commons-lang3:3.4',
+ sha1 = '5fe28b9518e58819180a43a850fbc0dd24b7c050',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'commons-math3',
+ id = 'org.apache.commons:commons-math3:3.2',
+ sha1 = 'ec2544ab27e110d2d431bdad7d538ed509b21e62',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'org.apache.felix.scr.annotations',
+ id = 'org.apache.felix:org.apache.felix.scr.annotations:1.9.12',
+ sha1 = '5fdc34da641dda8b9165c2be93211479a186da9c',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'org.apache.karaf.features.core',
+ id = 'org.apache.karaf.features:org.apache.karaf.features.core:3.0.5',
+ sha1 = '595b5ddfc4eccad090cb2a1eb14e2ba3cebcb5de',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'org.apache.karaf.system.core',
+ id = 'org.apache.karaf.system:org.apache.karaf.system.core:3.0.5',
+ sha1 = '9740da22ad1c07b2651d837277f0e910a2fc2300',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'easymock',
+ id = 'org.easymock:easymock:3.4',
+ sha1 = '9fdeea183a399f25c2469497612cad131e920fa3',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'hamcrest-core',
+ id = 'org.hamcrest:hamcrest-core:1.3',
+ sha1 = '42a25dc3219429f0e5d060061f71acb49bf010a0',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'hamcrest-library',
+ id = 'org.hamcrest:hamcrest-library:1.3',
+ sha1 = '4785a3c21320980282f9f33d0d1264a69040538f',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'hamcrest-all',
+ id = 'org.hamcrest:hamcrest-all:1.3',
+ sha1 = '63a21ebc981131004ad02e0434e799fd7f3a8d5a',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'mapdb',
+ id = 'org.mapdb:mapdb:1.0.8',
+ sha1 = '64485a221d9095fc7ab9b50cc34c6b4b58467e2e',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'objenesis',
+ id = 'org.objenesis:objenesis:2.2',
+ sha1 = '3fb533efdaa50a768c394aa4624144cf8df17845',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'org.osgi.compendium',
+ id = 'org.osgi:org.osgi.compendium:4.3.1',
+ sha1 = 'd1c9d7819de47d938a96ac2a3813bfd914684cf4',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'osgi-core',
+ id = 'org.osgi:org.osgi.core:4.3.1',
+ sha1 = '5458ffe2ba049e76c29f2df2dc3ffccddf8b839e',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'asm',
+ id = 'org.ow2.asm:asm:4.2',
+ sha1 = '4b2c12b92dd045aeabf5b2aeeb3220bf010da9d4',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'slf4j-api',
+ id = 'org.slf4j:slf4j-api:1.7.13',
+ sha1 = '7fcf30c25b8f4a9379b9dad0d3f487b25272c026',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'slf4j-jdk14',
+ id = 'org.slf4j:slf4j-jdk14:1.7.13',
+ sha1 = 'bcc4dd3bffd6bce845164140bdf18ce14e76b423',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'javax.ws.rs-api',
+ id = 'javax.ws.rs:javax.ws.rs-api:2.0.1',
+ sha1 = '104e9c2b5583cfcfeac0402316221648d6d8ea6b',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'jersey-client',
+ id = 'org.glassfish.jersey.core:jersey-client:2.22.2',
+ sha1 = '1712fff037ce5a59e3d67f90fff29222989799ee',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'jersey-common',
+ id = 'org.glassfish.jersey.core:jersey-common:2.22.2',
+ sha1 = '1209b89878b60ce7d49afadeff7522d2fde0e217',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'jersey-server',
+ id = 'org.glassfish.jersey.core:jersey-server:2.22.2',
+ sha1 = '5ede3e5f98f8b14d31d1d0fffe9908df2bd41c0f',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'jersey-test-framework-core',
+ id = 'org.glassfish.jersey.test-framework:jersey-test-framework-core:2.22.2',
+ sha1 = '0abc7ab1ac424392d8761798318f706de40fef4d',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'jersey-test-framework-grizzly2',
+ id = 'org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-grizzly2:2.22.2',
+ sha1 = '05aa3952528f09ce94360ab238446163d2544344',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'jersey-media-multipart',
+ id = 'org.glassfish.jersey.media:jersey-media-multipart:2.22.2',
+ sha1 = '304107e42563307acd337c20734148cca41cda91',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'hk2-api',
+ id = 'org.glassfish.hk2:hk2-api:2.4.0-b34',
+ sha1 = '1017432e219dbd1d4a1121b2d7e87c5b2f0bcfb9',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'aopalliance-repackaged',
+ id = 'org.glassfish.hk2.external:aopalliance-repackaged:2.4.0-b34',
+ sha1 = '3d5e856dbc91a3a2b0bcb3a3424f8b62421ae4cf',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'jersey-guava',
+ id = 'org.glassfish.jersey.bundles.repackaged:jersey-guava:2.22.2',
+ sha1 = '7422c693c89640c9685dfa99dbef2da745aa4617',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'javax.inject',
+ id = 'org.glassfish.hk2.external:javax.inject:2.4.0-b34',
+ sha1 = 'a6a3d4935af7b03e44126b5aac2c2a0ce98fe6e9',
+ license = 'Apache2.0',
+)
+
+
+maven_jar(
+ name = 'servlet-api',
+ id = 'javax.servlet:servlet-api:2.5',
+ sha1 = '5959582d97d8b61f4d154ca9e495aafd16726e34',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'atomix',
+ id = 'io.atomix:atomix:1.0.0-rc3',
+ sha1 = 'a572aa9cd069b2d43481901dc901429d0b43332f',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'atomix-collections',
+ id = 'io.atomix:atomix-collections:1.0.0-rc3',
+ sha1 = '161dbfd046cefabe7e6c972e70823c11f7abe65e',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'atomix-coordination',
+ id = 'io.atomix:atomix-coordination:1.0.0-rc3',
+ sha1 = '182a2618cbef13e6efe58b85aadfa1176b9d08f3',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'atomix-messaging',
+ id = 'io.atomix:atomix-messaging:1.0.0-rc3',
+ sha1 = '58b570d8e3e76a0d0c649b97f3ee0a6e3885958a',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'atomix-resource',
+ id = 'io.atomix:atomix-resource:1.0.0-rc3',
+ sha1 = 'e47a40d38e6241544ec75df0e6906c209190aebf',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'atomix-resource-manager',
+ id = 'io.atomix:atomix-resource-manager:1.0.0-rc3',
+ sha1 = '41a4cf53c27df12efb04832e1314a81c09c857cb',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'atomix-variables',
+ id = 'io.atomix:atomix-variables:1.0.0-rc3',
+ sha1 = 'dd0ca3c0d211b17b291877e21f0ef10f2aa4a9bd',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'catalyst-buffer',
+ id = 'io.atomix.catalyst:catalyst-buffer:1.0.4',
+ sha1 = '00fb023ebd860d44385750790328aa26a529c75f',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'catalyst-common',
+ id = 'io.atomix.catalyst:catalyst-common:1.0.4',
+ sha1 = '69d50a64ecf9f63de430aead9dc4b743d29f0195',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'catalyst-local',
+ id = 'io.atomix.catalyst:catalyst-local:1.0.4',
+ sha1 = 'cbee759c63ce9127c979f4f399d327551644270f',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'catalyst-serializer',
+ id = 'io.atomix.catalyst:catalyst-serializer:1.0.4',
+ sha1 = 'e86352776cf4fa17eabf4e1d90fe0587ced4f788',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'catalyst-transport',
+ id = 'io.atomix.catalyst:catalyst-transport:1.0.4',
+ sha1 = 'f36600add086a8848290cad9d6d117634b5bf069',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'copycat-client',
+ id = 'io.atomix.copycat:copycat-client:1.0.0-rc4',
+ sha1 = '9373c8920a57356b78896d791296a74a2eb868b4',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'copycat-protocol',
+ id = 'io.atomix.copycat:copycat-protocol:1.0.0-rc4',
+ sha1 = 'cea774c2e4ce7021a6bfca64fd885e875f01f4dc',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'copycat-server',
+ id = 'io.atomix.copycat:copycat-server:1.0.0-rc4',
+ sha1 = 'e2b6603dbd299d7b21685211df509dd4fbd2f0e9',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'copycat-core',
+ id = 'org.onosproject:copycat-core:0.5.1.onos',
+ sha1 = 'b268f3cbdd57f28244b21b2b8fc08116f63d736d',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'copycat-event-log',
+ id = 'org.onosproject:copycat-event-log:0.5.1.onos',
+ sha1 = 'a9e32b13e6500c66113202e7d123e7184b726054',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'copycat-leader-election',
+ id = 'org.onosproject:copycat-leader-election:0.5.1.onos',
+ sha1 = 'a33617e98caf4e909d7ac744e1f6cdd1ba4b1698',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'copycat-state-log',
+ id = 'org.onosproject:copycat-state-log:0.5.1.onos',
+ sha1 = '1dfa2b4c6da1cdc453fd3740cd506b9570f118ea',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'copycat-state-machine',
+ id = 'org.onosproject:copycat-state-machine:0.5.1.onos',
+ sha1 = '03f924b5c818c0684bdfa6c502e5fff8e07d6b77',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'copycat-api',
+ id = 'org.onosproject:copycat-api:0.5.1.onos',
+ sha1 = 'b947348875485814e2a175a0435cdae4138452fc',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'typesafe-config',
+ id = 'com.typesafe:config:1.2.1',
+ sha1 = 'f771f71fdae3df231bcd54d5ca2d57f0bf93f467',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'org.apache.karaf.shell.console',
+ id = 'org.apache.karaf.shell:org.apache.karaf.shell.console:3.0.5',
+ sha1 = 'bf60152b180919152f532ddbd96c7563c11bb048',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'httpclient-osgi',
+ id = 'org.apache.httpcomponents:httpclient-osgi:4.5.1',
+ sha1 = '0220a68ff36e5b0fa71b5dc0b1dc1d4ad2dcf524',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'httpcore-osgi',
+ id = 'org.apache.httpcomponents:httpcore-osgi:4.4.4',
+ sha1 = 'd5c14055e569afca96f4603d6f9d467bc72ccba8',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'ganymed-ssh2',
+ id = 'ch.ethz.ganymed:ganymed-ssh2:262',
+ sha1 = '7761dc665d0f6993dc846d914214fb93291e2bdf',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'openflowj',
+ id = 'org.onosproject:openflowj:0.9.2.onos',
+ sha1 = '7cd6a35f6638f8ee3f5415484842bf95a4e619db',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'org.apache.servicemix.bundles.snmp4j',
+ id = 'org.apache.servicemix.bundles:org.apache.servicemix.bundles.snmp4j:2.3.4_1',
+ sha1 = '5134e0b60a6d88b26fe4dec03488efe4f2463e65',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'jetty-websocket',
+ id = 'org.eclipse.jetty:jetty-websocket:8.1.18.v20150929',
+ sha1 = '4a1610515aed4f02e7cb6ab0db564489d4d44d9f',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'jetty-util',
+ id = 'org.eclipse.jetty:jetty-util:8.1.18.v20150929',
+ sha1 = 'fb8fb3debf99a626c827535bf06451a337c6b085',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'jsch',
+ id = 'com.jcraft:jsch:0.1.53',
+ sha1 = '658b682d5c817b27ae795637dfec047c63d29935',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'rrd4j',
+ id = 'org.rrd4j:rrd4j:2.2',
+ sha1 = 'e5aee992ece8c82291b77bef96cd1d11c1e0a009',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'metrics-influxdb',
+ id = 'com.izettle:metrics-influxdb:1.1.1',
+ sha1 = 'a911d778c2f8607dd4e7a4cdb9b0cd97adcd0343',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'influxdb-java',
+ id = 'org.influxdb:influxdb-java:2.1',
+ sha1 = 'd2fe39fb8db1d823e64fc7ea54b779e1cab917c7',
+ license = 'Apache2.0',
+)
+
+
+maven_jar(
+ name = 'gmetric4j',
+ id = 'info.ganglia.gmetric4j:gmetric4j:1.0.10',
+ sha1 = '3d62003123b586adb86cb028cc0f8a8c3a701d81',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'metrics-ganglia',
+ id = 'io.dropwizard.metrics:metrics-ganglia:3.1.2',
+ sha1 = '2a4e2fcd6436f9b1771f0f9b6bab445dddcf704f',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'concurrent-trees',
+ id = 'com.googlecode.concurrent-trees:concurrent-trees:2.4.0',
+ sha1 = '2e505b78f9216abebbbdf1c3254bf9f4c565ae43',
+ license = 'Apache2.0',
+)
+
+
+# These SNMP libraries don't have release versions, so we access them directly by snapshot id. The SNMP provider is due for a refactoring
+# overhaul to fix some of these bogus dependencies.
+
+maven_jar(
+ name = 'snmp-core',
+ full_url = 'https://oss.sonatype.org/content/repositories/snapshots/com/btisystems/snmp-core/1.3-SNAPSHOT/snmp-core-1.3-20151110.124757-1',
+ id = 'com.btisystems:snmp-core:1.3-SNAPSHOT-20151110.124757-1',
+ repository = 'https://oss.sonatype.org/content/repositories/snapshots',
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'bti7000',
+ id = 'com.btisystems.mibbler.mibs:bti7000:1.0-SNAPSHOT',
+ repository = 'https://oss.sonatype.org/content/repositories/snapshots',
+ full_url = 'https://oss.sonatype.org/content/repositories/snapshots/com/btisystems/mibbler/mibs/bti7000/1.0-SNAPSHOT/bti7000-1.0-20151221.113001-4',
+ attach_source = False,
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'mibs-net-snmp',
+ id = 'com.btisystems.mibbler.mibs:net-snmp:1.0-SNAPSHOT',
+ repository = 'https://oss.sonatype.org/content/repositories/snapshots',
+ full_url = 'https://oss.sonatype.org/content/repositories/snapshots/com/btisystems/mibbler/mibs/net-snmp/1.0-SNAPSHOT/net-snmp-1.0-20151221.112958-4',
+ attach_source = False,
+ license = 'Apache2.0',
+)
+
+maven_jar(
+ name = 'mibs-rfc',
+ id = 'com.btisystems.mibbler.mibs:rfc:1.0-SNAPSHOT',
+ repository = 'https://oss.sonatype.org/content/repositories/snapshots',
+ full_url = 'https://oss.sonatype.org/content/repositories/snapshots/com/btisystems/mibbler/mibs/rfc/1.0-SNAPSHOT/rfc-1.0-20151221.113000-6',
+ attach_source = False,
+ license = 'Apache2.0',
+)
diff --git a/lib/LICENSE-Apache2.0 b/lib/LICENSE-Apache2.0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lib/LICENSE-Apache2.0
diff --git a/protocols/bgp/api/BUCK b/protocols/bgp/api/BUCK
new file mode 100644
index 0000000..5f295c9
--- /dev/null
+++ b/protocols/bgp/api/BUCK
@@ -0,0 +1,16 @@
+SRC = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-bgp-api'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//protocols/bgp/bgpio:onos-bgpio',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
diff --git a/protocols/bgp/bgpio/BUCK b/protocols/bgp/bgpio/BUCK
new file mode 100644
index 0000000..645be9e
--- /dev/null
+++ b/protocols/bgp/bgpio/BUCK
@@ -0,0 +1,28 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/test/java/org/onosproject/**/'
+CURRENT_NAME = 'onos-bgpio'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/protocols/bgp/ctl/BUCK b/protocols/bgp/ctl/BUCK
new file mode 100644
index 0000000..e4d653c
--- /dev/null
+++ b/protocols/bgp/ctl/BUCK
@@ -0,0 +1,34 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/test/java/org/onosproject/**/'
+CURRENT_NAME = 'onos-bgp-ctl'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:jersey-client',
+ '//lib:httpclient-osgi',
+ '//lib:httpcore-osgi',
+ '//lib:javax.ws.rs-api',
+ '//protocols/bgp/api:onos-bgp-api',
+ '//protocols/bgp/bgpio:onos-bgpio',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/protocols/netconf/api/BUCK b/protocols/netconf/api/BUCK
new file mode 100644
index 0000000..6625366
--- /dev/null
+++ b/protocols/netconf/api/BUCK
@@ -0,0 +1,15 @@
+SRC = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-netconf-api'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
diff --git a/protocols/netconf/ctl/BUCK b/protocols/netconf/ctl/BUCK
new file mode 100644
index 0000000..dae0d7c
--- /dev/null
+++ b/protocols/netconf/ctl/BUCK
@@ -0,0 +1,30 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/test/java/org/onosproject/**/'
+CURRENT_NAME = 'onos-netconf-ctl'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:ganymed-ssh2',
+ '//protocols/netconf/api:onos-netconf-api'
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/protocols/openflow/api/BUCK b/protocols/openflow/api/BUCK
new file mode 100644
index 0000000..cdd21c3
--- /dev/null
+++ b/protocols/openflow/api/BUCK
@@ -0,0 +1,30 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/test/java/org/onosproject/**/'
+CURRENT_NAME = 'onos-of-api'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:openflowj',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+ '//core/api:onos-api-tests',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/protocols/openflow/ctl/BUCK b/protocols/openflow/ctl/BUCK
new file mode 100644
index 0000000..3c2cd91
--- /dev/null
+++ b/protocols/openflow/ctl/BUCK
@@ -0,0 +1,31 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/test/java/org/onosproject/**/'
+CURRENT_NAME = 'onos-of-ctl'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:openflowj',
+ '//protocols/openflow/api:onos-of-api'
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+ '//core/api:onos-api-tests',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/protocols/openflow/ctl/src/test/java/org/onosproject/openflow/controller/impl/OpenFlowControllerImplTest.java b/protocols/openflow/ctl/src/test/java/org/onosproject/openflow/controller/impl/OpenFlowControllerImplTest.java
index 56d422a..626c8ff 100644
--- a/protocols/openflow/ctl/src/test/java/org/onosproject/openflow/controller/impl/OpenFlowControllerImplTest.java
+++ b/protocols/openflow/ctl/src/test/java/org/onosproject/openflow/controller/impl/OpenFlowControllerImplTest.java
@@ -144,7 +144,7 @@
replay(mockConfigService);
ComponentContext mockContext = EasyMock.createMock(ComponentContext.class);
- Dictionary<String, String> properties = new Hashtable<>();
+ Dictionary<String, Object> properties = new Hashtable<>();
properties.put("openflowPorts",
Integer.toString(TestTools.findAvailablePort(0)));
expect(mockContext.getProperties()).andReturn(properties);
diff --git a/protocols/ospf/api/BUCK b/protocols/ospf/api/BUCK
new file mode 100644
index 0000000..e9f3762
--- /dev/null
+++ b/protocols/ospf/api/BUCK
@@ -0,0 +1,28 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/test/java/org/onosproject/**/'
+CURRENT_NAME = 'onos-ospf-api'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/protocols/ospf/ctl/BUCK b/protocols/ospf/ctl/BUCK
new file mode 100644
index 0000000..df0e85b
--- /dev/null
+++ b/protocols/ospf/ctl/BUCK
@@ -0,0 +1,30 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/test/java/org/onosproject/**/'
+CURRENT_NAME = 'onos-ospf-ctl'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//protocols/ospf/api:onos-ospf-api',
+ '//protocols/ospf/protocol:onos-ospf-protocol',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/protocols/ospf/protocol/BUCK b/protocols/ospf/protocol/BUCK
new file mode 100644
index 0000000..ee5bc2e
--- /dev/null
+++ b/protocols/ospf/protocol/BUCK
@@ -0,0 +1,29 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/test/java/org/onosproject/**/'
+CURRENT_NAME = 'onos-ospf-protocol'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//protocols/ospf/api:onos-ospf-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/protocols/ovsdb/api/BUCK b/protocols/ovsdb/api/BUCK
new file mode 100644
index 0000000..a3a2279
--- /dev/null
+++ b/protocols/ovsdb/api/BUCK
@@ -0,0 +1,30 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/test/java/org/onosproject/**/'
+CURRENT_NAME = 'onos-ovsdb-api'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:netty-transport',
+ '//protocols/ovsdb/rfc:onos-ovsdb-rfc',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/protocols/ovsdb/ctl/BUCK b/protocols/ovsdb/ctl/BUCK
new file mode 100644
index 0000000..500358c
--- /dev/null
+++ b/protocols/ovsdb/ctl/BUCK
@@ -0,0 +1,34 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/test/java/org/onosproject/**/'
+CURRENT_NAME = 'onos-ovsdb-ctl'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:netty-transport',
+ '//lib:netty-buffer',
+ '//lib:netty-codec',
+ '//lib:netty-handler',
+ '//protocols/ovsdb/rfc:onos-ovsdb-rfc',
+ '//protocols/ovsdb/api:onos-ovsdb-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/protocols/ovsdb/rfc/BUCK b/protocols/ovsdb/rfc/BUCK
new file mode 100644
index 0000000..75edeb3
--- /dev/null
+++ b/protocols/ovsdb/rfc/BUCK
@@ -0,0 +1,18 @@
+SRC = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-ovsdb-rfc'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:netty-buffer',
+ '//lib:netty-codec',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
diff --git a/protocols/pcep/api/BUCK b/protocols/pcep/api/BUCK
new file mode 100644
index 0000000..a3f344e
--- /dev/null
+++ b/protocols/pcep/api/BUCK
@@ -0,0 +1,17 @@
+SRC = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-pcep-controller-api'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//protocols/pcep/pcepio:onos-pcep-pcepio',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
diff --git a/protocols/pcep/ctl/BUCK b/protocols/pcep/ctl/BUCK
new file mode 100644
index 0000000..a3c8e66
--- /dev/null
+++ b/protocols/pcep/ctl/BUCK
@@ -0,0 +1,18 @@
+SRC = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-pcep-ctl'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//protocols/pcep/pcepio:onos-pcep-pcepio',
+ '//protocols/pcep/api:onos-pcep-controller-api',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
diff --git a/protocols/pcep/pcepio/BUCK b/protocols/pcep/pcepio/BUCK
new file mode 100644
index 0000000..1fb7c5b
--- /dev/null
+++ b/protocols/pcep/pcepio/BUCK
@@ -0,0 +1,28 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/test/java/org/onosproject/**/'
+CURRENT_NAME = 'onos-pcep-pcepio'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/protocols/rest/api/BUCK b/protocols/rest/api/BUCK
new file mode 100644
index 0000000..f3116ad
--- /dev/null
+++ b/protocols/rest/api/BUCK
@@ -0,0 +1,17 @@
+SRC = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-restsb-api'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//incubator/api:onos-incubator-api',
+ '//utils/rest:onlab-rest',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
diff --git a/protocols/rest/ctl/BUCK b/protocols/rest/ctl/BUCK
new file mode 100644
index 0000000..1fc0618
--- /dev/null
+++ b/protocols/rest/ctl/BUCK
@@ -0,0 +1,38 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/test/java/org/onosproject/**/'
+CURRENT_NAME = 'onos-restsb-ctl'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:jersey-client',
+ '//lib:jersey-common',
+ '//lib:httpclient-osgi',
+ '//lib:httpcore-osgi',
+ '//lib:javax.ws.rs-api',
+ '//lib:hk2-api',
+ '//lib:jersey-guava',
+ '//lib:aopalliance-repackaged',
+ '//lib:javax.inject',
+ '//protocols/rest/api:onos-restsb-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/providers/bgp/cfg/BUCK b/providers/bgp/cfg/BUCK
new file mode 100644
index 0000000..8c5b713
--- /dev/null
+++ b/providers/bgp/cfg/BUCK
@@ -0,0 +1,16 @@
+SRC = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-bgp-provider-cfg'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//protocols/bgp/api:onos-bgp-api',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
diff --git a/providers/bgp/flow/BUCK b/providers/bgp/flow/BUCK
new file mode 100644
index 0000000..b900d14
--- /dev/null
+++ b/providers/bgp/flow/BUCK
@@ -0,0 +1,16 @@
+SRC = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-bgp-provider-flow'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//protocols/bgp/api:onos-bgp-api',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
diff --git a/providers/bgp/topology/BUCK b/providers/bgp/topology/BUCK
new file mode 100644
index 0000000..e0f5321
--- /dev/null
+++ b/providers/bgp/topology/BUCK
@@ -0,0 +1,31 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-bgp-provider-topology'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//protocols/bgp/api:onos-bgp-api',
+ '//protocols/bgp/bgpio:onos-bgpio',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/providers/host/BUCK b/providers/host/BUCK
new file mode 100644
index 0000000..f8bedb1
--- /dev/null
+++ b/providers/host/BUCK
@@ -0,0 +1,15 @@
+SRC = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-host-provider'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
diff --git a/providers/lldp/BUCK b/providers/lldp/BUCK
new file mode 100644
index 0000000..99d526d
--- /dev/null
+++ b/providers/lldp/BUCK
@@ -0,0 +1,30 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-lldp-provider'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//providers/lldpcommon:onos-lldp-provider-common',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/providers/lldpcommon/BUCK b/providers/lldpcommon/BUCK
new file mode 100644
index 0000000..f9b1b12
--- /dev/null
+++ b/providers/lldpcommon/BUCK
@@ -0,0 +1,29 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-lldp-provider-common'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/providers/netcfghost/BUCK b/providers/netcfghost/BUCK
new file mode 100644
index 0000000..51fe94b
--- /dev/null
+++ b/providers/netcfghost/BUCK
@@ -0,0 +1,29 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-netcfg-links-provider'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/providers/netcfglinks/BUCK b/providers/netcfglinks/BUCK
new file mode 100644
index 0000000..c752714
--- /dev/null
+++ b/providers/netcfglinks/BUCK
@@ -0,0 +1,30 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-netcfg-links-provider'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//providers/lldpcommon:onos-lldp-provider-common',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/providers/netconf/device/BUCK b/providers/netconf/device/BUCK
new file mode 100644
index 0000000..6206f12
--- /dev/null
+++ b/providers/netconf/device/BUCK
@@ -0,0 +1,17 @@
+SRC = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-netconf-provider-device'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//incubator/api:onos-incubator-api',
+ '//protocols/netconf/api:onos-netconf-api',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
diff --git a/providers/null/BUCK b/providers/null/BUCK
new file mode 100644
index 0000000..a449353
--- /dev/null
+++ b/providers/null/BUCK
@@ -0,0 +1,31 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-null-providers'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:org.apache.karaf.shell.console',
+ '//cli:onos-cli',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/providers/openflow/device/BUCK b/providers/openflow/device/BUCK
new file mode 100644
index 0000000..b243b36
--- /dev/null
+++ b/providers/openflow/device/BUCK
@@ -0,0 +1,31 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-of-provider-device'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:openflowj',
+ '//protocols/openflow/api:onos-of-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/providers/openflow/flow/BUCK b/providers/openflow/flow/BUCK
new file mode 100644
index 0000000..299e97d
--- /dev/null
+++ b/providers/openflow/flow/BUCK
@@ -0,0 +1,31 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-of-provider-flow'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:openflowj',
+ '//protocols/openflow/api:onos-of-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/providers/openflow/group/BUCK b/providers/openflow/group/BUCK
new file mode 100644
index 0000000..0636c42
--- /dev/null
+++ b/providers/openflow/group/BUCK
@@ -0,0 +1,31 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-of-provider-group'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:openflowj',
+ '//protocols/openflow/api:onos-of-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/providers/openflow/message/BUCK b/providers/openflow/message/BUCK
new file mode 100644
index 0000000..139062a
--- /dev/null
+++ b/providers/openflow/message/BUCK
@@ -0,0 +1,32 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-of-provider-message'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:openflowj',
+ '//protocols/openflow/api:onos-of-api',
+ '//apps/cpman/api:onos-app-cpman-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/providers/openflow/meter/BUCK b/providers/openflow/meter/BUCK
new file mode 100644
index 0000000..2d9cc70
--- /dev/null
+++ b/providers/openflow/meter/BUCK
@@ -0,0 +1,31 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-of-provider-meter'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:openflowj',
+ '//protocols/openflow/api:onos-of-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/providers/openflow/packet/BUCK b/providers/openflow/packet/BUCK
new file mode 100644
index 0000000..0356876
--- /dev/null
+++ b/providers/openflow/packet/BUCK
@@ -0,0 +1,31 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-of-provider-packet'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:openflowj',
+ '//protocols/openflow/api:onos-of-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/providers/ovsdb/device/BUCK b/providers/ovsdb/device/BUCK
new file mode 100644
index 0000000..e9aa0b6
--- /dev/null
+++ b/providers/ovsdb/device/BUCK
@@ -0,0 +1,31 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-ovsdb-provider-device'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//protocols/ovsdb/api:onos-ovsdb-api',
+ '//protocols/ovsdb/rfc:onos-ovsdb-rfc',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/providers/ovsdb/host/BUCK b/providers/ovsdb/host/BUCK
new file mode 100644
index 0000000..4b4dc05
--- /dev/null
+++ b/providers/ovsdb/host/BUCK
@@ -0,0 +1,31 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-ovsdb-provider-host'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//protocols/ovsdb/api:onos-ovsdb-api',
+ '//protocols/ovsdb/rfc:onos-ovsdb-rfc',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/providers/ovsdb/tunnel/BUCK b/providers/ovsdb/tunnel/BUCK
new file mode 100644
index 0000000..c88cbf6
--- /dev/null
+++ b/providers/ovsdb/tunnel/BUCK
@@ -0,0 +1,32 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-ovsdb-provider-tunnel'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//protocols/ovsdb/api:onos-ovsdb-api',
+ '//protocols/ovsdb/rfc:onos-ovsdb-rfc',
+ '//incubator/api:onos-incubator-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/providers/pcep/topology/BUCK b/providers/pcep/topology/BUCK
new file mode 100644
index 0000000..91564cf
--- /dev/null
+++ b/providers/pcep/topology/BUCK
@@ -0,0 +1,32 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-pcep-provider-topology'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//protocols/ovsdb/api:onos-ovsdb-api',
+ '//protocols/ovsdb/rfc:onos-ovsdb-rfc',
+ '//apps/pcep-api:onos-app-pcep-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/providers/pcep/tunnel/BUCK b/providers/pcep/tunnel/BUCK
new file mode 100644
index 0000000..1b2fe6e
--- /dev/null
+++ b/providers/pcep/tunnel/BUCK
@@ -0,0 +1,35 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-pcep-provider-tunnel'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//protocols/ovsdb/api:onos-ovsdb-api',
+ '//protocols/ovsdb/rfc:onos-ovsdb-rfc',
+ '//apps/pcep-api:onos-app-pcep-api',
+ '//incubator/api:onos-incubator-api',
+ '//protocols/pcep/pcepio:onos-pcep-pcepio',
+ '//protocols/pcep/api:onos-pcep-controller-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/providers/rest/device/BUCK b/providers/rest/device/BUCK
new file mode 100644
index 0000000..b710097
--- /dev/null
+++ b/providers/rest/device/BUCK
@@ -0,0 +1,35 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-restsb-provider-device'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//protocols/ovsdb/api:onos-ovsdb-api',
+ '//protocols/ovsdb/rfc:onos-ovsdb-rfc',
+ '//apps/pcep-api:onos-app-pcep-api',
+ '//incubator/api:onos-incubator-api',
+ '//protocols/rest/api:onos-restsb-api',
+ '//lib:javax.ws.rs-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/providers/snmp/alarm/BUCK b/providers/snmp/alarm/BUCK
new file mode 100644
index 0000000..6695f13
--- /dev/null
+++ b/providers/snmp/alarm/BUCK
@@ -0,0 +1,37 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-snmp-provider-alarm'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:org.apache.servicemix.bundles.snmp4j',
+ '//lib:snmp-core',
+ '//lib:bti7000',
+ '//lib:mibs-net-snmp',
+ '//lib:mibs-rfc',
+ '//protocols/ovsdb/api:onos-ovsdb-api',
+ '//protocols/ovsdb/rfc:onos-ovsdb-rfc',
+ '//incubator/api:onos-incubator-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/providers/snmp/device/BUCK b/providers/snmp/device/BUCK
new file mode 100644
index 0000000..1f05085
--- /dev/null
+++ b/providers/snmp/device/BUCK
@@ -0,0 +1,37 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-snmp-provider-device'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:org.apache.servicemix.bundles.snmp4j',
+ '//lib:snmp-core',
+ '//lib:bti7000',
+ '//lib:mibs-net-snmp',
+ '//lib:mibs-rfc',
+ '//protocols/ovsdb/api:onos-ovsdb-api',
+ '//protocols/ovsdb/rfc:onos-ovsdb-rfc',
+ '//incubator/api:onos-incubator-api',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/utils/junit/BUCK b/utils/junit/BUCK
new file mode 100644
index 0000000..b5394e5
--- /dev/null
+++ b/utils/junit/BUCK
@@ -0,0 +1,32 @@
+SRC = 'src/main/java/org/onlab/junit/'
+TEST = 'src/test/java/org/onlab/junit/'
+CURRENT_NAME = 'onlab-junit'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+SRC_DEPS = [
+ '//lib:junit',
+ '//lib:hamcrest-all',
+ '//lib:guava',
+]
+
+TEST_DEPS = [
+ '//lib:guava-testlib',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = SRC_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'src/main/resources',
+ resources = glob(['src/main/resources/**']),
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = SRC_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/utils/misc/BUCK b/utils/misc/BUCK
new file mode 100644
index 0000000..0832322
--- /dev/null
+++ b/utils/misc/BUCK
@@ -0,0 +1,28 @@
+SRC = 'src/main/java/org/onlab/**/'
+TEST = 'src/test/java/org/onlab/**/'
+CURRENT_NAME = 'onlab-misc'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:COMPILE',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/utils/osgi/BUCK b/utils/osgi/BUCK
new file mode 100644
index 0000000..195bf3d
--- /dev/null
+++ b/utils/osgi/BUCK
@@ -0,0 +1,28 @@
+SRC = 'src/main/java/org/onlab/osgi/'
+TEST = 'src/test/java/org/onlab/osgi/'
+CURRENT_NAME = 'onlab-osgi'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:COMPILE',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/utils/rest/BUCK b/utils/rest/BUCK
new file mode 100644
index 0000000..d070641
--- /dev/null
+++ b/utils/rest/BUCK
@@ -0,0 +1,32 @@
+SRC = 'src/main/java/org/onlab/**/'
+TEST = 'src/test/java/org/onlab/**/'
+CURRENT_NAME = 'onlab-rest'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:COMPILE',
+ '//utils/osgi:onlab-osgi',
+ '//utils/misc:onlab-misc',
+ '//lib:javax.ws.rs-api',
+ '//lib:jersey-server',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/web/api/BUCK b/web/api/BUCK
new file mode 100644
index 0000000..49b4f96
--- /dev/null
+++ b/web/api/BUCK
@@ -0,0 +1,31 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-rest'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:javax.ws.rs-api',
+ '//utils/rest:onlab-rest',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)
diff --git a/web/gui/BUCK b/web/gui/BUCK
new file mode 100644
index 0000000..c00da6c
--- /dev/null
+++ b/web/gui/BUCK
@@ -0,0 +1,40 @@
+SRC = 'src/main/java/org/onosproject/**/'
+TEST = 'src/main/java/org/onosproject/**/'
+
+CURRENT_NAME = 'onos-gui'
+CURRENT_TARGET = ':' + CURRENT_NAME
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:javax.ws.rs-api',
+ '//lib:servlet-api',
+ '//lib:jetty-websocket',
+ '//lib:jetty-util',
+ '//lib:jersey-media-multipart',
+ '//incubator/api:onos-incubator-api',
+ '//incubator/net:onos-incubator-net',
+ '//utils/rest:onlab-rest',
+ '//core/store/serializers:onos-core-serializers',
+]
+
+TEST_DEPS = [
+ '//lib:TEST',
+]
+
+java_library(
+ name = CURRENT_NAME,
+ srcs = glob([SRC + '/*.java']),
+ deps = COMPILE_DEPS,
+ visibility = ['PUBLIC'],
+ resources_root = 'src/main/resources',
+ resources = glob(['src/main/resources/**']),
+)
+
+java_test(
+ name = 'tests',
+ srcs = glob([TEST + '/*.java']),
+ deps = COMPILE_DEPS +
+ TEST_DEPS +
+ [CURRENT_TARGET],
+ source_under_test = [CURRENT_TARGET],
+)