Hi,

First of all: I agree with Richard in that we should at all cost prevent
containerisms.

Second: I do not really understand what the problem is, that must be
solved with this containerism and which cannot be solved with regular
OSGi API.

Third: For us outsiders of the specification process it is very hard to
understand what insiders are talking of with respect to upcoming
specifications (I only learned 5 minutes ago, that there is a public
draft for 4.3). This issue must probably be solved by OSGi...

Regards
Felix

On 08.10.2010 16:37, Guillaume Nodet wrote:
> I was planning to start a discussion around that, so let's do that now.
> 
> I'm not convinced we should remove this hack when classpath scanning is
> implemented, mostly because even if then ultimately try to solve the same
> problem, they will certainly do it in a different way.  What I mean is that
> AFAIK, the classpath scanning stuff will result in a new api on the bundle
> or bundleContext to iterate through resources, which means that in order to
> support existing libraries, you kinda have to rewrite the whole thing in
> order to accomodate those apis (especially if they are written so that they
> work outside of osgi).
> I think the hack i've written allows a smoother integration of those
> libraries, with the drawback that you know it can break in certain
> conditions.
> 
> Also, your comment says "Do not make containerisms public."
> In that case, it's not really public because the public face of the Felix
> Framework is the OSGi api.
> I guess the question comes down to wether we want Felix to remain pure
> (without containerisms) or make it easier for people to use it (by bending
> the edges when it makes sense to allow people to deploy their existing
> libraries without rewriting the whole thing).
> Imho, Felix is not a research prototype, nor supposed to be the cleaneest
> reference implementation of OSGi, so adapting to the users makes sense imho,
> provided that it's done conciensouly by the user by activating a flag or
> accessing a non public api (we fall in that case here imho).
> 
> Thoughts?
> 
> On Fri, Oct 8, 2010 at 16:22, <[email protected]> wrote:
> 
>> Author: rickhall
>> Date: Fri Oct  8 14:22:39 2010
>> New Revision: 1005843
>>
>> URL: http://svn.apache.org/viewvc?rev=1005843&view=rev
>> Log:
>> Do not make containerisms public. (FELIX-2645)
>>
>> Modified:
>>
>>  
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/ExtensionManager.java
>>
>>  
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java
>>
>>  
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/URLHandlersBundleURLConnection.java
>>
>>  
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/ContentDirectoryContent.java
>>
>>  
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/DirectoryContent.java
>>
>>  
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/JarContent.java
>>
>>  
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/Content.java
>>
>>  
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/Module.java
>>
>> Modified:
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/ExtensionManager.java
>> URL:
>> http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/ExtensionManager.java?rev=1005843&r1=1005842&r2=1005843&view=diff
>>
>> ==============================================================================
>> ---
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/ExtensionManager.java
>> (original)
>> +++
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/ExtensionManager.java
>> Fri Oct  8 14:22:39 2010
>> @@ -610,6 +610,7 @@ class ExtensionManager extends URLStream
>>         return null;
>>     }
>>
>> +    // TODO: REMOVE - Remove when class path scanning is implemented.
>>     public URL getEntryAsURL(String name)
>>     {
>>         return null;
>> @@ -763,6 +764,7 @@ class ExtensionManager extends URLStream
>>             return
>> getClass().getClassLoader().getResourceAsStream(urlPath);
>>         }
>>
>> +        // TODO: REMOVE - Remove when class path scanning is implemented.
>>         public URL getLocalURL(int index, String urlPath)
>>         {
>>             return getClass().getClassLoader().getResource(urlPath);
>>
>> Modified:
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java
>> URL:
>> http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java?rev=1005843&r1=1005842&r2=1005843&view=diff
>>
>> ==============================================================================
>> ---
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java
>> (original)
>> +++
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java
>> Fri Oct  8 14:22:39 2010
>> @@ -1091,6 +1091,7 @@ public class ModuleImpl implements Modul
>>         return getContentPath()[index - 1].getEntryAsStream(urlPath);
>>     }
>>
>> +    // TODO: REMOVE - Remove when class path scanning is implemented.
>>     public URL getLocalURL(int index, String urlPath)
>>     {
>>         if (urlPath.startsWith("/"))
>>
>> Modified:
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/URLHandlersBundleURLConnection.java
>> URL:
>> http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/URLHandlersBundleURLConnection.java?rev=1005843&r1=1005842&r2=1005843&view=diff
>>
>> ==============================================================================
>> ---
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/URLHandlersBundleURLConnection.java
>> (original)
>> +++
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/URLHandlersBundleURLConnection.java
>> Fri Oct  8 14:22:39 2010
>> @@ -28,7 +28,7 @@ import org.apache.felix.framework.resolv
>>
>>  import org.apache.felix.framework.util.Util;
>>
>> -public class URLHandlersBundleURLConnection extends URLConnection
>> +class URLHandlersBundleURLConnection extends URLConnection
>>  {
>>     private Felix m_framework;
>>     private Module m_targetModule;
>> @@ -201,7 +201,8 @@ public class URLHandlersBundleURLConnect
>>      *
>>      * @return the local URL
>>      */
>> -    public URL getLocalURL()
>> +    // TODO: REMOVE - Remove when class path scanning is implemented.
>> +    URL getLocalURL()
>>     {
>>         if ((m_targetModule == null) || (m_classPathIdx < 0))
>>         {
>>
>> Modified:
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/ContentDirectoryContent.java
>> URL:
>> http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/ContentDirectoryContent.java?rev=1005843&r1=1005842&r2=1005843&view=diff
>>
>> ==============================================================================
>> ---
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/ContentDirectoryContent.java
>> (original)
>> +++
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/ContentDirectoryContent.java
>> Fri Oct  8 14:22:39 2010
>> @@ -82,6 +82,7 @@ public class ContentDirectoryContent imp
>>         return m_content.getEntryAsStream(m_rootPath + name);
>>     }
>>
>> +    // TODO: REMOVE - Remove when class path scanning is implemented.
>>     public URL getEntryAsURL(String name)
>>     {
>>         return m_content.getEntryAsURL(m_rootPath + name);
>>
>> Modified:
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/DirectoryContent.java
>> URL:
>> http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/DirectoryContent.java?rev=1005843&r1=1005842&r2=1005843&view=diff
>>
>> ==============================================================================
>> ---
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/DirectoryContent.java
>> (original)
>> +++
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/DirectoryContent.java
>> Fri Oct  8 14:22:39 2010
>> @@ -133,6 +133,7 @@ public class DirectoryContent implements
>>         return new FileInputStream(new File(m_dir, name));
>>     }
>>
>> +    // TODO: REMOVE - Remove when class path scanning is implemented.
>>     public URL getEntryAsURL(String name)
>>     {
>>         if ((name.length() > 0) && (name.charAt(0) == '/'))
>>
>> Modified:
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/JarContent.java
>> URL:
>> http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/JarContent.java?rev=1005843&r1=1005842&r2=1005843&view=diff
>>
>> ==============================================================================
>> ---
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/JarContent.java
>> (original)
>> +++
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/cache/JarContent.java
>> Fri Oct  8 14:22:39 2010
>> @@ -192,6 +192,7 @@ public class JarContent implements Conte
>>         return is;
>>     }
>>
>> +    // TODO: REMOVE - Remove when class path scanning is implemented.
>>     public URL getEntryAsURL(String name)
>>     {
>>         try
>>
>> Modified:
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/Content.java
>> URL:
>> http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/Content.java?rev=1005843&r1=1005842&r2=1005843&view=diff
>>
>> ==============================================================================
>> ---
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/Content.java
>> (original)
>> +++
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/Content.java
>> Fri Oct  8 14:22:39 2010
>> @@ -120,5 +120,6 @@ public interface Content
>>      * @return A URL using a standard protocol such as file, jar
>>      *           or null if not possible.
>>      */
>> +    // TODO: REMOVE - Remove when class path scanning is implemented.
>>     URL getEntryAsURL(String name);
>>  }
>> \ No newline at end of file
>>
>> Modified:
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/Module.java
>> URL:
>> http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/Module.java?rev=1005843&r1=1005842&r2=1005843&view=diff
>>
>> ==============================================================================
>> ---
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/Module.java
>> (original)
>> +++
>> felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/Module.java
>> Fri Oct  8 14:22:39 2010
>> @@ -72,5 +72,6 @@ public interface Module
>>         throws IOException;
>>     InputStream getInputStream(int index, String urlPath)
>>         throws IOException;
>> +    // TODO: REMOVE - Remove when class path scanning is implemented.
>>     URL getLocalURL(int index, String urlPath);
>>  }
>> \ No newline at end of file
>>
>>
>>
> 
> 

Reply via email to