diff --git a/core/net/src/test/java/org/onosproject/app/impl/FeaturesServiceAdapter.java b/core/net/src/test/java/org/onosproject/app/impl/FeaturesServiceAdapter.java
index 165d4e4..61e1996 100644
--- a/core/net/src/test/java/org/onosproject/app/impl/FeaturesServiceAdapter.java
+++ b/core/net/src/test/java/org/onosproject/app/impl/FeaturesServiceAdapter.java
@@ -41,6 +41,11 @@
     }
 
     @Override
+    public Feature[] repositoryProvidedFeatures(URI uri) throws Exception {
+        return new Feature[0];
+    }
+
+    @Override
     public void setResolutionOutputFile(String s) {
 
     }
diff --git a/lib/deps.json b/lib/deps.json
index b5455d5..06fedf4 100644
--- a/lib/deps.json
+++ b/lib/deps.json
@@ -183,7 +183,7 @@
 
     // Note: grpc imports "javax_annotation_api" has an http file, so we need to give a different name here
     // See WORKSPACE
-    "javax.annotation-api-mvn": "mvn:javax.annotation:javax.annotation-api:1.2",
+    "javax.annotation-api-mvn": "mvn:javax.annotation:javax.annotation-api:1.3",
 
     "javax.inject": "mvn:org.glassfish.hk2.external:javax.inject:2.5.0-b42",
     "javax.ws.rs-api": "mvn:javax.ws.rs:javax.ws.rs-api:2.1",
@@ -249,13 +249,13 @@
     "org.osgi.service.metatype.annotations": "mvn:org.osgi:org.osgi.service.metatype.annotations:1.4.0",
     "org.osgi.service.cm": "mvn:org.osgi:org.osgi.service.cm:1.6.0",
     "org.apache.felix.scr.bnd": "mvn:org.apache.felix:org.apache.felix.scr.bnd:1.9.0",
-    "org.apache.karaf.features.core": "mvn:org.apache.karaf.features:org.apache.karaf.features.core:4.2.2",
-    "org.apache.karaf.shell.console": "mvn:org.apache.karaf.shell:org.apache.karaf.shell.console:4.2.2",
-    "org.apache.karaf.shell.core": "mvn:org.apache.karaf.shell:org.apache.karaf.shell.core:4.2.2",
+    "org.apache.karaf.features.core": "mvn:org.apache.karaf.features:org.apache.karaf.features.core:4.2.3",
+    "org.apache.karaf.shell.console": "mvn:org.apache.karaf.shell:org.apache.karaf.shell.console:4.2.3",
+    "org.apache.karaf.shell.core": "mvn:org.apache.karaf.shell:org.apache.karaf.shell.core:4.2.3",
     "org.apache.httpcomponents.httpasyncclient-osgi": "mvn:org.apache.httpcomponents:httpasyncclient-osgi:4.1.2",
     "org.apache.httpcomponents.httpcore-nio": "mvn:org.apache.httpcomponents:httpcore-nio:4.4.4",
-    "org.apache.karaf.jaas": "mvn:org.apache.karaf.jaas:org.apache.karaf.jaas.modules:4.2.2",
-    "org.apache.karaf.system.core": "mvn:org.apache.karaf.system:org.apache.karaf.system.core:4.2.2",
+    "org.apache.karaf.jaas": "mvn:org.apache.karaf.jaas:org.apache.karaf.jaas.modules:4.2.3",
+    "org.apache.karaf.system.core": "mvn:org.apache.karaf.system:org.apache.karaf.system.core:4.2.3",
     "org.apache.servicemix.bundles.snmp4j": "mvn:org.apache.servicemix.bundles:org.apache.servicemix.bundles.snmp4j:2.3.4_1",
     "org.osgi.compendium": "mvn:org.osgi:org.osgi.compendium:5.0.0",
     "org.osgi.cmpn": "mvn:org.osgi:osgi.cmpn:7.0.0",
@@ -272,7 +272,7 @@
     "typesafe-config": "mvn:com.typesafe:config:1.3.2",
     "validation-api": "mvn:javax.validation:validation-api:1.1.0.Final",
     "checkstyle": "mvn:com.puppycrawl.tools:checkstyle:8.10",
-    "apache-karaf": "http://repo1.maven.org/maven2/org/onosproject/apache-karaf-offline/4.2.2-offline-20190103/apache-karaf-offline-4.2.2-offline-20190103.tar.gz",
+    "apache-karaf": "http://repo1.maven.org/maven2/org/onosproject/apache-karaf-offline/4.2.3-offline-20190213/apache-karaf-offline-4.2.3-offline-20190213.tar.gz",
     "bndlib": "mvn:biz.aQute.bnd:biz.aQute.bndlib:jar:4.0.0",
     "bndexe": "mvn:biz.aQute.bnd:biz.aQute.bnd:4.0.0",
     "libthrift": "mvn:org.apache.thrift:libthrift:0.11.0",
diff --git a/tools/build/bazel/generate_workspace.bzl b/tools/build/bazel/generate_workspace.bzl
index c7599f1..d9ceb5d 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, 30 Jan 2019 02:12:24 GMT. Do not edit this file manually. *****
+# ***** This file was auto-generated at Thu, 14 Feb 2019 20:57:40 GMT. Do not edit this file manually. *****
 # ***** Use onos-lib-gen *****
 
 load("//tools/build/bazel:variables.bzl", "ONOS_GROUP_ID", "ONOS_VERSION")
@@ -469,9 +469,9 @@
     if "javax_annotation_api_mvn" not in native.existing_rules():
         java_import_external(
             name = "javax_annotation_api_mvn",
-            jar_sha256 = "5909b396ca3a2be10d0eea32c74ef78d816e1b4ead21de1d78de1f890d033e04",
+            jar_sha256 = "f43f8ca10941606fb675785286981c166be1393f584020ffd965c6863f62232c",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/javax/annotation/javax.annotation-api/1.3/javax.annotation-api-1.3.jar"],        )
     if "javax_inject" not in native.existing_rules():
         java_import_external(
             name = "javax_inject",
@@ -859,21 +859,21 @@
     if "org_apache_karaf_features_core" not in native.existing_rules():
         java_import_external(
             name = "org_apache_karaf_features_core",
-            jar_sha256 = "103e6e390ad1bb90557cb7e4ffa78252af2e06c1d5efb197131c620327026079",
+            jar_sha256 = "d8f0d4316853f735ea1fef76fcc923114e244ea2a7f45e9ccc1ec4753e49d685",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/org/apache/karaf/features/org.apache.karaf.features.core/4.2.2/org.apache.karaf.features.core-4.2.2.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/org/apache/karaf/features/org.apache.karaf.features.core/4.2.3/org.apache.karaf.features.core-4.2.3.jar"],        )
     if "org_apache_karaf_shell_console" not in native.existing_rules():
         java_import_external(
             name = "org_apache_karaf_shell_console",
-            jar_sha256 = "ef7dd8991ec51300be40c0c73cdace8e45ad13f1b9c534ac77e8f4d00a5aee9b",
+            jar_sha256 = "47db2aff03a724afc597d1bb09838e5ed44d898fb77a4cd49ddcd8571295496a",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/org/apache/karaf/shell/org.apache.karaf.shell.console/4.2.2/org.apache.karaf.shell.console-4.2.2.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/org/apache/karaf/shell/org.apache.karaf.shell.console/4.2.3/org.apache.karaf.shell.console-4.2.3.jar"],        )
     if "org_apache_karaf_shell_core" not in native.existing_rules():
         java_import_external(
             name = "org_apache_karaf_shell_core",
-            jar_sha256 = "cef7bebec1db3221321a6d6788bdaefa6a8d06d34755e466163ce17b08f0a139",
+            jar_sha256 = "0488d661c1f5f7eb151812538d7bbd06655ad3e436fa4251f2d5b65540f65810",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/org/apache/karaf/shell/org.apache.karaf.shell.core/4.2.2/org.apache.karaf.shell.core-4.2.2.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/org/apache/karaf/shell/org.apache.karaf.shell.core/4.2.3/org.apache.karaf.shell.core-4.2.3.jar"],        )
     if "org_apache_httpcomponents_httpasyncclient_osgi" not in native.existing_rules():
         java_import_external(
             name = "org_apache_httpcomponents_httpasyncclient_osgi",
@@ -889,15 +889,15 @@
     if "org_apache_karaf_jaas" not in native.existing_rules():
         java_import_external(
             name = "org_apache_karaf_jaas",
-            jar_sha256 = "0ea8d27ecf8f7a2c167923ceaa015001fa7d27e741f554da49667af838b92c07",
+            jar_sha256 = "5648ad5645f5c0a4aaedd2e17ff407195348803ddbcc530a3ac25938c84c0c22",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/org/apache/karaf/jaas/org.apache.karaf.jaas.modules/4.2.2/org.apache.karaf.jaas.modules-4.2.2.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/org/apache/karaf/jaas/org.apache.karaf.jaas.modules/4.2.3/org.apache.karaf.jaas.modules-4.2.3.jar"],        )
     if "org_apache_karaf_system_core" not in native.existing_rules():
         java_import_external(
             name = "org_apache_karaf_system_core",
-            jar_sha256 = "fa840eb87c32114e796f168b1ffe8f41bae990161df054958c9518d1703a2ac1",
+            jar_sha256 = "135b74b58abfca5f111d66fda6ce927eb9700ffa2ada7737d72cd6a39606d08b",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/org/apache/karaf/system/org.apache.karaf.system.core/4.2.2/org.apache.karaf.system.core-4.2.2.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/org/apache/karaf/system/org.apache.karaf.system.core/4.2.3/org.apache.karaf.system.core-4.2.3.jar"],        )
     if "org_apache_servicemix_bundles_snmp4j" not in native.existing_rules():
         java_import_external(
             name = "org_apache_servicemix_bundles_snmp4j",
@@ -997,9 +997,9 @@
     if "apache_karaf" not in native.existing_rules():
         java_import_external(
             name = "apache_karaf",
-            jar_sha256 = "24a5e66db3e2496aabb374ffa44bd9616f01a278bdfe6d6c48849652cc63ae3f",
+            jar_sha256 = "2d35d9a4f2b4cb67cf339fc3645925e257ba530170e2c95ffc7418a2ad3fc16a",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/org/onosproject/apache-karaf-offline/4.2.2-offline-20190103/apache-karaf-offline-4.2.2-offline-20190103.tar.gz"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/org/onosproject/apache-karaf-offline/4.2.3-offline-20190213/apache-karaf-offline-4.2.3-offline-20190213.tar.gz"],        )
     if "bndlib" not in native.existing_rules():
         java_import_external(
             name = "bndlib",
@@ -1334,7 +1334,7 @@
 artifact_map["@jackson_annotations//:jackson_annotations"] = "mvn:com.fasterxml.jackson.core:jackson-annotations:jar:2.9.5"
 artifact_map["@jackson_core//:jackson_core"] = "mvn:com.fasterxml.jackson.core:jackson-core:jar:2.9.5"
 artifact_map["@jackson_databind//:jackson_databind"] = "mvn:com.fasterxml.jackson.core:jackson-databind:jar:2.9.5"
-artifact_map["@javax_annotation_api_mvn//:javax_annotation_api_mvn"] = "mvn:javax.annotation:javax.annotation-api:jar:1.2"
+artifact_map["@javax_annotation_api_mvn//:javax_annotation_api_mvn"] = "mvn:javax.annotation:javax.annotation-api:jar:1.3"
 artifact_map["@javax_inject//:javax_inject"] = "mvn:org.glassfish.hk2.external:javax.inject:jar:2.5.0-b42"
 artifact_map["@javax_ws_rs_api//:javax_ws_rs_api"] = "mvn:javax.ws.rs:javax.ws.rs-api:jar:2.1"
 artifact_map["@javax_activation//:javax_activation"] = "mvn:javax.activation:activation:jar:NON-OSGI:1.1.1"
@@ -1399,13 +1399,13 @@
 artifact_map["@org_osgi_service_metatype_annotations//:org_osgi_service_metatype_annotations"] = "mvn:org.osgi:org.osgi.service.metatype.annotations:jar:1.4.0"
 artifact_map["@org_osgi_service_cm//:org_osgi_service_cm"] = "mvn:org.osgi:org.osgi.service.cm:jar:1.6.0"
 artifact_map["@org_apache_felix_scr_bnd//:org_apache_felix_scr_bnd"] = "mvn:org.apache.felix:org.apache.felix.scr.bnd:jar:NON-OSGI:1.9.0"
-artifact_map["@org_apache_karaf_features_core//:org_apache_karaf_features_core"] = "mvn:org.apache.karaf.features:org.apache.karaf.features.core:jar:4.2.2"
-artifact_map["@org_apache_karaf_shell_console//:org_apache_karaf_shell_console"] = "mvn:org.apache.karaf.shell:org.apache.karaf.shell.console:jar:4.2.2"
-artifact_map["@org_apache_karaf_shell_core//:org_apache_karaf_shell_core"] = "mvn:org.apache.karaf.shell:org.apache.karaf.shell.core:jar:4.2.2"
+artifact_map["@org_apache_karaf_features_core//:org_apache_karaf_features_core"] = "mvn:org.apache.karaf.features:org.apache.karaf.features.core:jar:4.2.3"
+artifact_map["@org_apache_karaf_shell_console//:org_apache_karaf_shell_console"] = "mvn:org.apache.karaf.shell:org.apache.karaf.shell.console:jar:4.2.3"
+artifact_map["@org_apache_karaf_shell_core//:org_apache_karaf_shell_core"] = "mvn:org.apache.karaf.shell:org.apache.karaf.shell.core:jar:4.2.3"
 artifact_map["@org_apache_httpcomponents_httpasyncclient_osgi//:org_apache_httpcomponents_httpasyncclient_osgi"] = "mvn:org.apache.httpcomponents:httpasyncclient-osgi:jar:4.1.2"
 artifact_map["@org_apache_httpcomponents_httpcore_nio//:org_apache_httpcomponents_httpcore_nio"] = "mvn:org.apache.httpcomponents:httpcore-nio:jar:NON-OSGI:4.4.4"
-artifact_map["@org_apache_karaf_jaas//:org_apache_karaf_jaas"] = "mvn:org.apache.karaf.jaas:org.apache.karaf.jaas.modules:jar:4.2.2"
-artifact_map["@org_apache_karaf_system_core//:org_apache_karaf_system_core"] = "mvn:org.apache.karaf.system:org.apache.karaf.system.core:jar:4.2.2"
+artifact_map["@org_apache_karaf_jaas//:org_apache_karaf_jaas"] = "mvn:org.apache.karaf.jaas:org.apache.karaf.jaas.modules:jar:4.2.3"
+artifact_map["@org_apache_karaf_system_core//:org_apache_karaf_system_core"] = "mvn:org.apache.karaf.system:org.apache.karaf.system.core:jar:4.2.3"
 artifact_map["@org_apache_servicemix_bundles_snmp4j//:org_apache_servicemix_bundles_snmp4j"] = "mvn:org.apache.servicemix.bundles:org.apache.servicemix.bundles.snmp4j:jar:2.3.4_1"
 artifact_map["@org_osgi_compendium//:org_osgi_compendium"] = "mvn:org.osgi:org.osgi.compendium:jar:5.0.0"
 artifact_map["@org_osgi_cmpn//:org_osgi_cmpn"] = "mvn:org.osgi:osgi.cmpn:jar:7.0.0"
@@ -1422,7 +1422,7 @@
 artifact_map["@typesafe_config//:typesafe_config"] = "mvn:com.typesafe:config:jar:1.3.2"
 artifact_map["@validation_api//:validation_api"] = "mvn:javax.validation:validation-api:jar:1.1.0.Final"
 artifact_map["@checkstyle//:checkstyle"] = "mvn:com.puppycrawl.tools:checkstyle:jar:NON-OSGI:8.10"
-artifact_map["@apache_karaf//:apache_karaf"] = "http://repo1.maven.org/maven2/org/onosproject/apache-karaf-offline/4.2.2-offline-20190103/apache-karaf-offline-4.2.2-offline-20190103.tar.gz"
+artifact_map["@apache_karaf//:apache_karaf"] = "http://repo1.maven.org/maven2/org/onosproject/apache-karaf-offline/4.2.3-offline-20190213/apache-karaf-offline-4.2.3-offline-20190213.tar.gz"
 artifact_map["@bndlib//:bndlib"] = "mvn:biz.aQute.bnd:biz.aQute.bndlib:jar:4.0.0"
 artifact_map["@bndexe//:bndexe"] = "mvn:biz.aQute.bnd:biz.aQute.bnd:jar:4.0.0"
 artifact_map["@libthrift//:libthrift"] = "mvn:org.apache.thrift:libthrift:jar:0.11.0"
diff --git a/tools/build/bazel/osgi_features.bzl b/tools/build/bazel/osgi_features.bzl
index 7c5037d..b5eb2a5 100644
--- a/tools/build/bazel/osgi_features.bzl
+++ b/tools/build/bazel/osgi_features.bzl
@@ -102,7 +102,7 @@
 <?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/4.2.2/xml/features</repository>
+    <repository>mvn:org.apache.karaf.features/standard/4.2.3/xml/features</repository>
 ''' % ONOS_VERSION
 
 FEATURES_FOOTER = "</features>"
diff --git a/tools/build/build-offline-karaf b/tools/build/build-offline-karaf
index 9b788db..cb1b9df 100755
--- a/tools/build/build-offline-karaf
+++ b/tools/build/build-offline-karaf
@@ -1,9 +1,9 @@
 #!/bin/bash
  
-KARAF_VERSION="4.2.2"
-KARAF_BASE_PACKAGE_VERSION="4.2.2"
-KARAF_TARFILE_NAME="apache-karaf-${KARAF_VERSION}.tar"
-ADDED_BOOT_FEATURES="kar/${KARAF_VERSION},webconsole/${KARAF_VERSION},scr/${KARAF_VERSION},war/${KARAF_VERSION}"
+KARAF_RELEASE_VERSION="4.2.3"
+KARAF_BASE_PACKAGE_VERSION="4.2.3"
+KARAF_TARFILE_NAME="apache-karaf-${KARAF_RELEASE_VERSION}.tar"
+ADDED_BOOT_FEATURES="kar/${KARAF_RELEASE_VERSION},webconsole/${KARAF_RELEASE_VERSION},scr/${KARAF_RELEASE_VERSION},war/${KARAF_RELEASE_VERSION}"
 
 # fetch the standard karaf bits
 rm -f /tmp/${KARAF_TARFILE_NAME}
@@ -23,15 +23,15 @@
     tar xf /tmp/${KARAF_TARFILE_NAME}.gz
 
     # add the extra ONOS default boot features
-    sed -i.old -e 's|kar/${KARAF_VERSION}.*$|${ADDED_BOOT_FEATURES}|' apache-karaf-${KARAF_VERSION}/etc/org.apache.karaf.features.cfg
+    sed -i.old -e 's|kar/${KARAF_RELEASE_VERSION}.*$|${ADDED_BOOT_FEATURES}|' apache-karaf-${KARAF_RELEASE_VERSION}/etc/org.apache.karaf.features.cfg
 
     # run karaf to fill the maven repo with required artifacts
-    apache-karaf-${KARAF_VERSION}/bin/karaf server 1>/tmp/onos.out 2>/tmp/onos.err &
+    apache-karaf-${KARAF_RELEASE_VERSION}/bin/karaf server 1>/tmp/onos.out 2>/tmp/onos.err &
 
     sleep 30
 
     # stop karaf and capture the artifacts that were downloaded into the maven repo
-    apache-karaf-${KARAF_VERSION}/bin/karaf stop 1>/tmp/onos.out 2>/tmp/onos.err &
+    apache-karaf-${KARAF_RELEASE_VERSION}/bin/karaf stop 1>/tmp/onos.out 2>/tmp/onos.err &
     cd ~/.m2/repository
     tar cvf ~/repo.tar *
 
@@ -43,16 +43,16 @@
     tar xf /tmp/${KARAF_TARFILE_NAME}.gz
 
     # load the downloaded artifacts into the karaf system directory
-    cd apache-karaf-${KARAF_VERSION}/system
+    cd apache-karaf-${KARAF_RELEASE_VERSION}/system
     tar xf ~/repo.tar
 
     # create a zipped tar ball of the updated karaf tree
     cd ~/karaf-offline
-    tar czf ~/karaf-offline.tar.gz apache-karaf-${KARAF_VERSION}
+    tar czf ~/karaf-offline.tar.gz apache-karaf-${KARAF_RELEASE_VERSION}
 "
 
 # fetch the new offline karaf tar ball
-BUILD_NUMBER="${KARAF_VERSION}-offline-$(date +'%Y%m%d')"
+BUILD_NUMBER="${KARAF_RELEASE_VERSION}-offline-$(date +'%Y%m%d')"
 scp sdn@[${OC1}]:karaf-offline.tar.gz /tmp/${BUILD_NUMBER}.tar.gz
 
 cell return
diff --git a/tools/build/envDefaults b/tools/build/envDefaults
index 70b294d..3f23719 100644
--- a/tools/build/envDefaults
+++ b/tools/build/envDefaults
@@ -5,7 +5,7 @@
 
 # M2 repository and Karaf gold bits
 export M2_REPO=${M2_REPO:-~/.m2/repository}
-export KARAF_VERSION=4.2.2
+export KARAF_VERSION=4.2.3
 export KARAF_ZIP=${KARAF_ZIP:-~/Downloads/apache-karaf-$KARAF_VERSION.zip}
 export KARAF_TAR=${KARAF_TAR:-~/Downloads/apache-karaf-$KARAF_VERSION.tar.gz}
 export KARAF_DIST=$(basename $KARAF_ZIP .zip)
diff --git a/tools/package/bin/onos-backup b/tools/package/bin/onos-backup
index 5082957..dc1bff5 100755
--- a/tools/package/bin/onos-backup
+++ b/tools/package/bin/onos-backup
@@ -5,7 +5,7 @@
 
 ONOS_HOME=${ONOS_HOME:-$(cd $(dirname $0)/.. >/dev/null 2>&1 && pwd)}
 ONOS_DEFAULT_ARCHIVE=$(dirname $ONOS_HOME)/onos-data.tar.gz
-ONOS_KARAF=$ONOS_HOME/apache-karaf-4.2.2
+ONOS_KARAF=$ONOS_HOME/apache-karaf-4.2.3
 
 # Fetch the name of the archive or use a default if none is specified
 archive=${1:-$ONOS_DEFAULT_ARCHIVE}
diff --git a/tools/package/bin/onos-restore b/tools/package/bin/onos-restore
index 6535f33..7416eb2 100755
--- a/tools/package/bin/onos-restore
+++ b/tools/package/bin/onos-restore
@@ -5,7 +5,7 @@
 
 ONOS_HOME=${ONOS_HOME:-$(cd $(dirname $0)/.. >/dev/null 2>&1 && pwd)}
 ONOS_DEFAULT_ARCHIVE=$(dirname $ONOS_HOME)/onos-data.tar.gz
-ONOS_KARAF=$ONOS_HOME/apache-karaf-4.2.2
+ONOS_KARAF=$ONOS_HOME/apache-karaf-4.2.3
 
 # Fetch the name of the archive or use a default if none is specified
 archive=${1:-$ONOS_DEFAULT_ARCHIVE}
diff --git a/tools/package/deb/prerm b/tools/package/deb/prerm
index d14f582..9d3aa62 100755
--- a/tools/package/deb/prerm
+++ b/tools/package/deb/prerm
@@ -14,7 +14,7 @@
 
 # Clean up onos runtime directories
 #      TODO don't hardcode karaf version
-rm -rf /opt/onos/apache-karaf-4.2.2/
+rm -rf /opt/onos/apache-karaf-4.2.3/
 rm -rf /opt/onos/var/*
 rm -rf /opt/onos/config
 rm -rf /opt/onos/options
diff --git a/tools/package/etc/org.apache.karaf.features.cfg b/tools/package/etc/org.apache.karaf.features.cfg
index 37bc7a5..515c2a8 100644
--- a/tools/package/etc/org.apache.karaf.features.cfg
+++ b/tools/package/etc/org.apache.karaf.features.cfg
@@ -20,46 +20,44 @@
 #
 # Comma separated list of features repositories to register by default
 #
-featuresRepositories = \
-    mvn:org.apache.karaf.features/standard/4.2.2/xml/features, \
+featuresRepositories = \    mvn:org.apache.karaf.features/standard/4.2.3/xml/features, \
     mvn:org.onosproject/onos-features/$ONOS_VERSION/xml/features, \
-    mvn:org.apache.karaf.features/enterprise/4.2.2/xml/features, \
-    mvn:org.apache.karaf.features/spring/4.2.2/xml/features, \
-    mvn:org.apache.karaf.features/standard/4.2.2/xml/features, \
-    mvn:org.apache.karaf.features/framework/4.2.2/xml/features
+    mvn:org.apache.karaf.features/enterprise/4.2.3/xml/features, \
+    mvn:org.apache.karaf.features/spring/4.2.3/xml/features, \
+    mvn:org.apache.karaf.features/standard/4.2.3/xml/features, \
+    mvn:org.apache.karaf.features/framework/4.2.3/xml/features
 
 #
 # Comma separated list of features to install at startup
 #
 featuresBoot = \
-    instance/4.2.2, \
-    package/4.2.2, \
-    log/4.2.2, \
-    ssh/4.2.2, \
-    framework/4.2.2, \
-    system/4.2.2, \
-    eventadmin/4.2.2, \
-    feature/4.2.2, \
-    shell/4.2.2, \
-    management/4.2.2, \
-    service/4.2.2, \
-    jaas/4.2.2, \
-    deployer/4.2.2, \
-    diagnostic/4.2.2, \
-    (wrap/2.5.4), \
-    (bundle/4.2.2, \
-     config/4.2.2, \
-     kar/4.2.2, \
-     webconsole/4.2.2, \
-     scr/4.2.2, \
-     war/4.2.2), \
-    (onos-netty/$ONOS_VERSION), \
-    (onos-api/$ONOS_VERSION, \
-     onos-core/$ONOS_VERSION, \
-     onos-cli/$ONOS_VERSION, \
-     onos-rest/$ONOS_VERSION, \
-     onos-gui/$ONOS_VERSION), \
-    (ssh/4.2.2)
+    (instance/4.2.3, \
+    package/4.2.3, \
+    log/4.2.3, \
+    ssh/4.2.3, \
+    framework/4.2.3, \
+    system/4.2.3, \
+    eventadmin/4.2.3, \
+    feature/4.2.3, \
+    shell/4.2.3, \
+    management/4.2.3, \
+    service/4.2.3, \
+    jaas/4.2.3, \
+    deployer/4.2.3, \
+    diagnostic/4.2.3, \
+    wrap/2.6.1, \
+    bundle/4.2.3, \
+    config/4.2.3, \
+    kar/4.2.3, \
+    webconsole/4.2.3, \
+    scr/4.2.3, \
+    war/4.2.3), \
+    (onos-netty/$ONOS_VERSION, \
+    onos-api/$ONOS_VERSION, \
+    onos-core/$ONOS_VERSION, \
+    onos-cli/$ONOS_VERSION, \
+    onos-rest/$ONOS_VERSION, \
+    onos-gui/$ONOS_VERSION)
 
 
 #
diff --git a/tools/package/onos-prep-karaf b/tools/package/onos-prep-karaf
index 4b845a6..54a36ff 100755
--- a/tools/package/onos-prep-karaf
+++ b/tools/package/onos-prep-karaf
@@ -12,7 +12,7 @@
 KARAF_PATCHES=$5
 SANDBOX=${6:-.}
 
-KARAF_VERSION="4.2.2"
+KARAF_VERSION="4.2.3"
 ONOS_SECURITY_MODE="false"
 
 PREFIX="onos-$ONOS_VERSION"
diff --git a/tools/package/onos_stage.py b/tools/package/onos_stage.py
index 6ef1af1..7ddeff9 100755
--- a/tools/package/onos_stage.py
+++ b/tools/package/onos_stage.py
@@ -27,7 +27,7 @@
 
 written_files = set()
 now = time.time()
-karaf_version = "4.2.2"
+karaf_version = "4.2.3"
 karaf_system = "apache-karaf-" + karaf_version + "/system/"
 
 def addFile(tar, dest, file, file_size):
diff --git a/tools/test/bin/onos-check-bits b/tools/test/bin/onos-check-bits
index 4954638..fe99f1b 100755
--- a/tools/test/bin/onos-check-bits
+++ b/tools/test/bin/onos-check-bits
@@ -32,7 +32,7 @@
   echo "ONOS archive does not contain the proper version file" && exit 1
 fi
 
-tar tzf ${ONOS_TAR} | grep -q apache-karaf-4.2.2
+tar tzf ${ONOS_TAR} | grep -q apache-karaf-4.2.3
 if [ $? -ne 0 ]; then
   echo "ONOS archive does not contain karaf" && exit 1
 fi
diff --git a/tools/test/bin/onos-check-logs b/tools/test/bin/onos-check-logs
index d668287..a797c65 100755
--- a/tools/test/bin/onos-check-logs
+++ b/tools/test/bin/onos-check-logs
@@ -111,6 +111,7 @@
             /at org\.apache\.felix\.scr\.impl\.ComponentRegistry\.getComponentHolders\(ComponentRegistry\.java:356\)/ { exclusion = 1; }
             /at org\.apache\.karaf\.service\.guard\.impl\.GuardProxyCatalog.1.run\(GuardProxyCatalog\.java:253\)/ { exclusion = 1; }
             /at org\.apache\.sshd\.server\.SshServer\.start/ { exclusion = 1; }
+            /at org\.apache\.felix\.scr\.impl\.ComponentRegistry\.getComponentHolders/ { exclusion = 1; }
 
         END { exit fail; }
         ' > $aux
