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
--
Cheers,