keycloak-memoizeit

Details

diff --git a/distribution/adapters/osgi/features/src/main/resources/features.xml b/distribution/adapters/osgi/features/src/main/resources/features.xml
index c9c726e..f2e825a 100755
--- a/distribution/adapters/osgi/features/src/main/resources/features.xml
+++ b/distribution/adapters/osgi/features/src/main/resources/features.xml
@@ -73,13 +73,4 @@
         <feature>keycloak-jaas</feature>
     </feature>
 
-    <!-- This is just simplification to upgrade paxweb to 3.1.2 in JBoss Fuse 6.1 or Karaf 2.3.X environment -->
-    <feature name="keycloak-pax-web-upgrade" version="${project.version}" resolver="(obr)">
-        <details>This is just simplification to upgrade paxweb to 3.1.2 in JBoss Fuse 6.1 or Karaf 2.3.X environment</details>
-        <bundle>mvn:org.ow2.asm/asm-all/5.0</bundle>
-        <bundle>mvn:org.apache.xbean/xbean-bundleutils/3.18</bundle>
-        <bundle>mvn:org.apache.xbean/xbean-reflect/3.18</bundle>
-        <bundle>mvn:org.apache.xbean/xbean-finder/3.18</bundle>
-    </feature>
-
 </features>
diff --git a/docbook/auth-server-docs/reference/en/en-US/modules/fuse-adapter.xml b/docbook/auth-server-docs/reference/en/en-US/modules/fuse-adapter.xml
index e2750fa..075561b 100644
--- a/docbook/auth-server-docs/reference/en/en-US/modules/fuse-adapter.xml
+++ b/docbook/auth-server-docs/reference/en/en-US/modules/fuse-adapter.xml
@@ -19,8 +19,9 @@
     <title>JBoss Fuse and Apache Karaf Adapter</title>
     <para>
         Currently Keycloak supports securing your web applications running inside <ulink url="http://www.jboss.org/products/fuse/overview/">JBoss Fuse</ulink>
-        or <ulink url="http://karaf.apache.org/">Apache Karaf</ulink> . It leverages <link linkend="jetty8-adapter">Jetty 8 adapter</link> as both JBoss Fuse 6.1
+        or <ulink url="http://karaf.apache.org/">Apache Karaf</ulink> . It leverages <link linkend="jetty8-adapter">Jetty 8 adapter</link> as both JBoss Fuse 6.2.1
         and Apache Karaf 3 are bundled with <ulink url="http://eclipse.org/jetty/">Jetty 8.1 server</ulink> under the covers and Jetty is used for running various kinds of web applications.
+        For JBoss Fuse 6.3 and Karaf 4, bundled with Jetty 9 server, it leverages <link linkend="jetty9-adapter">Jetty 9 adapter</link>.
     </para>
     <para>
         What is supported for Fuse/Karaf is:
diff --git a/examples/fuse/README.md b/examples/fuse/README.md
index 8742147..cf7dfb3 100644
--- a/examples/fuse/README.md
+++ b/examples/fuse/README.md
@@ -1,8 +1,9 @@
 Keycloak Fuse demo
 ==================
 
-Currently Keycloak supports securing your web applications running inside [JBoss Fuse](http://www.jboss.org/products/fuse/overview/) or [Apache Karaf](http://karaf.apache.org/). It leverages Jetty8 adapter
-as both JBoss Fuse 6 and Apache Karaf 3 are bundled with [Jetty8](http://eclipse.org/jetty/) server under the covers and Jetty is used for running various kinds of web applications.
+Currently Keycloak supports securing your web applications running inside [JBoss Fuse](http://www.jboss.org/products/fuse/overview/) or [Apache Karaf](http://karaf.apache.org/). It leverages:
+- Jetty8 adapter for both JBoss Fuse 6.2 and Apache Karaf 3, that include [Jetty8](http://eclipse.org/jetty/) server under the covers and Jetty is used for running various kinds of web applications
+- Jetty9 adapter for both JBoss Fuse 6.3 and Apache Karaf 4, that include [Jetty9](http://eclipse.org/jetty/) server under the covers and Jetty is used for running various kinds of web applications
 
 The Fuse example is slightly modified version of Keycloak base demo applications. The main difference among base demo is that for Fuse demo 
 are applications running on separate Fuse/Karaf server. Keycloak server is supposed to run separately on Wildfly.
@@ -19,12 +20,12 @@ more secure to use the separate Jetty Engine instead of the default one. The def
 Fuse demo contains those basic applications:
 * **customer-app-fuse** A WAR application that is deployed with [pax-war extender](https://ops4j1.jira.com/wiki/display/ops4j/Pax+Web+Extender+-+War)
 * **product-app-fuse** A servlet application deployed with [pax-whiteboard extender](https://ops4j1.jira.com/wiki/display/ops4j/Pax+Web+Extender+-+Whiteboard)
-* **cxf-jaxws** [Apache CXF](http://cxf.apache.org/) JAX-WS endpoint running on separate Jetty engine on [http://localhost:8282/PersonServiceCF](http://localhost:8282/PersonServiceCF). 
-The product-app-fuse invokes the endpoint to get data.
 * **camel** [Apache Camel](http://camel.apache.org/) endpoint running on separate Jetty engine on [http://localhost:8383/admin-camel-endpoint](http://localhost:8383/admin-camel-endpoint). 
 The customer-app-fuse invokes the endpoint to get data.     
 * **cxf-jaxrs** [Apache CXF](http://cxf.apache.org/) JAX-RS endpoint running on default Jetty on [http://localhost:8181/cxf/customerservice](http://localhost:8181/cxf/customerservice). 
 The customer-app-fuse invokes the endpoint to get data 
+* **cxf-jaxws** [Apache CXF](http://cxf.apache.org/) JAX-WS endpoint running on separate Jetty engine on [http://localhost:8282/PersonServiceCF](http://localhost:8282/PersonServiceCF). 
+The product-app-fuse invokes the endpoint to get data.
 
 Running of demo consists of 2 steps. First you need to run separate Keycloak server and then Fuse/Karaf server with the applications
 
@@ -42,14 +43,14 @@ cd keycloak-examples-<VERSION>/fuse
 mvn clean install
 ```
 
-Running demo on JBoss Fuse 6.2
+Running demo on JBoss Fuse 6.2.1
 ------------------------------
 You just need to download and run JBoss Fuse and then run those commands from the karaf terminal to install the needed features and Keycloak fuse demo (Replace Keycloak versions with the current Keycloak version number):
 
 ```
 features:addurl mvn:org.keycloak/keycloak-osgi-features/1.2.0.Beta1/xml/features
 features:addurl mvn:org.keycloak.example.demo/keycloak-fuse-example-features/1.2.0.Beta1/xml/features
-features:install keycloak-fuse-example
+features:install keycloak-fuse-6.2-example
 ```
 
 After that you can test running on [http://localhost:8181/customer-portal](http://localhost:8181/customer-portal) and login as "bburke@redhat.com" with password "password". Customer-portal is able to
@@ -61,6 +62,18 @@ From [http://localhost:8181/product-portal](http://localhost:8181/product-portal
 Note that this demo also secures whole default CXF endpoint on [http://localhost:8181/cxf](http://localhost:8181/cxf) hence every application running under it is secured too.
 
 
+Running demo on JBoss Fuse 6.3
+------------------------------
+Similar steps to the instructions for JBoss Fuse 6.2.1 but you need to install a different feature (due to the usage of Jetty9 instead of Jetty8): `keycloak-fuse-6.3-example`
+
+You just need to download and run JBoss Fuse and then run those commands from the karaf terminal to install the needed features and Keycloak fuse demo (Replace Keycloak versions with the current Keycloak version number):
+
+```
+features:addurl mvn:org.keycloak/keycloak-osgi-features/1.2.0.Beta1/xml/features
+features:addurl mvn:org.keycloak.example.demo/keycloak-fuse-example-features/1.2.0.Beta1/xml/features
+features:install keycloak-fuse-6.3-example
+
+
 Running demo on Apache Karaf 3.0.3
 ----------------------------------
 
@@ -81,46 +94,6 @@ feature:install keycloak-fuse-example
 Now you can test example applications similarly like described for "JBoss Fuse 6.2" section.
 
 
-Running demo on JBoss Fuse 6.1.0.redhat-379
--------------------------------------------
-
-Securing your applications on JBoss Fuse 6.1 is a bit more tricky. There is bug [https://ops4j1.jira.com/browse/PAXWEB-666](https://ops4j1.jira.com/browse/PAXWEB-666) 
-, which doesn't easily allow to secure default Jetty engine on [http://localhost:8181](http://localhost:8181) as it's not possible to inject 
-custom Jetty authenticator provided by Keycloak Jetty adapter into underlying Jetty server. Hence first step is to upgrade pax-web 
-version from default 3.0.6 to newer 3.1.2 . Then you need to "refresh" cxf feature too. Final step is to install "keycloak-fuse-example" feature. 
-
-All the steps could be performed with these commands in Fuse console (Replace 1.2.0.Beta1 with the actual version number of Keycloak you are using):
-                                                                                                                                                                                   
-```
-features:uninstall pax-war
-features:uninstall pax-http-whiteboard 
-features:uninstall pax-http
-features:uninstall pax-jetty
-features:removeurl mvn:org.ops4j.pax.web/pax-web-features/3.0.6/xml/features
-```
-
-Now restart fuse (use `osgi:shutdown` command and start it again from command line. You can ignore startup messages after restart 
-as pax-web is not installed at the moment. Then run those commands (replace 1.2.0.Beta1 with the actual version number of Keycloak you are using):
-
-```
-features:addurl mvn:org.ops4j.pax.web/pax-web-features/3.1.2/xml/features
-features:addurl mvn:org.keycloak/keycloak-osgi-features/1.2.0.Beta1/xml/features
-features:addurl mvn:org.keycloak.example.demo/keycloak-fuse-example-features/1.2.0.Beta1/xml/features
-features:install keycloak-pax-web-upgrade
-features:install pax-http-whiteboard/3.1.2
-features:install pax-war/3.1.2
-```
-
-Now it's recommended to restart again. After the start, you shouldn't see any error messages, which indicates that upgrade to pax-web 3.1.2 went fine.
-So last step is to install the demo now: 
-
-```
-features:install keycloak-fuse-example
-```
-
-Now you can test example applications similarly like described in "JBoss Fuse 6.2" section.
-
-
 How to secure your own applications
 -----------------------------------
 Most of the steps should be understandable from testing and understanding the demo. Basically all mentioned applications require to