[ 
https://issues.apache.org/jira/browse/MYFACES-2290?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12769396#action_12769396
 ] 

Leonardo Uribe commented on MYFACES-2290:
-----------------------------------------

I have checked the patch, but unfortunately it contains an serious bug. The 
following classes added in the patch:

javax.faces.component._BundleUtils
javax.faces.component._BundleProxyClassLoader
javax.faces.component._Activator

are public classes. No public classes could be added to myfaces-api, because do 
that breaks binary compatibility with ri. The problem is that according to OSGi 
javadoc, BundleActivator instances should have a public no args constructor.

Suggestions are welcome

> Add OSGi bundle information and bundle classloader / activator
> --------------------------------------------------------------
>
>                 Key: MYFACES-2290
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2290
>             Project: MyFaces Core
>          Issue Type: New Feature
>          Components: General
>    Affects Versions: 1.2.8-SNAPSHOT
>         Environment: OSGi (Equinox, Apache Felix, ...)
>            Reporter: Felix Röthenbacher
>            Assignee: Leonardo Uribe
>            Priority: Critical
>         Attachments: myfaces-core.diff.txt, myfaces-shared.diff.txt
>
>
> The provided patch will add OSGi information to bundle manifest. A bundle 
> activator class makes the MyFaces framework aware that it is running in a 
> bundle environment. A bundle classloader is used to load classes and 
> resources from the bundle classpath. The patch doesn't require any new 
> runtime dependencies and doesn't affect class loading in a non-OSGi 
> environment. Though, small modifications to classloading were needed. This 
> was mainly replacing Thread.currentThread.getContextClassLoader() with 
> ClassUtils methods.
> To run MyFaces in an OSGi environment both bundles (myfaces-api and 
> myfaces-impl) have to be started in the OSGi container. Additionally, the 
> myfaces-impl bundle has to be made available to myfaces-api. Use a fragment 
> bundle with myfaces-api as Fragment-Host and myfaces-impl as Required-Bundle.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to