<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style>
<!--
@font-face
        {font-family:Calibri}
@font-face
        {font-family:Tahoma}
@font-face
        {font-family:Consolas}
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif"}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline}
pre
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New"}
tt
        {font-family:"Courier New"}
span.HTMLVorformatiertZchn
        {font-family:"Consolas","serif"}
span.E-MailFormatvorlage20
        {font-family:"Calibri","sans-serif";
        color:#1F497D}
.MsoChpDefault
        {font-size:10.0pt}
@page WordSection1
        {margin:70.85pt 70.85pt 2.0cm 70.85pt}
div.WordSection1
        {}
-->
</style>
</head>
<body lang="DE" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; color:#1F497D">Hi all,</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; color:#1F497D">&nbsp;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt; font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; color:#1F497D">Monitoring this discussion for a while now and wanted to share my experience as a software integrator from the user perspective - based on JBoss
 7.1.1.FINAL and 7.1.2.EAP.</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt; font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; color:#1F497D">Some figures: We have a quite complex system, consisting of currently 243 OSGi-bundles, 60 enterprise bundles (mostly EARs, some WARs and SARs)
 and about 5 JBoss-modules with heavy dependency relations between them. Especially we have EARs depending upon bundles, as well as bundles accessing enterprise functionalities.</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt; font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; color:#1F497D">&nbsp;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt; font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; color:#1F497D">In the meantime, after having resolved a bunch of issues , we are quite happy with the OSGi-deployment. This is true for 7.1.1, not yet for 7.1.2
 (Thomas maybe you remember me reporting a bunch of bugs on that version). Deployment of OSGi-bundles works fine, all get activated correctly and all their dependencies get resolved.</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt; font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; color:#1F497D">However the deployment of the enterprise archives gave us head-aches and currently is only possible by a workaround for us. The problem is that
 the enterprise archives DO need to be deployed in the correct order, or they will fail due to missing dependencies, which then gets not resolved in the end. The way we are actually doing this is to start-up with deployment attribute enabled=&#8221;false&#8221; for the
 enterprise deployments and then handle their activation on our own during runtime after the OSGi-container finished its deployment.</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt; font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; color:#1F497D">So to sum it up:</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt; font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; color:#1F497D">- Am I satisfied with OSGi-bundle-deployment? Yes.</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt; font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; color:#1F497D">- Am I satisfied with how the overall app-server starts up with all its sub-systems and deployments: Not at all.</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt; font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; color:#1F497D">&nbsp;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt; font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; color:#1F497D">So I encourage you to have a look into the integration of the sub-systems, so they work together in seamless and predictable a way, I think this
 is what an app-server user expects.</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt; font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; color:#1F497D">One personal word regarding the short discussion about &#8220;should we take out the OSGI-container of the default profile&#8221;: From my pov, this will
 not solve anything. From my experience major vendors (also us) going into OSGi&#8217;s direction, so this is sth. that will definitely need to get supported by a recent app-server.</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt; font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; color:#1F497D">&nbsp;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt; font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; color:#1F497D">Best Regards,</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt; font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; color:#1F497D">Rico Neubauer (JBoss forum screen name MrEasy)</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt; font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; color:#1F497D">&nbsp;</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt; font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; color:#1F497D">&nbsp;</span></p>
<div>
<div style="border:none; border-top:solid #B5C4DF 1.0pt; padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="margin-left:35.4pt"><b><span lang="EN-US" style="font-size:10.0pt; font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span lang="EN-US" style="font-size:10.0pt; font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> jboss-as7-dev-bounces@lists.jboss.org
 [mailto:jboss-as7-dev-bounces@lists.jboss.org] <b>On Behalf Of </b>Stuart Douglas<br>
<b>Sent:</b> Fri</span><span style="font-size:10.0pt; font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">day, August 17, 2012 2:16 AM<br>
<b>To:</b> Thomas Diesler<br>
<b>Cc:</b> jboss-as7-dev@lists.jboss.org<br>
<b>Subject:</b> Re: [jboss-as7-dev] NPE in POST_MODULE processors</span></p>
</div>
</div>
<p class="MsoNormal" style="margin-left:35.4pt">&nbsp;</p>
<p class="MsoNormal" style="margin-left:35.4pt">&nbsp;</p>
<div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">On 17/08/2012, at 1:42 AM, Thomas Diesler &lt;<a href="mailto:thomas.diesler@jboss.com">thomas.diesler@jboss.com</a>&gt; wrote:</p>
</div>
<p class="MsoNormal" style="margin-left:35.4pt"><br>
<br>
</p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><tt><span style="font-size:10.0pt">Regarding ...</span></tt></p>
<p class="MsoNormal" style="margin-left:35.4pt"><tt><i><span style="font-size:10.0pt">This sounds very non-deterministic. Just to clarify, are you saying that if the user has a complex bundle deployment with lots of inter-dependencies on startup some may be
 resolved and some won't, and this may change on subsequent startups depending on the order in which they start?</span></i></tt></p>
<p class="MsoNormal" style="margin-left:35.4pt"><tt><span style="font-size:10.0pt">With a complex set of bundle deployments the user will have to deploy them in a known order (which is a problem in itself). There is pull request
<a href="https://github.com/jbossas/jboss-as/pull/2790">#2790</a> waiting that will allow the management client to have control over the auto start behaviour. So a user could first install the complete set in multiple operations and later explicitly start a
 selected set of bundles. This would overcome the order issue on first deploy.</span></tt></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">&nbsp;</p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">I really don't like this solution. I think that the best solution here is passive deployments, that don't start POST_MODULE until all their dependencies are available. In this case it does not have to be a explicit
 dependency on potential future bundles, but you you could have a 'resolved' service that acts as a gate, once OSGI has resolved the bundle it creates this service, which will then trigger the deployment to continue.</p>
</div>
<p class="MsoNormal" style="margin-left:35.4pt"><br>
<br>
</p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><span style="font-size:10.0pt; font-family:&quot;Courier New&quot;"><br>
<tt>Once the bundles are installed and activated the framework records their respective state. On server restart these persistent bundles are deployed in an arbitrary order but there is a guarantee backed into the Framework integration layer that ensures that
 the first resolve attempt is made after all persistent bundles have been installed. From the resolve perspective order also matters - you might get different wiring results depending on the order you resolve the bundles. One possible approach might be to resolve
 the full set of persistent bundles at once, but the guarantee for an identical wiring is still weak. A better approach would be to always resolve in a known order (i.e. sort by bundle id). The still better solution would be to persist the last known wiring
 graph and restore that on startup. Currently, the persistent bundles are resolved in the order they hit the BundleResolveProcessor which is arbitrary AFAIK.</tt></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">&nbsp;</p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">I think that this needs to be deterministic, otherwise we will end up with a situation where deploying the same thing to a domain results in different wirings for each server in the domain. Persisting the wiring
 does not really help in this case. IMHO any form of non-determinism is a serious bug.</p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">&nbsp;</p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">Stuart</p>
</div>
<p class="MsoNormal" style="margin-left:35.4pt"><br>
<br>
</p>
<div>
<p class="MsoNormal" style="margin-right:0cm; margin-bottom:12.0pt; margin-left:35.4pt">
<span style="font-size:10.0pt; font-family:&quot;Courier New&quot;"><br>
<tt>I have written up the complete subsystem activation process in <a href="https://community.jboss.org/wiki/OSGiSubsystemActivationProcess">
this article</a>. It contains the known issues and ideas for possible solutions. Perhaps we can start from there to find a more consistent solution.</tt></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">&nbsp;</p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">&nbsp;</p>
</div>
<p class="MsoNormal" style="margin-left:35.4pt"><br>
<br>
</p>
<div>
<p class="MsoNormal" style="margin-right:0cm; margin-bottom:12.0pt; margin-left:35.4pt">
<tt><span style="font-size:10.0pt">cheers</span></tt><span style="font-size:10.0pt; font-family:&quot;Courier New&quot;"><br>
<tt>--thomas </tt></span></p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">On 08/15/2012 01:32 PM, Thomas Diesler wrote:</p>
</div>
<blockquote style="margin-top:5.0pt; margin-bottom:5.0pt">
<p class="MsoNormal" style="margin-left:35.4pt">&nbsp;</p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">On 08/15/2012 11:20 AM, Stuart Douglas wrote:</p>
</div>
<blockquote style="margin-top:5.0pt; margin-bottom:5.0pt">
<p class="MsoNormal" style="margin-left:35.4pt">&nbsp;</p>
<div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">On 15/08/2012, at 6:59 PM, Thomas Diesler &lt;<a href="mailto:thomas.diesler@jboss.com">thomas.diesler@jboss.com</a>&gt; wrote:</p>
</div>
<p class="MsoNormal" style="margin-left:35.4pt"><br>
<br>
</p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><tt><span style="font-size:10.0pt">&gt; Why would the OSGI bundle not be able to resolve, is it because is waiting for another OSGI bundle to be installed?</span></tt><span style="font-size:10.0pt; font-family:&quot;Courier New&quot;"><br>
<br>
<tt>This is by virtue of the API - BundleContext.install() does not resolve the bundle. As the method name suggests, it just installs the bundle.
</tt><br>
<br>
<tt>In the hot-deployment case it is debatable whether bundle resolution and later bundle activation should be attempted or not. By design, the order of bundle deployment is not the responsibility of the user but that of the framework. For a complex graph of
 interdependent bundles the user cannot possibly be asked to deploy them in the &quot;right order&quot;. Instead the API allows to INSTALL the complete set (i.e. make the metadata available to the resolver) and later activate the bundles as needed. There are other triggers
 for bundle resolution too (e.g. resource access)</tt><br>
<br>
<tt>We currently do resolve/activate during DUP processing on a trial basis. For a bundle that only has dedependencies on already installed bundles the resolve/activation works fine and the services become available. I guess this is the expected hot-deploy
 behaviour. A bundle that cannot resolve - for various reasons, one being the user says so - we dont attempt to start the bundle either. It would still run through all remaining DUPs but does not have a module attached.</tt></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">&nbsp;</p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">This sounds very non-deterministic. Just to clarify, are you saying that if the user has a complex bundle deployment with lots of inter-dependencies on startup some may be resolved and some won't, and this may
 change on subsequent startups depending on the order in which they start?</p>
</div>
</div>
</blockquote>
<p class="MsoNormal" style="margin-left:35.4pt"><tt><span style="font-size:10.0pt">Yes, this is a long outstanding issue [<a href="https://issues.jboss.org/browse/AS7-378">AS7-378</a>]. I still have no guarantee that all bundles in a given set have been INSTALLED
 (in OSGi terminology) / have completed the Phase.REGISTER phase (in AS7 terminology) when the one bundle hits the BundleResolveProcessor. The framework records the persistent bundle state and on restart it is a requirement that all persistent bundles reach
 their respective target state for successful framework initialization. There is a little more detail to it and I'd be more than happy to work with you to find a consistent solution. We can take up this topic in another osgi specific thread if you like.</span></tt><span style="font-size:10.0pt; font-family:&quot;Courier New&quot;"><br>
<br>
</span></p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><br>
<br>
</p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><span style="font-size:10.0pt; font-family:&quot;Courier New&quot;"><br>
<tt>Non-OSGi deployments that use jboss-modules metadata to define their dependencies (i.e. Dependencies clause in the manifest) have that problem too, but worse. A complex system of interdependent module deployments is likely not manageable because of this
 ordering issue. Even if the user gets the ordering right the first time, on server restart the notion of deployment order is lost and very likely initial deployments will fail with no osgi involved. Granted that this describes a use case that is not intended
 to be used for user deployments. </tt></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">&nbsp;</p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">No, JBoss modules uses MSC services to resolve the dependencies. At container start all deployments are now run as part of the boot ops, so as long as all deployments are present this will always work. We do need
 a more specified way of saying &quot;Don't start this deployment until another deployment is done&quot;, but this is mainly for things like EJB's, not for class loading.
</p>
</div>
</div>
<p class="MsoNormal" style="margin-left:35.4pt"><tt><span style="font-size:10.0pt">Considering use case: moduleA depends on moduleB. On restart both deployments are processed in parallel. Even with 100 other deployments in between it is guaranteed that moduleA
 wont run into &quot;missing service on next phase&quot; error because the module service for B has not been installed? If so I take back the above prediction on restart, but still hold the unmanageable claim because ordering is delegated to the user (i.e. he must get
 it right the first time).</span></tt><span style="font-size:10.0pt; font-family:&quot;Courier New&quot;"><br>
<tt>&nbsp;</tt><br>
<br>
</span></p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><br>
<br>
</p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><span style="font-size:10.0pt; font-family:&quot;Courier New&quot;"><br>
<tt>&gt; the classic one is deployment of JDBC drivers that have an OSGI manifest</tt><br>
<br>
<tt>We already removed the hack that disables OSGi for this case. The JDBC driver *is* an OSGi bundle because it contains valid OSGi metadata. It gets processed as such and should work as expected. All DUP processing is identical as before except the way module
 dependencies are computed and how the Module service is created. The only case where an OSGi bundle gets treated as a library jar is when it is located in an EAR/lib directory. Bundles contained in EARs are otherwise processed as OSGi sub deployments.</tt></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">&nbsp;</p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">It sounds like because we have removed the hack JDBC drivers now will not work if they fail to resolve?</p>
</div>
</div>
<p class="MsoNormal" style="margin-left:35.4pt"><span style="font-size:10.0pt; font-family:&quot;Courier New&quot;"><br>
<tt>If they fail to resolve it would be because a requirement specified by the JDBC driver cannot be satisfied (e.g. wrong execution environment, missing package wire). I'd say the deployment of that driver should fail at resolve time because it would not work
 anyway because of the missing wire to a valid capability. Please don't forget that the requirements given by author should be honoured and satisfied if you want the driver to work - they should not be ignored or replaced by some made up hard wires that happen
 to work. In this respect a JDBC driver is no different to any other OSGi bundle.</tt><br>
<br>
<br>
</span></p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><br>
<br>
</p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><br>
<tt><span style="font-size:10.0pt">&gt; we should not be allowing the presence of the OSGI subsystem to provide a different experience for users that are only after EE functionality
</span></tt><span style="font-size:10.0pt; font-family:&quot;Courier New&quot;"><br>
<br>
<tt>Agreed, EE deployments should not be effected - and I don't think they are. The OSGi subsystem is not activated unless #1 you do so by management op #2 you deploy a bundle #3 some component is an injection target for the system BundleContext</tt><br>
<br>
<tt>&gt; We remove OSGI from the default profile, and provide a standalone-osgi.xml for users that wish to use OSGI</tt><br>
<br>
<tt>AFAICS this would remove a few services that are already lazy and a few DUPs that deal with bundle deployments. We already have the configuration for a pure OSGi runtime as you suggest. Removing the OSGi subsystem from the default profile would not solve
 the need for DUP authors to be aware of OSGi deployments and code for the case of unresolved bundle deployments.</tt></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">&nbsp;</p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">Even if we resolve the module issue I still think that it would be worth making this a separate profile. Like Jaikiran I really don't like the idea of other subsystems having to code around OSGI. Another possibility
 we could potentially explore is a separate deployment chain for OSGI, so these DUP's do not even run if it is an OSGI deployment.
</p>
</div>
</div>
<p class="MsoNormal" style="margin-left:35.4pt"><tt><span style="font-size:10.0pt">The purpose of OSGi integration in AS7 is to make middleware services that come with AS7 available to modular applications that use the OSGi standard and vice versa (i.e. make
 OSGi services available to EE components). We are not trying to build a standalone OSGi runtime and compete with
<a href="http://www.eclipse.org/virgo/">Virgo</a>, <a href="http://karaf.apache.org/">
Karaf</a>, etc. Instead, we are competing against WebSphere, WebLogic, Glassfish - which AFAIK all use OSGi as their bottom most layer and increasingly so make this tech available to user deployments. From the business perspective the ability to architect non-trivial
 modular applications in a standard way is a requirement on the product sheet. </span>
</tt><span style="font-size:10.0pt; font-family:&quot;Courier New&quot;"><br>
<br>
</span></p>
<div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">&nbsp;</p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">Do we have any usage data on how many of our users actually use OSGI? The more I think about it the more I think it makes sense to leave it out of the default profile. Even though you say 'it is not active unless
 you deploy a bundle', the thing is that many JDBC driver have OSGI metadata, so users that simply want to setup a datasource will still have OSGI activating, which is usually not what they would want.</p>
</div>
</div>
<p class="MsoNormal" style="margin-left:35.4pt"><tt><span style="font-size:10.0pt">I have download stats on sourceforge for the jbosgi umbrella which are
<a href="http://sourceforge.net/projects/jboss/files/JBossOSGi/stats/timeline?dates=2012-01-01&#43;to&#43;2012-08-15">
around 3000/month</a>. I also know of a few large EAP accounts that are using this tech or have it as a decision maker for EAP yes/no. The reason that many JDBC drivers have OSGi metadata is because they *are* OSGi bundles and want their requirements to be
 honoured in a given runtime. OSGi subsystem startup should be quick and flawless and those driver bundles should work seamless in AS7. They currently do AFAIK - if not I'd be interested in the details.&nbsp; &nbsp; &nbsp;
</span></tt><span style="font-size:10.0pt; font-family:&quot;Courier New&quot;"><br>
<br>
</span></p>
<div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">&nbsp;</p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">Stuart</p>
</div>
<p class="MsoNormal" style="margin-left:35.4pt"><br>
<br>
</p>
<div>
<p class="MsoNormal" style="margin-right:0cm; margin-bottom:12.0pt; margin-left:35.4pt">
<span style="font-size:10.0pt; font-family:&quot;Courier New&quot;"><br>
<tt>&gt; OSGI deployment that cannot be resolved pause the deployment process until such time as they can be
</tt><br>
<br>
<tt>Yes, this is very much in line with what I think how it should work. The management API should allow the user to specify whether a deployment should get resolved/activated too. As a desired side effect this could introduce life cycle for any AS7 deployment
 (i.e. start/stop decoupled from deploy/undeploy). I already did some work in this direction related to in &quot;<a href="https://issues.jboss.org/browse/AS7-2777">Add notion of start/stop for deployments</a>&quot;. It builds on top of &quot;<a href="https://issues.jboss.org/browse/AS7-3694">Allow
 management client to associate metadata with DeploymentUnit</a>&quot;, which is waiting to get
<a href="https://github.com/jbossas/jboss-as/pull/2790">pulled</a>.</tt><br>
<br>
<tt>&gt; which means that there will always be a Module available </tt><br>
<br>
<tt>YES ;-)</tt><br>
<br>
<tt>cheers</tt><br>
<tt>--thomas</tt></span></p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">On 08/15/2012 07:26 AM, Stuart Douglas wrote:</p>
</div>
<blockquote style="margin-top:5.0pt; margin-bottom:5.0pt">
<pre style="margin-left:35.4pt">Why would the OSGI bundle not be able to resolve, is it because is waiting for another OSGI bundle to be installed? And if so, wouldn't it make more sense to pause the deployment process until the bundle can be resolved? Otherwise the behaviour will be different depending on when the bundle is resolved (e.g. if a bundle is resolved late it will not have EJB's deployed, if it is resolved early it will). </pre>
<pre style="margin-left:35.4pt">&nbsp;</pre>
<pre style="margin-left:35.4pt">I really hate the way that OSGI takes over and prevents the module being created, I am pretty sure that the number of users that this has caused problems for is larger than the number of users that actually use OSGI (the classic one is deployment of JDBC drivers that have an OSGI manifest). </pre>
<pre style="margin-left:35.4pt">&nbsp;</pre>
<pre style="margin-left:35.4pt">I think we really need a solution for this for AS 7.2, because as it currently stands we are primarily an EE app server, and we should not be allowing the presence of the OSGI subsystem to provide a different experience for users that are only after EE functionality. </pre>
<pre style="margin-left:35.4pt">&nbsp;</pre>
<pre style="margin-left:35.4pt">To this end, I propose the following: </pre>
<pre style="margin-left:35.4pt">&nbsp;</pre>
<pre style="margin-left:35.4pt">- We remove OSGI from the default profile, and provide a standalone-osgi.xml for users that wish to use OSGI, this way OSGI cannot affect users that simply want EE functionality</pre>
<pre style="margin-left:35.4pt">- OSGI deployment that cannot be resolved pause the deployment process until such time as they can be, by making the POST_MODULE DeploymentUnitPhaseService passive, which means that there will always be a Module available. </pre>
<pre style="margin-left:35.4pt">&nbsp;</pre>
<pre style="margin-left:35.4pt">What do you think?</pre>
<pre style="margin-left:35.4pt">&nbsp;</pre>
<pre style="margin-left:35.4pt">Stuart</pre>
<pre style="margin-left:35.4pt">&nbsp;</pre>
<pre style="margin-left:35.4pt">On 15/08/2012, at 3:05 PM, Thomas Diesler <a href="mailto:thomas.diesler@jboss.com">&lt;thomas.diesler@jboss.com&gt;</a> wrote:</pre>
<pre style="margin-left:35.4pt">&nbsp;</pre>
<blockquote style="margin-top:5.0pt; margin-bottom:5.0pt">
<pre style="margin-left:35.4pt">Folks,</pre>
<pre style="margin-left:35.4pt">&nbsp;</pre>
<pre style="margin-left:35.4pt">a quick reminder that you cannot assume a valid Module attachment in </pre>
<pre style="margin-left:35.4pt">Phase.POST_MODULE or after.</pre>
<pre style="margin-left:35.4pt">&nbsp;</pre>
<pre style="margin-left:35.4pt">An OSGi deployment that cannot resolve won't have a Module attached to </pre>
<pre style="margin-left:35.4pt">the DU. There is talk about aligning the deployment phase names with </pre>
<pre style="margin-left:35.4pt">Bundle life cycle terminology. IMHO Phase.POST_MODULE and Phase.INSTALL </pre>
<pre style="margin-left:35.4pt">are not so lucky names because they imply meaning that may not be true. </pre>
<pre style="margin-left:35.4pt">For suggested improvement see <a href="https://issues.jboss.org/browse/AS7-3585">https://issues.jboss.org/browse/AS7-3585</a></pre>
<pre style="margin-left:35.4pt">&nbsp;</pre>
<pre style="margin-left:35.4pt">This is related to: <a href="https://issues.jboss.org/browse/AS7-5376">https://issues.jboss.org/browse/AS7-5376</a></pre>
<pre style="margin-left:35.4pt">&nbsp;</pre>
<pre style="margin-left:35.4pt">cheers</pre>
<pre style="margin-left:35.4pt">--thomas</pre>
<pre style="margin-left:35.4pt">&nbsp;</pre>
<pre style="margin-left:35.4pt">-- </pre>
<pre style="margin-left:35.4pt">xxxxxxxxxxxxxxxxxxxxxxxxxxxx</pre>
<pre style="margin-left:35.4pt">Thomas Diesler</pre>
<pre style="margin-left:35.4pt">JBoss OSGi Lead</pre>
<pre style="margin-left:35.4pt">JBoss, a division of Red Hat</pre>
<pre style="margin-left:35.4pt">xxxxxxxxxxxxxxxxxxxxxxxxxxxx</pre>
<pre style="margin-left:35.4pt">&nbsp;</pre>
<pre style="margin-left:35.4pt">_______________________________________________</pre>
<pre style="margin-left:35.4pt">jboss-as7-dev mailing list</pre>
<pre style="margin-left:35.4pt"><a href="mailto:jboss-as7-dev@lists.jboss.org">jboss-as7-dev@lists.jboss.org</a></pre>
<pre style="margin-left:35.4pt"><a href="https://lists.jboss.org/mailman/listinfo/jboss-as7-dev">https://lists.jboss.org/mailman/listinfo/jboss-as7-dev</a></pre>
</blockquote>
</blockquote>
<p class="MsoNormal" style="margin-left:35.4pt"><br>
<br>
</p>
<pre style="margin-left:35.4pt">-- </pre>
<pre style="margin-left:35.4pt">xxxxxxxxxxxxxxxxxxxxxxxxxxxx</pre>
<pre style="margin-left:35.4pt">Thomas Diesler</pre>
<pre style="margin-left:35.4pt">JBoss OSGi Lead</pre>
<pre style="margin-left:35.4pt">JBoss, a division of Red Hat</pre>
<pre style="margin-left:35.4pt">xxxxxxxxxxxxxxxxxxxxxxxxxxxx </pre>
</div>
</div>
<p class="MsoNormal" style="margin-left:35.4pt">&nbsp;</p>
<p class="MsoNormal" style="margin-left:35.4pt"><br>
<br>
</p>
<pre style="margin-left:35.4pt">-- </pre>
<pre style="margin-left:35.4pt">xxxxxxxxxxxxxxxxxxxxxxxxxxxx</pre>
<pre style="margin-left:35.4pt">Thomas Diesler</pre>
<pre style="margin-left:35.4pt">JBoss OSGi Lead</pre>
<pre style="margin-left:35.4pt">JBoss, a division of Red Hat</pre>
<pre style="margin-left:35.4pt">xxxxxxxxxxxxxxxxxxxxxxxxxxxx </pre>
</blockquote>
<p class="MsoNormal" style="margin-left:35.4pt"><br>
<br>
</p>
<pre style="margin-left:35.4pt">-- </pre>
<pre style="margin-left:35.4pt">xxxxxxxxxxxxxxxxxxxxxxxxxxxx</pre>
<pre style="margin-left:35.4pt">Thomas Diesler</pre>
<pre style="margin-left:35.4pt">JBoss OSGi Lead</pre>
<pre style="margin-left:35.4pt">JBoss, a division of Red Hat</pre>
<pre style="margin-left:35.4pt">xxxxxxxxxxxxxxxxxxxxxxxxxxxx </pre>
</div>
</div>
<p class="MsoNormal" style="margin-left:35.4pt">&nbsp;</p>
</div>
<font size="1" face="Arial" color="#808080"></font><br>
<br>
<br>
...<br>
<br>
<table border="0" width="100%" id="table1" style="border-collapse:collapse">
<tbody>
<tr>
<td width="272" style="border-bottom-style:double; border-bottom-width:3px">&nbsp;</td>
<td width="45" style="border-bottom-style:double; border-bottom-width:3px">&nbsp;</td>
<td style="border-bottom-style:double; border-bottom-width:3px">&nbsp;</td>
</tr>
</tbody>
</table>
<br>
<br>
<table border="0" width="100%" id="table1" style="border-collapse:collapse">
<tbody>
<tr>
<td width="272"><font size="1" face="Arial" color="#808080"><b>SEEBURGER AG</b></font></td>
<td width="45">&nbsp;</td>
<td><font size="1" face="Arial" color="#808080">Vorstand/Seeburger Executive Board:</font></td>
</tr>
<tr>
<td width="272"><font size="1" face="Arial" color="#808080">Sitz der Gesellschaft/Registered Office:</font></td>
<td width="45">&nbsp;</td>
<td><font size="1" face="Arial" color="#808080">Bernd Seeburger, Axel Haas, Michael Kleeberg</font></td>
</tr>
<tr>
<td width="272"><font size="1" face="Arial" color="#808080">Edisonstr. 1</font></td>
<td width="45">&nbsp;</td>
<td><font size="1" face="Arial" color="#808080"></font></td>
</tr>
<tr>
<td width="272"><font size="1" face="Arial" color="#808080">D-75015 Bretten</font></td>
<td width="45"><font size="1" face="Arial" color="#808080"></font></td>
<td><font size="1" face="Arial" color="#808080">Vorsitzender des Aufsichtsrats/Chairperson of the Seeburger Supervisory Board:</font></td>
</tr>
<tr>
<td width="272"><font size="1" face="Arial" color="#808080">Tel.: 07252 / 96 - 0</font></td>
<td width="45"><font size="1" face="Arial" color="#808080"></font></td>
<td><font size="1" face="Arial" color="#808080">Dr. Franz Scherer</font></td>
</tr>
<tr>
<td width="272"><font size="1" face="Arial" color="#808080">Fax: 07252 / 96 - 2222</font></td>
<td width="45"><font size="1" face="Arial" color="#808080"></font></td>
<td><font size="1" face="Arial" color="#808080"></font></td>
</tr>
<tr>
<td width="272"><font size="1" face="Arial" color="#808080">Internet: http://www.seeburger.de</font></td>
<td width="45"><font size="1" face="Arial" color="#808080"></font></td>
<td><font size="1" face="Arial" color="#808080">Registergericht/Commercial Register:</font></td>
</tr>
<tr>
<td width="272"><font size="1" face="Arial" color="#808080">e-mail: info@seeburger.de</font></td>
<td width="45"><font size="1" face="Arial" color="#808080"></font></td>
<td><font size="1" face="Arial" color="#808080">HRB 240708 Mannheim</font></td>
</tr>
</tbody>
</table>
<p><font size="2" face="Arial"><br>
</font></p>
<p align="justify"><font size="1" face="Arial" color="#808080">Dieses E-Mail ist nur f&uuml;r den Empf&auml;nger bestimmt, an den es gerichtet ist und kann vertrauliches bzw. unter das Berufsgeheimnis fallendes Material enthalten. Jegliche darin enthaltene Ansicht oder
 Meinungs&auml;u&szlig;erung ist die des Autors und stellt nicht notwendigerweise die Ansicht oder Meinung der SEEBURGER AG dar. Sind Sie nicht der Empf&auml;nger, so haben Sie diese E-Mail irrt&uuml;mlich erhalten und jegliche Verwendung, Ver&ouml;ffentlichung, Weiterleitung, Abschrift
 oder jeglicher Druck dieser E-Mail ist strengstens untersagt. Weder die SEEBURGER AG noch der Absender ( Neubauer. Rico ) &uuml;bernehmen die Haftung f&uuml;r Viren; es obliegt Ihrer Verantwortung, die E-Mail und deren Anh&auml;nge auf Viren zu pr&uuml;fen.
<br>
<br>
</p>
<p align="justify"><font size="1" face="Arial" color="#808080">The present email addresses only the addressee which it targets and may contain confidential material that may be protected by the professional secret. The opinions reflected herein are not necessarily
 the one of the SEEBURGER AG. If you are not the addressee, you have accidentally got this email and are not enabled to use, publish, forward, copy or print it in any way. Neither SEEBURGER AG , nor the sender (Neubauer. Rico) are liable for viruses, being
 your own responsibility to check this email and its attachments for this purpose.
<br>
<br>
</font></p>
</font>
</body>
</html>