diff --git a/libs.asm/build.xml b/libs.asm/build.xml
new file mode 100644
--- /dev/null
+++ b/libs.asm/build.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
diff --git a/libs.asm/external/asm-all-5.0.1-license.txt b/libs.asm/external/asm-all-5.0.1-license.txt
new file mode 100644
--- /dev/null
+++ b/libs.asm/external/asm-all-5.0.1-license.txt
@@ -0,0 +1,37 @@
+Name: OW2 ASM
+Version: 5.0.1
+License: INRIA license
+Origin: http://forge.ow2.org/project/download.php?group_id=23&file_id=19789
+OSR: 13078
+Description: Bytecode manipulation library
+
+*******************************************************************************
+* ASM: a very small and fast Java bytecode manipulation framework
+* Copyright (c) 2000-2011 INRIA, France Telecom
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions
+* are met:
+* 1. Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* 2. Redistributions in binary form must reproduce the above copyright
+* notice, this list of conditions and the following disclaimer in the
+* documentation and/or other materials provided with the distribution.
+* 3. Neither the name of the copyright holders nor the names of its
+* contributors may be used to endorse or promote products derived from
+* this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+* THE POSSIBILITY OF SUCH DAMAGE.
+*******************************************************************************
+
diff --git a/libs.asm/external/binaries-list b/libs.asm/external/binaries-list
new file mode 100644
--- /dev/null
+++ b/libs.asm/external/binaries-list
@@ -0,0 +1,1 @@
+2F7553F50B0D14ED811B849C282DA8C1FFC32AAE asm-all-5.0.1.jar
diff --git a/libs.asm/manifest.mf b/libs.asm/manifest.mf
new file mode 100644
--- /dev/null
+++ b/libs.asm/manifest.mf
@@ -0,0 +1,4 @@
+Manifest-Version: 1.0
+OpenIDE-Module: org.netbeans.libs.asm
+OpenIDE-Module-Localizing-Bundle: org/netbeans/libs/asm/Bundle.properties
+OpenIDE-Module-Specification-Version: 5.1
diff --git a/libs.asm/nbproject/project.properties b/libs.asm/nbproject/project.properties
new file mode 100644
--- /dev/null
+++ b/libs.asm/nbproject/project.properties
@@ -0,0 +1,48 @@
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+#
+# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
+#
+# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+# Other names may be trademarks of their respective owners.
+#
+# The contents of this file are subject to the terms of either the GNU
+# General Public License Version 2 only ("GPL") or the Common
+# Development and Distribution License("CDDL") (collectively, the
+# "License"). You may not use this file except in compliance with the
+# License. You can obtain a copy of the License at
+# http://www.netbeans.org/cddl-gplv2.html
+# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+# specific language governing permissions and limitations under the
+# License. When distributing the software, include this License Header
+# Notice in each file and include the License file at
+# nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the GPL Version 2 section of the License file that
+# accompanied this code. If applicable, add the following below the
+# License Header, with the fields enclosed by brackets [] replaced by
+# your own identifying information:
+# "Portions Copyrighted [year] [name of copyright owner]"
+#
+# Contributor(s):
+#
+# The Original Software is NetBeans. The Initial Developer of the Original
+# Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
+# Microsystems, Inc. All Rights Reserved.
+#
+# If you wish your version of this file to be governed by only the CDDL
+# or only the GPL Version 2, indicate your decision by adding
+# "[Contributor] elects to include this software in this distribution
+# under the [CDDL or GPL Version 2] license." If you do not indicate a
+# single choice of license, a recipient has the option to distribute
+# your version of this file under either the CDDL, the GPL Version 2 or
+# to extend the choice of license to its licensees as provided above.
+# However, if you add GPL Version 2 code and therefore, elected the GPL
+# Version 2 license, then the option applies only if the new code is
+# made subject to such option by the copyright holder.
+
+javac.compilerargs=-Xlint -Xlint:-serial
+javac.source=1.7
+module.jar.dir=lib
+
+release.external/asm-all-5.0.1.jar=lib/ext/asm-5.0.1/asm-all-5.0.1.jar
+license.file=../external/asm-all-5.0.1-license.txt
diff --git a/libs.asm/nbproject/project.xml b/libs.asm/nbproject/project.xml
new file mode 100644
--- /dev/null
+++ b/libs.asm/nbproject/project.xml
@@ -0,0 +1,73 @@
+
+
+
+ org.netbeans.modules.apisupport.project
+
+
+ org.netbeans.libs.asm
+
+
+ org
+
+
+ ext/asm-5.0.1/asm-all-5.0.1.jar
+ external/asm-all-5.0.1.jar
+
+
+
+
+
diff --git a/libs.asm/src/org/netbeans/libs/asm/Bundle.properties b/libs.asm/src/org/netbeans/libs/asm/Bundle.properties
new file mode 100644
--- /dev/null
+++ b/libs.asm/src/org/netbeans/libs/asm/Bundle.properties
@@ -0,0 +1,47 @@
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+#
+# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
+#
+# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+# Other names may be trademarks of their respective owners.
+#
+# The contents of this file are subject to the terms of either the GNU
+# General Public License Version 2 only ("GPL") or the Common
+# Development and Distribution License("CDDL") (collectively, the
+# "License"). You may not use this file except in compliance with the
+# License. You can obtain a copy of the License at
+# http://www.netbeans.org/cddl-gplv2.html
+# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+# specific language governing permissions and limitations under the
+# License. When distributing the software, include this License Header
+# Notice in each file and include the License file at
+# nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the GPL Version 2 section of the License file that
+# accompanied this code. If applicable, add the following below the
+# License Header, with the fields enclosed by brackets [] replaced by
+# your own identifying information:
+# "Portions Copyrighted [year] [name of copyright owner]"
+#
+# Contributor(s):
+#
+# The Original Software is NetBeans. The Initial Developer of the Original
+# Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
+# Microsystems, Inc. All Rights Reserved.
+#
+# If you wish your version of this file to be governed by only the CDDL
+# or only the GPL Version 2, indicate your decision by adding
+# "[Contributor] elects to include this software in this distribution
+# under the [CDDL or GPL Version 2] license." If you do not indicate a
+# single choice of license, a recipient has the option to distribute
+# your version of this file under either the CDDL, the GPL Version 2 or
+# to extend the choice of license to its licensees as provided above.
+# However, if you add GPL Version 2 code and therefore, elected the GPL
+# Version 2 license, then the option applies only if the new code is
+# made subject to such option by the copyright holder.
+
+OpenIDE-Module-Name=OW2 ASM
+OpenIDE-Module-Display-Category=Libraries
+OpenIDE-Module-Short-Description=Bundles OW2 ASM (bytecode manipulation)
+OpenIDE-Module-Long-Description=\
+ This module bundles OW2 ASM (bytecode manipulation library).
diff --git a/nbbuild/cluster.properties b/nbbuild/cluster.properties
--- a/nbbuild/cluster.properties
+++ b/nbbuild/cluster.properties
@@ -166,6 +166,7 @@
nb.cluster.bootstrap.depends=
nb.cluster.bootstrap=\
core.startup,\
+ libs.asm,\
o.n.bootstrap,\
openide.filesystems,\
openide.modules,\
diff --git a/o.n.bootstrap/apichanges.xml b/o.n.bootstrap/apichanges.xml
--- a/o.n.bootstrap/apichanges.xml
+++ b/o.n.bootstrap/apichanges.xml
@@ -53,6 +53,23 @@
+
+
+ Ability to join other module
+
+
+
+
+
+
+ Module can be declared as
+ Module Fragment
+ to join other module loader. Fragment classes may ask to be bytecode-patched
+ as superclasses of API classes to preserve compatibility.
+
+
+
+
Ability to patch classes
diff --git a/o.n.bootstrap/arch.xml b/o.n.bootstrap/arch.xml
--- a/o.n.bootstrap/arch.xml
+++ b/o.n.bootstrap/arch.xml
@@ -1533,10 +1533,33 @@
have access to the class instance that is being defined yet.
+
+
+
+ This is a specific case of Patch Classes use-case.
+ To maintain binary compatibility when removing methods from API classes,
+ the "removed" implementation is actually moved to a special class, which becomes
+ a superclass of the original API class. Such special classes should be
+ separated into a 'compat' module, which is only loaded in presence of old clients.
+
+
+ The compat module should declare it is a fragment of the original API module in its
+ MANIFEST.MF
+
+
+OpenIDE-Module-Fragment-Host: orignal.module.codename
+
+
+ which ensures contents of the compat module will be loaded using classloader
+ of the 'fragment host' module. The compat module will not get its own classloader.
+ The special class itself should be marked using PatchPublic annotation,
+ which causes it will be patched as superclass and inserted into the inheritance
+ chain.
+
+
-