cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject svn commit: r923385 - in /websites/production/cxf/content: cache/main.pageCache grouping-bundles-to-applications-in-osgi.html
Date Wed, 24 Sep 2014 12:47:19 GMT
Author: buildbot
Date: Wed Sep 24 12:47:18 2014
New Revision: 923385

Production update by buildbot for cxf


Modified: websites/production/cxf/content/cache/main.pageCache
Binary files - no diff available.

Added: websites/production/cxf/content/grouping-bundles-to-applications-in-osgi.html
--- websites/production/cxf/content/grouping-bundles-to-applications-in-osgi.html (added)
+++ websites/production/cxf/content/grouping-bundles-to-applications-in-osgi.html Wed Sep
24 12:47:18 2014
@@ -0,0 +1,149 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You 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
+    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.
+  <head>
+<link type="text/css" rel="stylesheet" href="/resources/site.css">
+<script src='/resources/space.js'></script>
+<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
+<meta name="keywords" content="business integration, EAI, SOA, Service Oriented Architecture,
web services, SOAP, JBI, JMS, WSDL, XML, EDI, Electronic Data Interchange, standards support,
integration standards, application integration, middleware, software, solutions, services,
CXF, open source">
+<meta name="description" content="Apache CXF, Services Framework - Grouping bundles to
applications in OSGi">
+    <title>
+Apache CXF -- Grouping bundles to applications in OSGi
+    </title>
+  </head>
+<body onload="init()">
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr>
+    <td id="cell-0-0" colspan="2">&nbsp;</td>
+    <td id="cell-0-1">&nbsp;</td>
+    <td id="cell-0-2" colspan="2">&nbsp;</td>
+  </tr>
+  <tr>
+    <td id="cell-1-0">&nbsp;</td>
+    <td id="cell-1-1">&nbsp;</td>
+    <td id="cell-1-2">
+      <!-- Banner -->
+<div class="banner" id="banner"><div><table border="0" cellpadding="0" cellspacing="0"
width="100%"><tr><td align="left" colspan="1" nowrap>
+<a shape="rect" href="" title="Apache CXF"><span style="font-weight:
bold; font-size: 170%; color: white">Apache CXF</span></a>
+</td><td align="right" colspan="1" nowrap>
+<a shape="rect" href="" title="The Apache Software Foundation"><img
border="0" alt="ASF Logo" src=""></a>
+      <!-- Banner -->
+      <div id="top-menu">
+        <table border="0" cellpadding="1" cellspacing="0" width="100%">
+          <tr>
+            <td>
+              <div align="left">
+                <!-- Breadcrumbs -->
+<a href="index.html">Index</a>&nbsp;&gt;&nbsp;<a href="roadmap.html">Roadmap</a>&nbsp;&gt;&nbsp;<a
href="grouping-bundles-to-applications-in-osgi.html">Grouping bundles to applications in
+                <!-- Breadcrumbs -->
+              </div>
+            </td>
+            <td>
+              <div align="right">
+                <!-- Quicklinks -->
+<div id="quicklinks"><p><a shape="rect" href="download.html">Download</a>
| <a shape="rect" href="">Documentation</a></p></div>
+                <!-- Quicklinks -->
+              </div>
+            </td>
+          </tr>
+        </table>
+      </div>
+    </td>
+    <td id="cell-1-3">&nbsp;</td>
+    <td id="cell-1-4">&nbsp;</td>
+  </tr>
+  <tr>
+    <td id="cell-2-0" colspan="2">&nbsp;</td>
+    <td id="cell-2-1">
+      <table>
+        <tr valign="top">
+          <td height="100%">
+            <div id="wrapper-menu-page-right">
+              <div id="wrapper-menu-page-top">
+                <div id="wrapper-menu-page-bottom">
+                  <div id="menu-page">
+                    <!-- NavigationBar -->
+<div id="navigation"><h3 id="Navigation-ApacheCXF"><a shape="rect" href="index.html">Apache
CXF</a></h3><ul class="alternate"><li><a shape="rect" href="index.html">Home</a></li><li><a
shape="rect" href="download.html">Download</a></li><li><a shape="rect"
href="people.html">People</a></li><li><a shape="rect" href="project-status.html">Project
Status</a></li><li><a shape="rect" href="roadmap.html">Roadmap</a></li><li><a
shape="rect" href="mailing-lists.html">Mailing Lists</a></li><li><a
shape="rect" class="external-link" href="">Issue
Reporting</a></li><li><a shape="rect" href="special-thanks.html">Special
Thanks</a></li><li><a shape="rect" class="external-link" href="">License</a></li><li><a
shape="rect" href="security-advisories.html">Security Advisories</a></li></ul><h3
id="Navigation-Users">Users</h3><ul class="alternate"><li><a shape="rect"
href="">User's Guide</a></li><li>
 <a shape="rect" href="support.html">Support</a></li><li><a shape="rect"
href="faq.html">FAQ</a></li><li><a shape="rect" href="resources-and-articles.html">Resources
and Articles</a></li></ul><h3 id="Navigation-Search">Search</h3><form
enctype="application/x-www-form-urlencoded" method="get" id="cse-search-box" action=""><div>
<input type="hidden" name="cx" value="002890367768291051730:o99qiwa09y4"> <input
type="hidden" name="ie" value="UTF-8"> <input type="text" name="q" size="21"> <input
type="submit" name="sa" value="Search"> </div> </form> <script type="text/javascript"
<h3 id="Navigation-Developers">Developers</h3><ul class="alternate"><li><a
shape="rect" href="">Architecture Guide</a></li><li><a
shape="rect" href="source-repository.html">Source Repository</a></li><li><a
shape="rect" href="building.html">Building</a></li><li><a 
 shape="rect" href="automated-builds.html">Automated Builds</a></li><li><a
shape="rect" href="testing-debugging.html">Testing-Debugging</a></li><li><a
shape="rect" href="coding-guidelines.html">Coding Guidelines</a></li><li><a
shape="rect" href="getting-involved.html">Getting Involved</a></li><li><a
shape="rect" href="release-management.html">Release Management</a></li></ul><h3
id="Navigation-Subprojects">Subprojects</h3><ul class="alternate"><li><a
shape="rect" href="distributed-osgi.html">Distributed OSGi</a></li><li><a
shape="rect" href="xjc-utils.html">XJC Utils</a></li><li><a shape="rect"
href="build-utils.html">Build Utils</a></li><li><a shape="rect" href="fediz.html">Fediz</a></li></ul><h3
id="Navigation-ASF"><a shape="rect" class="external-link" href="">ASF</a></h3><ul
class="alternate"><li><a shape="rect" class="external-link" href="">How
Apache Works</a></li><li><a shape="rect" class="external-link" href
 ="">Foundation</a></li><li><a shape="rect"
class="external-link" href="">Sponsor
Apache</a></li><li><a shape="rect" class="external-link" href="">Thanks</a></li><li><a
shape="rect" class="external-link" href="">Security</a></li></ul></div>
+                    <!-- NavigationBar -->
+                  </div>
+              </div>
+            </div>
+          </div>
+         </td>
+         <td height="100%">
+           <!-- Content -->
+           <div class="wiki-content">
+<div id="ConfluenceContent"><h2 id="GroupingbundlestoapplicationsinOSGi-Usecase:Deployingmorethanonemodularapplicationintothesameframework">Use
case: Deploying more than one modular application into the same framework</h2><p>In
OSGi the best practice is to split an application into several bundles that each cover a different
business aspect of the application. So imagine an application for a service layer of a web
shop with bundles for :</p><ul style="list-style-type: square;"><li>browsing
articles</li><li>cart management</li><li>checkout</li><li>customer</li></ul><p>Each
of the above bundles would like to offer and consume 0..n cxf services. Still there would
be common aspects. All of the services require basic auth with user / password from an ldap
server, the requests / replies should be logged to a database.</p><p>So it would
make sense to define the common aspects only once (either on servlet or cxf bus level).</p><p>At
the same time we might have a second application that also
  provides some bundles but that has different common rules.</p><p>So we need
a way to group the bundles together to one application so the common rules can be applied
while distinguishing between the different applications.</p><p>This use case does
not map well to the way cxf can be configured in OSGi.</p><h2 id="GroupingbundlestoapplicationsinOSGi-CurrentsolutionsfortheservlettransportinOSGi">Current
solutions for the servlet transport in OSGi</h2><p>In OSGi there are two ways
to use the CXF servlet transport.</p><h3 id="GroupingbundlestoapplicationsinOSGi-UsingthedefaultCXFservlet">Using
the default CXF servlet</h3><p>This works by simply using an address like "/mypath".
The endpoint will then be on /cxf/mypath. In this approach is that there is only one servlet
for the OSGi framework. All endpoints defined in all bundles will only use this servlet. So
does not work well if you have two applications that would like to configure the servlet with
specially e.g in regard to security.
 </p><h3 id="GroupingbundlestoapplicationsinOSGi-Usingawebapplicationbundle">Using
a web application bundle</h3><p>Inside the web application bundle you can define
a CXF servlet. The servlet endpoints defined in this bundle will then be available on the
servlet. So this allows to define more than one servlet per OSGi framework. The CXFBlueprintServlet
allows to connect the servlet to a blueprint context that defines the endpoints. The problem
here is that it does not covert the case where several bundles of the application would like
to define CXF endpoints.</p><h2 id="GroupingbundlestoapplicationsinOSGi-Currentsolutionforsharingrules">Current
solution for sharing rules</h2><p>CXF will pick up all features that are exposed
as an OSGi service. So this allows to define common rules but the rules apply to all bundles
in the framework.</p><h2 id="GroupingbundlestoapplicationsinOSGi-Idea:DefinetheCXFbusonceperapplicationasOSGiservice">Idea:
Define the CXF bus once per application as OSGi 
 service</h2><p>Currently the cxf bus in OSGi is defined per bundle. So if each
bundle has one blueprint context then cxf will automatically create one bus per bundle.</p><p>So
the idea is to define the cxf bus in one bundle and export it as an OSGi service with the
name of the application as identifier. This already works by simply defining a &lt;cxf:bus
id="myapplication"/&gt;. The bus is also automatically exposed as an OSGi service by cxf.</p><p>Each
of the other bundles of the application could then refer to this bus and add its endpoints
to it.I am not sure how this would work with the OSGi ifecycle where bundles can be added
and removed at any time though.</p><p>The advantage would be that in the bundle
defining the bus all the common rules could be applied. So the other bundles do not have to
repeat that step.</p><p>&#160;</p><p>&#160;</p></div>
+           </div>
+           <!-- Content -->
+         </td>
+        </tr>
+      </table>
+   </td>
+   <td id="cell-2-2" colspan="2">&nbsp;</td>
+  </tr>
+  <tr>
+   <td id="cell-3-0">&nbsp;</td>
+   <td id="cell-3-1">&nbsp;</td>
+   <td id="cell-3-2">
+     <div id="footer">
+       <!-- Footer -->
+       <div id="site-footer">
+         <a href="">Privacy Policy</a>
+         (<a href="">edit
+	 (<a href=";showComments=true&amp;showCommentArea=true#addcomment">add
+	Apache CXF, CXF, Apache, the Apache feather logo are trademarks of The Apache Software Foundation.<br>
+        All other marks mentioned may be trademarks or registered trademarks of their respective
+       </div>
+       <!-- Footer -->
+     </div>
+   </td>
+   <td id="cell-3-3">&nbsp;</td>
+   <td id="cell-3-4">&nbsp;</td>
+  </tr>
+  <tr>
+    <td id="cell-4-0" colspan="2">&nbsp;</td>
+    <td id="cell-4-1">&nbsp;</td>
+    <td id="cell-4-2" colspan="2">&nbsp;</td>
+  </tr>
+<script type="text/javascript">
+var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
+document.write(unescape("%3Cscript src='" + gaJsHost + "' type='text/javascript'%3E%3C/script%3E"));
+<script type="text/javascript">
+try {
+var pageTracker = _gat._getTracker("UA-4458903-1");
+} catch(err) {}</script>

View raw message