diff --git a/.buckconfig b/.buckconfig
deleted file mode 100644
index 3c88483..0000000
--- a/.buckconfig
+++ /dev/null
@@ -1,23 +0,0 @@
-[buildfile]
-  includes = //buck-tools/default.defs
-
-[plugins]
-  directory = //bin/plugins
-
-[java]
-  source_level = 8
-  target_level = 8
-
-[alias]
-    onos = //tools/package:onos-package
-    onos-local = //tools/package:onos-run
-
-[download]
-  in_build = true
-
-[maven_repositories]
-  central = https://repo1.maven.org/maven2
-
-[project]
-  ide = intellij
-  ignore = .git, bazel-bin, bazel-genfiles, bazel-onos-next, bazel-out, bazel-testlogs
diff --git a/BUCK b/BUCK
deleted file mode 100644
index 9b02eb6..0000000
--- a/BUCK
+++ /dev/null
@@ -1,75 +0,0 @@
-java_library(
-    name = 'core',
-    visibility = ['PUBLIC'],
-    deps = CORE,
-)
-
-java_library(
-    name = 'apps',
-    visibility = ['PUBLIC'],
-    deps = APPS + APP_JARS,
-)
-
-java_library(
-    name = 'onos',
-    visibility = ['PUBLIC'],
-    deps = [ ':core', ':apps' ]
-)
-
-INSTALL = [
-    '//utils/misc:onlab-misc-install',
-    '//utils/osgi:onlab-osgi-install',
-    '//utils/rest:onlab-rest-install',
-
-    '//core/api:onos-api-install',
-    '//incubator/api:onos-incubator-api-install',
-
-    '//core/net:onos-core-net-install',
-    '//core/common:onos-core-common-install',
-    '//core/store/dist:onos-core-dist-install',
-    '//core/store/primitives:onos-core-primitives-install',
-    '//core/store/persistence:onos-core-persistence-install',
-    '//core/store/serializers:onos-core-serializers-install',
-
-    '//incubator/net:onos-incubator-net-install',
-    '//incubator/store:onos-incubator-store-install',
-    '//incubator/rpc:onos-incubator-rpc-install',
-
-    '//core/security:onos-security-install',
-
-    '//web/api:onos-rest-install',
-    '//web/gui:onos-gui-install',
-    '//cli:onos-cli-install',
-]
-java_library(
-    name = 'install',
-    visibility = ['PUBLIC'],
-    deps = INSTALL
-)
-
-tar_file(
-    name = 'onos-test',
-    root = 'onos-test-%s' % ONOS_VERSION,
-    srcs = glob(['tools/test/**/*']) + [
-               'tools/dev/bash_profile',
-               'tools/dev/bin/onos-create-app',
-               'tools/build/envDefaults'
-           ],
-    other_tars = [ '//tools/package:onos-package-runtime' ],
-)
-
-tar_file(
-    name = 'onos-admin',
-    root = 'onos-admin-%s' % ONOS_VERSION,
-    srcs = [
-        'tools/dev/bin/onos-create-app',
-        'tools/test/bin/onos',
-    ],
-    other_tars = [ '//tools/package:onos-package-runtime' ],
-    flat = True,
-)
-
-
-
-
-
diff --git a/apps/acl/BUCK b/apps/acl/BUCK
deleted file mode 100644
index bbe0f16..0000000
--- a/apps/acl/BUCK
+++ /dev/null
@@ -1,30 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//lib:javax.ws.rs-api',
-    '//utils/rest:onlab-rest',
-    '//core/store/serializers:onos-core-serializers',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_REST',
-    '//lib:jersey-server',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    web_context = '/onos/v1/acl',
-    api_title = 'ACL API',
-    api_version = '1.0',
-    api_description = 'REST API for ACL app',
-    api_package = 'org.onosproject.acl',
-)
-
-onos_app (
-    title = 'Access Control Lists',
-    category = 'Security',
-    url = 'http://onosproject.org',
-    description = 'ONOS ACL application.',
-)
diff --git a/apps/actn-mdsc/BUCK b/apps/actn-mdsc/BUCK
deleted file mode 100644
index 0961e47..0000000
--- a/apps/actn-mdsc/BUCK
+++ /dev/null
@@ -1,15 +0,0 @@
-BUNDLES = [
-    '//apps/tetunnel/api:onos-apps-tetunnel-api',
-    '//apps/tetopology/api:onos-apps-tetopology-api',
-    '//apps/actn-mdsc/tetunnel-ctl:onos-apps-actn-mdsc-tetunnel-ctl',
-    '//apps/actn-mdsc/tetunnel-pce:onos-apps-actn-mdsc-tetunnel-pce',
-]
-
-onos_app (
-    title = 'ACTN MDSC',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    included_bundles = BUNDLES,
-    description = 'ACTN MDSC APP.',
-)
-
diff --git a/apps/actn-mdsc/tetunnel-ctl/BUCK b/apps/actn-mdsc/tetunnel-ctl/BUCK
deleted file mode 100644
index 5cf5a66..0000000
--- a/apps/actn-mdsc/tetunnel-ctl/BUCK
+++ /dev/null
@@ -1,17 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//apps/tetunnel/api:onos-apps-tetunnel-api',
-    '//apps/actn-mdsc/tetunnel-pce:onos-apps-actn-mdsc-tetunnel-pce',
-    '//apps/tetopology/api:onos-apps-tetopology-api',
-    '//incubator/api:onos-incubator-api'
- ]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
diff --git a/apps/actn-mdsc/tetunnel-pce/BUCK b/apps/actn-mdsc/tetunnel-pce/BUCK
deleted file mode 100644
index a040010..0000000
--- a/apps/actn-mdsc/tetunnel-pce/BUCK
+++ /dev/null
@@ -1,15 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//apps/tetunnel/api:onos-apps-tetunnel-api',
-
- ]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
diff --git a/apps/artemis/BUCK b/apps/artemis/BUCK
deleted file mode 100755
index 450f73e..0000000
--- a/apps/artemis/BUCK
+++ /dev/null
@@ -1,100 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:NETTY',
-    '//lib:io_netty_netty',
-    '//lib:io_netty_netty_transport',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//apps/routing-api:onos-apps-routing-api',
-    '//apps/routing/common:onos-apps-routing-common',
-    '//protocols/ovsdb/api:onos-protocols-ovsdb-api',
-    '//apps/intentsync:onos-apps-intentsync',
-    '//apps/route-service/api:onos-apps-route-service-api',
-    '//protocols/ovsdb/rfc:onos-protocols-ovsdb-rfc',
-    '//lib:okhttp',
-    '//lib:okio',
-    ':commons-net',
-    ':io.socket-client',
-    ':json',
-    ':engine.io-client'
- ]
-
-BUNDLES = [
-    '//apps/artemis:onos-apps-artemis',
-    '//apps/routing-api:onos-apps-routing-api',
-    '//apps/routing/common:onos-apps-routing-common',
-    '//protocols/ovsdb/api:onos-protocols-ovsdb-api',
-    '//apps/route-service/api:onos-apps-route-service-api',
-    '//protocols/ovsdb/rfc:onos-protocols-ovsdb-rfc'
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS'
-]
-
-EXCLUDED_BUNDLES = [
-    '//lib:okhttp',
-    '//lib:okio',
-    ':commons-net',
-    ':io.socket-client',
-    ':json',
-    ':engine.io-client'
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-onos_app (
-    app_name = 'org.onosproject.artemis',
-    title = 'Artemis',
-    category = 'Monitoring',
-    url = 'http://onosproject.org',
-    description = 'Artemis',
-    included_bundles = BUNDLES,
-    excluded_bundles = EXCLUDED_BUNDLES,
-    required_apps = [
-        'org.onosproject.sdnip',
-        'org.onosproject.openflow',
-        'org.onosproject.ovsdb',
-        'org.onosproject.drivers.ovsdb'
-    ],
-)
-
-remote_jar (
-  name = 'commons-net',
-  out = 'commons-net-3.5.jar',
-  url = 'mvn:commons-net:commons-net:jar:3.5',
-  sha1 = '342fc284019f590e1308056990fdb24a08f06318',
-  maven_coords = 'commons-net:commons-net:3.5',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'io.socket-client',
-  out = 'socket.io-client-0.8.3.jar',
-  url = 'mvn:io.socket:socket.io-client:jar:0.8.3',
-  sha1 = 'b30500232ff0668a47c9f91f02e6935457a52fb5',
-  maven_coords = 'io.socket:socket.io-client:jar:NON-OSGI:0.8.3',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'json',
-  out = 'json-20090211.jar',
-  url = 'mvn:org.json:json:jar:20090211',
-  sha1 = 'c183aa3a2a6250293808bba12262c8920ce5a51c',
-  maven_coords = 'org.json:json:jar:NON-OSGI:20090211',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'engine.io-client',
-  out = 'engine.io-client-0.8.3.jar',
-  url = 'mvn:io.socket:engine.io-client:jar:0.8.3',
-  sha1 = '854b49396e1e9f9bb0ab025062ddb49c4ed65ca1',
-  maven_coords = 'io.socket:engine.io-client:jar:NON-OSGI:0.8.3',
-  visibility = [ 'PUBLIC' ],
-)
\ No newline at end of file
diff --git a/apps/bgprouter/BUCK b/apps/bgprouter/BUCK
deleted file mode 100644
index 436c6b6..0000000
--- a/apps/bgprouter/BUCK
+++ /dev/null
@@ -1,25 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//incubator/api:onos-incubator-api',
-    '//apps/routing-api:onos-apps-routing-api',
-]
-
-BUNDLES = [
-    '//apps/routing-api:onos-apps-routing-api',
-    '//apps/routing/common:onos-apps-routing-common',
-    '//apps/bgprouter:onos-apps-bgprouter',
-]
-
-osgi_jar (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'BGP Router',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    description = 'BGP router application.',
-    included_bundles = BUNDLES,
-    required_apps = [ 'org.onosproject.fibinstaller', 'org.onosproject.route-service' ],
-)
diff --git a/apps/castor/BUCK b/apps/castor/BUCK
deleted file mode 100644
index 9b305ec..0000000
--- a/apps/castor/BUCK
+++ /dev/null
@@ -1,44 +0,0 @@
-COMPILE_DEPS = [
-  '//lib:CORE_DEPS',
-  '//lib:JACKSON',
-  '//lib:KRYO',
-  '//core/api:onos-api',
-  '//lib:javax.ws.rs-api',
-  '//lib:jersey-server',
-  '//utils/rest:onlab-rest',
-  '//core/store/serializers:onos-core-serializers',
-  '//incubator/api:onos-incubator-api',
-  '//apps/routing-api:onos-apps-routing-api',
-  '//apps/intentsync:onos-apps-intentsync',
-]
-
-BUNDLES = [
-  '//apps/castor:onos-apps-castor',
-  '//apps/routing-api:onos-apps-routing-api',
-  '//apps/routing/common:onos-apps-routing-common',
-]
-
-TEST_DEPS = [
-  '//lib:TEST_ADAPTERS',
-  '//incubator/api:onos-incubator-api-tests',
-  '//apps/routing-api:onos-apps-routing-api-tests',
-]
-
-osgi_jar_with_tests (
-  deps = COMPILE_DEPS,
-  test_deps = TEST_DEPS,
-  web_context = '/onos/castor',
-  api_title = 'Castor',
-  api_version = '1.0',
-  api_description = 'REST API for Castor',
-  api_package = 'org.onosproject.castor',
-)
-
-onos_app (
-  title = 'Castor',
-  category = 'Utility',
-  url = 'http://onosproject.org',
-  included_bundles = BUNDLES,
-  description = 'Castor application',
-  required_apps = [ 'org.onosproject.intentsynchronizer' ],
-)
diff --git a/apps/cfm/BUCK b/apps/cfm/BUCK
deleted file mode 100644
index 17e3059..0000000
--- a/apps/cfm/BUCK
+++ /dev/null
@@ -1,13 +0,0 @@
-BUNDLES = [
-    '//apps/cfm/api:onos-apps-cfm-api',
-    '//apps/cfm/app:onos-apps-cfm-app',
-    '//apps/cfm/nbi:onos-apps-cfm-nbi',
-]
-
-onos_app (
-    title = 'Layer 2 Monitoring CFM Application',
-    category = 'Monitoring',
-    url = 'http://onosproject.org',
-    description = 'Layer 2 Monitoring Connectivity Fault Management App',
-    included_bundles = BUNDLES,
-)
diff --git a/apps/cfm/api/BUCK b/apps/cfm/api/BUCK
deleted file mode 100644
index ab6251e..0000000
--- a/apps/cfm/api/BUCK
+++ /dev/null
@@ -1,14 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    visibility = ['PUBLIC'],
-)
-
diff --git a/apps/cfm/app/BUCK b/apps/cfm/app/BUCK
deleted file mode 100644
index 93d3d70..0000000
--- a/apps/cfm/app/BUCK
+++ /dev/null
@@ -1,17 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//core/store/serializers:onos-core-serializers',
-    '//apps/cfm/api:onos-apps-cfm-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//utils/osgi:onlab-osgi-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
diff --git a/apps/cfm/nbi/BUCK b/apps/cfm/nbi/BUCK
deleted file mode 100644
index fd493f4..0000000
--- a/apps/cfm/nbi/BUCK
+++ /dev/null
@@ -1,25 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:javax.ws.rs-api',
-    '//utils/rest:onlab-rest',
-    '//lib:JACKSON',
-    '//cli:onos-cli',
-    '//lib:org.apache.karaf.shell.console',
-    '//apps/cfm/api:onos-apps-cfm-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_REST',
-    '//utils/osgi:onlab-osgi-tests',
-    '//web/api:onos-rest-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    web_context = '/onos/cfm',
-    api_title = 'L2 Monitoring CFM',
-    api_version = '1.0',
-    api_description = 'REST API for L2 Monitoring CFM',
-    api_package = 'org.onosproject.soam.rest',
-)
diff --git a/apps/cip/BUCK b/apps/cip/BUCK
deleted file mode 100644
index a7590d9..0000000
--- a/apps/cip/BUCK
+++ /dev/null
@@ -1,14 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'Cluster IP Alias',
-    category = 'Utility',
-    url = 'http://onosproject.org',
-    description = 'ONOS Cluster IP alias application.',
-)
diff --git a/apps/config/BUCK b/apps/config/BUCK
deleted file mode 100644
index dac73d6..0000000
--- a/apps/config/BUCK
+++ /dev/null
@@ -1,28 +0,0 @@
-APPS = [
-    'org.onosproject.yang',
-]
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//lib:org.apache.karaf.shell.console',
-    '//lib:onos-yang-model',
-    '//core/store/serializers:onos-core-serializers',
-    '//cli:onos-cli',
-    '//lib:commons-text',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'Dynamic Configuration',
-    category = 'Utility',
-    url = 'http://onosproject.org',
-    description = 'Provides means to track and distribute service and device configuration data ' +
-        'throughout the ONOS cluster. It works with the YANG runtime to ensure that the tracked ' +
-        'data adheres to the registered YANG models. Applications can traverse and access this ' +
-        'data which is organized in a logically unified tree.<p/>(Under development)',
-    required_apps = APPS,
-)
diff --git a/apps/configsync-netconf/BUCK b/apps/configsync-netconf/BUCK
deleted file mode 100644
index 2fc0e10..0000000
--- a/apps/configsync-netconf/BUCK
+++ /dev/null
@@ -1,31 +0,0 @@
-APPS = [
-    'org.onosproject.configsync',
-    'org.onosproject.yang',
-    'org.onosproject.netconf',
-]
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:onos-yang-model',
-    '//lib:onos-yang-runtime',
-    '//protocols/netconf/api:onos-protocols-netconf-api',
-    '//apps/config:onos-apps-config',
-    '//apps/configsync:onos-apps-configsync',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-onos_app (
-    title = 'Dynamic Configuration Synchronizer for NETCONF',
-    category = 'Utility',
-    url = 'http://onosproject.org',
-    description = 'Application to support the Dynamic configuration service.',
-    required_apps = APPS,
-)
diff --git a/apps/configsync/BUCK b/apps/configsync/BUCK
deleted file mode 100644
index aa9caf1..0000000
--- a/apps/configsync/BUCK
+++ /dev/null
@@ -1,22 +0,0 @@
-APPS = [
-    # dynamic config
-    'org.onosproject.config',
-]
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//apps/config:onos-apps-config',
-    '//lib:onos-yang-model',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'Dynamic Configuration Synchronizer',
-    category = 'Utility',
-    url = 'http://onosproject.org',
-    description = 'Application to support the Dynamic configuration service.',
-    required_apps = APPS,
-)
diff --git a/apps/cord-support/BUCK b/apps/cord-support/BUCK
deleted file mode 100644
index 2caced2..0000000
--- a/apps/cord-support/BUCK
+++ /dev/null
@@ -1,29 +0,0 @@
-COMPILE_DEPS = [
-  '//lib:CORE_DEPS',
-  '//lib:JACKSON',
-  '//lib:javax.ws.rs-api',
-  '//utils/rest:onlab-rest',
-  '//core/store/serializers:onos-core-serializers',
-]
-
-TEST_DEPS = [
-  '//lib:TEST_REST',
-  '//lib:jersey-server',
-]
-
-osgi_jar_with_tests (
-  deps = COMPILE_DEPS,
-  test_deps = TEST_DEPS,
-  web_context = '/onos/cord-support',
-  api_title = 'CORD Support',
-  api_version = '1.0',
-  api_description = 'REST API for CORD inquiry to ONOS topology',
-  api_package = 'org.onosproject.cordsupport',
-)
-
-onos_app (
-  title = 'CORD Support',
-  category = 'Integration',
-  url = 'http://onosproject.org',
-  description = 'CORD Support application.',
-)
diff --git a/apps/cpman/api/BUCK b/apps/cpman/api/BUCK
deleted file mode 100644
index 4cb1ba0..0000000
--- a/apps/cpman/api/BUCK
+++ /dev/null
@@ -1,14 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//core/store/serializers:onos-core-serializers',
- ]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
diff --git a/apps/cpman/app/BUCK b/apps/cpman/app/BUCK
deleted file mode 100644
index ea4dda7..0000000
--- a/apps/cpman/app/BUCK
+++ /dev/null
@@ -1,48 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:METRICS',
-    '//lib:KRYO',
-    '//lib:org.apache.karaf.shell.console',
-    '//lib:javax.ws.rs-api',
-    '//lib:rrd4j',
-    '//apps/cpman/api:onos-apps-cpman-api',
-    '//utils/rest:onlab-rest',
-    '//cli:onos-cli',
-    '//core/store/serializers:onos-core-serializers',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_REST',
-    '//web/api:onos-rest-tests',
-]
-
-BUNDLES = [
-    '//apps/cpman/api:onos-apps-cpman-api',
-    ':onos-apps-cpman-app',
-]
-
-EXCLUDED_BUNDLES = [
-    '//lib:rrd4j',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    web_context = '/onos/cpman',
-    api_title = 'Control Plane Manager API',
-    api_version = '1.0',
-    api_description = 'REST API for Control Plane Manager',
-    api_package = 'org.onosproject.cpman.rest',
-)
-
-onos_app (
-    app_name = 'org.onosproject.cpman',
-    title = 'Control Plane Manager',
-    category = 'Monitoring',
-    url = 'http://onosproject.org',
-    description = 'Control Plane Management application for monitoring the health of the ONOS cluster',
-    included_bundles = BUNDLES,
-    excluded_bundles = EXCLUDED_BUNDLES,
-    required_apps = [ 'org.onosproject.openflow-message' ],
-)
diff --git a/apps/dhcp/BUCK b/apps/dhcp/BUCK
deleted file mode 100644
index fbbb126..0000000
--- a/apps/dhcp/BUCK
+++ /dev/null
@@ -1,11 +0,0 @@
-BUNDLES = [
-    '//apps/dhcp/api:onos-apps-dhcp-api',
-    '//apps/dhcp/app:onos-apps-dhcp-app',
-]
-
-onos_app (
-  title = 'DHCP Server',
-  category = 'Utility',
-  url = 'http://onosproject.org',
-  included_bundles = BUNDLES,
-)
diff --git a/apps/dhcp/api/BUCK b/apps/dhcp/api/BUCK
deleted file mode 100644
index ee55792..0000000
--- a/apps/dhcp/api/BUCK
+++ /dev/null
@@ -1,7 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
\ No newline at end of file
diff --git a/apps/dhcp/app/BUCK b/apps/dhcp/app/BUCK
deleted file mode 100644
index 7dd3a0e..0000000
--- a/apps/dhcp/app/BUCK
+++ /dev/null
@@ -1,25 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//lib:javax.ws.rs-api',
-    '//lib:org.apache.karaf.shell.console',
-    '//apps/dhcp/api:onos-apps-dhcp-api',
-    '//utils/rest:onlab-rest',
-    '//core/store/serializers:onos-core-serializers',
-    '//cli:onos-cli',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    web_context = '/onos/dhcp',
-    api_title = 'DHCP Server',
-    api_version = '1.0',
-    api_description = 'REST API for DHCP Server',
-    api_package = 'org.onosproject.dhcp.rest',
-)
diff --git a/apps/dhcprelay/BUCK b/apps/dhcprelay/BUCK
deleted file mode 100644
index 903a23a..0000000
--- a/apps/dhcprelay/BUCK
+++ /dev/null
@@ -1,14 +0,0 @@
-BUNDLES = [
-    '//apps/dhcprelay/web:onos-apps-dhcprelay-web',
-    '//apps/dhcprelay/app:onos-apps-dhcprelay-app',
-]
-
-onos_app (
-    app_name = 'org.onosproject.dhcprelay',
-    title = 'DHCP Relay Agent',
-    category = 'Utility',
-    url = 'http://onosproject.org',
-    description = 'DHCP Relay Agent Application.',
-    required_apps = [ 'org.onosproject.route-service' ],
-    included_bundles = BUNDLES,
-)
diff --git a/apps/dhcprelay/app/BUCK b/apps/dhcprelay/app/BUCK
deleted file mode 100644
index d698297..0000000
--- a/apps/dhcprelay/app/BUCK
+++ /dev/null
@@ -1,21 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//core/store/serializers:onos-core-serializers',
-    '//apps/route-service/api:onos-apps-route-service-api',
-    '//apps/routing/fpm/api:onos-apps-routing-fpm-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST',
-    '//apps/route-service/api:onos-apps-route-service-api-tests',
-    '//core/api:onos-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/dhcprelay/web/BUCK b/apps/dhcprelay/web/BUCK
deleted file mode 100644
index 42980c3..0000000
--- a/apps/dhcprelay/web/BUCK
+++ /dev/null
@@ -1,24 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//utils/rest:onlab-rest',
-    '//lib:javax.ws.rs-api',
-    '//lib:jersey-server',
-    '//lib:jackson-databind',
-    '//core/store/serializers:onos-core-serializers',
-    '//apps/route-service/api:onos-apps-route-service-api',
-    '//apps/dhcprelay/app:onos-apps-dhcprelay-app',
-    '//apps/routing/fpm/api:onos-apps-routing-fpm-api',
-]
-
-osgi_jar (
-   deps = COMPILE_DEPS,
-   web_context = '/onos/v1/dhcprelay',
-   api_title = 'DHCPRelay App',
-   api_version = '1.0',
-   api_description = 'REST API for DHCPRelay',
-   api_package = 'org.onosproject.dhcprelay.rest',
-)
diff --git a/apps/drivermatrix/BUCK b/apps/drivermatrix/BUCK
deleted file mode 100644
index fa94a8b..0000000
--- a/apps/drivermatrix/BUCK
+++ /dev/null
@@ -1,21 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    title = 'Driver Support Matrix',
-    category = 'GUI',
-    url = 'http://onosproject.org',
-    description = 'Extends the ONOS GUI with a view that allows the operator to visualize ' +
-        'the currently loaded drivers.',
-)
-
diff --git a/apps/events/BUCK b/apps/events/BUCK
deleted file mode 100644
index 12e888b..0000000
--- a/apps/events/BUCK
+++ /dev/null
@@ -1,21 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    title = 'Event History',
-    category = 'Test Utility',
-    url = 'http://onosproject.org',
-    description = 'Allows recording and tracking of otherwise ephemeral ONOS core events. ' +
-        'It is primarily aimed for supporting various system tests and to assure that expected ' +
-        'events are raised and broadcast to applications that have requested them.',
-)
diff --git a/apps/evpn-route-service/BUCK b/apps/evpn-route-service/BUCK
deleted file mode 100644
index c571d1f..0000000
--- a/apps/evpn-route-service/BUCK
+++ /dev/null
@@ -1,11 +0,0 @@
-BUNDLES = [
-    '//apps/evpn-route-service/api:onos-apps-evpn-route-service-api',
-    '//apps/evpn-route-service/app:onos-apps-evpn-route-service-app',
-]
-
-onos_app (
-    title = 'EVPN Routing',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    included_bundles = BUNDLES,
-)
diff --git a/apps/evpn-route-service/api/BUCK b/apps/evpn-route-service/api/BUCK
deleted file mode 100644
index 68eeacf..0000000
--- a/apps/evpn-route-service/api/BUCK
+++ /dev/null
@@ -1,13 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-]
-
-TEST_DEPS = [
-    '//lib:TEST',
-    '//core/api:onos-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/evpn-route-service/app/BUCK b/apps/evpn-route-service/app/BUCK
deleted file mode 100644
index 0f7b609..0000000
--- a/apps/evpn-route-service/app/BUCK
+++ /dev/null
@@ -1,17 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//utils/misc:onlab-misc',
-    '//core/store/serializers:onos-core-serializers',
-    '//apps/evpn-route-service/api:onos-apps-evpn-route-service-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST',
-    '//core/api:onos-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/evpnopenflow/BUCK b/apps/evpnopenflow/BUCK
deleted file mode 100644
index 47f66a5..0000000
--- a/apps/evpnopenflow/BUCK
+++ /dev/null
@@ -1,33 +0,0 @@
-COMPILE_DEPS = [
-  '//lib:CORE_DEPS',
-  '//lib:JACKSON',
-  '//lib:KRYO',
-  '//lib:org.apache.karaf.shell.console',
-  '//cli:onos-cli',
-  '//incubator/api:onos-incubator-api',
-  '//core/store/serializers:onos-core-serializers',
-  '//apps/gluon:onos-apps-gluon',
-  '//apps/vtn/vtnrsc:onos-apps-vtn-vtnrsc',
-  '//apps/route-service/api:onos-apps-route-service-api',
-  '//apps/evpn-route-service/api:onos-apps-evpn-route-service-api',
-]
-
-TEST_DEPS = [
-  '//lib:TEST_ADAPTERS',
-  '//lib:TEST',
-]
-
-osgi_jar_with_tests(
-  deps = COMPILE_DEPS,
-  test_deps = TEST_DEPS,
-)
-
-onos_app(
-  title = 'EVPN OpenFlow',
-  category = 'Traffic Engineering',
-  url = 'http://onosproject.org',
-  description = 'Ethernet VPN (EVPN) introduces a new model for Ethernet services delivery.' +
-  'It enables integrated Layer 2 service over Ethernet with multihoming.',
-  required_apps = [ 'org.onosproject.route-service', 'org.onosproject.evpn-route-service',
-                    'org.onosproject.gluon', 'org.onosproject.vtn' ],
-)
diff --git a/apps/faultmanagement/BUCK b/apps/faultmanagement/BUCK
deleted file mode 100644
index ce1199c..0000000
--- a/apps/faultmanagement/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-BUNDLES = [
-    '//apps/faultmanagement/fmcli:onos-apps-faultmanagement-fmcli',
-    '//apps/faultmanagement/fmgui:onos-apps-faultmanagement-fmgui',
-    '//apps/faultmanagement/fmmgr:onos-apps-faultmanagement-fmmgr',
-    '//apps/faultmanagement/fmweb:onos-apps-faultmanagement-fmweb',
-]
-
-onos_app(
-    title = 'Fault Management',
-    origin = 'BTI Systems',
-    description = 'Provides managements of alarms. Stores retrieved alarms from devices. ' +
-        'Offers CLI, UI and REST integration to obtain and display them from ONOS.',
-    category = 'Monitoring',
-    url = 'https://wiki.onosproject.org/display/ONOS/Fault+Management',
-    included_bundles = BUNDLES,
-)
diff --git a/apps/faultmanagement/fmcli/BUCK b/apps/faultmanagement/fmcli/BUCK
deleted file mode 100644
index 37b1da6..0000000
--- a/apps/faultmanagement/fmcli/BUCK
+++ /dev/null
@@ -1,17 +0,0 @@
-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',
-    '//utils/osgi:onlab-osgi',
-    '//core/store/serializers:onos-core-serializers',
-    '//apps/faultmanagement/fmmgr:onos-apps-faultmanagement-fmmgr'
-]
-
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    import_packages = '*,org.onosproject.cli.net',
-)
diff --git a/apps/faultmanagement/fmgui/BUCK b/apps/faultmanagement/fmgui/BUCK
deleted file mode 100644
index 96c7835..0000000
--- a/apps/faultmanagement/fmgui/BUCK
+++ /dev/null
@@ -1,11 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:org.apache.karaf.shell.console',
-    '//incubator/api:onos-incubator-api',
-    '//cli:onos-cli',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/apps/faultmanagement/fmmgr/BUCK b/apps/faultmanagement/fmmgr/BUCK
deleted file mode 100644
index b9c59f8..0000000
--- a/apps/faultmanagement/fmmgr/BUCK
+++ /dev/null
@@ -1,17 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//incubator/api:onos-incubator-api',
-    '//core/store/serializers:onos-core-serializers',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//utils/osgi:onlab-osgi-tests',
-    '//incubator/api:onos-incubator-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/faultmanagement/fmweb/BUCK b/apps/faultmanagement/fmweb/BUCK
deleted file mode 100644
index 3a20d8e..0000000
--- a/apps/faultmanagement/fmweb/BUCK
+++ /dev/null
@@ -1,26 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//incubator/api:onos-incubator-api',
-    '//utils/rest:onlab-rest',
-    '//lib:javax.ws.rs-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//lib:jersey-test-framework-core',
-    '//lib:jersey-test-framework-jetty',
-    '//utils/osgi:onlab-osgi-tests',
-    '//web/api:onos-rest-tests',
-    '//incubator/api:onos-incubator-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    web_context = '/onos/v1/fm',
-    api_title = 'Fault Management Rest API',
-    api_version = '1.0',
-    api_description = 'REST API for Fault Management',
-    api_package = 'org.onosproject.faultmanagement'
-)
diff --git a/apps/flowanalyzer/BUCK b/apps/flowanalyzer/BUCK
deleted file mode 100644
index 2f5461f..0000000
--- a/apps/flowanalyzer/BUCK
+++ /dev/null
@@ -1,23 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    title = 'Flow Space Analysis',
-    category = 'Monitoring',
-    url = 'http://onosproject.org',
-    description = 'Simple flow space analyzer.',
-)
diff --git a/apps/flowspec-api/BUCK b/apps/flowspec-api/BUCK
deleted file mode 100644
index 01efc7a..0000000
--- a/apps/flowspec-api/BUCK
+++ /dev/null
@@ -1,11 +0,0 @@
-BUNDLES = [
-    '//apps/flowspec-api/flowapi:onos-apps-flowspec-api-flowapi',
-
-]
-
-onos_app (
-  title = 'Flowspec API',
-  url = 'http://onosproject.org',
-  included_bundles = BUNDLES,
-  description = 'ONOS framework applications',
-)
diff --git a/apps/flowspec-api/flowapi/BUCK b/apps/flowspec-api/flowapi/BUCK
deleted file mode 100644
index 835b939..0000000
--- a/apps/flowspec-api/flowapi/BUCK
+++ /dev/null
@@ -1,18 +0,0 @@
-COMPILE_DEPS = [
-    '//utils/osgi:onlab-osgi',
-    '//utils/misc:onlab-misc',
-    '//lib:commons-io',
-    '//lib:com_google_guava_guava',
-    '//lib:kryo',
-    '//lib:slf4j-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    visibility = ['PUBLIC'],
-)
diff --git a/apps/fwd/BUCK b/apps/fwd/BUCK
deleted file mode 100644
index 6a877fd..0000000
--- a/apps/fwd/BUCK
+++ /dev/null
@@ -1,27 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//core/store/serializers:onos-core-serializers',
-    '//core/store/primitives:onos-core-primitives',
-    '//core/api:onos-api',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'Reactive Forwarding',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    description = 'Provisions traffic between end-stations using hop-by-hop flow programming by ' +
-        'intercepting packets for which there are currently no matching flow objectives on the ' +
-        'data plane. The paths paved in this manner are short-lived, i.e. they expire a few ' +
-        'seconds after the flow on whose behalf they were programmed stops.\n\n' +
-        'The application relies on the ONOS path service to compute the shortest paths. ' +
-        'In the event of negative topology events (link loss, device disconnect, etc.), ' +
-        'the application will proactively invalidate any paths that it had programmed to lead ' +
-        'through the resources that are no longer available.',
-)
diff --git a/apps/gangliametrics/BUCK b/apps/gangliametrics/BUCK
deleted file mode 100644
index 3dc67f4..0000000
--- a/apps/gangliametrics/BUCK
+++ /dev/null
@@ -1,25 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:METRICS',
-    '//lib:gmetric4j',
-    '//lib:metrics-ganglia',
-    '//lib:remotetea-oncrpc',
-]
-
-EXCLUDED_BUNDLES = [
-    '//lib:gmetric4j',
-    '//lib:metrics-ganglia',
-    '//lib:remotetea-oncrpc',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'Ganglia Report and Query',
-    category = 'Monitoring',
-    url = 'http://onosproject.org',
-    description = 'Performance metric service reporter',
-    excluded_bundles = EXCLUDED_BUNDLES,
-)
diff --git a/apps/gluon/BUCK b/apps/gluon/BUCK
deleted file mode 100644
index a11d2b6..0000000
--- a/apps/gluon/BUCK
+++ /dev/null
@@ -1,37 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//cli:onos-cli',
-    '//lib:httpclient-osgi',
-    '//lib:httpcore-osgi',
-    '//lib:org.apache.httpcomponents.httpasyncclient-osgi',
-    '//lib:org.apache.httpcomponents.httpcore-nio',
-    '//lib:org.apache.karaf.shell.console',
-    '//lib:org.apache.karaf.jaas',
-
-]
-TEST_DEPS = [
-  '//lib:TEST',
-]
-
-BUNDLES = [
-  ':onos-apps-gluon',
-  '//lib:httpclient-osgi',
-  '//lib:httpcore-osgi',
-  '//lib:org.apache.httpcomponents.httpasyncclient-osgi',
-  '//lib:org.apache.httpcomponents.httpcore-nio',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-onos_app (
-    app_name = 'org.onosproject.gluon',
-    title = 'Gluon Shim',
-    category = 'Monitoring',
-    url = 'http://onosproject.org',
-    included_bundles = BUNDLES,
-    description = 'To fetch data from Gluon Server over Http session.',
-)
diff --git a/apps/graphitemetrics/BUCK b/apps/graphitemetrics/BUCK
deleted file mode 100644
index d8e4441..0000000
--- a/apps/graphitemetrics/BUCK
+++ /dev/null
@@ -1,29 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:METRICS',
-    '//lib:gmetric4j',
-    '//lib:metrics-graphite',
-]
-
-EXCLUDED_BUNDLES = [
-    '//lib:gmetric4j',
-    '//lib:metrics-graphite',
-]
-
-TEST_DEPS = [
-    '//lib:TEST',
-    '//core/api:onos-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-onos_app (
-    title = 'Graphite Report and Query',
-    category = 'Monitoring',
-    url = 'http://onosproject.org',
-    description = 'Performance metric service reporter and retriever for graphite',
-    excluded_bundles = EXCLUDED_BUNDLES,
-)
diff --git a/apps/imr/BUCK b/apps/imr/BUCK
deleted file mode 100644
index ffd56b2..0000000
--- a/apps/imr/BUCK
+++ /dev/null
@@ -1,12 +0,0 @@
-BUNDLES = [
-    '//apps/imr/api:onos-apps-imr-api',
-    '//apps/imr/app:onos-apps-imr-app',
-]
-
-onos_app (
-    title = 'Intent Monitoring and Rerouting',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org', # link alla wiki su wiki.onosproject.org
-    description = 'Intent Monitoring and Rerouting application.',
-    included_bundles = BUNDLES,
-)
diff --git a/apps/imr/api/BUCK b/apps/imr/api/BUCK
deleted file mode 100644
index a6a3885..0000000
--- a/apps/imr/api/BUCK
+++ /dev/null
@@ -1,22 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:javax.ws.rs-api',
-    '//utils/rest:onlab-rest',
-    '//lib:jersey-server',
-    '//core/store/serializers:onos-core-serializers',
-    '//apps/imr/app:onos-apps-imr-app',
-    '//cli:onos-cli',
-    '//lib:org.apache.karaf.shell.console',
-]
-
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    web_context = '/onos/v1/imr',
-    api_title = 'IMR REST API',
-    api_version = '1.0',
-    api_description = 'REST API for IMR Application',
-    api_package = 'org.onosproject.imr.rest',
-)
-
diff --git a/apps/imr/app/BUCK b/apps/imr/app/BUCK
deleted file mode 100644
index 4f39ad8..0000000
--- a/apps/imr/app/BUCK
+++ /dev/null
@@ -1,17 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//core/store/dist:onos-core-dist',
-    '//core/store/serializers:onos-core-serializers',
-    '//incubator/api:onos-incubator-api',
-    '//lib:KRYO',
-    '//lib:JACKSON',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/inbandtelemetry/api/BUCK b/apps/inbandtelemetry/api/BUCK
deleted file mode 100644
index 97564d9..0000000
--- a/apps/inbandtelemetry/api/BUCK
+++ /dev/null
@@ -1,14 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//core/store/serializers:onos-core-serializers',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/inbandtelemetry/app/BUCK b/apps/inbandtelemetry/app/BUCK
deleted file mode 100644
index a5d7b9e..0000000
--- a/apps/inbandtelemetry/app/BUCK
+++ /dev/null
@@ -1,32 +0,0 @@
-BUNDLES = [
-    '//apps/inbandtelemetry/api:onos-apps-inbandtelemetry-api',
-    '//apps/inbandtelemetry/impl:onos-apps-inbandtelemetry-impl',
-    '//apps/inbandtelemetry/app:onos-apps-inbandtelemetry-app',
-]
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//lib:JACKSON',
-    '//core/store/serializers:onos-core-serializers',
-    '//apps/inbandtelemetry/api:onos-apps-inbandtelemetry-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_REST',
-]
-
-osgi_jar_with_tests(
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-onos_app (
-    app_name = 'org.onosproject.inbandtelemetry.app',
-    title = 'P4 In-band Network Telemetry Sample Application',
-    category = 'Monitoring',
-    url = 'http://onosproject.org',
-    description = 'Provides managements of INT-capable devices. Specifies flows to enable INT and' +
-    'types of metadata to collect. Sets up INT-related information.',
-    included_bundles = BUNDLES,
-)
\ No newline at end of file
diff --git a/apps/inbandtelemetry/impl/BUCK b/apps/inbandtelemetry/impl/BUCK
deleted file mode 100644
index 9c87c92..0000000
--- a/apps/inbandtelemetry/impl/BUCK
+++ /dev/null
@@ -1,28 +0,0 @@
-BUNDLES = [
-    '//apps/inbandtelemetry/api:onos-apps-inbandtelemetry-api',
-    ':onos-apps-inbandtelemetry-impl'
-]
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//core/store/serializers:onos-core-serializers',
-    '//pipelines/basic:onos-pipelines-basic',
-    '//apps/inbandtelemetry/api:onos-apps-inbandtelemetry-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-onos_app(
-    title = 'P4 In-band Network Telemetry Service',
-    description = 'Provides managements of INT-capable devices. Specifies flows to enable INT and' +
-    'types of metadata to collect. Sets up INT-related information.',
-    category = 'Monitoring',
-    included_bundles = BUNDLES,
-)
\ No newline at end of file
diff --git a/apps/influxdbmetrics/BUCK b/apps/influxdbmetrics/BUCK
deleted file mode 100644
index ed47e12..0000000
--- a/apps/influxdbmetrics/BUCK
+++ /dev/null
@@ -1,46 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:METRICS',
-    '//lib:org.apache.karaf.shell.console',
-    '//lib:metrics-influxdb',
-    '//lib:influxdb-java',
-    '//lib:commons-codec',
-    '//lib:retrofit',
-    '//lib:okhttp',
-    '//lib:logging-interceptor',
-    '//lib:okio',
-    '//lib:moshi',
-    '//lib:converter-moshi',
-    '//lib:com_google_code_gson_gson',
-    '//cli:onos-cli',
-]
-
-EXCLUDED_BUNDLES = [
-    '//lib:metrics-influxdb',
-    '//lib:influxdb-java',
-    '//lib:commons-codec',
-    '//lib:retrofit',
-    '//lib:okhttp',
-    '//lib:logging-interceptor',
-    '//lib:com_google_code_gson_gson',
-    '//lib:okio',
-    '//lib:moshi',
-    '//lib:converter-moshi',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-onos_app (
-    title = 'InfluxDB Report and Query',
-    category = 'Monitoring',
-    url = 'http://onosproject.org',
-    description = 'Performance metric service reporter and retriever for influxDB.',
-    excluded_bundles = EXCLUDED_BUNDLES,
-)
diff --git a/apps/intentsync/BUCK b/apps/intentsync/BUCK
deleted file mode 100644
index 685cd74..0000000
--- a/apps/intentsync/BUCK
+++ /dev/null
@@ -1,22 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli'
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-onos_app (
-  app_name = 'org.onosproject.intentsynchronizer',
-  title = 'Intent Synchronizer',
-  category = 'Utility',
-  url = 'http://onosproject.org',
-  description = 'Synchronizes intents to the intent framework from a single instance',
-)
diff --git a/apps/iptopology-api/BUCK b/apps/iptopology-api/BUCK
deleted file mode 100644
index 3cc9301..0000000
--- a/apps/iptopology-api/BUCK
+++ /dev/null
@@ -1,8 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
diff --git a/apps/kafka-integration/BUCK b/apps/kafka-integration/BUCK
deleted file mode 100644
index ecb06ff..0000000
--- a/apps/kafka-integration/BUCK
+++ /dev/null
@@ -1,17 +0,0 @@
-BUNDLES = [
-    '//lib:kafka-clients',
-    '//lib:protobuf-java-3.2.0',
-    '//incubator/protobuf/models:onos-incubator-protobuf-models',
-    '//incubator/protobuf/models:onos-incubator-protobuf-models-proto',
-    '//apps/kafka-integration/api:onos-apps-kafka-integration-api',
-    '//apps/kafka-integration/app:onos-apps-kafka-integration-app',
-]
-
-onos_app (
-  title = 'Kafka Integration',
-  category = 'Integration',
-  url = 'http://onosproject.org',
-  description = 'Provides integration of ONOS and Kafka message bus so that internal ONOS events ' +
-    'can be broadcast over the Kafka message bus to off-platform applications.',
-  included_bundles = BUNDLES,
-)
diff --git a/apps/kafka-integration/api/BUCK b/apps/kafka-integration/api/BUCK
deleted file mode 100644
index 4609fe9..0000000
--- a/apps/kafka-integration/api/BUCK
+++ /dev/null
@@ -1,8 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:kafka-clients',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
\ No newline at end of file
diff --git a/apps/kafka-integration/app/BUCK b/apps/kafka-integration/app/BUCK
deleted file mode 100644
index 46cc863..0000000
--- a/apps/kafka-integration/app/BUCK
+++ /dev/null
@@ -1,30 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//lib:javax.ws.rs-api',
-    '//lib:org.apache.karaf.shell.console',
-    '//apps/kafka-integration/api:onos-apps-kafka-integration-api',
-    '//utils/rest:onlab-rest',
-    '//core/store/serializers:onos-core-serializers',
-    '//cli:onos-cli',
-    '//lib:kafka-clients',
-    '//lib:protobuf-java-3.2.0',
-    '//lib:GRPC_1.3',
-    '//incubator/protobuf/models:onos-incubator-protobuf-models',
-    '//incubator/protobuf/models:onos-incubator-protobuf-models-proto',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    web_context = '/onos/kafka-integration',
-    api_title = 'Kafka Integration',
-    api_version = '1.0',
-    api_description = 'REST API for Kafka Integration',
-    api_package = 'org.onosproject.kafkaintegration.rest',
-)
diff --git a/apps/l3vpn/BUCK b/apps/l3vpn/BUCK
deleted file mode 100644
index d663a65..0000000
--- a/apps/l3vpn/BUCK
+++ /dev/null
@@ -1,46 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//models/l3vpn:onos-models-l3vpn',
-    '//apps/config:onos-apps-config',
-    '//core/store/serializers:onos-core-serializers',
-    '//lib:onos-yang-model',
-    '//lib:onos-yang-runtime',
-    '//apps/yang:onos-apps-yang',
-    '//apps/pce/app:onos-apps-pce-app',
-    '//incubator/api:onos-incubator-api',
-    '//models/common:onos-models-common',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//utils/osgi:onlab-osgi-tests',
-]
-
-APPS = [
-    'org.onosproject.yang',
-    'org.onosproject.yang-gui',
-    'org.onosproject.config',
-    'org.onosproject.restconf',
-    'org.onosproject.protocols.restconfserver',
-    'org.onosproject.netconf',
-    'org.onosproject.netconfsb',
-    'org.onosproject.models.common',
-    'org.onosproject.models.l3vpn',
-    'org.onosproject.bgpcep',
-]
-
-osgi_jar_with_tests(
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-onos_app(
-    app_name = 'org.onosproject.l3vpn',
-    title = 'YANG L3VPN',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    description = 'L3VPN YANG Application',
-    required_apps = APPS,
-)
-
diff --git a/apps/layout/BUCK b/apps/layout/BUCK
deleted file mode 100644
index a24c4ea..0000000
--- a/apps/layout/BUCK
+++ /dev/null
@@ -1,19 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:org.apache.karaf.shell.console',
-    '//core/common:onos-core-common',
-    '//cli:onos-cli',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'UI Auto-Layout',
-    category = 'GUI',
-    url = 'http://onosproject.org',
-    description = 'Automatically lays out the network topology using roles assigned to each ' +
-        'network element via the network configuration. Supports multiple layout variants.',
-)
diff --git a/apps/learning-switch/BUCK b/apps/learning-switch/BUCK
deleted file mode 100644
index 61399c3..0000000
--- a/apps/learning-switch/BUCK
+++ /dev/null
@@ -1,17 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:slf4j-api',
-    '//lib:org.apache.felix.scr.annotations',
-    '//lib:junit',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'Learning Switch Tutorial',
-    category = 'Tutorial',
-    url = 'http://onosproject.org',
-    description = 'Tutorial to help user create a learning switch',
-)
\ No newline at end of file
diff --git a/apps/linkprops/BUCK b/apps/linkprops/BUCK
deleted file mode 100644
index 324bd22..0000000
--- a/apps/linkprops/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//incubator/api:onos-incubator-api'
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-  title = 'Link Properties',
-  description = 'Shows more link properties',
-  category = 'Monitoring',
-  url = 'https://onosproject.org/',
-)
diff --git a/apps/mappingmanagement/BUCK b/apps/mappingmanagement/BUCK
deleted file mode 100644
index 529962b..0000000
--- a/apps/mappingmanagement/BUCK
+++ /dev/null
@@ -1,14 +0,0 @@
-BUNDLES = [
-    '//apps/mappingmanagement/api:onos-apps-mappingmanagement-api',
-    '//apps/mappingmanagement/cli:onos-apps-mappingmanagement-cli',
-    '//apps/mappingmanagement/mgr:onos-apps-mappingmanagement-mgr',
-    '//apps/mappingmanagement/web:onos-apps-mappingmanagement-web',
-]
-
-onos_app (
-  title = 'Mapping Management',
-  description = 'ONOS mapping management application',
-  category = 'Monitoring',
-  url = 'https://onosproject.org/',
-  included_bundles = BUNDLES,
-)
diff --git a/apps/mappingmanagement/api/BUCK b/apps/mappingmanagement/api/BUCK
deleted file mode 100644
index 0e5b8c5..0000000
--- a/apps/mappingmanagement/api/BUCK
+++ /dev/null
@@ -1,15 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//core/store/serializers:onos-core-serializers',
- ]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/mappingmanagement/cli/BUCK b/apps/mappingmanagement/cli/BUCK
deleted file mode 100644
index 7fcbd24..0000000
--- a/apps/mappingmanagement/cli/BUCK
+++ /dev/null
@@ -1,18 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:org.apache.karaf.shell.console',
-    '//incubator/api:onos-incubator-api',
-    '//cli:onos-cli',
-    '//utils/rest:onlab-rest',
-    '//lib:javax.ws.rs-api',
-    '//utils/osgi:onlab-osgi',
-    '//apps/mappingmanagement/api:onos-apps-mappingmanagement-api',
-    '//core/store/serializers:onos-core-serializers',
-]
-
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    import_packages = '*,org.onosproject.cli.net',
-)
diff --git a/apps/mappingmanagement/mgr/BUCK b/apps/mappingmanagement/mgr/BUCK
deleted file mode 100644
index 5be1e7d..0000000
--- a/apps/mappingmanagement/mgr/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//apps/mappingmanagement/api:onos-apps-mappingmanagement-api',
-    '//core/store/serializers:onos-core-serializers',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//utils/osgi:onlab-osgi-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/mappingmanagement/web/BUCK b/apps/mappingmanagement/web/BUCK
deleted file mode 100644
index 24eba23..0000000
--- a/apps/mappingmanagement/web/BUCK
+++ /dev/null
@@ -1,23 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//utils/rest:onlab-rest',
-    '//lib:javax.ws.rs-api',
-    '//apps/mappingmanagement/api:onos-apps-mappingmanagement-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_REST',
-    '//web/api:onos-rest-tests',
-    '//lib:minimal-json',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    web_context = '/onos/mappingmanagement',
-    api_title = 'Mapping Management API',
-    api_version = '1.0',
-    api_description = 'REST API for ONOS Mapping Management',
-    api_package = 'org.onosproject.mapping.web.api',
-)
diff --git a/apps/mcast/BUCK b/apps/mcast/BUCK
deleted file mode 100644
index 58f3dd7..0000000
--- a/apps/mcast/BUCK
+++ /dev/null
@@ -1,15 +0,0 @@
-BUNDLES = [
-    '//apps/mcast/cli:onos-apps-mcast-cli',
-    '//apps/mcast/impl:onos-apps-mcast-impl',
-    '//apps/mcast/web:onos-apps-mcast-web',
-    '//apps/mcast/api:onos-apps-mcast-api',
-]
-
-onos_app(
-    title = 'Multicast traffic control',
-    origin = 'ONF',
-    description = 'Provides handling of multicast traffic.',
-    category = 'Traffic Engineering',
-    url = 'https://wiki.onosproject.org/',
-    included_bundles = BUNDLES,
-)
diff --git a/apps/mcast/api/BUCK b/apps/mcast/api/BUCK
deleted file mode 100644
index db499cc..0000000
--- a/apps/mcast/api/BUCK
+++ /dev/null
@@ -1,15 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//core/store/serializers:onos-core-serializers',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//utils/osgi:onlab-osgi-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/mcast/cli/BUCK b/apps/mcast/cli/BUCK
deleted file mode 100644
index df9991a..0000000
--- a/apps/mcast/cli/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//utils/rest:onlab-rest',
-    '//lib:javax.ws.rs-api',
-    '//utils/osgi:onlab-osgi',
-    '//core/store/serializers:onos-core-serializers',
-    '//apps/mcast/api:onos-apps-mcast-api'
-]
-
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    import_packages = '*,org.onosproject.cli.net',
-)
diff --git a/apps/mcast/impl/BUCK b/apps/mcast/impl/BUCK
deleted file mode 100644
index c3d67ff..0000000
--- a/apps/mcast/impl/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//core/store/serializers:onos-core-serializers',
-    '//apps/mcast/api:onos-apps-mcast-api'
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//utils/osgi:onlab-osgi-tests',
-]
-
-osgi_jar_with_tests(
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/mcast/web/BUCK b/apps/mcast/web/BUCK
deleted file mode 100644
index 7fdc057..0000000
--- a/apps/mcast/web/BUCK
+++ /dev/null
@@ -1,25 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//utils/rest:onlab-rest',
-    '//lib:javax.ws.rs-api',
-    '//apps/mcast/api:onos-apps-mcast-api'
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//lib:jersey-test-framework-core',
-    '//lib:jersey-test-framework-jetty',
-    '//utils/osgi:onlab-osgi-tests',
-    '//web/api:onos-rest-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    web_context = '/onos/mcast',
-    api_title = 'Multicast API',
-    api_version = '1.0',
-    api_description = 'REST API for Multicast',
-    api_package = 'org.onosproject.mcast.web',
-)
diff --git a/apps/metrics/BUCK b/apps/metrics/BUCK
deleted file mode 100644
index 81ee918..0000000
--- a/apps/metrics/BUCK
+++ /dev/null
@@ -1,20 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:METRICS',
-    '//lib:org.apache.karaf.shell.console',
-    '//lib:javax.ws.rs-api',
-    '//utils/rest:onlab-rest',
-    '//cli:onos-cli',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'Topology &amp; Intent Metrics',
-    category = 'Monitoring',
-    url = 'http://onosproject.org',
-    description = 'Monitoring of various metrics related to topology mutation and intent programming.',
-)
diff --git a/apps/mfwd/BUCK b/apps/mfwd/BUCK
deleted file mode 100644
index a2ed151..0000000
--- a/apps/mfwd/BUCK
+++ /dev/null
@@ -1,14 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'Multicast Forwarding',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    description = 'Multicast forwarding application.',
-)
diff --git a/apps/mlb/BUCK b/apps/mlb/BUCK
deleted file mode 100644
index eec3405..0000000
--- a/apps/mlb/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'Mastership Load Balancer',
-    category = 'Utility',
-    url = 'http://onosproject.org',
-    description = 'Monitors distribution of mastership of network devices between the ONOS cluster ' +
-        'nodes and periodically re-assigns the mastership to achieve balanced distribution when ' +
-        'necessary and possible.',
-)
diff --git a/apps/mobility/BUCK b/apps/mobility/BUCK
deleted file mode 100644
index 38b0228..0000000
--- a/apps/mobility/BUCK
+++ /dev/null
@@ -1,14 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'Host Mobility',
-    category = 'Utility',
-    url = 'http://onosproject.org',
-    description = 'Host mobility application.',
-)
diff --git a/apps/netconf/client/BUCK b/apps/netconf/client/BUCK
deleted file mode 100644
index 035b0b5..0000000
--- a/apps/netconf/client/BUCK
+++ /dev/null
@@ -1,29 +0,0 @@
-APPS = [
-    'org.onosproject.yang',
-    'org.onosproject.config',
-    'org.onosproject.netconf',
-]
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:onos-yang-model',
-    '//lib:onos-yang-runtime',
-    '//apps/config:onos-apps-config',
-    '//utils/misc:onlab-misc',
-    '//protocols/netconf/api:onos-protocols-netconf-api',
-    '//utils/osgi:onlab-osgi',
-]
-
-osgi_jar_with_tests(
-    deps = COMPILE_DEPS,
-)
-
-onos_app(
-    app_name = 'org.onosproject.netconfsb',
-    title = 'NETCONF Protocol Subsystem',
-    category = 'Protocol',
-    url = 'http://onosproject.org',
-    description = 'Exposes APIs to establish NETCONF connections to devices and to send and receive ' +
-        'messages and asynchronous notifications over such connection.',
-    required_apps = APPS,
-)
diff --git a/apps/network-troubleshoot/BUCK b/apps/network-troubleshoot/BUCK
deleted file mode 100644
index 66b12f4..0000000
--- a/apps/network-troubleshoot/BUCK
+++ /dev/null
@@ -1,13 +0,0 @@
-BUNDLES = [
-  '//apps/network-troubleshoot/api:onos-apps-network-troubleshoot-api',
-  '//apps/network-troubleshoot/cli:onos-apps-network-troubleshoot-cli',
-  '//apps/network-troubleshoot/core:onos-apps-network-troubleshoot-core',
-]
-
-onos_app (
-  title = 'Network Troubleshooter',
-  description = 'Provides various network troubleshooting utilities.',
-  category = 'Utility',
-  url = 'https://wiki.onosproject.org/display/ONOS/Network+TroubleShooting+Module',
-  included_bundles = BUNDLES,
-)
diff --git a/apps/network-troubleshoot/api/BUCK b/apps/network-troubleshoot/api/BUCK
deleted file mode 100644
index b6fdc64..0000000
--- a/apps/network-troubleshoot/api/BUCK
+++ /dev/null
@@ -1,12 +0,0 @@
-COMPILE_DEPS = [
-  '//lib:CORE_DEPS',
-]
-
-TEST_DEPS = [
-  '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-  deps = COMPILE_DEPS,
-  test_deps = TEST_DEPS,
-)
diff --git a/apps/network-troubleshoot/cli/BUCK b/apps/network-troubleshoot/cli/BUCK
deleted file mode 100644
index 8f3fe1e..0000000
--- a/apps/network-troubleshoot/cli/BUCK
+++ /dev/null
@@ -1,18 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-#     '//lib:org.apache.karaf.shell.console',
-#     '//incubator/api:onos-incubator-api',
-#     '//cli:onos-cli',
-#     '//utils/rest:onlab-rest',
-#     '//lib:javax.ws.rs-api',
-#     '//utils/osgi:onlab-osgi',
-#     '//core/store/serializers:onos-core-serializers',
-    '//apps/network-troubleshoot/api:onos-apps-network-troubleshoot-api',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    import_packages = '*,org.onosproject.cli.net',
-)
diff --git a/apps/network-troubleshoot/core/BUCK b/apps/network-troubleshoot/core/BUCK
deleted file mode 100644
index 1174519..0000000
--- a/apps/network-troubleshoot/core/BUCK
+++ /dev/null
@@ -1,17 +0,0 @@
-COMPILE_DEPS = [
-  '//lib:CORE_DEPS',
-  '//incubator/api:onos-incubator-api',
-#   '//core/store/serializers:onos-core-serializers',
-  '//apps/network-troubleshoot/api:onos-apps-network-troubleshoot-api',
-]
-
-TEST_DEPS = [
-  '//lib:TEST_ADAPTERS',
-  '//utils/osgi:onlab-osgi-tests',
-  '//incubator/api:onos-incubator-api-tests',
-]
-
-osgi_jar_with_tests (
-  deps = COMPILE_DEPS,
-  test_deps = TEST_DEPS,
-)
diff --git a/apps/newoptical/BUCK b/apps/newoptical/BUCK
deleted file mode 100644
index 8a1345b..0000000
--- a/apps/newoptical/BUCK
+++ /dev/null
@@ -1,27 +0,0 @@
-COMPILE_DEPS = [
-  '//lib:CORE_DEPS',
-  '//lib:JACKSON',
-  '//lib:KRYO',
-  '//core/store/serializers:onos-core-serializers',
-  '//lib:org.apache.karaf.shell.console',
-  '//cli:onos-cli',
-  '//apps/optical-model:onos-apps-optical-model',
-]
-
-TEST_DEPS = [
-  '//lib:TEST_ADAPTERS',
-  '//utils/osgi:onlab-osgi-tests',
-]
-
-osgi_jar_with_tests (
-  deps = COMPILE_DEPS,
-  test_deps = TEST_DEPS,
-)
-
-onos_app (
-  title = 'Packet/Optical Use-Case',
-  category = 'Optical',
-  url = 'http://onosproject.org',
-  description = 'Packet/Optical use-case application.',
-  required_apps = [ 'org.onosproject.optical-model' ],
-)
diff --git a/apps/nodemetrics/BUCK b/apps/nodemetrics/BUCK
deleted file mode 100644
index de9c07e..0000000
--- a/apps/nodemetrics/BUCK
+++ /dev/null
@@ -1,17 +0,0 @@
-BUNDLES = [
-    '//apps/nodemetrics/api:onos-apps-nodemetrics-api',
-    '//apps/nodemetrics/mgr:onos-apps-nodemetrics-mgr',
-]
-
-onos_app(
-    app_name = 'org.onosproject.nodemetrics',
-    title = 'Controller Monitor Application',
-    description = '1.Nodemetrics Application uses, sigar library to fetch Controller information.'+
-    '2. The Sigar library uses Native libraries and currently It supports Windows, Linux and MacOs platform.'+
-    '3. The Native libraries like .so, .dll and .dylib are packed as jar along with sigar libs.'+
-    '4. If the Native libraries are corrupted because of any reason,'+
-    'so, the controller is vulnerable to crash of the entire JVM',
-    category = 'Monitoring',
-    url = 'http://samsung.com',
-    included_bundles = BUNDLES
-)
\ No newline at end of file
diff --git a/apps/nodemetrics/api/BUCK b/apps/nodemetrics/api/BUCK
deleted file mode 100644
index 42b99a6..0000000
--- a/apps/nodemetrics/api/BUCK
+++ /dev/null
@@ -1,9 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:sigar',
-
-]
-
-osgi_jar_with_tests(
-    deps = COMPILE_DEPS,
-)
\ No newline at end of file
diff --git a/apps/nodemetrics/mgr/BUCK b/apps/nodemetrics/mgr/BUCK
deleted file mode 100644
index 35d3657..0000000
--- a/apps/nodemetrics/mgr/BUCK
+++ /dev/null
@@ -1,13 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:sigar',
-    '//lib:org.apache.karaf.shell.console',
-    '//apps/nodemetrics/api:onos-apps-nodemetrics-api',
-    '//core/store/serializers:onos-core-serializers',
-    '//cli:onos-cli',
-    '//lib:KRYO',
-]
-
-osgi_jar_with_tests(
-    deps = COMPILE_DEPS,
-)
\ No newline at end of file
diff --git a/apps/odtn/api/BUCK b/apps/odtn/api/BUCK
deleted file mode 100644
index 6883ca4..0000000
--- a/apps/odtn/api/BUCK
+++ /dev/null
@@ -1,39 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:onos-yang-model',
-    '//lib:onos-yang-runtime',
-    '//models/tapi:onos-models-tapi',
-    '//models/openconfig:onos-models-openconfig',
-    '//apps/yang:onos-apps-yang',
-    '//apps/config:onos-apps-config',
-    '//models/openconfig-infinera:onos-models-openconfig-infinera',
-    '//protocols/netconf/api:onos-protocols-netconf-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-APPS = [
-    'org.onosproject.yang',
-    'org.onosproject.models.tapi',
-    'org.onosproject.models.openconfig',
-    'org.onosproject.models.openconfig-infinera',
-    'org.onosproject.netconf',
-]
-
-# TODO probably bucklet, etc. should escape title & description
-onos_app (
-    app_name = 'org.onosproject.odtn-api',
-    title = 'ODTN API &amp; Utilities Application',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    description = 'ODTN API &amp; Utilities Application',
-    required_apps = APPS,
-)
diff --git a/apps/odtn/service/BUCK b/apps/odtn/service/BUCK
deleted file mode 100644
index e85e574..0000000
--- a/apps/odtn/service/BUCK
+++ /dev/null
@@ -1,50 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//apps/odtn/api:onos-apps-odtn-api',
-    '//lib:onos-yang-model',
-    '//lib:onos-yang-runtime',
-    '//apps/config:onos-apps-config',
-    '//models/tapi:onos-models-tapi',
-    '//models/openconfig:onos-models-openconfig',
-    '//apps/yang:onos-apps-yang',
-    '//incubator/api:onos-incubator-api',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//lib:JACKSON',
-    '//protocols/netconf/api:onos-protocols-netconf-api'
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-APPS = [
-    'org.onosproject.yang',
-    'org.onosproject.config',
-    'org.onosproject.configsync',
-    'org.onosproject.models.tapi',
-    'org.onosproject.models.openconfig',
-    'org.onosproject.odtn-api',
-
-    # strictly speaking following are not mandatory
-    'org.onosproject.restconf',
-    'org.onosproject.drivers.netconf',# will need if using TemplateManager
-    'org.onosproject.drivers.odtn-driver',
-    'org.onosproject.netconf',
-    'org.onosproject.configsync-netconf',
-    'org.onosproject.protocols.restconfserver',
-]
-
-onos_app (
-    app_name = 'org.onosproject.odtn-service',
-    title = 'ODTN Service Application',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    description = 'ODTN Service Application',
-    required_apps = APPS,
-)
diff --git a/apps/ofagent/BUCK b/apps/ofagent/BUCK
deleted file mode 100644
index 1283bad..0000000
--- a/apps/ofagent/BUCK
+++ /dev/null
@@ -1,54 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//core/store/serializers:onos-core-serializers',
-    '//core/common:onos-core-common',
-    '//incubator/api:onos-incubator-api',
-    '//cli:onos-cli',
-    '//lib:org.apache.karaf.shell.console',
-    '//lib:io_netty_netty_transport',
-    '//lib:io_netty_netty_buffer',
-    '//lib:io_netty_netty_codec',
-    '//lib:io_netty_netty_handler',
-    '//lib:openflowj',
-    '//lib:javax.ws.rs-api',
-    '//utils/rest:onlab-rest',
-    '//providers/openflow/flow:onos-providers-openflow-flow',
-    '//protocols/openflow/api:onos-protocols-openflow-api',
-]
-
-BUNDLES = [
-    '//apps/ofagent:onos-apps-ofagent',
-    '//providers/openflow/flow:onos-providers-openflow-flow',
-    '//protocols/openflow/api:onos-protocols-openflow-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-    '//core/common:onos-core-common-tests',
-    '//lib:TEST_REST',
-    '//lib:jersey-server',
-    '//web/api:onos-rest-tests',
-    '//lib:minimal-json',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    web_context = '/onos/ofagent',
-    api_title = 'OFAgent API',
-    api_version = '1.0',
-    api_description = 'REST API for OFAgent',
-    api_package = 'org.onosproject.ofagent.rest',
-)
-
-onos_app (
-    title = 'OpenFlow Agent',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    included_bundles = BUNDLES,
-    description = 'OpenFlow agent application for virtualization subsystem.',
-)
diff --git a/apps/openroadm/BUCK b/apps/openroadm/BUCK
deleted file mode 100644
index d529c3b..0000000
--- a/apps/openroadm/BUCK
+++ /dev/null
@@ -1,25 +0,0 @@
-APPS = [
-  'org.onosproject.yang',
-  'org.onosproject.yang-gui',
-  'org.onosproject.config',
-  'org.onosproject.restconf',
-  'org.onosproject.protocols.restconfserver',
-  'org.onosproject.netconf',
-  'org.onosproject.netconfsb',
-  'org.onosproject.models.openroadm',
-]
-
-BUNDLES = [
-  '//apps/openroadm/service:onos-apps-openroadm-service',
-  '//apps/openroadm/network:onos-apps-openroadm-network',
-]
-
-onos_app(
-  app_name = 'org.onosproject.openroadm',
-  title = 'Open ROADM',
-  category = 'Optical',
-  url = 'http://onosproject.org',
-  included_bundles = BUNDLES,
-  description = 'Open ROADM Application',
-  required_apps = APPS,
-)
diff --git a/apps/openroadm/network/BUCK b/apps/openroadm/network/BUCK
deleted file mode 100644
index 7e8d0b2..0000000
--- a/apps/openroadm/network/BUCK
+++ /dev/null
@@ -1,9 +0,0 @@
-COMPILE_DEPS = [
-  '//lib:CORE_DEPS',
-  '//models/openroadm:onos-models-openroadm',
-  '//core/store/serializers:onos-core-serializers',
-] + YANG_TOOLS
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/apps/openroadm/service/BUCK b/apps/openroadm/service/BUCK
deleted file mode 100644
index 7e8d0b2..0000000
--- a/apps/openroadm/service/BUCK
+++ /dev/null
@@ -1,9 +0,0 @@
-COMPILE_DEPS = [
-  '//lib:CORE_DEPS',
-  '//models/openroadm:onos-models-openroadm',
-  '//core/store/serializers:onos-core-serializers',
-] + YANG_TOOLS
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/apps/openstacknetworking/BUCK b/apps/openstacknetworking/BUCK
deleted file mode 100644
index 01778ea..0000000
--- a/apps/openstacknetworking/BUCK
+++ /dev/null
@@ -1,19 +0,0 @@
-BUNDLES = [
-    '//apps/openstacknetworking/api:onos-apps-openstacknetworking-api',
-    '//apps/openstacknetworking/app:onos-apps-openstacknetworking-app',
-    '//lib:httpclient-osgi',
-    '//lib:httpcore-osgi',
-    '//lib:commons-codec',
-    '//lib:sshd-core',
-]
-
-onos_app (
-    title = 'OpenStack Networking Application',
-    category = 'Integration',
-    url = 'https://wiki.onosproject.org/display/ONOS/SONA%3A+DC+Network+Virtualization',
-    included_bundles = BUNDLES,
-    description = 'SONA Openstack Networking Application.',
-    required_apps = [
-        'org.onosproject.openstacknode'
-    ]
-)
diff --git a/apps/openstacknetworking/api/BUCK b/apps/openstacknetworking/api/BUCK
deleted file mode 100644
index 61b333d..0000000
--- a/apps/openstacknetworking/api/BUCK
+++ /dev/null
@@ -1,13 +0,0 @@
-include_defs('//apps/openstacknode/openstack4j.bucklet')
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:openstack4j-core',
-    "//apps/openstacknode/api:onos-apps-openstacknode-api",
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-
-    import_packages = INCLUDE_PACKAGES + ',' + EXCLUDE_PACKAGES  + ',' + ALL_PACKAGES,
-)
diff --git a/apps/openstacknetworking/app/BUCK b/apps/openstacknetworking/app/BUCK
deleted file mode 100644
index a227e74..0000000
--- a/apps/openstacknetworking/app/BUCK
+++ /dev/null
@@ -1,55 +0,0 @@
-include_defs('//apps/openstacknode/openstack4j.bucklet')
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//core/store/serializers:onos-core-serializers',
-    '//lib:org.apache.karaf.shell.console',
-    '//lib:javax.ws.rs-api',
-    '//utils/rest:onlab-rest',
-    '//cli:onos-cli',
-    '//apps/openstacknode/api:onos-apps-openstacknode-api',
-    '//apps/openstacknetworking/api:onos-apps-openstacknetworking-api',
-    '//protocols/ovsdb/api:onos-protocols-ovsdb-api',
-    '//protocols/ovsdb/rfc:onos-protocols-ovsdb-rfc',
-    '//lib:httpclient-osgi',
-    '//lib:httpcore-osgi',
-    '//lib:commons-codec',
-    '//lib:openstack4j-core',
-    '//lib:openstack4j-http-connector',
-    '//lib:openstack4j-httpclient',
-    '//lib:json-patch',
-    '//lib:jackson-coreutils',
-    '//lib:btf',
-    '//lib:msg-simple',
-    '//lib:snakeyaml',
-    '//lib:sshd-core',
-]
-
-EXCLUDED_BUNDLES = [
-  '//lib:sshd-core',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-    '//core/common:onos-core-common-tests',
-    '//web/api:onos-rest-tests',
-    '//lib:TEST_REST',
-    '//apps/openstacknode/api:onos-apps-openstacknode-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    web_context = '/onos/openstacknetworking',
-    api_title = 'OpenStack Networking API',
-    api_version = '1.0',
-    api_description = 'REST API for OpenStack Networking',
-    api_package = 'org.onosproject.openstacknetworking.web',
-
-    # dependency embedding
-    import_packages = INCLUDE_PACKAGES + ',' + EXCLUDE_PACKAGES  + ',' + ALL_PACKAGES,
-    bundle_classpath = get_openstack4j_deps_path() + get_jackson_deps_path()
-)
\ No newline at end of file
diff --git a/apps/openstacknetworkingui/BUCK b/apps/openstacknetworkingui/BUCK
deleted file mode 100644
index 2f2fe68..0000000
--- a/apps/openstacknetworkingui/BUCK
+++ /dev/null
@@ -1,42 +0,0 @@
-COMPILE_DEPS = [
-  '//lib:CORE_DEPS',
-  '//lib:JACKSON',
-  '//core/store/serializers:onos-core-serializers',
-  '//lib:javax.ws.rs-api',
-  '//utils/rest:onlab-rest',
-  '//lib:jersey-client',
-  '//cli:onos-cli',
-  '//lib:org.apache.karaf.shell.console',
-  '//lib:sshd-core',
-  '//apps/openstacknode/api:onos-apps-openstacknode-api',
-  '//apps/openstacktelemetry/api:onos-apps-openstacktelemetry-api',
-  '//apps/openstacknetworking/api:onos-apps-openstacknetworking-api',
-  '//apps/openstacknetworking/app:onos-apps-openstacknetworking-app',
-]
-
-EXCLUDED_BUNDLES = [
-  '//lib:sshd-core',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-    '//core/common:onos-core-common-tests',
-]
-
-osgi_jar_with_tests (
-  deps = COMPILE_DEPS,
-  test_deps = TEST_DEPS,
-)
-
-onos_app (
-  app_name = 'org.onosproject.openstacknetworkingui',
-  title = 'Openstack Networking UI',
-  category = 'GUI',
-  url = 'http://onosproject.org',
-  description = 'Openstack Networking UI Service',
-  excluded_bundles = EXCLUDED_BUNDLES,
-  required_apps = [
-      'org.onosproject.openstacknetworking',
-  ]
-)
diff --git a/apps/openstacknode/BUCK b/apps/openstacknode/BUCK
deleted file mode 100644
index 6abc695..0000000
--- a/apps/openstacknode/BUCK
+++ /dev/null
@@ -1,13 +0,0 @@
-BUNDLES = [
-    '//apps/openstacknode/api:onos-apps-openstacknode-api',
-    '//apps/openstacknode/app:onos-apps-openstacknode-app',
-]
-
-onos_app (
-    title = 'OpenStack Node Bootstrap',
-    category = 'Integration',
-    url = 'http://onosproject.org',
-    included_bundles = BUNDLES,
-    description = 'SONA Openstack Node Bootstrap Application.',
-    required_apps = [ 'org.onosproject.ovsdb-base', 'org.onosproject.drivers.ovsdb' ]
-)
diff --git a/apps/openstacknode/api/BUCK b/apps/openstacknode/api/BUCK
deleted file mode 100644
index 02cd049..0000000
--- a/apps/openstacknode/api/BUCK
+++ /dev/null
@@ -1,23 +0,0 @@
-include_defs('//apps/openstacknode/openstack4j.bucklet')
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//protocols/ovsdb/api:onos-protocols-ovsdb-api',
-    '//protocols/ovsdb/rfc:onos-protocols-ovsdb-rfc',
-    '//core/store/serializers:onos-core-serializers',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-    '//core/common:onos-core-common-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-
-    import_packages = INCLUDE_PACKAGES + ',' + EXCLUDE_PACKAGES  + ',' + ALL_PACKAGES,
-)
diff --git a/apps/openstacknode/app/BUCK b/apps/openstacknode/app/BUCK
deleted file mode 100644
index d670b42..0000000
--- a/apps/openstacknode/app/BUCK
+++ /dev/null
@@ -1,47 +0,0 @@
-include_defs('//apps/openstacknode/openstack4j.bucklet')
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//lib:javax.ws.rs-api',
-    '//utils/rest:onlab-rest',
-    '//protocols/ovsdb/api:onos-protocols-ovsdb-api',
-    '//protocols/ovsdb/rfc:onos-protocols-ovsdb-rfc',
-    '//core/store/serializers:onos-core-serializers',
-    '//apps/openstacknode/api:onos-apps-openstacknode-api',
-    '//lib:openstack4j-core',
-    '//lib:openstack4j-http-connector',
-    '//lib:openstack4j-httpclient',
-    '//lib:json-patch',
-    '//lib:jackson-coreutils',
-    '//lib:btf',
-    '//lib:msg-simple',
-    '//lib:snakeyaml',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-    '//apps/openstacknode/api:onos-apps-openstacknode-api-tests',
-    '//core/common:onos-core-common-tests',
-    '//web/api:onos-rest-tests',
-    '//lib:TEST_REST',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    web_context = '/onos/openstacknode',
-    api_title = 'OpenStack Node API',
-    api_version = '1.0',
-    api_description = 'REST API for OpenStack Node',
-    api_package = 'org.onosproject.openstacknode.web',
-
-    # dependency embedding
-    import_packages = INCLUDE_PACKAGES + ',' + EXCLUDE_PACKAGES  + ',' + ALL_PACKAGES,
-    bundle_classpath = get_openstack4j_deps_path() + get_jackson_deps_path()
-)
-
diff --git a/apps/openstacknode/openstack4j.bucklet b/apps/openstacknode/openstack4j.bucklet
deleted file mode 100644
index d9e16f4..0000000
--- a/apps/openstacknode/openstack4j.bucklet
+++ /dev/null
@@ -1,41 +0,0 @@
-INCLUDE_PACKAGES = 'com.google.common.net,com.google.common.io,com.fasterxml.jackson.annotation'
-EXCLUDE_PACKAGES = '!org.openstack4j,!org.openstack4j.*,!org.openstack4j.model.network'
-ALL_PACKAGES = '*'
-
-def get_openstack4j_deps_path():
-
-    WEB_INF_PATH = 'WEB-INF/classes/deps/'
-    OPENSTACK4J_DEPS = [
-        'openstack4j-core',
-        'openstack4j-http-connector',
-        'openstack4j-httpclient',
-    ]
-    OPENSTACK4J_VER = '3.1.0'
-
-    openstack_deps_path = ''
-
-    for dep in OPENSTACK4J_DEPS:
-        name = dep + '-' + OPENSTACK4J_VER + '.jar'
-        path = WEB_INF_PATH + name
-        openstack_deps_path = openstack_deps_path + path + ','
-
-    return openstack_deps_path
-
-def get_jackson_deps_path():
-
-    WEB_INF_PATH = 'WEB-INF/classes/deps/'
-    JACKSON_DEPS_WITH_VER = [
-        'json-patch-1.9.jar',
-        'jackson-coreutils-1.6.jar',
-        'msg-simple-1.1.jar',
-        'btf-1.2.jar',
-        'snakeyaml-1.15.jar'
-    ]
-
-    jackson_deps_path = ''
-
-    for dep in JACKSON_DEPS_WITH_VER:
-        path = WEB_INF_PATH + dep
-        jackson_deps_path = jackson_deps_path + path + ','
-
-    return jackson_deps_path
\ No newline at end of file
diff --git a/apps/openstacktelemetry/BUCK b/apps/openstacktelemetry/BUCK
deleted file mode 100644
index 3636bbb..0000000
--- a/apps/openstacktelemetry/BUCK
+++ /dev/null
@@ -1,43 +0,0 @@
-GRPC_VER = '1.3.1'
-
-BUNDLES = [
-    '//lib:kafka-clients',
-    '//lib:influxdb-java',
-    '//lib:simpleclient',
-    '//lib:simpleclient_common',
-    '//lib:simpleclient_hotspot',
-    '//lib:simpleclient_servlet',
-    '//lib:jetty-http',
-    '//lib:jetty-servlet',
-    '//lib:jetty-server',
-    '//lib:jetty-security',
-    '//lib:jetty-util',
-    '//lib:jetty-io',
-    '//lib:servlet-api',
-    '//lib:javax.ws.rs-api',
-    '//lib:jetty-websocket',
-    '//lib:commons-codec',
-    '//lib:retrofit',
-    '//lib:okhttp',
-    '//lib:logging-interceptor',
-    '//lib:com_google_code_gson_gson',
-    '//lib:okio',
-    '//lib:moshi',
-    '//lib:converter-moshi',
-    '//lib:protobuf-java-3.2.0',
-    '//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
-    '//lib:google-instrumentation-0.3.0',
-    '//apps/openstacktelemetry/api:onos-apps-openstacktelemetry-api',
-    '//apps/openstacktelemetry/app:onos-apps-openstacktelemetry-app',
-]
-
-onos_app (
-    title = 'OpenStack Telemetry Application',
-    category = 'Integration',
-    url = 'https://wiki.onosproject.org/display/ONOS/SONA%3A+DC+Network+Virtualization',
-    included_bundles = BUNDLES,
-    description = 'SONA Openstack Telemetry Application.',
-    required_apps = [
-        'org.onosproject.openstacknetworking'
-    ]
-)
diff --git a/apps/openstacktelemetry/api/BUCK b/apps/openstacktelemetry/api/BUCK
deleted file mode 100644
index bd27fb6..0000000
--- a/apps/openstacktelemetry/api/BUCK
+++ /dev/null
@@ -1,18 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:kafka-clients',
-    '//lib:jersey-client',
-    '//lib:javax.ws.rs-api',
-    '//lib:influxdb-java',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-    '//core/common:onos-core-common-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/openstacktelemetry/app/BUCK b/apps/openstacktelemetry/app/BUCK
deleted file mode 100644
index 0d8faa4..0000000
--- a/apps/openstacktelemetry/app/BUCK
+++ /dev/null
@@ -1,52 +0,0 @@
-GRPC_VER = '1.3.1'
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//core/store/serializers:onos-core-serializers',
-    '//lib:javax.ws.rs-api',
-    '//utils/rest:onlab-rest',
-    '//lib:jersey-client',
-    '//cli:onos-cli',
-    '//lib:org.apache.karaf.shell.console',
-    '//apps/openstacknode/api:onos-apps-openstacknode-api',
-    '//apps/openstacknetworking/api:onos-apps-openstacknetworking-api',
-    '//apps/openstacktelemetry/api:onos-apps-openstacktelemetry-api',
-    '//lib:kafka-clients',
-    '//lib:influxdb-java',
-    '//lib:simpleclient',
-    '//lib:simpleclient_common',
-    '//lib:simpleclient_hotspot',
-    '//lib:simpleclient_servlet',
-    '//lib:jetty-http',
-    '//lib:jetty-servlet',
-    '//lib:jetty-server',
-    '//lib:jetty-security',
-    '//lib:jetty-websocket',
-    '//lib:jetty-util',
-    '//lib:jetty-io',
-    '//lib:servlet-api',
-    '//lib:protobuf-java-3.2.0',
-    '//lib:GRPC_1.3',
-    '//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
-    '//lib:grpc-protobuf-lite-' + GRPC_VER,
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-    '//core/common:onos-core-common-tests',
-    '//web/api:onos-rest-tests',
-    '//lib:TEST_REST',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    web_context = '/onos/openstacktelemetry',
-    api_title = 'OpenStack Network Telemetry REST API',
-    api_version = '1.0',
-    api_description = 'OpenStack Network Telemetry REST API',
-    api_package = 'org.onosproject.openstacktelemetry.web',
-)
diff --git a/apps/openstacktroubleshoot/BUCK b/apps/openstacktroubleshoot/BUCK
deleted file mode 100644
index b834c12..0000000
--- a/apps/openstacktroubleshoot/BUCK
+++ /dev/null
@@ -1,13 +0,0 @@
-BUNDLES = [
-    '//apps/openstacktroubleshoot/api:onos-apps-openstacktroubleshoot-api',
-    '//apps/openstacktroubleshoot/app:onos-apps-openstacktroubleshoot-app',
-]
-
-onos_app (
-    title = 'OpenStack Troubleshoot',
-    category = 'Integration',
-    url = 'http://onosproject.org',
-    included_bundles = BUNDLES,
-    description = 'SONA Openstack Troubleshoot Application.',
-    required_apps = [ 'org.onosproject.openstacknetworking' ]
-)
\ No newline at end of file
diff --git a/apps/openstacktroubleshoot/api/BUCK b/apps/openstacktroubleshoot/api/BUCK
deleted file mode 100644
index 27cd4a2..0000000
--- a/apps/openstacktroubleshoot/api/BUCK
+++ /dev/null
@@ -1,17 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//apps/openstacknetworking/api:onos-apps-openstacknetworking-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-    '//core/common:onos-core-common-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/openstacktroubleshoot/app/BUCK b/apps/openstacktroubleshoot/app/BUCK
deleted file mode 100644
index b0c072c..0000000
--- a/apps/openstacktroubleshoot/app/BUCK
+++ /dev/null
@@ -1,32 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//core/store/serializers:onos-core-serializers',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//lib:javax.ws.rs-api',
-    '//utils/rest:onlab-rest',
-    '//apps/openstacknode/api:onos-apps-openstacknode-api',
-    '//apps/openstacknetworking/api:onos-apps-openstacknetworking-api',
-    '//apps/openstacktroubleshoot/api:onos-apps-openstacktroubleshoot-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-    '//core/common:onos-core-common-tests',
-    '//web/api:onos-rest-tests',
-    '//lib:TEST_REST',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    web_context = '/onos/openstacktroubleshoot',
-    api_title = 'OpenStack Troubleshoot API',
-    api_version = '1.0',
-    api_description = 'REST API for OpenStack Troubleshoot',
-    api_package = 'org.onosproject.openstacktroubleshoot.web',
-)
-
diff --git a/apps/openstackvtap/BUCK b/apps/openstackvtap/BUCK
deleted file mode 100644
index e124259..0000000
--- a/apps/openstackvtap/BUCK
+++ /dev/null
@@ -1,15 +0,0 @@
-BUNDLES = [
-    '//apps/openstackvtap/api:onos-apps-openstackvtap-api',
-    '//apps/openstackvtap/app:onos-apps-openstackvtap-app',
-]
-
-onos_app (
-    title = 'Openstack Vtap Application',
-    category = 'Integration',
-    url = 'https://wiki.onosproject.org/display/ONOS/SONA%3A+DC+Network+Virtualization',
-    included_bundles = BUNDLES,
-    description = 'SONA Openstack Vtap Application.',
-    required_apps = [
-        'org.onosproject.openstacknetworking',
-    ]
-)
diff --git a/apps/openstackvtap/api/BUCK b/apps/openstackvtap/api/BUCK
deleted file mode 100644
index 9fde222..0000000
--- a/apps/openstackvtap/api/BUCK
+++ /dev/null
@@ -1,14 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-    '//core/common:onos-core-common-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS
-)
diff --git a/apps/openstackvtap/app/BUCK b/apps/openstackvtap/app/BUCK
deleted file mode 100644
index 3656f6c..0000000
--- a/apps/openstackvtap/app/BUCK
+++ /dev/null
@@ -1,32 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//core/store/serializers:onos-core-serializers',
-    '//lib:javax.ws.rs-api',
-    '//utils/rest:onlab-rest',
-    '//lib:jersey-client',
-    '//cli:onos-cli',
-    '//lib:org.apache.karaf.shell.console',
-    '//apps/openstacknetworking/api:onos-apps-openstacknetworking-api',
-    '//apps/openstacknode/api:onos-apps-openstacknode-api',
-    '//apps/openstackvtap/api:onos-apps-openstackvtap-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-    '//core/common:onos-core-common-tests',
-    '//web/api:onos-rest-tests',
-    '//lib:TEST_REST',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    web_context = '/onos/openstackvtap',
-    api_title = 'OpenStack Vtap REST API',
-    api_version = '1.0',
-    api_description = 'OpenStack Vtap REST API',
-    api_package = 'org.onosproject.openstackvtap.web',
-)
diff --git a/apps/optical-model/BUCK b/apps/optical-model/BUCK
deleted file mode 100644
index de3def8..0000000
--- a/apps/optical-model/BUCK
+++ /dev/null
@@ -1,29 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//incubator/api:onos-incubator-api',
-    '//cli:onos-cli',
-    '//lib:org.apache.karaf.shell.console',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-onos_app (
-    app_name = 'org.onosproject.optical-model',
-    # Is there a way to change BUCK target name properly?
-    #name = 'onos-optical-model',
-    feature_coords = 'org.onosproject:onos-optical-model:%s' % (ONOS_VERSION),
-    title = 'Optical Network Model',
-    category = 'Optical',
-    url = 'https://wiki.onosproject.org/x/C4m',
-    description = 'ONOS optical information model.',
-    required_apps = [ ],
-)
diff --git a/apps/optical-rest/BUCK b/apps/optical-rest/BUCK
deleted file mode 100644
index 9c47cb8..0000000
--- a/apps/optical-rest/BUCK
+++ /dev/null
@@ -1,35 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:javax.ws.rs-api',
-    '//utils/rest:onlab-rest',
-    '//apps/optical-model:onos-apps-optical-model'
-]
-
-APPS = [
-    'org.onosproject.optical-model',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_REST',
-    '//utils/osgi:onlab-osgi-tests',
-    '//web/api:onos-rest-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    web_context = '/onos/optical',
-    api_title = 'Optical Network Model REST API',
-    api_version = '1.0',
-    api_description = 'REST API for Optical Model',
-    api_package = 'org.onosproject.net.optical.rest'
-)
-
-onos_app (
-    title = 'Optical Network Model REST API',
-    category = 'Optical',
-    url = 'http://onosproject.org',
-    description = 'This application provides REST support for optical network model.',
-    required_apps = APPS
-)
diff --git a/apps/p4-tutorial/mytunnel/BUCK b/apps/p4-tutorial/mytunnel/BUCK
deleted file mode 100644
index 7945c93..0000000
--- a/apps/p4-tutorial/mytunnel/BUCK
+++ /dev/null
@@ -1,24 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//apps/p4-tutorial/pipeconf:onos-apps-p4-tutorial-pipeconf',
-]
-
-osgi_jar (
-    deps = COMPILE_DEPS,
-)
-
-BUNDLES = [
-    '//apps/p4-tutorial/mytunnel:onos-apps-p4-tutorial-mytunnel',
-]
-
-onos_app (
-    app_name = 'org.onosproject.p4tutorial.mytunnel',
-    title = 'MyTunnel Demo App',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    description = 'Provides forwarding between each pair of hosts via MyTunnel protocol',
-    included_bundles = BUNDLES,
-    required_apps = [
-        'org.onosproject.p4tutorial.pipeconf',
-    ]
-)
diff --git a/apps/p4-tutorial/pipeconf/BUCK b/apps/p4-tutorial/pipeconf/BUCK
deleted file mode 100644
index 6bdb389..0000000
--- a/apps/p4-tutorial/pipeconf/BUCK
+++ /dev/null
@@ -1,27 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:minimal-json',
-    '//protocols/p4runtime/model:onos-protocols-p4runtime-model',
-    '//drivers/default:onos-drivers-default',
-    '//protocols/p4runtime/api:onos-protocols-p4runtime-api',
-]
-
-osgi_jar (
-    deps = COMPILE_DEPS,
-)
-
-BUNDLES = [
-    '//apps/p4-tutorial/pipeconf:onos-apps-p4-tutorial-pipeconf',
-]
-
-onos_app (
-    app_name = 'org.onosproject.p4tutorial.pipeconf',
-    title = 'P4 Tutorial Pipeconf',
-    category = 'Pipeconf',
-    url = 'http://onosproject.org',
-    description = 'Provides pipeconf for the ONOS-P4 Tutorial',
-    included_bundles = BUNDLES,
-    required_apps = [
-        'org.onosproject.drivers.p4runtime',
-    ]
-)
diff --git a/apps/packet-stats/BUCK b/apps/packet-stats/BUCK
deleted file mode 100644
index e7c77b1..0000000
--- a/apps/packet-stats/BUCK
+++ /dev/null
@@ -1,21 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:METRICS',
-    '//core/store/serializers:onos-core-serializers',
-    '//core/store/primitives:onos-core-primitives',
-    '//core/api:onos-api',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'Packet Statistics',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    description = 'Application to calculate the number of packets of different types',
-)
diff --git a/apps/pathpainter/BUCK b/apps/pathpainter/BUCK
deleted file mode 100644
index bbb142a..0000000
--- a/apps/pathpainter/BUCK
+++ /dev/null
@@ -1,20 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    title = 'Path Visualization',
-    category = 'GUI',
-    url = 'http://onosproject.org',
-    description = 'Extends the GUI topology view by adding an overlay that allows the operator ' +
-        'to visualize topology paths using various forms of path-finding algorithms such as ' +
-        'the Dijkstra shortest path using default link metric (ONOS default), using geographic ' +
-        'distances, disjoint paths, etc.',
-)
diff --git a/apps/pce/BUCK b/apps/pce/BUCK
deleted file mode 100644
index cd306b8..0000000
--- a/apps/pce/BUCK
+++ /dev/null
@@ -1,15 +0,0 @@
-BUNDLES = [
-    '//apps/pce/bandwidthmgmt:onos-apps-pce-bandwidthmgmt',
-    '//apps/pce/app:onos-apps-pce-app',
-    '//apps/pce/pcerest:onos-apps-pce-pcerest',
-    '//apps/pce/pceweb:onos-apps-pce-pceweb',
-]
-
-onos_app (
-  app_name='org.onosproject.pce',
-    title = 'PCE APP',
-    category = 'PCE',
-    url = 'http://onosproject.org',
-    included_bundles = BUNDLES,
-    description = 'PCE Service App.',
-)
\ No newline at end of file
diff --git a/apps/pce/app/BUCK b/apps/pce/app/BUCK
deleted file mode 100644
index 7f3869f..0000000
--- a/apps/pce/app/BUCK
+++ /dev/null
@@ -1,35 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:COMPILE',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//lib:org.osgi.compendium',
-    '//cli:onos-cli',
-    '//core/store/serializers:onos-core-serializers',
-    '//utils/rest:onlab-rest',
-    '//incubator/api:onos-incubator-api',
-    '//apps/pcep-api:onos-apps-pcep-api',
-    '//utils/misc:onlab-misc',
-    '//core/api:onos-api',
-    '//lib:org.apache.karaf.shell.console',
-    '//lib:javax.ws.rs-api',
-    '//apps/pce/bandwidthmgmt:onos-apps-pce-bandwidthmgmt',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_REST',
-    '//incubator/api:onos-incubator-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS
-)
-
-onos_app (
-    app_name='org.onosproject.pce.app',
-    title = 'PCE',
-    category = 'default',
-    url = 'http://onosproject.org',
-    description = 'PCE as centeral controller App.',
-)
diff --git a/apps/pce/bandwidthmgmt/BUCK b/apps/pce/bandwidthmgmt/BUCK
deleted file mode 100644
index c5f0b25..0000000
--- a/apps/pce/bandwidthmgmt/BUCK
+++ /dev/null
@@ -1,18 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//core/store/serializers:onos-core-serializers',
-    '//apps/pcep-api:onos-apps-pcep-api',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS
-)
-
-onos_app (
-    app_name = 'org.onosproject.bandwidthmgmt',
-    title = 'PCE Bandwidth Management',
-    category = 'default',
-    url = 'http://onosproject.org',
-    description = 'PCE Bandwidth Management.',
-)
diff --git a/apps/pce/pcerest/BUCK b/apps/pce/pcerest/BUCK
deleted file mode 100644
index bed98d2..0000000
--- a/apps/pce/pcerest/BUCK
+++ /dev/null
@@ -1,27 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:javax.ws.rs-api',
-    '//utils/rest:onlab-rest',
-    '//apps/pce/app:onos-apps-pce-app',
-    '//core/store/serializers:onos-core-serializers',
-    '//core/api:onos-api',
-    '//incubator/api:onos-incubator-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_REST',
-    '//lib:minimal-json',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS
-)
-
-onos_app (
-    title = 'PCE REST API',
-    category = 'Utility',
-    url = 'http://onosproject.org',
-    description = 'Tunnel Service between network devices via REST interface',
-)
diff --git a/apps/pce/pceweb/BUCK b/apps/pce/pceweb/BUCK
deleted file mode 100644
index a4a9a34..0000000
--- a/apps/pce/pceweb/BUCK
+++ /dev/null
@@ -1,20 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//apps/pce/app:onos-apps-pce-app',
-    '//cli:onos-cli',
-    '//lib:org.apache.karaf.shell.console',
-    '//core/api:onos-api',
-    '//incubator/api:onos-incubator-api',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'PCE REST API',
-    category = 'Utility',
-    url = 'http://onosproject.org',
-    description = 'Allows the user to visualize different types of paths between network entities',
-)
diff --git a/apps/pcep-api/BUCK b/apps/pcep-api/BUCK
deleted file mode 100644
index 5751b06..0000000
--- a/apps/pcep-api/BUCK
+++ /dev/null
@@ -1,17 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//protocols/ovsdb/api:onos-protocols-ovsdb-api',
-    '//protocols/ovsdb/rfc:onos-protocols-ovsdb-rfc',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'PCEP Protocol API',
-    category = 'Protocol',
-    url = 'http://onosproject.org',
-    description = 'PCEP protocol API.',
-)
diff --git a/apps/pi-demo/common/BUCK b/apps/pi-demo/common/BUCK
deleted file mode 100644
index 132086c..0000000
--- a/apps/pi-demo/common/BUCK
+++ /dev/null
@@ -1,7 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-]
-
-osgi_jar (
-    deps = COMPILE_DEPS,
-)
\ No newline at end of file
diff --git a/apps/pi-demo/ecmp/BUCK b/apps/pi-demo/ecmp/BUCK
deleted file mode 100644
index 71dcc31..0000000
--- a/apps/pi-demo/ecmp/BUCK
+++ /dev/null
@@ -1,27 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:minimal-json',
-    '//apps/pi-demo/common:onos-apps-pi-demo-common',
-    '//pipelines/basic:onos-pipelines-basic',
-]
-
-osgi_jar (
-    deps = COMPILE_DEPS,
-)
-
-BUNDLES = [
-    '//apps/pi-demo/common:onos-apps-pi-demo-common',
-    '//apps/pi-demo/ecmp:onos-apps-pi-demo-ecmp',
-]
-
-onos_app (
-    app_name = 'org.onosproject.pi-ecmp',
-    title = 'PI Demo ECMP Fabric',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    description = 'Provides ECMP support for a 2-stage clos fabric topology of PI-enabled devices',
-    included_bundles = BUNDLES,
-    required_apps = [
-        'org.onosproject.pipelines.basic'
-    ]
-)
diff --git a/apps/pim/BUCK b/apps/pim/BUCK
deleted file mode 100644
index 3eab5a8..0000000
--- a/apps/pim/BUCK
+++ /dev/null
@@ -1,29 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//incubator/api:onos-incubator-api',
-    '//apps/routing-api:onos-apps-routing-api',
-    '//apps/route-service/api:onos-apps-route-service-api',
-]
-
-BUNDLES = [
-    '//apps/routing-api:onos-apps-routing-api',
-    ':onos-apps-pim',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    title = 'Protocol Independent Multicast Emulation',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    description = 'Protocol independent multicast emulation.',
-    included_bundles = BUNDLES,
-    required_apps = [ 'org.onosproject.route-service' ],
-)
diff --git a/apps/powermanagement/BUCK b/apps/powermanagement/BUCK
deleted file mode 100644
index 41d7956..0000000
--- a/apps/powermanagement/BUCK
+++ /dev/null
@@ -1,30 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//core/store/serializers:onos-core-serializers',
-    '//utils/rest:onlab-rest',
-    '//lib:javax.ws.rs-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_REST',
-    '//core/api:onos-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    web_context = '/onos/powermanagement',
-    api_title = 'Power Management API',
-    api_version = '1.0',
-    api_description = 'REST API for Power Management',
-    api_package = 'org.onosproject.powermanagement',
-)
-
-onos_app (
-    title = 'Power Management',
-    category = 'Monitoring',
-    url = 'http://onosproject.org',
-    description = 'This application provides northbound interfaces for monitoring and ' +
-        'configuring power.',
-)
diff --git a/apps/proxyarp/BUCK b/apps/proxyarp/BUCK
deleted file mode 100644
index 6923d0d..0000000
--- a/apps/proxyarp/BUCK
+++ /dev/null
@@ -1,15 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//incubator/api:onos-incubator-api',
-]
-
-osgi_jar (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'Proxy ARP/NDP',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    description = 'Proxy ARP/NDP application.',
-)
diff --git a/apps/rabbitmq/BUCK b/apps/rabbitmq/BUCK
deleted file mode 100644
index c283951..0000000
--- a/apps/rabbitmq/BUCK
+++ /dev/null
@@ -1,33 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//incubator/api:onos-incubator-api',
-    '//lib:com_google_guava_guava',
-    '//lib:com_google_code_gson_gson',
-    '//lib:amqp-client',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-BUNDLES = [
-    '//lib:com_google_code_gson_gson',
-    '//lib:amqp-client',
-    '//apps/rabbitmq:onos-apps-rabbitmq',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    title = 'Rabbit MQ Integration',
-    category = 'Integration',
-    url = 'http://onosproject.org',
-    description = 'Rabbit MQ application.',
-    required_apps = [ 'org.onosproject.proxyarp' ],
-    included_bundles = BUNDLES,
-)
diff --git a/apps/reactive-routing/BUCK b/apps/reactive-routing/BUCK
deleted file mode 100644
index 4157a55..0000000
--- a/apps/reactive-routing/BUCK
+++ /dev/null
@@ -1,21 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:concurrent-trees',
-    '//incubator/api:onos-incubator-api',
-    '//apps/routing-api:onos-apps-routing-api',
-    '//apps/intentsync:onos-apps-intentsync',
-    '//apps/route-service/api:onos-apps-route-service-api',
-]
-
-osgi_jar (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'SDN-IP Reactive Routing',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    description = 'SDN-IP reactive routing application.',
-    required_apps = [ 'org.onosproject.intentsynchronizer', 'org.onosproject.sdnip', 'org.onosproject.route-service'],
-)
diff --git a/apps/restconf/BUCK b/apps/restconf/BUCK
deleted file mode 100644
index 2ce6c79..0000000
--- a/apps/restconf/BUCK
+++ /dev/null
@@ -1,19 +0,0 @@
-BUNDLES = [
-    '//apps/restconf/api:onos-apps-restconf-api',
-    '//apps/restconf/utils:onos-apps-restconf-utils',
-    '//apps/restconf/restconfmgr:onos-apps-restconf-restconfmgr',
-]
-
-APPS = [
-    'org.onosproject.yang',
-    'org.onosproject.config',
-]
-
-onos_app (
-    app_name = 'org.onosproject.restconf',
-    title = 'RESTCONF Application Module',
-    category = 'Utility',
-    url = 'http://onosproject.org',
-    included_bundles = BUNDLES,
-    required_apps = APPS,
-)
diff --git a/apps/restconf/api/BUCK b/apps/restconf/api/BUCK
deleted file mode 100644
index 39a3872..0000000
--- a/apps/restconf/api/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:jersey-client',
-    '//lib:javax.ws.rs-api',
-    '//lib:jersey-server',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_REST',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/restconf/restconfmgr/BUCK b/apps/restconf/restconfmgr/BUCK
deleted file mode 100644
index 742d1cc..0000000
--- a/apps/restconf/restconfmgr/BUCK
+++ /dev/null
@@ -1,19 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:ONOS_YANG',
-    '//lib:JACKSON',
-    '//lib:jersey-client',
-    '//lib:jersey-server',
-    '//lib:javax.ws.rs-api',
-    '//incubator/api:onos-incubator-api',
-    '//lib:COMPILE',
-    '//core/store/serializers:onos-core-serializers',
-    '//apps/restconf/api:onos-apps-restconf-api',
-    '//apps/restconf/utils:onos-apps-restconf-utils',
-    '//apps/config:onos-apps-config',
-    '//lib:onos-yang-runtime',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/apps/restconf/utils/BUCK b/apps/restconf/utils/BUCK
deleted file mode 100644
index 8ebc904..0000000
--- a/apps/restconf/utils/BUCK
+++ /dev/null
@@ -1,17 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:jersey-client',
-    '//lib:jersey-server',
-    '//lib:javax.ws.rs-api',
-    '//lib:easymock',
-    '//utils/rest:onlab-rest',
-    '//apps/restconf/api:onos-apps-restconf-api',
-    '//lib:onos-yang-model',
-    '//lib:onos-yang-compiler-api',
-    '//lib:onos-yang-runtime',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/apps/roadm/BUCK b/apps/roadm/BUCK
deleted file mode 100644
index 042bd52..0000000
--- a/apps/roadm/BUCK
+++ /dev/null
@@ -1,25 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//core/store/serializers:onos-core-serializers',
-    '//apps/optical-model:onos-apps-optical-model',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_REST',
-    '//core/api:onos-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-onos_app (
-    title = 'ROADM',
-    category = 'Optical',
-    url = 'http://onosproject.org',
-    description = 'This application provides an interface and web GUI for monitoring and ' +
-        'configuring power on ROADM devices.',
-    required_apps = [ 'org.onosproject.optical-model' ],
-)
diff --git a/apps/route-service/BUCK b/apps/route-service/BUCK
deleted file mode 100644
index d7ebe99..0000000
--- a/apps/route-service/BUCK
+++ /dev/null
@@ -1,11 +0,0 @@
-BUNDLES = [
-    '//apps/route-service/api:onos-apps-route-service-api',
-    '//apps/route-service/app:onos-apps-route-service-app',
-]
-
-onos_app (
-    title = 'Route Service Server',
-    category = 'Utility',
-    url = 'http://onosproject.org',
-    included_bundles = BUNDLES,
-)
diff --git a/apps/route-service/api/BUCK b/apps/route-service/api/BUCK
deleted file mode 100644
index 3b7812b..0000000
--- a/apps/route-service/api/BUCK
+++ /dev/null
@@ -1,14 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-]
-
-TEST_DEPS = [
-    '//lib:TEST',
-    '//core/api:onos-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/route-service/app/BUCK b/apps/route-service/app/BUCK
deleted file mode 100644
index f9233bb..0000000
--- a/apps/route-service/app/BUCK
+++ /dev/null
@@ -1,29 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//lib:concurrent-trees',
-    '//lib:javax.ws.rs-api',
-    '//lib:jersey-server',
-    '//core/store/serializers:onos-core-serializers',
-    '//apps/route-service/api:onos-apps-route-service-api',
-    '//cli:onos-cli',
-    '//lib:org.apache.karaf.shell.console',
-    '//utils/rest:onlab-rest',
-]
-
-TEST_DEPS = [
-    '//lib:TEST',
-    '//apps/route-service/api:onos-apps-route-service-api-tests',
-    '//core/api:onos-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    web_context = '/onos/routeservice',
-    api_title = 'Route Service App',
-    api_version = '1.0',
-    api_description = 'REST API for Route Service App',
-    api_package = 'org.onosproject.routeservice.rest',
-)
diff --git a/apps/routeradvertisement/BUCK b/apps/routeradvertisement/BUCK
deleted file mode 100644
index c414ec3..0000000
--- a/apps/routeradvertisement/BUCK
+++ /dev/null
@@ -1,23 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//incubator/api:onos-incubator-api',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli'
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-onos_app (
-    title = 'IPv6 RA Generator',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    description = 'Application for generating IPv6 RAs',
-)
diff --git a/apps/routing-api/BUCK b/apps/routing-api/BUCK
deleted file mode 100644
index 8db5219..0000000
--- a/apps/routing-api/BUCK
+++ /dev/null
@@ -1,15 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//incubator/api:onos-incubator-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
diff --git a/apps/routing/common/BUCK b/apps/routing/common/BUCK
deleted file mode 100644
index 2bd6aec..0000000
--- a/apps/routing/common/BUCK
+++ /dev/null
@@ -1,24 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:JACKSON',
-    '//lib:org.apache.karaf.shell.console',
-    '//lib:concurrent-trees',
-    '//cli:onos-cli',
-    '//incubator/api:onos-incubator-api',
-    '//apps/routing-api:onos-apps-routing-api',
-    '//apps/route-service/api:onos-apps-route-service-api',
-    '//core/common:onos-core-common',
-    '//lib:io_netty_netty',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//incubator/api:onos-incubator-api-tests',
-    '//apps/routing-api:onos-apps-routing-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/routing/cpr/BUCK b/apps/routing/cpr/BUCK
deleted file mode 100644
index 90d8634..0000000
--- a/apps/routing/cpr/BUCK
+++ /dev/null
@@ -1,32 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//incubator/api:onos-incubator-api',
-    '//apps/routing-api:onos-apps-routing-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//incubator/api:onos-incubator-api-tests',
-    '//apps/routing-api:onos-apps-routing-api-tests',
-    '//utils/osgi:onlab-osgi-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-BUNDLES = [
-    '//apps/routing/common:onos-apps-routing-common',
-    '//apps/routing/cpr:onos-apps-routing-cpr',
-    '//apps/routing-api:onos-apps-routing-api',
-]
-
-onos_app (
-    app_name = 'org.onosproject.cpr',
-    title = 'Control Plane Redirect',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    description = 'Redirects routing control traffic to a control plane',
-    included_bundles = BUNDLES,
-)
diff --git a/apps/routing/fibinstaller/BUCK b/apps/routing/fibinstaller/BUCK
deleted file mode 100644
index 94bcab2..0000000
--- a/apps/routing/fibinstaller/BUCK
+++ /dev/null
@@ -1,33 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//incubator/api:onos-incubator-api',
-    '//apps/routing-api:onos-apps-routing-api',
-    '//apps/route-service/api:onos-apps-route-service-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//incubator/api:onos-incubator-api-tests',
-    '//apps/routing-api:onos-apps-routing-api-tests',
-    '//apps/route-service/api:onos-apps-route-service-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-BUNDLES = [
-    '//apps/routing/fibinstaller:onos-apps-routing-fibinstaller',
-    '//apps/routing-api:onos-apps-routing-api',
-]
-
-onos_app (
-    app_name = 'org.onosproject.fibinstaller',
-    title = 'FIB Installer',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    description = 'Installs routing rules into switches',
-    included_bundles = BUNDLES,
-    required_apps = [ 'org.onosproject.route-service' ],
-)
diff --git a/apps/routing/fpm/BUCK b/apps/routing/fpm/BUCK
deleted file mode 100644
index c11818b..0000000
--- a/apps/routing/fpm/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-BUNDLES = [
-    '//apps/routing/common:onos-apps-routing-common',
-    '//apps/routing-api:onos-apps-routing-api',
-    '//apps/routing/fpm/api:onos-apps-routing-fpm-api',
-    '//apps/routing/fpm/app:onos-apps-routing-fpm-app',
-]
-
-onos_app (
-    app_name = 'org.onosproject.fpm',
-    title = 'FIB Push Manager (FPM) Route Receiver',
-    category = 'Utility',
-    url = 'http://onosproject.org',
-    description = 'Receives/Transmits routes from external routing daemon over FPM protocol',
-    included_bundles = BUNDLES,
-    required_apps = [ 'org.onosproject.route-service' ],
-)
\ No newline at end of file
diff --git a/apps/routing/fpm/api/BUCK b/apps/routing/fpm/api/BUCK
deleted file mode 100644
index f5a98fc..0000000
--- a/apps/routing/fpm/api/BUCK
+++ /dev/null
@@ -1,7 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-]
-
-osgi_jar (
-    deps = COMPILE_DEPS,
-)
diff --git a/apps/routing/fpm/app/BUCK b/apps/routing/fpm/app/BUCK
deleted file mode 100644
index adf50c3..0000000
--- a/apps/routing/fpm/app/BUCK
+++ /dev/null
@@ -1,22 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:KRYO',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//incubator/api:onos-incubator-api',
-    '//apps/routing-api:onos-apps-routing-api',
-    '//apps/route-service/api:onos-apps-route-service-api',
-    '//core/store/serializers:onos-core-serializers',
-    '//apps/routing/fpm/api:onos-apps-routing-fpm-api',
-    '//lib:io_netty_netty',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/scalablegateway/BUCK b/apps/scalablegateway/BUCK
deleted file mode 100644
index a7a6d74..0000000
--- a/apps/scalablegateway/BUCK
+++ /dev/null
@@ -1,19 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//core/store/serializers:onos-core-serializers',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-  title = 'Scalable Gateway',
-  category = 'Traffic Engineering',
-  url = 'http://onosproject.org',
-  description = 'Scalable gateway service',
-)
diff --git a/apps/sdnip/BUCK b/apps/sdnip/BUCK
deleted file mode 100644
index 4a807cf..0000000
--- a/apps/sdnip/BUCK
+++ /dev/null
@@ -1,36 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//incubator/api:onos-incubator-api',
-    '//apps/routing-api:onos-apps-routing-api',
-    '//apps/route-service/api:onos-apps-route-service-api',
-    '//apps/intentsync:onos-apps-intentsync',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli'
-]
-
-BUNDLES = [
-    '//apps/sdnip:onos-apps-sdnip',
-    '//apps/routing-api:onos-apps-routing-api',
-    '//apps/routing/common:onos-apps-routing-common',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//apps/routing-api:onos-apps-routing-api-tests',
-    '//apps/route-service/api:onos-apps-route-service-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-onos_app (
-  title = 'SDN-IP',
-  category = 'Traffic Engineering',
-  url = 'http://onosproject.org',
-  included_bundles = BUNDLES,
-  description = 'SDN-IP peering application',
-  required_apps = [ 'org.onosproject.intentsynchronizer', 'org.onosproject.route-service' ],
-)
diff --git a/apps/segmentrouting/BUCK b/apps/segmentrouting/BUCK
deleted file mode 100644
index 1b3990f..0000000
--- a/apps/segmentrouting/BUCK
+++ /dev/null
@@ -1,13 +0,0 @@
-BUNDLES = [
-    '//apps/segmentrouting/app:onos-apps-segmentrouting-app',
-    '//apps/segmentrouting/web:onos-apps-segmentrouting-web',
-]
-
-onos_app (
-    title = 'Segment Routing',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    included_bundles = BUNDLES,
-    description = 'Segment routing application.',
-    required_apps = [ 'org.onosproject.route-service', 'org.onosproject.mcast' ],
-)
diff --git a/apps/segmentrouting/app/BUCK b/apps/segmentrouting/app/BUCK
deleted file mode 100644
index 7deda13..0000000
--- a/apps/segmentrouting/app/BUCK
+++ /dev/null
@@ -1,25 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//core/common:onos-core-common',
-    '//core/store/serializers:onos-core-serializers',
-    '//incubator/api:onos-incubator-api',
-    '//apps/route-service/api:onos-apps-route-service-api',
-    '//apps/mcast/api:onos-apps-mcast-api',
-    '//apps/mcast/cli:onos-apps-mcast-cli',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/net:onos-core-net',
-    '//incubator/api:onos-incubator-api-tests',
-    '//apps/route-service/api:onos-apps-route-service-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/segmentrouting/web/BUCK b/apps/segmentrouting/web/BUCK
deleted file mode 100644
index 9706438..0000000
--- a/apps/segmentrouting/web/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:javax.ws.rs-api',
-    '//utils/rest:onlab-rest',
-    '//apps/segmentrouting/app:onos-apps-segmentrouting-app',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    web_context = '/onos/segmentrouting',
-    api_title = 'Segment Routing REST API',
-    api_version = '1.0',
-    api_description = 'REST API for Segment Routing Application',
-    api_package = 'org.onosproject.segmentrouting.web',
-)
diff --git a/apps/simplefabric/BUCK b/apps/simplefabric/BUCK
deleted file mode 100644
index e181a98..0000000
--- a/apps/simplefabric/BUCK
+++ /dev/null
@@ -1,13 +0,0 @@
-BUNDLES = [
-    '//apps/simplefabric/api:onos-apps-simplefabric-api',
-    '//apps/simplefabric/app:onos-apps-simplefabric-app',
-]
-
-onos_app (
-    title = 'SONA SimpleFabric',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    included_bundles = BUNDLES,
-    description = 'SONA Simple Fabric Application',
-    required_apps = [ 'org.onosproject.openflow-base', 'org.onosproject.lldpprovider', 'org.onosproject.hostprovider' ],
-)
\ No newline at end of file
diff --git a/apps/simplefabric/api/BUCK b/apps/simplefabric/api/BUCK
deleted file mode 100644
index 520bddf..0000000
--- a/apps/simplefabric/api/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-    '//core/common:onos-core-common-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/simplefabric/app/BUCK b/apps/simplefabric/app/BUCK
deleted file mode 100644
index 6aefd2c..0000000
--- a/apps/simplefabric/app/BUCK
+++ /dev/null
@@ -1,24 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:concurrent-trees',
-    '//lib:javax.ws.rs-api',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//utils/rest:onlab-rest',
-    '//apps/simplefabric/api:onos-apps-simplefabric-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    api_description = 'REST API for Simple Fabric',
-    api_package = 'org.onosproject.simplefabric.web',
-    api_title = 'Simple Fabric API',
-    api_version = '1.0',
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    web_context = '/onos/v1/simplefabric',
-)
\ No newline at end of file
diff --git a/apps/t3/BUCK b/apps/t3/BUCK
deleted file mode 100644
index c06bf7c..0000000
--- a/apps/t3/BUCK
+++ /dev/null
@@ -1,19 +0,0 @@
-BUNDLES = [
-    '//apps/t3/web:onos-apps-t3-web',
-    '//apps/t3/app:onos-apps-t3-app',
-]
-
-onos_app (
-   title = 'Trellis Troubleshooting Toolkit',
-   category = 'Utilities',
-   url = 'https://wiki.opencord.org/pages/viewpage.action?pageId=4456974',
-   description = 'Provides static analysis of flows and groups ' +
-   'to determine the possible paths a packet may take.',
-   required_apps = [
-           'org.onosproject.segmentrouting',
-           'org.onosproject.route-service',
-           'org.onosproject.mcast',
-   ],
-   included_bundles = BUNDLES,
-   app_name = 'org.onosproject.t3'
-)
diff --git a/apps/t3/app/BUCK b/apps/t3/app/BUCK
deleted file mode 100644
index 55092ea..0000000
--- a/apps/t3/app/BUCK
+++ /dev/null
@@ -1,26 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//core/store/serializers:onos-core-serializers',
-    '//core/store/primitives:onos-core-primitives',
-    '//lib:JACKSON',
-    '//lib:jackson-databind',
-    '//core/api:onos-api',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//drivers/default:onos-drivers-default',
-    '//apps/segmentrouting/app:onos-apps-segmentrouting-app',
-    '//apps/route-service/api:onos-apps-route-service-api',
-    '//apps/mcast/api:onos-apps-mcast-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//utils/misc:onlab-misc',
-    '//apps/route-service/api:onos-apps-route-service-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/t3/web/BUCK b/apps/t3/web/BUCK
deleted file mode 100644
index fb837c4..0000000
--- a/apps/t3/web/BUCK
+++ /dev/null
@@ -1,19 +0,0 @@
-COMPILE_DEPS = [
-   '//lib:CORE_DEPS',
-   '//lib:KRYO',
-   '//core/api:onos-api',
-   '//lib:org.apache.karaf.shell.console',
-   '//utils/rest:onlab-rest',
-   '//lib:JACKSON',
-   '//lib:javax.ws.rs-api',
-   '//lib:jersey-server',
-   '//apps/t3/app:onos-apps-t3-app',
-]
-osgi_jar (
-   deps = COMPILE_DEPS,
-   web_context = '/onos/v1/t3',
-   api_title = 'T3 REST API',
-   api_version = '1.0',
-   api_description = 'REST API for T3',
-   api_package = 'org.onosproject.t3.rest',
-)
diff --git a/apps/test/cluster-ha/BUCK b/apps/test/cluster-ha/BUCK
deleted file mode 100644
index d1ebbc9..0000000
--- a/apps/test/cluster-ha/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//core/store/serializers:onos-core-serializers',
-    '//lib:KRYO',
-]
-osgi_jar (
-    deps = COMPILE_DEPS,
-)
-onos_app (
-    title = 'Cluster HA Test',
-    category = 'Test Utility',
-    url = 'http://onosproject.org',
-    description = 'Test for ONOS Cluster HA',
-)
diff --git a/apps/test/demo/BUCK b/apps/test/demo/BUCK
deleted file mode 100644
index 5623e04..0000000
--- a/apps/test/demo/BUCK
+++ /dev/null
@@ -1,25 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//utils/rest:onlab-rest',
-    '//lib:javax.ws.rs-api',
-    '//core/store/serializers:onos-core-serializers',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    web_context = '/onos/demo',
-    api_title = 'Flow Throughput Demo',
-    api_version = '1.0',
-    api_description = 'REST API for Demo',
-    api_package = 'org.onosproject.demo',
-)
-
-onos_app (
-    title = 'Flow Throughput Demo',
-    category = 'Test Utility',
-    url = 'http://onosproject.org',
-    description = 'APIs for interacting with the flow throughput test application.',
-)
diff --git a/apps/test/distributed-primitives/BUCK b/apps/test/distributed-primitives/BUCK
deleted file mode 100644
index eed561a..0000000
--- a/apps/test/distributed-primitives/BUCK
+++ /dev/null
@@ -1,21 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//utils/rest:onlab-rest',
-    '//lib:javax.ws.rs-api',
-    '//core/store/serializers:onos-core-serializers',
-]
-
-osgi_jar (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    app_name = 'org.onosproject.distributedprimitives',
-    title = 'Distributed Primitives Test',
-    category = 'Test Utility',
-    url = 'http://onosproject.org',
-    description = 'ONOS app to test distributed primitives.',
-)
diff --git a/apps/test/election/BUCK b/apps/test/election/BUCK
deleted file mode 100644
index 67077c9..0000000
--- a/apps/test/election/BUCK
+++ /dev/null
@@ -1,19 +0,0 @@
-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',
-]
-
-osgi_jar (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'Master Election Test',
-    category = 'Test Utility',
-    url = 'http://onosproject.org',
-    description = 'Master election test application.',
-)
diff --git a/apps/test/flow-perf/BUCK b/apps/test/flow-perf/BUCK
deleted file mode 100644
index 522647b..0000000
--- a/apps/test/flow-perf/BUCK
+++ /dev/null
@@ -1,19 +0,0 @@
-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',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'Flow Performance Test',
-    category = 'Test Utility',
-    url = 'http://onosproject.org',
-    description = 'Messaging performance test application.',
-)
diff --git a/apps/test/intent-perf/BUCK b/apps/test/intent-perf/BUCK
deleted file mode 100644
index 6187b8c..0000000
--- a/apps/test/intent-perf/BUCK
+++ /dev/null
@@ -1,21 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//utils/rest:onlab-rest',
-    '//lib:javax.ws.rs-api',
-    '//core/store/serializers:onos-core-serializers',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    app_name = 'org.onosproject.intentperf',
-    title = 'Intent Performance Test',
-    category = 'Test Utility',
-    url = 'http://onosproject.org',
-    description = 'Intent performance test application.',
-)
diff --git a/apps/test/loadtest/BUCK b/apps/test/loadtest/BUCK
deleted file mode 100644
index 93f15ff..0000000
--- a/apps/test/loadtest/BUCK
+++ /dev/null
@@ -1,19 +0,0 @@
-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',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'Distributed Load Test',
-    category = 'Test Utility',
-    url = 'http://onosproject.org',
-    description = 'Distributed consensus load test application.',
-)
diff --git a/apps/test/messaging-perf/BUCK b/apps/test/messaging-perf/BUCK
deleted file mode 100644
index 9b12fd2..0000000
--- a/apps/test/messaging-perf/BUCK
+++ /dev/null
@@ -1,20 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//utils/rest:onlab-rest',
-    '//lib:javax.ws.rs-api',
-    '//core/store/serializers:onos-core-serializers',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'Messaging Performance Test',
-    category = 'Test Utility',
-    url = 'http://onosproject.org',
-    description = 'Messaging performance test application.',
-)
diff --git a/apps/test/netcfg-monitor/BUCK b/apps/test/netcfg-monitor/BUCK
deleted file mode 100644
index f6051d9..0000000
--- a/apps/test/netcfg-monitor/BUCK
+++ /dev/null
@@ -1,14 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'Network Configuration Monitor Test',
-    category = 'Test Utility',
-    url = 'http://onosproject.org',
-    description = 'Network configuration monitor test application.',
-)
diff --git a/apps/test/primitive-perf/BUCK b/apps/test/primitive-perf/BUCK
deleted file mode 100644
index be70e00..0000000
--- a/apps/test/primitive-perf/BUCK
+++ /dev/null
@@ -1,20 +0,0 @@
-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',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    app_name = 'org.onosproject.primitiveperf',
-    title = 'Primitive Performance Test',
-    category = 'Test Utility',
-    url = 'http://onosproject.org',
-    description = 'Primitive performance test application.',
-)
diff --git a/apps/test/proxy/BUCK b/apps/test/proxy/BUCK
deleted file mode 100644
index 4b443d3..0000000
--- a/apps/test/proxy/BUCK
+++ /dev/null
@@ -1,20 +0,0 @@
-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',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    app_name = 'org.onosproject.proxytest',
-    title = 'Proxy Test',
-    category = 'Test Utility',
-    url = 'http://onosproject.org',
-    description = 'Proxy test application.',
-)
diff --git a/apps/test/route-scale/BUCK b/apps/test/route-scale/BUCK
deleted file mode 100644
index d0853d4..0000000
--- a/apps/test/route-scale/BUCK
+++ /dev/null
@@ -1,20 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//utils/rest:onlab-rest',
-    '//apps/route-service/api:onos-apps-route-service-api',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    app_name = 'org.onosproject.routescale',
-    title = 'Route and Flow Scalability Test',
-    category = 'Test Utility',
-    url = 'http://onosproject.org',
-    description = 'Route and flow scalability test facility.',
-    required_apps = [ 'org.onosproject.route-service' ],
-)
diff --git a/apps/test/transaction-perf/BUCK b/apps/test/transaction-perf/BUCK
deleted file mode 100644
index 0caa955..0000000
--- a/apps/test/transaction-perf/BUCK
+++ /dev/null
@@ -1,19 +0,0 @@
-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',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'Transaction Performance Test',
-    category = 'Test Utility',
-    url = 'http://onosproject.org',
-    description = 'Transaction performance test application.',
-)
diff --git a/apps/tetopology/BUCK b/apps/tetopology/BUCK
deleted file mode 100644
index 0d91b2d..0000000
--- a/apps/tetopology/BUCK
+++ /dev/null
@@ -1,13 +0,0 @@
-BUNDLES = [
-  '//apps/tetopology/api:onos-apps-tetopology-api',
-  '//apps/tetopology/app:onos-apps-tetopology-app',
-]
-
-onos_app (
-    app_name = 'org.onosproject.tetopology',
-    title = 'TE Topology Core',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    description = 'Application to create and manage hierarchical TE topologies.',
-    included_bundles = BUNDLES,
-)
diff --git a/apps/tetopology/api/BUCK b/apps/tetopology/api/BUCK
deleted file mode 100644
index 2b27800..0000000
--- a/apps/tetopology/api/BUCK
+++ /dev/null
@@ -1,7 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/apps/tetopology/app/BUCK b/apps/tetopology/app/BUCK
deleted file mode 100644
index eb92dc7..0000000
--- a/apps/tetopology/app/BUCK
+++ /dev/null
@@ -1,19 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//apps/tetopology/api:onos-apps-tetopology-api',
-    '//incubator/api:onos-incubator-api',
-    '//core/store/serializers:onos-core-serializers',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//utils/osgi:onlab-osgi-tests',
-    '//incubator/api:onos-incubator-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/tetunnel/BUCK b/apps/tetunnel/BUCK
deleted file mode 100644
index 73065c2..0000000
--- a/apps/tetunnel/BUCK
+++ /dev/null
@@ -1,14 +0,0 @@
-BUNDLES = [
-  '//apps/tetunnel/api:onos-apps-tetunnel-api',
-  '//apps/tetunnel/app:onos-apps-tetunnel-app',
-]
-
-onos_app (
-    app_name = 'org.onosproject.tetunnel',
-    title = 'TE Tunnel Core',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    description = 'Application to create and manage TE tunnels.',
-    included_bundles = BUNDLES,
-    required_apps = [ 'org.onosproject.tetopology' ],
-)
diff --git a/apps/tetunnel/api/BUCK b/apps/tetunnel/api/BUCK
deleted file mode 100644
index eea4ec2..0000000
--- a/apps/tetunnel/api/BUCK
+++ /dev/null
@@ -1,9 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//apps/tetopology/api:onos-apps-tetopology-api',
-    '//incubator/api:onos-incubator-api',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/apps/tetunnel/app/BUCK b/apps/tetunnel/app/BUCK
deleted file mode 100644
index aef55f0..0000000
--- a/apps/tetunnel/app/BUCK
+++ /dev/null
@@ -1,19 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//apps/tetopology/api:onos-apps-tetopology-api',
-    '//apps/tetunnel/api:onos-apps-tetunnel-api',
-    '//incubator/api:onos-incubator-api',
-    '//core/store/serializers:onos-core-serializers',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//utils/osgi:onlab-osgi-tests',
-    '//incubator/api:onos-incubator-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/virtualbng/BUCK b/apps/virtualbng/BUCK
deleted file mode 100644
index 036ce08..0000000
--- a/apps/virtualbng/BUCK
+++ /dev/null
@@ -1,22 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:jersey-client',
-    '//lib:javax.ws.rs-api',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//utils/rest:onlab-rest',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    title = 'Virtual Broadband Gateway',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    description = 'A virtual Broadband Network Gateway(BNG) application.',
-)
diff --git a/apps/vpls/BUCK b/apps/vpls/BUCK
deleted file mode 100644
index d07376f..0000000
--- a/apps/vpls/BUCK
+++ /dev/null
@@ -1,29 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//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',
-    '//core/store/serializers:onos-core-serializers'
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-onos_app (
-    title = 'VLAN L2 Broadcast Network',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    description = 'Application to create L2 broadcast network using VLAN.',
-    required_apps = [ 'org.onosproject.intentsynchronizer' ],
-)
diff --git a/apps/vrouter/BUCK b/apps/vrouter/BUCK
deleted file mode 100644
index bc51d54..0000000
--- a/apps/vrouter/BUCK
+++ /dev/null
@@ -1,23 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//incubator/api:onos-incubator-api',
-]
-
-BUNDLES = [
-    '//apps/routing-api:onos-apps-routing-api',
-    '//apps/routing/common:onos-apps-routing-common',
-    '//apps/vrouter:onos-apps-vrouter',
-]
-
-osgi_jar (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'Virtual Router',
-    category = 'Traffic Engineering',
-    url = 'http://onosproject.org',
-    included_bundles = BUNDLES,
-    description = 'Virtual router (vRouter) application.',
-    required_apps = [ 'org.onosproject.fibinstaller', 'org.onosproject.cpr', 'org.onosproject.fpm' ],
-)
diff --git a/apps/vtn/BUCK b/apps/vtn/BUCK
deleted file mode 100644
index 3afd56d..0000000
--- a/apps/vtn/BUCK
+++ /dev/null
@@ -1,14 +0,0 @@
-BUNDLES = [
-    '//apps/vtn/vtnrsc:onos-apps-vtn-vtnrsc',
-    '//apps/vtn/sfcmgr:onos-apps-vtn-sfcmgr',
-    '//apps/vtn/vtnmgr:onos-apps-vtn-vtnmgr',
-    '//apps/vtn/vtnweb:onos-apps-vtn-vtnweb',
-]
-
-onos_app (
-  title = 'OPNFV',
-  url = 'http://onosproject.org',
-  category = 'Integration',
-  included_bundles = BUNDLES,
-  description = 'ONOS framework applications',
-)
diff --git a/apps/vtn/sfcmgr/BUCK b/apps/vtn/sfcmgr/BUCK
deleted file mode 100644
index 9941797..0000000
--- a/apps/vtn/sfcmgr/BUCK
+++ /dev/null
@@ -1,15 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//core/store/serializers:onos-core-serializers',
-    '//apps/vtn/vtnrsc:onos-apps-vtn-vtnrsc',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/vtn/vtnmgr/BUCK b/apps/vtn/vtnmgr/BUCK
deleted file mode 100644
index fdaf355..0000000
--- a/apps/vtn/vtnmgr/BUCK
+++ /dev/null
@@ -1,15 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//lib:org.apache.karaf.shell.console',
-    '//core/store/serializers:onos-core-serializers',
-    '//cli:onos-cli',
-    '//apps/vtn/vtnrsc:onos-apps-vtn-vtnrsc',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
diff --git a/apps/vtn/vtnrsc/BUCK b/apps/vtn/vtnrsc/BUCK
deleted file mode 100644
index c4d5920..0000000
--- a/apps/vtn/vtnrsc/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//core/store/serializers:onos-core-serializers',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_REST',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/vtn/vtnweb/BUCK b/apps/vtn/vtnweb/BUCK
deleted file mode 100644
index 53a640e..0000000
--- a/apps/vtn/vtnweb/BUCK
+++ /dev/null
@@ -1,20 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:javax.ws.rs-api',
-    '//utils/rest:onlab-rest',
-    '//apps/vtn/vtnrsc:onos-apps-vtn-vtnrsc',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_REST',
-    '//utils/osgi:onlab-osgi-tests',
-    '//web/api:onos-rest-tests',
-    '//lib:minimal-json',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    web_context = '/onos/vtn',
-)
diff --git a/apps/workflow/BUCK b/apps/workflow/BUCK
deleted file mode 100644
index d7e5d1b..0000000
--- a/apps/workflow/BUCK
+++ /dev/null
@@ -1,12 +0,0 @@
-BUNDLES = [
-    '//apps/workflow/api:onos-apps-workflow-api',
-    '//apps/workflow/app:onos-apps-workflow-app',
-]
-
-onos_app (
-    category = 'Utility',
-    description = "Workflow application",
-    included_bundles = BUNDLES,
-    title = 'Workflow',
-    url = 'http://onosproject.org',
-)
diff --git a/apps/workflow/api/BUCK b/apps/workflow/api/BUCK
deleted file mode 100644
index f9461af..0000000
--- a/apps/workflow/api/BUCK
+++ /dev/null
@@ -1,11 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:jackson-core',
-    '//lib:jackson-annotations',
-    '//lib:jackson-databind',
-    '//core/store/serializers:onos-core-serializers',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/apps/workflow/app/BUCK b/apps/workflow/app/BUCK
deleted file mode 100644
index aa0e62a..0000000
--- a/apps/workflow/app/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//lib:jsch',
-    '//lib:org.apache.karaf.shell.console',
-    '//lib:jackson-core',
-    '//lib:jackson-annotations',
-    '//lib:jackson-databind',
-    '//cli:onos-cli',
-    '//core/store/serializers:onos-core-serializers',
-    '//apps/workflow/api:onos-apps-workflow-api',
-]
-
-osgi_jar_with_tests(
-    deps = COMPILE_DEPS,
-)
diff --git a/apps/yang-gui/BUCK b/apps/yang-gui/BUCK
deleted file mode 100644
index 7e971f4..0000000
--- a/apps/yang-gui/BUCK
+++ /dev/null
@@ -1,25 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:ONOS_YANG',
-    '//lib:onos-yang-runtime',
-    '//apps/yang:onos-apps-yang',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    title = 'YANG Runtime GUI',
-    category = 'GUI',
-    url = 'http://onosproject.org',
-    description = 'Adds GUI extension that allows the operator to view the list of currently ' +
-        'registered YANG models, and their YANG sources. It also provides means for compiling ' +
-        'source YANG files (*.yang, *.zip, *.jar) on the fly and directly from the GUI using ' +
-        'drag-n-drop.<p/>User can simply compress a set of YANG source files and drop it on the ' +
-        'YANG Models GUI view to automatically compile and then register the compiled YANG models.',
-    required_apps = [ 'org.onosproject.yang' ],
-)
diff --git a/apps/yang/BUCK b/apps/yang/BUCK
deleted file mode 100644
index a7319ea..0000000
--- a/apps/yang/BUCK
+++ /dev/null
@@ -1,53 +0,0 @@
-COMPILE_DEPS = [
-  '//lib:CORE_DEPS',
-  '//lib:JACKSON',
-  '//core/api:onos-api',
-  '//core/common:onos-core-common',
-  '//cli:onos-cli',
-  '//lib:org.apache.karaf.shell.console',
-  '//lib:jackson-core',
-  '//lib:onos-yang-model',
-  '//lib:onos-yang-compiler-api',
-  '//lib:onos-yang-runtime',
-  '//lib:onos-yang-serializers-json',
-  '//lib:onos-yang-serializers-xml',
-  '//lib:onos-yang-serializers-utils',
-  '//lib:org.apache.servicemix.bundles.dom4j',
-]
-
-BUNDLES = [
-  '//lib:onos-yang-model',
-  '//lib:onos-yang-compiler-api',
-  '//lib:onos-yang-runtime',
-  '//lib:onos-yang-serializers-json',
-  '//lib:onos-yang-serializers-xml',
-  '//lib:onos-yang-serializers-utils',
-  '//apps/yang:onos-apps-yang',
-  '//apps/yang/web:onos-apps-yang-web',
-]
-
-EXCLUDED_BUNDLES = [
-  '//lib:org.apache.servicemix.bundles.dom4j',
-]
-
-TEST_DEPS = [
-  '//lib:TEST_ADAPTERS',
-  '//utils/osgi:onlab-osgi-tests',
-]
-
-osgi_jar_with_tests(
-  deps = COMPILE_DEPS,
-  test_deps = TEST_DEPS,
-)
-
-onos_app(
-  title = 'YANG Compiler and Runtime',
-  category = 'Utility',
-  url = 'http://onosproject.org',
-  description = 'Provides ability to register compiled YANG models or even to compile YANG source ' +
-    'files on the fly. Registering YANG models allows other ONOS subsystems to interact with ' +
-    'orchestrators or individual network devices using XML or JSON data structured in accordance ' +
-    'with those models.',
-  included_bundles = BUNDLES,
-  excluded_bundles = EXCLUDED_BUNDLES,
-)
diff --git a/apps/yang/web/BUCK b/apps/yang/web/BUCK
deleted file mode 100644
index b988cc6..0000000
--- a/apps/yang/web/BUCK
+++ /dev/null
@@ -1,23 +0,0 @@
-COMPILE_DEPS = [
-  '//lib:CORE_DEPS',
-  '//lib:JACKSON',
-  '//lib:javax.ws.rs-api',
-  '//utils/rest:onlab-rest',
-  '//lib:jersey-media-multipart',
-  '//lib:onos-yang-model',
-  '//lib:onos-yang-compiler-api',
-  '//lib:onos-yang-runtime',
-  '//apps/yang:onos-apps-yang'
-]
-
-TEST_DEPS = [
-  '//lib:TEST_REST',
-  '//utils/osgi:onlab-osgi-tests',
-  '//web/api:onos-rest-tests',
-]
-
-osgi_jar_with_tests(
-  deps = COMPILE_DEPS,
-  test_deps = TEST_DEPS,
-  web_context = '/onos/yang',
-)
diff --git a/buck-tools/BUCK b/buck-tools/BUCK
deleted file mode 100644
index 9548e41..0000000
--- a/buck-tools/BUCK
+++ /dev/null
@@ -1,60 +0,0 @@
-python_binary(
-  name = 'onos-app-writer',
-  main = 'onos_app.py',
-  deps = [],
-  visibility = ['PUBLIC'],
-)
-
-python_binary(
-  name = 'onos-app-oar',
-  main = 'onos_oar.py',
-  deps = [],
-  visibility = ['PUBLIC'],
-)
-
-python_binary(
-  name = 'onos-stage',
-  main = 'onos_stage.py',
-  deps = [],
-  visibility = ['PUBLIC'],
-)
-
-python_binary(
-  name = 'onos-feature',
-  main = 'onos_feature.py',
-  deps = [],
-  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'],
-)
-
-export_file(
-  name = 'yang-registrator',
-  src = 'yang-registrator',
-  visibility = [ 'PUBLIC' ],
-)
-
-export_file(
-  name = 'yang-schema',
-  src = 'yang-schema',
-  visibility = [ 'PUBLIC' ],
-)
-
-export_file(
-  name = 'grpc',
-  src = 'grpc',
-  visibility = [ 'PUBLIC' ],
-)
diff --git a/buck-tools/default.defs b/buck-tools/default.defs
deleted file mode 100644
index 0e3ff13..0000000
--- a/buck-tools/default.defs
+++ /dev/null
@@ -1,15 +0,0 @@
-include_defs('//onos.defs')
-include_defs('//bucklets/maven_jar.bucklet')
-include_defs('//bucklets/onos.bucklet')
-include_defs('//bucklets/onos_app.bucklet')
-include_defs('//bucklets/yang.bucklet')
-include_defs('//bucklets/remote_jar.bucklet')
-include_defs('//bucklets/grpc.bucklet')
-include_defs('//bucklets/jaxb2.bucklet')
-
-BASE_DEPS = [
-    '//lib:junit',
-    '//lib:hamcrest-all',
-    '//lib:slf4j-api',
-    '//lib:guava-testlib',
-]
diff --git a/buck-tools/grpc b/buck-tools/grpc
deleted file mode 100755
index 9a8fa27..0000000
--- a/buck-tools/grpc
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash -e
-# -----------------------------------------------------------------------------
-# Generates the gRPC java artifacts from protobuf models.
-# -----------------------------------------------------------------------------
-out=$1
-shift
-proto_paths=$1
-shift
-protoc=$1
-shift
-plugin=$1
-shift
-
-#set -x
-
-dir=$(dirname $out)
-mkdir -p $dir
-
-$protoc \
-    --plugin=protoc-gen-grpc-java=$plugin \
-    --grpc-java_out=$dir \
-    --java_out=$dir \
-    $proto_paths \
-    $*
-
-cd $dir
-jar -cf $out *
diff --git a/buck-tools/java_sources.defs b/buck-tools/java_sources.defs
deleted file mode 100644
index 0b3974e..0000000
--- a/buck-tools/java_sources.defs
+++ /dev/null
@@ -1,10 +0,0 @@
-def java_sources(
-    name,
-    srcs,
-    visibility = []
-  ):
-  java_library(
-    name = name,
-    resources = srcs,
-    visibility = visibility,
-  )
diff --git a/buck-tools/onos_app.py b/buck-tools/onos_app.py
deleted file mode 100755
index bbb053c..0000000
--- a/buck-tools/onos_app.py
+++ /dev/null
@@ -1,219 +0,0 @@
-#!/usr/bin/env python
-#FIXME Add license
-
-##### Templates for features.xml
-FEATURES_HEADER = '''\
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
-          name="%(feature_repo_name)s">
-'''
-FEATURE_HEADER= '''\
-    <feature name="%(feature_name)s" version="%(version)s"
-             description="%(title)s">
-'''
-EXISTING_FEATURE = '        <feature>%s</feature>\n'
-BUNDLE = '        <bundle>%s</bundle>\n'
-FEATURE_FOOTER = '    </feature>\n'
-FEATURES_FOOTER = '</features>'
-
-##### Templates for app.xml
-APP_HEADER = '''\
-<?xml version="1.0" encoding="UTF-8"?>
-<app name="%(app_name)s" origin="%(origin)s" version="%(version)s"
-        title="%(title)s" category="%(category)s" url="%(url)s"
-        featuresRepo="%(feature_repo_name)s"
-        features="%(feature_name)s" apps="%(apps)s">
-    <description>%(description)s</description>
-'''
-ARTIFACT = '    <artifact>%s</artifact>\n'
-SECURITY = '''\
-    <security>
-%s
-    </security>\n'''
-APP_FOOTER = '</app>'
-
-NON_OSGI_TAG = 'NON-OSGI'
-
-def mvnUrl(bundle):
-    #mvn-uri := 'mvn:' [ repository-url '!' ] group-id '/' artifact-id [ '/' [version] [ '/' [type] [ '/' classifier ] ] ] ]
-    parts = bundle.split(':')
-    prefix = 'mvn:'
-    suffix = ''
-    if len(parts) > 3:
-        parts.insert(2, parts.pop()) # move version to the 3rd position
-    if len(parts) >= 5:
-        # check classifier for special non-OSGi tag
-        i = parts[4].find(NON_OSGI_TAG)
-        if i == 0:
-            prefix = 'wrap:' + prefix
-            suffix = '$Bundle-SymbolicName=%s.%s&amp;Bundle-Version=%s' % tuple(parts[0:3])
-            if len(parts[4]) == len(NON_OSGI_TAG):
-                parts.pop() # pop off empty classifier
-                if parts[3].lower() == 'jar':
-                    parts.pop() # pop off default extension: jar
-            else:
-                parts[4] = parts[4][len(NON_OSGI_TAG):]
-    return prefix + '/'.join(parts) + suffix
-
-def generateFeatureFile(feature_repo_name,
-                        features = [],
-                        **kwargs):
-    values = {
-        'feature_repo_name' : '-'.join(feature_repo_name.split(':')[1:3]),
-    }
-
-    output = FEATURES_HEADER % values
-
-    for feature in features:
-        output += feature
-
-    output += FEATURES_FOOTER
-    return output
-
-def generateFeature(feature_name,
-                    version,
-                    title,
-                    features = [],
-                    bundles = [],
-                    **kwargs):
-    values = {
-        'feature_name' : feature_name,
-        'version' : version,
-        'title' : title,
-    }
-
-    output = FEATURE_HEADER % values
-
-    if features:
-        for feature in features:
-            output += EXISTING_FEATURE % feature
-
-    if bundles:
-        for bundle in bundles:
-            output += BUNDLE % mvnUrl(bundle)
-
-    output += FEATURE_FOOTER
-    return output
-
-
-def generateAppFile(app_name,
-                    origin,
-                    version,
-                    title,
-                    category,
-                    url,
-                    feature_repo_name,
-                    feature_name,
-                    description = None,
-                    apps = [],
-                    artifacts = [],
-                    security= None,
-                    **kwargs):
-    values = {
-        'app_name' : app_name,
-        'origin' : origin,
-        'version' : version,
-        'title' : title,
-        'category' : category,
-        'url' : url,
-        'feature_repo_name' : mvnUrl(feature_repo_name) + '/xml/features',
-        'feature_name' : feature_name,
-    }
-
-    values['description'] = description if description else title
-    values['apps'] = ','.join(apps) if apps else ''
-
-    output = APP_HEADER % values
-
-    for artifact in artifacts:
-        output += ARTIFACT % mvnUrl(artifact)
-
-    if security is not None:
-        output += SECURITY % security
-
-    output += APP_FOOTER
-    return output
-
-
-if __name__ == '__main__':
-    import sys, optparse
-
-    parser = optparse.OptionParser()
-    parser.add_option("-n", "--name",     dest="feature_coords", help="Feature MVN Coords")
-    parser.add_option("-a", "--app",      dest="app_name",     help="App Name")
-    parser.add_option("-o", "--origin",   dest="origin",       help="Origin")
-    parser.add_option("-c", "--category", dest="category",     help="Category")
-    parser.add_option("-u", "--url",      dest="url",          help="URL")
-    parser.add_option("-v", "--version",  dest="version",      help="Version")
-    parser.add_option("-t", "--title",    dest="title",        help="Title")
-    parser.add_option("-r", "--repo",     dest="repo_name",    help="Repo Name")
-    parser.add_option('-D', '--desc',     dest='desc',         help='Application description')
-    parser.add_option('-s', '--security', dest='security',     help='Application security')
-
-    parser.add_option('-b', '--bundle',
-                      action="append", dest='included_bundles',
-                      metavar="BUNDLE", help='Included Bundle (multiple allowed)')
-    parser.add_option('-e', '--excluded-bundle',
-                      action="append", dest='excluded_bundles',
-                      metavar="BUNDLE", help='Excluded Bundle (multiple allowed)')
-    parser.add_option('-f', '--feature',
-                      action="append", dest='features',
-                      metavar="FEATURE", help='Existing Feature (multiple allowed)')
-    parser.add_option('-d', '--apps',
-                      action="append", dest='apps',
-                      metavar="FEATURE", help='Required App (multiple allowed)')
-
-    parser.add_option("-A", "--write-app", dest="write_app", action="store_true")
-    parser.add_option("-F", "--write-features", dest="write_features", action="store_true")
-    parser.add_option("-E", "--write-feature", dest="write_feature", action="store_true")
-
-    (options, args) = parser.parse_args()
-
-    values = {}
-    if options.feature_coords and options.version and options.title:
-        parts = options.feature_coords.split(':')
-        values['feature_name'] = parts[1] if len(parts) > 1 else parts[0]
-        values['version'] = options.version
-        values['title'] = options.title
-    else:
-        sys.stderr.write('ERROR: Feature Name, Version, and Title are required\n')
-        sys.stderr.flush()
-        sys.exit(1)
-
-    if options.app_name and options.origin and options.category and options.url:
-        values['app_name'] = options.app_name
-        values['origin'] = options.origin
-        values['category'] = options.category
-        values['url'] = options.url
-    elif options.write_app:
-        sys.stderr.write('ERROR: Feature Name, Version, and Title are required\n')
-        sys.stderr.flush()
-        sys.exit(1)
-
-    values['feature_repo_name'] = options.repo_name if options.repo_name \
-                                    else options.feature_coords
-
-    bundles = []
-    if options.included_bundles:
-        bundles += options.included_bundles
-    if options.excluded_bundles:
-        bundles += options.excluded_bundles
-    if options.desc:
-        values['description'] = options.desc
-
-    feature = generateFeature(bundles=bundles,
-                              features=options.features,
-                              **values)
-
-    if options.write_feature:
-        print feature
-
-    if options.write_features:
-        print generateFeatureFile(features=[ feature ],
-                                  **values)
-
-    if options.write_app:
-        print generateAppFile(artifacts=options.included_bundles,
-                              apps=options.apps,
-                              security=options.security,
-                              **values)
\ No newline at end of file
diff --git a/buck-tools/onos_feature.py b/buck-tools/onos_feature.py
deleted file mode 100755
index 731ce71..0000000
--- a/buck-tools/onos_feature.py
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/env python
-#FIXME Add license
-
-from zipfile import ZipFile
-
-def generateOar(output, files=[]):
-    # Note this is not a compressed zip
-    with ZipFile(output, 'w') as zip:
-        for file, mvnCoords in files:
-            filename = file.split('/')[-1]
-            if mvnCoords == 'NONE':
-                dest = filename
-            else:
-                parts = mvnCoords.split(':')
-                if len(parts) > 3:
-                    parts.insert(2, parts.pop()) # move version to the 3rd position
-                groupId, artifactId, version = parts[0:3]
-                groupId = groupId.replace('.', '/')
-                extension = filename.split('.')[-1]
-                if extension == 'jar':
-                    filename = '%s-%s.jar' % ( artifactId, version )
-                elif 'features.xml' in filename:
-                    filename = '%s-%s-features.xml' % ( artifactId, version )
-                dest = '%s/%s/%s/%s' % ( groupId, artifactId, version, filename )
-            zip.write(file, dest)
-
-if __name__ == '__main__':
-    import sys
-
-    if len(sys.argv) < 2:
-        print 'USAGE'
-        sys.exit(1)
-
-    output = sys.argv[1]
-    args = sys.argv[2:]
-
-    if len(args) % 2 != 0:
-        print 'There must be an even number of args: file mvn_coords'
-        sys.exit(2)
-
-    files = zip(*[iter(args)]*2)
-    generateOar(output, files)
diff --git a/buck-tools/onos_oar.py b/buck-tools/onos_oar.py
deleted file mode 100755
index 30f70f5..0000000
--- a/buck-tools/onos_oar.py
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/env python
-#FIXME Add license
-
-from zipfile import ZipFile
-
-def generateOar(output, files=[]):
-    # Note this is not a compressed zip
-    with ZipFile(output, 'w') as zip:
-        for file, mvnCoords in files:
-            filename = file.split('/')[-1]
-            if mvnCoords == 'NONE':
-                dest = filename
-            else:
-                parts = mvnCoords.split(':')
-                if len(parts) > 3:
-                    parts.insert(2, parts.pop()) # move version to the 3rd position
-                groupId, artifactId, version = parts[0:3]
-                groupId = groupId.replace('.', '/')
-                extension = filename.split('.')[-1]
-                if extension == 'jar':
-                    filename = '%s-%s.jar' % ( artifactId, version )
-                elif 'features.xml' in filename:
-                    filename = '%s-%s-features.xml' % ( artifactId, version )
-                dest = 'm2/%s/%s/%s/%s' % ( groupId, artifactId, version, filename )
-            zip.write(file, dest)
-
-if __name__ == '__main__':
-    import sys
-
-    if len(sys.argv) < 2:
-        print 'USAGE'
-        sys.exit(1)
-
-    output = sys.argv[1]
-    args = sys.argv[2:]
-
-    if len(args) % 2 != 0:
-        print 'There must be an even number of args: file mvn_coords'
-        sys.exit(2)
-
-    files = zip(*[iter(args)]*2)
-    generateOar(output, files)
diff --git a/buck-tools/onos_stage.py b/buck-tools/onos_stage.py
deleted file mode 100755
index 8991dfa..0000000
--- a/buck-tools/onos_stage.py
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/usr/bin/env python
-#FIXME Add license
-
-import re
-import os
-from zipfile import ZipFile
-from tarfile import TarFile, TarInfo
-import tarfile
-import time
-from cStringIO import StringIO
-import subprocess
-
-
-written_files = set()
-now = time.time()
-
-def addFile(tar, dest, file, file_size):
-    if dest not in written_files:
-        info = TarInfo(dest)
-        info.size = file_size
-        info.mtime = now
-        info.mode = 0777
-        tar.addfile(info, fileobj=file)
-        written_files.add(dest)
-
-def addString(tar, dest, string):
-    if dest not in written_files:
-        print dest, string
-        info = TarInfo(dest)
-        info.size = len(string)
-        info.mtime = now
-        info.mode = 0777
-        file = StringIO(string)
-        tar.addfile(info, fileobj=file)
-        file.close()
-        written_files.add(dest)
-
-def getHash():
-    p = subprocess.Popen('git rev-parse --verify HEAD --short', stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
-    (output, err) = p.communicate()
-    return output if p.wait() == 0 else '0000000000'
-
-def stageOnos(output, version, files=[]):
-    base = 'onos-%s/' % version
-
-    runtimeVersion = version
-    if version.endswith('-SNAPSHOT'):
-        runtimeVersion = version.replace('-SNAPSHOT', '.%s' % getHash())
-
-    # Note this is not a compressed zip
-    with tarfile.open(output, 'w:gz') as output:
-        for file in files:
-            if '.zip' in file:
-                with ZipFile(file, 'r') as zip_part:
-                    for f in zip_part.infolist():
-                        dest = f.filename
-                        if base not in dest:
-                            dest = base + 'apache-karaf-3.0.8/system/' + f.filename
-                        addFile(output, dest, zip_part.open(f), f.file_size)
-            elif '.oar' in file:
-                with ZipFile(file, 'r') as oar:
-                    app_xml = oar.open('app.xml').read()
-                    app_name = re.search('name="([^"]+)"', app_xml).group(1)
-                    dest = base + 'apps/%(name)s/%(name)s.oar' % { 'name': app_name}
-                    addFile(output, dest, open(file), os.stat(file).st_size)
-                    dest = base + 'apps/%s/app.xml' % app_name
-                    addString(output, dest, app_xml)
-                    for f in oar.infolist():
-                        filename = f.filename
-                        if 'm2' in filename:
-                            dest = base + 'apache-karaf-3.0.8/system/' + filename[3:]
-                            if dest not in written_files:
-                                addFile(output, dest, oar.open(f), f.file_size)
-                                written_files.add(dest)
-            elif 'features.xml' in file:
-                dest = base + 'apache-karaf-3.0.8/system/org/onosproject/onos-features/%s/' % version
-                dest += 'onos-features-%s-features.xml' % version
-                with open(file) as f:
-                    addFile(output, dest, f, os.stat(file).st_size)
-        addString(output, base + 'apps/org.onosproject.drivers/active', '')
-        addString(output, base + 'VERSION', runtimeVersion)
-
-if __name__ == '__main__':
-    import sys
-
-    if len(sys.argv) < 3:
-        print 'USAGE' #FIXME
-        sys.exit(1)
-
-    output = sys.argv[1]
-    version = sys.argv[2]
-    args = sys.argv[3:]
-
-    stageOnos(output, version, args)
diff --git a/buck-tools/yang-registrator b/buck-tools/yang-registrator
deleted file mode 100755
index 56dc54a..0000000
--- a/buck-tools/yang-registrator
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash
-# -----------------------------------------------------------------------------
-# Generates YANG Model registrator component.
-# -----------------------------------------------------------------------------
-
-output=$1
-package=$2
-shift 2
-
-aux=/tmp/yr-$$
-
-trap "rm -fr $aux" EXIT
-
-pkgDir=$aux/${package//./\/}
-rm -fr $aux $output
-mkdir -p $pkgDir
-cd $aux
-
-cat <<EOF >$output
-// Auto-generated code
-package $package;
-
-import org.onosproject.yang.AbstractYangModelRegistrator;
-import org.apache.felix.scr.annotations.Component;
-
-@Component(immediate = true)
-public class YangModelRegistrator extends AbstractYangModelRegistrator {
-    public YangModelRegistrator() {
-        super(YangModelRegistrator.class);
-    }
-}
-EOF
diff --git a/buck-tools/yang-schema b/buck-tools/yang-schema
deleted file mode 100755
index bcb6e1b..0000000
--- a/buck-tools/yang-schema
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-# -----------------------------------------------------------------------------
-# Extracts YANG model schema and YANG sources from a YANG model jar.
-# -----------------------------------------------------------------------------
-
-output=$1
-jar=$2
-
-aux=/tmp/ys-$$
-trap "rm -fr $aux" EXIT
-
-rm -fr $aux
-mkdir -p $aux $output
-
-cd $aux
-jar xf $jar
-mv yang/* $output
\ No newline at end of file
diff --git a/bucklets/grpc.bucklet b/bucklets/grpc.bucklet
deleted file mode 100644
index 53ab5ef..0000000
--- a/bucklets/grpc.bucklet
+++ /dev/null
@@ -1,134 +0,0 @@
-include_defs('//onos.defs')
-include_defs('//bucklets/onos.bucklet')
-
-
-DEFAULT_PROTOC_VERSION = '3.2.0'
-DEFAULT_GRPC_PLUGIN_VERSION = '1.3.1'
-
-PROTOC_RELEASE_BASE_URL = "https://github.com/google/protobuf/releases/download"
-GRPC_PLUGIN_BASE_URL = "https://repo1.maven.org/maven2/io/grpc/protoc-gen-grpc-java"
-
-PROTOC_SHA1S = {
-    "protoc-3.0.2-linux-x86_64.zip":"779ed606f524eb2c8c116b0fce7a3bc6507769e7",
-    "protoc-3.0.2-osx-x86_64.zip":"f71d97affca4ffe32747772539c0bcbf76c9dc9b",
-    "protoc-3.2.0-linux-x86_64.zip":"f418d246d183a534d9bd749e614f639a55f6829b",
-    "protoc-3.2.0-osx-x86_64.zip":"81f4fac3200ba2cb12a98df0a9ee4d1c584e9210",
-}
-
-GRPC_JAVA_SHA1S = {
-    "protoc-gen-grpc-java-1.3.1-linux-x86_64.exe":"9598b00ad0f41a6bd6aeb01f647903dbc62792cc",
-    "protoc-gen-grpc-java-1.3.1-osx-x86_64.exe":"f4eccb96524b8b9f152024890550d9b88398b8cd"
-}
-
-#Returns the string for the OS and architecture of the system of the form 'OS-ARCH'
-def get_system_arch():
-    import platform
-    os = platform.system().lower()
-    arch = platform.machine()
-    if os == "darwin":
-        os = "osx"
-    return "%s-%s" % ( os, arch)
-
-def fetch_protoc(
-        version
-    ):
-    file_name = "protoc-%s-%s.zip" % (version, get_system_arch())
-    if file_name not in PROTOC_SHA1S:
-        raise Exception('Cannot download %s, architecture or version not supported' % file_name)
-    remote_file(
-        name = 'protoc-release-' + version,
-        url = PROTOC_RELEASE_BASE_URL + '/v' + version + '/' + file_name,
-        sha1 = PROTOC_SHA1S[file_name],
-    )
-    genrule(
-        name = 'protoc-exe-' + version,
-        bash = 'jar xf $(location :protoc-release-' + version + ') bin/protoc && ' +
-                'mv bin/protoc $OUT && ' +
-                'chmod +x $OUT',
-        out = 'protoc.exe',
-        executable = True,
-        visibility = [ "PUBLIC" ],
-    )
-    genrule(
-        name = 'protoc-lib-' + version,
-        bash = 'jar xf $(location :protoc-release-' + version + ') include && mv include $OUT',
-        out = 'include',
-        visibility = [ "PUBLIC" ],
-    )
-
-def fetch_grpc_plugin(
-        version
-):
-    file_name = "protoc-gen-grpc-java-%s-%s.exe" % (version, get_system_arch())
-    if file_name not in GRPC_JAVA_SHA1S:
-        raise Exception('Cannot download %s, architecture or version not supported' % file_name)
-    remote_file(
-        name = 'grpc-plugin-binary-' + version,
-        url = GRPC_PLUGIN_BASE_URL + '/' + version + '/' + file_name,
-        sha1 = GRPC_JAVA_SHA1S[file_name],
-    )
-    genrule(
-        name = 'grpc-plugin-exe-' + version,
-        bash = 'cp $(location :grpc-plugin-binary-' + version + ') $OUT && chmod +x $OUT',
-        executable = True,
-        visibility = [ "PUBLIC" ],
-        out = 'grpc-plugin.exe',
-    )
-
-def _get_name():
-    base_path = get_base_path()
-    return ONOS_ARTIFACT_BASE + base_path.replace('/', '-') #TODO Unix-separator
-
-def grpc_jar(
-    name = None,
-    deps = [],
-    #NOTE: if targeting a directory also built with maven this path MUST end in
-    # /proto because maven plugin interprets imports relative to the proto
-    # directory and BUCK interprets imports relative to the last directory
-    # listed in the first listed proto_path which contains the specified
-    # file
-    proto_paths = [],
-    srcs = [],
-    src_string = '', # Useful to build proto files external to the ONOS sources, using BUCK's environment variables.
-    proto_match_patterns = [ "src/main/proto/**/*.proto" ],
-    protoc_version = DEFAULT_PROTOC_VERSION,
-    plugin_version = DEFAULT_GRPC_PLUGIN_VERSION,
-    include_std_lib = False,
-    **kwargs
-    ):
-
-    #Get the correct name for the protoc compilation call
-    if name is None:
-        name = _get_name()
-
-    # Create the string for the proto_path arguments (order matters, similar to classpath)
-
-    if include_std_lib:
-        # Add protoc standard lib to the includes
-        proto_paths = ['$(location //incubator/protobuf-dependencies:protoc-lib-' + protoc_version + ')'] + proto_paths
-
-    if len(proto_paths) != 0:
-        proto_paths_string = "-I=" + reduce(lambda a,b:  a +" -I=" + b, proto_paths)
-    else:
-        proto_paths_string = ""
-    protoc = name + '-protoc'
-
-    genrule(
-        name = protoc,
-        srcs = glob(proto_match_patterns),
-        out = 'grpc.src.zip',
-        cmd = '$(location //buck-tools:grpc) $OUT '
-              + '\"' + proto_paths_string + '\" '
-              + '$(location //incubator/protobuf-dependencies:protoc-exe-'+ protoc_version + ') '
-              + '$(location //incubator/grpc-dependencies:grpc-plugin-exe-' + plugin_version + ') '
-              + '$SRCS' + src_string,
-    )
-
-    osgi_jar(
-        name = name,
-        srcs = [ ':' + protoc ],
-        deps = deps + [ ':' + protoc ],
-        do_javadocs = False,
-        do_checkstyle = False,
-        **kwargs
-    )
diff --git a/bucklets/jaxb2.bucklet b/bucklets/jaxb2.bucklet
deleted file mode 100644
index f3bb9fb..0000000
--- a/bucklets/jaxb2.bucklet
+++ /dev/null
@@ -1,64 +0,0 @@
-#
-# Copyright 2017-present Open Networking Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Bucklet to create Java Code from XSD using the 'xjc' tool from the JAXB API v2.
-# The genrule() creates the Java code, zips it and puts it in the output of jaxb2-xjc
-# The osgi_jar_with_tests() takes the sources in this ZIP and adds them to what ever
-# sources were used in the call to this method, and compiles all of them and adds
-# them to a JAR file in the output folder
-
-include_defs('//onos.defs')
-include_defs('//bucklets/onos.bucklet')
-
-def _get_name():
-    base_path = get_base_path()
-    return ONOS_ARTIFACT_BASE + base_path.replace('/', '-') #TODO Unix-separator
-
-def jaxb2_xjc_osgi_jar(
-    name,
-    srcs,
-    xsd,
-    bindinfo=None,
-    destdir='.',
-    deps=[],
-    test_deps=[],
-    visibility = [],
-    **kwargs
-    ):
-    if name is None:
-          name = _get_name()
-
-    cmd = 'xjc '+xsd
-    if bindinfo is not None:
-        cmd=cmd+' -b '+bindinfo
-        cmd=cmd+' -d '+destdir
-
-    genrule(
-        name = 'jaxb2-xjc',
-        srcs = glob(['src/main/resources/*.xsd','src/main/resources/*.xjb']),
-        bash = cmd + ' && zip $OUT -r *',
-        out = name+'.src.zip',
-        visibility = [ ],
-    )
-
-    osgi_jar_with_tests (
-        deps = [":jaxb2-xjc"] + deps,
-        srcs = [':jaxb2-xjc'] + srcs,
-        test_deps = test_deps,
-        do_javadocs = False,
-        do_checkstyle = False,
-        **kwargs
-    )
-
diff --git a/bucklets/maven_jar.bucklet b/bucklets/maven_jar.bucklet
deleted file mode 100644
index 35af13d..0000000
--- a/bucklets/maven_jar.bucklet
+++ /dev/null
@@ -1,202 +0,0 @@
-# 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 = ''):
-
-  if not full_url:
-    groupId, artifactId, version = id.split(':')
-
-    prebuilt_jar(
-            name = name,
-            binary_jar = ':%s-jar' % name,
-            maven_coords = id,
-            visibility = [ 'PUBLIC' ]
-    )
-
-    remote_file(
-            name = name + '-jar',
-            out = '%s-%s.jar' % (artifactId, version),
-            url = 'mvn:%s:%s:%s:%s' % (groupId, artifactId, 'jar', version),
-            sha1 = sha1
-    )
-    return
-
-  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,
-      maven_coords = id,
-      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,
-      maven_coords = id,
-    )
-    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,
-      maven_coords = id,
-    )
-
-
-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/bucklets/node.bucklet b/bucklets/node.bucklet
deleted file mode 100644
index 15dfeb2..0000000
--- a/bucklets/node.bucklet
+++ /dev/null
@@ -1,35 +0,0 @@
-NODE_RELEASE_BASE_URL = "https://nodejs.org/dist/"
-
-NODE_SHA1S = {
-    "node-v8.1.2-linux-x64.tar.gz":"61a609c83e2d3458cc2301a63b212a97e6b9f809",
-    "node-v8.1.2-darwin-x64.tar.gz":"a8b31fd645480661a8a777d9b4466dca0e6deb33",
-    "node-v8.11.1-linux-x64.tar.gz":"ee0213f62185c36121c2daf8dcacd34ade90b10c",
-    "node-v8.11.1-darwin-x64.tar.gz":"01effb57fa711aa258d7aab26c6615e1f8a64b1a"
-}
-
-def get_system_arch():
-    import platform
-    os = platform.system().lower()
-    return os
-
-def fetch_node(version):
-    file_name = "node-%s-%s-x64" % (version, get_system_arch())
-    file_fullname = "node-%s-%s-x64.tar.gz" % (version, get_system_arch())
-    if file_fullname not in NODE_SHA1S:
-        raise Exception("Cannot download %s, architecture or version not supported" % file_name)
-
-    remote_file(
-        name = 'node-release-' + version,
-        url = NODE_RELEASE_BASE_URL + version + '/' + file_fullname,
-        sha1 = NODE_SHA1S[file_fullname],
-    )
-
-    genrule(
-        name = 'node-bin-' + version,
-        bash = 'tar --no-same-owner -xf $(location :node-release-' + version + ') && ' +
-               'mv ' + file_name + ' $OUT && ' +
-               'chmod +x $OUT',
-        out = 'node-binaries',
-        executable = False,
-        visibility = [ "PUBLIC" ],
-    )
diff --git a/bucklets/onos.bucklet b/bucklets/onos.bucklet
deleted file mode 100644
index f711d6f..0000000
--- a/bucklets/onos.bucklet
+++ /dev/null
@@ -1,390 +0,0 @@
-import random
-
-DEBUG_ARG='JAVA_TOOL_OPTIONS="-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=5005,suspend=y"'
-FORCE_INSTALL=True
-NONE='NONE'
-
-SRC = 'src/main/java/**/'
-TEST = 'src/test/java/**/'
-RESOURCES_ROOT = 'src/main/resources/'
-TEST_RESOURCES_ROOT = 'src/test/resources/'
-
-include_defs('//onos.defs')
-
-def _get_name():
-    base_path = get_base_path()
-    return ONOS_ARTIFACT_BASE + base_path.replace('/', '-') #TODO Unix-separator
-
-def checkstyle(
-    name,
-    srcs = None,
-    jar_target = None,
-    ):
-
-    if srcs:
-        base = get_base_path()
-        # module name; base filepath; files (line-separated); empty line (to signify end of stream)
-        files = '%s\n%s\n' % (name, base) + '\n'.join(['%s/%s' % (base, s) for s in srcs]) + '\n\n'
-
-        genrule(
-                name = name + '-checkstyle-files',
-                bash = "echo '%s' > $OUT" % files,
-                srcs = srcs,
-                out = 'checkstyle-files.txt',
-        )
-
-        sh_test(
-                name = name + '-checkstyle',
-                test = '//tools/build/conf:start-buck-daemon',
-                deps = [ ':' + name + '-checkstyle-files',
-                         '//tools/build/conf:onos-java-header',
-                         '//tools/build/conf:onos-build-conf', ],
-                args = [
-                    '$(location //tools/build/conf:buck-daemon-jar)',
-                    'checkstyle',
-                    '$(location :' + name + '-checkstyle-files)',
-                    '$(location //tools/build/conf:checkstyle-xml)',
-                    '$(location //tools/build/conf:suppressions-xml)',
-                    ],
-                #TODO test_rule_timeout_ms seems to be ignored on Linux
-                test_rule_timeout_ms = 45000,
-                labels = [ 'checkstyle' ],
-        )
-
-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]
-
-  if len(srcs) != 0:
-    cmd = ' '.join([
-        'while ! test -f .buckconfig; do cd ..; done;',
-        'javadoc',
-        '-tag onos.rsModel:a:"onos model"',
-        '-quiet',
-        '-protected',
-        '-encoding UTF-8',
-        '-charset UTF-8',
-        '-notimestamp',
-        '-windowtitle "' + title + '"',
-        '-link http://docs.oracle.com/javase/8/docs/api',
-        '-subpackages ',
-        ':'.join(pkgs),
-        '-sourcepath ',
-        ':'.join(sourcepath),
-        ' -classpath ',
-        ':'.join(['$(classpath %s)' % n for n in deps]),
-        '-d $TMP',
-      ]) + ';jar cf $OUT -C $TMP .'
-
-    genrule(
-      name = name,
-      cmd = cmd,
-      srcs = srcs,
-      out = name + '.jar',
-      visibility = visibility,
-    )
-
-def sonar(
-    name,
-    test = False
-    ):
-
-  cmd = '; '.join([ 'rm -f $OUT',
-          'printf "%(src_base)s = " >> $OUT',
-          '%(srcs)s >> $OUT',
-          'echo "%(binary_base)s = %(classes)s" >> $OUT',
-          'printf "%(lib_base)s = " >> $OUT',
-          '%(libraries)s >> $OUT'
-        ]) % {
-          'srcs' : "echo $(srcs :%s) | sed 's/ /,/g'" % name,
-          'classes' : ("$(bin_dir :%s#non-osgi)" if not test else "$(bin_dir :%s)") % name,
-          'libraries' : "echo $(classpath :%s) | sed 's/:/,/g'" % name,
-          'src_base' : 'sonar.sources' if not test else 'sonar.tests',
-          'binary_base' : 'sonar.java.binaries' if not test else 'sonar.java.test.binaries',
-          'lib_base' : 'sonar.java.libraries' if not test else 'sonar.java.test.libraries'
-        }
-  # FIXME do we need to specify dep here or with the expander cover it?
-  genrule(
-      name = name + "-sonar",
-      cmd = cmd,
-      out = 'sonar-project.properties'
-  )
-
-def osgi_jar(
-    name = None,
-    srcs = None,
-    group_id = ONOS_GROUP_ID,
-    version = ONOS_VERSION,
-    deps = [],
-    visibility = ['PUBLIC'],
-    license = 'NONE',
-    description = '',
-    debug = False,
-    import_packages = '*',
-    dynamicimport_packages = '',
-    embedded_dependencies = '',
-    bundle_classpath = '',
-    export_packages = '!.,!*.impl.*,!*.internal.*,*',
-    package_name_root = 'org.onosproject',
-    include_resources = {},
-    web_context = NONE,
-    api_title = None,
-    api_version = NONE,
-    api_package = NONE,
-    api_description = NONE,
-    resources = NONE,
-    resources_root = None,
-    tests = None,
-    do_javadocs = True,
-    do_checkstyle = True,
-    **kwargs
-    ):
-
-  # if name and _get_name() != name:
-  #     print _get_name(), '!=', name
-  if name is None:
-      name = _get_name()
-
-  if srcs is None:
-      srcs = glob([SRC + '/*.java'])
-
-  if resources == NONE and resources_root is not None:
-      resources = glob([resources_root + '**'])
-  elif resources == NONE:
-      resources = glob([RESOURCES_ROOT + '**'])
-
-  if resources and not resources_root:
-      resources_root = RESOURCES_ROOT
-
-  mvn_coords = group_id + ':' + name + ':' + version
-
-  onos_jar(
-      name = name,
-      # FIXME webapp path hard coded here probably is not right
-      srcs = srcs + glob(['src/main/webapp/**'], excludes = ['src/main/webapp/tests/**']),
-      deps = deps,
-      visibility = visibility,
-      resources = resources,
-      resources_root = resources_root,
-      bundle_name = name,
-      group_id = group_id,
-      bundle_version = version,
-      bundle_license = license,
-      bundle_description = description,
-      import_packages = import_packages,
-      export_packages = export_packages,
-      include_resources = include_resources,
-      dynamicimport_packages = dynamicimport_packages,
-      embedded_dependencies = embedded_dependencies,
-      bundle_classpath = bundle_classpath,
-      web_context = web_context,
-      api_title = api_title,
-      api_version = api_version,
-      api_package = api_package,
-      api_description = api_description,
-      tests = tests,
-      maven_coords = mvn_coords,
-      **kwargs
-  )
-
-  ### Checkstyle
-  if do_checkstyle:
-      checkstyle(
-          name = name,
-          srcs = srcs,
-      )
-
-  if do_javadocs:
-      java_doc(
-           name = name + '-javadoc',
-           title = 'Java Docs',
-           pkgs = [ package_name_root ],
-           paths = [ 'src/main/java' ],
-           srcs = srcs,
-           deps = deps,
-           visibility = visibility,
-           do_it_wrong = False,
-      )
-
-  # TODO add project config for intellij
-  # project_config(
-  #   src_target = ':' + name,
-  #   src_roots = [ 'src/main/java' ],
-  #   test_target = ':' + name + '-tests',
-  #   test_roots = [ 'src/test/java' ],
-  # )
-
-  ### .m2 Install
-  mvn_cmd = ' '.join(( 'mvn install:install-file',
-                       '-Dfile=$(location :%s)' % name,
-                       '-DgroupId=%s' % group_id,
-                       '-DartifactId=%s' % name,
-                       '-Dversion=%s' % version,
-                       '-Dpackaging=jar' ))
-  cmd = mvn_cmd + ' > $OUT'
-  if FORCE_INSTALL:
-    # Add a random number to the command to force this rule to run.
-    # TODO We should make this configurable from CLI, perhaps with a flag.
-    cmd = 'FOO=%s ' % random.random() + cmd
-  genrule(
-    name = name + '-install',
-    bash = cmd,
-    out = 'install.log',
-    visibility = visibility,
-  )
-  sonar(
-    name = name,
-  )
-
-def osgi_jar_with_tests(
-        name = None,
-        deps = [],
-        group_id = ONOS_GROUP_ID,
-        version = ONOS_VERSION,
-        test_srcs = None,
-        test_deps = [ '//lib:TEST' ],
-        test_resources = None,
-        test_resources_root = None,
-        visibility = [ 'PUBLIC' ],
-        **kwargs
-    ):
-
-  if name is None:
-      name = _get_name()
-
-  if test_resources and not test_resources_root:
-      test_resources_root = TEST_RESOURCES_ROOT
-  if test_resources_root and not test_resources:
-      test_resources = glob([test_resources_root + '**'])
-  if not test_resources and not test_resources_root:
-      test_resources = glob([TEST_RESOURCES_ROOT + '**'])
-      if test_resources:
-        test_resources_root = TEST_RESOURCES_ROOT
-
-  if test_srcs is None:
-      test_srcs = glob([TEST + '/*.java'])
-
-  mvn_coords = group_id + ':' + name + ':jar:tests:' + version
-
-  if test_srcs:
-      java_test(
-        name = name + '-tests',
-        srcs = test_srcs,
-        deps = deps +
-               test_deps +
-               [':' + name + '#non-osgi'],
-        resources = test_resources,
-        resources_root = test_resources_root,
-        maven_coords = mvn_coords,
-        visibility = visibility,
-      )
-
-      checkstyle(
-          name = name + '-tests',
-          srcs = test_srcs,
-      )
-
-      sonar(
-          name = name + '-tests',
-          test = True
-      )
-
-      osgi_jar(name = name,
-               deps = deps,
-               group_id = group_id,
-               version = version,
-               visibility = visibility,
-               tests = [':' + name + '-tests'],
-               **kwargs)
-  else:
-      osgi_jar(name = name,
-               deps = deps,
-               group_id = group_id,
-               version = version,
-               visibility = visibility,
-               **kwargs)
-
-def tar_file(
-   name,
-   srcs,
-   other_tars = [],
-   flat = False,
-   root = None,
-   out = None,
-   visibility = [ 'PUBLIC' ],
-   ):
-
-   cmds = [ 'mkdir -p $TMP/%(root_dir)s',
-            'cp -R -L $SRCDIR/* $TMP/%(root_dir)s' ]
-   for t in other_tars:
-       cmds += [ 'tar -zxf $(location %s)' % t + ' -C $TMP/%(root_dir)s' ]
-
-   if flat:
-       cmds += [ 'find $TMP/%(root_dir)s -type f -exec mv {} $TMP/%(root_dir)s \;',
-                 'find $TMP/%(root_dir)s/* -type d -d -exec rmdir {} \;' ]
-
-   cmds += [ 'tar -C $TMP -zcf $OUT %(root_dir)s' ]
-
-   cmd = ' && '.join(cmds) % {
-           'root_dir': root if root is not None else name
-         }
-
-   genrule(
-       name = name,
-       srcs = srcs,
-       bash = cmd,
-       out = out if out is not None else ( root if root is not None else name ) + '.tar.gz',
-       visibility = visibility,
-   )
-
-def only_lib_dep_pom(
-    name,
-    src,
-    out,
-    version = ONOS_VERSION,
-    onosGroupId = ONOS_GROUP_ID,
-    visibility = [ 'PUBLIC' ],
-    ):
-
-    cmd = 'grep -v \<module\> ' + src + ' | sed "s#<modules>#<modules><module>lib</module>#" >$OUT'
-
-    genrule(
-        name = name,
-        srcs = [ src ],
-        bash = cmd,
-        out = out,
-        visibility = visibility,
-        maven_coords = onosGroupId + ':onos:pom:' + version,
-    )
-
-def pass_thru_pom(
-    name,
-    src,
-    out,
-    artifactId,
-    version = ONOS_VERSION,
-    onosGroupId = ONOS_GROUP_ID,
-    visibility = [ 'PUBLIC' ],
-    ):
-
-    cmd = 'cp ' + src + ' $OUT'
-
-    genrule(
-        name = name,
-        srcs = [ src ],
-        bash = cmd,
-        out = out,
-        visibility = visibility,
-        maven_coords = onosGroupId + ':' + artifactId + ':pom:' + version,
-    )
diff --git a/bucklets/onos_app.bucklet b/bucklets/onos_app.bucklet
deleted file mode 100644
index d0a0028..0000000
--- a/bucklets/onos_app.bucklet
+++ /dev/null
@@ -1,221 +0,0 @@
-include_defs('//onos.defs')
-
-DEFAULT_APP_CATEGORY = 'Utility'
-
-import os.path
-
-# FIXME Factor this into common place
-def _get_name():
-    base_path = get_base_path()
-    return ONOS_ARTIFACT_BASE + base_path.replace('/', '-') #TODO Unix-separator
-
-def _get_app_name():
-    base_path = get_base_path()
-    return APP_PREFIX + os.path.basename(base_path)
-
-def osgi_feature(
-        name,
-        title,
-        feature_coords = None,
-        version = ONOS_VERSION,
-        required_features = [ 'onos-api' ],
-        required_apps = [],
-        included_bundles = None,
-        excluded_bundles = [],
-        generate_file = False,
-        visibility = [ 'PUBLIC' ],
-        stage_repo = True,
-        maven_coords = None,
-    ):
-
-    if not feature_coords:
-        feature_coords = name
-    args = [ '-n %s' % feature_coords,
-             '-v %s' % version,
-             '-t "%s"' % title,
-             ]
-    args += [ '-f %s' % f for f in required_features ]
-    args += [ '-b $(maven_coords %s)' % b for b in included_bundles ]
-    args += [ '-e $(maven_coords %s)' % b for b in excluded_bundles ]
-    args += [ '-d %s' % a for a in required_apps ]
-
-    feature_cmd = '-F' if generate_file else '-E'
-
-    cmd = '$(exe //buck-tools:onos-app-writer) %s ' % feature_cmd
-    cmd += ' '.join(args) + ' > $OUT'
-    genrule(
-            name = name + '-feature',
-            bash = cmd,
-            out = 'features.xml',
-            visibility = visibility,
-            maven_coords = maven_coords,
-    )
-
-    if stage_repo:
-        sources = ['$(location %s) $(maven_coords %s)' % (i, i) for i in included_bundles]
-        genrule(
-                name = name + '-repo',
-                out = name + '-repo.zip.part',
-                bash = '$(exe //buck-tools:onos-feature) $OUT ' + ' '.join(sources),
-                visibility = visibility,
-        )
-
-FEATURES_HEADER = '''\
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
-          name="onos-%s">
-    <repository>mvn:org.apache.karaf.features/standard/3.0.8/xml/features</repository>
-
-''' % ONOS_VERSION
-
-FEATURES_FOOTER = '</features>'
-
-def compile_features(
-        name,
-        features = [],
-        maven_coords = None,
-        visibility = [ 'PUBLIC' ],
-    ):
-
-    cmd = "(echo '%s'; " % FEATURES_HEADER
-    cmd += ''.join(['cat $(location %s-feature); ' % s for s in features])
-    cmd += "echo '%s') > $OUT" % FEATURES_FOOTER
-
-    genrule(
-            name = name,
-            bash = cmd,
-            visibility = visibility,
-            out = 'features.xml',
-            maven_coords = maven_coords,
-    )
-
-
-#TODO rename this
-def osgi_feature_group(
-        name,
-        description = 'TEST',
-        version = ONOS_VERSION,
-        exported_deps = [],
-        visibility = ['PUBLIC'],
-        maven_coords = None,
-        **kwargs
-    ):
-    java_library(
-            name = name,
-            exported_deps = exported_deps, #compile only
-            visibility = visibility,
-    )
-
-    osgi_feature(
-            name = name,
-            feature_coords = name,
-            version = version,
-            title = description,
-            required_features = [],
-            included_bundles = exported_deps,
-            generate_file = False,
-            visibility = visibility,
-            maven_coords = maven_coords,
-    )
-
-
-
-def onos_app(
-        app_name = None,
-        name = None,
-        title = None,
-        version = ONOS_VERSION,
-        origin = ONOS_ORIGIN,
-        category = DEFAULT_APP_CATEGORY,
-        url = None,
-        description = None, #TODO make this a file
-        #TODO icon,
-        feature_coords = None,
-        required_features = [ 'onos-api' ],
-        required_apps = [],
-        included_bundles = None,
-        excluded_bundles = [],
-        visibility = [ 'PUBLIC' ],
-        security = None,
-        **kwargs):
-    if name is None:
-        name = _get_name()
-
-    if app_name is None:
-        app_name = _get_app_name()
-
-    maven_coords = '%s:%s:oar:%s' % ( ONOS_GROUP_ID, name, ONOS_VERSION )
-    feature_xml_coords = '%s:%s:xml:features:%s' % ( ONOS_GROUP_ID, name, ONOS_VERSION )
-
-    if title is None:
-        print "Missing title for %s" % _get_name()
-        title = _get_app_name()
-
-    if included_bundles is None:
-        target = ':' + name
-        included_bundles = [ target ]
-
-    if not feature_coords and len(included_bundles) == 1:
-        feature_coords = '$(maven_coords %s)' % included_bundles[0]
-
-    if not feature_coords:
-        feature_coords = '%s:%s:%s' % ( ONOS_GROUP_ID, name, ONOS_VERSION )
-
-    args = [ '-n %s' % feature_coords,
-             '-v %s' % version,
-             '-t "%s"' % title,
-             '-o "%s"' % origin,
-             '-c "%s"' % category,
-             '-a "%s"' % app_name,
-             '-u %s' % url,
-             ]
-    args += [ '-f %s' % f for f in required_features ]
-    args += [ '-b $(maven_coords %s)' % b for b in included_bundles ]
-    args += [ '-e $(maven_coords %s)' % b for b in excluded_bundles ]
-    args += [ '-d %s' % a for a in required_apps ]
-    if description is not None:
-        args += [ '-D "%s"' % description ]
-    if security is not None:
-        args += [ '-s "%s"' % security ]
-
-    # cmd = '$(exe //buck-tools:onos-app-writer) -F ' + ' '.join(args) + ' > $OUT'
-    # genrule(
-    #     name = name + '-feature',
-    #     bash = cmd,
-    #     out = 'features.xml',
-    #     visibility = [],
-    # )
-    osgi_feature(
-        name = name,
-        feature_coords = feature_coords,
-        version = version,
-        title = title,
-        required_features = required_features,
-        included_bundles = included_bundles,
-        excluded_bundles = excluded_bundles,
-        generate_file = True,
-        visibility = [],
-        stage_repo = False,
-        maven_coords = feature_xml_coords,
-    )
-
-    cmd = '$(exe //buck-tools:onos-app-writer) -A ' + ' '.join(args) + ' > $OUT'
-    genrule(
-        name = name + '-app-xml',
-        bash = cmd,
-        out = 'app.xml',
-        visibility = [],
-    )
-
-    sources = [
-        '$(location :%s-feature) %s' % (name, feature_coords),
-        '$(location :%s-app-xml) NONE' % name,
-    ]
-    sources += ['$(location %s) $(maven_coords %s)' % (i, i) for i in included_bundles]
-    genrule(
-        name = name + '-oar',
-        out = 'app.oar',
-        bash = '$(exe //buck-tools:onos-app-oar) $OUT ' + ' '.join(sources),
-        maven_coords = maven_coords,
-        visibility = visibility,
-    )
diff --git a/bucklets/remote_jar.bucklet b/bucklets/remote_jar.bucklet
deleted file mode 100644
index e45045a..0000000
--- a/bucklets/remote_jar.bucklet
+++ /dev/null
@@ -1,23 +0,0 @@
-def remote_jar (
-        name,
-        out,
-        url,
-        sha1,
-        maven_coords = None,
-        visibility = [ 'PUBLIC' ],
-    ):
-
-    prebuilt_jar(
-        name = name,
-        binary_jar = ':' + out,
-        maven_coords = maven_coords,
-        visibility = visibility,
-    )
-
-    remote_file(
-        name = out,
-        out = out,
-        url = url,
-        sha1 = sha1,
-        visibility = []
-    )
diff --git a/bucklets/yang.bucklet b/bucklets/yang.bucklet
deleted file mode 100644
index 8d5d83f..0000000
--- a/bucklets/yang.bucklet
+++ /dev/null
@@ -1,148 +0,0 @@
-include_defs('//onos.defs')
-include_defs('//bucklets/onos.bucklet')
-include_defs('//bucklets/onos_app.bucklet')
-
-def _get_name():
-    base_path = get_base_path()
-    return ONOS_ARTIFACT_BASE + base_path.replace('/', '-') #TODO Unix-separator
-
-YANG_TOOLS = [
-    '//lib:onos-yang-model',
-    '//lib:onos-yang-compiler-api',
-    '//lib:onos-yang-runtime',
-    '//lib:org.apache.felix.scr.annotations',
-    '//apps/yang:onos-apps-yang',
-]
-
-def yang_model(
-    name = None,
-    app_name = None,
-    model_id = None,
-    title = 'YANG Model',
-    url = 'http://onosproject.org',
-    description = None,
-    deps = [],
-    required_apps = [],
-    custom_registrator = False,
-    yang_src = None,
-    custom_src = None,
-    **kwargs
-    ):
-
-    if name is None:
-        name = _get_name()
-
-    if model_id is None:
-        model_id = app_name
-
-    if yang_src is None:
-        yang_src = glob(['src/main/yang/**/*.yang'])
-
-    if custom_src is None:
-        custom_src = glob(['src/main/java/**/*.java'])
-
-    yang = name + '-yang'
-    yangSrcs = yang + '#srcs'
-    schema = name + '-schema'
-    registrator = name + '-registrator'
-
-    yang_library(
-      deps = deps,
-      name = yang,
-      srcs = yang_src,
-      model_id = model_id
-    )
-
-    genrule(
-      name = schema,
-      srcs = [ ':' + yangSrcs ],
-      cmd = '$(location //buck-tools:yang-schema) $OUT $SRCS',
-      out = 'yang'
-    )
-
-    if custom_registrator:
-        osgi_jar(
-          name = name,
-          srcs = [ ':' + yangSrcs ] + custom_src,
-          deps = deps + YANG_TOOLS,
-          resources = [ ':' + schema ],
-          resources_root = ".",
-          do_checkstyle = True,
-          do_javadocs = False,
-        )
-    else:
-        genrule(
-          name = registrator,
-          srcs = [ ':' + yangSrcs ],
-          cmd = '$(location //buck-tools:yang-registrator) $OUT ' + app_name.replace('-', '_') + ' $SRCS',
-          out = 'YangModelRegistrator.java'
-        )
-        osgi_jar(
-          name = name,
-          srcs = [ ':' + yangSrcs, ':' + registrator ],
-          deps = deps + YANG_TOOLS,
-          resources = [ ':' + schema ],
-          resources_root = ".",
-          do_checkstyle = False,
-          do_javadocs = False,
-        )
-
-    onos_app (
-      name = name,
-      app_name = app_name,
-      title = title,
-      category = 'Models',
-      url = url,
-      description = description,
-      required_apps = required_apps + [ 'org.onosproject.yang' ],
-    )
-
-def yang_osgi_jar(
-    name = None,
-    srcs = None,
-    model_id = None,
-    group_id = ONOS_GROUP_ID,
-    version = ONOS_VERSION,
-    deps = [],
-    visibility = ['PUBLIC'],
-    license = 'NONE',
-    **kwargs
-    ):
-
-    if name is None:
-        name = _get_name()
-
-    if model_id is None:
-        model_id = name
-    yang_jar = name + '-yang'
-    bnd_jar = name + '-bnd'
-
-    args = { 'group':group_id, 'artifact':name, 'version':version }
-
-    yang_library(
-      deps = deps,
-      name = yang_jar,
-      srcs = srcs,
-      model_id = model_id,
-      visibility = [ ],
-    )
-
-    cmd = 'java -jar $(location //lib:bndexe) wrap -o $OUT '
-    cmd += '-b %(group)s.%(artifact)s ' % args
-    cmd += '-v ' + version.replace('-', '.') + ' '
-    cmd += '$(location :%s) ' % yang_jar
-    cmd += ' >/dev/null 2>&1'
-
-    genrule(
-         name = bnd_jar,
-         bash = cmd,
-         out = name + '.jar',
-         visibility = [],
-    )
-
-    prebuilt_jar(
-        name = name,
-        binary_jar = ':' + bnd_jar,
-        maven_coords = '%(group)s:%(artifact)s:%(version)s'%args,
-        visibility = visibility,
-    )
diff --git a/cli/BUCK b/cli/BUCK
deleted file mode 100644
index 3fedcf4..0000000
--- a/cli/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:METRICS',
-    '//lib:org.apache.karaf.shell.console',
-    '//incubator/api:onos-incubator-api',
-    '//incubator/net:onos-incubator-net',
-    '//utils/rest:onlab-rest',
-    '//core/common:onos-core-common',
-]
-
-osgi_jar (
-    deps = COMPILE_DEPS,
-    visibility = ['PUBLIC'],
-)
-
diff --git a/core/api/BUCK b/core/api/BUCK
deleted file mode 100644
index d4cdf8a..0000000
--- a/core/api/BUCK
+++ /dev/null
@@ -1,19 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:COMPILE',
-    '//lib:NETTY',
-    '//lib:JACKSON',
-    '//lib:METRICS',
-    '//lib:KRYO',
-    '//utils/misc:onlab-misc',
-    '//utils/osgi:onlab-osgi',
-    '//utils/rest:onlab-rest',
-    '//lib:joda-time',
-    '//lib:io_netty_netty',
-]
-
-osgi_jar_with_tests (
-    name = 'onos-api',
-    deps = COMPILE_DEPS,
-    javadoc_files = glob(['src/main/javadoc/**/*']),
-    javadoc_files_root = 'src/main/javadoc',
-)
diff --git a/core/common/BUCK b/core/common/BUCK
deleted file mode 100644
index 56c6970..0000000
--- a/core/common/BUCK
+++ /dev/null
@@ -1,19 +0,0 @@
-SRC_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:METRICS',
-    '//incubator/api:onos-incubator-api',
-    '//core/api:onos-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST',
-    '//core/api:onos-api-tests',
-]
-
-osgi_jar_with_tests (
-    name = 'onos-core-common',
-    deps = SRC_DEPS,
-    test_deps = TEST_DEPS,
-    visibility = ['PUBLIC'],
-)
diff --git a/core/net/BUCK b/core/net/BUCK
deleted file mode 100644
index 8a6bad8..0000000
--- a/core/net/BUCK
+++ /dev/null
@@ -1,29 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:METRICS',
-    '//lib:KRYO',
-    '//core/common:onos-core-common',
-    '//incubator/api:onos-incubator-api',
-    '//utils/rest:onlab-rest',
-    '//incubator/net:onos-incubator-net',
-    '//incubator/store:onos-incubator-store',
-    '//core/store/serializers:onos-core-serializers',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_REST',
-    '//lib:TEST_ADAPTERS',
-    '//core/store/dist:onos-core-dist',
-    '//core/store/dist:onos-core-dist-tests',
-    '//utils/osgi:onlab-osgi-tests',
-    '//pipelines/basic:onos-pipelines-basic',
-    '//lib:minimal-json',
-]
-
-osgi_jar_with_tests (
-    name = 'onos-core-net',
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    visibility = ['PUBLIC'],
-)
diff --git a/core/security/BUCK b/core/security/BUCK
deleted file mode 100644
index f6b0da3..0000000
--- a/core/security/BUCK
+++ /dev/null
@@ -1,33 +0,0 @@
-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',
-    '//lib:KRYO',
-    '//core/store/serializers:onos-core-serializers',
-    '//lib:org.apache.felix.framework.security',
-    '//core/api:onos-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST',
-]
-
-osgi_jar_with_tests (
-    name = 'onos-security',
-    srcs = glob([SRC + '/*.java']),
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    visibility = ['PUBLIC'],
-)
-
-java_test(
-    name = 'tests',
-    srcs = glob([TEST + '/*.java']),
-    deps = COMPILE_DEPS +
-           TEST_DEPS +
-           [CURRENT_TARGET],
-)
\ No newline at end of file
diff --git a/core/store/dist/BUCK b/core/store/dist/BUCK
deleted file mode 100644
index 608bfc9..0000000
--- a/core/store/dist/BUCK
+++ /dev/null
@@ -1,31 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//core/common:onos-core-common',
-    '//utils/rest:onlab-rest',
-    '//core/store/serializers:onos-core-serializers',
-    '//lib:io_netty_netty_buffer',
-    '//lib:io_netty_netty_common',
-    '//lib:io_netty_netty_codec',
-    '//lib:io_netty_netty_handler',
-    '//lib:io_netty_netty_resolver',
-    '//lib:io_netty_netty_transport',
-    '//lib:io_netty_netty_transport_native_unix_common',
-    '//lib:io_netty_netty_transport-native-epoll',
-    '//lib:commons-math3',
-    '//incubator/api:onos-incubator-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST',
-    '//core/api:onos-api-tests',
-    '//core/common:onos-core-common-tests',
-]
-
-osgi_jar_with_tests (
-    name = 'onos-core-dist',
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    visibility = ['PUBLIC'],
-)
diff --git a/core/store/persistence/BUCK b/core/store/persistence/BUCK
deleted file mode 100644
index 01cfff7..0000000
--- a/core/store/persistence/BUCK
+++ /dev/null
@@ -1,15 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:mapdb',
-]
-
-TEST_DEPS = [
-    '//lib:TEST',
-]
-
-osgi_jar_with_tests (
-    name = 'onos-core-persistence',
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    visibility = ['PUBLIC'],
-)
diff --git a/core/store/primitives/BUCK b/core/store/primitives/BUCK
deleted file mode 100644
index ffe4fae..0000000
--- a/core/store/primitives/BUCK
+++ /dev/null
@@ -1,28 +0,0 @@
-include_defs('//core/store/primitives/primitives.bucklet')
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//lib:ATOMIX',
-    '//core/common:onos-core-common',
-    '//incubator/api:onos-incubator-api',
-    '//core/store/serializers:onos-core-serializers',
-]
-
-TEST_DEPS = [
-    '//lib:TEST',
-    '//core/api:onos-api-tests',
-    '//lib:io_netty_netty_handler',
-    '//lib:io_netty_netty_buffer',
-    '//lib:io_netty_netty_codec',
-    '//lib:io_netty_netty_resolver',
-    '//lib:commons-math3',
-]
-
-osgi_jar_with_tests (
-    name = 'onos-core-primitives',
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    visibility = ['PUBLIC'],
-    import_packages = INCLUDE_PACKAGES + ',' + ALL_PACKAGES,
-)
diff --git a/core/store/primitives/primitives.bucklet b/core/store/primitives/primitives.bucklet
deleted file mode 100644
index c9c2fc7..0000000
--- a/core/store/primitives/primitives.bucklet
+++ /dev/null
@@ -1,41 +0,0 @@
-# Base package names for core Atomix primitives
-_primitive_package_names = (
-    'barrier',
-    'collection',
-    'counter',
-    'election',
-    'idgenerator',
-    'iterator',
-    'list',
-    'lock',
-    'map',
-    'multimap',
-    'multiset',
-    'queue',
-    'semaphore',
-    'set',
-    'transaction',
-    'tree',
-    'value',
-    'workqueue',
-)
-
-# A list of all core primitive packages for dynamic class loading
-PRIMITIVE_PACKAGES = ','.join(['io.atomix.primitive.session.impl'] + ['io.atomix.core.{primitive},io.atomix.core.{primitive}.impl'.format(primitive=primitive) for primitive in _primitive_package_names])
-
-# Base package names for core Atomix protocols
-_protocol_package_names = (
-    'raft',
-    'backup'
-)
-
-# A list of all core protocol packages for dynamic class loading
-PROTOCOL_PACKAGES = ','.join(['io.atomix.primitive.partition.impl'] + ['io.atomix.protocols.{protocol},io.atomix.protocols.{protocol}.partition'.format(protocol=protocol) for protocol in _protocol_package_names] + ['io.atomix.protocols.gossip'])
-
-# A list of all additional core packages used in dynamic class loading
-CORE_PACKAGES = ','.join(['io.atomix.core.profile', 'io.atomix.core.profile.impl'])
-
-# A list of all dynamically loadable Atomix packages
-INCLUDE_PACKAGES = ','.join([PRIMITIVE_PACKAGES, PROTOCOL_PACKAGES, CORE_PACKAGES])
-
-ALL_PACKAGES = '*'
diff --git a/core/store/serializers/BUCK b/core/store/serializers/BUCK
deleted file mode 100644
index c1c66da..0000000
--- a/core/store/serializers/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//incubator/api:onos-incubator-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST',
-]
-
-osgi_jar_with_tests (
-    name = 'onos-core-serializers',
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    visibility = ['PUBLIC'],
-)
diff --git a/docs/BUCK b/docs/BUCK
deleted file mode 100644
index 8269150..0000000
--- a/docs/BUCK
+++ /dev/null
@@ -1,198 +0,0 @@
-external_deps = UTILS + API + [
-  '//apps/cpman/api:onos-apps-cpman-api',
-  '//apps/routing-api:onos-apps-routing-api',
-  '//apps/dhcp/api:onos-apps-dhcp-api',
-]
-
-external_groups = [
-  ( 'Network Model &amp; Services', [ 'org.onosproject.*' ]),
-  ( 'Incubator for Network Model &amp; Services',  [ 'org.onosproject.incubator.*' ]),
-  ( 'Utilities', [ 'org.onlab.*' ]),
-  ( 'App &amp; Extensions', [
-      'org.onosproject.dhcp',
-      'org.onosproject.cpman',
-      'org.onosproject.routing',
-  ]),
-]
-
-internal_groups = [
-  ( 'Network Model &amp; Services', [ 'org.onosproject.*' ]),
-  ( 'Incubator for Network Model &amp; Services', [ 'org.onosproject.incubator.*' ]),
-  ( 'Core Subsystems', [
-  'org.onosproject.cfg.impl',
-  'org.onosproject.cluster.impl',
-  'org.onosproject.core.impl',
-  'org.onosproject.event.impl',
-  'org.onosproject.net.config.impl',
-  'org.onosproject.net.device.impl',
-  'org.onosproject.net.driver.impl',
-  'org.onosproject.net.edgeservice.impl',
-  'org.onosproject.net.flow.impl',
-  'org.onosproject.net.flowobjective.impl',
-  'org.onosproject.net.flowobjective.impl.composition',
-  'org.onosproject.net.group.impl',
-  'org.onosproject.net.host.impl',
-  'org.onosproject.net.intent.impl',
-  'org.onosproject.net.intent.impl.compiler',
-  'org.onosproject.net.intent.impl.phase',
-  'org.onosproject.net.intf.impl',
-  'org.onosproject.net.link.impl',
-  'org.onosproject.net.newresource.impl',
-  'org.onosproject.net.packet.impl',
-  'org.onosproject.net.proxyarp.impl',
-  'org.onosproject.net.resource.impl',
-  'org.onosproject.net.statistic.impl',
-  'org.onosproject.net.topology.impl',
-  'org.onosproject.json',
-  'org.onosproject.json.*',
-  'org.onosproject.common.*',
-  'org.onosproject.security.impl',
-  'org.onosproject.security.store',
-  ]),
-  ( 'Distributed Stores', [
-  'org.onosproject.store.*',
-  'org.onosproject.persistence.impl',
-  ]),
-  ( 'Incubator for Core Subsystems &amp; Distributed Stores', [
-  'org.onosproject.incubator.net.impl',
-  'org.onosproject.incubator.store.impl',
-  'org.onosproject.incubator.net.resource.label.impl',
-  'org.onosproject.incubator.store.resource.impl',
-  'org.onosproject.incubator.net.tunnel.impl',
-  'org.onosproject.incubator.store.tunnel.impl',
-  'org.onosproject.incubator.net.config.impl',
-  'org.onosproject.incubator.net.domain.impl',
-  'org.onosproject.incubator.store.config.impl',
-  'org.onosproject.incubator.net.meter.impl',
-  'org.onosproject.incubator.net.resource.label',
-  'org.onosproject.incubator.store.meter.impl',
-  ]),
-  ( 'Utilities', [ 'org.onlab.*' ]),
-  ( 'GUI, REST &amp; Command-Line', [
-  'org.onosproject.ui.impl*',
-  'org.onosproject.rest.*',
-  'org.onosproject.cli*',
-  'org.onosproject.codec.impl',
-  ]),
-  ( 'Builtin Applications', [
-  'org.onosproject.app.*',
-  'org.onosproject.acl*',
-  'org.onosproject.aaa',
-  'org.onosproject.fwd',
-  'org.onosproject.dhcp*',
-  'org.onosproject.flowanalyzer',
-  'org.onosproject.cpman*',
-  'org.onosproject.mobility',
-  'org.onosproject.proxyarp',
-  'org.onosproject.calendar',
-  'org.onosproject.olt*',
-  'org.onosproject.optical*',
-  'org.onosproject.newoptical*',
-  'org.onosproject.sdnip',
-  'org.onosproject.sdnip.*',
-  'org.onosproject.config',
-  'org.onosproject.routing',
-  'org.onosproject.routing*',
-  'org.onosproject.bgprouter',
-  'org.onosproject.segmentrouting*',
-  'org.onosproject.reactive.routing*',
-  'org.onosproject.messagingperf',
-  'org.onosproject.virtualbng*',
-  'org.onosproject.cordfabric*',
-  'org.onosproject.xosintegration*',
-  'org.onosproject.cip*',
-  'org.onosproject.vtn*',
-  'org.onosproject.cord*',
-  'org.onosproject.mcast*',
-  'org.onosproject.mfwd*',
-  'org.onosproject.mlb*',
-  'org.onosproject.igmp*',
-  'org.onosproject.pim*',
-  'org.onosproject.vpls*',
-  'org.onosproject.vrouter*',
-  'org.onosproject.faultmanagement*',
-  'org.onosproject.iptopology*',
-  'org.onosproject.drivermatrix*',
-  'org.onosproject.pathpainter*',
-  'org.onosproject.openstack*',
-  'org.onosproject.scalablegateway*',
-  'org.onosproject.forwarder*',
-  'org.onosproject.sfc*',
-  'org.onosproject.netcfgmonitor*',
-  'org.onosproject.flowperf',
-  'org.onosproject.loadtest',
-  'org.onosproject.events',
-  'org.onosproject.bmv2*',
-  'org.onosproject.xosclient*',
-  'org.onosproject.kafkaintegration*',
-  'org.onosproject.gangliametrics*',
-  'org.onosproject.graphitemetrics*',
-  'org.onosproject.influxdbmetrics*',
-  'org.onosproject.yms*',
-  ]),
-  ( 'Test Instrumentation &amp; Applications', [
-  'org.onosproject.metrics.*',
-  'org.onosproject.demo*',
-  'org.onosproject.election*',
-  'org.onosproject.distributedprimitives*',
-  'org.onosproject.intentperf*',
-  'org.onosproject.messagingperf*',
-  'org.onosproject.optical.testapp*',
-  ]),
-  ( 'OpenFlow Providers &amp; Controller', [
-  'org.onosproject.openflow.*',
-  'org.onosproject.provider.of.*',
-  ]),
-  ( 'NetConf Protocol &amp; Providers', [
-  'org.onosproject.netconf*',
-  'org.onosproject.provider.netconf*',
-  ]),
-  ( 'OVSDB Protocol &amp; Providers', [
-  'org.onosproject.provider.ovsdb*',
-  'org.onosproject.ovsdb*',
-  ]),
-  ( 'PCEP Protocol &amp; Providers', [
-  'org.onosproject.pce.*',
-  'org.onosproject.pcerest*',
-  'org.onosproject.pceweb*',
-  'org.onosproject.pcep*',
-  'org.onosproject.pcepio*',
-  'org.onosproject.provider.pcep*',
-  ]),
-  ( 'BGP-LS Protocol &amp; Providers', [
-  'org.onosproject.bgp.controller*',
-  'org.onosproject.bgp*',
-  'org.onosproject.provider.bgp*',
-  ]),
-  ( 'OSPF Protocol &amp; Providers', [ 'org.onosproject.ospf*' ]),
-  ( 'ISIS Protocol &amp; Providers', [ 'org.onosproject.isis*' ]),
-  ( 'LISP Protocol &amp; Providers', [ 'org.onosproject.lisp*' ]),
-  ( 'SNMP Protocol &amp; Providers', [ 'org.onosproject.snmp*' ]),
-  ( 'REST Protocol &amp; Providers', [
-  'org.onosproject.protocol.rest*',
-  'org.onosproject.provider.rest*',
-  ]),
-  ( 'Other Providers', [
-  'org.onosproject.provider.*',
-  'org.onosproject.protocol.*',
-  ]),
-  ( 'Device Drivers', [ 'org.onosproject.driver*' ]),
-]
-
-project_javadoc(
-  name = 'external',
-  project_title = 'ONOS Java API (%s)' % ONOS_VERSION,
-  javadoc_files = glob(['src/main/javadoc/doc-files/*']),
-  overview = 'src/main/javadoc/overview.html',
-  deps = external_deps,
-  groups = external_groups,
-)
-
-project_javadoc(
-  name = 'internal',
-  project_title = 'ONOS Java API (%s)' % ONOS_VERSION,
-  javadoc_files = glob(['src/main/javadoc/doc-files/*']),
-  overview = 'src/main/javadoc/overview.html',
-  deps = CORE,
-  groups = internal_groups,
-)
diff --git a/drivers/arista/BUCK b/drivers/arista/BUCK
deleted file mode 100644
index 0434807..0000000
--- a/drivers/arista/BUCK
+++ /dev/null
@@ -1,36 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:javax.ws.rs-api',
-    '//incubator/api:onos-incubator-api',
-    '//utils/rest:onlab-rest',
-    '//drivers/utilities:onos-drivers-utilities',
-    '//protocols/rest/api:onos-protocols-rest-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-]
-
-BUNDLES = [
-    ':onos-drivers-arista',
-    '//drivers/utilities:onos-drivers-utilities',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers.arista',
-    title = 'Arista Drivers',
-    category = 'Drivers',
-    url = 'http://onosproject.org',
-    description = 'Adds support for Arista devices.',
-    included_bundles = BUNDLES,
-    required_apps = [ 'org.onosproject.restsb' ],
-)
diff --git a/drivers/barefoot/BUCK b/drivers/barefoot/BUCK
deleted file mode 100644
index 8bcefde..0000000
--- a/drivers/barefoot/BUCK
+++ /dev/null
@@ -1,30 +0,0 @@
-GRPC_VER = '1.3.1'
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:minimal-json',
-    '//protocols/p4runtime/api:onos-protocols-p4runtime-api',
-    '//drivers/p4runtime:onos-drivers-p4runtime',
-    '//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
-    '//lib:grpc-netty-' + GRPC_VER,
-]
-
-BUNDLES = [
-    ':onos-drivers-barefoot',
-]
-
-osgi_jar(
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers.barefoot',
-    title = 'Barefoot Drivers',
-    category = 'Drivers',
-    url = 'http://onosproject.org',
-    description = 'Adds support for Barefoot-based devices',
-    included_bundles = BUNDLES,
-    required_apps = [
-        'org.onosproject.drivers.p4runtime',
-    ],
-)
diff --git a/drivers/bmv2/BUCK b/drivers/bmv2/BUCK
deleted file mode 100644
index 312020f..0000000
--- a/drivers/bmv2/BUCK
+++ /dev/null
@@ -1,44 +0,0 @@
-# Buck build of P4-related modules is no longer supported, please use Bazel
-# GRPC_VER = '1.3.1'
-#
-# COMPILE_DEPS = [
-#     '//lib:CORE_DEPS',
-#     '//lib:minimal-json',
-#     '//lib:KRYO',
-#     '//lib:JACKSON',
-#     '//lib:libthrift',
-#     '//protocols/p4runtime/api:onos-protocols-p4runtime-api',
-#     '//protocols/p4runtime/model:onos-protocols-p4runtime-model',
-#     '//protocols/bmv2/thrift-api:onos-protocols-bmv2-thrift-api',
-#     '//drivers/p4runtime:onos-drivers-p4runtime',
-#     '//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
-#     '//lib:grpc-netty-' + GRPC_VER,
-#     '//pipelines/basic:onos-pipelines-basic',
-#     '//core/store/serializers:onos-core-serializers',
-# ]
-#
-# BUNDLES = [
-#     ':onos-drivers-bmv2',
-#     '//lib:libthrift',
-#     '//protocols/bmv2/thrift-api:onos-protocols-bmv2-thrift-api',
-# ]
-#
-# osgi_jar(
-#     deps = COMPILE_DEPS,
-#     resources_root = 'src/main/resources',
-#     resources = glob(['src/main/resources/**']),
-# )
-#
-# onos_app (
-#     app_name = 'org.onosproject.drivers.bmv2',
-#     title = 'BMv2 Drivers',
-#     category = 'Drivers',
-#     url = 'http://onosproject.org',
-#     description = 'Adds support for BMv2 P4 devices.',
-#     included_bundles = BUNDLES,
-#     required_apps = [
-#         'org.onosproject.drivers.p4runtime',
-#         'org.onosproject.drivers.gnmi',
-#         'org.onosproject.pipelines.basic',
-#     ],
-# )
diff --git a/drivers/ciena/c5162/BUCK b/drivers/ciena/c5162/BUCK
deleted file mode 100644
index 1f3584b..0000000
--- a/drivers/ciena/c5162/BUCK
+++ /dev/null
@@ -1,47 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:javax.ws.rs-api',
-    '//incubator/api:onos-incubator-api',
-    '//utils/rest:onlab-rest',
-    '//drivers/utilities:onos-drivers-utilities',
-    '//drivers/netconf:onos-drivers-netconf',
-    '//protocols/netconf/api:onos-protocols-netconf-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-    '//drivers/netconf:onos-drivers-netconf-tests',
-    '//lib:slf4j-jdk14',
-]
-
-BUNDLES = [
-    ':onos-drivers-ciena-c5162',
-    '//drivers/utilities:onos-drivers-utilities',
-    '//drivers/netconf:onos-drivers-netconf',
-]
-
-REQUIRED_APPS = [
-    'org.onosproject.linkdiscovery',
-    'org.onosproject.netconf',
-    'org.onosproject.netconfsb',
-    'org.onosproject.drivers.netconf'
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/*/resources/**']),
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers.ciena.c5162',
-    title = 'Ciena 5162 Drivers',
-    category = 'Drivers',
-    url = 'http://onosproject.org',
-    description = 'Adds support for Ciena 5162 devices.',
-    included_bundles = BUNDLES,
-    required_apps = REQUIRED_APPS,
-)
diff --git a/drivers/ciena/c5170/BUCK b/drivers/ciena/c5170/BUCK
deleted file mode 100644
index 8c4ea6e..0000000
--- a/drivers/ciena/c5170/BUCK
+++ /dev/null
@@ -1,46 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:javax.ws.rs-api',
-    '//incubator/api:onos-incubator-api',
-    '//utils/rest:onlab-rest',
-    '//drivers/utilities:onos-drivers-utilities',
-    '//drivers/netconf:onos-drivers-netconf',
-    '//protocols/netconf/api:onos-protocols-netconf-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-    '//drivers/netconf:onos-drivers-netconf-tests',
-]
-
-BUNDLES = [
-    ':onos-drivers-ciena-c5170',
-    '//drivers/utilities:onos-drivers-utilities',
-    '//drivers/netconf:onos-drivers-netconf',
-]
-
-REQUIRED_APPS = [
-    'org.onosproject.linkdiscovery',
-    'org.onosproject.netconf',
-    'org.onosproject.netconfsb',
-    'org.onosproject.drivers.netconf'
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers.ciena.c5170',
-    title = 'Ciena 5170 Drivers',
-    category = 'Drivers',
-    url = 'http://onosproject.org',
-    description = 'Adds support for Ciena 5170 devices.',
-    included_bundles = BUNDLES,
-    required_apps = REQUIRED_APPS,
-)
diff --git a/drivers/ciena/waveserver/BUCK b/drivers/ciena/waveserver/BUCK
deleted file mode 100644
index 095ec04..0000000
--- a/drivers/ciena/waveserver/BUCK
+++ /dev/null
@@ -1,44 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:javax.ws.rs-api',
-    '//incubator/api:onos-incubator-api',
-    '//utils/rest:onlab-rest',
-    '//drivers/utilities:onos-drivers-utilities',
-    '//protocols/rest/api:onos-protocols-rest-api',
-    '//apps/optical-model:onos-apps-optical-model',
-    '//drivers/optical:onos-drivers-optical',
-]
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-    '//utils/osgi:onlab-osgi-tests',
-]
-
-BUNDLES = [
-    ':onos-drivers-ciena-waveserver',
-    '//drivers/utilities:onos-drivers-utilities',
-]
-
-REQUIRED_APPS = [
-    'org.onosproject.restsb',
-    'org.onosproject.optical-model',
-    'org.onosproject.drivers.optical',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers.ciena.waveserver',
-    title = 'Ciena Waveserver Drivers',
-    category = 'Drivers',
-    url = 'http://onosproject.org',
-    description = 'Adds support for Ciena Waveserver devices.',
-    included_bundles = BUNDLES,
-    required_apps = REQUIRED_APPS,
-)
diff --git a/drivers/ciena/waveserverai/BUCK b/drivers/ciena/waveserverai/BUCK
deleted file mode 100644
index 26f7b9f..0000000
--- a/drivers/ciena/waveserverai/BUCK
+++ /dev/null
@@ -1,53 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:ONOS_YANG',
-    '//lib:javax.ws.rs-api',
-    '//drivers/utilities:onos-drivers-utilities',
-    '//drivers/netconf:onos-drivers-netconf',
-    '//protocols/netconf/api:onos-protocols-netconf-api',
-    '//protocols/netconf/ctl:onos-protocols-netconf-ctl',
-    '//models/common:onos-models-common',
-    '//models/ciena/waveserverai:onos-models-ciena-waveserverai',
-    '//apps/optical-model:onos-apps-optical-model',
-    '//drivers/optical:onos-drivers-optical',
-]
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-    '//drivers/netconf:onos-drivers-netconf-tests',
-    '//utils/osgi:onlab-osgi-tests',
-]
-
-BUNDLES = [
-    ':onos-drivers-ciena-waveserverai',
-    '//drivers/utilities:onos-drivers-utilities',
-    '//drivers/netconf:onos-drivers-netconf',
-]
-
-REQUIRED_APPS = [
-    'org.onosproject.yang',
-    'org.onosproject.optical-model',
-    'org.onosproject.drivers.optical',
-    'org.onosproject.models.ciena.waveserverai',
-    'org.onosproject.netconf',
-    'org.onosproject.netconfsb',
-    'org.onosproject.drivers.netconf',
-    'org.onosproject.linkdiscovery',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers.ciena.waveserverai',
-    title = 'Ciena Waveserver Ai Drivers',
-    category = 'Drivers',
-    url = 'http://onosproject.org',
-    description = 'Adds support for Ciena Waveserver Ai devices.',
-    required_apps = REQUIRED_APPS,
-    included_bundles = BUNDLES,
-)
diff --git a/drivers/cisco/netconf/BUCK b/drivers/cisco/netconf/BUCK
deleted file mode 100644
index 6975a52..0000000
--- a/drivers/cisco/netconf/BUCK
+++ /dev/null
@@ -1,32 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//drivers/utilities:onos-drivers-utilities',
-    '//protocols/netconf/api:onos-protocols-netconf-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-]
-
-BUNDLES = [
-    ':onos-drivers-cisco-netconf',
-    '//drivers/utilities:onos-drivers-utilities',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers.cisco.netconf',
-    title = 'Cisco NETCONF Drivers',
-    category = 'Drivers',
-    url = 'http://onosproject.org',
-    description = 'Adds support for Cisco devices using NETCONF protocol.',
-    included_bundles = BUNDLES,
-    required_apps = [ 'org.onosproject.netconf', 'org.onosproject.drivers.netconf' ],
-)
diff --git a/drivers/cisco/rest/BUCK b/drivers/cisco/rest/BUCK
deleted file mode 100644
index 73acb67..0000000
--- a/drivers/cisco/rest/BUCK
+++ /dev/null
@@ -1,36 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:javax.ws.rs-api',
-    '//incubator/api:onos-incubator-api',
-    '//utils/rest:onlab-rest',
-    '//drivers/utilities:onos-drivers-utilities',
-    '//protocols/rest/api:onos-protocols-rest-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-]
-
-BUNDLES = [
-    ':onos-drivers-cisco-rest',
-    '//drivers/utilities:onos-drivers-utilities',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers.cisco.rest',
-    title = 'Cisco REST Drivers',
-    category = 'Drivers',
-    url = 'http://onosproject.org',
-    description = 'Adds support for Cisco devices using REST.',
-    included_bundles = BUNDLES,
-    required_apps = [ 'org.onosproject.restsb' ],
-)
diff --git a/drivers/corsa/BUCK b/drivers/corsa/BUCK
deleted file mode 100644
index 10eaf82..0000000
--- a/drivers/corsa/BUCK
+++ /dev/null
@@ -1,29 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//lib:openflowj',
-    '//drivers/default:onos-drivers-default',
-    '//drivers/utilities:onos-drivers-utilities',
-    '//protocols/openflow/api:onos-protocols-openflow-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers.corsa',
-    title = 'Corsa Drivers',
-    category = 'Drivers',
-    url = 'http://onosproject.org',
-    description = 'Adds support for Corsa devices.',
-    required_apps = [ 'org.onosproject.openflow' ],
-)
diff --git a/drivers/default/BUCK b/drivers/default/BUCK
deleted file mode 100644
index d8b95de..0000000
--- a/drivers/default/BUCK
+++ /dev/null
@@ -1,33 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//lib:openflowj',
-    '//protocols/openflow/api:onos-protocols-openflow-api',
-    '//core/store/serializers:onos-core-serializers',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers',
-    title = 'Default Drivers',
-    category = 'Drivers',
-    url = 'http://onosproject.org',
-    description = 'Suite of default drivers.',
-    included_bundles = [
-        ':onos-drivers-default',
-        '//lib:openflowj',
-        '//protocols/openflow/api:onos-protocols-openflow-api',
-    ]
-)
diff --git a/drivers/flowspec/BUCK b/drivers/flowspec/BUCK
deleted file mode 100644
index 7590eb2..0000000
--- a/drivers/flowspec/BUCK
+++ /dev/null
@@ -1,27 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//drivers/default:onos-drivers-default',
-    '//apps/flowspec-api/flowapi:onos-apps-flowspec-api-flowapi',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers.flowspec',
-    title = 'Generic Flow Spec Drivers',
-    category = 'Drivers',
-    url = 'http://onosproject.org',
-    description = 'Adds support for devices using flow specs.',
-    required_apps = [ 'org.onosproject.drivers'],
-)
diff --git a/drivers/fujitsu/BUCK b/drivers/fujitsu/BUCK
deleted file mode 100644
index 71bc9b6..0000000
--- a/drivers/fujitsu/BUCK
+++ /dev/null
@@ -1,37 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//drivers/utilities:onos-drivers-utilities',
-    '//protocols/netconf/api:onos-protocols-netconf-api',
-    '//protocols/netconf/ctl:onos-protocols-netconf-ctl',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//apps/optical-model:onos-apps-optical-model',
-    '//incubator/api:onos-incubator-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-]
-
-BUNDLES = [
-    ':onos-drivers-fujitsu',
-    '//drivers/utilities:onos-drivers-utilities',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers.fujitsu',
-    title = 'Fujitsu Drivers',
-    category = 'Drivers',
-    url = 'http://onosproject.org',
-    description = 'Adds support for Fujitsu devices.',
-    included_bundles = BUNDLES,
-    required_apps = [ 'org.onosproject.netconf', 'org.onosproject.optical-model', 'org.onosproject.drivers.optical' ],
-)
diff --git a/drivers/gnmi/BUCK b/drivers/gnmi/BUCK
deleted file mode 100644
index 0fe379e..0000000
--- a/drivers/gnmi/BUCK
+++ /dev/null
@@ -1,38 +0,0 @@
-PROTOBUF_VER = '3.2.0'
-GRPC_VER = '1.3.1'
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//protocols/grpc/api:onos-protocols-grpc-api',
-    '//protocols/grpc/proto:onos-protocols-grpc-proto',
-    '//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
-    '//lib:grpc-netty-' + GRPC_VER,
-    '//lib:protobuf-java-' + PROTOBUF_VER,
-    '//lib:grpc-stub-' + GRPC_VER,
-    '//core/store/serializers:onos-core-serializers',
-    '//protocols/gnmi/stub:onos-protocols-gnmi-stub',
-]
-
-BUNDLES = [
-    ':onos-drivers-gnmi',
-]
-
-osgi_jar (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers.gnmi',
-    title = 'gNMI Drivers',
-    category = 'Drivers',
-    url = 'http://onosproject.org',
-    description = 'Adds support for devices using gNMI protocol based on ' +
-    ' openconfig models: http://openconfig.net/ .',
-    included_bundles = BUNDLES,
-    required_apps = [
-        'org.onosproject.generaldeviceprovider',
-        'org.onosproject.protocols.grpc',
-        'org.onosproject.protocols.gnmi'
-    ],
-)
\ No newline at end of file
diff --git a/drivers/hp/BUCK b/drivers/hp/BUCK
deleted file mode 100644
index a403221..0000000
--- a/drivers/hp/BUCK
+++ /dev/null
@@ -1,29 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//lib:openflowj',
-    '//drivers/default:onos-drivers-default',
-    '//drivers/utilities:onos-drivers-utilities',
-    '//protocols/openflow/api:onos-protocols-openflow-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers.hp',
-    title = 'HP Drivers',
-    category = 'Drivers',
-    url = 'http://onosproject.org',
-    description = 'Adds support for HP devices.',
-    required_apps = [ 'org.onosproject.openflow' ],
-)
diff --git a/drivers/huawei/BUCK b/drivers/huawei/BUCK
deleted file mode 100644
index e8689ea..0000000
--- a/drivers/huawei/BUCK
+++ /dev/null
@@ -1,49 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:org.apache.servicemix.bundles.dom4j',
-    '//models/l3vpn:onos-models-l3vpn',
-    '//models/huawei:onos-models-huawei',
-    '//drivers/utilities:onos-drivers-utilities',
-    '//protocols/netconf/api:onos-protocols-netconf-api',
-    '//apps/l3vpn:onos-apps-l3vpn',
-    '//apps/config:onos-apps-config',
-    '//lib:onos-yang-model',
-    '//lib:onos-yang-runtime',
-    '//apps/yang:onos-apps-yang',
-    '//models/common:onos-models-common',
-]
-
-APPS = [
-    'org.onosproject.yang',
-    'org.onosproject.yang-gui',
-    'org.onosproject.config',
-    'org.onosproject.restconf',
-    'org.onosproject.protocols.restconfserver',
-    'org.onosproject.netconf',
-    'org.onosproject.netconfsb',
-    'org.onosproject.models.common',
-    'org.onosproject.models.l3vpn',
-    'org.onosproject.l3vpn',
-    'org.onosproject.models.huawei',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//utils/osgi:onlab-osgi-tests',
-]
-
-osgi_jar_with_tests(
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app(
-    app_name = 'org.onosproject.drivers.huawei',
-    title = 'Huawei Drivers',
-    category = 'Drivers',
-    url = 'http://onosproject.org',
-    description = 'Adds support for Huawei devices.',
-    required_apps = APPS
-)
\ No newline at end of file
diff --git a/drivers/juniper/BUCK b/drivers/juniper/BUCK
deleted file mode 100644
index 1339200..0000000
--- a/drivers/juniper/BUCK
+++ /dev/null
@@ -1,26 +0,0 @@
-COMPILE_DEPS = [
-  '//lib:CORE_DEPS',
-  '//drivers/utilities:onos-drivers-utilities',
-  '//protocols/netconf/api:onos-protocols-netconf-api',
-]
-
-BUNDLES = [
-  ':onos-drivers-juniper',
-  '//drivers/utilities:onos-drivers-utilities',
-]
-
-osgi_jar_with_tests (
-  deps = COMPILE_DEPS,
-  resources_root = 'src/main/resources',
-  resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-  app_name = 'org.onosproject.drivers.juniper',
-  title = 'Juniper Drivers',
-  category = 'Drivers',
-  url = 'http://onosproject.org',
-  description = 'Adds support for Juniper devices.',
-  included_bundles = BUNDLES,
-  required_apps = [ 'org.onosproject.netconf' ],
-)
\ No newline at end of file
diff --git a/drivers/lisp/BUCK b/drivers/lisp/BUCK
deleted file mode 100644
index 18b053a..0000000
--- a/drivers/lisp/BUCK
+++ /dev/null
@@ -1,40 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//protocols/lisp/api:onos-protocols-lisp-api',
-    '//protocols/lisp/msg:onos-protocols-lisp-msg',
-    '//apps/mappingmanagement/api:onos-apps-mappingmanagement-api',
-    '//core/store/serializers:onos-core-serializers'
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//apps/mappingmanagement/api:onos-apps-mappingmanagement-api-tests',
-    '//core/api:onos-api-tests',
-    '//lib:jersey-test-framework-core',
-    '//lib:jersey-test-framework-jetty',
-    '//utils/osgi:onlab-osgi-tests',
-    '//web/api:onos-rest-tests',
-]
-
-BUNDLES = [
-    ':onos-drivers-lisp',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers.lisp',
-    title = 'Generic LISP Drivers',
-    category = 'Drivers',
-    url = 'https://wiki.onosproject.org/display/ONOS/LISP+as+SBI',
-    description = 'Adds support for devices using LISP.',
-    included_bundles = BUNDLES,
-    required_apps = [ 'org.onosproject.lisp' ],
-)
diff --git a/drivers/lumentum/BUCK b/drivers/lumentum/BUCK
deleted file mode 100644
index 1699870..0000000
--- a/drivers/lumentum/BUCK
+++ /dev/null
@@ -1,41 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:org.apache.servicemix.bundles.snmp4j',
-    '//drivers/utilities:onos-drivers-utilities',
-    '//protocols/snmp/api:onos-protocols-snmp-api',
-    '//protocols/tl1/api:onos-protocols-tl1-api',
-    '//protocols/netconf/api:onos-protocols-netconf-api',
-    '//incubator/api:onos-incubator-api',
-    '//apps/optical-model:onos-apps-optical-model',
-    '//drivers/optical:onos-drivers-optical',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-]
-
-BUNDLES = [
-    ':onos-drivers-lumentum',
-    '//drivers/utilities:onos-drivers-utilities',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers.lumentum',
-    title = 'Lumentum Drivers',
-    category = 'Drivers',
-    url = 'http://onosproject.org',
-
-    description = 'ONOS Lumentum Device Drivers application.',
-    included_bundles = BUNDLES,
-    required_apps = [ 'org.onosproject.snmp', 'org.onosproject.faultmanagement', 'org.onosproject.optical-model',
-     'org.onosproject.tl1', 'org.onosproject.netconf', 'org.onosproject.drivers.optical'],
-
-)
diff --git a/drivers/mellanox/BUCK b/drivers/mellanox/BUCK
deleted file mode 100644
index bb9bfbc..0000000
--- a/drivers/mellanox/BUCK
+++ /dev/null
@@ -1,25 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//drivers/p4runtime:onos-drivers-p4runtime',
-]
-
-BUNDLES = [
-    ':onos-drivers-mellanox',
-]
-
-osgi_jar(
-    deps = COMPILE_DEPS,
-)
-
-onos_app(
-    app_name = 'org.onosproject.drivers.mellanox',
-    title = 'Mellanox Drivers',
-    category = 'Drivers',
-    url = 'https://wiki.onosproject.org/x/aAZkAQ',
-    description = 'Adds support for Mellanox Spectrum-based devices using P4Runtime',
-    included_bundles = BUNDLES,
-    required_apps = [
-        'org.onosproject.drivers.p4runtime',
-        'org.onosproject.pipelines.fabric',
-    ],
-)
diff --git a/drivers/microsemi/ea1000/BUCK b/drivers/microsemi/ea1000/BUCK
deleted file mode 100644
index 940903e..0000000
--- a/drivers/microsemi/ea1000/BUCK
+++ /dev/null
@@ -1,48 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:ONOS_YANG',
-    '//drivers/utilities:onos-drivers-utilities',
-    '//protocols/netconf/api:onos-protocols-netconf-api',
-    '//protocols/netconf/ctl:onos-protocols-netconf-ctl',
-    '//models/common:onos-models-common',
-    '//models/microsemi:onos-models-microsemi',
-    '//lib:org.apache.karaf.shell.console',
-    '//apps/cfm/api:onos-apps-cfm-api',
-] + YANG_TOOLS
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-    '//drivers/netconf:onos-drivers-netconf-tests',
-    '//utils/osgi:onlab-osgi-tests',
-    '//apps/cfm/app:onos-apps-cfm-app',
-    '//apps/cfm/app:onos-apps-cfm-app-tests',
-]
-
-APPS = [
-    'org.onosproject.yang',
-#     'org.onosproject.yang-gui',
-    'org.onosproject.config',
-    'org.onosproject.netconf',
-    'org.onosproject.netconfsb',
-    'org.onosproject.drivers.netconf',
-    'org.onosproject.models.common',
-    'org.onosproject.models.microsemi',
-    'org.onosproject.cfm',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers.microsemi.ea1000',
-    title = 'Microsemi Drivers EA1000',
-    category = 'Drivers',
-    url = 'http://onosproject.org',
-    description = 'Adds support for Microsemi EA1000 devices.',
-    required_apps = APPS,
-)
diff --git a/drivers/netconf/BUCK b/drivers/netconf/BUCK
deleted file mode 100644
index 560d7b5..0000000
--- a/drivers/netconf/BUCK
+++ /dev/null
@@ -1,33 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//drivers/utilities:onos-drivers-utilities',
-    '//protocols/netconf/api:onos-protocols-netconf-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//lib:slf4j-jdk14',
-    '//core/api:onos-api-tests',
-]
-
-BUNDLES = [
-    ':onos-drivers-netconf',
-    '//drivers/utilities:onos-drivers-utilities',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers.netconf',
-    title = 'Generic NETCONF Drivers',
-    category = 'Drivers',
-    url = 'http://onosproject.org',
-    description = 'Adds support for devices using NETCONF.',
-    included_bundles = BUNDLES,
-    required_apps = [ 'org.onosproject.netconf' ],
-)
diff --git a/drivers/odtn-driver/BUCK b/drivers/odtn-driver/BUCK
deleted file mode 100644
index 86d34bd..0000000
--- a/drivers/odtn-driver/BUCK
+++ /dev/null
@@ -1,42 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//drivers/utilities:onos-drivers-utilities',
-    '//protocols/netconf/api:onos-protocols-netconf-api',
-    '//lib:commons-jxpath',
-    '//apps/odtn/api:onos-apps-odtn-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-    '//lib:slf4j-jdk14',
-]
-
-BUNDLES = [
-    ':onos-drivers-odtn-driver',
-    '//drivers/utilities:onos-drivers-utilities',
-#     '//lib:commons-jxpath',
-#     '//lib:commons-beanutils', # jxpath dependency
-#     '//lib:jdom',  # jxpath dependency
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers.odtn-driver',
-    title = 'ODTN Driver',
-    category = 'Drivers',
-    url = 'https://wiki.onosproject.org/display/ODTN/ODTN',
-    description = 'Drivers related to ODTN',
-    included_bundles = BUNDLES,
-    required_apps = [
-        'org.onosproject.netconf',
-        'org.onosproject.config',
-        'org.onosproject.odtn-api',
-    ],
-)
diff --git a/drivers/oplink/BUCK b/drivers/oplink/BUCK
deleted file mode 100644
index 43b0826..0000000
--- a/drivers/oplink/BUCK
+++ /dev/null
@@ -1,36 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//drivers/default:onos-drivers-default',
-    '//drivers/utilities:onos-drivers-utilities',
-    '//protocols/netconf/api:onos-protocols-netconf-api',
-    '//apps/optical-model:onos-apps-optical-model',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-]
-
-BUNDLES = [
-    ':onos-drivers-oplink',
-    '//drivers/utilities:onos-drivers-utilities',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app(
-    app_name = 'org.onosproject.drivers.oplink',
-    title = 'Oplink Drivers',
-    category = 'Drivers',
-    url = 'http://onosproject.org',
-    description = 'Adds support for Oplink devices.',
-    included_bundles = BUNDLES,
-    required_apps = [
-        'org.onosproject.netconf', 'org.onosproject.optical-model'
-    ],
-)
\ No newline at end of file
diff --git a/drivers/optical/BUCK b/drivers/optical/BUCK
deleted file mode 100644
index f9eef16..0000000
--- a/drivers/optical/BUCK
+++ /dev/null
@@ -1,31 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:JACKSON',
-    '//lib:openflowj',
-    '//protocols/openflow/api:onos-protocols-openflow-api',
-    '//drivers/default:onos-drivers-default',
-    '//apps/optical-model:onos-apps-optical-model',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-    '//utils/osgi:onlab-osgi-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers.optical',
-    title = 'Basic Optical Drivers',
-    category = 'Drivers',
-    url = 'http://onosproject.org',
-    description = 'Suite of basic optical device drivers.',
-    required_apps = [ 'org.onosproject.drivers', 'org.onosproject.optical-model' ],
-)
diff --git a/drivers/ovsdb/BUCK b/drivers/ovsdb/BUCK
deleted file mode 100644
index 3446bd2..0000000
--- a/drivers/ovsdb/BUCK
+++ /dev/null
@@ -1,27 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//drivers/utilities:onos-drivers-utilities',
-    '//protocols/ovsdb/api:onos-protocols-ovsdb-api',
-    '//protocols/ovsdb/rfc:onos-protocols-ovsdb-rfc',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//protocols/ovsdb/api:onos-protocols-ovsdb-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers.ovsdb',
-    title = 'Generic OVSDB Drivers',
-    category = 'Drivers',
-    url = 'http://onosproject.org',
-    description = 'Adds support for devices using OVSDB.',
-    required_apps = [ 'org.onosproject.ovsdb-base' ],
-)
diff --git a/drivers/p4runtime/BUCK b/drivers/p4runtime/BUCK
deleted file mode 100644
index ea135ef..0000000
--- a/drivers/p4runtime/BUCK
+++ /dev/null
@@ -1,32 +0,0 @@
-GRPC_VER = '1.3.1'
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//protocols/p4runtime/api:onos-protocols-p4runtime-api',
-    '//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
-    '//core/store/serializers:onos-core-serializers',
-]
-
-BUNDLES = [
-    ':onos-drivers-p4runtime',
-]
-
-osgi_jar (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers.p4runtime',
-    title = 'P4Runtime Drivers',
-    category = 'Drivers',
-    url = 'http://onosproject.org',
-    description = 'Adds support for devices using P4 Runtime protocol.',
-    included_bundles = BUNDLES,
-    required_apps = [
-        'org.onosproject.generaldeviceprovider',
-        'org.onosproject.protocols.p4runtime',
-        'org.onosproject.p4runtime',
-        'org.onosproject.drivers',
-    ],
-)
diff --git a/drivers/polatis/netconf/BUCK b/drivers/polatis/netconf/BUCK
deleted file mode 100644
index 061ae0d..0000000
--- a/drivers/polatis/netconf/BUCK
+++ /dev/null
@@ -1,44 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//models/polatis:onos-models-polatis',
-    '//drivers/utilities:onos-drivers-utilities',
-    '//protocols/netconf/api:onos-protocols-netconf-api',
-    '//lib:onos-yang-model',
-    '//apps/optical-model:onos-apps-optical-model',
-    '//incubator/api:onos-incubator-api',
-]
-
-APPS = [
-    'org.onosproject.netconf',
-    'org.onosproject.models.common',
-    'org.onosproject.models.polatis',
-    'org.onosproject.optical-model',
-    'org.onosproject.faultmanagement',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//utils/osgi:onlab-osgi-tests',
-]
-
-BUNDLES = [
-    ':onos-drivers-polatis-netconf',
-    '//drivers/utilities:onos-drivers-utilities',
-]
-
-osgi_jar_with_tests(
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app(
-    app_name = 'org.onosproject.drivers.polatis.netconf',
-    title = 'Polatis Device Drivers',
-    category = 'Drivers',
-    url = 'http://www.polatis.com',
-    description = 'ONOS Polatis Device Drivers application.',
-    included_bundles = BUNDLES,
-    required_apps = APPS
-)
diff --git a/drivers/polatis/openflow/BUCK b/drivers/polatis/openflow/BUCK
deleted file mode 100644
index 704ad3d..0000000
--- a/drivers/polatis/openflow/BUCK
+++ /dev/null
@@ -1,34 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:openflowj',
-    '//protocols/openflow/api:onos-protocols-openflow-api',
-    '//apps/optical-model:onos-apps-optical-model',
-]
-
-APPS = [
-    'org.onosproject.drivers.optical',
-    'org.onosproject.optical-model',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-    '//utils/osgi:onlab-osgi-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers.polatis.openflow',
-    title = 'Polatis OpenFlow Device Drivers',
-    category = 'Drivers',
-    url = 'http://www.polatis.com',
-    description = 'ONOS Polatis OpenFlow Device Drivers application.',
-    required_apps = APPS
-)
-
diff --git a/drivers/polatis/snmp/BUCK b/drivers/polatis/snmp/BUCK
deleted file mode 100644
index 5ff6cdf..0000000
--- a/drivers/polatis/snmp/BUCK
+++ /dev/null
@@ -1,35 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:org.apache.servicemix.bundles.snmp4j',
-    '//drivers/utilities:onos-drivers-utilities',
-    '//protocols/snmp/api:onos-protocols-snmp-api',
-    '//apps/optical-model:onos-apps-optical-model',
-    '//incubator/api:onos-incubator-api',
-]
-
-APPS = [
-    'org.onosproject.snmp',
-    'org.onosproject.optical-model',
-    'org.onosproject.faultmanagement',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-]
-
-osgi_jar_with_tests(
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app(
-    app_name = 'org.onosproject.drivers.polatis.snmp',
-    title = 'Polatis SNMP Device Drivers',
-    category = 'Drivers',
-    url = 'http://www.polatis.com',
-    description = 'ONOS Polatis SNMP Device Drivers application.',
-    required_apps = APPS
-)
diff --git a/drivers/server/BUCK b/drivers/server/BUCK
deleted file mode 100644
index cfb6acd..0000000
--- a/drivers/server/BUCK
+++ /dev/null
@@ -1,40 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:javax.ws.rs-api',
-    '//lib:joda-time',
-    '//incubator/api:onos-incubator-api',
-    '//utils/rest:onlab-rest',
-    '//protocols/rest/api:onos-protocols-rest-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-]
-
-BUNDLES = [
-    ':onos-drivers-server',
-]
-
-REQUIRED_APPS = [
-    'org.onosproject.restsb',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
-onos_app (
-    app_name = 'org.onosproject.drivers.server',
-    title = 'Server Device Drivers',
-    category = 'Drivers',
-    origin = 'KTH Royal Institute of Technology &amp; RISE SICS',
-    url = 'https://github.com/gkatsikas/onos/tree/metron-driver',
-    description = 'ONOS southbound drivers for commodity servers',
-    included_bundles = BUNDLES,
-    required_apps = REQUIRED_APPS,
-)
diff --git a/drivers/utilities/BUCK b/drivers/utilities/BUCK
deleted file mode 100644
index 731ad13..0000000
--- a/drivers/utilities/BUCK
+++ /dev/null
@@ -1,11 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//core/net:onos-core-net',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-)
-
diff --git a/incubator/api/BUCK b/incubator/api/BUCK
deleted file mode 100644
index eb7b036..0000000
--- a/incubator/api/BUCK
+++ /dev/null
@@ -1,15 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    name = 'onos-incubator-api',
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    visibility = ['PUBLIC'],
-)
diff --git a/incubator/grpc-dependencies/BUCK b/incubator/grpc-dependencies/BUCK
deleted file mode 100644
index 99d74cc..0000000
--- a/incubator/grpc-dependencies/BUCK
+++ /dev/null
@@ -1,41 +0,0 @@
-include_defs('//bucklets/grpc.bucklet')
-
-fetch_grpc_plugin(version = '1.3.1')
-
-# Repackaging of gRPC 1.3.* to solve the OSGI split package issue.
-# If bumping the gRPC version, please write a new rule.
-
-def grpc_core_repkg_131():
-    repkg_deps = [
-        '//lib:COMPILE',
-        '//lib:google-instrumentation-0.3.0',
-        '//lib:google-errorprone-2.0.19'
-    ]
-    remote_file(
-        name = "grpc-src-zip-131",
-        url = "https://github.com/grpc/grpc-java/archive/v1.3.1.zip",
-        sha1 = "03dc21440fdfa920aa0e905da17df35b0d6c9a44",
-    )
-    srcs = []
-    for pkg in ['core', 'context']:
-        name = 'grpc-' + pkg + '-130'
-        genrule(
-            name = name,
-            bash = 'jar xf $(location :grpc-src-zip-131) grpc-java-1.3.1/' + pkg + '/src/main/java '
-            + '&& cd grpc-java-1.3.1/' + pkg + '/src/main/java '
-            + '&& jar -cf $OUT *',
-            out = pkg + '.src.zip',
-        )
-        srcs.append(':' + name)
-    osgi_jar(
-        name = 'grpc-core-repkg-1.3.1',
-        srcs = srcs,
-        deps = repkg_deps,
-        package_name_root = 'io.grpc',
-        import_packages = '!javax.annotation,!com.google.errorprone.annotations,*',
-        export_packages = '*',
-        do_javadocs = False,
-        do_checkstyle = False,
-    )
-
-grpc_core_repkg_131()
diff --git a/incubator/net/BUCK b/incubator/net/BUCK
deleted file mode 100644
index 902434a..0000000
--- a/incubator/net/BUCK
+++ /dev/null
@@ -1,25 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:METRICS',
-    '//lib:KRYO',
-    '//core/common:onos-core-common',
-    '//incubator/api:onos-incubator-api',
-    '//incubator/store:onos-incubator-store',
-    '//utils/rest:onlab-rest',
-    '//lib:concurrent-trees',
-    '//core/store/serializers:onos-core-serializers',
-]
-
-TEST_DEPS = [
-    '//incubator/api:onos-incubator-api-tests',
-    '//lib:TEST_REST',
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-    '//core/common:onos-core-common-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/incubator/protobuf-dependencies/BUCK b/incubator/protobuf-dependencies/BUCK
deleted file mode 100644
index b7705de..0000000
--- a/incubator/protobuf-dependencies/BUCK
+++ /dev/null
@@ -1,4 +0,0 @@
-include_defs('//bucklets/grpc.bucklet')
-
-fetch_protoc(version = '3.0.2')
-fetch_protoc(version = '3.2.0')
\ No newline at end of file
diff --git a/incubator/protobuf/api/BUCK b/incubator/protobuf/api/BUCK
deleted file mode 100644
index 13a04d4..0000000
--- a/incubator/protobuf/api/BUCK
+++ /dev/null
@@ -1,15 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//incubator/grpc-dependencies:grpc-core-repkg-1.3.1'
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    name = 'onos-grpc-api',
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    visibility = ['PUBLIC'],
-)
diff --git a/incubator/protobuf/models/BUCK b/incubator/protobuf/models/BUCK
deleted file mode 100644
index 04f71b0..0000000
--- a/incubator/protobuf/models/BUCK
+++ /dev/null
@@ -1,35 +0,0 @@
-GRPC_VER = '1.3.1'
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    ':onos-incubator-protobuf-models-proto',
-    '//lib:protobuf-java-3.2.0',
-    '//lib:GRPC_1.3',
-    '//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER
-]
-
-GRPC_DEPS = [
-    '//lib:GRPC_1.3',
-    '//lib:protobuf-java-3.2.0',
-    '//lib:com_google_guava_guava',
-    '//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER
-]
-
-BUNDLES = [
-    ':onos-incubator-protobuf-models',
-    ':onos-incubator-protobuf-models-proto',
-    '//lib:protobuf-java-3.2.0',
-]
-
-grpc_jar(
-    name = 'onos-incubator-protobuf-models-proto',
-    deps = GRPC_DEPS,
-    # FIXME should not be manually building absolute path.
-    # Come up with glob(..) equivalent in BUCK which can handle directory.
-    proto_paths = ["$ONOS_ROOT/incubator/protobuf/models/src/main/proto"]
-)
-
-osgi_jar_with_tests(
-    deps = COMPILE_DEPS,
-    visibility = ['PUBLIC'],
-)
diff --git a/incubator/protobuf/registry/BUCK b/incubator/protobuf/registry/BUCK
deleted file mode 100644
index ff95260..0000000
--- a/incubator/protobuf/registry/BUCK
+++ /dev/null
@@ -1,23 +0,0 @@
-GRPC_VER = '1.3.1'
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:GRPC_1.3',
-    '//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
-    '//incubator/protobuf/api:onos-grpc-api'
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    title = 'Grpc Service Registry',
-    app_name = "org.onosproject.grpc.registry",
-    included_bundles = ['//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
-        '//lib:google-instrumentation-0.3.0'],
-    category = 'Utility',
-    url = 'http://onosproject.org',
-    description = 'Service providing connections for remote apps communicating with the ONOS core via gRPC.',
-)
diff --git a/incubator/protobuf/services/nb/BUCK b/incubator/protobuf/services/nb/BUCK
deleted file mode 100644
index f05f448..0000000
--- a/incubator/protobuf/services/nb/BUCK
+++ /dev/null
@@ -1,78 +0,0 @@
-GRPC_VER = '1.3.1'
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    ':onos-incubator-protobuf-services-nb-proto',
-    '//incubator/protobuf/models:onos-incubator-protobuf-models-proto',
-    '//incubator/protobuf/models:onos-incubator-protobuf-models',
-    '//lib:protobuf-java-3.2.0',
-    '//lib:GRPC_1.3',
-    '//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
-    '//lib:grpc-protobuf-lite-' + GRPC_VER,
-    '//incubator/protobuf/api:onos-grpc-api'
-]
-
-TEST_DEPS = [
-    '//lib:TEST',
-    '//lib:TEST_ADAPTERS',
-]
-
-GRPC_DEPS = [
-    '//lib:GRPC_1.3',
-    '//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
-    '//incubator/protobuf/models:onos-incubator-protobuf-models-proto',
-    '//lib:protobuf-java-3.2.0',
-    '//lib:com_google_guava_guava',
-]
-
-BUNDLES = [
-    '//incubator/protobuf/models:onos-incubator-protobuf-models',
-    '//incubator/protobuf/models:onos-incubator-protobuf-models-proto',
-    ':onos-incubator-protobuf-services-nb',
-    ':onos-incubator-protobuf-services-nb-proto',
-    '//lib:protobuf-java-3.2.0',
-    '//lib:com_google_guava_guava',
-    '//lib:grpc-core-' + GRPC_VER,
-    '//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
-    '//lib:grpc-protobuf-' + GRPC_VER,
-    '//lib:grpc-stub-' + GRPC_VER,
-    '//lib:grpc-netty-' + GRPC_VER,
-    '//lib:grpc-auth-' + GRPC_VER,
-    '//lib:grpc-context-' + GRPC_VER,
-    '//lib:google-truth-0.28',
-    '//core/api:onos-api',
-    '//lib:io_netty_netty_transport',
-    '//lib:io_netty_netty_buffer',
-    '//lib:io_netty_netty_resolver',
-    '//lib:io_netty_netty_common',
-    '//lib:io_netty_netty_codec',
-    '//lib:io_netty_netty_handler',
-    '//lib:io_netty_netty_codec-http2',
-    '//lib:io_netty_netty_codec-http',
-    "//lib:google-instrumentation-0.3.0",
-]
-
-grpc_jar(
-    name = 'onos-incubator-protobuf-services-nb-proto',
-    deps = GRPC_DEPS,
-    # FIXME should not be manually building absolute path
-    # come up with glob(..) equivalent in BUCK which can handle directory
-    proto_paths = ["$ONOS_ROOT/incubator/protobuf/services/nb/src/main/proto",
-        "$ONOS_ROOT/incubator/protobuf/models/src/main/proto"]
-)
-
-osgi_jar_with_tests(
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    visibility = ['PUBLIC'],
-)
-
-onos_app (
-    title = 'Grpc Northbound Service',
-    app_name = "org.onosproject.grpc.nb.service",
-    category = 'Utility',
-    url = 'http://onosproject.org',
-    included_bundles = ['//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
-            '//lib:google-instrumentation-0.3.0'],
-    description = 'gRPC northbound services used to provide fine-grained access to ONOS native northbound interface from off-platform applications',
-)
diff --git a/incubator/rpc/BUCK b/incubator/rpc/BUCK
deleted file mode 100644
index 068a43b..0000000
--- a/incubator/rpc/BUCK
+++ /dev/null
@@ -1,14 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//incubator/api:onos-incubator-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    visibility = ['PUBLIC'],
-)
diff --git a/incubator/store/BUCK b/incubator/store/BUCK
deleted file mode 100644
index e3fa120..0000000
--- a/incubator/store/BUCK
+++ /dev/null
@@ -1,20 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//lib:concurrent-trees',
-    '//incubator/api:onos-incubator-api',
-    '//core/store/dist:onos-core-dist',
-    '//core/store/serializers:onos-core-serializers',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//core/api:onos-api-tests',
-    '//core/common:onos-core-common-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    visibility = ['PUBLIC'],
-)
diff --git a/lib/BUCK b/lib/BUCK
deleted file mode 100644
index bb3f955..0000000
--- a/lib/BUCK
+++ /dev/null
@@ -1,2049 +0,0 @@
-# ***** This file was auto-generated at Wed, 14 Nov 2018 01:39:18 GMT. Do not edit this file manually. *****
-# ***** Use onos-lib-gen *****
-
-pass_thru_pom(
-    name = 'onos-dependencies-pom',
-    src = 'pom.xml',
-    out = 'onos-dependencies.pom',
-    artifactId = 'onos-dependencies',
-)
-
-osgi_feature_group(
-  name = 'COMPILE',
-  visibility = ['PUBLIC'],
-  exported_deps = [
-    ':commons-configuration',
-    ':commons-logging',
-    ':commons-collections',
-    ':commons-lang',
-    ':commons-lang3',
-    ':commons-io',
-    ':commons-pool',
-    ':com_google_guava_guava',
-    ':slf4j-api',
-    ':osgi-core',
-    ':org.osgi.compendium',
-    ':org.apache.felix.scr.annotations',
-    ':org.apache.felix.scr',
-    ':org.apache.karaf.features.core',
-    ':org.apache.karaf.system.core',
-    ':com_google_code_findbugs_jsr305',
-    ':org.apache.servicemix.bundles.dom4j',
-  ],
-)
-
-osgi_feature_group(
-  name = 'CORE_DEPS',
-  visibility = ['PUBLIC'],
-  exported_deps = [
-    ':COMPILE',
-    '//core/api:onos-api',
-    '//utils/misc:onlab-misc',
-    '//utils/osgi:onlab-osgi',
-  ],
-)
-
-osgi_feature_group(
-  name = 'TEST',
-  visibility = ['PUBLIC'],
-  exported_deps = [
-    ':junit',
-    ':easymock',
-    ':hamcrest-all',
-    ':hamcrest-optional',
-    ':com_google_guava_guava_testlib',
-    '//utils/junit:onlab-junit',
-  ],
-)
-
-osgi_feature_group(
-  name = 'TEST_ADAPTERS',
-  visibility = ['PUBLIC'],
-  exported_deps = [
-    ':TEST',
-    '//core/common:onos-core-common',
-    '//core/api:onos-api-tests',
-    '//core/common:onos-core-common-tests',
-  ],
-)
-
-osgi_feature_group(
-  name = 'TEST_REST',
-  visibility = ['PUBLIC'],
-  exported_deps = [
-    ':TEST_ADAPTERS',
-    ':jersey-client',
-    ':jersey-server',
-    ':jersey-common',
-    ':jersey-hk2',
-    ':jersey-test-framework-core',
-    ':jersey-test-framework-jetty',
-    ':jersey-container-jetty-http',
-    ':jetty-continuation',
-    ':jetty-http',
-    ':jetty-server',
-    ':jetty-io',
-    ':jetty-util',
-    ':javax.servlet-api',
-    ':hk2-api',
-    ':hk2-locator',
-    ':hk2-utils',
-    ':javax.inject',
-    ':hk2-osgi-resource-locator',
-    ':javax.annotation-api-mvn',
-    ':validation-api',
-    '//core/common:onos-core-common',
-    '//core/api:onos-api-tests',
-    '//core/common:onos-core-common-tests',
-    '//utils/osgi:onlab-osgi-tests',
-  ],
-)
-
-osgi_feature_group(
-  name = 'NETTY',
-  visibility = ['PUBLIC'],
-  exported_deps = [
-    ':io_netty_netty_buffer',
-    ':io_netty_netty_common',
-  ],
-)
-
-osgi_feature_group(
-  name = 'ONOS_YANG',
-  visibility = ['PUBLIC'],
-  exported_deps = [
-    ':onos-yang-model',
-    ':onos-yang-compiler-api',
-    ':onos-yang-serializers-json',
-    ':onos-yang-serializers-xml',
-    ':onos-yang-serializers-utils',
-  ],
-)
-
-osgi_feature_group(
-  name = 'JACKSON',
-  visibility = ['PUBLIC'],
-  exported_deps = [
-    ':jackson-annotations',
-    ':jackson-core',
-    ':jackson-databind',
-  ],
-)
-
-osgi_feature_group(
-  name = 'METRICS',
-  visibility = ['PUBLIC'],
-  exported_deps = [
-    ':metrics-core',
-    ':metrics-json',
-  ],
-)
-
-osgi_feature_group(
-  name = 'KRYO',
-  visibility = ['PUBLIC'],
-  exported_deps = [
-    ':kryo',
-    ':reflectasm',
-    ':asm',
-    ':minlog',
-    ':objenesis',
-  ],
-)
-
-osgi_feature_group(
-  name = 'CLI',
-  visibility = ['PUBLIC'],
-  exported_deps = [
-    ':org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-  ],
-)
-
-osgi_feature_group(
-  name = 'REST',
-  visibility = ['PUBLIC'],
-  exported_deps = [
-    ':javax.ws.rs-api',
-    '//utils/rest:onlab-rest',
-  ],
-)
-
-osgi_feature_group(
-  name = 'ATOMIX',
-  visibility = ['PUBLIC'],
-  exported_deps = [
-    ':atomix',
-    ':atomix-cluster',
-    ':atomix-gossip',
-    ':atomix-primary-backup',
-    ':atomix-primitive',
-    ':atomix-raft',
-    ':atomix-storage',
-    ':atomix-utils',
-    ':typesafe-config',
-    ':classgraph',
-  ],
-)
-
-osgi_feature_group(
-  name = 'GRPC_1.3',
-  visibility = ['PUBLIC'],
-  exported_deps = [
-    ':grpc-protobuf-1.3.1',
-    ':grpc-stub-1.3.1',
-    ':grpc-netty-1.3.1',
-    ':grpc-auth-1.3.1',
-    ':grpc-context-1.3.1',
-    ':google-truth-0.28',
-  ],
-)
-
-osgi_feature_group(
-  name = 'GRPC_TEST_1.3',
-  visibility = ['PUBLIC'],
-  exported_deps = [
-    ':grpc-testing-1.3.1',
-    ':grpc-testing-proto-1.3.1',
-    ':google-code-findbugs-3.0.0',
-    ':google-errorprone-2.0.19',
-    ':google-instrumentation-0.3.0',
-    ':junit-dep',
-    ':objenesis',
-  ],
-)
-
-remote_jar (
-  name = 'aopalliance-repackaged',
-  out = 'aopalliance-repackaged-2.5.0-b42.jar',
-  url = 'mvn:org.glassfish.hk2.external:aopalliance-repackaged:jar:2.5.0-b42',
-  sha1 = 'e74beab6ca12e9e745eb47ca61729d9452b96f0c',
-  maven_coords = 'org.glassfish.hk2.external:aopalliance-repackaged:2.5.0-b42',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'amqp-client',
-  out = 'amqp-client-3.6.1.jar',
-  url = 'mvn:com.rabbitmq:amqp-client:jar:3.6.1',
-  sha1 = '089be4acfa8a0fa48a775a82d20632f90aecf10b',
-  maven_coords = 'com.rabbitmq:amqp-client:3.6.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'asm',
-  out = 'asm-5.0.4.jar',
-  url = 'mvn:org.ow2.asm:asm:jar:5.0.4',
-  sha1 = '0da08b8cce7bbf903602a25a3a163ae252435795',
-  maven_coords = 'org.ow2.asm:asm:5.0.4',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'atomix',
-  out = 'atomix-3.0.8.jar',
-  url = 'mvn:io.atomix:atomix:jar:3.0.8',
-  sha1 = '47c924c34b9f9651823fcbff35ac265d77127eab',
-  maven_coords = 'io.atomix:atomix:3.0.8',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'atomix-cluster',
-  out = 'atomix-cluster-3.0.8.jar',
-  url = 'mvn:io.atomix:atomix-cluster:jar:3.0.8',
-  sha1 = 'f7d8b4a5632e97aa08219b598dc25e1ff8f36e2b',
-  maven_coords = 'io.atomix:atomix-cluster:3.0.8',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'atomix-gossip',
-  out = 'atomix-gossip-3.0.8.jar',
-  url = 'mvn:io.atomix:atomix-gossip:jar:3.0.8',
-  sha1 = '88a2559754ef3421c0b6511ec5592ad436f5e0e7',
-  maven_coords = 'io.atomix:atomix-gossip:3.0.8',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'atomix-primary-backup',
-  out = 'atomix-primary-backup-3.0.8.jar',
-  url = 'mvn:io.atomix:atomix-primary-backup:jar:3.0.8',
-  sha1 = 'aed8c410541d119aae7daa0ed1fdd37837be1ee2',
-  maven_coords = 'io.atomix:atomix-primary-backup:3.0.8',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'atomix-primitive',
-  out = 'atomix-primitive-3.0.8.jar',
-  url = 'mvn:io.atomix:atomix-primitive:jar:3.0.8',
-  sha1 = '417be337c926c3a6ec59f22298be75e5c175294d',
-  maven_coords = 'io.atomix:atomix-primitive:3.0.8',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'atomix-raft',
-  out = 'atomix-raft-3.0.8.jar',
-  url = 'mvn:io.atomix:atomix-raft:jar:3.0.8',
-  sha1 = '350fc191c930441201161d1e6e0d8932c1159d99',
-  maven_coords = 'io.atomix:atomix-raft:3.0.8',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'atomix-storage',
-  out = 'atomix-storage-3.0.8.jar',
-  url = 'mvn:io.atomix:atomix-storage:jar:3.0.8',
-  sha1 = 'f59209fedde2ba80410c7eafd338899fff63f309',
-  maven_coords = 'io.atomix:atomix-storage:3.0.8',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'atomix-utils',
-  out = 'atomix-utils-3.0.8.jar',
-  url = 'mvn:io.atomix:atomix-utils:jar:3.0.8',
-  sha1 = 'de7eee162a52d5011f2d16eadc85b1d2678da9c2',
-  maven_coords = 'io.atomix:atomix-utils:3.0.8',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'classgraph',
-  out = 'classgraph-4.2.3.jar',
-  url = 'mvn:io.github.classgraph:classgraph:jar:4.2.3',
-  sha1 = '5c9bfb002097a6cf6c7134821954e24326db3a7b',
-  maven_coords = 'io.github.classgraph:classgraph:4.2.3',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'commons-codec',
-  out = 'commons-codec-1.10.jar',
-  url = 'mvn:commons-codec:commons-codec:jar:1.10',
-  sha1 = '4b95f4897fa13f2cd904aee711aeafc0c5295cd8',
-  maven_coords = 'commons-codec:commons-codec:1.10',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'commons-cli',
-  out = 'commons-cli-1.3.jar',
-  url = 'mvn:commons-cli:commons-cli:jar:1.3',
-  sha1 = 'a48653b6bcd06b5e61ed63739ca601701fcb6a6c',
-  maven_coords = 'commons-cli:commons-cli:1.3',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'commons-collections',
-  out = 'commons-collections-3.2.2.jar',
-  url = 'mvn:commons-collections:commons-collections:jar:3.2.2',
-  sha1 = '8ad72fe39fa8c91eaaf12aadb21e0c3661fe26d5',
-  maven_coords = 'commons-collections:commons-collections:3.2.2',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'commons-configuration',
-  out = 'commons-configuration-1.10.jar',
-  url = 'mvn:commons-configuration:commons-configuration:jar:1.10',
-  sha1 = '2b36e4adfb66d966c5aef2d73deb6be716389dc9',
-  maven_coords = 'commons-configuration:commons-configuration:1.10',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'commons-io',
-  out = 'commons-io-2.6.jar',
-  url = 'mvn:commons-io:commons-io:jar:2.6',
-  sha1 = '815893df5f31da2ece4040fe0a12fd44b577afaf',
-  maven_coords = 'commons-io:commons-io:2.6',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'commons-jxpath',
-  out = 'commons-jxpath-1.3.jar',
-  url = 'mvn:commons-jxpath:commons-jxpath:jar:1.3',
-  sha1 = 'c22d7d0f0f40eb7059a23cfa61773a416768b137',
-  maven_coords = 'commons-jxpath:commons-jxpath:1.3',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'commons-beanutils',
-  out = 'commons-beanutils-1.9.3.jar',
-  url = 'mvn:commons-beanutils:commons-beanutils:jar:1.9.3',
-  sha1 = 'c845703de334ddc6b4b3cd26835458cb1cba1f3d',
-  maven_coords = 'commons-beanutils:commons-beanutils:1.9.3',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'fast-classpath-scanner',
-  out = 'fast-classpath-scanner-2.21.jar',
-  url = 'mvn:io.github.lukehutch:fast-classpath-scanner:jar:2.21',
-  sha1 = '0cc8e22b412521480c89ac79194e82bd4471dd75',
-  maven_coords = 'io.github.lukehutch:fast-classpath-scanner:2.21',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jdom',
-  out = 'jdom-1.0.jar',
-  url = 'mvn:jdom:jdom:jar:1.0',
-  sha1 = 'a2ac1cd690ab4c80defe7f9bce14d35934c35cec',
-  maven_coords = 'jdom:jdom:jar:NON-OSGI:1.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'commons-lang',
-  out = 'commons-lang-2.6.jar',
-  url = 'mvn:commons-lang:commons-lang:jar:2.6',
-  sha1 = '0ce1edb914c94ebc388f086c6827e8bdeec71ac2',
-  maven_coords = 'commons-lang:commons-lang:2.6',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'commons-lang3',
-  out = 'commons-lang3-3.7.jar',
-  url = 'mvn:org.apache.commons:commons-lang3:jar:3.7',
-  sha1 = '557edd918fd41f9260963583ebf5a61a43a6b423',
-  maven_coords = 'org.apache.commons:commons-lang3:3.7',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'commons-logging',
-  out = 'commons-logging-1.2.jar',
-  url = 'mvn:commons-logging:commons-logging:jar:1.2',
-  sha1 = '4bfc12adfe4842bf07b657f0369c4cb522955686',
-  maven_coords = 'commons-logging:commons-logging:1.2',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'commons-math3',
-  out = 'commons-math3-3.6.1.jar',
-  url = 'mvn:org.apache.commons:commons-math3:jar:3.6.1',
-  sha1 = 'e4ba98f1d4b3c80ec46392f25e094a6a2e58fcbf',
-  maven_coords = 'org.apache.commons:commons-math3:3.6.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'commons-net',
-  out = 'commons-net-3.5.jar',
-  url = 'mvn:commons-net:commons-net:jar:3.5',
-  sha1 = '342fc284019f590e1308056990fdb24a08f06318',
-  maven_coords = 'commons-net:commons-net:3.5',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'commons-pool',
-  out = 'commons-pool-1.6.jar',
-  url = 'mvn:commons-pool:commons-pool:jar:1.6',
-  sha1 = '4572d589699f09d866a226a14b7f4323c6d8f040',
-  maven_coords = 'commons-pool:commons-pool:1.6',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'commons-text',
-  out = 'commons-text-1.3.jar',
-  url = 'mvn:org.apache.commons:commons-text:jar:1.3',
-  sha1 = '9abf61708a66ab5e55f6169a200dbfc584b546d9',
-  maven_coords = 'org.apache.commons:commons-text:1.3',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'concurrent-trees',
-  out = 'concurrent-trees-2.6.1.jar',
-  url = 'mvn:com.googlecode.concurrent-trees:concurrent-trees:jar:2.6.1',
-  sha1 = '9b647240522ab67c003de9b6702ca81ac0c15efc',
-  maven_coords = 'com.googlecode.concurrent-trees:concurrent-trees:2.6.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'easymock',
-  out = 'easymock-3.6.jar',
-  url = 'mvn:org.easymock:easymock:jar:3.6',
-  sha1 = '276883daaf2230e6f1e07c78ad695d2a18c7170b',
-  maven_coords = 'org.easymock:easymock:3.6',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'antlr',
-  out = 'antlr-2.7.7.jar',
-  url = 'mvn:antlr:antlr:jar:2.7.7',
-  sha1 = '83cd2cd674a217ade95a4bb83a8a14f351f48bd0',
-  maven_coords = 'antlr:antlr:jar:NON-OSGI:2.7.7',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'ganymed-ssh2',
-  out = 'ganymed-ssh2-262.jar',
-  url = 'mvn:ch.ethz.ganymed:ganymed-ssh2:jar:262',
-  sha1 = '7761dc665d0f6993dc846d914214fb93291e2bdf',
-  maven_coords = 'ch.ethz.ganymed:ganymed-ssh2:jar:NON-OSGI:262',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'gmetric4j',
-  out = 'gmetric4j-1.0.10.jar',
-  url = 'mvn:info.ganglia.gmetric4j:gmetric4j:jar:1.0.10',
-  sha1 = '3d62003123b586adb86cb028cc0f8a8c3a701d81',
-  maven_coords = 'info.ganglia.gmetric4j:gmetric4j:1.0.10',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'com_google_code_gson_gson',
-  out = 'gson-2.7.jar',
-  url = 'mvn:com.google.code.gson:gson:jar:2.7',
-  sha1 = '751f548c85fa49f330cecbb1875893f971b33c4e',
-  maven_coords = 'com.google.code.gson:gson:2.7',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'com_google_guava_guava',
-  out = 'guava-22.0.jar',
-  url = 'mvn:com.google.guava:guava:jar:22.0',
-  sha1 = '3564ef3803de51fb0530a8377ec6100b33b0d073',
-  maven_coords = 'com.google.guava:guava:22.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'com_google_guava_guava_testlib',
-  out = 'guava-testlib-22.0.jar',
-  url = 'mvn:com.google.guava:guava-testlib:jar:22.0',
-  sha1 = '3be1b88f1cfc6592acbcbfe1f3a420f79eb2b146',
-  maven_coords = 'com.google.guava:guava-testlib:jar:NON-OSGI:22.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'hamcrest-all',
-  out = 'hamcrest-all-1.3.jar',
-  url = 'mvn:org.hamcrest:hamcrest-all:jar:1.3',
-  sha1 = '63a21ebc981131004ad02e0434e799fd7f3a8d5a',
-  maven_coords = 'org.hamcrest:hamcrest-all:jar:NON-OSGI:1.3',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'hk2-api',
-  out = 'hk2-api-2.5.0-b42.jar',
-  url = 'mvn:org.glassfish.hk2:hk2-api:jar:2.5.0-b42',
-  sha1 = '7fd4e3d0f2cb37c80ad0dedee3f5ee69503eaf52',
-  maven_coords = 'org.glassfish.hk2:hk2-api:2.5.0-b42',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'hk2-locator',
-  out = 'hk2-locator-2.5.0-b42.jar',
-  url = 'mvn:org.glassfish.hk2:hk2-locator:jar:2.5.0-b42',
-  sha1 = '9d6edc0cb226401a8316e67d81bfc37cb626ef91',
-  maven_coords = 'org.glassfish.hk2:hk2-locator:2.5.0-b42',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'hk2-osgi-resource-locator',
-  out = 'osgi-resource-locator-1.0.1.jar',
-  url = 'mvn:org.glassfish.hk2:osgi-resource-locator:jar:1.0.1',
-  sha1 = '4ed2b2d4738aed5786cfa64cba5a332779c4c708',
-  maven_coords = 'org.glassfish.hk2:osgi-resource-locator:1.0.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'hk2-utils',
-  out = 'hk2-utils-2.5.0-b42.jar',
-  url = 'mvn:org.glassfish.hk2:hk2-utils:jar:2.5.0-b42',
-  sha1 = '102a344e1728825e865a8986d7605602aba3c3b6',
-  maven_coords = 'org.glassfish.hk2:hk2-utils:2.5.0-b42',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'httpclient-osgi',
-  out = 'httpclient-osgi-4.5.1.jar',
-  url = 'mvn:org.apache.httpcomponents:httpclient-osgi:jar:4.5.1',
-  sha1 = '0220a68ff36e5b0fa71b5dc0b1dc1d4ad2dcf524',
-  maven_coords = 'org.apache.httpcomponents:httpclient-osgi:4.5.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'httpcore-osgi',
-  out = 'httpcore-osgi-4.4.4.jar',
-  url = 'mvn:org.apache.httpcomponents:httpcore-osgi:jar:4.4.4',
-  sha1 = 'd5c14055e569afca96f4603d6f9d467bc72ccba8',
-  maven_coords = 'org.apache.httpcomponents:httpcore-osgi:4.4.4',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'influxdb-java',
-  out = 'influxdb-java-2.9.jar',
-  url = 'mvn:org.influxdb:influxdb-java:jar:2.9',
-  sha1 = '3c1c2b9b977d4ee67b2877eb89943add248a50db',
-  maven_coords = 'org.influxdb:influxdb-java:jar:NON-OSGI:2.9',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'simpleclient',
-  out = 'simpleclient-0.5.0.jar',
-  url = 'mvn:io.prometheus:simpleclient:jar:0.5.0',
-  sha1 = 'fbbfe2300098798e3d23f93b7b14befeceacf512',
-  maven_coords = 'io.prometheus:simpleclient:0.5.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'simpleclient_common',
-  out = 'simpleclient_common-0.5.0.jar',
-  url = 'mvn:io.prometheus:simpleclient_common:jar:0.5.0',
-  sha1 = 'bfd93082d7cf85c0543c2ccc286b96c817d1090c',
-  maven_coords = 'io.prometheus:simpleclient_common:0.5.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'simpleclient_hotspot',
-  out = 'simpleclient_hotspot-0.5.0.jar',
-  url = 'mvn:io.prometheus:simpleclient_hotspot:jar:0.5.0',
-  sha1 = '0f341cb84d6713255b1ce46c7593eee50a35d414',
-  maven_coords = 'io.prometheus:simpleclient_hotspot:0.5.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'simpleclient_servlet',
-  out = 'simpleclient_servlet-0.5.0.jar',
-  url = 'mvn:io.prometheus:simpleclient_servlet:jar:0.5.0',
-  sha1 = '28d75ee90a5c2ac70eeebb0864b15885116207a4',
-  maven_coords = 'io.prometheus:simpleclient_servlet:0.5.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'retrofit',
-  out = 'retrofit-2.3.0.jar',
-  url = 'mvn:com.squareup.retrofit2:retrofit:jar:2.3.0',
-  sha1 = 'bcacde6a8ccedcc56c127403d26b76072fe6214d',
-  maven_coords = 'com.squareup.retrofit2:retrofit:jar:NON-OSGI:2.3.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'converter-moshi',
-  out = 'converter-moshi-2.3.0.jar',
-  url = 'mvn:com.squareup.retrofit2:converter-moshi:jar:2.3.0',
-  sha1 = '6ad87c2038269d2574fcd90765ce15c74d6bb993',
-  maven_coords = 'com.squareup.retrofit2:converter-moshi:jar:NON-OSGI:2.3.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'okhttp',
-  out = 'okhttp-3.9.1.jar',
-  url = 'mvn:com.squareup.okhttp3:okhttp:jar:3.9.1',
-  sha1 = '84b4b7d1c4a238e7899972b7446c250691e65f1f',
-  maven_coords = 'com.squareup.okhttp3:okhttp:jar:NON-OSGI:3.9.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'logging-interceptor',
-  out = 'logging-interceptor-3.9.1.jar',
-  url = 'mvn:com.squareup.okhttp3:logging-interceptor:jar:3.9.1',
-  sha1 = '36e71ab9e903fc4d1b4a58d80572a91d9fd60caf',
-  maven_coords = 'com.squareup.okhttp3:logging-interceptor:jar:NON-OSGI:3.9.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'moshi',
-  out = 'moshi-1.4.0.jar',
-  url = 'mvn:com.squareup.moshi:moshi:jar:1.4.0',
-  sha1 = 'd67ad038adfd55dc276488a54f4944dfae5ff8ec',
-  maven_coords = 'com.squareup.moshi:moshi:jar:NON-OSGI:1.4.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'okio',
-  out = 'okio-1.14.0.jar',
-  url = 'mvn:com.squareup.okio:okio:jar:1.14.0',
-  sha1 = '102d7be47241d781ef95f1581d414b0943053130',
-  maven_coords = 'com.squareup.okio:okio:jar:NON-OSGI:1.14.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jackson-annotations',
-  out = 'jackson-annotations-2.9.5.jar',
-  url = 'mvn:com.fasterxml.jackson.core:jackson-annotations:jar:2.9.5',
-  sha1 = '9056ec9db21c57d43219a84bb18c129ae51c6a5d',
-  maven_coords = 'com.fasterxml.jackson.core:jackson-annotations:2.9.5',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jackson-core',
-  out = 'jackson-core-2.9.5.jar',
-  url = 'mvn:com.fasterxml.jackson.core:jackson-core:jar:2.9.5',
-  sha1 = 'a22ac51016944b06fd9ffbc9541c6e7ce5eea117',
-  maven_coords = 'com.fasterxml.jackson.core:jackson-core:2.9.5',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jackson-databind',
-  out = 'jackson-databind-2.9.5.jar',
-  url = 'mvn:com.fasterxml.jackson.core:jackson-databind:jar:2.9.5',
-  sha1 = '3490508379d065fe3fcb80042b62f630f7588606',
-  maven_coords = 'com.fasterxml.jackson.core:jackson-databind:2.9.5',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'javax.annotation-api-mvn',
-  out = 'javax.annotation-api-1.2.jar',
-  url = 'mvn:javax.annotation:javax.annotation-api:jar:1.2',
-  sha1 = '479c1e06db31c432330183f5cae684163f186146',
-  maven_coords = 'javax.annotation:javax.annotation-api:1.2',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'javax.inject',
-  out = 'javax.inject-2.5.0-b42.jar',
-  url = 'mvn:org.glassfish.hk2.external:javax.inject:jar:2.5.0-b42',
-  sha1 = '98e0b7dcef77dc04809f0603868140a1c60bea71',
-  maven_coords = 'org.glassfish.hk2.external:javax.inject:2.5.0-b42',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'javax.ws.rs-api',
-  out = 'javax.ws.rs-api-2.1.jar',
-  url = 'mvn:javax.ws.rs:javax.ws.rs-api:jar:2.1',
-  sha1 = '426a0862406536e690c7caa8bb6ed32191986fac',
-  maven_coords = 'javax.ws.rs:javax.ws.rs-api:2.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jersey-client',
-  out = 'jersey-client-2.26.jar',
-  url = 'mvn:org.glassfish.jersey.core:jersey-client:jar:2.26',
-  sha1 = '125b8d1040d121a5dc4ce6858e21a6160bed7afa',
-  maven_coords = 'org.glassfish.jersey.core:jersey-client:2.26',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jersey-security',
-  out = 'oauth2-client-2.26.jar',
-  url = 'mvn:org.glassfish.jersey.security:oauth2-client:jar:2.26',
-  sha1 = '968e1d99c9460e29bdb447114fa8440c3dbafb14',
-  maven_coords = 'org.glassfish.jersey.security:oauth2-client:jar:NON-OSGI:2.26',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jersey-common',
-  out = 'jersey-common-2.26.jar',
-  url = 'mvn:org.glassfish.jersey.core:jersey-common:jar:2.26',
-  sha1 = 'd96475745c5e72cafcbc4dc9e2e725f4d9683f21',
-  maven_coords = 'org.glassfish.jersey.core:jersey-common:2.26',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jersey-container-jetty-http',
-  out = 'jersey-container-jetty-http-2.26.jar',
-  url = 'mvn:org.glassfish.jersey.containers:jersey-container-jetty-http:jar:2.26',
-  sha1 = 'c20d58ceb1a5d98aad2b2032ca200403622fe9d6',
-  maven_coords = 'org.glassfish.jersey.containers:jersey-container-jetty-http:2.26',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jersey-container-servlet',
-  out = 'jersey-container-servlet-2.26.jar',
-  url = 'mvn:org.glassfish.jersey.containers:jersey-container-servlet:jar:2.26',
-  sha1 = '8723d05d1fe2fdda54d0921836ea5daa5abe5f00',
-  maven_coords = 'org.glassfish.jersey.containers:jersey-container-servlet:2.26',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jersey-container-servlet-core',
-  out = 'jersey-container-servlet-core-2.26.jar',
-  url = 'mvn:org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.26',
-  sha1 = '66a0d51facf1e49e2353ff0d2a2d4a9e2fa3f836',
-  maven_coords = 'org.glassfish.jersey.containers:jersey-container-servlet-core:2.26',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jersey-media-multipart',
-  out = 'jersey-media-multipart-2.26.jar',
-  url = 'mvn:org.glassfish.jersey.media:jersey-media-multipart:jar:2.26',
-  sha1 = 'c7ea0a5819e4688317024c9f4b6e3de54f9d0f3d',
-  maven_coords = 'org.glassfish.jersey.media:jersey-media-multipart:2.26',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jersey-media-sse',
-  out = 'jersey-media-sse-2.26.jar',
-  url = 'mvn:org.glassfish.jersey.media:jersey-media-sse:jar:2.26',
-  sha1 = '61cfeb0df911585140f64f3369eb524e0e02f534',
-  maven_coords = 'org.glassfish.jersey.media:jersey-media-sse:2.26',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jersey-server',
-  out = 'jersey-server-2.26.jar',
-  url = 'mvn:org.glassfish.jersey.core:jersey-server:jar:2.26',
-  sha1 = 'aa8eff3d591641dadd7c9880bb73b59bf46d4c82',
-  maven_coords = 'org.glassfish.jersey.core:jersey-server:2.26',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jersey-hk2',
-  out = 'jersey-hk2-2.26.jar',
-  url = 'mvn:org.glassfish.jersey.inject:jersey-hk2:jar:2.26',
-  sha1 = 'df27f7d7577acf4b532684448021632098924dab',
-  maven_coords = 'org.glassfish.jersey.inject:jersey-hk2:2.26',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jersey-test-framework-core',
-  out = 'jersey-test-framework-core-2.26.jar',
-  url = 'mvn:org.glassfish.jersey.test-framework:jersey-test-framework-core:jar:2.26',
-  sha1 = '92698666ae89db58074001a34f09b8233ef5effa',
-  maven_coords = 'org.glassfish.jersey.test-framework:jersey-test-framework-core:jar:NON-OSGI:2.26',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jersey-test-framework-jetty',
-  out = 'jersey-test-framework-provider-jetty-2.26.jar',
-  url = 'mvn:org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-jetty:jar:2.26',
-  sha1 = '6be06684283e7c90036d9e24f7793fd8bbb04f6a',
-  maven_coords = 'org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-jetty:jar:NON-OSGI:2.26',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jetty-util',
-  out = 'jetty-util-9.2.21.v20170120.jar',
-  url = 'mvn:org.eclipse.jetty:jetty-util:jar:9.2.21.v20170120',
-  sha1 = '58d9c3a134dc6d6d84b555758015ab3585b88464',
-  maven_coords = 'org.eclipse.jetty:jetty-util:9.2.21.v20170120',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jetty-websocket',
-  out = 'jetty-websocket-8.1.19.v20160209.jar',
-  url = 'mvn:org.eclipse.jetty:jetty-websocket:jar:8.1.19.v20160209',
-  sha1 = 'a423ddda13e52a65d604320472af598ca7122a60',
-  maven_coords = 'org.eclipse.jetty:jetty-websocket:8.1.19.v20160209',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jetty-server',
-  out = 'jetty-server-9.2.21.v20170120.jar',
-  url = 'mvn:org.eclipse.jetty:jetty-server:jar:9.2.21.v20170120',
-  sha1 = 'bdf6a2d58f878652e4b8c3af913e9c56b995e87d',
-  maven_coords = 'org.eclipse.jetty:jetty-server:9.2.21.v20170120',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jetty-servlet',
-  out = 'jetty-servlet-9.2.26.v20180806.jar',
-  url = 'mvn:org.eclipse.jetty:jetty-servlet:jar:9.2.26.v20180806',
-  sha1 = '7d54ae4579454d9df2c3324de7eddfbd81ffb8cc',
-  maven_coords = 'org.eclipse.jetty:jetty-servlet:9.2.26.v20180806',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jetty-security',
-  out = 'jetty-security-9.2.21.v20170120.jar',
-  url = 'mvn:org.eclipse.jetty:jetty-security:jar:9.2.21.v20170120',
-  sha1 = 'ceb39cd058fa22172c6e7ef493af90891e701f23',
-  maven_coords = 'org.eclipse.jetty:jetty-security:9.2.21.v20170120',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jetty-continuation',
-  out = 'jetty-continuation-9.2.21.v20170120.jar',
-  url = 'mvn:org.eclipse.jetty:jetty-continuation:jar:9.2.21.v20170120',
-  sha1 = '38c35ef850d508aa0fae450eee72d784a5dd2d06',
-  maven_coords = 'org.eclipse.jetty:jetty-continuation:9.2.21.v20170120',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jetty-http',
-  out = 'jetty-http-9.2.21.v20170120.jar',
-  url = 'mvn:org.eclipse.jetty:jetty-http:jar:9.2.21.v20170120',
-  sha1 = '24c5a91c48cfd73b863962ec36ba4dc2bb6552ea',
-  maven_coords = 'org.eclipse.jetty:jetty-http:9.2.21.v20170120',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jetty-io',
-  out = 'jetty-io-9.2.21.v20170120.jar',
-  url = 'mvn:org.eclipse.jetty:jetty-io:jar:9.2.21.v20170120',
-  sha1 = 'a25222b557823b59a7b6d121f951926be20cff85',
-  maven_coords = 'org.eclipse.jetty:jetty-io:9.2.21.v20170120',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'javax.servlet-api',
-  out = 'javax.servlet-api-3.1.0.jar',
-  url = 'mvn:javax.servlet:javax.servlet-api:jar:3.1.0',
-  sha1 = '3cd63d075497751784b2fa84be59432f4905bf7c',
-  maven_coords = 'javax.servlet:javax.servlet-api:3.1.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'joda-time',
-  out = 'joda-time-2.9.3.jar',
-  url = 'mvn:joda-time:joda-time:jar:2.9.3',
-  sha1 = '9e46be514a4ed60bcfbaaba88a3c668cf30476ab',
-  maven_coords = 'joda-time:joda-time:2.9.3',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jsch',
-  out = 'jsch-0.1.53.jar',
-  url = 'mvn:com.jcraft:jsch:jar:0.1.53',
-  sha1 = '658b682d5c817b27ae795637dfec047c63d29935',
-  maven_coords = 'com.jcraft:jsch:jar:NON-OSGI:0.1.53',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'com_google_code_findbugs_jsr305',
-  out = 'jsr305-3.0.1.jar',
-  url = 'mvn:com.google.code.findbugs:jsr305:jar:3.0.1',
-  sha1 = 'f7be08ec23c21485b9b5a1cf1654c2ec8c58168d',
-  maven_coords = 'com.google.code.findbugs:jsr305:3.0.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'junit',
-  out = 'junit-4.12.jar',
-  url = 'mvn:junit:junit:jar:4.12',
-  sha1 = '2973d150c0dc1fefe998f834810d68f278ea58ec',
-  maven_coords = 'junit:junit:jar:NON-OSGI:4.12',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'junit-dep',
-  out = 'junit-4.10.jar',
-  url = 'mvn:junit:junit:jar:4.10',
-  sha1 = 'e4f1766ce7404a08f45d859fb9c226fc9e41a861',
-  maven_coords = 'junit:junit:jar:NON-OSGI:4.10',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'kryo',
-  out = 'kryo-4.0.1.jar',
-  url = 'mvn:com.esotericsoftware:kryo:jar:4.0.1',
-  sha1 = '5053899c213a6ce50a800d4902c5a9de49fe0098',
-  maven_coords = 'com.esotericsoftware:kryo:4.0.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'mapdb',
-  out = 'mapdb-1.0.9.jar',
-  url = 'mvn:org.mapdb:mapdb:jar:1.0.9',
-  sha1 = 'f8df5e15778eb3e88c03b77aca70c318c6b7c9d0',
-  maven_coords = 'org.mapdb:mapdb:1.0.9',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'metrics-core',
-  out = 'metrics-core-3.2.2.jar',
-  url = 'mvn:io.dropwizard.metrics:metrics-core:jar:3.2.2',
-  sha1 = 'cd9886f498ee2ab2d994f0c779e5553b2c450416',
-  maven_coords = 'io.dropwizard.metrics:metrics-core:3.2.2',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'metrics-ganglia',
-  out = 'metrics-ganglia-3.2.2.jar',
-  url = 'mvn:io.dropwizard.metrics:metrics-ganglia:jar:3.2.2',
-  sha1 = 'd5bb1883e9b0daf0e4187e558746f5058f4585c1',
-  maven_coords = 'io.dropwizard.metrics:metrics-ganglia:3.2.2',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'metrics-graphite',
-  out = 'metrics-graphite-3.2.2.jar',
-  url = 'mvn:io.dropwizard.metrics:metrics-graphite:jar:3.2.2',
-  sha1 = '908e8cbec1bbdb2f4023334e424c7de2832a95af',
-  maven_coords = 'io.dropwizard.metrics:metrics-graphite:3.2.2',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'metrics-influxdb',
-  out = 'metrics-influxdb-1.1.1.jar',
-  url = 'mvn:com.izettle:metrics-influxdb:jar:1.1.1',
-  sha1 = 'a911d778c2f8607dd4e7a4cdb9b0cd97adcd0343',
-  maven_coords = 'com.izettle:metrics-influxdb:jar:NON-OSGI:1.1.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'metrics-json',
-  out = 'metrics-json-3.2.2.jar',
-  url = 'mvn:io.dropwizard.metrics:metrics-json:jar:3.2.2',
-  sha1 = '234612b9739a651eb2b71a8f9e9c4d11d7ccf849',
-  maven_coords = 'io.dropwizard.metrics:metrics-json:3.2.2',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'minimal-json',
-  out = 'minimal-json-0.9.4.jar',
-  url = 'mvn:com.eclipsesource.minimal-json:minimal-json:jar:0.9.4',
-  sha1 = 'd6e7dd22569de97c2697a4af301a623f35028972',
-  maven_coords = 'com.eclipsesource.minimal-json:minimal-json:0.9.4',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'minlog',
-  out = 'minlog-1.3.0.jar',
-  url = 'mvn:com.esotericsoftware:minlog:jar:1.3.0',
-  sha1 = 'ff07b5f1b01d2f92bb00a337f9a94873712f0827',
-  maven_coords = 'com.esotericsoftware:minlog:1.3.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'io_netty_netty',
-  out = 'netty-3.10.5.Final.jar',
-  url = 'mvn:io.netty:netty:jar:3.10.5.Final',
-  sha1 = '9ca7d55d246092bddd29b867706e2f6c7db701a0',
-  maven_coords = 'io.netty:netty:3.10.5.Final',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'io_netty_netty_buffer',
-  out = 'netty-buffer-4.1.27.Final.jar',
-  url = 'mvn:io.netty:netty-buffer:jar:4.1.27.Final',
-  sha1 = 'aafe2b9fb0d8f3b200cf10b9fd6486c6a722d7a1',
-  maven_coords = 'io.netty:netty-buffer:4.1.27.Final',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'io_netty_netty_codec',
-  out = 'netty-codec-4.1.27.Final.jar',
-  url = 'mvn:io.netty:netty-codec:jar:4.1.27.Final',
-  sha1 = 'd2653d78ebaa650064768fb26b10051f5c8efb2c',
-  maven_coords = 'io.netty:netty-codec:4.1.27.Final',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'io_netty_netty_common',
-  out = 'netty-common-4.1.27.Final.jar',
-  url = 'mvn:io.netty:netty-common:jar:4.1.27.Final',
-  sha1 = '6a12a969c27fb37b230c4bde5a67bd822fa6b7a4',
-  maven_coords = 'io.netty:netty-common:4.1.27.Final',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'io_netty_netty_handler',
-  out = 'netty-handler-4.1.27.Final.jar',
-  url = 'mvn:io.netty:netty-handler:jar:4.1.27.Final',
-  sha1 = '21bd9cf565390a8d72579b8664303e3c175dfc6a',
-  maven_coords = 'io.netty:netty-handler:4.1.27.Final',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'io_netty_netty_handler_proxy',
-  out = 'netty-handler-proxy-4.1.27.Final.jar',
-  url = 'mvn:io.netty:netty-handler-proxy:jar:4.1.27.Final',
-  sha1 = '1a822ce7760bc6eb4937b7e448c9e081fedcc807',
-  maven_coords = 'io.netty:netty-handler-proxy:4.1.27.Final',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'io_netty_netty_transport',
-  out = 'netty-transport-4.1.27.Final.jar',
-  url = 'mvn:io.netty:netty-transport:jar:4.1.27.Final',
-  sha1 = 'b5c2da3ea89dd67320925f1504c9eb3615241b7c',
-  maven_coords = 'io.netty:netty-transport:4.1.27.Final',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'io_netty_netty_transport_native_unix_common',
-  out = 'netty-transport-native-unix-common-4.1.27.Final.jar',
-  url = 'mvn:io.netty:netty-transport-native-unix-common:jar:4.1.27.Final',
-  sha1 = '2b0667fe5c1df78c6cfbf9d53ad8b1fb533fb8e8',
-  maven_coords = 'io.netty:netty-transport-native-unix-common:4.1.27.Final',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'io_netty_netty_transport-native-epoll',
-  out = 'netty-transport-native-epoll-4.1.27.Final.jar',
-  url = 'mvn:io.netty:netty-transport-native-epoll:jar:4.1.27.Final',
-  sha1 = 'addbd481940a3cce57cb5736ecef5db909b7b5d0',
-  maven_coords = 'io.netty:netty-transport-native-epoll:4.1.27.Final',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'io_netty_netty_resolver',
-  out = 'netty-resolver-4.1.27.Final.jar',
-  url = 'mvn:io.netty:netty-resolver:jar:4.1.27.Final',
-  sha1 = '2536447ef9605ccb2b5203aa22392c6514484ea9',
-  maven_coords = 'io.netty:netty-resolver:4.1.27.Final',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'io_netty_netty_codec-http2',
-  out = 'netty-codec-http2-4.1.27.Final.jar',
-  url = 'mvn:io.netty:netty-codec-http2:jar:4.1.27.Final',
-  sha1 = '3769790a2033667d663f9a526d5b63cfecdbdf4e',
-  maven_coords = 'io.netty:netty-codec-http2:4.1.27.Final',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'io_netty_netty_codec-http',
-  out = 'netty-codec-http-4.1.27.Final.jar',
-  url = 'mvn:io.netty:netty-codec-http:jar:4.1.27.Final',
-  sha1 = 'a1722d6bcbbef1c4c7877e8bf38b07a3db5ed07f',
-  maven_coords = 'io.netty:netty-codec-http:4.1.27.Final',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'io_netty_netty_codec-socks',
-  out = 'netty-codec-socks-4.1.27.Final.jar',
-  url = 'mvn:io.netty:netty-codec-socks:jar:4.1.27.Final',
-  sha1 = '285b09af98764cf02e4b77b3d95af188469a7133',
-  maven_coords = 'io.netty:netty-codec-socks:4.1.27.Final',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'objenesis',
-  out = 'objenesis-2.6.jar',
-  url = 'mvn:org.objenesis:objenesis:jar:2.6',
-  sha1 = '639033469776fd37c08358c6b92a4761feb2af4b',
-  maven_coords = 'org.objenesis:objenesis:2.6',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'openflowj',
-  out = 'openflowj-3.2.1.onos.jar',
-  url = 'mvn:org.onosproject:openflowj:jar:3.2.1.onos',
-  sha1 = '66544b285cddc8d53485107310f07b7bc90ac63b',
-  maven_coords = 'org.onosproject:openflowj:3.2.1.onos',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'org.apache.felix.framework.security',
-  out = 'org.apache.felix.framework.security-2.2.0.onos.jar',
-  url = 'mvn:org.onosproject:org.apache.felix.framework.security:jar:2.2.0.onos',
-  sha1 = '5d39a4ff4a5d3daec8c404789d398c780151de8c',
-  maven_coords = 'org.onosproject:org.apache.felix.framework.security:2.2.0.onos',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'org.apache.felix.scr',
-  out = 'org.apache.felix.scr-1.8.2.jar',
-  url = 'mvn:org.apache.felix:org.apache.felix.scr:jar:1.8.2',
-  sha1 = 'c3047d56ee57de0752821fd9c3894dda664f2e37',
-  maven_coords = 'org.apache.felix:org.apache.felix.scr:1.8.2',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'org.apache.felix.scr.annotations',
-  out = 'org.apache.felix.scr.annotations-1.9.12.jar',
-  url = 'mvn:org.apache.felix:org.apache.felix.scr.annotations:jar:1.9.12',
-  sha1 = '5fdc34da641dda8b9165c2be93211479a186da9c',
-  maven_coords = 'org.apache.felix:org.apache.felix.scr.annotations:jar:NON-OSGI:1.9.12',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'org.apache.karaf.features.core',
-  out = 'org.apache.karaf.features.core-3.0.8.jar',
-  url = 'mvn:org.apache.karaf.features:org.apache.karaf.features.core:jar:3.0.8',
-  sha1 = '4a8bf5dbe10e120158cb69295388274f834ae37a',
-  maven_coords = 'org.apache.karaf.features:org.apache.karaf.features.core:3.0.8',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'org.apache.karaf.shell.console',
-  out = 'org.apache.karaf.shell.console-3.0.8.jar',
-  url = 'mvn:org.apache.karaf.shell:org.apache.karaf.shell.console:jar:3.0.8',
-  sha1 = '5bf3e409d2e73bef560face9740b8c1234909b83',
-  maven_coords = 'org.apache.karaf.shell:org.apache.karaf.shell.console:3.0.8',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'org.apache.httpcomponents.httpasyncclient-osgi',
-  out = 'httpasyncclient-osgi-4.1.2.jar',
-  url = 'mvn:org.apache.httpcomponents:httpasyncclient-osgi:jar:4.1.2',
-  sha1 = '17eccd8d9f2803ee95e80ee8283155432600e17b',
-  maven_coords = 'org.apache.httpcomponents:httpasyncclient-osgi:4.1.2',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'org.apache.httpcomponents.httpcore-nio',
-  out = 'httpcore-nio-4.4.4.jar',
-  url = 'mvn:org.apache.httpcomponents:httpcore-nio:jar:4.4.4',
-  sha1 = '16badfc2d99db264c486ba8c57ae577301a58bd9',
-  maven_coords = 'org.apache.httpcomponents:httpcore-nio:jar:NON-OSGI:4.4.4',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'org.apache.karaf.jaas',
-  out = 'org.apache.karaf.jaas.modules-3.0.8.jar',
-  url = 'mvn:org.apache.karaf.jaas:org.apache.karaf.jaas.modules:jar:3.0.8',
-  sha1 = 'e4c97dac488898af1dda2b2cbf5b66318339cd29',
-  maven_coords = 'org.apache.karaf.jaas:org.apache.karaf.jaas.modules:3.0.8',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'org.apache.karaf.system.core',
-  out = 'org.apache.karaf.system.core-3.0.8.jar',
-  url = 'mvn:org.apache.karaf.system:org.apache.karaf.system.core:jar:3.0.8',
-  sha1 = '80378de4aeae603889d3408489ff5b9918e6064c',
-  maven_coords = 'org.apache.karaf.system:org.apache.karaf.system.core:3.0.8',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'org.apache.servicemix.bundles.snmp4j',
-  out = 'org.apache.servicemix.bundles.snmp4j-2.3.4_1.jar',
-  url = 'mvn:org.apache.servicemix.bundles:org.apache.servicemix.bundles.snmp4j:jar:2.3.4_1',
-  sha1 = '5134e0b60a6d88b26fe4dec03488efe4f2463e65',
-  maven_coords = 'org.apache.servicemix.bundles:org.apache.servicemix.bundles.snmp4j:2.3.4_1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'org.osgi.compendium',
-  out = 'org.osgi.compendium-5.0.0.jar',
-  url = 'mvn:org.osgi:org.osgi.compendium:jar:5.0.0',
-  sha1 = '9d7a9c35591f6fa1c98ac85af32775c12361aee4',
-  maven_coords = 'org.osgi:org.osgi.compendium:5.0.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'osgi-core',
-  out = 'org.osgi.core-5.0.0.jar',
-  url = 'mvn:org.osgi:org.osgi.core:jar:5.0.0',
-  sha1 = '6e5e8cd3c9059c08e1085540442a490b59a7783c',
-  maven_coords = 'org.osgi:org.osgi.core:5.0.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'reflectasm',
-  out = 'reflectasm-1.11.0.jar',
-  url = 'mvn:com.esotericsoftware:reflectasm:jar:1.11.0',
-  sha1 = 'f747d8b017a26bac575f8da14e8c1df6aecd3154',
-  maven_coords = 'com.esotericsoftware:reflectasm:1.11.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'remotetea-oncrpc',
-  out = 'remotetea-oncrpc-1.1.3.jar',
-  url = 'mvn:org.acplt.remotetea:remotetea-oncrpc:jar:1.1.3',
-  sha1 = '2f7d94c5179b0267a882259a03a83eaa320cbcce',
-  maven_coords = 'org.acplt.remotetea:remotetea-oncrpc:1.1.3',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'rrd4j',
-  out = 'rrd4j-3.1.jar',
-  url = 'mvn:org.rrd4j:rrd4j:jar:3.1',
-  sha1 = 'e533553fbf52f241dcb0c468b2052a3814dd6722',
-  maven_coords = 'org.rrd4j:rrd4j:jar:NON-OSGI:3.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'javassist',
-  out = 'javassist-3.22.0-GA.jar',
-  url = 'mvn:org.javassist:javassist:jar:3.22.0-GA',
-  sha1 = '3e83394258ae2089be7219b971ec21a8288528ad',
-  maven_coords = 'org.javassist:javassist:3.22.0-GA',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'mimepull',
-  out = 'mimepull-1.9.6.jar',
-  url = 'mvn:org.jvnet.mimepull:mimepull:jar:1.9.6',
-  sha1 = '41c913d791e16f93bc712a8c8a30bb64daa2e9bd',
-  maven_coords = 'org.jvnet.mimepull:mimepull:1.9.6',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'servlet-api',
-  out = 'servlet-api-2.5.jar',
-  url = 'mvn:javax.servlet:servlet-api:jar:2.5',
-  sha1 = '5959582d97d8b61f4d154ca9e495aafd16726e34',
-  maven_coords = 'javax.servlet:servlet-api:jar:NON-OSGI:2.5',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'slf4j-api',
-  out = 'slf4j-api-1.7.25.jar',
-  url = 'mvn:org.slf4j:slf4j-api:jar:1.7.25',
-  sha1 = 'da76ca59f6a57ee3102f8f9bd9cee742973efa8a',
-  maven_coords = 'org.slf4j:slf4j-api:1.7.25',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'slf4j-jdk14',
-  out = 'slf4j-jdk14-1.7.25.jar',
-  url = 'mvn:org.slf4j:slf4j-jdk14:jar:1.7.25',
-  sha1 = 'bccda40ebc8067491b32a88f49615a747d20082d',
-  maven_coords = 'org.slf4j:slf4j-jdk14:1.7.25',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'slf4j-nop',
-  out = 'slf4j-nop-1.7.25.jar',
-  url = 'mvn:org.slf4j:slf4j-nop:jar:1.7.25',
-  sha1 = '8c7708c79afec923de8957b7d4f90177628b9fcd',
-  maven_coords = 'org.slf4j:slf4j-nop:1.7.25',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'typesafe-config',
-  out = 'config-1.3.2.jar',
-  url = 'mvn:com.typesafe:config:jar:1.3.2',
-  sha1 = 'd6ac0ce079f114adce620f2360c92a70b2cb36dc',
-  maven_coords = 'com.typesafe:config:1.3.2',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'validation-api',
-  out = 'validation-api-1.1.0.Final.jar',
-  url = 'mvn:javax.validation:validation-api:jar:1.1.0.Final',
-  sha1 = '8613ae82954779d518631e05daa73a6a954817d5',
-  maven_coords = 'javax.validation:validation-api:1.1.0.Final',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'checkstyle',
-  out = 'checkstyle-8.10.jar',
-  url = 'mvn:com.puppycrawl.tools:checkstyle:jar:8.10',
-  sha1 = 'd7cd09c4d1240b3acc3041fcb47fd74ae351698b',
-  maven_coords = 'com.puppycrawl.tools:checkstyle:jar:NON-OSGI:8.10',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_file (
-  name = 'apache-karaf',
-  out = 'apache-karaf-offline-3.0.8.tar.gz',
-  url = 'http://repo1.maven.org/maven2/org/onosproject/apache-karaf-offline/3.0.8/apache-karaf-offline-3.0.8.tar.gz',
-  sha1 = '2503c5853285e3414da15aef8d8f3f629747c927',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_file (
-  name = 'apache-karaf-patches',
-  out = 'onos-apache-karaf-patches-3.0.8.tar.gz',
-  url = 'http://repo1.maven.org/maven2/org/onosproject/onos-apache-karaf-patches/3.0.8/onos-apache-karaf-patches-3.0.8.tar.gz',
-  sha1 = 'be5d620a2c4f4c5faa520d2c1b949ad0cc29c84f',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'bndlib',
-  out = 'biz.aQute.bndlib-4.0.0.jar',
-  url = 'mvn:biz.aQute.bnd:biz.aQute.bndlib:jar:4.0.0',
-  sha1 = '21e1d6fd1874d9bc201f2de1d0a48e84bff4149d',
-  maven_coords = 'biz.aQute.bnd:biz.aQute.bndlib:4.0.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'bndexe',
-  out = 'biz.aQute.bnd-4.0.0.jar',
-  url = 'mvn:biz.aQute.bnd:biz.aQute.bnd:jar:4.0.0',
-  sha1 = 'fa7746eb710852498ce1afe5227be3fbfddaf09e',
-  maven_coords = 'biz.aQute.bnd:biz.aQute.bnd:4.0.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'libthrift',
-  out = 'libthrift-0.11.0.jar',
-  url = 'mvn:org.apache.thrift:libthrift:jar:0.11.0',
-  sha1 = '4f4f1c1fbbae63258625dea71007fa41bee7edb3',
-  maven_coords = 'org.apache.thrift:libthrift:0.11.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'qdox',
-  out = 'qdox-2.0-M3.jar',
-  url = 'mvn:com.thoughtworks.qdox:qdox:jar:2.0-M3',
-  sha1 = 'f1e9ac82735dc3f2afc38cc051ae0e405f367434',
-  maven_coords = 'com.thoughtworks.qdox:qdox:jar:NON-OSGI:2.0-M3',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'org.apache.felix.scr.bnd',
-  out = 'org.apache.felix.scr.bnd-1.4.1-20160328.235003-2.jar',
-  url = 'https://oss.sonatype.org/content/repositories/snapshots/org/onosproject/org.apache.felix.scr.bnd/1.4.1-SNAPSHOT/org.apache.felix.scr.bnd-1.4.1-20160328.235003-2.jar',
-  sha1 = '607cac6eaba5b0eb0787a343b83fe535c42c09aa',
-  maven_coords = 'org.onosproject:org.apache.felix.scr.bnd:1.4.1-SNAPSHOT',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'snmp-core',
-  out = 'snmp-core-1.3-20161021.1.jar',
-  url = 'mvn:org.onosproject:snmp-core:jar:1.3-20161021.1',
-  sha1 = '65e1b71d9d0e2fc60c45f631decdb41da3253778',
-  maven_coords = 'org.onosproject:snmp-core:1.3-20161021.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'mibs-net-snmp',
-  out = 'mibbler-mibs-net-snmp-1.0-20151221.1.jar',
-  url = 'mvn:org.onosproject:mibbler-mibs-net-snmp:jar:1.0-20151221.1',
-  sha1 = 'd2cb918e46f06d4ee764d4a96b2b6fb0ba9bc60c',
-  maven_coords = 'org.onosproject:mibbler-mibs-net-snmp:1.0-20151221.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'mibs-rfc',
-  out = 'mibbler-mibs-rfc-1.0-20151221.1.jar',
-  url = 'mvn:org.onosproject:mibbler-mibs-rfc:jar:1.0-20151221.1',
-  sha1 = '06ac2a3bf48c79ab444a9deede9d554ccd355a16',
-  maven_coords = 'org.onosproject:mibbler-mibs-rfc:1.0-20151221.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'io.socket-client',
-  out = 'socket.io-client-0.8.3.jar',
-  url = 'mvn:io.socket:socket.io-client:jar:0.8.3',
-  sha1 = 'b30500232ff0668a47c9f91f02e6935457a52fb5',
-  maven_coords = 'io.socket:socket.io-client:jar:NON-OSGI:0.8.3',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'json',
-  out = 'json-20090211.jar',
-  url = 'mvn:org.json:json:jar:20090211',
-  sha1 = 'c183aa3a2a6250293808bba12262c8920ce5a51c',
-  maven_coords = 'org.json:json:jar:NON-OSGI:20090211',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'engine.io-client',
-  out = 'engine.io-client-0.8.3.jar',
-  url = 'mvn:io.socket:engine.io-client:jar:0.8.3',
-  sha1 = '854b49396e1e9f9bb0ab025062ddb49c4ed65ca1',
-  maven_coords = 'io.socket:engine.io-client:jar:NON-OSGI:0.8.3',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'com_google_api_grpc_proto_google_common_protos',
-  out = 'proto-google-common-protos-1.0.0.jar',
-  url = 'mvn:com.google.api.grpc:proto-google-common-protos:jar:1.0.0',
-  sha1 = '86f070507e28b930e50d218ee5b6788ef0dd05e6',
-  maven_coords = 'com.google.api.grpc:proto-google-common-protos:jar:NON-OSGI:1.0.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'com_google_errorprone_error_prone_annotations',
-  out = 'error_prone_annotations-2.1.2.jar',
-  url = 'mvn:com.google.errorprone:error_prone_annotations:jar:2.1.2',
-  sha1 = '6dcc08f90f678ac33e5ef78c3c752b6f59e63e0c',
-  maven_coords = 'com.google.errorprone:error_prone_annotations:jar:NON-OSGI:2.1.2',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'com_google_auth_google_auth_library_credentials',
-  out = 'google-auth-library-credentials-0.9.0.jar',
-  url = 'mvn:com.google.auth:google-auth-library-credentials:jar:0.9.0',
-  sha1 = '8e2b181feff6005c9cbc6f5c1c1e2d3ec9138d46',
-  maven_coords = 'com.google.auth:google-auth-library-credentials:jar:NON-OSGI:0.9.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'io_opencensus_opencensus_api',
-  out = 'opencensus-api-0.12.3.jar',
-  url = 'mvn:io.opencensus:opencensus-api:jar:0.12.3',
-  sha1 = '743f074095f29aa985517299545e72cc99c87de0',
-  maven_coords = 'io.opencensus:opencensus-api:jar:NON-OSGI:0.12.3',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'io_opencensus_opencensus_contrib_grpc_metrics',
-  out = 'opencensus-contrib-grpc-metrics-0.12.3.jar',
-  url = 'mvn:io.opencensus:opencensus-contrib-grpc-metrics:jar:0.12.3',
-  sha1 = 'a4c7ff238a91b901c8b459889b6d0d7a9d889b4d',
-  maven_coords = 'io.opencensus:opencensus-contrib-grpc-metrics:jar:NON-OSGI:0.12.3',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'openstack4j-core',
-  out = 'openstack4j-core-3.1.0.jar',
-  url = 'mvn:org.pacesys:openstack4j-core:jar:3.1.0',
-  sha1 = '634c2ad6728bb6e4cd91c950dd654aacb6f107a6',
-  maven_coords = 'org.pacesys:openstack4j-core:3.1.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'openstack4j-http-connector',
-  out = 'openstack4j-http-connector-3.1.0.jar',
-  url = 'mvn:org.pacesys.openstack4j.connectors:openstack4j-http-connector:jar:3.1.0',
-  sha1 = '5bbd558313f13daac819bbbe56ae8432e64409d9',
-  maven_coords = 'org.pacesys.openstack4j.connectors:openstack4j-http-connector:3.1.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'openstack4j-httpclient',
-  out = 'openstack4j-httpclient-3.1.0.jar',
-  url = 'mvn:org.pacesys.openstack4j.connectors:openstack4j-httpclient:jar:3.1.0',
-  sha1 = 'acb413e27cc43f4bbcee99300befffcf667de579',
-  maven_coords = 'org.pacesys.openstack4j.connectors:openstack4j-httpclient:3.1.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'json-patch',
-  out = 'json-patch-1.9.jar',
-  url = 'mvn:com.github.fge:json-patch:jar:1.9',
-  sha1 = '0a4c3c97a0f5965dec15795acf40d3fbc897af4b',
-  maven_coords = 'com.github.fge:json-patch:1.9',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'jackson-coreutils',
-  out = 'jackson-coreutils-1.6.jar',
-  url = 'mvn:com.github.fge:jackson-coreutils:jar:1.6',
-  sha1 = '9e6af56eb7cc2a65700b289abc7ee2bd170fd231',
-  maven_coords = 'com.github.fge:jackson-coreutils:1.6',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'btf',
-  out = 'btf-1.2.jar',
-  url = 'mvn:com.github.fge:btf:jar:1.2',
-  sha1 = '9e66651022eb86301b348d57e6f59459effc343b',
-  maven_coords = 'com.github.fge:btf:1.2',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'msg-simple',
-  out = 'msg-simple-1.1.jar',
-  url = 'mvn:com.github.fge:msg-simple:jar:1.1',
-  sha1 = 'f261263e13dd4cfa93cc6b83f1f58f619097a2c4',
-  maven_coords = 'com.github.fge:msg-simple:1.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'snakeyaml',
-  out = 'snakeyaml-1.15.jar',
-  url = 'mvn:org.yaml:snakeyaml:jar:1.15',
-  sha1 = '3b132bea69e8ee099f416044970997bde80f4ea6',
-  maven_coords = 'org.yaml:snakeyaml:1.15',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'onos-yang-model',
-  out = 'onos-yang-model-2.5.jar',
-  url = 'mvn:org.onosproject:onos-yang-model:jar:2.5',
-  sha1 = '61339921f42354e499e550c15283e4aa75a03ef7',
-  maven_coords = 'org.onosproject:onos-yang-model:2.5',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'onos-yang-compiler-api',
-  out = 'onos-yang-compiler-api-2.5.jar',
-  url = 'mvn:org.onosproject:onos-yang-compiler-api:jar:2.5',
-  sha1 = 'c504df941d1a1b49e4dd8045c935120f3483504e',
-  maven_coords = 'org.onosproject:onos-yang-compiler-api:2.5',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'onos-yang-compiler-main',
-  out = 'onos-yang-compiler-main-2.5.jar',
-  url = 'mvn:org.onosproject:onos-yang-compiler-main:jar:2.5',
-  sha1 = '8048db59dab2c813cfbc3f7c176eb12b1c8b2548',
-  maven_coords = 'org.onosproject:onos-yang-compiler-main:2.5',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'onos-yang-runtime',
-  out = 'onos-yang-runtime-2.5.jar',
-  url = 'mvn:org.onosproject:onos-yang-runtime:jar:2.5',
-  sha1 = '9d621709f34fd7da4d1954d868ac0eddeba725d2',
-  maven_coords = 'org.onosproject:onos-yang-runtime:2.5',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'onos-yang-serializers-json',
-  out = 'onos-yang-serializers-json-2.5.jar',
-  url = 'mvn:org.onosproject:onos-yang-serializers-json:jar:2.5',
-  sha1 = 'cf442f226b9423c22eb5ec9409e99fe3a0f63a37',
-  maven_coords = 'org.onosproject:onos-yang-serializers-json:2.5',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'onos-yang-serializers-xml',
-  out = 'onos-yang-serializers-xml-2.5.jar',
-  url = 'mvn:org.onosproject:onos-yang-serializers-xml:jar:2.5',
-  sha1 = '7f7231237da9571f79700d2ee0a218cd6253409c',
-  maven_coords = 'org.onosproject:onos-yang-serializers-xml:2.5',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'onos-yang-serializers-utils',
-  out = 'onos-yang-serializers-utils-2.5.jar',
-  url = 'mvn:org.onosproject:onos-yang-serializers-utils:jar:2.5',
-  sha1 = '13f804292e42635fcf28bbadffca8bb72c00b327',
-  maven_coords = 'org.onosproject:onos-yang-serializers-utils:2.5',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'org.apache.servicemix.bundles.dom4j',
-  out = 'org.apache.servicemix.bundles.dom4j-1.6.1_5.jar',
-  url = 'mvn:org.apache.servicemix.bundles:org.apache.servicemix.bundles.dom4j:jar:1.6.1_5',
-  sha1 = 'f5da21ae9508008f7b28001983adc143cb310ad7',
-  maven_coords = 'org.apache.servicemix.bundles:org.apache.servicemix.bundles.dom4j:1.6.1_5',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'plexus-utils',
-  out = 'plexus-utils-3.0.24.jar',
-  url = 'mvn:org.codehaus.plexus:plexus-utils:jar:3.0.24',
-  sha1 = 'b4ac9780b37cb1b736eae9fbcef27609b7c911ef',
-  maven_coords = 'org.codehaus.plexus:plexus-utils:jar:NON-OSGI:3.0.24',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'sshd-core',
-  out = 'sshd-core-1.4.0.jar',
-  url = 'mvn:org.apache.sshd:sshd-core:jar:1.4.0',
-  sha1 = 'c8f3d7457fc9979d1b9ec319f0229b89793c8e56',
-  maven_coords = 'org.apache.sshd:sshd-core:1.4.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'bcpkix-jdk15on',
-  out = 'bcpkix-jdk15on-1.59.jar',
-  url = 'mvn:org.bouncycastle:bcpkix-jdk15on:jar:1.59',
-  sha1 = '9cef0aab8a4bb849a8476c058ce3ff302aba3fff',
-  maven_coords = 'org.bouncycastle:bcpkix-jdk15on:1.59',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'bcprov-jdk15on',
-  out = 'bcprov-jdk15on-1.59.jar',
-  url = 'mvn:org.bouncycastle:bcprov-jdk15on:jar:1.59',
-  sha1 = '2507204241ab450456bdb8e8c0a8f986e418bd99',
-  maven_coords = 'org.bouncycastle:bcprov-jdk15on:1.59',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'hamcrest-optional',
-  out = 'hamcrest-optional-1.1.0.jar',
-  url = 'mvn:com.spotify:hamcrest-optional:jar:1.1.0',
-  sha1 = 'c2dfe3a43794b15fb4c28de0027fe6e249855b3b',
-  maven_coords = 'com.spotify:hamcrest-optional:jar:NON-OSGI:1.1.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'swagger-annotations',
-  out = 'swagger-annotations-1.5.16.jar',
-  url = 'mvn:io.swagger:swagger-annotations:jar:1.5.16',
-  sha1 = '935f1f2fed2cbdd7a0513981d6c53201e21155f4',
-  maven_coords = 'io.swagger:swagger-annotations:1.5.16',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'kafka-clients',
-  out = 'org.apache.servicemix.bundles.kafka-clients-0.8.2.2_1.jar',
-  url = 'mvn:org.apache.servicemix.bundles:org.apache.servicemix.bundles.kafka-clients:jar:0.8.2.2_1',
-  sha1 = '19ba66200cc3617fad12843788dff818b9882008',
-  maven_coords = 'org.apache.servicemix.bundles:org.apache.servicemix.bundles.kafka-clients:0.8.2.2_1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'tinder-xmpp',
-  out = 'tinder-1.3.0.jar',
-  url = 'mvn:org.igniterealtime:tinder:jar:1.3.0',
-  sha1 = '46353ded2a1d1a87d17600206d61814eb0b8a711',
-  maven_coords = 'org.igniterealtime:tinder:jar:NON-OSGI:1.3.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'aalto-xml',
-  out = 'aalto-xml-1.0.0.jar',
-  url = 'mvn:com.fasterxml:aalto-xml:jar:1.0.0',
-  sha1 = 'aeae9e8a71914e7f5efc8a69d2f5cb1f2224f2c6',
-  maven_coords = 'com.fasterxml:aalto-xml:1.0.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'stax2-api',
-  out = 'stax2-api-4.0.0.jar',
-  url = 'mvn:org.codehaus.woodstox:stax2-api:jar:4.0.0',
-  sha1 = '6fa8b05f7587a3cb819d223ee0b0de0c126e3dd1',
-  maven_coords = 'org.codehaus.woodstox:stax2-api:4.0.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'concurrent-hashmap',
-  out = 'concurrentlinkedhashmap-lru-1.0.jar',
-  url = 'mvn:com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar:1.0',
-  sha1 = 'db7b7a28b835db4717d4aaf31f5d4441887a6d46',
-  maven_coords = 'com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar:NON-OSGI:1.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'gnu-idn',
-  out = 'libidn-1.15.jar',
-  url = 'mvn:org.gnu.inet:libidn:jar:1.15',
-  sha1 = 'b5bede3c1c031a827b604da31768ddaf833495c6',
-  maven_coords = 'org.gnu.inet:libidn:jar:NON-OSGI:1.15',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'sigar',
-  out = 'sigar-1.6.5_01.jar',
-  url = 'mvn:org.knowhowlab.osgi:sigar:jar:1.6.5_01',
-  sha1 = '58eb4af0dc4a1d331cd7620767216494e2984dea',
-  maven_coords = 'org.knowhowlab.osgi:sigar:1.6.5_01',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'runtime-grpc-core',
-  out = 'grpc-core-1.14.0.jar',
-  url = 'mvn:io.grpc:grpc-core:jar:1.14.0',
-  sha1 = '526e5be291c96e248789d769c108a084febda07f',
-  maven_coords = 'io.grpc:grpc-core:jar:NON-OSGI:1.14.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'runtime-grpc-context',
-  out = 'grpc-context-1.14.0.jar',
-  url = 'mvn:io.grpc:grpc-context:jar:1.14.0',
-  sha1 = '77252b5f926875891aaae5629e6ab2ef968cd6c6',
-  maven_coords = 'io.grpc:grpc-context:jar:NON-OSGI:1.14.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'runtime-grpc-stub',
-  out = 'grpc-stub-1.14.0.jar',
-  url = 'mvn:io.grpc:grpc-stub:jar:1.14.0',
-  sha1 = '74bfe83c0dc69bf903fff8df3568cbeb8b387d35',
-  maven_coords = 'io.grpc:grpc-stub:jar:NON-OSGI:1.14.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'runtime-grpc-netty',
-  out = 'grpc-netty-1.14.0.jar',
-  url = 'mvn:io.grpc:grpc-netty:jar:1.14.0',
-  sha1 = '21c6edadd45b6869384f8aa0df1663d62c503617',
-  maven_coords = 'io.grpc:grpc-netty:jar:NON-OSGI:1.14.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'runtime-grpc-auth',
-  out = 'grpc-auth-1.14.0.jar',
-  url = 'mvn:io.grpc:grpc-auth:jar:1.14.0',
-  sha1 = '3b88d51b52da96d574f4dfd50ad6d2bc8904a858',
-  maven_coords = 'io.grpc:grpc-auth:jar:NON-OSGI:1.14.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'runtime-grpc-protobuf',
-  out = 'grpc-protobuf-1.14.0.jar',
-  url = 'mvn:io.grpc:grpc-protobuf:jar:1.14.0',
-  sha1 = 'd429fdc2e0d288b34ea7588bb762eb458f385bd5',
-  maven_coords = 'io.grpc:grpc-protobuf:jar:NON-OSGI:1.14.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'runtime-grpc-protobuf-lite',
-  out = 'grpc-protobuf-lite-1.14.0.jar',
-  url = 'mvn:io.grpc:grpc-protobuf-lite:jar:1.14.0',
-  sha1 = '2ac8c28ca927f954eaa228a931d9c163cf3d860f',
-  maven_coords = 'io.grpc:grpc-protobuf-lite:jar:NON-OSGI:1.14.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'runtime-protobuf',
-  out = 'protobuf-java-3.6.1.jar',
-  url = 'mvn:com.google.protobuf:protobuf-java:jar:3.6.1',
-  sha1 = '0d06d46ecfd92ec6d0f3b423b4cd81cb38d8b924',
-  maven_coords = 'com.google.protobuf:protobuf-java:3.6.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'grpc-core-1.3.1',
-  out = 'grpc-core-1.3.1.jar',
-  url = 'mvn:io.grpc:grpc-core:jar:1.3.1',
-  sha1 = 'a9b38b4a19af3ef208f4f6bf7871876d959c5eb1',
-  maven_coords = 'io.grpc:grpc-core:jar:NON-OSGI:1.3.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'grpc-protobuf-1.3.1',
-  out = 'grpc-protobuf-1.3.1.jar',
-  url = 'mvn:io.grpc:grpc-protobuf:jar:1.3.1',
-  sha1 = '9562e977cacd6e128a31686c3e6948d61873c496',
-  maven_coords = 'io.grpc:grpc-protobuf:jar:NON-OSGI:1.3.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'grpc-protobuf-lite-1.3.1',
-  out = 'grpc-protobuf-lite-1.3.1.jar',
-  url = 'mvn:io.grpc:grpc-protobuf-lite:jar:1.3.1',
-  sha1 = '98d1d3d100fdcf92c4331999a504a1a72a5f6e52',
-  maven_coords = 'io.grpc:grpc-protobuf-lite:jar:NON-OSGI:1.3.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'grpc-stub-1.3.1',
-  out = 'grpc-stub-1.3.1.jar',
-  url = 'mvn:io.grpc:grpc-stub:jar:1.3.1',
-  sha1 = '60bdfa9d8c664a9d87ae461106eff6eed8da6c54',
-  maven_coords = 'io.grpc:grpc-stub:jar:NON-OSGI:1.3.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'grpc-netty-1.3.1',
-  out = 'grpc-netty-1.3.1.jar',
-  url = 'mvn:io.grpc:grpc-netty:jar:1.3.1',
-  sha1 = 'cc3831fccb76cfe21445f75cc055b5ffd979dc54',
-  maven_coords = 'io.grpc:grpc-netty:jar:NON-OSGI:1.3.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'grpc-auth-1.3.1',
-  out = 'grpc-auth-1.3.1.jar',
-  url = 'mvn:io.grpc:grpc-auth:jar:1.3.1',
-  sha1 = '57a0e0b9e474842801521fae76f955dd28ad3ae0',
-  maven_coords = 'io.grpc:grpc-auth:jar:NON-OSGI:1.3.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'protobuf-java-3.3.0',
-  out = 'protobuf-java-3.3.0.jar',
-  url = 'mvn:com.google.protobuf:protobuf-java:jar:3.3.0',
-  sha1 = '9f301d1a27501b1afcb2ed16aad428337dabf9e4',
-  maven_coords = 'com.google.protobuf:protobuf-java:3.3.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'protobuf-java-3.2.0',
-  out = 'protobuf-java-3.2.0.jar',
-  url = 'mvn:com.google.protobuf:protobuf-java:jar:3.2.0',
-  sha1 = '62ccf171a106ff6791507f2d5364c275f9a3131d',
-  maven_coords = 'com.google.protobuf:protobuf-java:3.2.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'grpc-testing-1.3.1',
-  out = 'grpc-testing-1.3.1.jar',
-  url = 'mvn:io.grpc:grpc-testing:jar:1.3.1',
-  sha1 = 'fd6c4081cd3415684a0b655327e210aa10153eec',
-  maven_coords = 'io.grpc:grpc-testing:jar:NON-OSGI:1.3.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'grpc-testing-proto-1.3.1',
-  out = 'grpc-testing-proto-1.3.1.jar',
-  url = 'mvn:io.grpc:grpc-testing-proto:jar:1.3.1',
-  sha1 = '170f0406457b44695562ccd5ec8d0da9cb762643',
-  maven_coords = 'io.grpc:grpc-testing-proto:jar:NON-OSGI:1.3.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'grpc-context-1.3.1',
-  out = 'grpc-context-1.3.1.jar',
-  url = 'mvn:io.grpc:grpc-context:jar:1.3.1',
-  sha1 = '28accd419b18d59055b8999f78f5cb7767c7bde8',
-  maven_coords = 'io.grpc:grpc-context:jar:NON-OSGI:1.3.1',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'google-truth-0.28',
-  out = 'truth-0.28.jar',
-  url = 'mvn:com.google.truth:truth:jar:0.28',
-  sha1 = '0a388c7877c845ff4b8e19689dda5ac9d34622c4',
-  maven_coords = 'com.google.truth:truth:jar:NON-OSGI:0.28',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'google-code-findbugs-3.0.0',
-  out = 'jsr305-3.0.0.jar',
-  url = 'mvn:com.google.code.findbugs:jsr305:jar:3.0.0',
-  sha1 = '5871fb60dc68d67da54a663c3fd636a10a532948',
-  maven_coords = 'com.google.code.findbugs:jsr305:jar:NON-OSGI:3.0.0',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'google-errorprone-2.0.19',
-  out = 'error_prone_annotations-2.0.19.jar',
-  url = 'mvn:com.google.errorprone:error_prone_annotations:jar:2.0.19',
-  sha1 = 'c3754a0bdd545b00ddc26884f9e7624f8b6a14de',
-  maven_coords = 'com.google.errorprone:error_prone_annotations:jar:NON-OSGI:2.0.19',
-  visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
-  name = 'google-instrumentation-0.3.0',
-  out = 'instrumentation-api-0.3.0.jar',
-  url = 'mvn:com.google.instrumentation:instrumentation-api:jar:0.3.0',
-  sha1 = 'a2e145e7a7567c6372738f5c5a6f3ba6407ac354',
-  maven_coords = 'com.google.instrumentation:instrumentation-api:jar:NON-OSGI:0.3.0',
-  visibility = [ 'PUBLIC' ],
-)
-
diff --git a/models/ciena/waveserverai/BUCK b/models/ciena/waveserverai/BUCK
deleted file mode 100644
index 576bb9f..0000000
--- a/models/ciena/waveserverai/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//models/common:onos-models-common',
-]
-
-APPS = [
-    'org.onosproject.models.common',
-]
-
-yang_model(
-    app_name = 'org.onosproject.models.ciena.waveserverai',
-    title = 'Ciena Waveserver Ai YANG Models',
-    custom_registrator = True,
-    deps = COMPILE_DEPS,
-    required_apps = APPS,
-)
diff --git a/models/common/BUCK b/models/common/BUCK
deleted file mode 100644
index a210b1e..0000000
--- a/models/common/BUCK
+++ /dev/null
@@ -1,7 +0,0 @@
-
-yang_model (
-  app_name = 'org.onosproject.models.common',
-  title = 'Common YANG Models',
-  custom_registrator = True,
-  deps = [ '//lib:CORE_DEPS' ]
-)
diff --git a/models/huawei/BUCK b/models/huawei/BUCK
deleted file mode 100644
index 1d8a1d2..0000000
--- a/models/huawei/BUCK
+++ /dev/null
@@ -1,7 +0,0 @@
-
-yang_model (
-  app_name = 'org.onosproject.models.huawei',
-  title = 'Huawei YANG Models',
-  custom_registrator = True,
-  deps = [ '//lib:CORE_DEPS' ]
-)
diff --git a/models/ietf/BUCK b/models/ietf/BUCK
deleted file mode 100644
index 6cc9d15..0000000
--- a/models/ietf/BUCK
+++ /dev/null
@@ -1,7 +0,0 @@
-
-yang_model (
-  app_name = 'org.onosproject.models.ietf',
-  title = 'IETF YANG Models',
-  custom_registrator = False,
-  deps = [ '//lib:CORE_DEPS' ]
-)
diff --git a/models/l3vpn/BUCK b/models/l3vpn/BUCK
deleted file mode 100644
index 7f6d5b8..0000000
--- a/models/l3vpn/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//models/common:onos-models-common',
-]
-
-APPS = [
-    'org.onosproject.models.common',
-]
-
-yang_model(
-    app_name = 'org.onosproject.models.l3vpn',
-    title = 'L3VPN YANG Models',
-    custom_registrator = True,
-    deps = COMPILE_DEPS,
-    required_apps = APPS,
-)
diff --git a/models/microsemi/BUCK b/models/microsemi/BUCK
deleted file mode 100644
index 3ab6536..0000000
--- a/models/microsemi/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//models/common:onos-models-common',
-]
-
-APPS = [
-    'org.onosproject.models.common',
-]
-
-yang_model(
-    app_name = 'org.onosproject.models.microsemi',
-    title = 'Microsemi YANG Models',
-    custom_registrator = True,
-    deps = COMPILE_DEPS,
-    required_apps = APPS,
-)
diff --git a/models/openconfig-infinera/BUCK b/models/openconfig-infinera/BUCK
deleted file mode 100644
index 69363e2..0000000
--- a/models/openconfig-infinera/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//models/ietf:onos-models-ietf',
-]
-
-APPS = [
-    'org.onosproject.models.ietf',
-]
-
-yang_model(
-  app_name = 'org.onosproject.models.openconfig-infinera',
-  title = 'OpenConfig Infinera XT3300 YANG Models',
-  custom_registrator = False,
-  deps = COMPILE_DEPS,
-  required_apps = APPS,
-)
diff --git a/models/openconfig/BUCK b/models/openconfig/BUCK
deleted file mode 100644
index 5905528..0000000
--- a/models/openconfig/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//models/ietf:onos-models-ietf',
-]
-
-APPS = [
-    'org.onosproject.models.ietf',
-]
-
-yang_model(
-  app_name = 'org.onosproject.models.openconfig',
-  title = 'OpenConfig YANG Models',
-  custom_registrator = True,
-  deps = COMPILE_DEPS,
-  required_apps = APPS,
-)
diff --git a/models/openroadm/BUCK b/models/openroadm/BUCK
deleted file mode 100644
index 8a1352c..0000000
--- a/models/openroadm/BUCK
+++ /dev/null
@@ -1,5 +0,0 @@
-
-yang_model(
-  app_name = 'org.onosproject.models.openroadm',
-  title = 'Open ROADM YANG Models',
-)
\ No newline at end of file
diff --git a/models/polatis/BUCK b/models/polatis/BUCK
deleted file mode 100644
index 463f600..0000000
--- a/models/polatis/BUCK
+++ /dev/null
@@ -1,14 +0,0 @@
-COMPILE_DEPS = [
-    '//models/common:onos-models-common',
-]
-
-APPS = [
-    'org.onosproject.models.common',
-]
-
-yang_model (
-  app_name = 'org.onosproject.models.polatis',
-  title = 'Polatis YANG Model',
-  deps = COMPILE_DEPS,
-  required_apps = APPS,
-)
diff --git a/models/tapi/BUCK b/models/tapi/BUCK
deleted file mode 100644
index 5276435..0000000
--- a/models/tapi/BUCK
+++ /dev/null
@@ -1,10 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-]
-
-yang_model(
-  app_name = 'org.onosproject.models.tapi',
-  title = 'ONF Transport API YANG Models',
-  custom_registrator = True,
-  deps = COMPILE_DEPS,
-)
diff --git a/modules.defs b/modules.defs
deleted file mode 100644
index e9b95e3..0000000
--- a/modules.defs
+++ /dev/null
@@ -1,326 +0,0 @@
-UTILS = [
-    '//utils/osgi:onlab-osgi',
-    '//utils/junit:onlab-junit',
-    '//utils/misc:onlab-misc',
-    '//utils/rest:onlab-rest',
-    '//tools/build/conf:onos-build-conf',
-]
-
-API = [
-    '//core/api:onos-api',
-    '//incubator/api:onos-incubator-api',
-]
-
-CORE = UTILS + API + [
-    '//core/net:onos-core-net',
-    '//core/common:onos-core-common',
-    '//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',
-
-    '//incubator/net:onos-incubator-net',
-    '//incubator/store:onos-incubator-store',
-    '//incubator/rpc:onos-incubator-rpc',
-
-    '//cli:onos-cli',
-
-    '//protocols/rest/api:onos-protocols-rest-api',
-    '//protocols/rest/ctl:onos-protocols-rest-ctl',
-    '//protocols/bgp/bgpio:onos-protocols-bgp-bgpio',
-    '//protocols/bgp/api:onos-protocols-bgp-api',
-    '//protocols/bgp/ctl:onos-protocols-bgp-ctl',
-    # '//protocols/bmv2/thrift-api:onos-protocols-bmv2-thrift-api',
-    '//protocols/netconf/api:onos-protocols-netconf-api',
-    '//protocols/netconf/ctl:onos-protocols-netconf-ctl',
-    '//protocols/openflow/api:onos-protocols-openflow-api',
-    '//protocols/openflow/ctl:onos-protocols-openflow-ctl',
-    '//protocols/ospf/api:onos-protocols-ospf-api',
-    '//protocols/ospf/protocol:onos-protocols-ospf-protocol',
-    '//protocols/ospf/ctl:onos-protocols-ospf-ctl',
-    '//protocols/ovsdb/rfc:onos-protocols-ovsdb-rfc',
-    '//protocols/ovsdb/api:onos-protocols-ovsdb-api',
-    '//protocols/ovsdb/ctl:onos-protocols-ovsdb-ctl',
-    '//protocols/pcep/pcepio:onos-protocols-pcep-pcepio',
-    '//protocols/pcep/server/api:onos-protocols-pcep-server-api',
-    '//protocols/pcep/server/ctl:onos-protocols-pcep-server-ctl',
-    '//protocols/snmp/api:onos-protocols-snmp-api',
-    '//protocols/snmp/ctl:onos-protocols-snmp-ctl',
-    '//protocols/isis/api:onos-protocols-isis-api',
-    '//protocols/isis/ctl:onos-protocols-isis-ctl',
-    '//protocols/isis/isisio:onos-protocols-isis-isisio',
-    '//protocols/lisp/api:onos-protocols-lisp-api',
-    '//protocols/lisp/ctl:onos-protocols-lisp-ctl',
-    '//protocols/lisp/msg:onos-protocols-lisp-msg',
-    '//protocols/tl1/api:onos-protocols-tl1-api',
-    '//protocols/tl1/ctl:onos-protocols-tl1-ctl',
-    '//protocols/restconf/client/api:onos-protocols-restconf-client-api',
-    '//protocols/restconf/client/ctl:onos-protocols-restconf-client-ctl',
-    '//protocols/xmpp/core/api:onos-protocols-xmpp-core-api',
-    '//protocols/xmpp/core/ctl:onos-protocols-xmpp-core-ctl',
-
-    '//drivers/utilities:onos-drivers-utilities',
-
-    '//providers/netconf/device:onos-providers-netconf-device',
-    '//providers/openflow/device:onos-providers-openflow-device',
-    '//providers/openflow/packet:onos-providers-openflow-packet',
-    '//providers/openflow/flow:onos-providers-openflow-flow',
-    '//providers/openflow/group:onos-providers-openflow-group',
-    '//providers/openflow/meter:onos-providers-openflow-meter',
-    '//providers/ovsdb/device:onos-providers-ovsdb-device',
-    '//providers/ovsdb/tunnel:onos-providers-ovsdb-tunnel',
-    '//providers/rest/device:onos-providers-rest-device',
-    '//providers/snmp/device:onos-providers-snmp-device',
-    '//providers/isis/cfg:onos-providers-isis-cfg',
-    '//providers/isis/topology:onos-providers-isis-topology',
-    '//providers/lisp/device:onos-providers-lisp-device',
-    '//providers/tl1/device:onos-providers-tl1-device',
-    '//providers/general/device:onos-providers-general-device',
-    # '//providers/p4runtime/packet:onos-providers-p4runtime-packet',
-
-    '//web/api:onos-rest',
-    # '//web/gui2:onos-gui2',
-    '//web/gui:onos-gui',
-
-    #'//incubator/protobuf/models:onos-incubator-protobuf-models',
-    #'//incubator/protobuf/services/nb:onos-incubator-protobuf-services-nb',
-]
-
-ONOS_DRIVERS = [
-    # Drivers
-    '//drivers/default:onos-drivers-default-oar',
-    '//drivers/arista:onos-drivers-arista-oar',
-    '//drivers/ciena/waveserver:onos-drivers-ciena-waveserver-oar',
-    '//drivers/ciena/c5162:onos-drivers-ciena-c5162-oar',
-    '//drivers/ciena/c5170:onos-drivers-ciena-c5170-oar',
-    '//drivers/ciena/waveserverai:onos-drivers-ciena-waveserverai-oar',
-    '//drivers/cisco/netconf:onos-drivers-cisco-netconf-oar',
-    '//drivers/cisco/rest:onos-drivers-cisco-rest-oar',
-    '//drivers/corsa:onos-drivers-corsa-oar',
-    '//drivers/fujitsu:onos-drivers-fujitsu-oar',
-    '//drivers/lumentum:onos-drivers-lumentum-oar',
-    '//drivers/netconf:onos-drivers-netconf-oar',
-    '//drivers/server:onos-drivers-server-oar',
-    '//drivers/optical:onos-drivers-optical-oar',
-    '//drivers/ovsdb:onos-drivers-ovsdb-oar',
-    '//drivers/juniper:onos-drivers-juniper-oar',
-    '//drivers/lisp:onos-drivers-lisp-oar',
-    '//drivers/flowspec:onos-drivers-flowspec-oar',
-    '//drivers/huawei:onos-drivers-huawei-oar',
-    '//drivers/microsemi/ea1000:onos-drivers-microsemi-ea1000-oar',
-    '//drivers/oplink:onos-drivers-oplink-oar',
-    # '//drivers/bmv2:onos-drivers-bmv2-oar',
-    # '//drivers/barefoot:onos-drivers-barefoot-oar',
-    # '//drivers/mellanox:onos-drivers-mellanox-oar',
-    '//drivers/hp:onos-drivers-hp-oar',
-    # '//drivers/p4runtime:onos-drivers-p4runtime-oar',
-    # '//drivers/gnmi:onos-drivers-gnmi-oar',
-    '//drivers/polatis/netconf:onos-drivers-polatis-netconf-oar',
-    '//drivers/polatis/openflow:onos-drivers-polatis-openflow-oar',
-    '//drivers/polatis/snmp:onos-drivers-polatis-snmp-oar',
-    '//drivers/odtn-driver:onos-drivers-odtn-driver-oar',
-]
-
-ONOS_PROVIDERS = [
-    # Providers
-    '//providers/bgp:onos-providers-bgp-oar',
-    '//providers/bgpcep:onos-providers-bgpcep-oar',
-    '//providers/host:onos-providers-host-oar',
-    '//providers/hostprobing:onos-providers-hostprobing-oar',
-    '//providers/lldp:onos-providers-lldp-oar',
-    '//providers/netcfghost:onos-providers-netcfghost-oar',
-    '//providers/netcfglinks:onos-providers-netcfglinks-oar',
-    '//providers/netconf:onos-providers-netconf-oar',
-    '//providers/openflow/message:onos-providers-openflow-message-oar',
-    '//providers/ovsdb:onos-providers-ovsdb-oar',
-    '//providers/ovsdb/host:onos-providers-ovsdb-host-oar',
-    '//providers/ovsdb/base:onos-providers-ovsdb-base-oar',
-    '//providers/pcep:onos-providers-pcep-oar',
-    '//providers/null:onos-providers-null-oar',
-    '//providers/openflow/base:onos-providers-openflow-base-oar',
-    '//providers/openflow/app:onos-providers-openflow-app-oar',
-    '//providers/rest:onos-providers-rest-oar',
-    '//providers/isis:onos-providers-isis-oar',
-    '//providers/snmp:onos-providers-snmp-oar',
-    '//providers/link:onos-providers-link-oar',
-    '//providers/lisp:onos-providers-lisp-oar',
-    '//providers/tl1:onos-providers-tl1-oar',
-    '//providers/general:onos-providers-general-oar',
-    # '//providers/p4runtime:onos-providers-p4runtime-oar',
-#    '//providers/ietfte:onos-providers-ietfte-oar',
-    '//providers/xmpp/device:onos-providers-xmpp-device-oar',
-]
-
-ONOS_APPS = [
-    # Apps
-    '//apps/dhcp:onos-apps-dhcp-oar',
-    '//apps/dhcprelay:onos-apps-dhcprelay-oar',
-    '//apps/fwd:onos-apps-fwd-oar',
-    '//apps/packet-stats:onos-apps-packet-stats-oar',
-    '//apps/acl:onos-apps-acl-oar',
-    '//apps/bgprouter:onos-apps-bgprouter-oar',
-    '//apps/cip:onos-apps-cip-oar',
-    '//apps/drivermatrix:onos-apps-drivermatrix-oar',
-    '//apps/events:onos-apps-events-oar',
-    '//apps/proxyarp:onos-apps-proxyarp-oar',
-    '//apps/segmentrouting:onos-apps-segmentrouting-oar',
-    '//apps/gangliametrics:onos-apps-gangliametrics-oar',
-    '//apps/graphitemetrics:onos-apps-graphitemetrics-oar',
-    '//apps/flowanalyzer:onos-apps-flowanalyzer-oar',
-    '//apps/intentsync:onos-apps-intentsync-oar',
-    '//apps/influxdbmetrics:onos-apps-influxdbmetrics-oar',
-    '//apps/metrics:onos-apps-metrics-oar',
-    '//apps/mfwd:onos-apps-mfwd-oar',
-    '//apps/mlb:onos-apps-mlb-oar',
-    '//apps/openstacknetworking:onos-apps-openstacknetworking-oar',
-    '//apps/mobility:onos-apps-mobility-oar',
-    '//apps/newoptical:onos-apps-newoptical-oar',
-    '//apps/optical-model:onos-apps-optical-model-oar',
-    '//apps/optical-rest:onos-apps-optical-rest-oar',
-    '//apps/pathpainter:onos-apps-pathpainter-oar',
-    '//apps/pcep-api:onos-apps-pcep-api-oar',
-    '//apps/pim:onos-apps-pim-oar',
-    '//apps/linkprops:onos-apps-linkprops-oar',
-    '//apps/reactive-routing:onos-apps-reactive-routing-oar',
-    '//apps/roadm:onos-apps-roadm-oar',
-    '//apps/sdnip:onos-apps-sdnip-oar',
-    '//apps/test/cluster-ha:onos-apps-test-cluster-ha-oar',
-    '//apps/test/demo:onos-apps-test-demo-oar',
-    '//apps/test/distributed-primitives:onos-apps-test-distributed-primitives-oar',
-    '//apps/test/election:onos-apps-test-election-oar',
-    '//apps/test/flow-perf:onos-apps-test-flow-perf-oar',
-    '//apps/test/intent-perf:onos-apps-test-intent-perf-oar',
-    '//apps/test/route-scale:onos-apps-test-route-scale-oar',
-    '//apps/test/loadtest:onos-apps-test-loadtest-oar',
-    '//apps/test/netcfg-monitor:onos-apps-test-netcfg-monitor-oar',
-    '//apps/test/messaging-perf:onos-apps-test-messaging-perf-oar',
-    '//apps/test/primitive-perf:onos-apps-test-primitive-perf-oar',
-    '//apps/test/proxy:onos-apps-test-proxy-oar',
-    '//apps/test/transaction-perf:onos-apps-test-transaction-perf-oar',
-    '//apps/virtualbng:onos-apps-virtualbng-oar',
-    '//apps/vpls:onos-apps-vpls-oar',
-    '//apps/vrouter:onos-apps-vrouter-oar',
-    '//apps/routing/fibinstaller:onos-apps-routing-fibinstaller-oar',
-    '//apps/routing/cpr:onos-apps-routing-cpr-oar',
-    '//apps/routing/fpm:onos-apps-routing-fpm-oar',
-    '//apps/vtn:onos-apps-vtn-oar',
-    '//apps/faultmanagement:onos-apps-faultmanagement-oar',
-    '//apps/openstacknode:onos-apps-openstacknode-oar',
-    '//apps/cpman/app:onos-apps-cpman-app-oar',
-    '//apps/scalablegateway:onos-apps-scalablegateway-oar',
-    '//apps/castor:onos-apps-castor-oar',
-#    '//apps/yms:onos-apps-yms-oar',
-    '//apps/ofagent:onos-apps-ofagent-oar',
-    '//apps/mappingmanagement:onos-apps-mappingmanagement-oar',
-    '//apps/config:onos-apps-config-oar',
-    '//apps/configsync:onos-apps-configsync-oar',
-    '//apps/configsync-netconf:onos-apps-configsync-netconf-oar',
-    '//apps/netconf/client:onos-apps-netconf-client-oar',
-    '//apps/tetopology:onos-apps-tetopology-oar',
-    '//apps/tetunnel:onos-apps-tetunnel-oar',
-#    '//apps/tenbi/yangmodel:onos-apps-tenbi-yangmodel-feature',
-#    '//apps/tenbi:onos-apps-tenbi-oar',
-    '//protocols/restconf/server:onos-protocols-restconf-server-oar',
-    '//apps/restconf:onos-apps-restconf-oar',
-    '//apps/flowspec-api:onos-apps-flowspec-api-oar',
-    '//apps/yang:onos-apps-yang-oar',
-    '//apps/yang-gui:onos-apps-yang-gui-oar',
-    '//apps/cord-support:onos-apps-cord-support-oar',
-    '//apps/network-troubleshoot:onos-apps-network-troubleshoot-oar',
-    '//apps/l3vpn:onos-apps-l3vpn-oar',
-    '//apps/openroadm:onos-apps-openroadm-oar',
-    '//apps/artemis:onos-apps-artemis-oar',
-    #'//apps/pi-demo/ecmp:onos-apps-pi-demo-ecmp-oar',
-    '//apps/gluon:onos-apps-gluon-oar',
-    '//apps/evpnopenflow:onos-apps-evpnopenflow-oar',
-    '//apps/route-service:onos-apps-route-service-oar',
-    '//apps/evpn-route-service:onos-apps-evpn-route-service-oar',
-    #'//incubator/protobuf/registry:onos-incubator-protobuf-registry-oar',
-    #'//incubator/protobuf/services/nb:onos-incubator-protobuf-services-nb-oar',
-    '//apps/openstacknetworkingui:onos-apps-openstacknetworkingui-oar',
-    '//apps/openstacktelemetry:onos-apps-openstacktelemetry-oar',
-    '//apps/openstacktroubleshoot:onos-apps-openstacktroubleshoot-oar',
-    '//apps/openstackvtap:onos-apps-openstackvtap-oar',
-    # '//apps/p4-tutorial/pipeconf:onos-apps-p4-tutorial-pipeconf-oar',
-    # '//apps/p4-tutorial/mytunnel:onos-apps-p4-tutorial-mytunnel-oar',
-    '//apps/cfm:onos-apps-cfm-oar',
-    '//apps/routeradvertisement:onos-apps-routeradvertisement-oar',
-    '//apps/powermanagement:onos-apps-powermanagement-oar',
-    '//apps/t3:onos-apps-t3-oar',
-    '//apps/simplefabric:onos-apps-simplefabric-oar',
-    #'//apps/kafka-integration:onos-apps-kafka-integration-oar',
-    '//apps/rabbitmq:onos-apps-rabbitmq-oar',
-    '//apps/odtn/api:onos-apps-odtn-api-oar',
-    '//apps/odtn/service:onos-apps-odtn-service-oar',
-    '//apps/mcast:onos-apps-mcast-oar',
-    '//apps/layout:onos-apps-layout-oar',
-    '//apps/imr:onos-apps-imr-oar',
-    #'//apps/inbandtelemetry/app:onos-apps-inbandtelemetry-app-oar',
-    '//apps/workflow:onos-apps-workflow-oar',
-    # nodemetrics application
-    '//apps/nodemetrics:onos-apps-nodemetrics-oar',
-    #'//web/gui2:onos-web-gui2-oar',
-]
-
-PROTOCOL_APPS = [
-    # '//protocols/grpc:onos-protocols-grpc-oar',
-    # '//protocols/p4runtime:onos-protocols-p4runtime-oar',
-    #'//protocols/gnmi:onos-protocols-gnmi-oar',
-    '//protocols/xmpp/core:onos-protocols-xmpp-core-oar',
-    '//protocols/xmpp/pubsub:onos-protocols-xmpp-pubsub-oar',
-]
-
-MODELS = [
-    '//models/ietf:onos-models-ietf-oar',
-    '//models/common:onos-models-common-oar',
-    '//models/huawei:onos-models-huawei-oar',
-    '//models/openconfig:onos-models-openconfig-oar',
-    '//models/openconfig-infinera:onos-models-openconfig-infinera-oar',
-    '//models/openroadm:onos-models-openroadm-oar',
-    '//models/tapi:onos-models-tapi-oar',
-    '//models/l3vpn:onos-models-l3vpn-oar',
-    '//models/microsemi:onos-models-microsemi-oar',
-    '//models/polatis:onos-models-polatis-oar',
-    '//models/ciena/waveserverai:onos-models-ciena-waveserverai-oar',
-]
-
-PIPELINES = [
-    # '//pipelines/basic:onos-pipelines-basic-oar',
-    # '//pipelines/fabric:onos-pipelines-fabric-oar',
-]
-
-APP_JARS = [
-    '//apps/cpman/api:onos-apps-cpman-api',
-    '//apps/routing-api:onos-apps-routing-api',
-    '//apps/dhcp/api:onos-apps-dhcp-api',
-    '//apps/dhcp/app:onos-apps-dhcp-app',
-    '//apps/imr/api:onos-apps-imr-api',
-    '//apps/imr/app:onos-apps-imr-app',
-    '//apps/dhcprelay:onos-apps-dhcprelay',
-    '//apps/fwd:onos-apps-fwd',
-    '//apps/iptopology-api:onos-apps-iptopology-api',
-    '//apps/routing/common:onos-apps-routing-common',
-    '//apps/vtn/vtnrsc:onos-apps-vtn-vtnrsc',
-    '//apps/vtn/sfcmgr:onos-apps-vtn-sfcmgr',
-    '//apps/vtn/vtnmgr:onos-apps-vtn-vtnmgr',
-    '//apps/vtn/vtnweb:onos-apps-vtn-vtnweb',
-    #'//apps/kafka-integration/api:onos-apps-kafka-integration-api',
-    #'//apps/kafka-integration/app:onos-apps-kafka-integration-app',
-]
-
-FEATURES = [
-  '//tools/package/features:onos-thirdparty-base',
-  '//tools/package/features:onos-thirdparty-web',
-  '//tools/package/features:onos-api',
-  '//tools/package/features:onos-core',
-  #'//tools/package/features:onos-incubator',
-  '//tools/package/features:onos-rest',
-  '//tools/package/features:onos-gui',
-  #'//tools/package/features:onos-gui2',
-  '//tools/package/features:onos-cli',
-  '//tools/package/features:onos-security',
-]
-
-APPS = ONOS_DRIVERS + ONOS_PROVIDERS + ONOS_APPS + MODELS + PIPELINES \
-        + PROTOCOL_APPS
diff --git a/onos.defs b/onos.defs
deleted file mode 100644
index 502b4ad..0000000
--- a/onos.defs
+++ /dev/null
@@ -1,8 +0,0 @@
-ONOS_ORIGIN = 'ONOS Community'
-ONOS_GROUP_ID = 'org.onosproject'
-ONOS_VERSION = '1.15.0-SNAPSHOT'
-DEFAULT_APP_CATEGORY = 'Utility'
-ONOS_ARTIFACT_BASE = 'onos-'
-APP_PREFIX = ONOS_GROUP_ID + '.'
-
-include_defs('//modules.defs')
diff --git a/pipelines/basic/BUCK b/pipelines/basic/BUCK
deleted file mode 100644
index 21b9801..0000000
--- a/pipelines/basic/BUCK
+++ /dev/null
@@ -1,31 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:minimal-json',
-    '//drivers/default:onos-drivers-default',
-    '//protocols/p4runtime/model:onos-protocols-p4runtime-model',
-    '//protocols/p4runtime/api:onos-protocols-p4runtime-api',
-    '//apps/inbandtelemetry/api:onos-apps-inbandtelemetry-api',
-    '//protocols/grpc/api:onos-protocols-grpc-api',
-]
-
-BUNDLES = [
-    '//pipelines/basic:onos-pipelines-basic',
-    '//apps/inbandtelemetry/api:onos-apps-inbandtelemetry-api',
-]
-
-osgi_jar(
-    deps = COMPILE_DEPS,
-)
-
-onos_app(
-    app_name = 'org.onosproject.pipelines.basic',
-    title = 'Basic Pipelines',
-    category = 'Pipeline',
-    url = 'http://onosproject.org',
-    description = 'Provides pipelines with basic L2/L3 forwarding capabilities and packet-in/out '
-                  + 'support.',
-    included_bundles = BUNDLES,
-    required_apps = [
-        'org.onosproject.drivers.p4runtime',
-    ]
-)
diff --git a/pipelines/fabric/BUCK b/pipelines/fabric/BUCK
deleted file mode 100644
index 5491289..0000000
--- a/pipelines/fabric/BUCK
+++ /dev/null
@@ -1,37 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:KRYO',
-    '//protocols/p4runtime/model:onos-protocols-p4runtime-model',
-    '//protocols/p4runtime/api:onos-protocols-p4runtime-api',
-    '//pipelines/basic:onos-pipelines-basic',
-    '//core/store/serializers:onos-core-serializers',
-    '//apps/inbandtelemetry/api:onos-apps-inbandtelemetry-api',
-    '//providers/general/device:onos-providers-general-device',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-BUNDLES = [
-    '//pipelines/fabric:onos-pipelines-fabric',
-    '//apps/inbandtelemetry/api:onos-apps-inbandtelemetry-api',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-onos_app(
-    app_name = 'org.onosproject.pipelines.fabric',
-    title = 'Fabric Pipeline',
-    category = 'Pipeline',
-    url = 'http://onosproject.org',
-    description = 'Provides pipelines with CORD fabric underlay support.',
-    included_bundles = BUNDLES,
-    required_apps = [
-        'org.onosproject.drivers.p4runtime',
-        'org.onosproject.pipelines.basic',
-    ]
-)
diff --git a/protocols/bgp/api/BUCK b/protocols/bgp/api/BUCK
deleted file mode 100644
index 37d94b0..0000000
--- a/protocols/bgp/api/BUCK
+++ /dev/null
@@ -1,10 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//protocols/bgp/bgpio:onos-protocols-bgp-bgpio',
-    '//core/api:onos-api',
-    '//lib:io_netty_netty',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/protocols/bgp/bgpio/BUCK b/protocols/bgp/bgpio/BUCK
deleted file mode 100644
index 32d5f4d..0000000
--- a/protocols/bgp/bgpio/BUCK
+++ /dev/null
@@ -1,11 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:COMPILE',
-    '//lib:NETTY',
-    '//core/api:onos-api',
-    '//lib:io_netty_netty',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/protocols/bgp/ctl/BUCK b/protocols/bgp/ctl/BUCK
deleted file mode 100644
index 3568c2e..0000000
--- a/protocols/bgp/ctl/BUCK
+++ /dev/null
@@ -1,17 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:jersey-client',
-    '//lib:httpclient-osgi',
-    '//lib:httpcore-osgi',
-    '//lib:javax.ws.rs-api',
-    '//protocols/bgp/api:onos-protocols-bgp-api',
-    '//protocols/bgp/bgpio:onos-protocols-bgp-bgpio',
-    '//lib:io_netty_netty_common',
-    '//lib:io_netty_netty',
-    '//lib:org.osgi.compendium',
-    '//lib:org.apache.felix.scr.annotations',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/protocols/bmv2/thrift-api/BUCK b/protocols/bmv2/thrift-api/BUCK
deleted file mode 100644
index f9c90ff..0000000
--- a/protocols/bmv2/thrift-api/BUCK
+++ /dev/null
@@ -1,102 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:libthrift',
-]
-
-# BMV2_COMMIT should be set to the same value as specified in install-p4-tools.sh
-BMV2_COMMIT = 'a3f0ebe4c0f10a656f8aa1ad68cb20402a62b0ee'
-BMV2_BASEURL = 'https://cdn.rawgit.com/p4lang/behavioral-model/' + BMV2_COMMIT
-BMV2_NAMESPACE = 'org.onosproject.bmv2.thriftapi'
-
-THRIFT_EXE_BASEURL = 'https://cdn.rawgit.com/ccascone/mvn-thrift-compiler/1.1_0.9.3/exe/'
-THRIFT_EXE_SHA1S = {
-    'thrift-linux-x86_64.exe':'9b7b5d6eabc9552b8227e8f63981bc15c0985dd5',
-    'thrift-osx-x86_64.exe':'b9215c5141f56fd277b7cf41d9745af847afe498'
-}
-
-def prebuilt_thrift_compiler():
-    import platform
-    os_name = platform.system().lower()
-    if os_name == 'darwin':
-        os_name = 'osx'
-    arch = '%s-%s' % (os_name, platform.machine())
-    fname = 'thrift-%s.exe' % arch
-    if fname not in THRIFT_EXE_SHA1S:
-        raise Exception('Cannot download thrift compiler, architecture %s not supported' % arch)
-    remote_file(
-        name = 'thrift-binary',
-        out = 'thrift.binary',
-        url = THRIFT_EXE_BASEURL + fname,
-        sha1 = THRIFT_EXE_SHA1S[fname],
-    )
-    genrule (
-        name = 'thrift-exe',
-        srcs = [ ':thrift-binary' ],
-        bash = 'cp $(location :thrift-binary) $OUT && chmod +x $OUT',
-        executable = True,
-        out = 'thrift.exe'
-    )
-
-prebuilt_thrift_compiler()
-
-# TODO: or export local thrift executable
-# export_file(
-#       name = 'thrift-exe',
-#       src = '/usr/bin/thrift',
-#     )
-
-def remote_thrift_def(
-    name,
-    url,
-    sha1):
-    # Download *.thrift definition file.
-    remote_file(
-        name = name + '-rem',
-        out = name + '.thrift',
-        url = url,
-        sha1 = sha1,
-    )
-    # Add java namespace.
-    genrule (
-        name = name+'-ns',
-        srcs = [':' + name + '-rem'],
-        bash = 'cp $(location :' + name + '-rem) $OUT && '
-                + 'echo "namespace java ' + BMV2_NAMESPACE + '" | '
-                + 'cat - $OUT > temp && mv temp $OUT',
-        out = name + '.thrift',
-    )
-    # Generate Java sources.
-    genrule (
-        name = name+'-gen',
-        srcs = [':' + name + '-ns'],
-        # FIXME: is there a better way to get just the output dir of this rule?
-        # ...not the full file path in $OUT
-        cmd = '$(exe :thrift-exe) -o $SRCDIR/../' + name + '-gen '
-                + '--gen java $SRCDIR/' + name + '.thrift',
-        out = 'gen-java',
-    )
-    # Zip them.
-    zip_file(
-        name = name,
-        out = name + '.src.zip',
-        srcs = [':' + name + '-gen']
-    )
-
-
-remote_thrift_def(
-    name = 'simple_pre_lag',
-    url = BMV2_BASEURL + '/thrift_src/simple_pre_lag.thrift',
-    sha1 = 'f468ebebc7bb8577f11ca950939f34add5f5634c',
-)
-
-osgi_jar(
-    # If a source ending with *.src.zip is passed, Buck automatically looks for *.java files inside.
-    srcs = [':simple_pre_lag'],
-    deps = COMPILE_DEPS,
-    do_javadocs = False,
-    do_checkstyle = False
-)
-
-project_config(
-    src_target = ':onos-protocols-bmv2-thrift-api'
-)
diff --git a/protocols/gnmi/BUCK b/protocols/gnmi/BUCK
deleted file mode 100644
index 6c80b9b..0000000
--- a/protocols/gnmi/BUCK
+++ /dev/null
@@ -1,15 +0,0 @@
-BUNDLES = [
-    '//protocols/gnmi/stub:onos-protocols-gnmi-stub',
-]
-
-onos_app(
-    app_name = 'org.onosproject.protocols.gnmi',
-    title = 'gNMI Protocol Subsystem',
-    category = 'Protocol',
-    url = 'http://onosproject.org',
-    description = 'ONOS gNMI protocol subsystem',
-    included_bundles = BUNDLES,
-    required_apps = [
-        'org.onosproject.protocols.grpc'
-    ],
-)
diff --git a/protocols/gnmi/stub/BUCK b/protocols/gnmi/stub/BUCK
deleted file mode 100644
index 8a29090..0000000
--- a/protocols/gnmi/stub/BUCK
+++ /dev/null
@@ -1,24 +0,0 @@
-include_defs('//bucklets/grpc.bucklet')
-
-PROTOBUF_VER = '3.2.0'
-GRPC_VER = '1.3.1'
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
-    '//lib:grpc-stub-' + GRPC_VER,
-    '//lib:grpc-protobuf-' + GRPC_VER,
-    '//lib:protobuf-java-' + PROTOBUF_VER,
-]
-
-grpc_jar(
-    deps = COMPILE_DEPS,
-    # FIXME should not be manually building absolute path.
-    # Come up with glob(..) equivalent in BUCK which can handle directory.
-    proto_paths = ["$ONOS_ROOT/protocols/gnmi/stub/src/main/proto"],
-    include_std_lib = True,
-)
-
-project_config(
-    src_target = ':onos-protocols-gnmi-stub'
-)
diff --git a/protocols/grpc/BUCK b/protocols/grpc/BUCK
deleted file mode 100644
index 093ea7d..0000000
--- a/protocols/grpc/BUCK
+++ /dev/null
@@ -1,38 +0,0 @@
-PROTOBUF_VER = '3.2.0'
-GRPC_VER = '1.3.1'
-
-BUNDLES = [
-    '//protocols/grpc/proto:onos-protocols-grpc-proto',
-    '//protocols/grpc/api:onos-protocols-grpc-api',
-    '//protocols/grpc/ctl:onos-protocols-grpc-ctl',
-    # gRPC dependencies
-    '//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
-    '//lib:grpc-protobuf-' + GRPC_VER,
-    '//lib:grpc-protobuf-lite-' + GRPC_VER,
-    '//lib:grpc-stub-' + GRPC_VER,
-    '//lib:grpc-netty-' + GRPC_VER,
-    '//lib:grpc-auth-' + GRPC_VER,
-    '//lib:google-instrumentation-0.3.0',
-    '//lib:protobuf-java-3.2.0',
-    # Lazily adding all netty-related packages.
-    # Some of them might not be necessary.
-    '//lib:io_netty_netty',
-    '//lib:io_netty_netty_buffer',
-    '//lib:io_netty_netty_codec',
-    '//lib:io_netty_netty_codec-http',
-    '//lib:io_netty_netty_codec-http2',
-    '//lib:io_netty_netty_common',
-    '//lib:io_netty_netty_handler',
-    '//lib:io_netty_netty_transport',
-    '//lib:io_netty_netty_transport-native-epoll',
-    '//lib:io_netty_netty_resolver',
-]
-
-onos_app (
-    app_name = 'org.onosproject.protocols.grpc',
-    title = 'gRPC Protocol Subsystem',
-    category = 'Protocol',
-    url = 'http://onosproject.org',
-    description = 'Exposes APIs to store and manage gRPC channels.',
-    included_bundles = BUNDLES,
-)
diff --git a/protocols/grpc/api/BUCK b/protocols/grpc/api/BUCK
deleted file mode 100644
index e0dad74..0000000
--- a/protocols/grpc/api/BUCK
+++ /dev/null
@@ -1,11 +0,0 @@
-GRPC_VER = '1.3.1'
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
-    '//lib:grpc-stub-' + GRPC_VER,
-]
-
-osgi_jar (
-    deps = COMPILE_DEPS,
-)
diff --git a/protocols/grpc/ctl/BUCK b/protocols/grpc/ctl/BUCK
deleted file mode 100644
index 36681b5..0000000
--- a/protocols/grpc/ctl/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-PROTOBUF_VER = '3.2.0'
-GRPC_VER = '1.3.1'
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//protocols/grpc/api:onos-protocols-grpc-api',
-    '//protocols/grpc/proto:onos-protocols-grpc-proto',
-    '//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
-    '//lib:grpc-stub-' + GRPC_VER,
-    '//lib:protobuf-java-' + PROTOBUF_VER,
-]
-
-osgi_jar (
-    deps = COMPILE_DEPS,
-)
-
diff --git a/protocols/grpc/proto/BUCK b/protocols/grpc/proto/BUCK
deleted file mode 100644
index 8f1b562..0000000
--- a/protocols/grpc/proto/BUCK
+++ /dev/null
@@ -1,26 +0,0 @@
-include_defs(
-    '//bucklets/grpc.bucklet'
-)
-
-PROTOBUF_VER = '3.2.0'
-GRPC_VER = '1.3.1'
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
-    '//lib:grpc-stub-' + GRPC_VER,
-    '//lib:grpc-protobuf-' + GRPC_VER,
-    '//lib:protobuf-java-' + PROTOBUF_VER,
-]
-
-grpc_jar(
-    proto_match_patterns = ["*.proto"],
-    proto_paths = ["$ONOS_ROOT/protocols/grpc/proto/", "$ONOS_ROOT"], #FIXME should not have to include ONOS_ROOT top level here
-    protoc_version = PROTOBUF_VER,
-    plugin_version = GRPC_VER,
-    deps = COMPILE_DEPS,
-)
-
-project_config(
-    src_target = ':onos-protocols-grpc-proto'
-)
diff --git a/protocols/isis/api/BUCK b/protocols/isis/api/BUCK
deleted file mode 100644
index 75c833b..0000000
--- a/protocols/isis/api/BUCK
+++ /dev/null
@@ -1,11 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:JACKSON',
-    '//lib:io_netty_netty',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
diff --git a/protocols/isis/ctl/BUCK b/protocols/isis/ctl/BUCK
deleted file mode 100644
index 1ab0b4b..0000000
--- a/protocols/isis/ctl/BUCK
+++ /dev/null
@@ -1,12 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:JACKSON',
-    '//protocols/isis/api:onos-protocols-isis-api',
-    '//protocols/isis/isisio:onos-protocols-isis-isisio',
-    '//lib:io_netty_netty',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/protocols/isis/isisio/BUCK b/protocols/isis/isisio/BUCK
deleted file mode 100644
index abcd593..0000000
--- a/protocols/isis/isisio/BUCK
+++ /dev/null
@@ -1,10 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//protocols/isis/api:onos-protocols-isis-api',
-    '//lib:io_netty_netty',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/protocols/lisp/api/BUCK b/protocols/lisp/api/BUCK
deleted file mode 100644
index a182f2b..0000000
--- a/protocols/lisp/api/BUCK
+++ /dev/null
@@ -1,11 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:io_netty_netty_transport',
-    '//protocols/lisp/msg:onos-protocols-lisp-msg',
-    '//apps/mappingmanagement/api:onos-apps-mappingmanagement-api',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/protocols/lisp/ctl/BUCK b/protocols/lisp/ctl/BUCK
deleted file mode 100644
index 25764e7..0000000
--- a/protocols/lisp/ctl/BUCK
+++ /dev/null
@@ -1,26 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//protocols/lisp/api:onos-protocols-lisp-api',
-    '//protocols/lisp/msg:onos-protocols-lisp-msg',
-    '//lib:io_netty_netty_buffer',
-    '//lib:io_netty_netty_codec',
-    '//lib:io_netty_netty_transport',
-    '//lib:io_netty_netty_transport-native-epoll',
-    '//lib:io_netty_netty_handler',
-    '//lib:io_netty_netty_resolver',
-    '//lib:concurrent-trees',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//utils/osgi:onlab-osgi-tests',
-    '//core/api:onos-api-tests',
-    '//protocols/lisp/api:onos-protocols-lisp-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
diff --git a/protocols/lisp/msg/BUCK b/protocols/lisp/msg/BUCK
deleted file mode 100644
index 2e2b8a7..0000000
--- a/protocols/lisp/msg/BUCK
+++ /dev/null
@@ -1,17 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:io_netty_netty_buffer'
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//utils/osgi:onlab-osgi-tests',
-    '//core/api:onos-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
diff --git a/protocols/netconf/api/BUCK b/protocols/netconf/api/BUCK
deleted file mode 100644
index 61b3a10..0000000
--- a/protocols/netconf/api/BUCK
+++ /dev/null
@@ -1,8 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/protocols/netconf/ctl/BUCK b/protocols/netconf/ctl/BUCK
deleted file mode 100644
index 8abf233..0000000
--- a/protocols/netconf/ctl/BUCK
+++ /dev/null
@@ -1,23 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:ganymed-ssh2',
-    '//protocols/netconf/api:onos-protocols-netconf-api',
-    '//cli:onos-cli',
-    '//lib:org.apache.karaf.shell.console',
-    '//lib:sshd-core',
-    '//lib:bcpkix-jdk15on',
-    '//lib:bcprov-jdk15on',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//utils/osgi:onlab-osgi-tests',
-    '//core/api:onos-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
diff --git a/protocols/openflow/api/BUCK b/protocols/openflow/api/BUCK
deleted file mode 100644
index 41fc729..0000000
--- a/protocols/openflow/api/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:openflowj',
-    '//lib:io_netty_netty_transport',
-]
-
-TEST_DEPS = [
-    '//lib:TEST',
-    '//core/api:onos-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/protocols/openflow/ctl/BUCK b/protocols/openflow/ctl/BUCK
deleted file mode 100644
index 684fb64..0000000
--- a/protocols/openflow/ctl/BUCK
+++ /dev/null
@@ -1,23 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:openflowj',
-    '//lib:io_netty_netty_buffer',
-    '//lib:io_netty_netty_common',
-    '//lib:io_netty_netty_codec',
-    '//lib:io_netty_netty_handler',
-    '//lib:io_netty_netty_transport',
-    '//lib:io_netty_netty_transport_native_unix_common',
-    '//lib:io_netty_netty_transport-native-epoll',
-    '//protocols/openflow/api:onos-protocols-openflow-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST',
-    '//core/api:onos-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/protocols/ospf/api/BUCK b/protocols/ospf/api/BUCK
deleted file mode 100644
index 75c833b..0000000
--- a/protocols/ospf/api/BUCK
+++ /dev/null
@@ -1,11 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:JACKSON',
-    '//lib:io_netty_netty',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
diff --git a/protocols/ospf/ctl/BUCK b/protocols/ospf/ctl/BUCK
deleted file mode 100644
index ec894cc..0000000
--- a/protocols/ospf/ctl/BUCK
+++ /dev/null
@@ -1,13 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:JACKSON',
-    '//protocols/ospf/api:onos-protocols-ospf-api',
-    '//protocols/ospf/protocol:onos-protocols-ospf-protocol',
-    '//lib:io_netty_netty',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
diff --git a/protocols/ospf/protocol/BUCK b/protocols/ospf/protocol/BUCK
deleted file mode 100644
index 46a8746..0000000
--- a/protocols/ospf/protocol/BUCK
+++ /dev/null
@@ -1,10 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//protocols/ospf/api:onos-protocols-ospf-api',
-    '//lib:io_netty_netty',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/protocols/ovsdb/api/BUCK b/protocols/ovsdb/api/BUCK
deleted file mode 100644
index f9b5802..0000000
--- a/protocols/ovsdb/api/BUCK
+++ /dev/null
@@ -1,12 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:JACKSON',
-    '//lib:io_netty_netty_transport',
-    '//protocols/ovsdb/rfc:onos-protocols-ovsdb-rfc',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
diff --git a/protocols/ovsdb/ctl/BUCK b/protocols/ovsdb/ctl/BUCK
deleted file mode 100644
index bd40154..0000000
--- a/protocols/ovsdb/ctl/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:JACKSON',
-    '//lib:io_netty_netty_transport',
-    '//lib:io_netty_netty_buffer',
-    '//lib:io_netty_netty_codec',
-    '//lib:io_netty_netty_handler',
-    '//protocols/ovsdb/rfc:onos-protocols-ovsdb-rfc',
-    '//protocols/ovsdb/api:onos-protocols-ovsdb-api',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
diff --git a/protocols/ovsdb/rfc/BUCK b/protocols/ovsdb/rfc/BUCK
deleted file mode 100644
index 47f8625..0000000
--- a/protocols/ovsdb/rfc/BUCK
+++ /dev/null
@@ -1,12 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:JACKSON',
-    '//lib:io_netty_netty_buffer',
-    '//lib:io_netty_netty_codec',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
diff --git a/protocols/p4runtime/BUCK b/protocols/p4runtime/BUCK
deleted file mode 100644
index 9668a16..0000000
--- a/protocols/p4runtime/BUCK
+++ /dev/null
@@ -1,18 +0,0 @@
-BUNDLES = [
-    '//protocols/p4runtime/proto:onos-protocols-p4runtime-proto',
-    '//protocols/p4runtime/api:onos-protocols-p4runtime-api',
-    '//protocols/p4runtime/ctl:onos-protocols-p4runtime-ctl',
-    '//protocols/p4runtime/model:onos-protocols-p4runtime-model',
-]
-
-onos_app(
-    app_name = 'org.onosproject.protocols.p4runtime',
-    title = 'P4Runtime Protocol Subsystem',
-    category = 'Protocol',
-    url = 'http://onosproject.org',
-    description = 'ONOS P4Runtime protocol subsystem',
-    included_bundles = BUNDLES,
-    required_apps = [
-        'org.onosproject.protocols.grpc'
-    ],
-)
diff --git a/protocols/p4runtime/api/BUCK b/protocols/p4runtime/api/BUCK
deleted file mode 100644
index c775aea..0000000
--- a/protocols/p4runtime/api/BUCK
+++ /dev/null
@@ -1,18 +0,0 @@
-GRPC_VER = '1.3.1'
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
-    '//protocols/grpc/api:onos-protocols-grpc-api',
-]
-
-TEST_DEPS = [
-    '//core/api:onos-api-tests',
-    '//lib:TEST',
-    '//protocols/p4runtime/api:onos-protocols-p4runtime-api',
-]
-
-osgi_jar_with_tests(
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/protocols/p4runtime/ctl/BUCK b/protocols/p4runtime/ctl/BUCK
deleted file mode 100644
index 343d3b2..0000000
--- a/protocols/p4runtime/ctl/BUCK
+++ /dev/null
@@ -1,28 +0,0 @@
-# Buck build of P4-related modules is no longer supported, please use Bazel
-# GRPC_VER = '1.3.1'
-# PROTOBUF_VER = '3.2.0'
-#
-# COMPILE_DEPS = [
-#     '//lib:CORE_DEPS',
-#     '//lib:KRYO',
-#     '//protocols/grpc/api:onos-protocols-grpc-api',
-#     '//protocols/p4runtime/api:onos-protocols-p4runtime-api',
-#     '//protocols/p4runtime/proto:onos-protocols-p4runtime-proto',
-#     '//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
-#     '//lib:grpc-stub-' + GRPC_VER,
-#     '//lib:grpc-netty-' + GRPC_VER,
-#     '//lib:protobuf-java-' + PROTOBUF_VER,
-#     '//core/store/serializers:onos-core-serializers',
-# ]
-#
-# TEST_DEPS = [
-#     '//lib:TEST',
-#     '//lib:GRPC_TEST_1.3',
-#     '//lib:minimal-json',
-#     '//lib:grpc-protobuf-lite-' + GRPC_VER,
-# ]
-#
-# osgi_jar_with_tests(
-#     deps = COMPILE_DEPS,
-#     test_deps = TEST_DEPS,
-# )
diff --git a/protocols/p4runtime/model/BUCK b/protocols/p4runtime/model/BUCK
deleted file mode 100644
index 61e5d49..0000000
--- a/protocols/p4runtime/model/BUCK
+++ /dev/null
@@ -1,14 +0,0 @@
-PROTOBUF_VER = '3.2.0'
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//protocols/p4runtime/proto:onos-protocols-p4runtime-proto',
-    '//lib:protobuf-java-' + PROTOBUF_VER,
-]
-
-TEST_DEPS = [
-]
-
-osgi_jar_with_tests(
-    deps = COMPILE_DEPS + TEST_DEPS,
-)
diff --git a/protocols/p4runtime/proto/BUCK b/protocols/p4runtime/proto/BUCK
deleted file mode 100644
index 27a8ef6..0000000
--- a/protocols/p4runtime/proto/BUCK
+++ /dev/null
@@ -1,57 +0,0 @@
-include_defs(
-    '//bucklets/grpc.bucklet'
-)
-
-PROTOBUF_VER = '3.2.0'
-GRPC_VER = '1.3.1'
-
-PI_COMMIT = '7e94b025bac6db63bc8534e5dd21a008984e38bc'
-PI_BASEURL = 'https://github.com/p4lang/PI.git'
-
-# Wondering which .proto files to build? Check p4runtime's Makefile:
-# https://github.com/p4lang/PI/blob/master/proto/Makefile.am
-PROTO_SRCS = [
-    '/proto/p4/v1/p4runtime.proto',
-    '/proto/p4/v1/p4data.proto',
-    '/proto/p4/config/v1/p4info.proto',
-    '/proto/p4/config/v1/p4types.proto',
-    '/proto/p4/tmp/p4config.proto',
-    '/proto/google/rpc/status.proto',
-    '/proto/google/rpc/code.proto',
-]
-
-COMPILE_DEPS =[
-    '//lib:CORE_DEPS',
-    '//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
-    '//lib:grpc-stub-' + GRPC_VER,
-    '//lib:grpc-protobuf-' + GRPC_VER,
-    '//lib:protobuf-java-' + PROTOBUF_VER,
-]
-
-genrule(
-    name = 'p4lang-pi-repo-' + PI_COMMIT,
-    bash = 'git clone --quiet ' + PI_BASEURL + ' $OUT > /dev/null && '
-            + 'cd $OUT && '
-            + 'git checkout --quiet -b buck-build ' + PI_COMMIT + ' > /dev/null && '
-            + 'git submodule update --quiet --init --recursive > /dev/null',
-    out = 'repo',
-)
-
-def get_proto_src_string():
-    proto_srcs = map(lambda x: "$(location :p4lang-pi-repo-%s)%s"  % (PI_COMMIT, x), PROTO_SRCS)
-    return " ".join(proto_srcs)
-
-grpc_jar(
-    src_string = get_proto_src_string(),
-    proto_paths = [
-        '$(location :p4lang-pi-repo-' + PI_COMMIT + ')/proto',
-    ],
-    protoc_version = PROTOBUF_VER,
-    plugin_version = GRPC_VER,
-    deps = COMPILE_DEPS,
-    include_std_lib = True,
-)
-
-project_config(
-    src_target = ':onos-protocols-p4runtime-proto'
-)
diff --git a/protocols/pcep/pcepio/BUCK b/protocols/pcep/pcepio/BUCK
deleted file mode 100644
index e02623d..0000000
--- a/protocols/pcep/pcepio/BUCK
+++ /dev/null
@@ -1,15 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:jackson-databind',
-    '//lib:jackson-annotations',
-    '//lib:osgi-core',
-    '//lib:org.apache.karaf.shell.console',
-    '//lib:org.apache.felix.scr.annotations',
-    '//lib:io_netty_netty',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
diff --git a/protocols/pcep/server/BUCK b/protocols/pcep/server/BUCK
deleted file mode 100644
index 1835e30..0000000
--- a/protocols/pcep/server/BUCK
+++ /dev/null
@@ -1,11 +0,0 @@
-BUNDLES = [
-    '//protocols/pcep/server/api:onos-protocols-pcep-server-api',
-    '//protocols/pcep/server/ctl:onos-protocols-pcep-server-ctl',
-]
-
-onos_app (
-  title = 'PCEP Server Module',
-  category = 'Utility',
-  url = 'http://onosproject.org',
-  included_bundles = BUNDLES,
-)
diff --git a/protocols/pcep/server/api/BUCK b/protocols/pcep/server/api/BUCK
deleted file mode 100644
index 4c26105..0000000
--- a/protocols/pcep/server/api/BUCK
+++ /dev/null
@@ -1,12 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//protocols/pcep/pcepio:onos-protocols-pcep-pcepio',
-    '//apps/pcep-api:onos-apps-pcep-api',
-    '//incubator/api:onos-incubator-api',
-    '//lib:io_netty_netty',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
diff --git a/protocols/pcep/server/ctl/BUCK b/protocols/pcep/server/ctl/BUCK
deleted file mode 100644
index 5295876..0000000
--- a/protocols/pcep/server/ctl/BUCK
+++ /dev/null
@@ -1,25 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//incubator/api:onos-incubator-api',
-    '//protocols/pcep/pcepio:onos-protocols-pcep-pcepio',
-    '//protocols/pcep/server/api:onos-protocols-pcep-server-api',
-    '//core/store/serializers:onos-core-serializers',
-    '//apps/pcep-api:onos-apps-pcep-api',
-    '//lib:io_netty_netty',
-]
-
-TEST_DEPS = [
-    '//lib:TEST',
-    '//lib:TEST_ADAPTERS',
-    '//incubator/api:onos-incubator-api-tests',
-    '//protocols/pcep/server/api:onos-protocols-pcep-server-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
diff --git a/protocols/rest/api/BUCK b/protocols/rest/api/BUCK
deleted file mode 100644
index 818ffbd..0000000
--- a/protocols/rest/api/BUCK
+++ /dev/null
@@ -1,18 +0,0 @@
-COMPILE_DEPS = [
-    '//incubator/api:onos-incubator-api',
-    '//utils/rest:onlab-rest',
-    '//lib:CORE_DEPS',
-    '//lib:jersey-client',
-    '//lib:jersey-security',
-    '//lib:jersey-common',
-    '//lib:httpclient-osgi',
-    '//lib:httpcore-osgi',
-    '//lib:javax.ws.rs-api',
-    '//lib:hk2-api',
-    '//lib:aopalliance-repackaged',
-    '//lib:javax.inject',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/protocols/rest/ctl/BUCK b/protocols/rest/ctl/BUCK
deleted file mode 100644
index c12164d..0000000
--- a/protocols/rest/ctl/BUCK
+++ /dev/null
@@ -1,24 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:jersey-client',
-    '//lib:jersey-common',
-    '//lib:jersey-media-sse',
-    '//lib:httpclient-osgi',
-    '//lib:httpcore-osgi',
-    '//lib:javax.ws.rs-api',
-    '//lib:hk2-api',
-    '//lib:aopalliance-repackaged',
-    '//lib:javax.inject',
-    '//protocols/rest/api:onos-protocols-rest-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_REST',
-    '//core/common:onos-core-common-tests'
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS
-)
-
diff --git a/protocols/restconf/client/api/BUCK b/protocols/restconf/client/api/BUCK
deleted file mode 100644
index c1f3e2c..0000000
--- a/protocols/restconf/client/api/BUCK
+++ /dev/null
@@ -1,10 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//incubator/api:onos-incubator-api',
-    '//utils/rest:onlab-rest',
-    '//protocols/rest/api:onos-protocols-rest-api',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/protocols/restconf/client/ctl/BUCK b/protocols/restconf/client/ctl/BUCK
deleted file mode 100644
index 1e1223d..0000000
--- a/protocols/restconf/client/ctl/BUCK
+++ /dev/null
@@ -1,18 +0,0 @@
-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:aopalliance-repackaged',
-    '//lib:javax.inject',
-    '//protocols/restconf/client/api:onos-protocols-restconf-client-api',
-    '//protocols/rest/api:onos-protocols-rest-api',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
diff --git a/protocols/restconf/server/BUCK b/protocols/restconf/server/BUCK
deleted file mode 100644
index b6ac9d4..0000000
--- a/protocols/restconf/server/BUCK
+++ /dev/null
@@ -1,11 +0,0 @@
-BUNDLES = [
-    '//protocols/restconf/server/rpp:onos-protocols-restconf-server-rpp',
-]
-
-onos_app (
-  app_name = 'org.onosproject.protocols.restconfserver',
-  title = 'RESTCONF Server Module',
-  category = 'Utility',
-  url = 'http://onosproject.org',
-  included_bundles = BUNDLES,
-)
diff --git a/protocols/restconf/server/rpp/BUCK b/protocols/restconf/server/rpp/BUCK
deleted file mode 100644
index c21c905..0000000
--- a/protocols/restconf/server/rpp/BUCK
+++ /dev/null
@@ -1,23 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:jersey-client',
-    '//lib:jersey-server',
-    '//lib:javax.ws.rs-api',
-    '//lib:servlet-api',
-    '//lib:javax.inject',
-    '//utils/rest:onlab-rest',
-    '//apps/restconf/api:onos-apps-restconf-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_REST',
-    '//utils/osgi:onlab-osgi-tests',
-    '//web/api:onos-rest-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    web_context = '/onos/restconf',
-)
diff --git a/protocols/snmp/api/BUCK b/protocols/snmp/api/BUCK
deleted file mode 100644
index 897a0ac..0000000
--- a/protocols/snmp/api/BUCK
+++ /dev/null
@@ -1,13 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//incubator/api:onos-incubator-api',
-    '//lib:org.apache.servicemix.bundles.snmp4j',
-    '//lib:snmp-core',
-    '//lib:mibs-net-snmp',
-    '//lib:mibs-rfc',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/protocols/snmp/ctl/BUCK b/protocols/snmp/ctl/BUCK
deleted file mode 100644
index b4357e1..0000000
--- a/protocols/snmp/ctl/BUCK
+++ /dev/null
@@ -1,14 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//incubator/api:onos-incubator-api',
-    '//protocols/snmp/api:onos-protocols-snmp-api',
-    '//lib:org.apache.servicemix.bundles.snmp4j',
-    '//lib:snmp-core',
-    '//lib:mibs-net-snmp',
-    '//lib:mibs-rfc',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
diff --git a/protocols/tl1/api/BUCK b/protocols/tl1/api/BUCK
deleted file mode 100644
index 52e0753..0000000
--- a/protocols/tl1/api/BUCK
+++ /dev/null
@@ -1,8 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:io_netty_netty_transport',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/protocols/tl1/ctl/BUCK b/protocols/tl1/ctl/BUCK
deleted file mode 100644
index af235e4..0000000
--- a/protocols/tl1/ctl/BUCK
+++ /dev/null
@@ -1,19 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:io_netty_netty_transport',
-    '//lib:io_netty_netty_buffer',
-    '//lib:io_netty_netty_codec',
-    '//protocols/tl1/api:onos-protocols-tl1-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//utils/osgi:onlab-osgi-tests',
-    '//core/api:onos-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/protocols/xmpp/core/BUCK b/protocols/xmpp/core/BUCK
deleted file mode 100644
index 49a5015..0000000
--- a/protocols/xmpp/core/BUCK
+++ /dev/null
@@ -1,23 +0,0 @@
-BUNDLES = [
-    '//protocols/xmpp/core/api:onos-protocols-xmpp-core-api',
-    '//protocols/xmpp/core/ctl:onos-protocols-xmpp-core-ctl',
-    '//lib:tinder-xmpp',
-    '//lib:org.apache.servicemix.bundles.dom4j',
-    '//lib:io_netty_netty_common',
-    '//lib:io_netty_netty_transport',
-    '//lib:io_netty_netty_buffer',
-    '//lib:io_netty_netty_codec',
-    '//lib:stax2-api',
-    '//lib:aalto-xml',
-    '//lib:concurrent-hashmap',
-    '//lib:gnu-idn',
-]
-
-onos_app(
-    app_name = 'org.onosproject.protocols.xmpp',
-    title = 'XMPP Core Protocol Subsystem',
-    category = 'Protocol',
-    url = 'https://wiki.onosproject.org/display/ONOS/XMPP+as+SBI',
-    description = 'ONOS XMPP core protocol subsystem',
-    included_bundles = BUNDLES,
-)
\ No newline at end of file
diff --git a/protocols/xmpp/core/api/BUCK b/protocols/xmpp/core/api/BUCK
deleted file mode 100644
index 1e7a692..0000000
--- a/protocols/xmpp/core/api/BUCK
+++ /dev/null
@@ -1,12 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//core/api:onos-api',
-    '//lib:tinder-xmpp',
-    '//lib:io_netty_netty_transport',
-    '//lib:io_netty_netty_common',
-    '//lib:org.apache.servicemix.bundles.dom4j',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
\ No newline at end of file
diff --git a/protocols/xmpp/core/ctl/BUCK b/protocols/xmpp/core/ctl/BUCK
deleted file mode 100644
index 4ce3ed1..0000000
--- a/protocols/xmpp/core/ctl/BUCK
+++ /dev/null
@@ -1,25 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//protocols/xmpp/core/api:onos-protocols-xmpp-core-api',
-    '//lib:io_netty_netty_common',
-    '//lib:io_netty_netty_transport',
-    '//lib:io_netty_netty_transport-native-epoll',
-    '//lib:io_netty_netty_buffer',
-    '//lib:io_netty_netty_codec',
-    '//lib:org.apache.servicemix.bundles.dom4j',
-    '//lib:tinder-xmpp',
-    '//lib:stax2-api',
-    '//lib:aalto-xml',
-    '//lib:concurrent-hashmap',
-    '//lib:gnu-idn',
-]
-
-TEST_DEPS = [
-    '//lib:TEST',
-    '//core/api:onos-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
\ No newline at end of file
diff --git a/protocols/xmpp/pubsub/BUCK b/protocols/xmpp/pubsub/BUCK
deleted file mode 100644
index 9a69e4c..0000000
--- a/protocols/xmpp/pubsub/BUCK
+++ /dev/null
@@ -1,20 +0,0 @@
-BUNDLES = [
-    '//protocols/xmpp/core/api:onos-protocols-xmpp-core-api',
-    '//protocols/xmpp/pubsub/api:onos-protocols-xmpp-pubsub-api',
-    '//protocols/xmpp/pubsub/ctl:onos-protocols-xmpp-pubsub-ctl',
-    '//lib:tinder-xmpp',
-    '//lib:concurrent-hashmap',
-    '//lib:gnu-idn',
-]
-
-onos_app(
-    app_name = 'org.onosproject.protocols.xmpp.pubsub',
-    title = 'XMPP Publish/Subscribe protocol extension subsystem',
-    category = 'Protocol',
-    url = 'http://onosproject.org',
-    description = 'XMPP Publish/Subscribe protocol extension subsystem',
-    included_bundles = BUNDLES,
-    required_apps = [
-        'org.onosproject.protocols.xmpp',
-    ]
-)
\ No newline at end of file
diff --git a/protocols/xmpp/pubsub/api/BUCK b/protocols/xmpp/pubsub/api/BUCK
deleted file mode 100644
index d856754..0000000
--- a/protocols/xmpp/pubsub/api/BUCK
+++ /dev/null
@@ -1,9 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//core/api:onos-api',
-    '//lib:tinder-xmpp',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
\ No newline at end of file
diff --git a/protocols/xmpp/pubsub/ctl/BUCK b/protocols/xmpp/pubsub/ctl/BUCK
deleted file mode 100644
index e28ec52..0000000
--- a/protocols/xmpp/pubsub/ctl/BUCK
+++ /dev/null
@@ -1,19 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//core/api:onos-api',
-    '//lib:tinder-xmpp',
-    '//lib:concurrent-hashmap',
-    '//lib:gnu-idn',
-    '//protocols/xmpp/pubsub/api:onos-protocols-xmpp-pubsub-api',
-    '//protocols/xmpp/core/api:onos-protocols-xmpp-core-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST',
-    '//core/api:onos-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
\ No newline at end of file
diff --git a/providers/bgp/BUCK b/providers/bgp/BUCK
deleted file mode 100644
index 5ebd51c..0000000
--- a/providers/bgp/BUCK
+++ /dev/null
@@ -1,19 +0,0 @@
-BUNDLES = [
-    '//providers/bgp/cfg:onos-providers-bgp-cfg',
-    '//providers/bgp/topology:onos-providers-bgp-topology',
-    '//providers/bgp/route:onos-providers-bgp-route',
-    '//providers/bgp/cli:onos-providers-bgp-cli',
-    '//protocols/bgp/api:onos-protocols-bgp-api',
-    '//protocols/bgp/ctl:onos-protocols-bgp-ctl',
-    '//protocols/bgp/bgpio:onos-protocols-bgp-bgpio',
-]
-
-onos_app (
-    title = 'BGP Provider',
-    category = 'Provider',
-    url = 'http://onosproject.org',
-    included_bundles = BUNDLES,
-    description = 'BGP protocol southbound providers.',
-    required_apps = [ 'org.onosproject.evpn-route-service' ],
-)
-
diff --git a/providers/bgp/cfg/BUCK b/providers/bgp/cfg/BUCK
deleted file mode 100644
index f3fa14d..0000000
--- a/providers/bgp/cfg/BUCK
+++ /dev/null
@@ -1,9 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//protocols/bgp/api:onos-protocols-bgp-api',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/providers/bgp/cli/BUCK b/providers/bgp/cli/BUCK
deleted file mode 100644
index 64ae7f9..0000000
--- a/providers/bgp/cli/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//incubator/api:onos-incubator-api',
-    '//providers/bgp/cfg:onos-providers-bgp-cfg',
-    '//providers/bgp/topology:onos-providers-bgp-topology',
-    '//protocols/bgp/api:onos-protocols-bgp-api',
-    '//protocols/bgp/ctl:onos-protocols-bgp-ctl',
-    '//protocols/bgp/bgpio:onos-protocols-bgp-bgpio',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-]
-
-osgi_jar_with_tests (
-  deps = COMPILE_DEPS,
-)
-
diff --git a/providers/bgp/route/BUCK b/providers/bgp/route/BUCK
deleted file mode 100644
index 5e94e85..0000000
--- a/providers/bgp/route/BUCK
+++ /dev/null
@@ -1,17 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//protocols/bgp/api:onos-protocols-bgp-api',
-    '//protocols/bgp/bgpio:onos-protocols-bgp-bgpio',
-    '//incubator/store:onos-incubator-store',
-    '//incubator/api:onos-incubator-api',
-    '//apps/evpn-route-service/api:onos-apps-evpn-route-service-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests(
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/providers/bgp/topology/BUCK b/providers/bgp/topology/BUCK
deleted file mode 100644
index efa8edb..0000000
--- a/providers/bgp/topology/BUCK
+++ /dev/null
@@ -1,18 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//protocols/bgp/api:onos-protocols-bgp-api',
-    '//protocols/bgp/bgpio:onos-protocols-bgp-bgpio',
-    '//incubator/store:onos-incubator-store',
-    '//incubator/api:onos-incubator-api',
-    '//apps/pcep-api:onos-apps-pcep-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/providers/bgpcep/BUCK b/providers/bgpcep/BUCK
deleted file mode 100644
index 1f0b14d..0000000
--- a/providers/bgpcep/BUCK
+++ /dev/null
@@ -1,26 +0,0 @@
-BUNDLES = [
-  '//protocols/bgp/bgpio:onos-protocols-bgp-bgpio',
-  '//protocols/bgp/api:onos-protocols-bgp-api',
-  '//protocols/bgp/ctl:onos-protocols-bgp-ctl',
-  '//protocols/pcep/pcepio:onos-protocols-pcep-pcepio',
-  '//apps/pcep-api:onos-apps-pcep-api',
-  '//protocols/pcep/server/api:onos-protocols-pcep-server-api',
-  '//providers/bgp/topology:onos-providers-bgp-topology',
-  '//providers/bgp/cfg:onos-providers-bgp-cfg',
-  '//protocols/pcep/server/ctl:onos-protocols-pcep-server-ctl',
-  '//providers/pcep/topology:onos-providers-pcep-topology',
-  '//providers/pcep/tunnel:onos-providers-pcep-tunnel',
-  '//providers/bgpcep/flow:onos-providers-bgpcep-flow',
-  '//apps/pce/app:onos-apps-pce-app',
-  '//apps/pce/pceweb:onos-apps-pce-pceweb',
-  '//apps/pce/bandwidthmgmt:onos-apps-pce-bandwidthmgmt', 
-]
-
-onos_app (
-    title = 'BGPCEP Provider',
-    category = 'Provider',
-    url = 'http://onosproject.org',
-    included_bundles = BUNDLES,
-    description = 'BGPCEP providers.',
-)
-
diff --git a/providers/bgpcep/flow/BUCK b/providers/bgpcep/flow/BUCK
deleted file mode 100644
index 2115eb2..0000000
--- a/providers/bgpcep/flow/BUCK
+++ /dev/null
@@ -1,12 +0,0 @@
-COMPILE_DEPS = [
-  '//lib:CORE_DEPS',
-  '//lib:org.osgi.compendium',
-  '//protocols/bgp/api:onos-protocols-bgp-api',
-  '//incubator/api:onos-incubator-api',
-  '//protocols/pcep/server/api:onos-protocols-pcep-server-api',
-  '//protocols/pcep/pcepio:onos-protocols-pcep-pcepio',
-]
-
-osgi_jar_with_tests(
-    deps = COMPILE_DEPS,
-)
diff --git a/providers/general/BUCK b/providers/general/BUCK
deleted file mode 100644
index 5d4973e..0000000
--- a/providers/general/BUCK
+++ /dev/null
@@ -1,15 +0,0 @@
-BUNDLES = [
-    '//providers/general/device:onos-providers-general-device',
-]
-
-onos_app (
-    app_name = "org.onosproject.generaldeviceprovider",
-    title = 'General Device Provider',
-    category = 'Provider',
-    url = 'http://onosproject.org',
-    included_bundles = BUNDLES,
-    description = 'General device southbound providers.',
-    required_apps = [],
-)
-
-
diff --git a/providers/general/device/BUCK b/providers/general/device/BUCK
deleted file mode 100644
index 4c7bd78..0000000
--- a/providers/general/device/BUCK
+++ /dev/null
@@ -1,13 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/providers/host/BUCK b/providers/host/BUCK
deleted file mode 100644
index b7d90f4..0000000
--- a/providers/host/BUCK
+++ /dev/null
@@ -1,22 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//incubator/api:onos-incubator-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//utils/osgi:onlab-osgi-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-onos_app (
-    app_name = 'org.onosproject.hostprovider',
-    title = 'Host Location Provider',
-    category = 'Provider',
-    url = 'http://onosproject.org',
-    description = 'Provides host discovery and location to the ONOS core by eavesdropping on the ARP and NDP packets.',
-)
diff --git a/providers/hostprobing/BUCK b/providers/hostprobing/BUCK
deleted file mode 100644
index 21bf493..0000000
--- a/providers/hostprobing/BUCK
+++ /dev/null
@@ -1,22 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//incubator/api:onos-incubator-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//utils/osgi:onlab-osgi-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-onos_app (
-    app_name = 'org.onosproject.hostprobingprovider',
-    title = 'Host Probing Provider',
-    category = 'Provider',
-    url = 'http://onosproject.org',
-    description = 'Provides host probing mechanism that discovers or verifies the existence of a host at specific location',
-)
diff --git a/providers/isis/BUCK b/providers/isis/BUCK
deleted file mode 100644
index adc7a6f..0000000
--- a/providers/isis/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-BUNDLES = [
-    '//protocols/isis/api:onos-protocols-isis-api',
-    '//protocols/isis/ctl:onos-protocols-isis-ctl',
-    '//protocols/isis/isisio:onos-protocols-isis-isisio',
-    '//providers/isis/cfg:onos-providers-isis-cfg',
-    '//providers/isis/topology:onos-providers-isis-topology',
-]
-
-onos_app (
-    title = 'ISIS Provider',
-    category = 'Provider',
-    url = 'http://onosproject.org',
-    description = 'ONOS ISIS protocol adapters.',
-    included_bundles = BUNDLES,
-)
-
diff --git a/providers/isis/cfg/BUCK b/providers/isis/cfg/BUCK
deleted file mode 100644
index 494b810..0000000
--- a/providers/isis/cfg/BUCK
+++ /dev/null
@@ -1,10 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//protocols/isis/api:onos-protocols-isis-api',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
diff --git a/providers/isis/topology/BUCK b/providers/isis/topology/BUCK
deleted file mode 100644
index 883ced2..0000000
--- a/providers/isis/topology/BUCK
+++ /dev/null
@@ -1,15 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//protocols/isis/api:onos-protocols-isis-api',
-    '//protocols/isis/ctl:onos-protocols-isis-ctl',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/providers/link/BUCK b/providers/link/BUCK
deleted file mode 100644
index c8a288f..0000000
--- a/providers/link/BUCK
+++ /dev/null
@@ -1,21 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//utils/osgi:onlab-osgi-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-onos_app (
-  app_name = 'org.onosproject.linkdiscovery',
-  title = 'Link Discovery Provider',
-  category = 'Provider',
-  url = 'http://onosproject.org',
-  description = 'ONOS link discovery provider.',
-)
\ No newline at end of file
diff --git a/providers/lisp/BUCK b/providers/lisp/BUCK
deleted file mode 100644
index cad7de2..0000000
--- a/providers/lisp/BUCK
+++ /dev/null
@@ -1,18 +0,0 @@
-BUNDLES = [
-    '//providers/lisp/device:onos-providers-lisp-device',
-    '//providers/lisp/mapping:onos-providers-lisp-mapping',
-    '//providers/lisp/message:onos-providers-lisp-message',
-    '//protocols/lisp/api:onos-protocols-lisp-api',
-    '//protocols/lisp/ctl:onos-protocols-lisp-ctl',
-    '//protocols/lisp/msg:onos-protocols-lisp-msg',
-    '//apps/mappingmanagement/api:onos-apps-mappingmanagement-api',
-]
-
-onos_app (
-    app_name = 'org.onosproject.lisp',
-    title = 'LISP Provider',
-    category = 'Provider',
-    url = 'http://onosproject.org',
-    included_bundles = BUNDLES,
-    description = 'LISP protocol southbound providers.',
-)
diff --git a/providers/lisp/device/BUCK b/providers/lisp/device/BUCK
deleted file mode 100644
index 153579f..0000000
--- a/providers/lisp/device/BUCK
+++ /dev/null
@@ -1,14 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//protocols/lisp/api:onos-protocols-lisp-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//protocols/lisp/api:onos-protocols-lisp-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/providers/lisp/mapping/BUCK b/providers/lisp/mapping/BUCK
deleted file mode 100644
index 7e4bb9d..0000000
--- a/providers/lisp/mapping/BUCK
+++ /dev/null
@@ -1,17 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//protocols/lisp/api:onos-protocols-lisp-api',
-    '//protocols/lisp/msg:onos-protocols-lisp-msg',
-    '//apps/mappingmanagement/api:onos-apps-mappingmanagement-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//protocols/lisp/api:onos-protocols-lisp-api-tests',
-    '//apps/mappingmanagement/api:onos-apps-mappingmanagement-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/providers/lisp/message/BUCK b/providers/lisp/message/BUCK
deleted file mode 100644
index a711177..0000000
--- a/providers/lisp/message/BUCK
+++ /dev/null
@@ -1,9 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//protocols/lisp/api:onos-protocols-lisp-api',
-    '//protocols/lisp/msg:onos-protocols-lisp-msg',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/providers/lldp/BUCK b/providers/lldp/BUCK
deleted file mode 100644
index 8315f65..0000000
--- a/providers/lldp/BUCK
+++ /dev/null
@@ -1,32 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:JACKSON',
-    '//providers/lldpcommon:onos-providers-lldpcommon',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-BUNDLES = [
-    '//providers/lldpcommon:onos-providers-lldpcommon',
-    '//providers/lldp:onos-providers-lldp',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-onos_app (
-    app_name = 'org.onosproject.lldpprovider',
-    title = 'LLDP Link Provider',
-    category = 'Provider',
-    url = 'http://onosproject.org',
-    description = 'Provides link discovery to the ONOS core by eavesdropping on the LLDP control packets.',
-    included_bundles = BUNDLES,
-)
-
diff --git a/providers/lldpcommon/BUCK b/providers/lldpcommon/BUCK
deleted file mode 100644
index 19fa4e7..0000000
--- a/providers/lldpcommon/BUCK
+++ /dev/null
@@ -1,14 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-]
-
-TEST_DEPS = [
-    '//lib:TEST',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
diff --git a/providers/netcfghost/BUCK b/providers/netcfghost/BUCK
deleted file mode 100644
index dfc8af1..0000000
--- a/providers/netcfghost/BUCK
+++ /dev/null
@@ -1,18 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    app_name = 'org.onosproject.netcfghostprovider',
-    title = 'Network Config Host Provider',
-    category = 'Provider',
-    url = 'http://onosproject.org',
-    description = 'Allows operator to prescribe information about known hosts and their locations ' +
-        'using the network configuration subsystem. Such information takes precedence over ' +
-        'information discovered through other host location providers.',
-)
-
diff --git a/providers/netcfglinks/BUCK b/providers/netcfglinks/BUCK
deleted file mode 100644
index 2b643eb..0000000
--- a/providers/netcfglinks/BUCK
+++ /dev/null
@@ -1,30 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//providers/lldpcommon:onos-providers-lldpcommon',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-BUNDLES = [
-    '//providers/lldpcommon:onos-providers-lldpcommon',
-    '//providers/netcfglinks:onos-providers-netcfglinks',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-onos_app (
-    app_name = 'org.onosproject.netcfglinksprovider',
-    title = 'Network Config Link Provider',
-    category = 'Provider',
-    url = 'http://onosproject.org',
-    description = 'Allows operator to prescribe information about known infrastructure links and ' +
-        'their state using the network configuration subsystem. Such information takes precedence ' +
-        'over information discovered through other link discovery providers.',
-    included_bundles = BUNDLES,
-)
diff --git a/providers/netconf/BUCK b/providers/netconf/BUCK
deleted file mode 100644
index 92f7a72..0000000
--- a/providers/netconf/BUCK
+++ /dev/null
@@ -1,25 +0,0 @@
-BUNDLES = [
-    '//providers/netconf/device:onos-providers-netconf-device',
-    '//providers/netconf/alarm:onos-providers-netconf-alarm',
-    '//protocols/netconf/api:onos-protocols-netconf-api',
-    '//protocols/netconf/ctl:onos-protocols-netconf-ctl',
-    '//lib:sshd-core',
-]
-
-EXCLUDED_BUNDLES = [
-    '//lib:ganymed-ssh2',
-]
-
-onos_app (
-    title = 'NETCONF Provider',
-    category = 'Provider',
-    url = 'https://wiki.onosproject.org/display/ONOS/NETCONF',
-    included_bundles = BUNDLES,
-    excluded_bundles = EXCLUDED_BUNDLES,
-    description = 'Provides means for ONOS to discover and trigger the initial handshake procedure ' +
-        'with NETCONF from information given by network configuration.' +
-        'Also provides capabilities for receiving asynchronous alarm notifications from devices.',
-    required_apps = [ 'org.onosproject.faultmanagement'],
-)
-
-
diff --git a/providers/netconf/alarm/BUCK b/providers/netconf/alarm/BUCK
deleted file mode 100644
index 761f2ed..0000000
--- a/providers/netconf/alarm/BUCK
+++ /dev/null
@@ -1,10 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//incubator/api:onos-incubator-api',
-    '//protocols/netconf/api:onos-protocols-netconf-api',
-    '//protocols/netconf/ctl:onos-protocols-netconf-ctl',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/providers/netconf/device/BUCK b/providers/netconf/device/BUCK
deleted file mode 100644
index 89ee36b..0000000
--- a/providers/netconf/device/BUCK
+++ /dev/null
@@ -1,15 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//incubator/api:onos-incubator-api',
-    '//protocols/netconf/api:onos-protocols-netconf-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/providers/null/BUCK b/providers/null/BUCK
deleted file mode 100644
index 8e43e3a..0000000
--- a/providers/null/BUCK
+++ /dev/null
@@ -1,23 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-    import_packages = '*,org.onosproject.cli.net',
-)
-
-onos_app (
-    title = 'Null Provider Suite',
-    category = 'Test Utility',
-    url = 'http://onosproject.org',
-    description = 'Suite of device, link, host, flow and packet providers that allow the operator ' +
-        'to test ONOS against completely fictional network topology. This is useful for conducting ' +
-        'ONOS core performance tests and for developing features that require only control plane ' +
-        '- and not data plane - functionality. ',
-)
diff --git a/providers/openflow/app/BUCK b/providers/openflow/app/BUCK
deleted file mode 100644
index 958004c..0000000
--- a/providers/openflow/app/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-APPS = [
-    'org.onosproject.hostprovider',
-    'org.onosproject.lldpprovider',
-    'org.onosproject.openflow-base',
-]
-
-onos_app (
-    app_name = 'org.onosproject.openflow',
-    title = 'OpenFlow Provider Suite',
-    category = 'Provider',
-    url = 'http://onosproject.org',
-    description = 'Suite of the OpenFlow base providers bundled together with ARP/NDP host ' +
-        'location provider and LLDP link provider.',
-    included_bundles = [ '//utils/osgi:onlab-osgi' ],  # FIXME to allow hollow oar files
-    required_apps = APPS,
-)
diff --git a/providers/openflow/base/BUCK b/providers/openflow/base/BUCK
deleted file mode 100644
index 0513e6f..0000000
--- a/providers/openflow/base/BUCK
+++ /dev/null
@@ -1,25 +0,0 @@
-BUNDLES = [
-    '//lib:openflowj',
-    '//protocols/openflow/api:onos-protocols-openflow-api',
-    '//protocols/openflow/ctl:onos-protocols-openflow-ctl',
-    '//providers/openflow/device:onos-providers-openflow-device',
-    '//providers/openflow/packet:onos-providers-openflow-packet',
-    '//providers/openflow/flow:onos-providers-openflow-flow',
-    '//providers/openflow/group:onos-providers-openflow-group',
-    '//providers/openflow/meter:onos-providers-openflow-meter',
-]
-
-APPS = [
-    'org.onosproject.optical-model',
-]
-
-onos_app (
-    app_name = 'org.onosproject.openflow-base',
-    title = 'OpenFlow Base Provider',
-    category = 'Provider',
-    url = 'https://wiki.onosproject.org/display/ONOS/OpenFlow',
-    description = 'Provides the base suite of device, flow and packet providers that rely on the ' +
-        'OpenFlow protocol to interact with network devices.',
-    included_bundles = BUNDLES,
-    required_apps = APPS,
-)
diff --git a/providers/openflow/device/BUCK b/providers/openflow/device/BUCK
deleted file mode 100644
index 4d9269c..0000000
--- a/providers/openflow/device/BUCK
+++ /dev/null
@@ -1,15 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:openflowj',
-    '//protocols/openflow/api:onos-protocols-openflow-api',
-    '//apps/optical-model:onos-apps-optical-model',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/providers/openflow/flow/BUCK b/providers/openflow/flow/BUCK
deleted file mode 100644
index 77af1be..0000000
--- a/providers/openflow/flow/BUCK
+++ /dev/null
@@ -1,11 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:openflowj',
-    '//protocols/openflow/api:onos-protocols-openflow-api',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
diff --git a/providers/openflow/group/BUCK b/providers/openflow/group/BUCK
deleted file mode 100644
index 6c3a325..0000000
--- a/providers/openflow/group/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:openflowj',
-    '//protocols/openflow/api:onos-protocols-openflow-api',
-    '//providers/openflow/flow:onos-providers-openflow-flow',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/providers/openflow/message/BUCK b/providers/openflow/message/BUCK
deleted file mode 100644
index 9abaabd..0000000
--- a/providers/openflow/message/BUCK
+++ /dev/null
@@ -1,25 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:METRICS',
-    '//lib:openflowj',
-    '//protocols/openflow/api:onos-protocols-openflow-api',
-    '//apps/cpman/api:onos-apps-cpman-api',
-]
-
-BUNDLES = [
-    '//apps/cpman/api:onos-apps-cpman-api',
-    ':onos-providers-openflow-message',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    app_name = 'org.onosproject.openflow-message',
-    title = 'Control Message Stats Provider',
-    category = 'Provider',
-    url = 'http://onosproject.org',
-    description = 'ONOS OpenFlow control message provider.',
-    included_bundles = BUNDLES,
-)
diff --git a/providers/openflow/meter/BUCK b/providers/openflow/meter/BUCK
deleted file mode 100644
index 0e94809..0000000
--- a/providers/openflow/meter/BUCK
+++ /dev/null
@@ -1,10 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:openflowj',
-    '//protocols/openflow/api:onos-protocols-openflow-api',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/providers/openflow/packet/BUCK b/providers/openflow/packet/BUCK
deleted file mode 100644
index cacd1b1..0000000
--- a/providers/openflow/packet/BUCK
+++ /dev/null
@@ -1,10 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:openflowj',
-    '//protocols/openflow/api:onos-protocols-openflow-api',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
diff --git a/providers/ospf/BUCK b/providers/ospf/BUCK
deleted file mode 100644
index 829827e..0000000
--- a/providers/ospf/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-BUNDLES = [
-    '//protocols/ospf/api:onos-protocols-ospf-api',
-    '//protocols/ospf/ctl:onos-protocols-ospf-ctl',
-    '//protocols/ospf/protocol:onos-protocols-ospf-protocol',
-    '//providers/ospf/cfg:onos-providers-ospf-cfg',
-    '//providers/ospf/topology:onos-providers-ospf-topology',
-]
-
-onos_app (
-    title = 'OSPF Provider',
-    category = 'Provider',
-    url = 'http://onosproject.org',
-    description = 'ONOS OSPF protocol adapters.',
-    included_bundles = BUNDLES,
-)
-
diff --git a/providers/ospf/cfg/BUCK b/providers/ospf/cfg/BUCK
deleted file mode 100644
index 83c5e19..0000000
--- a/providers/ospf/cfg/BUCK
+++ /dev/null
@@ -1,10 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//protocols/ospf/api:onos-protocols-ospf-api',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
diff --git a/providers/ospf/topology/BUCK b/providers/ospf/topology/BUCK
deleted file mode 100644
index bb95985..0000000
--- a/providers/ospf/topology/BUCK
+++ /dev/null
@@ -1,16 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//protocols/ospf/api:onos-protocols-ospf-api',
-    '//protocols/ospf/ctl:onos-protocols-ospf-ctl',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//lib:JACKSON',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
diff --git a/providers/ovsdb/BUCK b/providers/ovsdb/BUCK
deleted file mode 100644
index 0f36e70..0000000
--- a/providers/ovsdb/BUCK
+++ /dev/null
@@ -1,14 +0,0 @@
-APPS = [
-    'org.onosproject.ovsdb-base',
-    'org.onosproject.ovsdbhostprovider',
-]
-
-onos_app (
-    app_name = 'org.onosproject.ovsdb',
-    title = 'OVSDB Southbound Meta',
-    category = 'Provider',
-    url = 'http://onosproject.org',
-    description = 'ONOS OVSDB southbound meta application',
-    included_bundles = [ '//utils/osgi:onlab-osgi' ],  # FIXME to allow hollow oar files
-    required_apps = APPS,
-)
diff --git a/providers/ovsdb/base/BUCK b/providers/ovsdb/base/BUCK
deleted file mode 100644
index 9261e9a..0000000
--- a/providers/ovsdb/base/BUCK
+++ /dev/null
@@ -1,17 +0,0 @@
-BUNDLES = [
-    '//protocols/ovsdb/rfc:onos-protocols-ovsdb-rfc',
-    '//protocols/ovsdb/api:onos-protocols-ovsdb-api',
-    '//protocols/ovsdb/ctl:onos-protocols-ovsdb-ctl',
-
-    '//providers/ovsdb/tunnel:onos-providers-ovsdb-tunnel',
-    '//providers/ovsdb/device:onos-providers-ovsdb-device',
-]
-
-onos_app (
-    app_name = 'org.onosproject.ovsdb-base',
-    title = 'OVSDB Provider',
-    category = 'Provider',
-    url = 'http://onosproject.org',
-    description = 'ONOS OVSDB provider.',
-    included_bundles = BUNDLES,
-)
diff --git a/providers/ovsdb/device/BUCK b/providers/ovsdb/device/BUCK
deleted file mode 100644
index 582c16e..0000000
--- a/providers/ovsdb/device/BUCK
+++ /dev/null
@@ -1,15 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//protocols/ovsdb/api:onos-protocols-ovsdb-api',
-    '//protocols/ovsdb/rfc:onos-protocols-ovsdb-rfc',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS'
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS
-)
-
diff --git a/providers/ovsdb/host/BUCK b/providers/ovsdb/host/BUCK
deleted file mode 100644
index bdb2b28..0000000
--- a/providers/ovsdb/host/BUCK
+++ /dev/null
@@ -1,17 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//protocols/ovsdb/api:onos-protocols-ovsdb-api',
-    '//protocols/ovsdb/rfc:onos-protocols-ovsdb-rfc',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
-
-onos_app (
-    app_name = 'org.onosproject.ovsdbhostprovider',
-    title = 'OVSDB host Provider',
-    category = 'Provider',
-    url = 'http://onosproject.org',
-    description = 'OVSDB Host provider.',
-)
diff --git a/providers/ovsdb/tunnel/BUCK b/providers/ovsdb/tunnel/BUCK
deleted file mode 100644
index 571e5ed..0000000
--- a/providers/ovsdb/tunnel/BUCK
+++ /dev/null
@@ -1,10 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//protocols/ovsdb/api:onos-protocols-ovsdb-api',
-    '//protocols/ovsdb/rfc:onos-protocols-ovsdb-rfc',
-    '//incubator/api:onos-incubator-api',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/providers/p4runtime/BUCK b/providers/p4runtime/BUCK
deleted file mode 100644
index 7df28a4..0000000
--- a/providers/p4runtime/BUCK
+++ /dev/null
@@ -1,17 +0,0 @@
-BUNDLES = [
-    '//providers/p4runtime/packet:onos-providers-p4runtime-packet',
-]
-
-onos_app (
-    app_name = 'org.onosproject.p4runtime',
-    title = 'P4Runtime Provider',
-    category = 'Provider',
-    url = 'http://onosproject.org',
-    included_bundles = BUNDLES,
-    description = 'P4Runtime southbound providers.',
-    required_apps = [
-        'org.onosproject.protocols.p4runtime',
-    ]
-)
-
-
diff --git a/providers/p4runtime/packet/BUCK b/providers/p4runtime/packet/BUCK
deleted file mode 100644
index 995095f..0000000
--- a/providers/p4runtime/packet/BUCK
+++ /dev/null
@@ -1,8 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//protocols/p4runtime/api:onos-protocols-p4runtime-api',
-]
-
-osgi_jar (
-    deps = COMPILE_DEPS,
-)
\ No newline at end of file
diff --git a/providers/pcep/BUCK b/providers/pcep/BUCK
deleted file mode 100644
index 0f5c1d0..0000000
--- a/providers/pcep/BUCK
+++ /dev/null
@@ -1,20 +0,0 @@
-BUNDLES = [
-    '//providers/pcep/topology:onos-providers-pcep-topology',
-    '//providers/pcep/tunnel:onos-providers-pcep-tunnel',
-    '//providers/pcep/cli:onos-providers-pcep-cli',
-    '//protocols/pcep/server/api:onos-protocols-pcep-server-api',
-    '//protocols/pcep/pcepio:onos-protocols-pcep-pcepio',
-    '//protocols/pcep/server/ctl:onos-protocols-pcep-server-ctl',
-    '//apps/pcep-api:onos-apps-pcep-api',
-    '//lib:io_netty_netty',
-]
-
-onos_app (
-    title = 'PCEP Provider',
-    category = 'Provider',
-    url = 'http://onosproject.org',
-    included_bundles = BUNDLES,
-    description = 'PCEP protocol providers root.',
-    required_apps = [ 'org.onosproject.pcep-api', 'org.onosproject.optical-model' ],
-)
-
diff --git a/providers/pcep/cli/BUCK b/providers/pcep/cli/BUCK
deleted file mode 100644
index ed68b8f..0000000
--- a/providers/pcep/cli/BUCK
+++ /dev/null
@@ -1,12 +0,0 @@
-COMPILE_DEPS = [
-  '//lib:CORE_DEPS',
-  '//incubator/api:onos-incubator-api',
-  '//protocols/pcep/server/ctl:onos-protocols-pcep-server-ctl',
-  '//protocols/pcep/server/api:onos-protocols-pcep-server-api',
-  '//lib:org.apache.karaf.shell.console',
-  '//cli:onos-cli',
-]
-
-osgi_jar_with_tests (
-  deps = COMPILE_DEPS,
-)
diff --git a/providers/pcep/topology/BUCK b/providers/pcep/topology/BUCK
deleted file mode 100644
index b3daa56..0000000
--- a/providers/pcep/topology/BUCK
+++ /dev/null
@@ -1,25 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//lib:JACKSON',
-    '//incubator/api:onos-incubator-api',
-    '//protocols/ovsdb/api:onos-protocols-ovsdb-api',
-    '//protocols/ovsdb/rfc:onos-protocols-ovsdb-rfc',
-    '//apps/pcep-api:onos-apps-pcep-api',
-    '//protocols/pcep/server/api:onos-protocols-pcep-server-api',
-    '//protocols/pcep/pcepio:onos-protocols-pcep-pcepio',
-    '//core/api:onos-api-tests',
-    '//apps/optical-model:onos-apps-optical-model',
-    '//lib:io_netty_netty',
-]
-
-TEST_DEPS = [
-    '//lib:TEST',
-    '//protocols/pcep/server/api:onos-protocols-pcep-server-api-tests',
-    '//apps/pcep-api:onos-apps-pcep-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/providers/pcep/tunnel/BUCK b/providers/pcep/tunnel/BUCK
deleted file mode 100644
index 97adbd1..0000000
--- a/providers/pcep/tunnel/BUCK
+++ /dev/null
@@ -1,25 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:NETTY',
-    '//protocols/ovsdb/api:onos-protocols-ovsdb-api',
-    '//protocols/ovsdb/rfc:onos-protocols-ovsdb-rfc',
-    '//apps/pcep-api:onos-apps-pcep-api',
-    '//incubator/api:onos-incubator-api',
-    '//protocols/pcep/pcepio:onos-protocols-pcep-pcepio',
-    '//protocols/pcep/server/api:onos-protocols-pcep-server-api',
-    '//protocols/pcep/server/ctl:onos-protocols-pcep-server-ctl',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//lib:io_netty_netty',
-    '//lib:io_netty_netty_transport',
-    '//protocols/pcep/server/api:onos-protocols-pcep-server-api-tests',
-    '//apps/pcep-api:onos-apps-pcep-api-tests',
-    '//incubator/api:onos-incubator-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/providers/rest/BUCK b/providers/rest/BUCK
deleted file mode 100644
index b6e2e2b..0000000
--- a/providers/rest/BUCK
+++ /dev/null
@@ -1,21 +0,0 @@
-BUNDLES = [
-    '//providers/rest/device:onos-providers-rest-device',
-    '//protocols/rest/api:onos-protocols-rest-api',
-    '//protocols/rest/ctl:onos-protocols-rest-ctl',
-    '//lib:jersey-client',
-    '//lib:jersey-security',
-    '//lib:commons-io',
-    '//lib:httpclient-osgi',
-    '//lib:httpcore-osgi',
-]
-
-onos_app (
-    app_name = 'org.onosproject.restsb',
-    title = 'REST Provider',
-    category = 'Provider',
-    url = 'https://wiki.onosproject.org/display/ONOS/REST',
-    included_bundles = BUNDLES,
-    description = 'Provides means for ONOS to discover the existence of a REST API enabled device ' +
-        'or proxy for multiple devices from information given by network configuration.',
-)
-
diff --git a/providers/rest/device/BUCK b/providers/rest/device/BUCK
deleted file mode 100644
index d84b307..0000000
--- a/providers/rest/device/BUCK
+++ /dev/null
@@ -1,14 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//protocols/ovsdb/api:onos-protocols-ovsdb-api',
-    '//protocols/ovsdb/rfc:onos-protocols-ovsdb-rfc',
-    '//apps/pcep-api:onos-apps-pcep-api',
-    '//incubator/api:onos-incubator-api',
-    '//protocols/rest/api:onos-protocols-rest-api',
-    '//lib:javax.ws.rs-api',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/providers/snmp/BUCK b/providers/snmp/BUCK
deleted file mode 100644
index 598515d..0000000
--- a/providers/snmp/BUCK
+++ /dev/null
@@ -1,21 +0,0 @@
-BUNDLES = [
-  '//providers/snmp/device:onos-providers-snmp-device',
-  '//providers/snmp/alarm:onos-providers-snmp-alarm',
-  '//protocols/snmp/api:onos-protocols-snmp-api',
-  '//protocols/snmp/ctl:onos-protocols-snmp-ctl',
-  '//lib:org.apache.servicemix.bundles.snmp4j',
-  '//lib:mibs-rfc',
-  '//lib:snmp-core',
-  '//lib:mibs-net-snmp',
-]
-
-onos_app (
-    app_name = 'org.onosproject.snmp',
-    title = 'SNMP Provider',
-    category = 'Provider',
-    url = 'https://wiki.onosproject.org/display/ONOS/SNMP',
-    included_bundles = BUNDLES,
-    description = 'Provides means for ONOS to discover and trigger the initial handshake procedure ' +
-        'with SNMP enabled devices from information given by network configuration.',
-    required_apps = [ 'org.onosproject.faultmanagement'],
-)
diff --git a/providers/snmp/alarm/BUCK b/providers/snmp/alarm/BUCK
deleted file mode 100644
index a5f0c4b..0000000
--- a/providers/snmp/alarm/BUCK
+++ /dev/null
@@ -1,13 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//incubator/api:onos-incubator-api',
-    '//protocols/snmp/api:onos-protocols-snmp-api',
-    '//protocols/snmp/ctl:onos-protocols-snmp-ctl',
-    '//providers/snmp/device:onos-providers-snmp-device',
-    '//lib:org.apache.servicemix.bundles.snmp4j',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
diff --git a/providers/snmp/device/BUCK b/providers/snmp/device/BUCK
deleted file mode 100644
index 317784e..0000000
--- a/providers/snmp/device/BUCK
+++ /dev/null
@@ -1,21 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:org.apache.servicemix.bundles.snmp4j',
-    '//lib:snmp-core',
-    '//lib:mibs-net-snmp',
-    '//lib:mibs-rfc',
-    '//incubator/api:onos-incubator-api',
-    '//protocols/snmp/api:onos-protocols-snmp-api',
-    '//protocols/snmp/ctl:onos-protocols-snmp-ctl',
-]
-
-TEST_DEPS = [
-    '//lib:TEST',
-    '//core/api:onos-api-tests',
-]
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
diff --git a/providers/tl1/BUCK b/providers/tl1/BUCK
deleted file mode 100644
index 0ccb0ad..0000000
--- a/providers/tl1/BUCK
+++ /dev/null
@@ -1,15 +0,0 @@
-BUNDLES = [
-    '//providers/tl1/device:onos-providers-tl1-device',
-    '//protocols/tl1/api:onos-protocols-tl1-api',
-    '//protocols/tl1/ctl:onos-protocols-tl1-ctl',
-]
-
-onos_app (
-    app_name = 'org.onosproject.tl1',
-    title = 'TL1 Provider',
-    category = 'Provider',
-    url = 'https://wiki.onosproject.org/display/ONOS/TL1',
-    included_bundles = BUNDLES,
-    description = 'Provides means for ONOS to discover and trigger the initial handshake procedure ' +
-        'with TL1 enable devices from information given by network configuration.',
-)
diff --git a/providers/tl1/device/BUCK b/providers/tl1/device/BUCK
deleted file mode 100644
index 988bfb0..0000000
--- a/providers/tl1/device/BUCK
+++ /dev/null
@@ -1,15 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//incubator/api:onos-incubator-api',
-    '//protocols/tl1/api:onos-protocols-tl1-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/providers/xmpp/device/BUCK b/providers/xmpp/device/BUCK
deleted file mode 100644
index 265d928..0000000
--- a/providers/xmpp/device/BUCK
+++ /dev/null
@@ -1,26 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:tinder-xmpp',
-    '//protocols/xmpp/core/api:onos-protocols-xmpp-core-api',
-    '//protocols/xmpp/core/ctl:onos-protocols-xmpp-core-ctl',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
-onos_app (
-    app_name = 'org.onosproject.xmpp.device',
-    title = 'XMPP Device Provider',
-    category = 'Provider',
-    url = 'https://wiki.onosproject.org/display/ONOS/XMPP+as+SBI',
-    description = 'XMPP protocol southbound provider.',
-    required_apps = [
-        'org.onosproject.protocols.xmpp',
-    ]
-)
\ No newline at end of file
diff --git a/tools/build/bazel/generate_workspace.bzl b/tools/build/bazel/generate_workspace.bzl
index 4b81a6f..6330fcb 100644
--- a/tools/build/bazel/generate_workspace.bzl
+++ b/tools/build/bazel/generate_workspace.bzl
@@ -1,4 +1,4 @@
-# ***** This file was auto-generated at Wed, 14 Nov 2018 01:38:56 GMT. Do not edit this file manually. *****
+# ***** This file was auto-generated at Tue, 27 Nov 2018 19:36:00 GMT. Do not edit this file manually. *****
 # ***** Use onos-lib-gen *****
 
 load("//tools/build/bazel:variables.bzl", "ONOS_GROUP_ID", "ONOS_VERSION")
diff --git a/tools/build/bazel/osgi_java_library.bzl b/tools/build/bazel/osgi_java_library.bzl
index bd68a30..b7a73cf 100644
--- a/tools/build/bazel/osgi_java_library.bzl
+++ b/tools/build/bazel/osgi_java_library.bzl
@@ -281,7 +281,7 @@
             executable = True,
             cfg = "host",
             allow_files = True,
-            default = Label("//tools/build/buck-plugin:swagger_generator"),
+            default = Label("//tools/build/swagger:swagger_generator"),
         ),
         "swagger_java": attr.output(),
     },
@@ -305,7 +305,7 @@
             executable = True,
             cfg = "host",
             allow_files = True,
-            default = Label("//tools/build/buck-plugin:swagger_generator"),
+            default = Label("//tools/build/swagger:swagger_generator"),
         ),
         "swagger_json": attr.output(),
     },
diff --git a/tools/build/buck-plugin/BUCK b/tools/build/buck-plugin/BUCK
deleted file mode 100644
index 8593941..0000000
--- a/tools/build/buck-plugin/BUCK
+++ /dev/null
@@ -1,46 +0,0 @@
-# Comment the remote_jar out for local buck development
-remote_jar (
-  name = 'buck-api',
-  out = 'buck.jar',
-  url = 'https://oss.sonatype.org/content/repositories/snapshots/org/onosproject/buck-api/0.1-SNAPSHOT/buck-api-0.1-20161113.012708-6.jar',
-  sha1 = 'da823563b03964eafc9ff76cd721b9253ae473a1',
-  visibility = [],
-)
-
-# Uncomment the prebuilt_jar and copy buck-api to lib/buck.jar for local buck development
-# prebuilt_jar (
-#  name = 'buck-api',
-#  binary_jar = 'lib/buck.jar'
-# )
-
-# Use buck's guava version - 19.0
-remote_jar (
-  name = 'guava',
-  out = 'guava-19.0.jar',
-  url = 'mvn:com.google.guava:guava:jar:19.0',
-  sha1 = '6ce200f6b23222af3d8abb6b6459e6c44f4bb0e9',
-  maven_coords = 'com.google.guava:guava:19.0',
-)
-
-COMPILE = [
-  '//lib:qdox',
-  ':guava',
-  '//lib:bndlib',
-  '//lib:org.apache.felix.scr.bnd'
-]
-
-java_library(
-  name = 'lib',
-  srcs = glob(['src/main/java/**/*.java']),
-  resources = glob(['src/main/resources/**/*']),
-  resources_root = 'src/main/resources',
-  deps = COMPILE,
-  provided_deps = [':buck-api'],
-  visibility = [],
-)
-
-java_binary(
-  name = 'onos',
-  deps = [':lib'],
-  visibility = ['PUBLIC'],
-)
diff --git a/tools/build/buck-plugin/buck-plugin-install b/tools/build/buck-plugin/buck-plugin-install
deleted file mode 100755
index 15cf0e6..0000000
--- a/tools/build/buck-plugin/buck-plugin-install
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-
-PLUGINS=$ONOS_ROOT/bin/plugins
-
-set -e
-
-# Build it first
-pluginJar=$(NO_BUCKD=1 onos-buck build //tools/build/buck-plugin:onos --no-cache --show-output | grep onos.jar | cut -d\  -f2)
-
-# Then install it
-mkdir -p $PLUGINS
-cp $ONOS_ROOT/$pluginJar $PLUGINS
-
-ls -l $PLUGINS
diff --git a/tools/build/buck-plugin/buck-plugin-test b/tools/build/buck-plugin/buck-plugin-test
deleted file mode 100755
index cb8fd76..0000000
--- a/tools/build/buck-plugin/buck-plugin-test
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-NO_BUCKD=1 onos-buck build //apps/dhcp/app:onos-apps-dhcp-app --no-cache --show-output
diff --git a/tools/build/buck-plugin/src/main/java/org/onosproject/onosjar/OSGiWrapper.java b/tools/build/buck-plugin/src/main/java/org/onosproject/onosjar/OSGiWrapper.java
deleted file mode 100644
index 86c6938..0000000
--- a/tools/build/buck-plugin/src/main/java/org/onosproject/onosjar/OSGiWrapper.java
+++ /dev/null
@@ -1,496 +0,0 @@
-/*
- * Copyright 2016-present Open Networking Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onosproject.onosjar;
-
-import aQute.bnd.header.Attrs;
-import aQute.bnd.header.Parameters;
-import aQute.bnd.osgi.Analyzer;
-import aQute.bnd.osgi.Builder;
-import aQute.bnd.osgi.Constants;
-import aQute.bnd.osgi.Descriptors;
-import aQute.bnd.osgi.FileResource;
-import aQute.bnd.osgi.Jar;
-import aQute.bnd.osgi.Packages;
-import aQute.bnd.osgi.Processor;
-import aQute.bnd.osgi.Resource;
-import com.facebook.buck.step.ExecutionContext;
-import com.facebook.buck.step.Step;
-import com.facebook.buck.step.StepExecutionResult;
-import com.google.common.base.MoreObjects;
-import com.google.common.base.Strings;
-import com.google.common.collect.ImmutableSortedSet;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
-import org.apache.felix.scrplugin.bnd.SCRDescriptorBndPlugin;
-import org.codehaus.plexus.util.DirectoryScanner;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.PrintStream;
-import java.nio.file.FileVisitResult;
-import java.nio.file.FileVisitor;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.nio.file.SimpleFileVisitor;
-import java.nio.file.attribute.BasicFileAttributes;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.jar.Manifest;
-import java.util.stream.Collectors;
-
-import static java.nio.file.Files.walkFileTree;
-
-/**
- * BND-based wrapper to convert Buck JARs to OSGi-compatible JARs.
- */
-public class OSGiWrapper implements Step {
-
-    private static final String EMBED_DEPENDENCY = "Embed-Dependency";
-    private static final String EMBEDDED_ARTIFACTS = "Embedded-Artifacts";
-
-    private Path inputJar;
-    private Path outputJar;
-    private Path sourcesDir;
-    private Path classesDir;
-    private List<String> classpath;
-
-    private String bundleName;
-    private String groupId;
-    private String bundleSymbolicName;
-    private String bundleVersion;
-
-    private String importPackages;
-    private String privatePackages;
-    private String dynamicimportPackages;
-    private String embeddedDependencies;
-
-    private String exportPackages;
-    private String includeResources;
-    private Set<String> includedResources = Sets.newHashSet();
-
-    private String bundleDescription;
-    private String bundleLicense;
-
-    private String bundleClasspath;
-
-    private String webContext;
-
-    private PrintStream stderr = System.err;
-
-    public OSGiWrapper(Path inputJar,
-                       Path outputJar,
-                       Path sourcesDir,
-                       Path classesDir,
-                       ImmutableSortedSet<Path> classpath,
-                       String bundleName,
-                       String groupId,
-                       String bundleVersion,
-                       String bundleLicense,
-                       String importPackages,
-                       String exportPackages,
-                       String includeResources,
-                       String webContext,
-                       String dynamicimportPackages,
-                       String embeddedDependencies,
-                       String bundleDescription,
-                       String privatePackages,
-                       String bundleClasspath) {
-        this.inputJar = inputJar;
-        this.sourcesDir = sourcesDir;
-        this.classesDir = classesDir;
-        this.classpath = Lists.newArrayList(
-                classpath.stream().map(Path::toString).collect(Collectors.toList()));
-        if (!this.classpath.contains(inputJar.toString())) {
-            this.classpath.add(0, inputJar.toString());
-        }
-        this.outputJar = outputJar;
-
-        this.bundleName = bundleName;
-        this.groupId = groupId;
-        this.bundleSymbolicName = String.format("%s.%s", groupId, bundleName);
-
-        this.bundleVersion = bundleVersion;
-        this.bundleLicense = bundleLicense;
-        this.bundleDescription = bundleDescription;
-
-        this.importPackages = importPackages;
-        this.privatePackages = privatePackages;
-        this.dynamicimportPackages = dynamicimportPackages;
-        this.embeddedDependencies = embeddedDependencies;
-        this.exportPackages = exportPackages;
-        this.includeResources = includeResources;
-
-        this.webContext = webContext;
-
-        this.bundleClasspath = bundleClasspath;
-    }
-
-    private void setProperties(Analyzer analyzer) {
-
-        analyzer.setProperty(Analyzer.BUNDLE_NAME, bundleName);
-        analyzer.setProperty(Analyzer.BUNDLE_SYMBOLICNAME, bundleSymbolicName);
-        analyzer.setProperty(Analyzer.BUNDLE_VERSION, bundleVersion.replace('-', '.'));
-
-        if (bundleDescription != null) {
-            analyzer.setProperty(Analyzer.BUNDLE_DESCRIPTION, bundleDescription);
-        }
-        if (bundleLicense != null) {
-            analyzer.setProperty(Analyzer.BUNDLE_LICENSE, bundleLicense);
-        }
-
-        //TODO consider using stricter version policy
-        //analyzer.setProperty("-provider-policy", "${range;[===,==+)}");
-        //analyzer.setProperty("-consumer-policy", "${range;[===,==+)}");
-
-        if (privatePackages != null) {
-            analyzer.setProperty(Analyzer.PRIVATE_PACKAGE, privatePackages);
-        }
-        analyzer.setProperty(Analyzer.REMOVEHEADERS, "Private-Package,Include-Resource");
-
-        analyzer.setProperty(Analyzer.DYNAMICIMPORT_PACKAGE,
-                             dynamicimportPackages);
-
-        // TODO include version in export, but not in import
-        analyzer.setProperty(Analyzer.EXPORT_PACKAGE, exportPackages);
-
-        // TODO we may need INCLUDE_RESOURCE, or that might be done by Buck
-        // FIXME NOTE we handle this manually below
-        if (includeResources != null) {
-            analyzer.setProperty(Analyzer.INCLUDE_RESOURCE, includeResources);
-        }
-
-        if (embeddedDependencies != null) {
-            analyzer.setProperty(EMBED_DEPENDENCY, embeddedDependencies);
-        }
-
-        // There are no good defaults so make sure you set the Import-Package
-        analyzer.setProperty(Analyzer.IMPORT_PACKAGE, importPackages);
-
-        if (isWab()) {
-            analyzer.setProperty(Analyzer.WAB, "src/main/webapp/");
-            analyzer.setProperty("Web-ContextPath", webContext);
-            analyzer.setProperty(Analyzer.IMPORT_PACKAGE, importPackages +
-                    ",org.glassfish.jersey.servlet,org.jvnet.mimepull\n");
-        }
-    }
-
-    public boolean execute() {
-        Builder analyzer = new Builder();
-        try {
-
-            Jar jar = new Jar(inputJar.toFile());   // where our data is
-            analyzer.setJar(jar);                   // give bnd the contents
-
-            // You can provide additional class path entries to allow
-            // bnd to pickup export version from the packageinfo file,
-            // Version annotation, or their manifests.
-            analyzer.addClasspath(classpath);
-
-            setProperties(analyzer);
-
-            // Analyze the target JAR first
-            analyzer.analyze();
-
-            // Scan the JAR for Felix SCR annotations and generate XML files
-            Map<String, String> properties = Maps.newHashMap();
-            properties.put("destdir", classesDir.toAbsolutePath().toString());
-            SCRDescriptorBndPlugin scrDescriptorBndPlugin = new SCRDescriptorBndPlugin();
-            scrDescriptorBndPlugin.setProperties(properties);
-            scrDescriptorBndPlugin.setReporter(analyzer);
-            scrDescriptorBndPlugin.analyzeJar(analyzer);
-
-            //Add local packges to jar file.
-            //FIXME removing this call for now; not sure what exactly it's doing
-            //addLocalPackages(new File(classesDir.toString()), analyzer);
-
-            //add resources.
-            if (includeResources != null || embeddedDependencies != null) {
-                doIncludeResources(analyzer);
-            }
-
-            // Repack the JAR as a WAR
-            doWabStaging(analyzer);
-
-            // Calculate the manifest
-            Manifest manifest = analyzer.calcManifest();
-
-            //Build the jar files
-            //FIXME this call conflicts with some of the above
-//            analyzer.build();
-
-            if (analyzer.isOk()) {
-                //add calculated manifest file.
-                analyzer.getJar().setManifest(manifest);
-                if (analyzer.save(outputJar.toFile(), true)) {
-                    log("Saved!\n");
-                } else {
-                    warn("Failed to create jar \n");
-                    return false;
-                }
-            } else {
-                warn("Analyzer Errors:\n%s\n", analyzer.getErrors());
-                return false;
-            }
-
-            analyzer.close();
-
-            return true;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return false;
-        }
-    }
-
-    private static void addLocalPackages(File outputDirectory, Analyzer analyzer) throws IOException {
-        Packages packages = new Packages();
-
-        if (outputDirectory != null && outputDirectory.isDirectory()) {
-            // scan classes directory for potential packages
-            DirectoryScanner scanner = new DirectoryScanner();
-            scanner.setBasedir(outputDirectory);
-            scanner.setIncludes(new String[]
-                                        {"**/*.class"});
-
-            scanner.addDefaultExcludes();
-            scanner.scan();
-
-            String[] paths = scanner.getIncludedFiles();
-            for (int i = 0; i < paths.length; i++) {
-                packages.put(analyzer.getPackageRef(getPackageName(paths[i])));
-            }
-        }
-
-        Packages exportedPkgs = new Packages();
-        Packages privatePkgs = new Packages();
-
-        boolean noprivatePackages = "!*".equals(analyzer.getProperty(Analyzer.PRIVATE_PACKAGE));
-
-        for (Descriptors.PackageRef pkg : packages.keySet()) {
-            // mark all source packages as private by default (can be overridden by export list)
-            privatePkgs.put(pkg);
-
-            // we can't export the default package (".") and we shouldn't export internal packages
-            String fqn = pkg.getFQN();
-            if (noprivatePackages || !(".".equals(fqn) || fqn.contains(".internal") || fqn.contains(".impl"))) {
-                exportedPkgs.put(pkg);
-            }
-        }
-
-        Properties properties = analyzer.getProperties();
-        String exported = properties.getProperty(Analyzer.EXPORT_PACKAGE);
-        if (exported == null) {
-            if (!properties.containsKey(Analyzer.EXPORT_CONTENTS)) {
-                // no -exportcontents overriding the exports, so use our computed list
-                for (Attrs attrs : exportedPkgs.values()) {
-                    attrs.put(Constants.SPLIT_PACKAGE_DIRECTIVE, "merge-first");
-                }
-                properties.setProperty(Analyzer.EXPORT_PACKAGE, Processor.printClauses(exportedPkgs));
-            } else {
-                // leave Export-Package empty (but non-null) as we have -exportcontents
-                properties.setProperty(Analyzer.EXPORT_PACKAGE, "");
-            }
-        }
-
-        String internal = properties.getProperty(Analyzer.PRIVATE_PACKAGE);
-        if (internal == null) {
-            if (!privatePkgs.isEmpty()) {
-                for (Attrs attrs : privatePkgs.values()) {
-                    attrs.put(Constants.SPLIT_PACKAGE_DIRECTIVE, "merge-first");
-                }
-                properties.setProperty(Analyzer.PRIVATE_PACKAGE, Processor.printClauses(privatePkgs));
-            } else {
-                // if there are really no private packages then use "!*" as this will keep the Bnd Tool happy
-                properties.setProperty(Analyzer.PRIVATE_PACKAGE, "!*");
-            }
-        }
-    }
-
-    private static String getPackageName(String filename) {
-        int n = filename.lastIndexOf(File.separatorChar);
-        return n < 0 ? "." : filename.substring(0, n).replace(File.separatorChar, '.');
-    }
-
-    private boolean isWab() {
-        return webContext != null;
-    }
-
-    private void doWabStaging(Analyzer analyzer) throws Exception {
-        if (!isWab()) {
-            return;
-        }
-        String wab = analyzer.getProperty(analyzer.WAB);
-        Jar dot = analyzer.getJar();
-
-        log("wab %s", wab);
-
-        if (bundleClasspath != null) {
-            analyzer.setBundleClasspath("WEB-INF/classes," + bundleClasspath);
-        }
-
-        Set<String> paths = new HashSet<>(dot.getResources().keySet());
-
-        for (String path : paths) {
-            if (path.indexOf('/') > 0 && !Character.isUpperCase(path.charAt(0))) {
-                log("wab: moving: %s", path);
-                dot.rename(path, "WEB-INF/classes/" + path);
-            }
-        }
-
-        Path wabRoot = Paths.get(wab);
-        includeFiles(dot, null, wabRoot.toString());
-    }
-
-    /**
-     * Parse the Bundle-Includes header. Files in the bundles Include header are
-     * included in the jar. The source can be a directory or a file.
-     *
-     * @throws Exception
-     */
-    private void doIncludeResources(Analyzer analyzer) throws Exception {
-        String includes = analyzer.getProperty(Analyzer.INCLUDE_RESOURCE);
-        if (includes == null) {
-            return;
-        }
-        Parameters clauses = analyzer.parseHeader(includes);
-        Jar jar = analyzer.getJar();
-
-        for (Map.Entry<String, Attrs> entry : clauses.entrySet()) {
-            String name = entry.getKey();
-            Map<String, String> extra = entry.getValue();
-            // TODO consider doing something with extras
-
-            String[] parts = name.split("\\s*=\\s*");
-            String source = parts[0];
-            String destination = parts[0];
-            if (parts.length == 2) {
-                source = parts[1];
-            }
-
-            includeFiles(jar, destination, source);
-        }
-    }
-
-    private void includeFiles(Jar jar, String destinationRoot, String sourceRoot)
-            throws IOException {
-
-        Path classesBasedPath = classesDir.resolve(sourceRoot);
-        Path sourceBasedPath = sourcesDir.resolve(sourceRoot);
-
-        File classFile = classesBasedPath.toFile();
-        File sourceFile = sourceBasedPath.toFile();
-
-        if (classFile.isFile()) {
-            addFileToJar(jar, destinationRoot, classesBasedPath.toAbsolutePath().toString());
-        } else if (sourceFile.isFile()) {
-            addFileToJar(jar, destinationRoot, sourceBasedPath.toAbsolutePath().toString());
-        } else if (classFile.isDirectory()) {
-            includeDirectory(jar, destinationRoot, classesBasedPath);
-        } else if (sourceFile.isDirectory()) {
-            includeDirectory(jar, destinationRoot, sourceBasedPath);
-        } else {
-            warn("Skipping resource in bundle %s: %s (File Not Found)\n",
-                 bundleSymbolicName, sourceRoot);
-        }
-    }
-
-    private void includeDirectory(Jar jar, String destinationRoot, Path sourceRoot)
-            throws IOException {
-        // iterate through sources
-        // put each source on the jar
-        FileVisitor<Path> visitor = new SimpleFileVisitor<Path>() {
-            @Override
-            public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
-                Path relativePath = sourceRoot.relativize(file);
-                String destination = destinationRoot != null ?
-                        destinationRoot + "/" + relativePath.toString() : //TODO
-                        relativePath.toString();
-
-                addFileToJar(jar, destination, file.toAbsolutePath().toString());
-                return FileVisitResult.CONTINUE;
-            }
-        };
-
-        walkFileTree(sourceRoot, visitor);
-    }
-
-    private boolean addFileToJar(Jar jar, String destination, String sourceAbsPath) {
-        if (includedResources.contains(sourceAbsPath)) {
-            log("Skipping already included resource: %s\n", sourceAbsPath);
-            return false;
-        }
-        File file = new File(sourceAbsPath);
-        if (!file.isFile()) {
-            throw new RuntimeException(
-                    String.format("Skipping non-existent file: %s\n", sourceAbsPath));
-        }
-        Resource resource = new FileResource(file);
-        if (jar.getResource(destination) != null) {
-            warn("Skipping duplicate resource: %s\n", destination);
-            return false;
-        }
-        jar.putResource(destination, resource);
-        includedResources.add(sourceAbsPath);
-        log("Adding resource: %s\n", destination);
-        return true;
-    }
-
-    private void log(String format, Object... objects) {
-        //System.err.printf(format, objects);
-    }
-
-    private void warn(String format, Object... objects) {
-        stderr.printf(format, objects);
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(this)
-                .add("inputJar", inputJar)
-                .add("outputJar", outputJar)
-                .add("classpath", classpath)
-                .add("bundleName", bundleName)
-                .add("groupId", groupId)
-                .add("bundleSymbolicName", bundleSymbolicName)
-                .add("bundleVersion", bundleVersion)
-                .add("bundleDescription", bundleDescription)
-                .add("bundleLicense", bundleLicense)
-                .toString();
-    }
-
-    @Override
-    public StepExecutionResult execute(ExecutionContext executionContext)
-            throws IOException, InterruptedException {
-        stderr = executionContext.getStdErr();
-        boolean success = execute();
-        stderr = System.err;
-        return success ? StepExecutionResult.SUCCESS : StepExecutionResult.ERROR;
-    }
-
-    @Override
-    public String getShortName() {
-        return "osgiwrap";
-    }
-
-    @Override
-    public String getDescription(ExecutionContext executionContext) {
-        return "osgiwrap"; //FIXME
-    }
-}
diff --git a/tools/build/buck-plugin/src/main/java/org/onosproject/onosjar/OnosJar.java b/tools/build/buck-plugin/src/main/java/org/onosproject/onosjar/OnosJar.java
deleted file mode 100644
index b9ec3d6..0000000
--- a/tools/build/buck-plugin/src/main/java/org/onosproject/onosjar/OnosJar.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Copyright 2016-present Open Networking Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.onosjar;
-
-import com.facebook.buck.jvm.java.CompileToJarStepFactory;
-import com.facebook.buck.jvm.java.DefaultJavaLibrary;
-import com.facebook.buck.jvm.java.HasMavenCoordinates;
-import com.facebook.buck.jvm.java.JavaLibrary;
-import com.facebook.buck.jvm.java.MavenPublishable;
-import com.facebook.buck.model.BuildTarget;
-import com.facebook.buck.rules.AddToRuleKey;
-import com.facebook.buck.rules.BuildRule;
-import com.facebook.buck.rules.BuildRuleParams;
-import com.facebook.buck.rules.SourcePath;
-import com.facebook.buck.rules.SourcePathResolver;
-import com.google.common.base.Optional;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.ImmutableSortedMap;
-import com.google.common.collect.ImmutableSortedSet;
-
-import java.io.IOException;
-import java.math.BigInteger;
-import java.net.URL;
-import java.nio.file.Path;
-import java.security.DigestInputStream;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.util.Set;
-import java.util.regex.Pattern;
-
-/**
- * Implementation of a build rule that generates a onosjar.json file for a set
- * of Java sources.
- */
-public class OnosJar extends DefaultJavaLibrary
-        implements MavenPublishable{
-
-    // Inject the SHA of this rule's jar into the rule key
-    private static String RULE_VERSION;
-    static {
-        URL pluginJarLocation = OnosJar.class.getProtectionDomain().getCodeSource().getLocation();
-        try {
-            MessageDigest md = MessageDigest.getInstance("SHA");
-            DigestInputStream dis = new DigestInputStream(pluginJarLocation.openStream(), md);
-            // Consume the InputStream...
-            while (dis.read() != -1);
-            RULE_VERSION = String.format("%032x", new BigInteger(1, md.digest()));
-        } catch (NoSuchAlgorithmException | IOException e) {
-            System.err.println("Failed to compute hash for OnosJar rule");
-            RULE_VERSION = "nil";
-            //TODO consider bailing here instead
-        }
-    }
-    @AddToRuleKey
-    private final String ruleVersion = RULE_VERSION;
-
-    @AddToRuleKey
-    final Optional<String> webContext;
-
-    @AddToRuleKey
-    final Optional<String> apiTitle;
-
-    @AddToRuleKey
-    final Optional<String> apiVersion;
-
-    @AddToRuleKey
-    final Optional<String> apiPackage;
-
-    @AddToRuleKey
-    final Optional<String> apiDescription;
-
-    @AddToRuleKey
-    final Optional<ImmutableSortedMap<String, SourcePath>> includedResources;
-
-    private final ImmutableSortedSet<HasMavenCoordinates> mavenDeps;
-
-    public OnosJar(BuildRuleParams params,
-                   SourcePathResolver resolver,
-                   Set<? extends SourcePath> srcs,
-                   Set<? extends SourcePath> resources,
-                   Optional<Path> generatedSourceFolder,
-                   Optional<SourcePath> proguardConfig,
-                   ImmutableList<String> postprocessClassesCommands,
-                   ImmutableSortedSet<BuildRule> exportedDeps,
-                   ImmutableSortedSet<BuildRule> providedDeps,
-                   SourcePath abiJar, boolean trackClassUsage,
-                   ImmutableSet<Path> additionalClasspathEntries,
-                   CompileToJarStepFactory compileStepFactory,
-                   Optional<Path> resourcesRoot,
-                   Optional<SourcePath> manifestFile,
-                   Optional<String> mavenCoords,
-                   ImmutableSortedSet<BuildTarget> tests,
-                   ImmutableSet<Pattern> classesToRemoveFromJar,
-                   Optional<String> webContext,
-                   Optional<String> apiTitle,
-                   Optional<String> apiVersion,
-                   Optional<String> apiPackage,
-                   Optional<String> apiDescription,
-                   Optional<ImmutableSortedMap<String, SourcePath>> includedResources) {
-        super(params, resolver, srcs, resources, generatedSourceFolder,
-              proguardConfig, postprocessClassesCommands, exportedDeps,
-              providedDeps, abiJar, trackClassUsage, additionalClasspathEntries,
-              compileStepFactory, resourcesRoot, manifestFile, mavenCoords,
-              tests, classesToRemoveFromJar);
-        this.webContext = webContext;
-        this.apiTitle = apiTitle;
-        this.apiVersion = apiVersion;
-        this.apiPackage = apiPackage;
-        this.apiDescription = apiDescription;
-        this.includedResources = includedResources;
-        this.mavenDeps = computeMavenDeps();
-    }
-
-    private ImmutableSortedSet<HasMavenCoordinates> computeMavenDeps() {
-        ImmutableSortedSet.Builder<HasMavenCoordinates> mavenDeps = ImmutableSortedSet.naturalOrder();
-        for (JavaLibrary javaLibrary : getTransitiveClasspathDeps()) {
-            if (this.equals(javaLibrary)) {
-                // no need to include ourself
-                continue;
-            } else if (HasMavenCoordinates.MAVEN_COORDS_PRESENT_PREDICATE.apply(javaLibrary)) {
-                mavenDeps.add(javaLibrary);
-                //FIXME BOC do we always want to exclude all of a maven jar's dependencies? probably.
-                mavenDeps.addAll(javaLibrary.getTransitiveClasspathDeps());
-            }
-        }
-        return mavenDeps.build();
-    }
-
-    @Override
-    public Iterable<HasMavenCoordinates> getMavenDeps() {
-        return mavenDeps;
-    }
-
-    @Override
-    public Iterable<BuildRule> getPackagedDependencies() {
-        //FIXME this is not supported at the moment
-        return ImmutableList.of();
-    }
-
-    @Override
-    public Optional<Path> getPomTemplate() {
-        //FIXME we should consider supporting this
-        return Optional.absent();
-    }
-}
diff --git a/tools/build/buck-plugin/src/main/java/org/onosproject/onosjar/OnosJarDescription.java b/tools/build/buck-plugin/src/main/java/org/onosproject/onosjar/OnosJarDescription.java
deleted file mode 100644
index 3f27760..0000000
--- a/tools/build/buck-plugin/src/main/java/org/onosproject/onosjar/OnosJarDescription.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/*
- * Copyright 2016-present Open Networking Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.onosjar;
-
-import com.facebook.buck.cli.BuckConfig;
-import com.facebook.buck.jvm.java.CalculateAbi;
-import com.facebook.buck.jvm.java.DefaultJavaLibrary;
-import com.facebook.buck.jvm.java.JavaBuckConfig;
-import com.facebook.buck.jvm.java.JavaLibrary;
-import com.facebook.buck.jvm.java.JavaLibraryDescription;
-import com.facebook.buck.jvm.java.JavaOptions;
-import com.facebook.buck.jvm.java.JavaSourceJar;
-import com.facebook.buck.jvm.java.JavacOptions;
-import com.facebook.buck.jvm.java.JavacOptionsAmender;
-import com.facebook.buck.jvm.java.JavacOptionsFactory;
-import com.facebook.buck.jvm.java.JavacToJarStepFactory;
-import com.facebook.buck.jvm.java.JavadocJar;
-import com.facebook.buck.jvm.java.MavenUberJar;
-import com.facebook.buck.maven.AetherUtil;
-import com.facebook.buck.model.BuildTarget;
-import com.facebook.buck.model.Flavor;
-import com.facebook.buck.model.Flavored;
-import com.facebook.buck.model.ImmutableFlavor;
-import com.facebook.buck.parser.NoSuchBuildTargetException;
-import com.facebook.buck.rules.BuildRule;
-import com.facebook.buck.rules.BuildRuleParams;
-import com.facebook.buck.rules.BuildRuleResolver;
-import com.facebook.buck.rules.BuildRuleType;
-import com.facebook.buck.rules.BuildRules;
-import com.facebook.buck.rules.BuildTargetSourcePath;
-import com.facebook.buck.rules.Description;
-import com.facebook.buck.rules.SourcePath;
-import com.facebook.buck.rules.SourcePathResolver;
-import com.facebook.buck.rules.SourcePaths;
-import com.facebook.buck.rules.TargetGraph;
-import com.google.common.base.Function;
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.ImmutableSortedMap;
-import com.google.common.collect.ImmutableSortedSet;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-
-import java.nio.file.Path;
-import java.util.List;
-
-import static com.facebook.buck.jvm.common.ResourceValidator.validateResources;
-
-/**
- * Description for the onos_jar rules.
- *
- * Currently, this only does Swagger generation.
- */
-public class OnosJarDescription implements Description<OnosJarDescription.Arg>, Flavored {
-    public static final BuildRuleType TYPE = BuildRuleType.of("onos_jar");
-    public static final Flavor NON_OSGI_JAR = ImmutableFlavor.of("non-osgi");
-
-    public static final ImmutableSet<Flavor> SUPPORTED_FLAVORS = ImmutableSet.of(
-            JavaLibrary.SRC_JAR,
-            JavaLibrary.MAVEN_JAR,
-            JavaLibrary.JAVADOC_JAR,
-            NON_OSGI_JAR);
-
-    private final JavacOptions defaultJavacOptions;
-    private final JavaOptions defaultJavaOptions;
-
-    public OnosJarDescription(BuckConfig config) {
-        JavaBuckConfig javaConfig = new JavaBuckConfig(config);
-        defaultJavacOptions = javaConfig.getDefaultJavacOptions();
-        defaultJavaOptions = javaConfig.getDefaultJavaOptions();
-    }
-
-    @Override
-    public BuildRuleType getBuildRuleType() {
-        return TYPE;
-    }
-
-    @Override
-    public Arg createUnpopulatedConstructorArg() {
-        return new Arg();
-    }
-
-    @Override
-    public <A extends Arg> BuildRule createBuildRule(TargetGraph targetGraph,
-                                                     BuildRuleParams params,
-                                                     BuildRuleResolver resolver,
-                                                     A args)
-            throws NoSuchBuildTargetException {
-
-
-        SourcePathResolver pathResolver = new SourcePathResolver(resolver);
-        BuildTarget target = params.getBuildTarget();
-
-        // We know that the flavour we're being asked to create is valid, since the check is done when
-        // creating the action graph from the target graph.
-
-        ImmutableSortedSet<Flavor> flavors = target.getFlavors();
-        BuildRuleParams paramsWithMavenFlavor = null;
-
-        if (flavors.contains(JavaLibrary.MAVEN_JAR)) {
-            paramsWithMavenFlavor = params;
-
-            // Maven rules will depend upon their vanilla versions, so the latter have to be constructed
-            // without the maven flavor to prevent output-path conflict
-            params = params.copyWithBuildTarget(
-                    params.getBuildTarget().withoutFlavors(ImmutableSet.of(JavaLibrary.MAVEN_JAR)));
-        }
-
-        if (flavors.contains(JavaLibrary.SRC_JAR)) {
-            args.mavenCoords = args.mavenCoords.transform(
-                    new Function<String, String>() {
-                        @Override
-                        public String apply(String input) {
-                            return AetherUtil.addClassifier(input, AetherUtil.CLASSIFIER_SOURCES);
-                        }
-                    });
-
-            if (!flavors.contains(JavaLibrary.MAVEN_JAR)) {
-                return new JavaSourceJar(
-                        params,
-                        pathResolver,
-                        args.srcs.get(),
-                        args.mavenCoords);
-            } else {
-                return MavenUberJar.SourceJar.create(
-                        Preconditions.checkNotNull(paramsWithMavenFlavor),
-                        pathResolver,
-                        args.srcs.get(),
-                        args.mavenCoords,
-                        Optional.absent()); //FIXME
-            }
-        }
-
-        if (flavors.contains(JavaLibrary.JAVADOC_JAR)) {
-            args.mavenCoords = args.mavenCoords.transform(
-                    new Function<String, String>() {
-                        @Override
-                        public String apply(String input) {
-                            return AetherUtil.addClassifier(input, AetherUtil.CLASSIFIER_JAVADOC);
-                        }
-                    });
-
-            JavadocJar.JavadocArgs.Builder javadocArgs = JavadocJar.JavadocArgs.builder()
-                    .addArg("-windowtitle", target.getShortName())
-                    .addArg("-link", "http://docs.oracle.com/javase/8/docs/api")
-                    .addArg("-tag", "onos.rsModel:a:\"onos model\""); //FIXME from buckconfig + rule
-
-            final ImmutableSortedMap.Builder<SourcePath, Path> javadocFiles = ImmutableSortedMap.naturalOrder();
-            if (args.javadocFiles.isPresent()) {
-                for (SourcePath path : args.javadocFiles.get()) {
-                    javadocFiles.put(path,
-                                     JavadocJar.getDocfileWithPath(pathResolver, path, args.javadocFilesRoot.orNull()));
-                }
-            }
-
-
-            if (!flavors.contains(JavaLibrary.MAVEN_JAR)) {
-                return new JavadocJar(
-                        params,
-                        pathResolver,
-                        args.srcs.get(),
-                        javadocFiles.build(),
-                        javadocArgs.build(),
-                        args.mavenCoords);
-            } else {
-                return MavenUberJar.MavenJavadocJar.create(
-                        Preconditions.checkNotNull(paramsWithMavenFlavor),
-                        pathResolver,
-                        args.srcs.get(),
-                        javadocFiles.build(),
-                        javadocArgs.build(),
-                        args.mavenCoords,
-                        Optional.absent()); //FIXME
-            }
-        }
-
-        JavacOptions javacOptions = JavacOptionsFactory.create(
-                defaultJavacOptions,
-                params,
-                resolver,
-                pathResolver,
-                args
-        );
-
-        BuildTarget abiJarTarget = params.getBuildTarget().withAppendedFlavors(CalculateAbi.FLAVOR);
-
-        ImmutableSortedSet<BuildRule> exportedDeps = resolver.getAllRules(args.exportedDeps.get());
-
-        // Build the resources string
-        List<String> resourceMappings = Lists.newArrayList();
-
-        if (args.includeResources.isPresent()) {
-            args.includeResources.get().entrySet().forEach(p ->
-                resourceMappings.add(String.format("%s=%s", p.getKey(), p.getValue())));
-        }
-
-        if (args.apiTitle.isPresent()) {
-            resourceMappings.add("WEB-INF/classes/apidoc/swagger.json=swagger.json");
-        }
-
-        Optional<String> includedResourcesString = Optional.of(String.join(",", resourceMappings));
-        final DefaultJavaLibrary defaultJavaLibrary;
-        if (!flavors.contains(NON_OSGI_JAR)) {
-            defaultJavaLibrary =
-                    resolver.addToIndex(
-                            new OnosJar(
-                                    params.appendExtraDeps(
-                                            Iterables.concat(
-                                                    BuildRules.getExportedRules(
-                                                            Iterables.concat(
-                                                                    params.getDeclaredDeps().get(),
-                                                                    exportedDeps,
-                                                                    resolver.getAllRules(args.providedDeps.get()))),
-                                                    pathResolver.filterBuildRuleInputs(
-                                                            javacOptions.getInputs(pathResolver)))),
-                                    pathResolver,
-                                    args.srcs.get(),
-                                    validateResources(
-                                            pathResolver,
-                                            params.getProjectFilesystem(),
-                                            args.resources.get()),
-                                    javacOptions.getGeneratedSourceFolderName(),
-                                    args.proguardConfig.transform(
-                                            SourcePaths.toSourcePath(params.getProjectFilesystem())),
-                                    args.postprocessClassesCommands.get(), // FIXME this should be forbidden
-                                    exportedDeps,
-                                    resolver.getAllRules(args.providedDeps.get()),
-                                    new BuildTargetSourcePath(abiJarTarget),
-                                    javacOptions.trackClassUsage(),
-                                /* additionalClasspathEntries */ ImmutableSet.<Path>of(),
-                                    new OnosJarStepFactory(javacOptions, JavacOptionsAmender.IDENTITY,
-                                                           args.webContext, args.apiTitle, args.apiVersion,
-                                                           args.apiPackage, args.apiDescription, args.resources,
-                                                           args.groupId, args.bundleName, args.bundleVersion,
-                                                           args.bundleLicense, args.bundleDescription, args.importPackages,
-                                                           args.exportPackages, includedResourcesString,
-                                                           args.dynamicimportPackages, args.privatePackages, args.embeddedDependencies, args.bundleClasspath),
-                                    args.resourcesRoot,
-                                    args.manifestFile,
-                                    args.mavenCoords,
-                                    args.tests.get(),
-                                    javacOptions.getClassesToRemoveFromJar(),
-                                    args.webContext,
-                                    args.apiTitle,
-                                    args.apiVersion,
-                                    args.apiPackage,
-                                    args.apiDescription,
-                                    args.includeResources));
-        } else {
-            defaultJavaLibrary =
-                    resolver.addToIndex(
-                            new DefaultJavaLibrary(
-                                    params.appendExtraDeps(
-                                            Iterables.concat(
-                                                    BuildRules.getExportedRules(
-                                                            Iterables.concat(
-                                                                    params.getDeclaredDeps().get(),
-                                                                    exportedDeps,
-                                                                    resolver.getAllRules(args.providedDeps.get()))),
-                                                    pathResolver.filterBuildRuleInputs(
-                                                            javacOptions.getInputs(pathResolver)))),
-                                    pathResolver,
-                                    args.srcs.get(),
-                                    validateResources(
-                                            pathResolver,
-                                            params.getProjectFilesystem(),
-                                            args.resources.get()),
-                                    javacOptions.getGeneratedSourceFolderName(),
-                                    args.proguardConfig.transform(
-                                            SourcePaths.toSourcePath(params.getProjectFilesystem())),
-                                    args.postprocessClassesCommands.get(),
-                                    exportedDeps,
-                                    resolver.getAllRules(args.providedDeps.get()),
-                                    new BuildTargetSourcePath(abiJarTarget),
-                                    javacOptions.trackClassUsage(),
-                                    /* additionalClasspathEntries */ ImmutableSet.<Path>of(),
-                                    new JavacToJarStepFactory(javacOptions, JavacOptionsAmender.IDENTITY),
-                                    args.resourcesRoot,
-                                    args.manifestFile,
-                                    args.mavenCoords,
-                                    args.tests.get(),
-                                    javacOptions.getClassesToRemoveFromJar()));
-        }
-
-        resolver.addToIndex(
-                CalculateAbi.of(
-                        abiJarTarget,
-                        pathResolver,
-                        params,
-                        new BuildTargetSourcePath(defaultJavaLibrary.getBuildTarget())));
-
-        return defaultJavaLibrary;
-    }
-
-    @Override
-    public boolean hasFlavors(ImmutableSet<Flavor> flavors) {
-        return SUPPORTED_FLAVORS.containsAll(flavors);
-    }
-
-    public static class Arg extends JavaLibraryDescription.Arg {
-        public Optional<String> webContext;
-        public Optional<String> apiTitle;
-        public Optional<String> apiVersion;
-        public Optional<String> apiPackage;
-        public Optional<String> apiDescription;
-
-        public Optional<String> groupId;
-        public Optional<String> bundleName;
-        public Optional<String> bundleVersion;
-        public Optional<String> bundleLicense;
-        public Optional<String> bundleDescription;
-
-        public Optional<String> importPackages;
-        public Optional<String> privatePackages;
-        public Optional<String> exportPackages;
-        public Optional<ImmutableSortedMap<String, SourcePath>> includeResources;
-        public Optional<String> dynamicimportPackages;
-        public Optional<String> embeddedDependencies;
-        public Optional<String> bundleClasspath;
-    }
-}
\ No newline at end of file
diff --git a/tools/build/buck-plugin/src/main/java/org/onosproject/onosjar/OnosJarStepFactory.java b/tools/build/buck-plugin/src/main/java/org/onosproject/onosjar/OnosJarStepFactory.java
deleted file mode 100644
index 6550d89..0000000
--- a/tools/build/buck-plugin/src/main/java/org/onosproject/onosjar/OnosJarStepFactory.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- * Copyright 2016-present Open Networking Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.onosjar;
-
-import com.facebook.buck.io.ProjectFilesystem;
-import com.facebook.buck.jvm.core.SuggestBuildRules;
-import com.facebook.buck.jvm.java.ClassUsageFileWriter;
-import com.facebook.buck.jvm.java.JarDirectoryStep;
-import com.facebook.buck.jvm.java.JavacOptions;
-import com.facebook.buck.jvm.java.JavacOptionsAmender;
-import com.facebook.buck.jvm.java.JavacToJarStepFactory;
-import com.facebook.buck.model.BuildTarget;
-import com.facebook.buck.rules.BuildContext;
-import com.facebook.buck.rules.BuildableContext;
-import com.facebook.buck.rules.SourcePath;
-import com.facebook.buck.rules.SourcePathResolver;
-import com.facebook.buck.step.Step;
-import com.facebook.buck.step.fs.CopyStep;
-import com.google.common.base.Optional;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.ImmutableSortedSet;
-
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.regex.Pattern;
-import java.util.stream.Collectors;
-
-/**
- * Creates the list of build steps for the onos_jar rules.
- */
-public class OnosJarStepFactory extends JavacToJarStepFactory {
-
-    private static final String DEFINITIONS = "/definitions/";
-    private final String webContext;
-    private final String apiTitle;
-    private final String apiVersion;
-    private final String apiPackage;
-    private final String apiDescription;
-    private final Optional<ImmutableSortedSet<SourcePath>> resources;
-    private final String groupId;
-    private final String bundleName;
-    private final String bundleVersion;
-    private final String bundleLicense;
-    private final String bundleDescription;
-    private final String importPackages;
-    private final String privatePackages;
-    private final String exportPackages;
-    private final String includeResources;
-    private final String dynamicimportPackages;
-    private final String embeddedDependencies;
-    private final String bundleClasspath;
-
-    public OnosJarStepFactory(JavacOptions javacOptions,
-                              JavacOptionsAmender amender,
-                              Optional<String> webContext,
-                              Optional<String> apiTitle,
-                              Optional<String> apiVersion,
-                              Optional<String> apiPackage,
-                              Optional<String> apiDescription,
-                              Optional<ImmutableSortedSet<SourcePath>> resources,
-                              Optional<String> groupId,
-                              Optional<String> bundleName,
-                              Optional<String> bundleVersion,
-                              Optional<String> bundleLicense,
-                              Optional<String> bundleDescription,
-                              Optional<String> importPackages,
-                              Optional<String> exportPackages,
-                              Optional<String> includeResources,
-                              Optional<String> dynamicimportPackages,
-                              Optional<String> privatePackages,
-                              Optional<String> embeddedDependencies,
-                              Optional<String> bundleClasspath) {
-        super(javacOptions, amender);
-        this.bundleDescription = processParameter(bundleDescription);
-        this.importPackages = processParameter(importPackages);
-        this.privatePackages = processParameter(privatePackages);
-        this.exportPackages = processParameter(exportPackages);
-        this.includeResources = processParameter(includeResources);
-        this.dynamicimportPackages = processParameter(dynamicimportPackages);
-        this.groupId = processParameter(groupId);
-        this.bundleName = processParameter(bundleName);
-        this.bundleVersion = processParameter(bundleVersion);
-        this.bundleLicense = processParameter(bundleLicense);
-        this.webContext = processParameter(webContext);
-        this.apiTitle = processParameter(apiTitle);
-        this.apiVersion = processParameter(apiVersion);
-        this.apiPackage = processParameter(apiPackage);
-        this.apiDescription = processParameter(apiDescription);
-        this.resources = resources;
-        this.embeddedDependencies = processParameter(embeddedDependencies);
-        this.bundleClasspath = processParameter(bundleClasspath);
-    }
-
-    private String processParameter(Optional<String> p) {
-        return !p.isPresent() || p.get().equals("NONE") ? null : p.get();
-    }
-
-    @Override
-    public void createCompileToJarStep(BuildContext context,
-                                       ImmutableSortedSet<Path> sourceFilePaths,
-                                       BuildTarget invokingRule,
-                                       SourcePathResolver resolver,
-                                       ProjectFilesystem filesystem,
-                                       ImmutableSortedSet<Path> declaredClasspathEntries,
-                                       Path outputDirectory,
-                                       Optional<Path> workingDirectory,
-                                       Path pathToSrcsList,
-                                       Optional<SuggestBuildRules> suggestBuildRules,
-                                       ImmutableList<String> postprocessClassesCommands,
-                                       ImmutableSortedSet<Path> entriesToJar,
-                                       Optional<String> mainClass,
-                                       Optional<Path> manifestFile,
-                                       Path outputJar,
-                                       ClassUsageFileWriter usedClassesFileWriter,
-                                       ImmutableList.Builder<Step> steps,
-                                       BuildableContext buildableContext,
-                                       ImmutableSet<Pattern> classesToRemoveFromJar) {
-
-        ImmutableSet.Builder<Path> sourceFilePathBuilder = ImmutableSet.builder();
-        sourceFilePathBuilder.addAll(sourceFilePaths);
-
-        ImmutableSet.Builder<Pattern> blacklistBuilder = ImmutableSet.builder();
-        blacklistBuilder.addAll(classesToRemoveFromJar);
-
-        // precompilation steps
-        //   - generate sources
-        //     add all generated sources ot pathToSrcsList
-        if (webContext != null && apiTitle != null && resources.isPresent()) {
-            ImmutableSortedSet<Path> resourceFilePaths = findSwaggerModelDefs(resolver, resources.get());
-            blacklistBuilder.addAll(resourceFilePaths.stream()
-                                            .map(rp -> Pattern.compile(rp.getFileName().toString(), Pattern.LITERAL))
-                                            .collect(Collectors.toSet()));
-            Path genSourcesOutput = workingDirectory.get();
-
-            SwaggerStep swaggerStep = new SwaggerStep(filesystem, sourceFilePaths, resourceFilePaths,
-                                                      genSourcesOutput, outputDirectory,
-                                                      webContext, apiTitle, apiVersion,
-                                                      apiPackage, apiDescription);
-            sourceFilePathBuilder.add(swaggerStep.apiRegistratorPath());
-            steps.add(swaggerStep);
-
-//            steps.addAll(sourceFilePaths.stream()
-//                    .filter(sp -> sp.startsWith("src/main/webapp/"))
-//                    .map(sp -> CopyStep.forFile(filesystem, sp, outputDirectory))
-//                    .iterator());
-        }
-
-        createCompileStep(context,
-                          ImmutableSortedSet.copyOf(sourceFilePathBuilder.build()),
-                          invokingRule,
-                          resolver,
-                          filesystem,
-                          declaredClasspathEntries,
-                          outputDirectory,
-                          workingDirectory,
-                          pathToSrcsList,
-                          suggestBuildRules,
-                          usedClassesFileWriter,
-                          steps,
-                          buildableContext);
-
-        // post compilation steps
-
-
-        // FIXME BOC: add mechanism to inject new Steps
-        //context.additionalStepFactory(JavaStep.class);
-
-        // build the jar
-        steps.add(new JarDirectoryStep(filesystem,
-                                       outputJar,
-                                       ImmutableSortedSet.of(outputDirectory),
-                                       mainClass.orNull(),
-                                       manifestFile.orNull(),
-                                       true,
-                                       blacklistBuilder.build()));
-
-        OSGiWrapper osgiStep = new OSGiWrapper(
-                outputJar, //input jar
-                outputJar, //Paths.get(outputJar.toString() + ".jar"), //output jar
-                invokingRule.getBasePath(), // sources dir
-                outputDirectory, // classes dir
-                declaredClasspathEntries, // classpath
-                bundleName, // bundle name
-                groupId, // groupId
-                bundleVersion, // bundle version
-                bundleLicense, // bundle license
-                importPackages, // import packages
-                exportPackages, // export packages
-                includeResources, // include resources
-                webContext, // web context
-                dynamicimportPackages, // dynamic import packages
-                embeddedDependencies, // embedded dependencies
-                bundleDescription,  // bundle description
-                privatePackages, // private packages
-                bundleClasspath // bundle classpath
-        );
-        steps.add(osgiStep);
-
-        //steps.add(CopyStep.forFile(filesystem, Paths.get(outputJar.toString() + ".jar"), outputJar));
-
-    }
-
-    private ImmutableSortedSet<Path> findSwaggerModelDefs(SourcePathResolver resolver,
-                                                          ImmutableSortedSet<SourcePath> resourcePaths) {
-        if (resourcePaths == null) {
-            return ImmutableSortedSet.of();
-        }
-        return ImmutableSortedSet.copyOf(resourcePaths.stream()
-                                                 .filter(sp -> sp.toString().contains(DEFINITIONS))
-                                                 .map(resolver::getRelativePath)
-                                                 .collect(Collectors.toList()));
-    }
-}
diff --git a/tools/build/buck-plugin/src/main/java/org/onosproject/onosjar/ProjectJavadocDescription.java b/tools/build/buck-plugin/src/main/java/org/onosproject/onosjar/ProjectJavadocDescription.java
deleted file mode 100644
index 12cf48e..0000000
--- a/tools/build/buck-plugin/src/main/java/org/onosproject/onosjar/ProjectJavadocDescription.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright 2016-present Open Networking Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.onosjar;
-
-import com.facebook.buck.cli.BuckConfig;
-import com.facebook.buck.jvm.java.JavaLibrary;
-import com.facebook.buck.jvm.java.JavadocJar;
-import com.facebook.buck.model.BuildTarget;
-import com.facebook.buck.model.Flavor;
-import com.facebook.buck.model.Flavored;
-import com.facebook.buck.model.Pair;
-import com.facebook.buck.parser.NoSuchBuildTargetException;
-import com.facebook.buck.rules.BuildRule;
-import com.facebook.buck.rules.BuildRuleParams;
-import com.facebook.buck.rules.BuildRuleResolver;
-import com.facebook.buck.rules.BuildRuleType;
-import com.facebook.buck.rules.Description;
-import com.facebook.buck.rules.SourcePath;
-import com.facebook.buck.rules.SourcePathResolver;
-import com.facebook.buck.rules.TargetGraph;
-import com.google.common.base.Optional;
-import com.google.common.base.Suppliers;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.ImmutableSortedMap;
-import com.google.common.collect.ImmutableSortedSet;
-import com.google.common.collect.Ordering;
-
-import java.nio.file.Path;
-import java.util.Map;
-
-/**
- * Description for the onos_jar rules.
- *
- * Currently, this only does Swagger generation.
- */
-public class ProjectJavadocDescription implements Description<ProjectJavadocDescription.Arg>, Flavored {
-    public static final BuildRuleType TYPE = BuildRuleType.of("project_javadoc");
-
-    public ProjectJavadocDescription(BuckConfig config) {
-        //TODO
-    }
-
-    @Override
-    public BuildRuleType getBuildRuleType() {
-        return TYPE;
-    }
-
-    @Override
-    public Arg createUnpopulatedConstructorArg() {
-        return new Arg();
-    }
-
-    @Override
-    public <A extends Arg> BuildRule createBuildRule(TargetGraph targetGraph,
-                                                     BuildRuleParams params,
-                                                     BuildRuleResolver resolver,
-                                                     A args)
-            throws NoSuchBuildTargetException {
-
-        ImmutableSet.Builder<SourcePath> srcs = ImmutableSet.builder();
-        ImmutableSet.Builder<BuildRule> deps = ImmutableSet.builder();
-        ImmutableSortedMap.Builder<SourcePath, Path> docfiles = ImmutableSortedMap.naturalOrder();
-        for(BuildTarget dep : args.deps) {
-            BuildRule rule = resolver.requireRule(dep.withFlavors(JavaLibrary.JAVADOC_JAR));
-            if (rule instanceof JavadocJar) {
-                JavadocJar jarRule = (JavadocJar) rule;
-                srcs.addAll(jarRule.getSources());
-                deps.addAll(jarRule.getDeps());
-                docfiles.putAll(jarRule.getDocFiles());
-            } else {
-                throw new RuntimeException("rule is not a javalib"); //FIXME
-            }
-        }
-
-        BuildRuleParams newParams = params.copyWithDeps(
-                Suppliers.ofInstance(
-                    FluentIterable.from(deps.build())
-                                  .toSortedSet(Ordering.<BuildRule>natural())),
-                Suppliers.ofInstance(ImmutableSortedSet.<BuildRule>of()));
-
-        SourcePathResolver sourceResolver = new SourcePathResolver(resolver);
-        ImmutableList.Builder<SourcePath> auxSources = ImmutableList.builder();
-
-        JavadocJar.JavadocArgs.Builder javadocArgs = JavadocJar.JavadocArgs.builder()
-                .addArg("-windowtitle", args.projectTitle)
-                .addArg("-doctitle", args.projectTitle)
-                .addArg("-link", "http://docs.oracle.com/javase/8/docs/api")
-                .addArg("-tag", "onos.rsModel:a:\"onos model\""); //FIXME from buckconfig + rule
-
-        if (args.groups.isPresent()) {
-            for (Pair<String, ImmutableList<String>> pair : args.groups.get()) {
-                javadocArgs.addArg("-group", pair.getFirst(), pair.getSecond());
-            }
-        }
-
-        if (args.excludePackages.isPresent() &&
-                !args.excludePackages.get().isEmpty()) {
-            javadocArgs.addArg("-exclude", args.excludePackages.get());
-        }
-
-        if (args.overview.isPresent()) {
-            javadocArgs.addArg("-overview",
-                   sourceResolver.getAbsolutePath(args.overview.get()).toString());
-
-        }
-
-        if (args.javadocFiles.isPresent()) {
-            for (SourcePath path : args.javadocFiles.get()) {
-                docfiles.put(path,
-                             JavadocJar.getDocfileWithPath(sourceResolver, path, args.javadocFilesRoot.orNull()));
-            }
-        }
-
-
-        JavadocJar javadocJar =  new JavadocJar(newParams,
-                              sourceResolver,
-                              ImmutableSortedSet.copyOf(srcs.build()),
-                              docfiles.build(),
-                              javadocArgs.build(),
-                              /* mavenCoords */ Optional.absent());
-        return javadocJar;
-
-    }
-
-    @Override
-    public boolean hasFlavors(ImmutableSet<Flavor> flavors) {
-        return false;
-    }
-
-    public static class Arg {
-        public ImmutableSortedSet<BuildTarget> deps;
-        public String projectTitle;
-
-        public Optional<SourcePath> overview;
-        public Optional<ImmutableSortedSet<SourcePath>> javadocFiles;
-        public Optional<Path> javadocFilesRoot;
-
-        public Optional<ImmutableList<String>> excludePackages;
-        public Optional<ImmutableList<Pair<String, ImmutableList<String>>>> groups;
-    }
-}
\ No newline at end of file
diff --git a/tools/build/buck-plugin/src/main/java/org/onosproject/onosjar/SwaggerStep.java b/tools/build/buck-plugin/src/main/java/org/onosproject/onosjar/SwaggerStep.java
deleted file mode 100644
index cbb6e82..0000000
--- a/tools/build/buck-plugin/src/main/java/org/onosproject/onosjar/SwaggerStep.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright 2016-present Open Networking Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.onosjar;
-
-import com.facebook.buck.io.ProjectFilesystem;
-import com.facebook.buck.rules.SourcePathResolver;
-import com.facebook.buck.step.AbstractExecutionStep;
-import com.facebook.buck.step.ExecutionContext;
-import com.facebook.buck.step.StepExecutionResult;
-import com.google.common.collect.ImmutableSortedSet;
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Path;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * Buck build step to trigger SwaggerGenerator.
- */
-public class SwaggerStep extends AbstractExecutionStep {
-
-    private final ProjectFilesystem filesystem;
-
-    private final ImmutableSortedSet<Path> srcs;
-    private final ImmutableSortedSet<Path> resources;
-    private final Path genSourcesOutput;
-    private final Path genResourcesOutput;
-
-    private final String webContext;
-    private final String apiTitle;
-    private final String apiVersion;
-    private final String apiPackage;
-    private final String apiDescription;
-
-
-    public SwaggerStep(ProjectFilesystem filesystem,
-                       ImmutableSortedSet<Path> srcs,
-                       ImmutableSortedSet<Path> resources,
-                       Path genSourcesOutput, Path genResourcesOutput,
-                       String webContext, String apiTitle, String apiVersion,
-                       String apiPackage, String apiDescription) {
-        super("swagger");
-        this.filesystem = filesystem;
-        this.srcs = srcs;
-        this.resources = resources;
-        this.genSourcesOutput = genSourcesOutput;
-        this.genResourcesOutput = genResourcesOutput;
-        this.webContext = webContext;
-        this.apiTitle = apiTitle;
-        this.apiVersion = apiVersion;
-        this.apiPackage = apiPackage;
-        this.apiDescription = apiDescription;
-    }
-
-    @Override
-    public StepExecutionResult execute(ExecutionContext executionContext)
-            throws IOException, InterruptedException {
-        try {
-            List<File> srcFiles = srcs.stream()
-                    .map(src -> filesystem.resolve(src).toFile())
-                    .collect(Collectors.toList());
-            List<File> resourceFiles = resources.stream()
-                    .map(rsrc -> filesystem.resolve(rsrc).toFile())
-                    .collect(Collectors.toList());
-            new SwaggerGenerator(srcFiles, resourceFiles, null, null,
-                                 filesystem.resolve(genSourcesOutput).toFile(),
-                                 filesystem.resolve(genResourcesOutput).toFile(),
-                                 webContext,
-                                 apiTitle,
-                                 apiVersion,
-                                 apiPackage,
-                                 apiDescription).execute();
-
-            return StepExecutionResult.SUCCESS;
-        } catch (Exception e) {
-            e.printStackTrace();
-            // FIXME print the exception
-            return StepExecutionResult.ERROR;
-        }
-    }
-
-    Path apiRegistratorPath() {
-        return genSourcesOutput.resolve(SwaggerGenerator.apiRegistratorPath(apiPackage));
-    }
-}
diff --git a/tools/build/buck-publish b/tools/build/buck-publish
deleted file mode 100755
index 01ed7d9..0000000
--- a/tools/build/buck-publish
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash
-# -----------------------------------------------------------------------------
-# Build and publish the ONOS version of buck.
-# -----------------------------------------------------------------------------
-
-if [ $# -ne 3  -a $# -ne 4 ]; then
-    echo "Usage: buck-publish-setup buck-branch onos-branch yang-branch [version] [--dry-run]"
-    echo "For example, to build buck branch 11-11-2016, onos branch master, and onos-yang-tools master:"
-    echo "buck-publish 11-11-2016 master master"
-    exit 1
-fi
-
-if [ $# -eq 4 -a "${4}" != "--dry-run" ]; then
-    echo "$4 is an invalid parameter - only --dry-run allowed"
-    exit 1
-fi
-
-BUCK_BRANCH="$1"
-ONOS_BRANCH="$2"
-YANG_BRANCH="$3"
-
-if [ -z "$4" ]; then
-    onos-release-prerequisites
-fi
-
-DIR=$(mktemp -d /tmp/buck-publish.XXXXX) || { echo "Failed to create temp file"; exit 1; }
-
-buck-publish-setup $BUCK_BRANCH $ONOS_BRANCH $YANG_BRANCH $DIR
-pushd $DIR && buck-publish-package $4 && popd
-cp $DIR/onos/tools/build/onos-buck $ONOS_ROOT/tools/build/onos-buck
-
-
diff --git a/tools/build/buck-publish-api b/tools/build/buck-publish-api
deleted file mode 100755
index e27f1d0..0000000
--- a/tools/build/buck-publish-api
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/bash
-
-BUCK_LOCAL_CONFIG=${BUCK_LOCAL_CONFIG:-$ONOS_ROOT/.buckconfig.local}
-MVN_REPO="https://oss.sonatype.org/content/repositories/snapshots"
-NO_BUCKD=1
-
-set -e
-set -x
-
-#FIXME if pwd != buck
-pushd buck
-
-# build buck
-scripts/create_tag.sh
-buck build buck --show-output
-
-# publish cli:main-fixed as buck-api
-cp $BUCK_LOCAL_CONFIG .
-buck publish //src/com/facebook/buck/cli:main-fixed \
-    --remote-repo=https://oss.sonatype.org/content/repositories/snapshots/ \
-    | tee ../api-publish.txt
-
-# Alternatively, we can deploy org.onosproject:buck-api with the following:
-#mvn deploy:deploy-file -DgroupId=org.onosproject -DartifactId=buck-api \
-#  -Dversion=0.1-SNAPSHOT -DgeneratePom=true -Dpackaging=jar \
-#  -DrepositoryId=snapshot -Durl=https://oss.sonatype.org/content/repositories/snapshots/ \
-#  -Dfile=buck-out/gen/src/com/facebook/buck/cli/main-fixed/main-fixed.jar
-
-#FIXME upload API to S3 for backup
-
-popd #buck
-
-SNAPSHOT_VERSION=$(cat api-publish.txt | grep "^org.onosproject:buck-api:jar" \
-                       | cut -d' ' -f1 | cut -d: -f4)
-BUCK_API_URL="$MVN_REPO/org/onosproject/buck-api/0.1-SNAPSHOT/buck-api-$SNAPSHOT_VERSION.jar"
-echo $BUCK_API_URL
-
-BUCK_API_SHA=$(shasum buck/buck-out/gen/src/com/facebook/buck/cli/main-fixed/main-fixed.jar | cut -d' ' -f1)
-echo $BUCK_API_SHA
-
-pushd onos
-sed -i "" -E "s#url =.*#url = '$BUCK_API_URL',#" tools/build/buck-plugin/BUCK
-sed -i "" -E "s#sha1 =.*#sha1 = '$BUCK_API_SHA',#" tools/build/buck-plugin/BUCK
-popd #onos
-
-#pushd onos-yang-tools
-#FIXME update version (assume 0.1-SNAPSHOT for now)
-#popd #onos-yang-tools
-
-set +x
-
-echo
-echo "Please build and verify the ONOS Buck plugin and the Yang tools plugin:"
-echo "  cd onos; buck build //tools/build/buck-plugin:onos"
-echo "  cd onos-yang-tools; mvn clean package"
-echo "You should commit and push any required changes."
diff --git a/tools/build/buck-publish-package b/tools/build/buck-publish-package
deleted file mode 100755
index 09d1612..0000000
--- a/tools/build/buck-publish-package
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/bash
-
-for NEXT_VERSION in 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20; do
-    DEFAULT_TAG=${TAG:-$(date +v%Y.%m.%d.$NEXT_VERSION)}
-    BUCK_ZIP="buck-$DEFAULT_TAG.zip"
-    DOWNLOAD_BASE="http://repo1.maven.org/maven2/org/onosproject/onos-buck/$DEFAULT_TAG"
-
-    if ! curl --output /dev/null --silent --head --fail "$DOWNLOAD_BASE/$BUCK_ZIP"; then
-        break;
-    fi
-done
-
-NO_BUCKD=1
-
-UPLOAD_BASE="https://oss.sonatype.org/service/local/staging/deploy/maven2/org/onosproject/onos-buck/$DEFAULT_TAG"
-BUCK_ZIP="buck-$DEFAULT_TAG.zip"
-ZIP_STAGE="buck-bin"
-
-rm -rf $ZIP_STAGE
-
-set -e
-set -x
-
-# build plugins
-
-pushd buck
-onos-buck build buck
-popd #buck
-
-pushd onos
-onos-buck build //tools/build/buck-plugin:onos
-popd #onos
-
-pushd onos-yang-tools
-mvn clean package
-popd #onos-yang-tools
-
-# assemble zip
-
-mkdir -p buck-bin/plugins
-
-cp buck/buck-out/gen/programs/buck.pex $ZIP_STAGE/buck
-cp onos/buck-out/gen/tools/build/buck-plugin/onos.jar $ZIP_STAGE/plugins/onos.jar
-cp onos-yang-tools/compiler/plugin/buck/target/onos-yang-compiler-buck-plugin-*.jar $ZIP_STAGE/plugins/yang.jar
-
-BUCK_VERSION=$(buck/buck-out/gen/programs/buck.pex -V)
-echo $BUCK_VERSION > $ZIP_STAGE/.buck_version
-
-chmod 555 $ZIP_STAGE/buck
-chmod 444 $ZIP_STAGE/.buck_version
-
-pushd $ZIP_STAGE
-zip -r ../$BUCK_ZIP buck .buck_version plugins
-popd #$ZIP_STAGE
-
-if [ "$1" != "--dry-run" ]; then
-    # publish zip
-    curl -v -u "$SONATYPE_USER:$SONATYPE_PASSWORD" --upload-file $BUCK_ZIP $UPLOAD_BASE/$BUCK_ZIP
-    echo "New buck release is in " $BUCK_ZIP
-fi
-
-# update version in onos-buck
-URL="$DOWNLOAD_BASE/$BUCK_ZIP"
-SHA=$(shasum $BUCK_ZIP | cut -d' ' -f1)
-
-sed -i "" -E "s#BUCK_URL=.*#BUCK_URL=\"$URL\"#" onos/tools/build/onos-buck
-sed -i "" -E "s#BUCK_SHA=.*#BUCK_SHA=\"$SHA\"#" onos/tools/build/onos-buck
-
-set +x
-echo
-echo "Commit and push change to onos-buck on the onos directory."
diff --git a/tools/build/buck-publish-setup b/tools/build/buck-publish-setup
deleted file mode 100755
index d180479..0000000
--- a/tools/build/buck-publish-setup
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-BUCK_REF=${1:-"11-11-2016"}
-ONOS_REF=${2:-"master"}
-YANG_REF=${3:-"master"}
-DIR=$4
-
-set -x
-
-if [ -z "$4" ]; then
-    DIR=$(mktemp -d /tmp/buck-publish.XXXXX) || { echo "Failed to create temp file"; exit 1; }
-fi
-# change to tmpdir
-cd $DIR
-
-# checkout buck
-git clone -b $BUCK_REF https://github.com/bocon13/buck
-
-# checkout plugins
-git clone -b $ONOS_REF https://gerrit.onosproject.org/onos.git
-git clone -b $YANG_REF https://gerrit.onosproject.org/onos-yang-tools.git
-
-set +x
-
-echo
-echo "Buck publish area:"
-echo "  cd $DIR"
-
diff --git a/tools/build/conf/BUCK b/tools/build/conf/BUCK
deleted file mode 100644
index 11ab279..0000000
--- a/tools/build/conf/BUCK
+++ /dev/null
@@ -1,81 +0,0 @@
-checkstyle_source = 'src/main/resources/onos/checkstyle.xml'
-suppression_source = 'src/main/resources/onos/suppressions.xml'
-header_source = 'src/main/resources/onos/onos-java.header'
-
-export_file (
-  name = 'checkstyle-xml',
-  src = checkstyle_source,
-  visibility = [ 'PUBLIC' ],
-)
-
-export_file (
-  name = 'suppressions-xml',
-  src = suppression_source,
-  visibility = [ 'PUBLIC' ],
-)
-
-export_file (
-  name = 'onos-java-header',
-  src = header_source,
-  visibility = [ 'PUBLIC' ],
-)
-
-export_file (
-  name = 'start-buck-daemon',
-  visibility = [ 'PUBLIC' ],
-)
-
-COMPILE = [
-  '//lib:com_google_guava_guava',
-  '//lib:checkstyle',
-]
-
-RUN = [
-  '//lib:commons-logging',
-  '//lib:commons-beanutils',
-  '//lib:commons-lang3',
-  '//lib:commons-collections',
-  '//lib:antlr',
-]
-
-java_library (
-  name = 'checkstyle',
-  srcs = glob([ 'src/main/java/**/*.java' ]),
-  deps = COMPILE,
-)
-
-java_binary (
-  name = 'buck-daemon-jar',
-  deps = [ ':checkstyle' ] + RUN,
-  main_class = 'org.onosproject.buckdaemon.BuckDaemon',
-  blacklist = [ 'META-INF/.*' ],
-  visibility = [ 'PUBLIC' ],
-)
-
-osgi_jar (
-  name = 'onos-build-conf',
-  srcs = [],
-  deps = [ ':checkstyle' ] + RUN,
-)
-
-# cmd = '#!/bin/bash\n'
-# cmd += '$1 &>/dev/null < /dev/null &'
-#
-# genrule(
-#   name = 'checkstyle-sh',
-#   bash = "echo '%s' > $OUT && chmod +x $OUT" % cmd,
-#   out = 'checkstyle.sh',
-# )
-#
-# sh_test(
-#   name = 'checkstyle-runner',
-#   test = ':checkstyle-sh',
-#   args = [
-#   '$(exe :checkstyle-jar)',
-#   '$(location //lib:checkstyle)',
-#   '$(location //tools/build/conf:checkstyle-xml)',
-#   '`mktemp /tmp/%s-checkstyle-XXXXXX`',
-#   ],
-#   labels = [ 'checkstyle' ],
-#   visibility = [ 'PUBLIC' ],
-# )
diff --git a/tools/build/conf/src/main/java/org/onosproject/buckdaemon/BuckDaemon.java b/tools/build/conf/src/main/java/org/onosproject/buckdaemon/BuckDaemon.java
deleted file mode 100644
index a253995..0000000
--- a/tools/build/conf/src/main/java/org/onosproject/buckdaemon/BuckDaemon.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- * Copyright 2016-present Open Networking Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onosproject.buckdaemon;
-
-import com.puppycrawl.tools.checkstyle.api.CheckstyleException;
-import org.onosproject.checkstyle.CheckstyleRunner;
-
-import java.io.IOException;
-import java.io.PrintStream;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.net.ServerSocket;
-import java.net.Socket;
-import java.nio.ByteBuffer;
-import java.nio.channels.FileChannel;
-import java.nio.channels.FileLock;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Timer;
-import java.util.TimerTask;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-import static java.nio.file.StandardOpenOption.CREATE;
-import static java.nio.file.StandardOpenOption.WRITE;
-
-/**
- * Buck daemon process.
- */
-public final class BuckDaemon {
-
-    private static final long POLLING_INTERVAL = 1000; //ms
-
-    private final Map<String, BuckTask> tasks = new HashMap<>();
-    private final String portLock;
-    private final String buckPid;
-
-    // Public construction forbidden
-    private BuckDaemon(String[] args) {
-        portLock = args[0];
-        buckPid = args[1];
-    }
-
-    /**
-     * Main entry point for the daemon.
-     *
-     * @param args command-line arguments
-     * @throws CheckstyleException on checkstyle error
-     * @throws IOException on I/O error
-     */
-    public static void main(String[] args)
-            throws CheckstyleException, IOException {
-        BuckDaemon daemon = new BuckDaemon(args);
-        daemon.registerTasks();
-        daemon.startServer();
-    }
-
-    /**
-     * Registers re-entrant tasks by their task name.
-     */
-    private void registerTasks() {
-        tasks.put("checkstyle", new CheckstyleRunner(System.getProperty("checkstyle.config"),
-                                                     System.getProperty("checkstyle.suppressions")));
-        // tasks.put("swagger", new SwaggerGenerator());
-    }
-
-    /**
-     * Monitors another PID and exit when that process exits.
-     */
-    private void watchProcess(String pid) {
-        if (pid == null || pid.equals("0")) {
-            return;
-        }
-        Timer timer = new Timer(true); // start as a daemon, so we don't hang shutdown
-        timer.scheduleAtFixedRate(new TimerTask() {
-            private String cmd = "kill -s 0 " + pid;
-
-            @Override
-            public void run() {
-                try {
-                    Process p = Runtime.getRuntime().exec(cmd);
-                    p.waitFor();
-                    if (p.exitValue() != 0) {
-                        debug("shutting down...");
-                        System.exit(0);
-                    }
-                } catch (IOException | InterruptedException e) {
-                    //no-op
-                    e.printStackTrace();
-                }
-            }
-        }, POLLING_INTERVAL, POLLING_INTERVAL);
-    }
-
-    /**
-     * Initiates a server.
-     */
-    private void startServer() throws IOException, CheckstyleException {
-        // Use a file lock to ensure only one copy of the daemon runs
-        Path portLockPath = Paths.get(portLock);
-        FileChannel channel = FileChannel.open(portLockPath, WRITE, CREATE);
-        FileLock lock = channel.tryLock();
-        if (lock == null) {
-            debug("Server is already running");
-            System.exit(1);
-        } //else, hold the lock until the JVM exits
-
-        // Start the server and bind it to a random port
-        ServerSocket server = new ServerSocket(0);
-
-        // Monitor the parent buck process
-        watchProcess(buckPid);
-
-        // Set up hook to clean up after ourselves
-        Runtime.getRuntime().addShutdownHook(new Thread(() -> {
-            try {
-                channel.truncate(0);
-                channel.close();
-                debug("tear down...");
-                Files.delete(portLockPath);
-            } catch (IOException e) {
-                //no-op: shutting down
-                e.printStackTrace();
-            }
-        }));
-
-        // Write the bound port to the port file
-        int port = server.getLocalPort();
-        channel.truncate(0);
-        channel.write(ByteBuffer.wrap(Integer.toString(port).getBytes()));
-        channel.force(false); // flush the port number to disk
-
-        // Instantiate a Checkstyle runner and executor; serve until exit...
-        ExecutorService executor = Executors.newCachedThreadPool();
-        while (true) {
-            try {
-                executor.submit(new BuckTaskRunner(server.accept()));
-            } catch (Exception e) {
-                e.printStackTrace();
-                //no-op
-            }
-        }
-    }
-
-    /**
-     * Runnable capable of invoking the appropriate Buck task with input
-     * consumed form the specified socket and output produced back to that
-     * socket.
-     */
-    private class BuckTaskRunner implements Runnable {
-
-        private final Socket socket;
-
-        public BuckTaskRunner(Socket socket) {
-            this.socket = socket;
-        }
-
-        @Override
-        public void run() {
-            try {
-                try {
-                    socket.setSoTimeout(1_000); //reads should time out after 1 second
-                    BuckTaskContext context = BuckTaskContext.createBuckTaskContext(socket.getInputStream());
-                    if (context == null) {
-                        socket.close();
-                        return;
-                    }
-
-                    String taskName = context.taskName();
-                    BuckTask task = tasks.get(taskName);
-                    if (task != null) {
-                        debug(String.format("Executing task '%s'", taskName));
-                        try {
-                            task.execute(context);
-                            for (String line : context.output()) {
-                                send(socket, line);
-                            }
-                            // TODO should we catch Exception, RuntimeException, or something specific?
-                        } catch (Throwable e) {
-                            e.printStackTrace(new PrintStream(socket.getOutputStream()));
-                        }
-                    } else {
-                        String message = String.format("No task named '%s'", taskName);
-                        debug(message);
-                        send(socket, message);
-                    }
-                } catch (Throwable e) {
-                    StringWriter writer = new StringWriter();
-                    e.printStackTrace(new PrintWriter(writer));
-                    String stacktrace = writer.toString();
-                    debug(stacktrace);
-                    send(socket, stacktrace);
-                }
-                socket.getOutputStream().flush();
-                socket.close();
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
-        }
-
-    }
-
-    private static void send(Socket socket, String line) throws IOException {
-        socket.getOutputStream().write((line + "\n").getBytes());
-    }
-
-    private static void debug(String message) {
-        // no-op; print to System.out if needed
-    }
-}
diff --git a/tools/build/conf/src/main/java/org/onosproject/buckdaemon/BuckTask.java b/tools/build/conf/src/main/java/org/onosproject/buckdaemon/BuckTask.java
deleted file mode 100644
index d579305..0000000
--- a/tools/build/conf/src/main/java/org/onosproject/buckdaemon/BuckTask.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright 2016-present Open Networking Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onosproject.buckdaemon;
-
-/**
- * Abstraction of a Buck task that can be spawned by the Buck daemon.
- */
-public interface BuckTask {
-
-    /**
-     * Executes the task, consuming the specified input and producing output.
-     *
-     * @param context context for the tast operation
-     */
-    void execute(BuckTaskContext context);
-
-}
diff --git a/tools/build/conf/src/main/java/org/onosproject/buckdaemon/BuckTaskContext.java b/tools/build/conf/src/main/java/org/onosproject/buckdaemon/BuckTaskContext.java
deleted file mode 100644
index 8dabfd2..0000000
--- a/tools/build/conf/src/main/java/org/onosproject/buckdaemon/BuckTaskContext.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright 2016-present Open Networking Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onosproject.buckdaemon;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Lists;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.List;
-
-/**
- * Context for executing a single Buck task.
- */
-public class BuckTaskContext {
-
-    private final String taskName;
-    private final ImmutableList<String> input;
-    private final List<String> output;
-
-    public static BuckTaskContext createBuckTaskContext(InputStream inputStream) throws IOException {
-        ImmutableList<String> lines = slurpInput(inputStream);
-        if (lines.size() == 0) {
-            return null;
-        } else {
-            return new BuckTaskContext(lines);
-        }
-    }
-
-    BuckTaskContext(ImmutableList<String> lines) {
-        this.taskName = lines.get(0);
-        this.input = lines.subList(1, lines.size());
-        this.output = Lists.newArrayList();
-    }
-
-    /**
-     * Reads all input, line by line, from a stream until an empty line or EOF is encountered.
-     *
-     * @param stream input stream
-     * @return the lines of the input
-     * @throws IOException
-     */
-    private static ImmutableList<String> slurpInput(InputStream stream) throws IOException {
-        ImmutableList.Builder<String> lines = ImmutableList.builder();
-        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(stream));
-        while (true) {
-            String line = bufferedReader.readLine();
-            if (line == null || line.trim().length() == 0) {
-                // Empty line or EOF
-                break;
-            }
-            lines.add(line);
-        }
-        return lines.build();
-    }
-
-    /**
-     * Returns the symbolic task name.
-     *
-     * @return symbolic task name
-     */
-    public String taskName() {
-        return taskName;
-    }
-
-    /**
-     * Returns the input data a list of strings.
-     *
-     * @return input data
-     */
-    public List<String> input() {
-        return ImmutableList.copyOf(input);
-    }
-
-    /**
-     * Returns the output data a list of strings.
-     *
-     * @return output data
-     */
-    List<String> output() {
-        return ImmutableList.copyOf(output);
-    }
-
-    /**
-     * Adds a line to the output data.
-     *
-     * @param line line of output data
-     */
-    public void output(String line) {
-        output.add(line);
-    }
-
-}
diff --git a/tools/build/conf/src/main/java/org/onosproject/checkstyle/CheckstyleRunner.java b/tools/build/conf/src/main/java/org/onosproject/checkstyle/CheckstyleRunner.java
deleted file mode 100644
index ab1f7eb..0000000
--- a/tools/build/conf/src/main/java/org/onosproject/checkstyle/CheckstyleRunner.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Copyright 2016-present Open Networking Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.checkstyle;
-
-import com.puppycrawl.tools.checkstyle.Checker;
-import com.puppycrawl.tools.checkstyle.ConfigurationLoader;
-import com.puppycrawl.tools.checkstyle.DefaultConfiguration;
-import com.puppycrawl.tools.checkstyle.PropertiesExpander;
-import com.puppycrawl.tools.checkstyle.api.AuditEvent;
-import com.puppycrawl.tools.checkstyle.api.AuditListener;
-import com.puppycrawl.tools.checkstyle.api.CheckstyleException;
-import com.puppycrawl.tools.checkstyle.api.Configuration;
-import org.onosproject.buckdaemon.BuckTask;
-import org.onosproject.buckdaemon.BuckTaskContext;
-
-import java.io.File;
-import java.util.List;
-import java.util.concurrent.CountDownLatch;
-import java.util.stream.Collectors;
-
-import static com.google.common.base.Strings.isNullOrEmpty;
-
-/**
- * Buck task for executing checkstyle on the specified project files.
- */
-public class CheckstyleRunner implements BuckTask {
-
-    private final Configuration config;
-
-    public CheckstyleRunner(String configLocation, String suppressionLocation) {
-        try {
-            // create a configuration
-            DefaultConfiguration config = (DefaultConfiguration) ConfigurationLoader
-                    .loadConfiguration(configLocation, new PropertiesExpander(System.getProperties()));
-
-            // add the suppression file to the configuration
-            DefaultConfiguration suppressions = new DefaultConfiguration("SuppressionFilter");
-            suppressions.addAttribute("file", suppressionLocation);
-            config.addChild(suppressions);
-
-            this.config = config;
-        } catch (CheckstyleException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    @Override
-    public void execute(BuckTaskContext context) {
-        List<String> input = context.input();
-        if (input.size() < 3 || input.get(2).length() == 0) {
-            return;
-        }
-        String project = input.get(0);
-        String baseDir = input.get(1);
-
-        // create a listener for output
-        StringAuditor listener = new StringAuditor(context);
-        listener.setProjectName(project);
-        listener.setBaseDir(baseDir);
-
-        // create Checker object and run it
-        final Checker checker = new Checker();
-        final ClassLoader moduleClassLoader = Checker.class.getClassLoader();
-        checker.setModuleClassLoader(moduleClassLoader);
-
-        try {
-            checker.configure(config);
-            checker.addListener(listener);
-
-            // run Checker
-            List<File> fileList = input.subList(2, input.size()).stream()
-                    .filter(s -> !s.contains("/:"))  // Yes, fighting a hack with a hack.
-                    .map(File::new)
-                    .collect(Collectors.toList());
-            int errorCounter = checker.process(fileList);
-            if (errorCounter > 0) {
-                context.output("CHECKSTYLE ERROR");
-            }
-
-            listener.await();
-        } catch (CheckstyleException | InterruptedException e) {
-            e.printStackTrace(); //dump exeception to stderr
-            throw new RuntimeException(e);
-        } finally {
-            checker.destroy();
-        }
-
-    }
-
-    static class StringAuditor implements AuditListener {
-
-        private final BuckTaskContext context;
-        private CountDownLatch finishedLatch = new CountDownLatch(1);
-        private String baseDir = "";
-        private String project = "";
-
-        StringAuditor(BuckTaskContext context) {
-            this.context = context;
-        }
-
-        public void setBaseDir(String base) {
-            this.baseDir = base;
-        }
-
-        public void setProjectName(String projectName) {
-            this.project = projectName;
-        }
-
-        public void await() throws InterruptedException {
-            finishedLatch.await();
-        }
-
-        @Override
-        public void auditStarted(AuditEvent evt) {
-        }
-
-        @Override
-        public void auditFinished(AuditEvent evt) {
-            finishedLatch.countDown();
-        }
-
-        @Override
-        public void fileStarted(AuditEvent evt) {
-        }
-
-        @Override
-        public void fileFinished(AuditEvent evt) {
-        }
-
-        @Override
-        public void addError(AuditEvent evt) {
-            switch (evt.getSeverityLevel()) {
-                case ERROR:
-                    StringBuilder output = new StringBuilder();
-                    String fileName = evt.getFileName();
-                    if (!isNullOrEmpty(baseDir)) {
-                        int index = fileName.indexOf(baseDir);
-                        if (index >= 0) {
-                            fileName = fileName.substring(index + baseDir.length() + 1);
-                            if (!isNullOrEmpty(project)) {
-                                output.append(project).append(':');
-                            }
-                        }
-                    }
-                    output.append(fileName).append(':').append(evt.getLine());
-                    if (evt.getColumn() > 0) {
-                        output.append(':').append(evt.getColumn());
-                    }
-                    output.append(": ").append(evt.getMessage());
-                    context.output(output.toString());
-                    break;
-                case IGNORE:
-                case INFO:
-                case WARNING:
-                default:
-                    break;
-            }
-        }
-
-        @Override
-        public void addException(AuditEvent evt, Throwable throwable) {
-            addError(evt);
-            context.output(throwable.getMessage());
-        }
-    }
-
-}
diff --git a/tools/build/conf/src/main/java/org/onosproject/checkstyle/package-info.java b/tools/build/conf/src/main/java/org/onosproject/checkstyle/package-info.java
deleted file mode 100644
index 241a819..0000000
--- a/tools/build/conf/src/main/java/org/onosproject/checkstyle/package-info.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Copyright 2018-present Open Networking Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * checkstyle runner for BuckDaemon.
- */
-package org.onosproject.checkstyle;
diff --git a/tools/build/conf/start-buck-daemon b/tools/build/conf/start-buck-daemon
deleted file mode 100755
index b747376..0000000
--- a/tools/build/conf/start-buck-daemon
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/bin/bash
-# -----------------------------------------------------------------------------
-# Launches Buck daemon if not already running and requests Buck task execution.
-# -----------------------------------------------------------------------------
-
-BUCK_DAEMON=$1
-TASK=${2:-unspecified}
-DATA=${3}
-
-# TODO: Figure out how to parametrize better
-BUCK_PROPS="-Dcheckstyle.config=$4 -Dcheckstyle.suppressions=$5"
-
-PORT_FILE="$1.port"
-
-function ppid() {
-    ps -p ${1:-$$} -o ppid= -o pid= -o comm=
-}
-
-function buck_pid() {
-    BUCK_PID=($(ppid))
-    while [ ${BUCK_PID[0]} -ne 0 ]; do
-        BUCK_PID=($(ppid $BUCK_PID))
-        if [ "${BUCK_PID[2]}" == "buck" ]; then
-            # use parent PID of buck
-            echo ${BUCK_PID[0]}
-            return
-        fi
-        if [ "${BUCK_PID[2]}" == "buckd" ] ||
-           [[ "${BUCK_PID[2]}" == *"python"* ]]; then
-            # use PID of buckd or python
-            echo ${BUCK_PID[1]}
-            return
-        fi
-    done
-    # fallback last read PID
-    echo ${BUCK_PID[1]}
-}
-
-function port() {
-    cat $PORT_FILE 2>/dev/null || echo 0
-}
-
-function check_socket() {
-    printf "\n" | nc localhost $(port) 2>/dev/null
-    return $?
-}
-
-# check to see if buck daemon is running; if not, start it
-if ! check_socket; then
-    # Starting buck daemon...
-    #FIXME change to /dev/null if/when we are confident
-    nohup java $BUCK_PROPS -jar $BUCK_DAEMON $PORT_FILE $(buck_pid) >>/tmp/buck.daemon 2>&1 &
-
-    TRIES=20
-    i=0
-    # Wait for buck daemon to start for 2 seconds
-    while [ $i -lt $TRIES ]; do
-        if check_socket; then
-            CONNECTED=true
-            break
-        fi
-        let i=i+1
-        sleep 0.1
-    done
-    if [ -z "$CONNECTED" ]; then
-        echo "Failed to start buck daemon"
-        exit 3
-    fi
-fi
-
-# run the actual buck daemon client
-OUT=$((printf "%s\n" $TASK; cat $DATA) | nc localhost $(port))
-if [ $? -ne 0 ]; then
-    echo "Error connecting to buck daemon server"
-    exit 2
-fi
-if [ -n "$OUT" ]; then
-    printf "$OUT"
-    exit 1
-fi
\ No newline at end of file
diff --git a/tools/build/envDefaults b/tools/build/envDefaults
index 09e6979..b00ba3d 100644
--- a/tools/build/envDefaults
+++ b/tools/build/envDefaults
@@ -33,16 +33,7 @@
 export ONOS_TAR=$ONOS_STAGE.tar.gz
 export ONOS_ZIP=$ONOS_STAGE.zip
 
-# If the bazel-built bits are newer than the buck-built bits, use the former.
-BUCK_TAR=$ONOS_ROOT/buck-out/gen/tools/package/onos-package/onos.tar.gz
-BAZEL_TAR=$ONOS_ROOT/bazel-bin/onos.tar.gz
-if [ -f $BAZEL_TAR ] && [ $BAZEL_TAR -nt $ONOS_TAR ]; then
-    rm -f $ONOS_TAR >/dev/null; ln -s $BAZEL_TAR $ONOS_TAR
-else
-    if [ -f $BUCK_TAR ] && [ $BUCK_TAR -nt $ONOS_TAR ]; then
-        rm -f $ONOS_TAR >/dev/null; ln -s $BUCK_TAR $ONOS_TAR
-    fi
-fi
+ONOS_TAR=$ONOS_ROOT/bazel-bin/onos.tar.gz
 
 # ONOS test bits (onos-test.tar.gz) staging environment
 export ONOS_TEST_BITS=onos-test-${ONOS_VERSION%~*}
diff --git a/tools/build/jenkins/onos-buck-gerrit b/tools/build/jenkins/onos-buck-gerrit
deleted file mode 100644
index 7638a2a..0000000
--- a/tools/build/jenkins/onos-buck-gerrit
+++ /dev/null
@@ -1,37 +0,0 @@
-#!groovy
-
-pipeline {
-
-    agent { node { label 'ubuntu16.04-basebuild-8c-15g' } }
-
-    stages {
-
-        stage('build') {
-            steps {
-                sh '''#!/bin/bash -l
-                    ONOS_ROOT=`pwd`
-                    source tools/build/envDefaults
-                    onos-buck build onos
-                '''
-            }
-        }
-
-        stage('test') {
-            steps {
-                parallel (
-                    "unit-tests": {
-                        sh '''#!/bin/bash -l
-                            ONOS_ROOT=`pwd`
-                            source tools/build/envDefaults
-                            onos-buck test
-                            onos-buck build //docs:external //docs:internal --show-output
-                        '''
-                    },
-                    // additional steps here (STC, docker buld, etc)
-                )
-            }
-        }
-    }
-
-}
-
diff --git a/tools/build/onos-buck b/tools/build/onos-buck
deleted file mode 100755
index 0a839e0..0000000
--- a/tools/build/onos-buck
+++ /dev/null
@@ -1,130 +0,0 @@
-#!/bin/bash
-# -----------------------------------------------------------------------------
-# Runs the custom version of Buck required by ONOS.
-# -----------------------------------------------------------------------------
-
-set -e
-
-BUCK_URL="http://repo1.maven.org/maven2/org/onosproject/onos-buck/v2018.02.09.01/buck-v2018.02.09.01.zip"
-BUCK_SHA="45d8bd28f441991257babf89f7a317edb3a2b536"
-
-# onos-yang-tools buck plugin version
-YANG_VER="2.5"
-ONOS_PLUGIN_VER="1.0.3"
-MAVEN_BASE="https://repo1.maven.org/maven2"
-MAVEN_ONOSPROJECT="$MAVEN_BASE/org/onosproject"
-
-[  "-U" = "$1" ] && shift && FORCE_UPDATE=True
-
-ROOT_DIR=${ONOS_ROOT:-"$( cd "$( dirname "${BASH_SOURCE[0]}" )/../.." && pwd )"}
-
-mkdir -p $ROOT_DIR/bin
-pushd $ROOT_DIR/bin > /dev/null
-
-if [ -n "$FORCE_UPDATE" ] || [ ! -f "buck" ] || [ "$BUCK_SHA" != "$(cat .buck_sha)" ]; then
-    echo "Updating Buck..." >&2
-    rm -fr .buck_version .buck_sha buck plugins
-    mkdir -p cache
-    BUCK_FILE=$(basename $BUCK_URL)
-    # Check the local cache; download to cache if required
-    [ -f "cache/$BUCK_FILE" ] || curl -o cache/$BUCK_FILE -L $BUCK_URL
-    if [ -n "$(which shasum)" ]; then
-        SHA=$(shasum cache/$BUCK_FILE | cut -d' ' -f1)
-        if [ "$SHA" != "$BUCK_SHA" ]; then
-           echo "ERROR: Downloaded SHA ($SHA) does not match expected SHA ($BUCK_SHA)" &&
-           rm -f cache/$BUCK_FILE && exit 1
-        else
-           echo "$SHA" > .buck_sha
-        fi
-    else
-        echo "SHA cannot be verified"
-    fi
-    unzip -qq cache/$BUCK_FILE
-    # Kill buckd
-    ps -ef | egrep buckd | grep -v egrep | cut -c7-11 | xargs kill 2>/dev/null || :
-    rm -rf $ROOT_DIR/buck-out
-    printf "Successfully updated Buck in $ROOT_DIR/bin/buck to $BUCK_FILE\n\n"
-fi
-
-# Fetch & install onos yang tools buck plugin
-YANG_PLUGIN_CACHE="cache/onos-yang-compiler-buck-plugin-$YANG_VER.jar"
-if hash mvn 2>/dev/null; then
-  if [[ $YANG_VER = *"-SNAPSHOT" ]] || [ ! -f "$YANG_PLUGIN_CACHE" ]; then
-    echo "Updating Yang plugin $YANG_VER..." >&2
-    ARTIFACT="org.onosproject:onos-yang-compiler-buck-plugin:$YANG_VER"
-    mvn org.apache.maven.plugins:maven-dependency-plugin:3.0.2:copy \
-        -Dartifact=$ARTIFACT \
-        -Dtransitive=false -Dmdep.overWriteSnapshots=true \
-        -DoutputDirectory=cache > /dev/null
-  fi
-else
-  if [ ! -f "$YANG_PLUGIN_CACHE" ]; then
-    echo "Updating Yang plugin $YANG_VER..." >&2
-    if [[ $YANG_VER = *"-SNAPSHOT" ]]; then
-      echo "mvn command must be installed to handle SNAPSHOT version"
-      exit 1
-    fi
-
-    curl -o "$YANG_PLUGIN_CACHE" \
-      -L $MAVEN_ONOSPROJECT/onos-yang-compiler-buck-plugin/$YANG_VER/onos-yang-compiler-buck-plugin-$YANG_VER.jar
-  fi
-
-  if [[ $YANG_VER != *"-SNAPSHOT" ]] && hash shasum 2>/dev/null; then
-    SHA=$(shasum $YANG_PLUGIN_CACHE | cut -d' ' -f1)
-    if [ ! -f "$YANG_PLUGIN_CACHE".sha1 ]; then
-      curl -o "$YANG_PLUGIN_CACHE".sha1 \
-        -L $MAVEN_ONOSPROJECT/onos-yang-compiler-buck-plugin/$YANG_VER/onos-yang-compiler-buck-plugin-$YANG_VER.jar.sha1
-    fi
-    YANG_PLUGIN_SHA=$(cat "$YANG_PLUGIN_CACHE".sha1)
-    if [ "$SHA" != "$YANG_PLUGIN_SHA" ]; then
-       echo "ERROR: Downloaded SHA ($SHA) did not match expected SHA ($YANG_PLUGIN_SHA)" &&
-       rm -f $YANG_PLUGIN_CACHE $YANG_PLUGIN_CACHE.sha1 && exit 1
-     fi
-  else
-    echo "SHA verification skipped"
-  fi
-fi
-install -Cv "$YANG_PLUGIN_CACHE" plugins/yang.jar >/dev/null
-
-# Fetch & install onos buck plugin
-
-ONOS_PLUGIN_CACHE="cache/onos-buck-plugin-$ONOS_PLUGIN_VER.jar"
-
-if [ ! -f "$ONOS_PLUGIN_CACHE" ]; then
-  echo "Updating ONOS plugin $ONOS_PLUGIN_VER..." >&2
-  curl -o "$ONOS_PLUGIN_CACHE" \
-    -L $MAVEN_ONOSPROJECT/onos-buck-plugin/$ONOS_PLUGIN_VER/onos-buck-plugin-$ONOS_PLUGIN_VER.jar
-fi
-
-
-if hash shasum 2>/dev/null; then
-  SHA=$(shasum $ONOS_PLUGIN_CACHE | cut -d' ' -f1)
-  if [ ! -f "$ONOS_PLUGIN_CACHE".sha1 ]; then
-    curl -o "$ONOS_PLUGIN_CACHE".sha1 \
-         -L $MAVEN_ONOSPROJECT/onos-buck-plugin/$ONOS_PLUGIN_VER/onos-buck-plugin-$ONOS_PLUGIN_VER.jar.sha1
-  fi
-  ONOS_PLUGIN_SHA=$(cat "$ONOS_PLUGIN_CACHE".sha1)
-  if [ "$SHA" != "$ONOS_PLUGIN_SHA" ]; then
-    echo "ERROR: Downloaded SHA ($SHA) did not match expected SHA ($ONOS_PLUGIN_SHA)" &&
-      rm -f $ONOS_PLUGIN_CACHE $ONOS_PLUGIN_CACHE.sha1 && exit 1
-  fi
-else
-    echo "SHA verification skipped"
-fi
-install -Cv "$ONOS_PLUGIN_CACHE" plugins/onos.jar >/dev/null
-
-popd > /dev/null
-
-BUCK=$ROOT_DIR/bin/buck
-
-if [ "${ONOS_NO_BUCKD:-1}" == "1" ]; then
-  export NO_BUCKD=1
-fi
-
-# HACK: Clean-up frequent problem-causers from buck-out
-#rm -fr \
-#    $ONOS_ROOT/buck-out/bin/lib/.netty \
-#    $ONOS_ROOT/buck-out/bin/lib/.KRYO
-
-# Finally, run the Buck command...
-$BUCK "$@"
diff --git a/tools/build/onos-buck-build-docs b/tools/build/onos-buck-build-docs
deleted file mode 100755
index 658a539..0000000
--- a/tools/build/onos-buck-build-docs
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-# -----------------------------------------------------------------------------
-# Builds the ONOS Java API docs with buck.
-# -----------------------------------------------------------------------------
-
-set -e
-
-[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
-. $ONOS_ROOT/tools/build/envDefaults
-
-onos-buck build  `onos-buck query "filter('.*-javadoc', '//...')"`
-
diff --git a/tools/build/onos-buck-publish b/tools/build/onos-buck-publish
deleted file mode 100755
index a4db536..0000000
--- a/tools/build/onos-buck-publish
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/bash
-#
-# Script that queries buck for main and test artifacts and publishes them to
-# a remote Maven repository. Main artifacts are published with javadoc and sources
-# jars and auto-generated pom.xml files. Test artifacts are published as compiled
-# jars only. All artifacts are signed.
-#
-
-ARTIFACT_PUB=$(mktemp /tmp/onos-publish.XXXXX) &&
-  echo "Created temp file for artifact publish: $ARTIFACT_PUB" ||
-  { echo "Failed to create temp file"; exit 1; }
-
-TEST_PUB=$(mktemp /tmp/onos-publish-tests.XXXXX) &&
-  echo "Created temp file for test artifact publish: $TEST_PUB" ||
-  { echo "Failed to create temp file"; exit 1; }
-
-trap "rm -f $ARTIFACT_PUB $ARTIFACT_PUB.bak $TEST_PUB $TEST_PUB.bak" EXIT
-
-set -e
-set -x
-
-# Prepare artifact publish commands
-cat ${ONOS_ROOT}/tools/build/publish-target-list | grep -v '#' >> $ARTIFACT_PUB
-sed -i.bak 's/^/onos-buck publish --to-maven-central --include-source --include-javadoc --sign /g' $ARTIFACT_PUB
-cp $ARTIFACT_PUB $ARTIFACT_PUB.bak
-( echo "set -e"; cat $ARTIFACT_PUB.bak ) >$ARTIFACT_PUB
-
-# Print commands to be run and then run them
-cat $ARTIFACT_PUB
-bash $ARTIFACT_PUB
-
-# Prepare feature commands
-onos-buck query "filter('.*-feature', deps(filter('.*-oar', deps('//tools/package:onos-package', 1)),1))" > $TEST_PUB
-echo "//tools/package:onos-features" >> $TEST_PUB
-
-# Prepare test commands
-cat ${ONOS_ROOT}/tools/build/publish-test-target-list | grep -v '#' >> $TEST_PUB
-sed -i.bak 's#^#onos-buck publish --to-maven-central --sign #g' $TEST_PUB
-cp $TEST_PUB $TEST_PUB.bak
-( echo "set -e"; cat $TEST_PUB.bak ) >$TEST_PUB
-
-# Print commands to be run and then run them
-cat $TEST_PUB
-bash $TEST_PUB
-
-# stage ONOS poms
-onos-buck publish --to-maven-central --sign //:top-level-pom
-onos-buck publish --to-maven-central --sign //lib:onos-dependencies-pom
-
-if ! grep "maven_url" $ONOS_ROOT/.buckconfig.local | grep -v '#' | grep -q snapshots ; then
-    # Close the staging area
-    onos-close-staging
-fi
diff --git a/tools/build/onos-buck-publish-local b/tools/build/onos-buck-publish-local
deleted file mode 100755
index 6c52db7..0000000
--- a/tools/build/onos-buck-publish-local
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-set -e
-onos-buck -V
-
-for package in `cat ${ONOS_ROOT}/tools/build/publish-target-list ${ONOS_ROOT}/tools/build/publish-test-target-list | grep -v '#'`; do
-    onos-buck publish --to-local-repo ${package}
-done
-
-
diff --git a/tools/build/onos-lib-gen b/tools/build/onos-lib-gen
index 3a083f8..14d51a3 100755
--- a/tools/build/onos-lib-gen
+++ b/tools/build/onos-lib-gen
@@ -9,7 +9,7 @@
 cd $ONOS_ROOT
 
 REPO=${M2_REPO:-~/.m2/repository}
-VER=1.5
+VER=2.1
 ARTIFACT=org/onosproject/onos-libgen/$VER/onos-libgen-$VER.jar
 JAR=$REPO/$ARTIFACT
 
@@ -21,5 +21,4 @@
     [ -f $JAR ] && printf "Done.\n"
 fi
 
-[ -z "$1" -o "$1" = "bazel" ] && java -jar $JAR lib/deps.json tools/build/bazel/generate_workspace.bzl --bazel
-[ -z "$1" -o "$1" = "buck" ] && java -jar $JAR lib/deps.json lib/BUCK
+java -jar $JAR lib/deps.json tools/build/bazel/generate_workspace.bzl
diff --git a/tools/build/onos-validate-change-version.excludes b/tools/build/onos-validate-change-version.excludes
index 856a1f4..bca6a85 100755
--- a/tools/build/onos-validate-change-version.excludes
+++ b/tools/build/onos-validate-change-version.excludes
@@ -37,8 +37,6 @@
 \./providers/snmp/
 \./sonar-project.properties
 \./tools/build/bazel
-\./tools/build/buck-plugin/BUCK
-\./tools/build/buck-publish-api
 \./tools/build/conf/pom.xml
 \./tools/build/libgen
 \./tools/build/onos-buck
diff --git a/tools/build/push-buck-plugin b/tools/build/push-buck-plugin
deleted file mode 100755
index 97df2e5..0000000
--- a/tools/build/push-buck-plugin
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/bash
-# -----------------------------------------------------------------------------
-# Builds and uploads an ONOS buck plugin release
-# -----------------------------------------------------------------------------
-
-if [ $# -ne 1 ]; then
-    echo "Usage: push-buck-plugin version"
-    exit 1
-fi
-
-PLUGIN_VERSION="$1"
-PLUGIN_FILE="buck-out/gen/tools/build/buck-plugin/onos.jar"
-UPLOAD_BASE="https://oss.sonatype.org/service/local/staging/deploy/maven2/org/onosproject/onos-buck-plugin/$PLUGIN_VERSION"
-
-# Build the buck plugin
-onos-buck build //tools/build/buck-plugin:onos
-
-# Make the signature file
-gpg --armor --detach-sig $PLUGIN_FILE
-
-# Make the MD5 checksum file
-md5 -q $PLUGIN_FILE >$PLUGIN_FILE.md5
-
-# Make the SHA1 checksum file
-( shasum $PLUGIN_FILE | cut -d' ' -f1 ) > $PLUGIN_FILE.sha1
-
-curl -v -u "$SONATYPE_USER:$SONATYPE_PASSWORD" --upload-file $PLUGIN_FILE $UPLOAD_BASE/onos-buck-plugin-$PLUGIN_VERSION.jar
-curl -v -u "$SONATYPE_USER:$SONATYPE_PASSWORD" --upload-file $PLUGIN_FILE.asc $UPLOAD_BASE/onos-buck-plugin-$PLUGIN_VERSION.jar.asc
-curl -v -u "$SONATYPE_USER:$SONATYPE_PASSWORD" --upload-file $PLUGIN_FILE.md5 $UPLOAD_BASE/onos-buck-plugin-$PLUGIN_VERSION.jar.md5
-curl -v -u "$SONATYPE_USER:$SONATYPE_PASSWORD" --upload-file $PLUGIN_FILE.sha1 $UPLOAD_BASE/onos-buck-plugin-$PLUGIN_VERSION.jar.sha1
-
diff --git a/tools/build/buck-plugin/BUILD b/tools/build/swagger/BUILD
similarity index 100%
rename from tools/build/buck-plugin/BUILD
rename to tools/build/swagger/BUILD
diff --git a/tools/build/buck-plugin/src/main/java/org/onosproject/onosjar/SwaggerGenerator.java b/tools/build/swagger/src/main/java/org/onosproject/onosjar/SwaggerGenerator.java
similarity index 100%
rename from tools/build/buck-plugin/src/main/java/org/onosproject/onosjar/SwaggerGenerator.java
rename to tools/build/swagger/src/main/java/org/onosproject/onosjar/SwaggerGenerator.java
diff --git a/tools/build/buck-plugin/src/main/resources/registrator.javat b/tools/build/swagger/src/main/resources/registrator.javat
similarity index 100%
rename from tools/build/buck-plugin/src/main/resources/registrator.javat
rename to tools/build/swagger/src/main/resources/registrator.javat
diff --git a/tools/dev/bin/patch-yang-libs b/tools/dev/bin/patch-yang-libs
deleted file mode 100755
index 0e4af2d..0000000
--- a/tools/dev/bin/patch-yang-libs
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/bash
-# -----------------------------------------------------------------------------
-# Patches lib/BUCK file to use locally built YANG tools.
-# -----------------------------------------------------------------------------
-
-BVER=2.5
-SVER=2.6-SNAPSHOT
-
-YANG_TOOLS_ROOT=${YANG_TOOLS_ROOT:-~/onos-yang-tools}
-
-rm -f $ONOS_ROOT/lib/yang/* 2>/dev/null
-mkdir -p $ONOS_ROOT/lib/yang
-
-awk '
-    BEGIN { m = 0; y = 0; }
-    /^(remote_jar|prebuilt_jar)/ { s = $0; m = 1; next; }
-    { if (m) { s = s "\n" $0; } else { print $0; } }
-    /onos-yang-.*('$BVER'|'$SVER')/ { y = 1; }
-    /^\)/ { if (m && !y) { print s; } y = 0; m = 0; }
-' $ONOS_ROOT/lib/BUCK > /tmp/BUCK
-mv /tmp/BUCK $ONOS_ROOT/lib/BUCK
-
-for yl in $(egrep "onos-yang-.*$BVER" $ONOS_ROOT/lib/deps.json); do
-    n=$(echo $yl | cut -d\" -f2)
-    m=$(echo $yl | cut -d\" -f4)
-    m=${m/$BVER/$SVER}
-    j=$(find $YANG_TOOLS_ROOT -name $n-$SVER.jar)
-    s=yang/$(basename $j)
-    cp $j $ONOS_ROOT/lib/$s
-
-    # echo $n, $m, $j
-
-    cat <<EOF >>$ONOS_ROOT/lib/BUCK
-prebuilt_jar (
-  name = '$n',
-  binary_jar = '$s',
-  maven_coords = '${m#mvn:*}',
-  visibility = [ 'PUBLIC' ],
-)
-
-EOF
-done
-
-YANG_PLUGIN_SRC=$YANG_TOOLS_ROOT/compiler/plugin/buck/target/onos-yang-compiler-buck-plugin-$SVER.jar
-if [ ! -f "$YANG_PLUGIN_SRC" ]; then
-    mvn -f $YANG_TOOLS_ROOT/pom.xml -am -pl :onos-yang-compiler-buck-plugin install -DskipTests -Dcheckstyle.skip
-fi
-# populate buck plugin cache with SNAPSHOT version
-ARTIFACT="org.onosproject:onos-yang-compiler-buck-plugin:$SVER"
-mvn org.apache.maven.plugins:maven-dependency-plugin:3.0.2:copy \
-    -Dartifact=$ARTIFACT \
-    -Dtransitive=false -Dmdep.overWriteSnapshots=true \
-    -DoutputDirectory=$ONOS_ROOT/bin/cache > /dev/null
-
-# Patch the YANG BUCK plugin version specified
-sed -i.bak "s/YANG_VER=\"$BVER\"/YANG_VER=\"$SVER\"/" $ONOS_ROOT/tools/build/onos-buck
diff --git a/tools/package/BUCK b/tools/package/BUCK
deleted file mode 100644
index b7adf19..0000000
--- a/tools/package/BUCK
+++ /dev/null
@@ -1,48 +0,0 @@
-KARAF = '//lib:apache-karaf'
-BRANDING = '//tools/package/branding:onos-tools-package-branding'
-PATCHES = '//lib:apache-karaf-patches'
-
-#TODO move to buck-tools
-export_file (
-  name = 'onos-prep-karaf',
-)
-
-genrule(
-  name = 'onos-karaf',
-  srcs = glob(['bin/*', 'etc/*', 'init/*', 'runtime/bin/*']),
-  bash = '$(location :onos-prep-karaf) $OUT $(location %s) %s $(location %s) $(location %s)'\
-            % (KARAF, ONOS_VERSION, BRANDING, PATCHES),
-  out = 'karaf.zip',
-)
-
-staged_repos = ['$(location %s-repo)' % f for f in FEATURES]
-staged_apps = ['$(location %s)' % a for a in APPS]
-
-# feature_coords = 'foo:bar:1.3'
-sources = [ '$(location //tools/package/features:onos-features)', ]
-sources += staged_repos + staged_apps
-
-tar_file(
-  name = 'onos-package-runtime',
-  srcs = glob(['runtime/bin/*']),
-  root = 'tools/package',
-  out = 'package-runtime.tar.gz',
-  visibility = [ 'PUBLIC' ],
-)
-
-genrule(
-  name = 'onos-package',
-  srcs = glob(['bin/*', 'etc/*', 'init/*', 'config/*', 'runtime/bin/*']),
-  out = 'onos.tar.gz',
-  bash = '$(exe //buck-tools:onos-stage) $OUT ' + ONOS_VERSION + ' $(location :onos-karaf) ' + ' '.join(sources),
-  visibility = [ 'PUBLIC' ],
-)
-
-genrule(
-  name = 'onos-run',
-  out = 'onos-run',
-  srcs = [ 'onos-run-karaf' ],
-  bash = 'sed "s#ONOS_TAR=#ONOS_TAR=$(location :onos-package)#" $SRCS > $OUT; chmod +x $OUT',
-  executable = True,
-  visibility = [ 'PUBLIC' ],
-)
diff --git a/tools/package/branding/BUCK b/tools/package/branding/BUCK
deleted file mode 100644
index 3a2e916..0000000
--- a/tools/package/branding/BUCK
+++ /dev/null
@@ -1,2 +0,0 @@
-osgi_jar()
-# Really... that's it
\ No newline at end of file
diff --git a/tools/package/features/BUCK b/tools/package/features/BUCK
deleted file mode 100644
index 3744cc4..0000000
--- a/tools/package/features/BUCK
+++ /dev/null
@@ -1,176 +0,0 @@
-osgi_feature (
-  name="onos-thirdparty-base",
-  title="ONOS 3rd party dependencies",
-  required_features = [],
-  included_bundles = [
-    '//lib:atomix',
-    '//lib:atomix-cluster',
-    '//lib:atomix-gossip',
-    '//lib:atomix-primary-backup',
-    '//lib:atomix-primitive',
-    '//lib:atomix-raft',
-    '//lib:atomix-storage',
-    '//lib:atomix-utils',
-    '//lib:classgraph',
-    '//lib:commons-lang',
-    '//lib:commons-lang3',
-    '//lib:commons-text',
-    '//lib:commons-configuration',
-    '//lib:fast-classpath-scanner',
-    '//lib:com_google_guava_guava',
-    '//lib:io_netty_netty',
-    '//lib:io_netty_netty_common',
-    '//lib:io_netty_netty_buffer',
-    '//lib:io_netty_netty_transport',
-    '//lib:io_netty_netty_handler',
-    '//lib:io_netty_netty_codec',
-    '//lib:io_netty_netty_transport_native_unix_common',
-    '//lib:io_netty_netty_transport-native-epoll',
-    '//lib:io_netty_netty_resolver',
-    '//lib:commons-pool',
-    '//lib:commons-math3',
-    '//lib:joda-time',
-    '//lib:metrics-core',
-    '//lib:metrics-json',
-    '//lib:minimal-json',
-    '//lib:kryo',
-    '//lib:reflectasm',
-    '//lib:asm',
-    '//lib:minlog',
-    '//lib:objenesis',
-    '//lib:jackson-core',
-    '//lib:jackson-annotations',
-    '//lib:jackson-databind',
-    '//lib:commons-collections',
-    '//lib:typesafe-config',
-    '//lib:concurrent-trees',
-    '//lib:commons-io',
-    '//lib:jersey-client',
-    '//lib:mapdb',
-    '//lib:bcpkix-jdk15on',
-    '//lib:bcprov-jdk15on',
-    '//lib:commons-jxpath', # FIXME: move xpath lib dependency to the right place
-    '//lib:commons-beanutils', # jxpath dependency
-    '//lib:jdom',  # jxpath dependency
-    '//lib:sigar',
-  ]
-)
-
-osgi_feature (
-  name="onos-thirdparty-web",
-  title="ONOS 3rd party dependencies for web apps",
-  required_features = [ 'war', 'onos-thirdparty-base' ],
-  included_bundles = [
-    '//lib:jersey-common',
-    '//lib:javax.annotation-api-mvn',
-    '//lib:javax.ws.rs-api',
-    '//lib:hk2-api',
-    '//lib:hk2-locator',
-    '//lib:hk2-osgi-resource-locator',
-    '//lib:javax.inject',
-    '//lib:jersey-server',
-    '//lib:jersey-hk2',
-    '//lib:aopalliance-repackaged',
-    '//lib:hk2-utils',
-    '//lib:validation-api',
-    '//lib:javassist',
-    '//lib:jersey-container-servlet',
-    '//lib:jersey-container-servlet-core',
-    '//lib:jersey-media-multipart',
-    '//lib:mimepull',
-  ]
-)
-
-osgi_feature (
-  name = 'onos-api',
-  title = 'ONOS services and model API',
-  required_features = ['scr', 'onos-thirdparty-base'],
-  included_bundles =[
-    '//utils/misc:onlab-misc',
-    '//utils/osgi:onlab-osgi',
-    '//core/api:onos-api',
-    '//incubator/api:onos-incubator-api',
-  ]
-)
-
-osgi_feature (
-  name='onos-core',
-  title='ONOS core components',
-  required_features = ['onos-api'],
-  included_bundles = [
-    '//core/net:onos-core-net',
-    '//core/common:onos-core-common',
-    '//core/store/dist:onos-core-dist',
-    '//core/store/primitives:onos-core-primitives',
-    '//core/store/persistence:onos-core-persistence',
-    '//core/store/serializers:onos-core-serializers',
-  ]
-)
-
-osgi_feature (
-  name='onos-incubator',
-  title='ONOS core incubator components',
-  required_features = ['onos-core'],
-  included_bundles = [
-    '//incubator/net:onos-incubator-net',
-    '//incubator/store:onos-incubator-store',
-    '//incubator/rpc:onos-incubator-rpc',
-  ]
-)
-
-osgi_feature (
-  name="onos-rest",
-  title="ONOS REST API components",
-  required_features = ['onos-api', 'onos-thirdparty-web'],
-  included_bundles = [
-    '//utils/rest:onlab-rest',
-    '//web/api:onos-rest',
-  ]
-)
-
-osgi_feature (
-  name = 'onos-gui',
-  title = 'ONOS GUI console components',
-  required_features = ['onos-api', 'onos-thirdparty-web'],
-  included_bundles = [
-    '//lib:jetty-websocket',
-    '//utils/rest:onlab-rest',
-    '//web/gui:onos-gui',
-  ]
-)
-
-osgi_feature (
-  name = 'onos-gui2',
-  title = 'ONOS GUI2 console components',
-  required_features = ['onos-api', 'onos-thirdparty-web'],
-  included_bundles = [
-    '//lib:jetty-websocket',
-    '//utils/rest:onlab-rest',
-    '//web/gui2:onos-gui2',
-  ]
-)
-
-osgi_feature (
-  name = 'onos-cli',
-  title="ONOS admin command console components",
-  required_features = ['onos-api'],
-  included_bundles = [
-    '//cli:onos-cli',
-  ]
-)
-
-osgi_feature (
-  name = 'onos-security',
-  title="Security-Mode ONOS",
-  required_features = ['onos-api'],
-  included_bundles = [
-    '//lib:org.apache.felix.framework.security',
-    '//core/security:onos-security',
-  ]
-)
-
-compile_features(
-  name = 'onos-features',
-  features = FEATURES,
-  maven_coords = 'org.onosproject:onos-features:xml:features:' + ONOS_VERSION,
-)
diff --git a/tools/test/bin/onos-check-bits b/tools/test/bin/onos-check-bits
index 1196e27..8d86989 100755
--- a/tools/test/bin/onos-check-bits
+++ b/tools/test/bin/onos-check-bits
@@ -6,16 +6,7 @@
 [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
 . $ONOS_ROOT/tools/build/envDefaults
 
-# If the bazel-built bits are newer than the buck-built bits, use the former.
-BUCK_TAR=$ONOS_ROOT/buck-out/gen/tools/package/onos-package/onos.tar.gz
-BAZEL_TAR=$ONOS_ROOT/bazel-bin/onos.tar.gz
-if [ -f $BAZEL_TAR ] && [ $BAZEL_TAR -nt $ONOS_TAR ]; then
-    rm -f $ONOS_TAR >/dev/null; ln -s $BAZEL_TAR $ONOS_TAR
-else
-    if [ -f $BUCK_TAR ] && [ $BUCK_TAR -nt $ONOS_TAR ]; then
-        rm -f $ONOS_TAR >/dev/null; ln -s $BUCK_TAR $ONOS_TAR
-    fi
-fi
+ONOS_TAR=$ONOS_ROOT/bazel-bin/onos.tar.gz
 
 ls -lL $ONOS_TAR  && cksum $ONOS_TAR
 if [ $? -ne 0 ]; then
diff --git a/utils/junit/BUCK b/utils/junit/BUCK
deleted file mode 100644
index f4e5444..0000000
--- a/utils/junit/BUCK
+++ /dev/null
@@ -1,21 +0,0 @@
-SRC_DEPS = [
-    '//lib:junit',
-    '//lib:hamcrest-all',
-    '//lib:com_google_guava_guava',
-    '//lib:slf4j-api',
-]
-
-TEST_DEPS = [
-    '//lib:com_google_guava_guava_testlib',
-]
-
-osgi_jar_with_tests(
-    name = 'onlab-junit',
-    srcs = glob([SRC + '/*.java']),
-    deps = SRC_DEPS,
-    test_deps = TEST_DEPS,
-    visibility = ['PUBLIC'],
-    resources_root = 'src/main/resources',
-    resources = glob(['src/main/resources/**']),
-    package_name_root = 'org.onlab',
-)
diff --git a/utils/misc/BUCK b/utils/misc/BUCK
deleted file mode 100644
index 5df6e11..0000000
--- a/utils/misc/BUCK
+++ /dev/null
@@ -1,17 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:COMPILE',
-    '//lib:NETTY',
-    '//lib:METRICS',
-    '//lib:KRYO',
-    '//lib:io_netty_netty',
-    '//lib:JACKSON',
-]
-
-osgi_jar_with_tests(
-    name = 'onlab-misc',
-    deps = COMPILE_DEPS,
-    package_name_root = 'org.onlab',
-    visibility = ['PUBLIC'],
-)
-
-
diff --git a/utils/osgi/BUCK b/utils/osgi/BUCK
deleted file mode 100644
index 36d5819..0000000
--- a/utils/osgi/BUCK
+++ /dev/null
@@ -1,9 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:COMPILE',
-]
-
-osgi_jar_with_tests(
-  name = 'onlab-osgi',
-  deps = COMPILE_DEPS,
-  package_name_root = 'org.onlab',
-)
diff --git a/utils/osgiwrap/BUCK b/utils/osgiwrap/BUCK
deleted file mode 100644
index 3a91e9b..0000000
--- a/utils/osgiwrap/BUCK
+++ /dev/null
@@ -1,26 +0,0 @@
-SRC = 'src/main/java/org/onlab/**/'
-TEST = 'src/test/java/org/onlab/**/'
-CURRENT_NAME = 'onlab-osgiwrap'
-CURRENT_TARGET = ':' + CURRENT_NAME
-
-COMPILE_DEPS = [
-    '//lib:com_google_guava_guava',
-    '//lib:bndlib',
-    '//lib:org.apache.felix.scr.bnd'
-]
-
-
-java_library(
-    name = CURRENT_NAME,
-    #maven_coords = 'org.onosproject:' + CURRENT_NAME + ':' + '1.2.3',
-    srcs = glob([SRC + '/*.java']),
-    deps = COMPILE_DEPS,
-    visibility = ['PUBLIC'],
-)
-
-java_binary(
-    name = 'osgi-jar',
-    deps = COMPILE_DEPS + [ ':' + CURRENT_NAME ],
-    main_class = 'org.onlab.osgiwrap.OSGiWrapper',
-    visibility = [ 'PUBLIC' ]
-)
diff --git a/utils/rest/BUCK b/utils/rest/BUCK
deleted file mode 100644
index 2d7885b..0000000
--- a/utils/rest/BUCK
+++ /dev/null
@@ -1,14 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:COMPILE',
-    '//lib:JACKSON',
-    '//utils/osgi:onlab-osgi',
-    '//utils/misc:onlab-misc',
-    '//lib:javax.ws.rs-api',
-    '//lib:jersey-server',
-]
-
-osgi_jar_with_tests (
-    name = 'onlab-rest',
-    deps = COMPILE_DEPS,
-    package_name_root = 'org.onlab',
-)
diff --git a/web/api/BUCK b/web/api/BUCK
deleted file mode 100644
index c1c6ab4..0000000
--- a/web/api/BUCK
+++ /dev/null
@@ -1,25 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:METRICS',
-    '//incubator/api:onos-incubator-api',
-    '//lib:javax.ws.rs-api',
-    '//utils/rest:onlab-rest',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_REST',
-    '//lib:minimal-json',
-    '//lib:jersey-security'
-]
-
-osgi_jar_with_tests (
-    name = 'onos-rest',
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    web_context = '/onos/v1',
-    api_title = 'ONOS Core REST API',
-    api_version = '1.0',
-    api_description = 'ONOS Core REST API',
-    api_package = 'org.onosproject.rest.impl',
-)
diff --git a/web/gui/BUCK b/web/gui/BUCK
deleted file mode 100644
index df70a20..0000000
--- a/web/gui/BUCK
+++ /dev/null
@@ -1,67 +0,0 @@
-NODE_VERSION = 'v8.11.1'
-
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//lib:javax.ws.rs-api',
-    '//lib:servlet-api',
-    '//lib:jetty-websocket',
-    '//lib:jetty-util',
-    '//lib:jersey-media-multipart',
-    '//lib:org.apache.karaf.shell.console',
-    '//cli:onos-cli',
-    '//lib:jersey-server',
-    '//incubator/api:onos-incubator-api',
-    '//incubator/net:onos-incubator-net',
-    '//utils/rest:onlab-rest',
-    '//core/store/serializers:onos-core-serializers',
-    ':onos-tools-gui',
-]
-
-TEST_DEPS = [
-    '//lib:TEST',
-    '//core/api:onos-api-tests',
-    '//drivers/default:onos-drivers-default',
-]
-
-RESOURCES = {
-    'WEB-INF/classes/index.html': 'src/main/webapp/index.html',
-    'WEB-INF/classes/login.html': 'src/main/webapp/login.html',
-    'WEB-INF/classes/error.html': 'src/main/webapp/error.html',
-    'WEB-INF/classes/not-ready.html': 'src/main/webapp/not-ready.html',
-    'WEB-INF/classes/onos.js': 'src/main/webapp/onos.js',
-    'WEB-INF/classes/nav.html': 'src/main/webapp/nav.html',
-    'WEB-INF/classes/app/view': 'src/main/webapp/app/view',
-    'WEB-INF/classes/raw': 'src/main/webapp/raw',
-}
-
-include_defs('//bucklets/node.bucklet')
-sh_src='onos-gui-build'
-
-fetch_node(version = NODE_VERSION)
-
-export_file (
-    name = 'onos-tools-gui-exe',
-    src = sh_src,
-    visibility = [ 'PUBLIC' ],
-)
-
-genrule(
-    name = 'onos-tools-gui',
-    srcs = glob(['src/main/webapp/*.js', 'src/main/webapp/app/**/*.js'], excludes = ['src/main/webapp/dist/*.js']),
-    bash = '$(location :onos-tools-gui-exe) '
-        + ' $(location :node-release-' + NODE_VERSION + ') '
-        + '$(location :node-bin-' + NODE_VERSION + ') > $OUT',
-    out = 'onos-tools-gui.log',
-    visibility = [ 'PUBLIC' ],
-)
-
-osgi_jar_with_tests (
-    name = 'onos-gui',
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-    include_resources = RESOURCES,
-    web_context = '/onos/ui',
-    do_javadocs = False,
-)
