diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index 995144b..0bf7608 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -15,6 +15,127 @@
  * limitations under the License.
  */
 
+                    Apache Karaf 3.0.3
+                    ==================
+
+  This is an update patch for Apache Karaf 3.0.x, containing many bug fixes, dependency updates, and improvements. New features highlights include: Spring 4.1.2.Release features, and provides ready to use jpa20 and jpa21 features. It is recommended that users update their deployment after reviewing the changelog below. 
+
+
+  Changelog
+  ---------
+
+** Bug
+ * [KARAF-1018|https://issues.apache.org/jira/browse/KARAF-1018] - using auto-complete (TAB key) on commands that don't take Arguments/Options throws IndexOutOfBoundsException.
+ * [KARAF-1701|https://issues.apache.org/jira/browse/KARAF-1701] - Parsing of config for a field with cardinality > 1 is incorrectlyprocessed and displayed on Admin Console
+ * [KARAF-2943|https://issues.apache.org/jira/browse/KARAF-2943] - Wrong polymorphism leads to null variables
+ * [KARAF-2959|https://issues.apache.org/jira/browse/KARAF-2959] - JDBC commands don't properly close connection
+ * [KARAF-3019|https://issues.apache.org/jira/browse/KARAF-3019] - karaf-maven-plugin cannot handle all types of mvn urls
+ * [KARAF-3032|https://issues.apache.org/jira/browse/KARAF-3032] - Multi-stage boot features function does not support over 3 stages.
+ * [KARAF-3085|https://issues.apache.org/jira/browse/KARAF-3085] - features:chooseurl/feature:repo-add should support "real" version range
+ * [KARAF-3138|https://issues.apache.org/jira/browse/KARAF-3138] - Having eventadmin listed as a boot features cause problems in other bundles startup
+ * [KARAF-3254|https://issues.apache.org/jira/browse/KARAF-3254] - Very high memory consumption with the watch command
+ * [KARAF-3257|https://issues.apache.org/jira/browse/KARAF-3257] - NullPointerException on Karaf osgi shell commands
+ * [KARAF-3261|https://issues.apache.org/jira/browse/KARAF-3261] - jdbc command (using JdbcConnector.java) does not honour service ranking and throws IllegalArgumentException instead
+ * [KARAF-3269|https://issues.apache.org/jira/browse/KARAF-3269] - ssh into karaf as user with no roles throws exception and user shell stays frozen
+ * [KARAF-3283|https://issues.apache.org/jira/browse/KARAF-3283] - karaf.util missing as private package for bundle watcher
+ * [KARAF-3284|https://issues.apache.org/jira/browse/KARAF-3284] - The shell-log bundle should not import org.apache.log4j.* package
+ * [KARAF-3285|https://issues.apache.org/jira/browse/KARAF-3285] - IllegalArgumentException raised when accessing the FeaturesMBean
+ * [KARAF-3287|https://issues.apache.org/jira/browse/KARAF-3287] - Bundle command waiting for BundleWatcher and BundleService services
+ * [KARAF-3288|https://issues.apache.org/jira/browse/KARAF-3288] - karaf script doesn't start on Solaris if JAVA_HOME is not set
+ * [KARAF-3325|https://issues.apache.org/jira/browse/KARAF-3325] - Karaf throws SocketTimeoutException and exits after 49 days
+ * [KARAF-3327|https://issues.apache.org/jira/browse/KARAF-3327] - Incorrect LC_CTYPE parsing
+ * [KARAF-3329|https://issues.apache.org/jira/browse/KARAF-3329] - javax.annotation-version in jre.properties does not reflect version of Java SE
+ * [KARAF-3330|https://issues.apache.org/jira/browse/KARAF-3330] - embedded Karaf web demo doesn't deploy since 3.0.2
+ * [KARAF-3335|https://issues.apache.org/jira/browse/KARAF-3335] - Endorsed org.apache.karaf.exception-3.0.2 jar causes issues with Java 8 Nashorn scripts
+ * [KARAF-3350|https://issues.apache.org/jira/browse/KARAF-3350] - The log:display command fails with CNFE if the pax-logging-service bundle has been refreshed
+ * [KARAF-3352|https://issues.apache.org/jira/browse/KARAF-3352] - Generate html and pdf artifacts in the manual
+ * [KARAF-3365|https://issues.apache.org/jira/browse/KARAF-3365] - typo in org.ops4j.pax.url.mvn.cfg
+ * [KARAF-3369|https://issues.apache.org/jira/browse/KARAF-3369] - karaf-maven-plugin 3.0.2 breaks deployment to Nexus
+ * [KARAF-3371|https://issues.apache.org/jira/browse/KARAF-3371] - FeatureService does not refresh bundles
+ * [KARAF-3375|https://issues.apache.org/jira/browse/KARAF-3375] - karaf-maven-plugin install-kars fails on paths containing spaces
+ * [KARAF-3377|https://issues.apache.org/jira/browse/KARAF-3377] - Starting Karaf on Windows changes console title
+ * [KARAF-3379|https://issues.apache.org/jira/browse/KARAF-3379] - jpa feature incompatible to hibernate 4.3 feature
+ * [KARAF-3397|https://issues.apache.org/jira/browse/KARAF-3397] - FeaturesServiceMBeanImpl throws an Exception when listening the features
+ * [KARAF-3412|https://issues.apache.org/jira/browse/KARAF-3412] - should add javax.management.builder.initial flag for Karaf child instance
+ * [KARAF-3413|https://issues.apache.org/jira/browse/KARAF-3413] - should also associate the role to run executeScript
+ * [KARAF-3414|https://issues.apache.org/jira/browse/KARAF-3414] - SshCommandTestBase uses some deprecated sshd APIs
+ * [KARAF-3415|https://issues.apache.org/jira/browse/KARAF-3415] - memory leak when run ssh client
+ * [KARAF-3419|https://issues.apache.org/jira/browse/KARAF-3419] - pax-cdi doesn't install without the pax-http feature
+ * [KARAF-3420|https://issues.apache.org/jira/browse/KARAF-3420] - Java Debug options are Pre Java 5.0
+ * [KARAF-3425|https://issues.apache.org/jira/browse/KARAF-3425] - Need a solution to add a "specific version" of a feature in karaf-maven-plugin
+ * [KARAF-3428|https://issues.apache.org/jira/browse/KARAF-3428] - Upgrade to Pax CDI 0.10.0
+ * [KARAF-3430|https://issues.apache.org/jira/browse/KARAF-3430] - User name/password missing in connection factory created with jms:create
+ * [KARAF-3438|https://issues.apache.org/jira/browse/KARAF-3438] - ClassCastException on blueprint service reference interface method call
+ * [KARAF-3441|https://issues.apache.org/jira/browse/KARAF-3441] - The admin:stop Command Does Not Zero Out Root Container PID
+ * [KARAF-3459|https://issues.apache.org/jira/browse/KARAF-3459] - PropertiesLoginModule throws NPE when callbackHandler is null
+ * [KARAF-3463|https://issues.apache.org/jira/browse/KARAF-3463] - Fix openejb feature location
+ * [KARAF-3472|https://issues.apache.org/jira/browse/KARAF-3472] - karaf-maven-plugin doesn't install kar features xml in the correct directory
+
+** Dependency upgrade
+ * [KARAF-2929|https://issues.apache.org/jira/browse/KARAF-2929] - Upgrade to Aries JNDI Url 1.1
+ * [KARAF-3229|https://issues.apache.org/jira/browse/KARAF-3229] - Upgrade to Felix EventAdmin 1.4.2
+ * [KARAF-3281|https://issues.apache.org/jira/browse/KARAF-3281] - Upgrade to Pax Logging 1.8.0 (log4j v2 support)
+ * [KARAF-3291|https://issues.apache.org/jira/browse/KARAF-3291] - Upgrade to Pax Exam 4.3.0
+ * [KARAF-3305|https://issues.apache.org/jira/browse/KARAF-3305] - Upgrade to Aries Blueprint Core 1.4.2
+ * [KARAF-3306|https://issues.apache.org/jira/browse/KARAF-3306] - Upgrade to Aries JNDI API 1.1.0
+ * [KARAF-3307|https://issues.apache.org/jira/browse/KARAF-3307] - Upgrade to Aries JPA API 1.0.2/JPA Container 1.0.2/JPA Blueprint Aries 1.0.4/JPA Container Context 1.0.4
+ * [KARAF-3308|https://issues.apache.org/jira/browse/KARAF-3308] - Upgade to Aries Proxy Impl 1.0.4
+ * [KARAF-3309|https://issues.apache.org/jira/browse/KARAF-3309] - Upgrade to Felix Maven Bundle Plugin 2.5.3
+ * [KARAF-3311|https://issues.apache.org/jira/browse/KARAF-3311] - Upgrade to Pax Tinybundles 2.1.0
+ * [KARAF-3312|https://issues.apache.org/jira/browse/KARAF-3312] - Upgrade to maven-assembly-plugin 2.4.1
+ * [KARAF-3313|https://issues.apache.org/jira/browse/KARAF-3313] - Upgrade to maven-compiler-plugin 3.2
+ * [KARAF-3314|https://issues.apache.org/jira/browse/KARAF-3314] - Upgrade to maven-dependency-plugin 2.9
+ * [KARAF-3315|https://issues.apache.org/jira/browse/KARAF-3315] - Upgrade to maven-jar-plugin 2.5
+ * [KARAF-3316|https://issues.apache.org/jira/browse/KARAF-3316] - Upgrade to maven-site-plugin 3.4
+ * [KARAF-3317|https://issues.apache.org/jira/browse/KARAF-3317] - Upgrade to maven-source-plugin 2.4
+ * [KARAF-3318|https://issues.apache.org/jira/browse/KARAF-3318] - Upgrade to maven-surefire-plugin 2.17
+ * [KARAF-3319|https://issues.apache.org/jira/browse/KARAF-3319] - Upgrade to maven-war-plugin 2.5
+ * [KARAF-3320|https://issues.apache.org/jira/browse/KARAF-3320] - Upgrade to apache-rat-plugin 0.11
+ * [KARAF-3321|https://issues.apache.org/jira/browse/KARAF-3321] - Upgrade to build-helper-maven-plugin 1.9.1
+ * [KARAF-3322|https://issues.apache.org/jira/browse/KARAF-3322] - Upgrade to exec-maven-plugin 1.3.2
+ * [KARAF-3331|https://issues.apache.org/jira/browse/KARAF-3331] - Upgrade to Aries Transaction Manager 1.1.1
+ * [KARAF-3338|https://issues.apache.org/jira/browse/KARAF-3338] - Upgrade to Apache POM 15
+ * [KARAF-3353|https://issues.apache.org/jira/browse/KARAF-3353] - Upgrade jandex in hibernate feature to avoid wrapping
+ * [KARAF-3395|https://issues.apache.org/jira/browse/KARAF-3395] - Update to latest Pax Web version 3.1.4
+ * [KARAF-3396|https://issues.apache.org/jira/browse/KARAF-3396] - Upgrade to pax-logging 1.8.1
+ * [KARAF-3470|https://issues.apache.org/jira/browse/KARAF-3470] - Upgrade to Pax Exam 4.4.0
+
+** Documentation
+ * [KARAF-3439|https://issues.apache.org/jira/browse/KARAF-3439] - [Docs] karaf.lock.delay in example is set to very low number.
+
+** Improvement
+ * [KARAF-2104|https://issues.apache.org/jira/browse/KARAF-2104] - Add regex support in features:* commands
+ * [KARAF-2809|https://issues.apache.org/jira/browse/KARAF-2809] - Add an option to uninstall transitive features
+ * [KARAF-2919|https://issues.apache.org/jira/browse/KARAF-2919] - karaf jms:* commands works in non-transacted mode
+ * [KARAF-2984|https://issues.apache.org/jira/browse/KARAF-2984] - Improve setenv script to include placeholder for extra java options
+ * [KARAF-3016|https://issues.apache.org/jira/browse/KARAF-3016] - Be able to redirect child instance std out in a file
+ * [KARAF-3282|https://issues.apache.org/jira/browse/KARAF-3282] - highlight local classes/resources in "bundle:classes" command
+ * [KARAF-3293|https://issues.apache.org/jira/browse/KARAF-3293] - more fine-grained way to specify the jmx.acl.whitelist.cfg
+ * [KARAF-3367|https://issues.apache.org/jira/browse/KARAF-3367] - add additional configuration options when use wrapper:install
+ * [KARAF-3368|https://issues.apache.org/jira/browse/KARAF-3368] - Support reference:file:xxx urls in startup.properties
+ * [KARAF-3373|https://issues.apache.org/jira/browse/KARAF-3373] - Log lower level root cause exception in LDAPLoginModule.doLogin()
+ * [KARAF-3382|https://issues.apache.org/jira/browse/KARAF-3382] - Support configuration for custom LDAP group to JAAS role mapping
+ * [KARAF-3393|https://issues.apache.org/jira/browse/KARAF-3393] - Provide ready to use jpa20 and jpa21 features
+ * [KARAF-3403|https://issues.apache.org/jira/browse/KARAF-3403] - bin/client Utility Throws ArrayIndexOutOfBoundsException
+ * [KARAF-3411|https://issues.apache.org/jira/browse/KARAF-3411] - windows startup scripts don't handle setenv.bat correctly
+ * [KARAF-3418|https://issues.apache.org/jira/browse/KARAF-3418] - Add getFeatureRepositoryName(Uri uri) to FeatureService
+ * [KARAF-3421|https://issues.apache.org/jira/browse/KARAF-3421] - Add a variable for the debug port number.
+ * [KARAF-3433|https://issues.apache.org/jira/browse/KARAF-3433] - when OBR resolver to resolve the bundles in a given feature, it should also take the dependency feature bundles into account
+ * [KARAF-3446|https://issues.apache.org/jira/browse/KARAF-3446] - avoid Karaf client script "logout" command throwing an exception
+ * [KARAF-3452|https://issues.apache.org/jira/browse/KARAF-3452] - Upgrade to maven-release-plugin 2.5.1
+
+** New Feature
+ * [KARAF-3228|https://issues.apache.org/jira/browse/KARAF-3228] - Add Spring 4.1.2.RELEASE_1 features
+ * [KARAF-3432|https://issues.apache.org/jira/browse/KARAF-3432] - Be able to log console err/out
+
+** Task
+ * [KARAF-3401|https://issues.apache.org/jira/browse/KARAF-3401] - Typo in users.properties
+ * [KARAF-3422|https://issues.apache.org/jira/browse/KARAF-3422] - Upgrade pax-url dependency to 2.3.0
+ * [KARAF-3464|https://issues.apache.org/jira/browse/KARAF-3464] - Upgrade to Pax CDI 0.11.0
+
+** Wish
+ * [KARAF-3444|https://issues.apache.org/jira/browse/KARAF-3444] - ExecuteAction - consider log level INFO changing to DEBUG
+
                     Apache Karaf 3.0.2
                     ==================
 
