[jira] [Commented] (FELIX-5573) Detect recursive class loads while invoking weaving hooks

2017-03-01 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-5573?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15889790#comment-15889790
 ] 

Felix Meschberger commented on FELIX-5573:
--

My understanding is like David's: I think Bundle.loadClass should not return 
null as this sounds unexpected, although the specification is not entirely 
clear. So I would sort this under the topic "managing expectations".

How about throwing a new "ClassLoadingCircularityDetectedException extends 
ClassNotFoundException" ? This way callers get the "ClassNotFoundException" 
while internally you can differentiate between the cases. Plus logging the 
exception will properly indicate the actual problem: the circularity.

> Detect recursive class loads while invoking weaving hooks
> -
>
> Key: FELIX-5573
> URL: https://issues.apache.org/jira/browse/FELIX-5573
> Project: Felix
>  Issue Type: Bug
>  Components: Framework
>Affects Versions: framework-5.6.2
>Reporter: Karl Pauls
>Assignee: Karl Pauls
> Fix For: framework-5.6.4
>
>
> We need to detect recursive class loads while invoking weaving hooks, if 
> recursion is detected for a class name then we want to simply ignore all 
> weave hooks for the recursive class load and allow it to proceed to define 
> class.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (FELIX-5507) ConfigurationAdmin not visible to bundles

2017-01-26 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-5507?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15839427#comment-15839427
 ] 

Felix Meschberger commented on FELIX-5507:
--

I tend to agree with [~djencks] here. IIRC the reason for using the extended 
bundle's context is to make sure the Configuration Admin service applies the 
correct permissions for the consuming bundle ! Using the system bundle 
completely breaks this assumption and I would even go as far as saying this is 
non-compliant behaviour.

It really is important to find the real cause for the problem in this context.

> ConfigurationAdmin not visible to bundles
> -
>
> Key: FELIX-5507
> URL: https://issues.apache.org/jira/browse/FELIX-5507
> Project: Felix
>  Issue Type: Bug
>  Components: Declarative Services (SCR)
>Affects Versions: scr-2.0.8
>Reporter: Carsten Ziegeler
> Fix For: scr-2.1.0
>
>
> We have one case where the extended bundles do not see the configuration 
> admin service. Interestingly the same application runs fine everywhere else, 
> but just on a special environment (windows, ibm java inside Websphere) we 
> have this problem reproducibly.
> Using the system bundle context instead of the bundle context of the extended 
> bundle in ConfigAdminTracker solves the problem.
> Interestingly only the bundles started last (2 out of probably 80) see the 
> configuration admin.
> It could also be that a faulty service hook is involved, although I'm not yet 
> aware of such a hook



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (FELIX-5446) Http Service ignores Whiteboard Servlet API Listeners

2016-12-12 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-5446?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15741687#comment-15741687
 ] 

Felix Meschberger commented on FELIX-5446:
--

I have looked again, and it looks like the Http Service Web Console plugin 
indeed *lists* the listener for the servlet context "'org.osgi.service.http" 
where the HttpService registered services are listed. But the listener is not 
called.

> Http Service ignores Whiteboard Servlet API Listeners
> -
>
> Key: FELIX-5446
> URL: https://issues.apache.org/jira/browse/FELIX-5446
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http.base-3.0.16, http.jetty-3.4.0
>Reporter: Felix Meschberger
>Assignee: Carsten Ziegeler
> Fix For: http.base-3.0.18, http.jetty-3.4.2
>
>
> Situation:
> # A ServletRequestListener registered with the Http Whiteboard Service 
> (standard OSGi Http Whiteboard) with property 
> {{osgi.http.whiteboard.listener==true}}.
> # A Servlet registered with the traditional OSGi HttpService
> Problem: The ServletRequestListener is not called for requests for requests 
> to said servlet.
> Investigation: It looks like the ServletRequestListenerManager used to handle 
> ServletRequestListener services for traditionally registered Servlets 
> explicitly ignores listeners registered with the 
> {{osgi.http.whiteboard.listener}} property set. See this code in 
> [ServletRequestListenerManager|https://github.com/apache/felix/blob/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/service/listener/ServletRequestListenerManager.java#L45].
> For one thing, the listener should at best ignore services registered with 
> the property set to true. If the property is set to anything else, it will 
> explicitly be ignored by the OSGi Whiteboard Http Service and thus should 
> probably be accepted by the legacy Felix Http Service implementation.
> On the other hand: Why ignore at all ? Originally the legacy Felix Http 
> Service accepted all Servlet API listeners regardless of such property set. 
> So if there is a listener used and the Jetty bundle is updated and the 
> service updated to make sure it is called for new OSGi Whiteboard services it 
> will not be called any more for the legacy registered services
> I think the legacy Felix Http Service should just accept all listeners like 
> it always did.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FELIX-5446) Http Service ignores Whiteboard Servlet API Listeners

2016-12-12 Thread Felix Meschberger (JIRA)
Felix Meschberger created FELIX-5446:


 Summary: Http Service ignores Whiteboard Servlet API Listeners
 Key: FELIX-5446
 URL: https://issues.apache.org/jira/browse/FELIX-5446
 Project: Felix
  Issue Type: Bug
  Components: HTTP Service
Affects Versions: http.jetty-3.4.0
Reporter: Felix Meschberger


Situation:

# A ServletRequestListener registered with the Http Whiteboard Service 
(standard OSGi Http Whiteboard) with property 
{{osgi.http.whiteboard.listener==true}}.
# A Servlet registered with the traditional OSGi HttpService

Problem: The ServletRequestListener is not called for requests for requests to 
said servlet.

Investigation: It looks like the ServletRequestListenerManager used to handle 
ServletRequestListener services for traditionally registered Servlets 
explicitly ignores listeners registered with the 
{{osgi.http.whiteboard.listener}} property set. See this code in 
[ServletRequestListenerManager|https://github.com/apache/felix/blob/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/service/listener/ServletRequestListenerManager.java#L45].

For one thing, the listener should at best ignore services registered with the 
property set to true. If the property is set to anything else, it will 
explicitly be ignored by the OSGi Whiteboard Http Service and thus should 
probably be accepted by the legacy Felix Http Service implementation.

On the other hand: Why ignore at all ? Originally the legacy Felix Http Service 
accepted all Servlet API listeners regardless of such property set. So if there 
is a listener used and the Jetty bundle is updated and the service updated to 
make sure it is called for new OSGi Whiteboard services it will not be called 
any more for the legacy registered services

I think the legacy Felix Http Service should just accept all listeners like it 
always did.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (FELIX-5443) Frequent Changes cause UpdateThread to ConcurrentModificationException

2016-12-07 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-5443?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15728607#comment-15728607
 ] 

Felix Meschberger commented on FELIX-5443:
--

Good catch. Current uses do not seem to trigger this much concurrency in this 
context ...

How about replacing the internal set with an immutable variant:

{code}
Index: Factory.java
===
--- Factory.java(Revision 1773058)
+++ Factory.java(Arbeitskopie)
@@ -20,6 +20,7 @@
 
 
 import java.io.IOException;
+import java.util.Collections;
 import java.util.Dictionary;
 import java.util.HashSet;
 import java.util.Hashtable;
@@ -41,7 +42,7 @@
 public static final String FACTORY_PID_LIST = "factory.pidList";
 
 // the set of configuration PIDs belonging to this factory
-private final Set pids = new HashSet();;
+private Set pids;
 
 
 static boolean exists( PersistenceManager persistenceManager, String 
factoryPid )
@@ -67,6 +68,7 @@
 Factory( ConfigurationManager configurationManager, PersistenceManager 
persistenceManager, String factoryPid )
 {
 super( configurationManager, persistenceManager, factoryPid );
+this.pids = Collections.unmodifiableSet( Collections.emptySet() );
 }
 
 
@@ -77,6 +79,7 @@
 
 // set pids
 String[] pidList = ( String[] ) props.get( FACTORY_PID_LIST );
+HashSet pids = new HashSet();
 if ( pidList != null )
 {
 for ( int i = 0; i < pidList.length; i++ )
@@ -84,6 +87,7 @@
 pids.add( pidList[i] );
 }
 }
+this.pids = Collections.unmodifiableSet( pids );
 }
 
 
@@ -101,19 +105,25 @@
 
 Set getPIDs()
 {
-return new HashSet( pids );
+return this.pids;
 }
 
 
 boolean addPID( String pid )
 {
-return pids.add( pid );
+HashSet pids = new HashSet();
+boolean added = pids.add( pid );
+this.pids = Collections.unmodifiableSet( pids );
+return added;
 }
 
 
 boolean removePID( String pid )
 {
-return pids.remove( pid );
+HashSet pids = new HashSet();
+boolean removed = pids.remove( pid );
+this.pids = Collections.unmodifiableSet( pids );
+return removed;
 }
 
 
@@ -120,6 +130,7 @@
 void store() throws IOException
 {
 Hashtable props = new Hashtable();
+Set pids = this.pids;
 
 if ( !pids.isEmpty() )
 {
{code}

This allows us to optimize the {{getPids()}} method which is presumably called 
more often than {{addPid}} and {{removePid}} which become more expensive.

> Frequent Changes cause UpdateThread to ConcurrentModificationException
> --
>
> Key: FELIX-5443
> URL: https://issues.apache.org/jira/browse/FELIX-5443
> Project: Felix
>  Issue Type: Bug
>  Components: Configuration Admin
>Affects Versions: configadmin-1.8.8
>Reporter: Fabian Lange
>
> 2016-11-30T10:20:15.614+ | ERROR | 836-1bc8-4066-963b-9b9cbccbd9d0) | 
> configadmin | org.apache.felix.configadmin - 1.8.8 | Unexpected problem 
> executing task java.util.ConcurrentModificationException at 
> java.util.HashMap$HashIterator.nextNode(HashMap.java:1437)[:1.8.0_101] at 
> java.util.HashMap$KeyIterator.next(HashMap.java:1461)[:1.8.0_101] at 
> java.util.AbstractCollection.toArray(AbstractCollection.java:196)[:1.8.0_101] 
> at 
> org.apache.felix.cm.impl.Factory.store(Factory.java:126)[4:org.apache.felix.configadmin:1.8.8]
>  at 
> org.apache.felix.cm.impl.ConfigurationManager$DeleteConfiguration.run(ConfigurationManager.java:1851)[4:org.apache.felix.configadmin:1.8.8]
>  at 
> org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)[4:org.apache.felix.configadmin:1.8.8]
>  at 
> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)[4:org.apache.felix.configadmin:1.8.8]
>  at java.lang.Thread.run(Thread.java:745)[:1.8.0_101]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (FELIX-5394) Memoryusage plugin creates a heap dump on every notification

2016-11-09 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-5394?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15650513#comment-15650513
 ] 

Felix Meschberger commented on FELIX-5394:
--

On rethought and some discussions, it might probably be worth while extending 
the memory plugin as follows:

* Allow to set thresholds for each of the events separately, where zero means 
the plugin should *not* change any current threshold
* Allow to configure whether to dump heap on either or both of the events or to 
not dump at all

Possible UI:

{code}
+---+---+---+
| Mem Threshold |  | ☐ dump heap ? |
+---+---+---+
| Snapshot Th.  |  | ☐ dump heap ? |
+---+---+---+
{code}

In addition dumping heap should be limited more flexibly:

* dump only if last dump is more than some amount of time in the past (as today)
* dump if nth event within an amount of time (e.g. dump if 3rd event within an 
hour)

> Memoryusage plugin creates a heap dump on every notification
> 
>
> Key: FELIX-5394
> URL: https://issues.apache.org/jira/browse/FELIX-5394
> Project: Felix
>  Issue Type: Bug
>  Components: Web Console
>Affects Versions: webconsole-memoryusage-plugin-1.0.6
>Reporter: Alex Parvulescu
>  Labels: patch-available
> Attachments: FELIX-5394-v0.patch
>
>
> As a part of OAK-4966 I'm trying to install a listener on available memory 
> with a notification when a certain available memory threshold is met [0]. 
> This seems to clash a bit with the current {{memoryusage}} plugin, as both 
> jmx listeners try to change the threshold for the notification, and 
> subsequently both might receive the notification at a different value than 
> expected. (for example I'm setting a notification at {{15%}} and even though 
> the {{memoryusage}} plugin is not used and is currently set at {{0%}} it will 
> still create a heap dump:
> {noformat}
> *WARN* [Service Thread] org.apache.felix.webconsole.plugins.memoryusage 
> Received Memory Threshold Exceeded Notification, dumping Heap
> {noformat}
> I have 2 suggestions:
> * first is to _not_ change the threshold value if it's already set at a 
> smaller value. this means the plugin will not break other listeners 
> expectations of receiving an event
>  
> * second is to verify the locally set threshold value against the values seen 
> at notification time. this effectively means the plugin is free to ignore 
> certain events, and not dump the heap to disk every time it gets a ping [1].
> I would like to provide a patch for this issue pretty soon as I really need 
> to fix OAK-4966, unless someone is more eager to come up with a working 
> solution.
> [0] 
> https://issues.apache.org/jira/browse/OAK-4966?focusedCommentId=15629253&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15629253
> [1] 
> https://github.com/apache/felix/blob/trunk/webconsole-plugins/memoryusage/src/main/java/org/apache/felix/webconsole/plugins/memoryusage/internal/MemoryUsageSupport.java#L553



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (FELIX-5394) Memoryusage plugin creates a heap dump on every notification

2016-11-04 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-5394?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15637414#comment-15637414
 ] 

Felix Meschberger commented on FELIX-5394:
--

bq. could you just clarify who will be responsible for setting the threshold on 
the memory pool? will the plugin not set it any more going forward?

If the threshold is configured to zero, yes, the idea is that the plugin will 
not set it any longer. If the configured value is in the valid range, the 
plugin will set it.

bq. also, might I add a small thing to your list: if the plugin is registered 
for a specific threshold and it receives an event, it should check that the 
memory delta is within that threshold before creating the dump

I am a bit at unease at doing that. My assumption is that someone enabled 
dumping by threshold. Now someone else changed the threshold, but still the 
dump might be desired

> Memoryusage plugin creates a heap dump on every notification
> 
>
> Key: FELIX-5394
> URL: https://issues.apache.org/jira/browse/FELIX-5394
> Project: Felix
>  Issue Type: Bug
>  Components: Web Console
>Affects Versions: webconsole-memoryusage-plugin-1.0.6
>Reporter: Alex Parvulescu
>  Labels: patch-available
> Attachments: FELIX-5394-v0.patch
>
>
> As a part of OAK-4966 I'm trying to install a listener on available memory 
> with a notification when a certain available memory threshold is met [0]. 
> This seems to clash a bit with the current {{memoryusage}} plugin, as both 
> jmx listeners try to change the threshold for the notification, and 
> subsequently both might receive the notification at a different value than 
> expected. (for example I'm setting a notification at {{15%}} and even though 
> the {{memoryusage}} plugin is not used and is currently set at {{0%}} it will 
> still create a heap dump:
> {noformat}
> *WARN* [Service Thread] org.apache.felix.webconsole.plugins.memoryusage 
> Received Memory Threshold Exceeded Notification, dumping Heap
> {noformat}
> I have 2 suggestions:
> * first is to _not_ change the threshold value if it's already set at a 
> smaller value. this means the plugin will not break other listeners 
> expectations of receiving an event
>  
> * second is to verify the locally set threshold value against the values seen 
> at notification time. this effectively means the plugin is free to ignore 
> certain events, and not dump the heap to disk every time it gets a ping [1].
> I would like to provide a patch for this issue pretty soon as I really need 
> to fix OAK-4966, unless someone is more eager to come up with a working 
> solution.
> [0] 
> https://issues.apache.org/jira/browse/OAK-4966?focusedCommentId=15629253&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15629253
> [1] 
> https://github.com/apache/felix/blob/trunk/webconsole-plugins/memoryusage/src/main/java/org/apache/felix/webconsole/plugins/memoryusage/internal/MemoryUsageSupport.java#L553



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FELIX-5397) Memoryusage plugin default configuration incorrect

2016-11-04 Thread Felix Meschberger (JIRA)
Felix Meschberger created FELIX-5397:


 Summary: Memoryusage plugin default configuration incorrect
 Key: FELIX-5397
 URL: https://issues.apache.org/jira/browse/FELIX-5397
 Project: Felix
  Issue Type: Bug
  Components: Web Console
Affects Versions: webconsole-memoryusage-plugin-1.0.6
Reporter: Felix Meschberger
 Fix For: webconsole-memoryusage-plugin-1.0.8


When no Configuration Admin configuration exists for the Memoryusage plugin 
static default values are displayed. In addition the dump interval time is 
documented to be given seconds with a default value of 6h, while the displayed 
values would 6h in milliseconds (or 6000h in seconds).

As the metatype is dynamically generated anyway, the default values should 
actually be derived from the currently configured values as provided by the 
either the static defaults or the configuration provided from the framework 
properties.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (FELIX-5394) Memoryusage plugin creates a heap dump on every notification

2016-11-04 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-5394?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15636472#comment-15636472
 ] 

Felix Meschberger edited comment on FELIX-5394 at 11/4/16 2:17 PM:
---

Apart from that, there is indeed a proplem with the plugin: The documentation 
of the _Dump Threshold_ property states _zero to disable automatic dump 
creation_.

This is clearly not implemented like that. Rather the implementation does this 
when the property is zero:

  * Registers the notification listener (yes, this listener is always 
registered !)
  * Sets the threshold to zero on all memory pools allowing to set the 
threshold. This causes these pools to not send events.
  * Still set the threshold to zero on the settable pools (this may be 
overwritten by other tooling but dumps by the plugin will not be created)

Now, should some other system tooling decide to set the threshold to some value 
(of course this setting is sort of a race condition between this plugin and the 
other tool), the plugin will receive events and in contrast to the stated 
"disable automatic dump creation", dumps will be created.

We should fix this as follows:

  * Register the listener only in case a non-zero threshold is configured
  * Make sure the listener is not registered (or unregistered) if a zero 
threshold is configured

[~alex.parvulescu] Does that work for you ?


was (Author: fmeschbe):
Apart from that, there is indeed a proplem with the plugin: The documentation 
of the _Dump Threshold_ property states _zero to disable automatic dump 
creation_.

This is clearly not implemented like that. Rather the implementation does this 
when the property is zero:

  * Registers the notification listener (yes, this listener is always 
registered !)
  * Sets the threshold to zero on all memory pools allowing to set the 
threshold. This causes these pools to not send events.

Now, should some other system tooling decide to set the threshold to some value 
(of course this setting is sort of a race condition between this plugin and the 
other tool), the plugin will receive events and in contrast to the stated 
"disable automatic dump creation", dumps will be created.

We should fix this as follows:

  * Register the listener only in case a non-zero threshold is configured
  * Make sure the listener is not registered (or unregistered) if a zero 
threshold is configured

[~alex.parvulescu] Does that work for you ?

> Memoryusage plugin creates a heap dump on every notification
> 
>
> Key: FELIX-5394
> URL: https://issues.apache.org/jira/browse/FELIX-5394
> Project: Felix
>  Issue Type: Bug
>  Components: Web Console
>Affects Versions: webconsole-memoryusage-plugin-1.0.6
>Reporter: Alex Parvulescu
>  Labels: patch-available
> Attachments: FELIX-5394-v0.patch
>
>
> As a part of OAK-4966 I'm trying to install a listener on available memory 
> with a notification when a certain available memory threshold is met [0]. 
> This seems to clash a bit with the current {{memoryusage}} plugin, as both 
> jmx listeners try to change the threshold for the notification, and 
> subsequently both might receive the notification at a different value than 
> expected. (for example I'm setting a notification at {{15%}} and even though 
> the {{memoryusage}} plugin is not used and is currently set at {{0%}} it will 
> still create a heap dump:
> {noformat}
> *WARN* [Service Thread] org.apache.felix.webconsole.plugins.memoryusage 
> Received Memory Threshold Exceeded Notification, dumping Heap
> {noformat}
> I have 2 suggestions:
> * first is to _not_ change the threshold value if it's already set at a 
> smaller value. this means the plugin will not break other listeners 
> expectations of receiving an event
>  
> * second is to verify the locally set threshold value against the values seen 
> at notification time. this effectively means the plugin is free to ignore 
> certain events, and not dump the heap to disk every time it gets a ping [1].
> I would like to provide a patch for this issue pretty soon as I really need 
> to fix OAK-4966, unless someone is more eager to come up with a working 
> solution.
> [0] 
> https://issues.apache.org/jira/browse/OAK-4966?focusedCommentId=15629253&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15629253
> [1] 
> https://github.com/apache/felix/blob/trunk/webconsole-plugins/memoryusage/src/main/java/org/apache/felix/webconsole/plugins/memoryusage/internal/MemoryUsageSupport.java#L553



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (FELIX-5394) Memoryusage plugin creates a heap dump on every notification

2016-11-04 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-5394?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15636472#comment-15636472
 ] 

Felix Meschberger commented on FELIX-5394:
--

Apart from that, there is indeed a proplem with the plugin: The documentation 
of the _Dump Threshold_ property states _zero to disable automatic dump 
creation_.

This is clearly not implemented like that. Rather the implementation does this 
when the property is zero:

  * Registers the notification listener (yes, this listener is always 
registered !)
  * Sets the threshold to zero on all memory pools allowing to set the 
threshold. This causes these pools to not send events.

Now, should some other system tooling decide to set the threshold to some value 
(of course this setting is sort of a race condition between this plugin and the 
other tool), the plugin will receive events and in contrast to the stated 
"disable automatic dump creation", dumps will be created.

We should fix this as follows:

  * Register the listener only in case a non-zero threshold is configured
  * Make sure the listener is not registered (or unregistered) if a zero 
threshold is configured

[~alex.parvulescu] Does that work for you ?

> Memoryusage plugin creates a heap dump on every notification
> 
>
> Key: FELIX-5394
> URL: https://issues.apache.org/jira/browse/FELIX-5394
> Project: Felix
>  Issue Type: Bug
>  Components: Web Console
>Affects Versions: webconsole-memoryusage-plugin-1.0.6
>Reporter: Alex Parvulescu
>  Labels: patch-available
> Attachments: FELIX-5394-v0.patch
>
>
> As a part of OAK-4966 I'm trying to install a listener on available memory 
> with a notification when a certain available memory threshold is met [0]. 
> This seems to clash a bit with the current {{memoryusage}} plugin, as both 
> jmx listeners try to change the threshold for the notification, and 
> subsequently both might receive the notification at a different value than 
> expected. (for example I'm setting a notification at {{15%}} and even though 
> the {{memoryusage}} plugin is not used and is currently set at {{0%}} it will 
> still create a heap dump:
> {noformat}
> *WARN* [Service Thread] org.apache.felix.webconsole.plugins.memoryusage 
> Received Memory Threshold Exceeded Notification, dumping Heap
> {noformat}
> I have 2 suggestions:
> * first is to _not_ change the threshold value if it's already set at a 
> smaller value. this means the plugin will not break other listeners 
> expectations of receiving an event
>  
> * second is to verify the locally set threshold value against the values seen 
> at notification time. this effectively means the plugin is free to ignore 
> certain events, and not dump the heap to disk every time it gets a ping [1].
> I would like to provide a patch for this issue pretty soon as I really need 
> to fix OAK-4966, unless someone is more eager to come up with a working 
> solution.
> [0] 
> https://issues.apache.org/jira/browse/OAK-4966?focusedCommentId=15629253&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15629253
> [1] 
> https://github.com/apache/felix/blob/trunk/webconsole-plugins/memoryusage/src/main/java/org/apache/felix/webconsole/plugins/memoryusage/internal/MemoryUsageSupport.java#L553



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (FELIX-5394) Memoryusage plugin creates a heap dump on every notification

2016-11-04 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-5394?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15635568#comment-15635568
 ] 

Felix Meschberger commented on FELIX-5394:
--

If I understand it correctly, Oak wants to be notified if there is a memory 
shortage while they perform some housekeeping (tar online compaction). I 
appreciate their use of this notification to try to make sure their heap 
consumption while housekeeping does not "kill" the system.

But then, I think it cannot be Oak's task to change any of the thresholds. As 
such I think we should not change this plugin and rather have Oak just register 
for the notification and document that they expect deployments to have a 
reasonable threshold configuration.

> Memoryusage plugin creates a heap dump on every notification
> 
>
> Key: FELIX-5394
> URL: https://issues.apache.org/jira/browse/FELIX-5394
> Project: Felix
>  Issue Type: Bug
>  Components: Web Console
>Affects Versions: webconsole-memoryusage-plugin-1.0.6
>Reporter: Alex Parvulescu
>  Labels: patch-available
> Attachments: FELIX-5394-v0.patch
>
>
> As a part of OAK-4966 I'm trying to install a listener on available memory 
> with a notification when a certain available memory threshold is met [0]. 
> This seems to clash a bit with the current {{memoryusage}} plugin, as both 
> jmx listeners try to change the threshold for the notification, and 
> subsequently both might receive the notification at a different value than 
> expected. (for example I'm setting a notification at {{15%}} and even though 
> the {{memoryusage}} plugin is not used and is currently set at {{0%}} it will 
> still create a heap dump:
> {noformat}
> *WARN* [Service Thread] org.apache.felix.webconsole.plugins.memoryusage 
> Received Memory Threshold Exceeded Notification, dumping Heap
> {noformat}
> I have 2 suggestions:
> * first is to _not_ change the threshold value if it's already set at a 
> smaller value. this means the plugin will not break other listeners 
> expectations of receiving an event
>  
> * second is to verify the locally set threshold value against the values seen 
> at notification time. this effectively means the plugin is free to ignore 
> certain events, and not dump the heap to disk every time it gets a ping [1].
> I would like to provide a patch for this issue pretty soon as I really need 
> to fix OAK-4966, unless someone is more eager to come up with a working 
> solution.
> [0] 
> https://issues.apache.org/jira/browse/OAK-4966?focusedCommentId=15629253&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15629253
> [1] 
> https://github.com/apache/felix/blob/trunk/webconsole-plugins/memoryusage/src/main/java/org/apache/felix/webconsole/plugins/memoryusage/internal/MemoryUsageSupport.java#L553



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (FELIX-5148) Framework Security unusable

2016-01-18 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-5148?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15105216#comment-15105216
 ] 

Felix Meschberger commented on FELIX-5148:
--

I have to admit [~olli], that I don't know exactly what's going on here.

I once added a policy file to the configadmin bundle (FELIX-4039), but TBH I 
don't exactly know that works, except that with this file in place the bundle 
passes the OSGi CT tests even with SecurityManager enabled.

> Framework Security unusable
> ---
>
> Key: FELIX-5148
> URL: https://issues.apache.org/jira/browse/FELIX-5148
> Project: Felix
>  Issue Type: Bug
>  Components: Configuration Admin, Framework Security
>Affects Versions: framework.security-2.4.0, configadmin-1.8.0
>Reporter: Oliver Lietz
>
> While fixing an issue with Sling and RMI (SLING-5375) reported by an user I 
> came across an issue (KARAF-3400) reported by [~achim_nierbeck] for Karaf 
> related to framework security.
> There is also an issue with [Sling's own OSGi launcher 
> Launchpad|https://svn.apache.org/viewvc/sling/trunk/launchpad/builder/] and 
> framework security when using {{org.apache.felix.configadmin}} >= {{1.8.0}}.
> {{all.policy}}:
> {noformat}
> grant {
>permission java.security.AllPermission;
> };
> {noformat}
> Adding {{org.apache.felix/org.apache.felix.framework.security/2.4.0}} to 
> {{boot.txt}} and starting with arguments described on [Framework Security's 
> page|http://felix.apache.org/documentation/subprojects/apache-felix-framework-security.html]
>  (which looks broken) and 
> [{{-Djava.security.manager}}|http://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html]
>  ([Building Secure OSGi 
> Applications|http://de.slideshare.net/marrs/building-secure-osgi-applications])
>  throws a {{java.security.AccessControlException}}:
> {noformat}
> java -Djava.security.manager -Djava.security.policy="all.policy" 
> -Dorg.osgi.framework.security="osgi" -jar 
> org.apache.sling.launchpad-9-SNAPSHOT.jar
> {noformat}
> {noformat}
> [...]
> [...] *ERROR* [FelixStartLevel] ERROR: Error starting 
> slinginstall:org.apache.felix.configadmin-1.8.0.jar 
> (java.security.AccessControlException: access denied 
> ("java.io.FilePermission" "/[...]/sling/config" "read"))
> java.security.AccessControlException: access denied ("java.io.FilePermission" 
> "/[...]/sling/config" "read")
>   at 
> java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
>   at 
> java.security.AccessController.checkPermission(AccessController.java:884)
>   at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
>   at java.lang.SecurityManager.checkRead(SecurityManager.java:888)
>   at java.io.File.isDirectory(File.java:844)
>   at 
> org.apache.felix.cm.file.FilePersistenceManager.(FilePersistenceManager.java:342)
>   at 
> org.apache.felix.cm.impl.ConfigurationManager.start(ConfigurationManager.java:244)
>   at 
> org.apache.felix.framework.util.SecureAction$Actions.run(SecureAction.java:1709)
>   at java.security.AccessController.doPrivileged(Native Method)
>   at 
> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:688)
>   at org.apache.felix.framework.Felix.activateBundle(Felix.java:2226)
>   at org.apache.felix.framework.Felix.startBundle(Felix.java:2144)
>   at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
>   at 
> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
>   at java.lang.Thread.run(Thread.java:745)
> [...]
> {noformat}
> I had to remove OSGi Subsystems support from {{boot.txt}} when using 
> {{org.apache.felix.configadmin}} {{1.6}}:
> {noformat}
> org.apache.felix/org.apache.felix.coordinator/1.0.0
> org.eclipse.equinox/org.eclipse.equinox.region/1.2.101.v20150831-1342
> org.apache.aries.subsystem/org.apache.aries.subsystem.api/2.0.6
> org.apache.aries.subsystem/org.apache.aries.subsystem.core/2.0.6
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (FELIX-4890) Implement a MetaType service inventory printer

2015-05-18 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4890?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger updated FELIX-4890:
-
Fix Version/s: webconsole-metatype-plugin-1.0.0

> Implement a MetaType service inventory printer
> --
>
> Key: FELIX-4890
> URL: https://issues.apache.org/jira/browse/FELIX-4890
> Project: Felix
>  Issue Type: Task
>  Components: Web Console
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
> Fix For: webconsole-metatype-plugin-1.0.0
>
>
> For completeness of information of the status output of a framework 
> supporting inventory printing, it would be good to have an InventoryPrinter 
> for MetaType service information.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (FELIX-4890) Implement a MetaType service inventory printer

2015-05-18 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4890?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14547767#comment-14547767
 ] 

Felix Meschberger commented on FELIX-4890:
--

Added first version in commit 1679974 to 
http://svn.apache.org/repos/asf/felix/trunk/webconsole-plugins/metatype

> Implement a MetaType service inventory printer
> --
>
> Key: FELIX-4890
> URL: https://issues.apache.org/jira/browse/FELIX-4890
> Project: Felix
>  Issue Type: Task
>  Components: Web Console
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
>
> For completeness of information of the status output of a framework 
> supporting inventory printing, it would be good to have an InventoryPrinter 
> for MetaType service information.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FELIX-4890) Implement a MetaType service inventory printer

2015-05-18 Thread Felix Meschberger (JIRA)
Felix Meschberger created FELIX-4890:


 Summary: Implement a MetaType service inventory printer
 Key: FELIX-4890
 URL: https://issues.apache.org/jira/browse/FELIX-4890
 Project: Felix
  Issue Type: Task
  Components: Web Console
Reporter: Felix Meschberger
Assignee: Felix Meschberger


For completeness of information of the status output of a framework supporting 
inventory printing, it would be good to have an InventoryPrinter for MetaType 
service information.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (FELIX-4599) Support Encryption Of Configuration Properties

2015-02-12 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4599?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14317926#comment-14317926
 ] 

Felix Meschberger commented on FELIX-4599:
--

No they are really on called as I said :-)

> Support Encryption Of Configuration Properties
> --
>
> Key: FELIX-4599
> URL: https://issues.apache.org/jira/browse/FELIX-4599
> Project: Felix
>  Issue Type: New Feature
>  Components: Configuration Admin
>Reporter: Dominique Jäggi
>
> Currently it is not possible to define configuration properties, the contents 
> of which should be automatically encrypted upon save by the configuration 
> admin.
> An example would be a mail server configuration, where SMTP credentials must 
> specified and the password should be encrypted upon saving the configuration. 
> The encrypted password should then be accessible and decryptable in the 
> component to which the configuration is bound.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (FELIX-4599) Support Encryption Of Configuration Properties

2015-02-12 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4599?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14317907#comment-14317907
 ] 

Felix Meschberger commented on FELIX-4599:
--

[~chetanm] The problem ConfigurationPlugin is that they only kick in when 
ConfigurationAdmin service is sending configuration ManagedService[Factory] 
services. They don't kick in when accessing configuration with getConfiguration 
and listConfigurations. As such they are not a complete solution.

> Support Encryption Of Configuration Properties
> --
>
> Key: FELIX-4599
> URL: https://issues.apache.org/jira/browse/FELIX-4599
> Project: Felix
>  Issue Type: New Feature
>  Components: Configuration Admin
>Reporter: Dominique Jäggi
>
> Currently it is not possible to define configuration properties, the contents 
> of which should be automatically encrypted upon save by the configuration 
> admin.
> An example would be a mail server configuration, where SMTP credentials must 
> specified and the password should be encrypted upon saving the configuration. 
> The encrypted password should then be accessible and decryptable in the 
> component to which the configuration is bound.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (FELIX-4792) [SCR] Handle Errors on component initialization

2015-02-09 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4792?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger resolved FELIX-4792.
--
Resolution: Fixed

Implemented catching any Throwable during initial component initialization and 
logging it in Rev. 1658457.

In addition the component is disabled to make sure any partical setup is rolled 
back.

> [SCR] Handle Errors on component initialization
> ---
>
> Key: FELIX-4792
> URL: https://issues.apache.org/jira/browse/FELIX-4792
> Project: Felix
>  Issue Type: Bug
>  Components: Declarative Services (SCR)
>Affects Versions: scr-1.8.2
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
> Fix For: scr-2.0.0
>
>
> During component initialization the component implementation class is loaded. 
> If the class or one of its dependencies cannot be properly loaded a 
> ClassDefNotFound error can be thrown.
> This error bubbles up from BundleComponentActivator.initialEnable to the 
> AbstractExtender.createExtension method, where it is logged. The problem with 
> this is, that the BundleComponentActivator has registered all the components 
> of the bundle with the ComponentRegistry but when the error is thrown, the 
> BundleComponentActivator is not registered in Activator's m_componentBundles 
> map.
> So, when the bundle is stopped, the components registered with the 
> ComponentRegistry stay registered and will never be cleaned away.
> The simple fix is to catch Throwable in the 
> BundleComponentActivator.initialEnable method and log it. The single 
> component failing to load will stay inactive but the rest of the component 
> registration will continue unaffected.
> Background: We have a situation where a bundle is compiled against an API 
> bundle whose exported API is not properly versioned. So the OSGi framework 
> happily wires the bundle to the older API bundle version but one of the 
> components fails to load due to missing API.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FELIX-4792) [SCR] Handle Errors on component initialization

2015-02-09 Thread Felix Meschberger (JIRA)
Felix Meschberger created FELIX-4792:


 Summary: [SCR] Handle Errors on component initialization
 Key: FELIX-4792
 URL: https://issues.apache.org/jira/browse/FELIX-4792
 Project: Felix
  Issue Type: Bug
  Components: Declarative Services (SCR)
Affects Versions: scr-1.8.2
Reporter: Felix Meschberger
Assignee: Felix Meschberger
 Fix For: scr-2.0.0


During component initialization the component implementation class is loaded. 
If the class or one of its dependencies cannot be properly loaded a 
ClassDefNotFound error can be thrown.

This error bubbles up from BundleComponentActivator.initialEnable to the 
AbstractExtender.createExtension method, where it is logged. The problem with 
this is, that the BundleComponentActivator has registered all the components of 
the bundle with the ComponentRegistry but when the error is thrown, the 
BundleComponentActivator is not registered in Activator's m_componentBundles 
map.

So, when the bundle is stopped, the components registered with the 
ComponentRegistry stay registered and will never be cleaned away.

The simple fix is to catch Throwable in the 
BundleComponentActivator.initialEnable method and log it. The single component 
failing to load will stay inactive but the rest of the component registration 
will continue unaffected.

Background: We have a situation where a bundle is compiled against an API 
bundle whose exported API is not properly versioned. So the OSGi framework 
happily wires the bundle to the older API bundle version but one of the 
components fails to load due to missing API.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (FELIX-4787) DS implementation should be based on R6

2015-02-06 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4787?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14308846#comment-14308846
 ] 

Felix Meschberger commented on FELIX-4787:
--

In light of FELIX-4785 where we discuss keeping the old service API I think we 
should not jump the band wagon and just blindly require framework R6.

Just as we have consumers of the old service API we might have implementations 
of the old Framework API which cannot easily migrate to a new framework version 
(in fact migrating the framework is probably harder than migrating just about 
some bundle).

So I suggest we should actually keep compatibility with old framework versions. 
This probably means:

  * not support new functionality if the framework does not support it. For 
ServiceObjects this means that components making use of this functionality fail 
to "resolve" due to a missing dependency.
  * embed parts of the API which we cannot expect on older frameworks -- or not 
expose that functionality at all. For DTO this means either embedding the DTO 
API and exporting/importing it like we do with the Promise API or it means not 
exposing the DTOs if the basic DTO API is not available -- similar to how we 
support Configuration Admin and Metatype depending on whether these APIs and 
services are available.

> DS implementation should be based on R6
> ---
>
> Key: FELIX-4787
> URL: https://issues.apache.org/jira/browse/FELIX-4787
> Project: Felix
>  Issue Type: Task
>  Components: Declarative Services (SCR)
>Reporter: Carsten Ziegeler
>Assignee: Carsten Ziegeler
> Fix For: scr-2.0.0
>
>
> Right now the new DS implementation stills tries to run on older frameworks, 
> the bnd.bnd file claims it works with version 1.4 of the framework api.
> However, the new DS spec includes support for ServiceObjects and DTOs which 
> are part of core R6 (package version 1.8). There is some effort in the code 
> to still run on an older framework if these features are not used, but I'm 
> wondering if this is a good idea and how we ensure that everything is working.
> Now, that we have an official Apache Felix releases that is R6 compliant, I 
> would rather require this as the minimal version.
> [~djencks] WDYT?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (FELIX-4692) Improve Service access time

2015-01-06 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4692?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger resolved FELIX-4692.
--
Resolution: Fixed

Thanks for the feedback. I have applied the second patch in Rev. 1649858 (and I 
hope I got the formatting right this time :-) )

> Improve Service access time
> ---
>
> Key: FELIX-4692
> URL: https://issues.apache.org/jira/browse/FELIX-4692
> Project: Felix
>  Issue Type: Improvement
>  Components: Framework
>Affects Versions: framework-4.4.1
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
> Fix For: framework-4.6.0
>
> Attachments: FELIX-4692-2.patch, FELIX-4692.diff
>
>
> Currently the ServiceRegistry takes roughly 1ms to access a single service. 
> In a reasonably large system, this may over time consume considerable time.
> For example in our inhouse system sporting roughly 5000 services with 15'000 
> service accesses during startup, these accesses acount for almost 15 seconds 
> or roughly 25-30% of the total startup time.
> Internally all accesses to services are handled with a Filter even if the 
> service is simply retrieved with the service name without a filter. This 
> causes a considerable overhead.
> A simple improvement is to keep services not only in a global Capabitliy Set 
> accessible through generic filters but also keep such a set for each 
> registered service name.
> The measured improvement of this change is substantial: accessing these 
> 15'000 services now only takes roughly 3 seconds or 0.2 ms per service or 5 
> times faster.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (FELIX-4692) Improve Service access time

2015-01-06 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4692?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14265944#comment-14265944
 ] 

Felix Meschberger commented on FELIX-4692:
--

For illustration purposes some measurments of the 
{{ServiceRegistry.getServiceReferences(String className, SimpleFilter filter)}} 
method.

|| Period || #1   || #2|| #3 || #4|| #5|| 
#6  || ||
| Startup | 8720 | 8720 | 8720 | 8720 | 8722 | 8720 | calls 
to getServiceReferences method |
|  | 4074 | 3983 | 3740 | 1397 | 1086 | 1017 | 
Total ms spent in method |
| Startup + Shutdown | 15093 | 15105 | 15075 | 15091 | 15199 | 15197 | calls to 
getServiceReferences method |
|  | 12951 | 13039 | 12012 | 4336 | 3144 | 3101 
| Total ms spent in method |

# Unmodified framework at Rev. 1649764
# Guard {{matches.retainAll(caps)}} call only -- not that much of an influence, 
interestingly; probably not doing much work most of the time due to small set 
of entries in the matches set.
# Guard {{matches.retainAll(caps)}} call and not wrapping set in ArrayList -- 
some more improvement, nothing drammatic yet
# Guard {{matches.retainAll(caps)}} call, not wrapping set in ArrayList, 
special case code (not in the patch) to specially handle 
{{SimpleFilter.PRESENT}} filters - starts to go into the right direction
# [^FELIX-4692-2.patch] applied -- since the presence check derives from access 
to services with a {{null}} service interface, changing the filter to 
{{MATCH_ALL}} instead looks even better and makes for simpler code in the 
{{CapabilitySet}} not requiring special handling of the presence check.
# [^FELIX-4692.diff] applied -- best numbers but most complex and thus not used.

All tests are run on an mid-2013 MacBook Air 13 with 1.7 GHz Intel Core i7, 8GB 
RAM, and SSD. The absolute values vary but relative values across the options 
are interesting.

> Improve Service access time
> ---
>
> Key: FELIX-4692
> URL: https://issues.apache.org/jira/browse/FELIX-4692
> Project: Felix
>  Issue Type: Improvement
>  Components: Framework
>Affects Versions: framework-4.4.1
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
> Fix For: framework-4.6.0
>
> Attachments: FELIX-4692-2.patch, FELIX-4692.diff
>
>
> Currently the ServiceRegistry takes roughly 1ms to access a single service. 
> In a reasonably large system, this may over time consume considerable time.
> For example in our inhouse system sporting roughly 5000 services with 15'000 
> service accesses during startup, these accesses acount for almost 15 seconds 
> or roughly 25-30% of the total startup time.
> Internally all accesses to services are handled with a Filter even if the 
> service is simply retrieved with the service name without a filter. This 
> causes a considerable overhead.
> A simple improvement is to keep services not only in a global Capabitliy Set 
> accessible through generic filters but also keep such a set for each 
> registered service name.
> The measured improvement of this change is substantial: accessing these 
> 15'000 services now only takes roughly 3 seconds or 0.2 ms per service or 5 
> times faster.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (FELIX-4692) Improve Service access time

2015-01-06 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4692?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger updated FELIX-4692:
-
Attachment: FELIX-4692-2.patch

Simpler patch with three changes as described in previous comment.

> Improve Service access time
> ---
>
> Key: FELIX-4692
> URL: https://issues.apache.org/jira/browse/FELIX-4692
> Project: Felix
>  Issue Type: Improvement
>  Components: Framework
>Affects Versions: framework-4.4.1
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
> Fix For: framework-4.6.0
>
> Attachments: FELIX-4692-2.patch, FELIX-4692.diff
>
>
> Currently the ServiceRegistry takes roughly 1ms to access a single service. 
> In a reasonably large system, this may over time consume considerable time.
> For example in our inhouse system sporting roughly 5000 services with 15'000 
> service accesses during startup, these accesses acount for almost 15 seconds 
> or roughly 25-30% of the total startup time.
> Internally all accesses to services are handled with a Filter even if the 
> service is simply retrieved with the service name without a filter. This 
> causes a considerable overhead.
> A simple improvement is to keep services not only in a global Capabitliy Set 
> accessible through generic filters but also keep such a set for each 
> registered service name.
> The measured improvement of this change is substantial: accessing these 
> 15'000 services now only takes roughly 3 seconds or 0.2 ms per service or 5 
> times faster.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (FELIX-4692) Improve Service access time

2015-01-06 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4692?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14265906#comment-14265906
 ] 

Felix Meschberger commented on FELIX-4692:
--

Digging a bit deeper, I found the following opportunities for improvements:

# In the {{CapabilitySet.match(Set<> caps, SimpleFilter sf)}} method on line 
239 the {{matches.retainAll(caps)}} call is guarded by an {{if (caps != 
m_capSet)}}
# The {{ServiceRegistry.getServiceReferences(String className, SimpleFilter 
filter)}} method returns the set from the {{CapabilitySet.match(SimplerFilter, 
boolean)}} method directly without copying that into an ArrayList. This 
requires a slight adaption in the {{Felix.getServiceReferences(BundleImpl, 
String, String, boolean)}} method.
# Using a {{SimpleFilter.MATCH_ALL}} filter instead of a filter which checks 
for the objectclass property presence.

This last change has a drammatic impact in our use case, because the presence 
checks caused lots of "useless" property access because the objectclasses 
property is always present for services and hence just simply matching all 
services is correct. The reason for this impact is that we leverage the Aries 
JMX bundles which do repeated {{BundleContext.getAllServiceReferences(null, 
null)}} calls (maybe worth investigating on another route).

With these three changes I come close to the improvements compared to attached 
patch [^FELIX-4692.diff] but they have a much lower impact. So I will create a 
new patch with these changes.

> Improve Service access time
> ---
>
> Key: FELIX-4692
> URL: https://issues.apache.org/jira/browse/FELIX-4692
> Project: Felix
>  Issue Type: Improvement
>  Components: Framework
>Affects Versions: framework-4.4.1
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
> Fix For: framework-4.6.0
>
> Attachments: FELIX-4692.diff
>
>
> Currently the ServiceRegistry takes roughly 1ms to access a single service. 
> In a reasonably large system, this may over time consume considerable time.
> For example in our inhouse system sporting roughly 5000 services with 15'000 
> service accesses during startup, these accesses acount for almost 15 seconds 
> or roughly 25-30% of the total startup time.
> Internally all accesses to services are handled with a Filter even if the 
> service is simply retrieved with the service name without a filter. This 
> causes a considerable overhead.
> A simple improvement is to keep services not only in a global Capabitliy Set 
> accessible through generic filters but also keep such a set for each 
> registered service name.
> The measured improvement of this change is substantial: accessing these 
> 15'000 services now only takes roughly 3 seconds or 0.2 ms per service or 5 
> times faster.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (FELIX-4704) Show ranking in web console services plugin

2015-01-05 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4704?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14264411#comment-14264411
 ] 

Felix Meschberger commented on FELIX-4704:
--

bq. while often important

It is actually not very important that often ... But it really depends on your 
concrete use case and so YMMV (and, yes if you need it, you need it badly, also 
applies :-) )

> Show ranking in web console services plugin
> ---
>
> Key: FELIX-4704
> URL: https://issues.apache.org/jira/browse/FELIX-4704
> Project: Felix
>  Issue Type: Improvement
>  Components: Web Console
>Reporter: Alexander Klimetschek
>Assignee: Carsten Ziegeler
>Priority: Minor
> Fix For: webconsole-4.2.6
>
> Attachments: FELIX-4704.patch, screenshot.png
>
>
> The service ranking is an important property of services and one often needs 
> to look for all implementations of a given service and sort them by their 
> ranking - to list them in the order they are used by some other component.
> Thus adding a new column to the services table that can be sorted like the 
> other ones would be really helpful. Filtering down to one service interface 
> is already possible since FELIX-4202 (e.g. {{(objectclass=*.MyService}}).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (FELIX-4704) Show ranking in web console services plugin

2015-01-05 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4704?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14264409#comment-14264409
 ] 

Felix Meschberger commented on FELIX-4704:
--

Ok

> Show ranking in web console services plugin
> ---
>
> Key: FELIX-4704
> URL: https://issues.apache.org/jira/browse/FELIX-4704
> Project: Felix
>  Issue Type: Improvement
>  Components: Web Console
>Reporter: Alexander Klimetschek
>Assignee: Carsten Ziegeler
>Priority: Minor
> Fix For: webconsole-4.2.6
>
> Attachments: FELIX-4704.patch, screenshot.png
>
>
> The service ranking is an important property of services and one often needs 
> to look for all implementations of a given service and sort them by their 
> ranking - to list them in the order they are used by some other component.
> Thus adding a new column to the services table that can be sorted like the 
> other ones would be really helpful. Filtering down to one service interface 
> is already possible since FELIX-4202 (e.g. {{(objectclass=*.MyService}}).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (FELIX-3773) WebConsole uses library with ASL-incompatible licence

2015-01-05 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-3773?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14264405#comment-14264405
 ] 

Felix Meschberger commented on FELIX-3773:
--

I like this very much. We should get started with some concepts of how to build 
the next generation Web Console and its API. We can still see how we can 
support old Web Console 3/4 plugins with some kind of a compat/bridge bundle.

As for JSON, I am really fine. As for RPC, I am more weary -- I prefer proper 
REST style. :-)

As for plugin.*: Sounds like a good approach. Since we would have .html, .css, 
and .js in most cases, we might want to define a plugin service registration 
property setting the base name where the property defaults to "plugin" if 
missing. The reason fo adding another service property is to allow for multiple 
plugins with different helper files to be embedded in a single bundle (e.g. the 
Web Console Core bundle itself).

> WebConsole uses library with ASL-incompatible licence
> -
>
> Key: FELIX-3773
> URL: https://issues.apache.org/jira/browse/FELIX-3773
> Project: Felix
>  Issue Type: Bug
>  Components: Web Console
>Affects Versions: webconsole-4.0.0
>Reporter: Neil Bartlett
>Priority: Critical
>
> WebConsole uses the JSON library from json.org that contains the following 
> term in its licence (http://www.json.org/license.html):
> "The Software shall be used for Good, not Evil."
> I believe that this restriction is incompatible with the ASL.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (FELIX-4692) Improve Service access time

2015-01-04 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4692?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14264296#comment-14264296
 ] 

Felix Meschberger commented on FELIX-4692:
--

bq. Looking at the code of CapabilitySet.match(Set<> caps, SimpleFilter sf) on 
line 239 we do "matches.retainAll(caps)" which in your case caps would be your 
10k services, so I expect that this is where you see the slowdown.

Interestingly I just found a draft message in my inbox which comes to the exact 
same conclusion. I like your proposal of only retaining all if {{(caps != 
m_capSet)}}.

> Improve Service access time
> ---
>
> Key: FELIX-4692
> URL: https://issues.apache.org/jira/browse/FELIX-4692
> Project: Felix
>  Issue Type: Improvement
>  Components: Framework
>Affects Versions: framework-4.4.1
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
> Fix For: framework-4.6.0
>
> Attachments: FELIX-4692.diff
>
>
> Currently the ServiceRegistry takes roughly 1ms to access a single service. 
> In a reasonably large system, this may over time consume considerable time.
> For example in our inhouse system sporting roughly 5000 services with 15'000 
> service accesses during startup, these accesses acount for almost 15 seconds 
> or roughly 25-30% of the total startup time.
> Internally all accesses to services are handled with a Filter even if the 
> service is simply retrieved with the service name without a filter. This 
> causes a considerable overhead.
> A simple improvement is to keep services not only in a global Capabitliy Set 
> accessible through generic filters but also keep such a set for each 
> registered service name.
> The measured improvement of this change is substantial: accessing these 
> 15'000 services now only takes roughly 3 seconds or 0.2 ms per service or 5 
> times faster.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (FELIX-4704) Show ranking in web console services plugin

2015-01-04 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4704?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14264260#comment-14264260
 ] 

Felix Meschberger edited comment on FELIX-4704 at 1/5/15 7:13 AM:
--

While I appreciate this patch and the importance of the service.ranking 
property, I really think the service.ranking property is not important on a 
general level. But maybe it makes sense to expose it explicitly in the list.

Regardless, I still have some issues with the simplistic approach here: First I 
don't think we should show the service.ranking in the second column even before 
the service types. Maybe the last column is more appropriate.

Second, and more subtle, though, is that the service.ranking property is not 
generally used on a global level across all services but amongst services of a 
specific type. So I doubt the general usefulness of sorting the global service 
table by the service.ranking property.

Finally, whether a certain service is actually used by a particular consumer 
depends on more than the service.ranking itself. For example the whether a 
filter has been used to select the service. Or how the Declarative Services 
@Reference is setup (static vs. dynamic policy, target filter).


was (Author: fmeschbe):
While I appreciate this patch and the importance of the service.ranking 
property, I really think the service.ranking property is not important on a 
general level. But maybe it makes sense to expose it explicitly in the list.

Regardless, I still have some issues with the simplistic approach here: First I 
don't think we should show the service.ranking in the second column even before 
the service types. Maybe the last column is more appropriate.

Second, and more subtle, though, is that the service.ranking property is not 
generally used on a global level across all services but amongst services of a 
specific type. So I doubt the general usefulness of sorting the global service 
table by the service.ranking property.

> Show ranking in web console services plugin
> ---
>
> Key: FELIX-4704
> URL: https://issues.apache.org/jira/browse/FELIX-4704
> Project: Felix
>  Issue Type: Improvement
>  Components: Web Console
>Reporter: Alexander Klimetschek
>Assignee: Carsten Ziegeler
>Priority: Minor
> Fix For: webconsole-4.2.6
>
> Attachments: FELIX-4704.patch, screenshot.png
>
>
> The service ranking is an important property of services and one often needs 
> to look for all implementations of a given service and sort them by their 
> ranking - to list them in the order they are used by some other component.
> Thus adding a new column to the services table that can be sorted like the 
> other ones would be really helpful. Filtering down to one service interface 
> is already possible since FELIX-4202 (e.g. {{(objectclass=*.MyService}}).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (FELIX-4704) Show ranking in web console services plugin

2015-01-04 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4704?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14264260#comment-14264260
 ] 

Felix Meschberger commented on FELIX-4704:
--

While I appreciate this patch and the importance of the service.ranking 
property, I really think the service.ranking property is not important on a 
general level. But maybe it makes sense to expose it explicitly in the list.

Regardless, I still have some issues with the simplistic approach here: First I 
don't think we should show the service.ranking in the second column even before 
the service types. Maybe the last column is more appropriate.

Second, and more subtle, though, is that the service.ranking property is not 
generally used on a global level across all services but amongst services of a 
specific type. So I doubt the general usefulness of sorting the global service 
table by the service.ranking property.

> Show ranking in web console services plugin
> ---
>
> Key: FELIX-4704
> URL: https://issues.apache.org/jira/browse/FELIX-4704
> Project: Felix
>  Issue Type: Improvement
>  Components: Web Console
>Reporter: Alexander Klimetschek
>Assignee: Carsten Ziegeler
>Priority: Minor
> Fix For: webconsole-4.2.6
>
> Attachments: FELIX-4704.patch, screenshot.png
>
>
> The service ranking is an important property of services and one often needs 
> to look for all implementations of a given service and sort them by their 
> ranking - to list them in the order they are used by some other component.
> Thus adding a new column to the services table that can be sorted like the 
> other ones would be really helpful. Filtering down to one service interface 
> is already possible since FELIX-4202 (e.g. {{(objectclass=*.MyService}}).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (FELIX-4734) Web Console RESTful API should wait for asynchonous operations until they complete

2014-12-19 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4734?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14253595#comment-14253595
 ] 

Felix Meschberger commented on FELIX-4734:
--

Please make sure to not cause deadlocks ! We had situations in the past where 
the web console bundle itself was involved in the update and refreshPackage 
operations and when not properly handling this, this may cause a deadlock !

> Web Console RESTful API should wait for asynchonous operations until they 
> complete 
> ---
>
> Key: FELIX-4734
> URL: https://issues.apache.org/jira/browse/FELIX-4734
> Project: Felix
>  Issue Type: Bug
>  Components: Web Console
>Affects Versions: webconsole-4.2.4
>Reporter: Konrad Windszus
> Attachments: FELIX-4734.patch
>
>
> Currently the RESTful API 
> (http://felix.apache.org/documentation/subprojects/apache-felix-web-console/web-console-restful-api.html)
>  adds a delay of 800ms to the response to give the asynchronous operations 
> enough time to complete successfully 
> (https://github.com/apache/felix/blob/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java#L412).
> Instead the according listeners should be used which are notified upon 
> completion of an asynchronous task.
> For {{refresh}} {{FrameworkWiring.refreshBundles}} can be used 
> (http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/wiring/FrameworkWiring.html#refreshBundles%28java.util.Collection,%20org.osgi.framework.FrameworkListener...%29).
>  A similar approach should be used for the other actions like uninstall, 
> install, update, start, stop, ...



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (FELIX-4692) Improve Service access time

2014-12-19 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4692?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14253374#comment-14253374
 ] 

Felix Meschberger commented on FELIX-4692:
--

[~cziegeler] For the reasons stated by [~rickhall] I would not apply the patch 
yet. Looking at the code, it really *is* strange that this patch exhibits such 
a dramatic improvement. I wanted to find out, what actually is going on in the 
indexed capability set which really should have a quick (or almost as quick) 
exit as my patch.

> Improve Service access time
> ---
>
> Key: FELIX-4692
> URL: https://issues.apache.org/jira/browse/FELIX-4692
> Project: Felix
>  Issue Type: Improvement
>  Components: Framework
>Affects Versions: framework-4.4.1
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
> Fix For: framework-4.6.0
>
> Attachments: FELIX-4692.diff
>
>
> Currently the ServiceRegistry takes roughly 1ms to access a single service. 
> In a reasonably large system, this may over time consume considerable time.
> For example in our inhouse system sporting roughly 5000 services with 15'000 
> service accesses during startup, these accesses acount for almost 15 seconds 
> or roughly 25-30% of the total startup time.
> Internally all accesses to services are handled with a Filter even if the 
> service is simply retrieved with the service name without a filter. This 
> causes a considerable overhead.
> A simple improvement is to keep services not only in a global Capabitliy Set 
> accessible through generic filters but also keep such a set for each 
> registered service name.
> The measured improvement of this change is substantial: accessing these 
> 15'000 services now only takes roughly 3 seconds or 0.2 ms per service or 5 
> times faster.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (FELIX-4730) RequestDispatcher's servletPath is wrong for the root servlet

2014-12-12 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4730?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger resolved FELIX-4730.
--
   Resolution: Fixed
Fix Version/s: http-2.4.0

Fixed in Rev. 1644885 by applying using the empty string as the servlet path if 
the alias denotes the root servlet -- this is the same logic as in 
ServletHandlerRequest.getServletPath

> RequestDispatcher's servletPath is wrong for the root servlet
> -
>
> Key: FELIX-4730
> URL: https://issues.apache.org/jira/browse/FELIX-4730
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.3.2
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
> Fix For: http-2.4.0
>
>
> ServletHandler.RequestDispatcherImpl uses the servlet alias unmodified as the 
> servlet path for forwarded requests. In case of the root servlet resgistered 
> with "/", this should actually be converted to the empty string according to 
> the specification of ServletRequest.getServletPath().



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FELIX-4730) RequestDispatcher's servletPath is wrong for the root servlet

2014-12-12 Thread Felix Meschberger (JIRA)
Felix Meschberger created FELIX-4730:


 Summary: RequestDispatcher's servletPath is wrong for the root 
servlet
 Key: FELIX-4730
 URL: https://issues.apache.org/jira/browse/FELIX-4730
 Project: Felix
  Issue Type: Bug
  Components: HTTP Service
Affects Versions: http-2.3.2
Reporter: Felix Meschberger
Assignee: Felix Meschberger


ServletHandler.RequestDispatcherImpl uses the servlet alias unmodified as the 
servlet path for forwarded requests. In case of the root servlet resgistered 
with "/", this should actually be converted to the empty string according to 
the specification of ServletRequest.getServletPath().



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (FELIX-4720) Web Console and Gogo rely on Log history buffer in the Log Service

2014-12-09 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4720?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14240770#comment-14240770
 ] 

Felix Meschberger commented on FELIX-4720:
--

Somehow I have the impression, that yes, the Web Console (or Gogo for that 
matter) should not do what [~pkriens] proposes because its none its/their 
business.

On the other hand, from a practical and problem solving point of view, I agree 
with Peter that these tools should go to some length to help solving problems. 
I think the Web Console and Gogo stand special in the landscape of OSGi bundles 
in that they are tools for application administrators. As such they should do 
the best they can to support those (sometimes) poor guys.

So, yes, lets build a simple circular buffer of log messages in the Web Console 
and Gogo:

  * Create a new administrative log support bundle
  * Inherit the LogServlet from  Web Console core
  * Inherit logging support commands from Gogo Command (Basic class)
  * Dynamic package imports to Web Console and Gogo API (as needed)
  * Can be deployed very early independently of Web Console proper and Gogo to 
start collecting logs
  * Maintains its own log entries which have weak references to the Throwables
  * Gathers the entries in a circular buffer of configurable size

WDYT ?

> Web Console and Gogo rely on Log history buffer in the Log Service
> --
>
> Key: FELIX-4720
> URL: https://issues.apache.org/jira/browse/FELIX-4720
> Project: Felix
>  Issue Type: Bug
>  Components: Gogo Command, Web Console
>Reporter: Peter Kriens
>
> The OSGi Log Reader Service has a command to get the history of the log. 
> However, the specification states that this history can be empty. The Equinox 
> framework is nowadays registering a Log Reader Service that has such an empty 
> history to prevent pinning objects in memory. 
> Using the history this way was always at odds with the specification since 
> the history was only intended to hold the start up events. The primary model 
> of the Log Service is a dispatcher.
> I suggest that the Gogo log command and the Web Console maintain their own 
> history buffer to become independent on this fragile history buffer in the 
> Log Reader service.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (FELIX-4696) Improve native OS version sanitation

2014-11-13 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4696?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger updated FELIX-4696:
-
Attachment: FELIX-4696.patch

Proposed patch taking code from the DefaultMaven2OsgiConverter class of the 
Bundle Maven Plugin.

> Improve native OS version sanitation
> 
>
> Key: FELIX-4696
> URL: https://issues.apache.org/jira/browse/FELIX-4696
> Project: Felix
>  Issue Type: Improvement
>  Components: Framework
>Affects Versions: framework-4.4.1
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
> Fix For: framework-4.6.0
>
> Attachments: FELIX-4696.patch
>
>
> The Native OS version sanitation currently simply tries to parse the native 
> OS version and if failing falls back to 0.0.0.
> I think it would be better to actually properly sanitize the version similar 
> to what the DefaultMaven2OsgiConverter class of the Bundle Maven Plugin does.
> So for example, a FC9 version of "3.14.22-100.fc19.i686.PAE" would then be 
> converted to "3.14.22.100_fc19_i686_PAE" which is much more suited to real 
> world use.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FELIX-4696) Improve native OS version sanitation

2014-11-13 Thread Felix Meschberger (JIRA)
Felix Meschberger created FELIX-4696:


 Summary: Improve native OS version sanitation
 Key: FELIX-4696
 URL: https://issues.apache.org/jira/browse/FELIX-4696
 Project: Felix
  Issue Type: Improvement
  Components: Framework
Affects Versions: framework-4.4.1
Reporter: Felix Meschberger
Assignee: Felix Meschberger
 Fix For: framework-4.6.0


The Native OS version sanitation currently simply tries to parse the native OS 
version and if failing falls back to 0.0.0.

I think it would be better to actually properly sanitize the version similar to 
what the DefaultMaven2OsgiConverter class of the Bundle Maven Plugin does.

So for example, a FC9 version of "3.14.22-100.fc19.i686.PAE" would then be 
converted to "3.14.22.100_fc19_i686_PAE" which is much more suited to real 
world use.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (FELIX-4695) Normalize os.version system property in framework properties

2014-11-13 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4695?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger updated FELIX-4695:
-
Attachment: FELIX-4695-Felix.patch
FELIX-4695-ExtensionManager.patch

Two mutually "exclusive" patches:

One against the Felix class causing the org.osgi.framework.os.version property 
to be a valid Version value string. This would be in line of my reading section 
4.2.2, Launching Propertes, of OSGi Core R6:

bq. The version of the operating system as used in the native code clause. If 
not set, then the framework must provide a default value. If the operating 
system reported version does not fit the standard version syntax (e.g. 
2.4.32-kwt), then the launcher should define this launching property with a 
valid version value.

The other patch is against the ExtensionManager building the native 
capabilities. This would ensure the native capability property is a valid 
version.

Looking at cited section 4.2.2, I would probably prefer the patch against the 
Felix class to ensure the framework properties contain a valid OSGi Version 
string.

WDYT ?

> Normalize os.version system property in framework properties
> 
>
> Key: FELIX-4695
> URL: https://issues.apache.org/jira/browse/FELIX-4695
> Project: Felix
>  Issue Type: Bug
>  Components: Framework
>Affects Versions: framework-4.4.1
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
> Fix For: framework-4.6.0
>
> Attachments: FELIX-4695-ExtensionManager.patch, FELIX-4695-Felix.patch
>
>
> The Felix class currently normalizes the processor name and os name system 
> property before putting it into the framework properties.
> Likewise the os version system property should be normalized as well.
> Symptom of not normalizing the os version is the 
> ExtensionManager.buildNativeCapabilites method failing to create the os 
> version.
> Alternatively, the ExtensionManager.buildNativeCapabilites method could 
> itself normalize the os.version framework property. This would prevent the 
> method from failing and would still allow the R4LibraryClause to match an os 
> version capability (R4LlibraryClause does normalize the os version in the 
> clause of the bundle before matching).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FELIX-4695) Normalize os.version system property in framework properties

2014-11-13 Thread Felix Meschberger (JIRA)
Felix Meschberger created FELIX-4695:


 Summary: Normalize os.version system property in framework 
properties
 Key: FELIX-4695
 URL: https://issues.apache.org/jira/browse/FELIX-4695
 Project: Felix
  Issue Type: Bug
  Components: Framework
Affects Versions: framework-4.4.1
Reporter: Felix Meschberger
Assignee: Felix Meschberger
 Fix For: framework-4.6.0


The Felix class currently normalizes the processor name and os name system 
property before putting it into the framework properties.

Likewise the os version system property should be normalized as well.

Symptom of not normalizing the os version is the 
ExtensionManager.buildNativeCapabilites method failing to create the os version.

Alternatively, the ExtensionManager.buildNativeCapabilites method could itself 
normalize the os.version framework property. This would prevent the method from 
failing and would still allow the R4LibraryClause to match an os version 
capability (R4LlibraryClause does normalize the os version in the clause of the 
bundle before matching).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (FELIX-4692) Improve Service access time

2014-11-12 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4692?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger updated FELIX-4692:
-
Attachment: FELIX-4692.diff

Patch with the proposed change.

> Improve Service access time
> ---
>
> Key: FELIX-4692
> URL: https://issues.apache.org/jira/browse/FELIX-4692
> Project: Felix
>  Issue Type: Improvement
>  Components: Framework
>Affects Versions: framework-4.4.1
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
> Fix For: framework-4.6.0
>
> Attachments: FELIX-4692.diff
>
>
> Currently the ServiceRegistry takes roughly 1ms to access a single service. 
> In a reasonably large system, this may over time consume considerable time.
> For example in our inhouse system sporting roughly 5000 services with 15'000 
> service accesses during startup, these accesses acount for almost 15 seconds 
> or roughly 25-30% of the total startup time.
> Internally all accesses to services are handled with a Filter even if the 
> service is simply retrieved with the service name without a filter. This 
> causes a considerable overhead.
> A simple improvement is to keep services not only in a global Capabitliy Set 
> accessible through generic filters but also keep such a set for each 
> registered service name.
> The measured improvement of this change is substantial: accessing these 
> 15'000 services now only takes roughly 3 seconds or 0.2 ms per service or 5 
> times faster.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FELIX-4692) Improve Service access time

2014-11-12 Thread Felix Meschberger (JIRA)
Felix Meschberger created FELIX-4692:


 Summary: Improve Service access time
 Key: FELIX-4692
 URL: https://issues.apache.org/jira/browse/FELIX-4692
 Project: Felix
  Issue Type: Improvement
  Components: Framework
Affects Versions: framework-4.4.1
Reporter: Felix Meschberger
Assignee: Felix Meschberger
 Fix For: framework-4.6.0


Currently the ServiceRegistry takes roughly 1ms to access a single service. In 
a reasonably large system, this may over time consume considerable time.

For example in our inhouse system sporting roughly 5000 services with 15'000 
service accesses during startup, these accesses acount for almost 15 seconds or 
roughly 25-30% of the total startup time.

Internally all accesses to services are handled with a Filter even if the 
service is simply retrieved with the service name without a filter. This causes 
a considerable overhead.

A simple improvement is to keep services not only in a global Capabitliy Set 
accessible through generic filters but also keep such a set for each registered 
service name.

The measured improvement of this change is substantial: accessing these 15'000 
services now only takes roughly 3 seconds or 0.2 ms per service or 5 times 
faster.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (FELIX-4674) Allow inclusion/exclusion of protocols in SSL connector

2014-10-20 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4674?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger resolved FELIX-4674.
--
   Resolution: Fixed
Fix Version/s: http-2.3.2

Thanks for providing the patch. I have applied it somewhat extended in Rev. 
1633120

The extension is to additionally support the included protocols for 
whitelisting and to add some more explanations to the property descriptions.

> Allow inclusion/exclusion of protocols in SSL connector
> ---
>
> Key: FELIX-4674
> URL: https://issues.apache.org/jira/browse/FELIX-4674
> Project: Felix
>  Issue Type: Improvement
>  Components: HTTP Service
>Affects Versions: http-2.3.0
>Reporter: Dominique Pfister
>Assignee: Felix Meschberger
> Fix For: http-2.3.2
>
> Attachments: patch.txt
>
>
> With the recent security attack discovered called "POODLE" [1], it would be 
> great to make the set of SSL protocols Jetty accepts configurable through 
> OSGI. I suggest to introduce a string array property containing the list of 
> protocols to disable, e.g. [ "SSLv3" ].
> [1] https://zmap.io/sslv3/



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (FELIX-4674) Allow inclusion/exclusion of protocols in SSL connector

2014-10-20 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4674?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger reassigned FELIX-4674:


Assignee: Felix Meschberger

> Allow inclusion/exclusion of protocols in SSL connector
> ---
>
> Key: FELIX-4674
> URL: https://issues.apache.org/jira/browse/FELIX-4674
> Project: Felix
>  Issue Type: Improvement
>  Components: HTTP Service
>Affects Versions: http-2.3.0
>Reporter: Dominique Pfister
>Assignee: Felix Meschberger
> Attachments: patch.txt
>
>
> With the recent security attack discovered called "POODLE" [1], it would be 
> great to make the set of SSL protocols Jetty accepts configurable through 
> OSGI. I suggest to introduce a string array property containing the list of 
> protocols to disable, e.g. [ "SSLv3" ].
> [1] https://zmap.io/sslv3/



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (FELIX-4664) [SSLFilter] Support for pre-3.0 Servlet API

2014-10-06 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4664?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger resolved FELIX-4664.
--
   Resolution: Fixed
Fix Version/s: http-sslfilter-0.2.0
   http-2.3.2
 Assignee: Felix Meschberger

Applied the patch in Rev. 1629609

> [SSLFilter] Support for pre-3.0 Servlet API
> ---
>
> Key: FELIX-4664
> URL: https://issues.apache.org/jira/browse/FELIX-4664
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.3.0, http-sslfilter-0.1.0
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
> Fix For: http-2.3.2, http-sslfilter-0.2.0
>
> Attachments: FELIX-4664.patch
>
>
> The SSL Filter bundle currently inherits the Servlet API dependency from the 
> parent project which sets it to Servlet API 3.0. 
> Actually, the filter itself does not depend at all on Servlet API 3.0 and the 
> dependency should probably be fixed to a reduced version number -- maybe even 
> the lowest version still compiling...
> There is one caveat: unit tests currently use HttpServletResponse.getHeader 
> method which has been introduced with Servlet API 3.0. So the tests need to 
> be tweaked.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (FELIX-4664) [SSLFilter] Support for pre-3.0 Servlet API

2014-10-03 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4664?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger updated FELIX-4664:
-
Attachment: FELIX-4664.patch

Proposed patch.

> [SSLFilter] Support for pre-3.0 Servlet API
> ---
>
> Key: FELIX-4664
> URL: https://issues.apache.org/jira/browse/FELIX-4664
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.3.0, http-sslfilter-0.1.0
>Reporter: Felix Meschberger
> Attachments: FELIX-4664.patch
>
>
> The SSL Filter bundle currently inherits the Servlet API dependency from the 
> parent project which sets it to Servlet API 3.0. 
> Actually, the filter itself does not depend at all on Servlet API 3.0 and the 
> dependency should probably be fixed to a reduced version number -- maybe even 
> the lowest version still compiling...
> There is one caveat: unit tests currently use HttpServletResponse.getHeader 
> method which has been introduced with Servlet API 3.0. So the tests need to 
> be tweaked.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (FELIX-4664) [SSLFilter] Support for pre-3.0 Servlet API

2014-10-03 Thread Felix Meschberger (JIRA)
Felix Meschberger created FELIX-4664:


 Summary: [SSLFilter] Support for pre-3.0 Servlet API
 Key: FELIX-4664
 URL: https://issues.apache.org/jira/browse/FELIX-4664
 Project: Felix
  Issue Type: Bug
  Components: HTTP Service
Affects Versions: http-sslfilter-0.1.0, http-2.3.0
Reporter: Felix Meschberger


The SSL Filter bundle currently inherits the Servlet API dependency from the 
parent project which sets it to Servlet API 3.0. 

Actually, the filter itself does not depend at all on Servlet API 3.0 and the 
dependency should probably be fixed to a reduced version number -- maybe even 
the lowest version still compiling...

There is one caveat: unit tests currently use HttpServletResponse.getHeader 
method which has been introduced with Servlet API 3.0. So the tests need to be 
tweaked.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (FELIX-4530) [SCR Plugin] Revisit setting the default output to target/classes

2014-06-16 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14032215#comment-14032215
 ] 

Felix Meschberger commented on FELIX-4530:
--

[~cziegeler] It's about a default behaviour of the bundle plugin and how the 
SCR plugin interferes.

I am absolutely in favor of the SCR plugin adding the generated descriptors to 
the project resources. But this is just the manifests not the complete folder 
where they reside in.

If the only way to add the desciptors is to add the complete descriptor target 
folder, then using target/classes is not a good idea because then you loose all 
the fine tuning that the bundle plugin and bnd offer.

And maybe, it is the Sling tooling which should be more intelligent ?

> [SCR Plugin] Revisit setting the default output to target/classes
> -
>
> Key: FELIX-4530
> URL: https://issues.apache.org/jira/browse/FELIX-4530
> Project: Felix
>  Issue Type: Bug
>  Components: SCR Tooling
>Affects Versions: maven-scr-plugin 1.17.0
>Reporter: Felix Meschberger
>Priority: Critical
> Fix For: maven-scr-plugin 1.17.2
>
>
> With FELIX-4241 the default value for the descriptor output files has been 
> set to {{target/classes}}. Unfortunately this causes {{target/classes}} to be 
> added to the Maven Input Resources resulting in all contents of 
> {{target/classes}} to be included in the final bundle regardless of whether 
> this is actually desired or not.
> Regardless of tooling integration noted in FELIX-4241, it is against the 
> spirit of the bundle plugin to blindly include everything in 
> {{target/classes}} in the bundle. So the resolution for FELIX-4241 must be 
> revisited.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (FELIX-4530) [SCR Plugin] Revisit setting the default output to target/classes

2014-06-11 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4530?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger updated FELIX-4530:
-

Fix Version/s: maven-scr-plugin 1.17.2

> [SCR Plugin] Revisit setting the default output to target/classes
> -
>
> Key: FELIX-4530
> URL: https://issues.apache.org/jira/browse/FELIX-4530
> Project: Felix
>  Issue Type: Bug
>  Components: SCR Tooling
>Affects Versions: maven-scr-plugin 1.17.0
>Reporter: Felix Meschberger
>Priority: Critical
> Fix For: maven-scr-plugin 1.17.2
>
>
> With FELIX-4241 the default value for the descriptor output files has been 
> set to {{target/classes}}. Unfortunately this causes {{target/classes}} to be 
> added to the Maven Input Resources resulting in all contents of 
> {{target/classes}} to be included in the final bundle regardless of whether 
> this is actually desired or not.
> Regardless of tooling integration noted in FELIX-4241, it is against the 
> spirit of the bundle plugin to blindly include everything in 
> {{target/classes}} in the bundle. So the resolution for FELIX-4241 must be 
> revisited.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (FELIX-4530) [SCR Plugin] Revisit setting the default output to target/classes

2014-06-11 Thread Felix Meschberger (JIRA)
Felix Meschberger created FELIX-4530:


 Summary: [SCR Plugin] Revisit setting the default output to 
target/classes
 Key: FELIX-4530
 URL: https://issues.apache.org/jira/browse/FELIX-4530
 Project: Felix
  Issue Type: Bug
  Components: SCR Tooling
Affects Versions: maven-scr-plugin 1.17.0
Reporter: Felix Meschberger
Priority: Critical


With FELIX-4241 the default value for the descriptor output files has been set 
to {{target/classes}}. Unfortunately this causes {{target/classes}} to be added 
to the Maven Input Resources resulting in all contents of {{target/classes}} to 
be included in the final bundle regardless of whether this is actually desired 
or not.

Regardless of tooling integration noted in FELIX-4241, it is against the spirit 
of the bundle plugin to blindly include everything in {{target/classes}} in the 
bundle. So the resolution for FELIX-4241 must be revisited.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (FELIX-4420) [HTTP SSLFilter] Implement sendRedirect

2014-05-23 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14007629#comment-14007629
 ] 

Felix Meschberger commented on FELIX-4420:
--

[~jajans] +1

Except that I would make "Constants" a final class and rename it to 
SSLFilterConstants (there are so many Constants classes and interfaces flying 
around that it is hard to disambiguate them).

Thanks.

> [HTTP SSLFilter] Implement sendRedirect
> ---
>
> Key: FELIX-4420
> URL: https://issues.apache.org/jira/browse/FELIX-4420
> Project: Felix
>  Issue Type: Improvement
>  Components: HTTP Service
>Affects Versions: http-2.2.1, http-2.2.2
>Reporter: Felix Meschberger
>Assignee: J.W. Janssen
> Fix For: http-2.3.0, http-sslfilter-1.0.0
>
> Attachments: FELIX-4420.patch
>
>
> The HTTP SSL Filter service implemented in FELIX-3693 supports revealing the 
> actual protocol used by the client side browser by inspecting a request 
> header and exposing the proper scheme through its ServletRequest.getScheme() 
> implementation if the actual server is operated behind an SSL terminating 
> proxy (i.e. client connects with HTTPS to proxy, proxy forwards request to 
> server over plain HTTP)
> The HttpServletRequest.sendRedirect() method is declared to set the Location 
> header to the absolute redirect URL which includes the scheme. In an SSL 
> terminating proxy situation, the servlet container does not know about this 
> fact and hence uses the actual server scheme (HTTP) for the redirect instead 
> of the scheme used by client.
> To fix this situation the SSL filter response should implement the 
> HttpServletResponse.sendRedirect() method to use use the client side scheme 
> as extracted from the request instead of the actual server request.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (FELIX-4330) [HTTP SSL Filter] Make SSL header(s) configurable

2014-05-03 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4330?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger updated FELIX-4330:
-

Attachment: FELIX-4330-fme2.patch

Updated patch supporting all four listed headers.

> [HTTP SSL Filter] Make SSL header(s) configurable
> -
>
> Key: FELIX-4330
> URL: https://issues.apache.org/jira/browse/FELIX-4330
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.2.1
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
> Attachments: FELIX-4330-fme.patch, FELIX-4330-fme2.patch, 
> FELIX-4330.patch
>
>
> The request header indicating a proxy terminating an HTTPS connection is 
> currently hard coded to be "X-Forwarded-SSL" with the only value supported to 
> be "on" -- based on the assumption of this being the most commonly used 
> header value.
> It looks that Amazon's Elastice Load Balancer uses a different header and 
> value: X-Forwarded-Proto whose value is the actual protocol by which the 
> client talks to the load balancer. The filter should kick in if the protocol 
> is https (or maybe if it is just not the same as the one which the servlet 
> container reports).
> [1] 
> http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/TerminologyandKeyConcepts.html#x-forwarded-proto



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (FELIX-4330) [HTTP SSL Filter] Make SSL header(s) configurable

2014-05-03 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4330?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13988796#comment-13988796
 ] 

Felix Meschberger commented on FELIX-4330:
--

This really *is* a mess: I found mentions of four headers:

* {{X-Forwarded-SSL: on}} – the currently hard coded default value
* {{X-Forwarded-Proto: https}} – [Amazon ELBs hard coded 
header|http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/TerminologyandKeyConcepts.html#x-forwarded-proto]
 and in an Nginx Wiki page on 
[SSL-Offload|http://wiki.nginx.org/SSL-Offloader]. Also listed on Wikipedia's 
[List of HTTP header 
fields|http://en.wikipedia.org/wiki/List_of_HTTP_header_fields] as a quasi 
standard.
* {{X-Forwarded-Protocol: https}} – Alternative to X-Forwarded-Proto
* {{Front-End-Https: on}} – Microsoft header, see [Helping to Secure 
Communication: Client to Front-End 
Server|http://technet.microsoft.com/en-us/library/aa997519%28v=exchg.65%29.aspx].
 Also listed on Wikipedia's [List of HTTP header 
fields|http://en.wikipedia.org/wiki/List_of_HTTP_header_fields]

I fear we have to provide support for all.

> [HTTP SSL Filter] Make SSL header(s) configurable
> -
>
> Key: FELIX-4330
> URL: https://issues.apache.org/jira/browse/FELIX-4330
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.2.1
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
> Attachments: FELIX-4330-fme.patch, FELIX-4330.patch
>
>
> The request header indicating a proxy terminating an HTTPS connection is 
> currently hard coded to be "X-Forwarded-SSL" with the only value supported to 
> be "on" -- based on the assumption of this being the most commonly used 
> header value.
> It looks that Amazon's Elastice Load Balancer uses a different header and 
> value: X-Forwarded-Proto whose value is the actual protocol by which the 
> client talks to the load balancer. The filter should kick in if the protocol 
> is https (or maybe if it is just not the same as the one which the servlet 
> container reports).
> [1] 
> http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/TerminologyandKeyConcepts.html#x-forwarded-proto



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (FELIX-4330) [HTTP SSL Filter] Make SSL header(s) configurable

2014-05-01 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4330?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger updated FELIX-4330:
-

Attachment: FELIX-4330-fme.patch

Proposing a slightly more complicated version which allows configuration of the 
header value and property.

WDYT ?

> [HTTP SSL Filter] Make SSL header(s) configurable
> -
>
> Key: FELIX-4330
> URL: https://issues.apache.org/jira/browse/FELIX-4330
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.2.1
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
> Attachments: FELIX-4330-fme.patch, FELIX-4330.patch
>
>
> The request header indicating a proxy terminating an HTTPS connection is 
> currently hard coded to be "X-Forwarded-SSL" with the only value supported to 
> be "on" -- based on the assumption of this being the most commonly used 
> header value.
> It looks that Amazon's Elastice Load Balancer uses a different header and 
> value: X-Forwarded-Proto whose value is the actual protocol by which the 
> client talks to the load balancer. The filter should kick in if the protocol 
> is https (or maybe if it is just not the same as the one which the servlet 
> container reports).
> [1] 
> http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/TerminologyandKeyConcepts.html#x-forwarded-proto



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (FELIX-4489) [Jetty] Ignore empty (string) entries in configuration arrays

2014-04-16 Thread Felix Meschberger (JIRA)
Felix Meschberger created FELIX-4489:


 Summary: [Jetty] Ignore empty (string) entries in configuration 
arrays
 Key: FELIX-4489
 URL: https://issues.apache.org/jira/browse/FELIX-4489
 Project: Felix
  Issue Type: Bug
  Components: HTTP Service
Affects Versions: http-2.2.2
Reporter: Felix Meschberger
Assignee: Felix Meschberger


When configuring the Jetty Service through the Web Console, the enabled and 
disabled cipher suites properties might become single-entry lists of empty 
strings. For cipher suite enablement this essentially means that no suites are 
actually enabled at all.

When configuring the cipher suites such empty entries should in fact be removed 
from the list and if the list becomes empty, no explicit configuration should 
be used.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (FELIX-4473) [Jetty] Add support for Jetty Connector injection

2014-03-31 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4473?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13955717#comment-13955717
 ] 

Felix Meschberger commented on FELIX-4473:
--

bq. there's an unused variable ({{connectors}})

That is a transient variable which turns out to not be needed. Would remove 
before committing. Thanks for spotting.

bq. the default HTTP and/or HTTPS connectors are installed by default

Actually plain HTTP is enabled by default while HTTPS is disabled by default. 
Even if you configure HTTPS it is only enabled if the 
{{org.apache.felix.https.enable}} is set to true (or yes) and the HTTPS port is 
defined (which it is by default).

So I think we are probably fine since, also if you configure the embedded HTTPS 
connector you still have to explicitly disable the plain HTTP connector if you 
don't want it.

One additional thing, though: Currently the Jetty server is stopped (aka not 
started) if neither HTTP nor HTTPS connector are (or can be) started. With the 
{{ConnectorFactory}} we should keep the Jetty server running since a 
{{ConnectorFactory}} service can come at any time. Alternatively starting the 
Jetty server could be delayed until a {{ConnectorFactory}} service becomes 
available (or default HTTP or HTTPS are configured).

> [Jetty] Add support for Jetty Connector injection
> -
>
> Key: FELIX-4473
> URL: https://issues.apache.org/jira/browse/FELIX-4473
> Project: Felix
>  Issue Type: Task
>  Components: HTTP Service
>Affects Versions: http-2.2.2
>Reporter: Felix Meschberger
> Attachments: FELIX-4473.patch
>
>
> As discussed on the list [1] a ConnectorFactory service is to be defined 
> which allows the injection of Jetty Connector objects into the running Jetty 
> server.
> package org.apache.felix.http.jetty;
> public interface ConnectorFactory {
> Connector createConnector();
> }
> *  createConnector creates a new configured (but not started) Connector 
> instance on each call
> * The Jetty bundle calls createConnector for each Jetty server started (for 
> now this is a single one).
> * The Connector is added to the Jetty server and started
> * When the Jetty server stops, the connector is stopped and discarded along 
> with the Jetty server
> * When the ConnectorFactory is stopped, the Connector has to be stopped and 
> removed from the Jetty server
> [1] http://felix.markmail.org/thread/wvnani5362kq5ynr



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (FELIX-4473) [Jetty] Add support for Jetty Connector injection

2014-03-31 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4473?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger updated FELIX-4473:
-

Attachment: FELIX-4473.patch

Proposed patch with the new ConnectorFactory service API

> [Jetty] Add support for Jetty Connector injection
> -
>
> Key: FELIX-4473
> URL: https://issues.apache.org/jira/browse/FELIX-4473
> Project: Felix
>  Issue Type: Task
>  Components: HTTP Service
>Affects Versions: http-2.2.2
>Reporter: Felix Meschberger
> Attachments: FELIX-4473.patch
>
>
> As discussed on the list [1] a ConnectorFactory service is to be defined 
> which allows the injection of Jetty Connector objects into the running Jetty 
> server.
> package org.apache.felix.http.jetty;
> public interface ConnectorFactory {
> Connector createConnector();
> }
> *  createConnector creates a new configured (but not started) Connector 
> instance on each call
> * The Jetty bundle calls createConnector for each Jetty server started (for 
> now this is a single one).
> * The Connector is added to the Jetty server and started
> * When the Jetty server stops, the connector is stopped and discarded along 
> with the Jetty server
> * When the ConnectorFactory is stopped, the Connector has to be stopped and 
> removed from the Jetty server
> [1] http://felix.markmail.org/thread/wvnani5362kq5ynr



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (FELIX-4473) [Jetty] Add support for Jetty Connector injection

2014-03-31 Thread Felix Meschberger (JIRA)
Felix Meschberger created FELIX-4473:


 Summary: [Jetty] Add support for Jetty Connector injection
 Key: FELIX-4473
 URL: https://issues.apache.org/jira/browse/FELIX-4473
 Project: Felix
  Issue Type: Task
  Components: HTTP Service
Affects Versions: http-2.2.2
Reporter: Felix Meschberger


As discussed on the list [1] a ConnectorFactory service is to be defined which 
allows the injection of Jetty Connector objects into the running Jetty server.

package org.apache.felix.http.jetty;
public interface ConnectorFactory {
Connector createConnector();
}

*  createConnector creates a new configured (but not started) Connector 
instance on each call
* The Jetty bundle calls createConnector for each Jetty server started (for now 
this is a single one).
* The Connector is added to the Jetty server and started
* When the Jetty server stops, the connector is stopped and discarded along 
with the Jetty server
* When the ConnectorFactory is stopped, the Connector has to be stopped and 
removed from the Jetty server

[1] http://felix.markmail.org/thread/wvnani5362kq5ynr



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Comment Edited] (FELIX-4460) Bad HTTPS settings render Jetty inaccessible

2014-03-20 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4460?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13942271#comment-13942271
 ] 

Felix Meschberger edited comment on FELIX-4460 at 3/20/14 9:05 PM:
---

Fixed in Rev. 1579733 & 1579739:

* Start connectors individually after the server start
* Stop the server if no connector can be started


was (Author: fmeschbe):
Fixed in Rev. 1579733:

* Start connectors individually after the server start
* Stop the server if no connector can be started

> Bad HTTPS settings render Jetty inaccessible
> 
>
> Key: FELIX-4460
> URL: https://issues.apache.org/jira/browse/FELIX-4460
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.2.2
>Reporter: Dominique Pfister
>Assignee: Felix Meschberger
> Fix For: http-2.3.0
>
> Attachments: patch.txt
>
>
> Entering some bad values for the HTTPS configuration prevents the complete 
> Jetty server startup. This looks like a regression of upgrading Jetty to 
> version 7. 
> The current implementation initializes all enabled connectors, adds them to 
> the server and then starts the server which in turn starts all connectors. If 
> one of them fails to start, the complete server startup fails and the Jetty 
> Bridge is no longer accessible via HTTP.
> I suggest to initialize an additional HTTPS connector only after having 
> started the server, so at least HTTP stays available if enabled.
>  



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Resolved] (FELIX-4460) Bad HTTPS settings render Jetty inaccessible

2014-03-20 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4460?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger resolved FELIX-4460.
--

   Resolution: Fixed
Fix Version/s: http-2.3.0

Fixed in Rev. 1579733:

* Start connectors individually after the server start
* Stop the server if no connector can be started

> Bad HTTPS settings render Jetty inaccessible
> 
>
> Key: FELIX-4460
> URL: https://issues.apache.org/jira/browse/FELIX-4460
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.2.2
>Reporter: Dominique Pfister
>Assignee: Felix Meschberger
> Fix For: http-2.3.0
>
> Attachments: patch.txt
>
>
> Entering some bad values for the HTTPS configuration prevents the complete 
> Jetty server startup. This looks like a regression of upgrading Jetty to 
> version 7. 
> The current implementation initializes all enabled connectors, adds them to 
> the server and then starts the server which in turn starts all connectors. If 
> one of them fails to start, the complete server startup fails and the Jetty 
> Bridge is no longer accessible via HTTP.
> I suggest to initialize an additional HTTPS connector only after having 
> started the server, so at least HTTP stays available if enabled.
>  



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (FELIX-4460) Bad HTTPS settings render Jetty inaccessible

2014-03-20 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4460?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13942243#comment-13942243
 ] 

Felix Meschberger commented on FELIX-4460:
--

Thanks for providing the patch. I actually took a different route: The server 
will be started at first and then the connectors will be started one after the 
other. Any connector not being able to start will prevent the other connector 
from starting. If neither connector can be started, the Jetty server itself is 
stopped again.

> Bad HTTPS settings render Jetty inaccessible
> 
>
> Key: FELIX-4460
> URL: https://issues.apache.org/jira/browse/FELIX-4460
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.2.2
>Reporter: Dominique Pfister
>Assignee: Felix Meschberger
> Attachments: patch.txt
>
>
> Entering some bad values for the HTTPS configuration prevents the complete 
> Jetty server startup. This looks like a regression of upgrading Jetty to 
> version 7. 
> The current implementation initializes all enabled connectors, adds them to 
> the server and then starts the server which in turn starts all connectors. If 
> one of them fails to start, the complete server startup fails and the Jetty 
> Bridge is no longer accessible via HTTP.
> I suggest to initialize an additional HTTPS connector only after having 
> started the server, so at least HTTP stays available if enabled.
>  



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Assigned] (FELIX-4460) Bad HTTPS settings render Jetty inaccessible

2014-03-20 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4460?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger reassigned FELIX-4460:


Assignee: Felix Meschberger

> Bad HTTPS settings render Jetty inaccessible
> 
>
> Key: FELIX-4460
> URL: https://issues.apache.org/jira/browse/FELIX-4460
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.2.2
>Reporter: Dominique Pfister
>Assignee: Felix Meschberger
> Attachments: patch.txt
>
>
> Entering some bad values for the HTTPS configuration prevents the complete 
> Jetty server startup. This looks like a regression of upgrading Jetty to 
> version 7. 
> The current implementation initializes all enabled connectors, adds them to 
> the server and then starts the server which in turn starts all connectors. If 
> one of them fails to start, the complete server startup fails and the Jetty 
> Bridge is no longer accessible via HTTP.
> I suggest to initialize an additional HTTPS connector only after having 
> started the server, so at least HTTP stays available if enabled.
>  



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (FELIX-4446) Optionally enhance event admin to add a timestamp and the authenticated subject before dispatching events

2014-03-06 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4446?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13922555#comment-13922555
 ] 

Felix Meschberger commented on FELIX-4446:
--

[~gnt] A right. Thanks. My typing was faster than my waiting, or so ...

I am still reluctant, though, but then it does not hurt, either.

> Optionally enhance event admin to add a timestamp and the authenticated 
> subject before dispatching events
> -
>
> Key: FELIX-4446
> URL: https://issues.apache.org/jira/browse/FELIX-4446
> Project: Felix
>  Issue Type: New Feature
>  Components: Event Admin
>Reporter: Guillaume Nodet
>Assignee: Guillaume Nodet
>
> EventAdmin is great because various bundles do send events, so it's really 
> nice for an audit trail of what happened.
> However, in order for the audit trail to be useful, it's missing a few 
> properties such as the timestamp and the user performing the action.
> It would be nice if event admin add those automatically to avoid modifying 
> various projects to add those properties.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (FELIX-4446) Optionally enhance event admin to add a timestamp and the authenticated subject before dispatching events

2014-03-06 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4446?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13922539#comment-13922539
 ] 

Felix Meschberger commented on FELIX-4446:
--

Upfront, this sounds interesting, but then: You would probably have to create a 
variant of the EventProperties class which sets the TIMESTAMP and source 
properties in the constructor unless the TIMESTAMP and source properties are 
not set yet.

Also: what is the "user performing the action" ?

So, I am a bit reluctant to such an extension to the spec behaviour.

> Optionally enhance event admin to add a timestamp and the authenticated 
> subject before dispatching events
> -
>
> Key: FELIX-4446
> URL: https://issues.apache.org/jira/browse/FELIX-4446
> Project: Felix
>  Issue Type: New Feature
>  Components: Event Admin
>Reporter: Guillaume Nodet
>Assignee: Guillaume Nodet
>
> EventAdmin is great because various bundles do send events, so it's really 
> nice for an audit trail of what happened.
> However, in order for the audit trail to be useful, it's missing a few 
> properties such as the timestamp and the user performing the action.
> It would be nice if event admin add those automatically to avoid modifying 
> various projects to add those properties.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (FELIX-4439) ConfigurationAdmin should send events through the EventAdmin

2014-02-27 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4439?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13914412#comment-13914412
 ] 

Felix Meschberger commented on FELIX-4439:
--

Are you aware of the Event Admin bridge for Configuration Admin  at 
https://svn.apache.org/repos/asf/felix/trunk/eventadmin/bridge.configuration ?

I think having the bridge is more elegant. Apart from the patch probably 
breaking Configuration Admin if the Event Admin API is not present; i.e. cannot 
be wired.

> ConfigurationAdmin should send events through the EventAdmin
> 
>
> Key: FELIX-4439
> URL: https://issues.apache.org/jira/browse/FELIX-4439
> Project: Felix
>  Issue Type: New Feature
>  Components: Configuration Admin
>Affects Versions: configadmin-1.6.0, configadmin-1.8.0
>Reporter: Marc de Jonge
>  Labels: feature
> Attachments: FELIX-4439.patch
>
>   Original Estimate: 96h
>  Remaining Estimate: 96h
>
> According to the OSGi compendium specifications 4.3.0, section 104.8.1 (page 
> 88), the ConfigurationAdmin should send events through the EventAdmin when it 
> is available.
> Copy of the text:
> Configuration events must be delivered asynchronously by the Configuration 
> Admin implementation, if present. The topic of a configuration event must be:
> org/osgi/service/cm/ConfigurationEvent/
> The  can be any of the following:
> - CM_DELETED
> - CM_UPDATED
> - CM_LOCATION_CHANGED
> The properties of a configuration event are:
> • cm.factoryPid – (String) The factory PID of the associated Configuration 
> object, if the target is a
> Managed Service Factory. Otherwise not set.
> • cm.pid – (String) The PID of the associated Configuration object.
> • service – (ServiceReference) The Service Reference of the Configuration 
> Admin service.
> • service.id – (Long) The Configuration Admin service's ID.
> • service.objectClass – (String[]) The Configuration Admin service's object 
> class (which must
> include org.osgi.service.cm.ConfigurationAdmin)
> • service.pid – (String) The Configuration Admin service's persistent 
> identity, if set.
> I'd like to use the EventAdmin for this information, because it is guaranteed 
> to have no side effects and to be informative only.
> Now of course I could use the ConfigurationListener for this, but it seems 
> that this has some unwanted side effects. Unbounded configurations now seem 
> to bind to my listenening bundle, while I only want to present some 
> configuration status on a Web UI. There is another bundle to which the 
> configuration should bind, but I use DS to do so. Maybe this is another 
> issue...



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Resolved] (FELIX-4438) [Jetty] Jetty server reports itself as being version 8.y.z-SNAPSHOT

2014-02-26 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4438?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger resolved FELIX-4438.
--

Resolution: Fixed

Fixed in Rev. 1572163

> [Jetty] Jetty server reports itself as being version 8.y.z-SNAPSHOT
> ---
>
> Key: FELIX-4438
> URL: https://issues.apache.org/jira/browse/FELIX-4438
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.2.1
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
> Fix For: http-2.2.2
>
>
> The Jetty server currently announces itself as version "8.y.z-SNAPSHOT" in 
> the ServletContext.getServerInfo() and the Server header.
> The fault seems to be that Jetty's Server class inspects the package 
> implementation name and version and does not find it. It then falls back to 
> the jetty.version system property which is not set. Finally it falls back to 
> said version "8.y.z-SNAPSHOT".
> The fix is to set the jetty.version system property in the 
> JettyService.getJettyVersion method.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Created] (FELIX-4438) [Jetty] Jetty server reports itself as being version 8.y.z-SNAPSHOT

2014-02-26 Thread Felix Meschberger (JIRA)
Felix Meschberger created FELIX-4438:


 Summary: [Jetty] Jetty server reports itself as being version 
8.y.z-SNAPSHOT
 Key: FELIX-4438
 URL: https://issues.apache.org/jira/browse/FELIX-4438
 Project: Felix
  Issue Type: Bug
  Components: HTTP Service
Affects Versions: http-2.2.1
Reporter: Felix Meschberger
Assignee: Felix Meschberger
 Fix For: http-2.2.2


The Jetty server currently announces itself as version "8.y.z-SNAPSHOT" in the 
ServletContext.getServerInfo() and the Server header.

The fault seems to be that Jetty's Server class inspects the package 
implementation name and version and does not find it. It then falls back to the 
jetty.version system property which is not set. Finally it falls back to said 
version "8.y.z-SNAPSHOT".

The fix is to set the jetty.version system property in the 
JettyService.getJettyVersion method.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Resolved] (FELIX-4437) [Inventory] Zip Writer does not pass the correct isZip status to the InventoryPrinterHandler

2014-02-26 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4437?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger resolved FELIX-4437.
--

Resolution: Fixed

Fixed in Rev. 1572113

> [Inventory] Zip Writer does not pass the correct isZip status to the 
> InventoryPrinterHandler
> 
>
> Key: FELIX-4437
> URL: https://issues.apache.org/jira/browse/FELIX-4437
> Project: Felix
>  Issue Type: Bug
>  Components: Inventory
>Affects Versions: inventory-1.0.2
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
> Fix For: inventory-1.0.4
>
>
> The ZipConfigurationWriter calls the InventoryPrinterHandler for the TEXT 
> format (if TEXT is supported) but does not forward that the output goes into 
> the ZIP file.
> This may cause InventoryPrinterHandler to not generate the appropriate 
> output. For example the WebConsole's Thread Dumper will omit the stack traces 
> if the thread dumps do not go to the ZIP file.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Created] (FELIX-4437) [Inventory] Zip Writer does not pass the correct isZip status to the InventoryPrinterHandler

2014-02-26 Thread Felix Meschberger (JIRA)
Felix Meschberger created FELIX-4437:


 Summary: [Inventory] Zip Writer does not pass the correct isZip 
status to the InventoryPrinterHandler
 Key: FELIX-4437
 URL: https://issues.apache.org/jira/browse/FELIX-4437
 Project: Felix
  Issue Type: Bug
  Components: Inventory
Affects Versions: inventory-1.0.2
Reporter: Felix Meschberger
Assignee: Felix Meschberger
 Fix For: inventory-1.0.4


The ZipConfigurationWriter calls the InventoryPrinterHandler for the TEXT 
format (if TEXT is supported) but does not forward that the output goes into 
the ZIP file.

This may cause InventoryPrinterHandler to not generate the appropriate output. 
For example the WebConsole's Thread Dumper will omit the stack traces if the 
thread dumps do not go to the ZIP file.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (FELIX-4430) [PackageAdmin Web Console Plugin] Provide using bundles with versions

2014-02-20 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4430?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger updated FELIX-4430:
-

  Component/s: Web Console
Affects Version/s: webconsole-packageadmin-plugin 1.0.0

> [PackageAdmin Web Console Plugin] Provide using bundles with versions
> -
>
> Key: FELIX-4430
> URL: https://issues.apache.org/jira/browse/FELIX-4430
> Project: Felix
>  Issue Type: Improvement
>  Components: Web Console
>Affects Versions: webconsole-packageadmin-plugin 1.0.0
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
> Fix For: webconsole-packageadmin-plugin 1.0.2
>
>
> The PackageAdmin web console plugin allows for searching of package exporting 
> bundles as well as finding duplicate exports.
> The package search does not expose the using bundles. Sometimes it is 
> interesting to see, which bundle is actually importing an exported package 
> and at what version this package is imported.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Resolved] (FELIX-4430) [PackageAdmin Web Console Plugin] Provide using bundles with versions

2014-02-20 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4430?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger resolved FELIX-4430.
--

   Resolution: Fixed
Fix Version/s: webconsole-packageadmin-plugin 1.0.2
 Assignee: Felix Meschberger

Implemented this feauture in Rev. 1570134: In addition to the exporting bundle 
and its maven coordinates, the list of importing bundles along with the 
versions at which the package is imported is printed.

> [PackageAdmin Web Console Plugin] Provide using bundles with versions
> -
>
> Key: FELIX-4430
> URL: https://issues.apache.org/jira/browse/FELIX-4430
> Project: Felix
>  Issue Type: Improvement
>  Components: Web Console
>Affects Versions: webconsole-packageadmin-plugin 1.0.0
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
> Fix For: webconsole-packageadmin-plugin 1.0.2
>
>
> The PackageAdmin web console plugin allows for searching of package exporting 
> bundles as well as finding duplicate exports.
> The package search does not expose the using bundles. Sometimes it is 
> interesting to see, which bundle is actually importing an exported package 
> and at what version this package is imported.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Created] (FELIX-4430) [PackageAdmin Web Console Plugin] Provide using bundles with versions

2014-02-20 Thread Felix Meschberger (JIRA)
Felix Meschberger created FELIX-4430:


 Summary: [PackageAdmin Web Console Plugin] Provide using bundles 
with versions
 Key: FELIX-4430
 URL: https://issues.apache.org/jira/browse/FELIX-4430
 Project: Felix
  Issue Type: Improvement
Reporter: Felix Meschberger


The PackageAdmin web console plugin allows for searching of package exporting 
bundles as well as finding duplicate exports.

The package search does not expose the using bundles. Sometimes it is 
interesting to see, which bundle is actually importing an exported package and 
at what version this package is imported.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (FELIX-4427) Create separate API bundle

2014-02-18 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13904103#comment-13904103
 ] 

Felix Meschberger commented on FELIX-4427:
--

Found out how to actually use the bundle plugin to generate the bundle instead 
of my jar file with static manifest hack:  The exported packages have to be 
fully listed and then the bundle plugin is actually able to export the same 
packages twice with different versions.

Fixed in Rev. 1569365

> Create separate API bundle
> --
>
> Key: FELIX-4427
> URL: https://issues.apache.org/jira/browse/FELIX-4427
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.2.1
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
>
> Currently the Servlet API is exported from the Http Service Bundle bundle and 
> the Jetty bundle.
> In a typical web application a large number of bundles will typically wire to 
> the Servlet API and to the Http Service API. To detach the application from 
> the Http Service implementation, if would be usefull to have the APIs fully 
> detached from the implementations.
> As such, I suggest we do not export the Servlet API from the Jetty bundle but 
> expect the Servlet API to be exported from somewhere else.
> As the Http Service Bundle bundle is a convenience all-in-one bundle, it does 
> not hurt for this bundle to export the API.
> To help solve the versioning problem, I actually think we should create our 
> own Servlet API bundle. The versioning problem is that the Servlet API 3.0 
> spec is actually backwards compatible with Servlet 2.5 but chose to upgrade 
> the specification major version. Unfortunately that does not play well with 
> semantic versioning when applying the specification version to the API 
> exports (as is customarily but wrongly done).
> So, our bundle should:
> - be based on the Tomcat Servlet API library (since this is ASL2 licensed and 
> can easily be included)
> - export Servlet API at version 2.6 (which is a custom compromise) as well as 
> version 3.0
> - also Provide-Capability for the Servlet API capability



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (FELIX-4427) Create separate API bundle

2014-02-18 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13903980#comment-13903980
 ] 

Felix Meschberger commented on FELIX-4427:
--

[~jajans] Yes, I could not get the bundle plugin to export the same package 
twice with different versions. If you know how to do it ...

Also have to also import the OSGi Http Service API in the API bundle to make it 
more lenient to 3rd party providers of the OSGi service API (as is the case in 
the integration tests which happen to install the compendium bundle). Fix in 
Rev. 1569288.

> Create separate API bundle
> --
>
> Key: FELIX-4427
> URL: https://issues.apache.org/jira/browse/FELIX-4427
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.2.1
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
>
> Currently the Servlet API is exported from the Http Service Bundle bundle and 
> the Jetty bundle.
> In a typical web application a large number of bundles will typically wire to 
> the Servlet API and to the Http Service API. To detach the application from 
> the Http Service implementation, if would be usefull to have the APIs fully 
> detached from the implementations.
> As such, I suggest we do not export the Servlet API from the Jetty bundle but 
> expect the Servlet API to be exported from somewhere else.
> As the Http Service Bundle bundle is a convenience all-in-one bundle, it does 
> not hurt for this bundle to export the API.
> To help solve the versioning problem, I actually think we should create our 
> own Servlet API bundle. The versioning problem is that the Servlet API 3.0 
> spec is actually backwards compatible with Servlet 2.5 but chose to upgrade 
> the specification major version. Unfortunately that does not play well with 
> semantic versioning when applying the specification version to the API 
> exports (as is customarily but wrongly done).
> So, our bundle should:
> - be based on the Tomcat Servlet API library (since this is ASL2 licensed and 
> can easily be included)
> - export Servlet API at version 2.6 (which is a custom compromise) as well as 
> version 3.0
> - also Provide-Capability for the Servlet API capability



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (FELIX-4427) Create separate API bundle

2014-02-18 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13903974#comment-13903974
 ] 

Felix Meschberger commented on FELIX-4427:
--

Fix Servlet API export bundle in Rev. 1569272 (bundle version was corrupt and 
local strings were missing) and added the API bundles in the integration tests 
in Rev. 1569274.

> Create separate API bundle
> --
>
> Key: FELIX-4427
> URL: https://issues.apache.org/jira/browse/FELIX-4427
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.2.1
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
>
> Currently the Servlet API is exported from the Http Service Bundle bundle and 
> the Jetty bundle.
> In a typical web application a large number of bundles will typically wire to 
> the Servlet API and to the Http Service API. To detach the application from 
> the Http Service implementation, if would be usefull to have the APIs fully 
> detached from the implementations.
> As such, I suggest we do not export the Servlet API from the Jetty bundle but 
> expect the Servlet API to be exported from somewhere else.
> As the Http Service Bundle bundle is a convenience all-in-one bundle, it does 
> not hurt for this bundle to export the API.
> To help solve the versioning problem, I actually think we should create our 
> own Servlet API bundle. The versioning problem is that the Servlet API 3.0 
> spec is actually backwards compatible with Servlet 2.5 but chose to upgrade 
> the specification major version. Unfortunately that does not play well with 
> semantic versioning when applying the specification version to the API 
> exports (as is customarily but wrongly done).
> So, our bundle should:
> - be based on the Tomcat Servlet API library (since this is ASL2 licensed and 
> can easily be included)
> - export Servlet API at version 2.6 (which is a custom compromise) as well as 
> version 3.0
> - also Provide-Capability for the Servlet API capability



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (FELIX-4427) Create separate API bundle

2014-02-18 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13903945#comment-13903945
 ] 

Felix Meschberger commented on FELIX-4427:
--

Fixed the exports in Rev. 1569268:

* Removed Http Service, ext Http Service and Servlet API exports from Jetty 
bundle
* Added OSGi Http Service export to API bundle
* API bundle depends on Servlet API 2.3 which was the first to provide Filter 
and imports servlet API at [2.3,4) to support all servlet API which we 
currently assume compatible.

> Create separate API bundle
> --
>
> Key: FELIX-4427
> URL: https://issues.apache.org/jira/browse/FELIX-4427
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.2.1
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
>
> Currently the Servlet API is exported from the Http Service Bundle bundle and 
> the Jetty bundle.
> In a typical web application a large number of bundles will typically wire to 
> the Servlet API and to the Http Service API. To detach the application from 
> the Http Service implementation, if would be usefull to have the APIs fully 
> detached from the implementations.
> As such, I suggest we do not export the Servlet API from the Jetty bundle but 
> expect the Servlet API to be exported from somewhere else.
> As the Http Service Bundle bundle is a convenience all-in-one bundle, it does 
> not hurt for this bundle to export the API.
> To help solve the versioning problem, I actually think we should create our 
> own Servlet API bundle. The versioning problem is that the Servlet API 3.0 
> spec is actually backwards compatible with Servlet 2.5 but chose to upgrade 
> the specification major version. Unfortunately that does not play well with 
> semantic versioning when applying the specification version to the API 
> exports (as is customarily but wrongly done).
> So, our bundle should:
> - be based on the Tomcat Servlet API library (since this is ASL2 licensed and 
> can easily be included)
> - export Servlet API at version 2.6 (which is a custom compromise) as well as 
> version 3.0
> - also Provide-Capability for the Servlet API capability



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (FELIX-4427) Create separate API bundle

2014-02-18 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13903942#comment-13903942
 ] 

Felix Meschberger commented on FELIX-4427:
--

Created a first version based on the Tomcat Servlet API 7.0.8 (tomcat 8 is 
already Servlet API 3.1) in Rev. 1569258

Next steps:

* Remove API exports from the Jetty bundle
* Add HTTP Service API export to the Api bundle

> Create separate API bundle
> --
>
> Key: FELIX-4427
> URL: https://issues.apache.org/jira/browse/FELIX-4427
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.2.1
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
>
> Currently the Servlet API is exported from the Http Service Bundle bundle and 
> the Jetty bundle.
> In a typical web application a large number of bundles will typically wire to 
> the Servlet API and to the Http Service API. To detach the application from 
> the Http Service implementation, if would be usefull to have the APIs fully 
> detached from the implementations.
> As such, I suggest we do not export the Servlet API from the Jetty bundle but 
> expect the Servlet API to be exported from somewhere else.
> As the Http Service Bundle bundle is a convenience all-in-one bundle, it does 
> not hurt for this bundle to export the API.
> To help solve the versioning problem, I actually think we should create our 
> own Servlet API bundle. The versioning problem is that the Servlet API 3.0 
> spec is actually backwards compatible with Servlet 2.5 but chose to upgrade 
> the specification major version. Unfortunately that does not play well with 
> semantic versioning when applying the specification version to the API 
> exports (as is customarily but wrongly done).
> So, our bundle should:
> - be based on the Tomcat Servlet API library (since this is ASL2 licensed and 
> can easily be included)
> - export Servlet API at version 2.6 (which is a custom compromise) as well as 
> version 3.0
> - also Provide-Capability for the Servlet API capability



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Assigned] (FELIX-4427) Create separate API bundle

2014-02-18 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4427?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger reassigned FELIX-4427:


Assignee: Felix Meschberger

> Create separate API bundle
> --
>
> Key: FELIX-4427
> URL: https://issues.apache.org/jira/browse/FELIX-4427
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.2.1
>Reporter: Felix Meschberger
>Assignee: Felix Meschberger
>
> Currently the Servlet API is exported from the Http Service Bundle bundle and 
> the Jetty bundle.
> In a typical web application a large number of bundles will typically wire to 
> the Servlet API and to the Http Service API. To detach the application from 
> the Http Service implementation, if would be usefull to have the APIs fully 
> detached from the implementations.
> As such, I suggest we do not export the Servlet API from the Jetty bundle but 
> expect the Servlet API to be exported from somewhere else.
> As the Http Service Bundle bundle is a convenience all-in-one bundle, it does 
> not hurt for this bundle to export the API.
> To help solve the versioning problem, I actually think we should create our 
> own Servlet API bundle. The versioning problem is that the Servlet API 3.0 
> spec is actually backwards compatible with Servlet 2.5 but chose to upgrade 
> the specification major version. Unfortunately that does not play well with 
> semantic versioning when applying the specification version to the API 
> exports (as is customarily but wrongly done).
> So, our bundle should:
> - be based on the Tomcat Servlet API library (since this is ASL2 licensed and 
> can easily be included)
> - export Servlet API at version 2.6 (which is a custom compromise) as well as 
> version 3.0
> - also Provide-Capability for the Servlet API capability



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (FELIX-4427) Create separate API bundle

2014-02-17 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4427?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger updated FELIX-4427:
-

Description: 
Currently the Servlet API is exported from the Http Service Bundle bundle and 
the Jetty bundle.

In a typical web application a large number of bundles will typically wire to 
the Servlet API and to the Http Service API. To detach the application from the 
Http Service implementation, if would be usefull to have the APIs fully 
detached from the implementations.

As such, I suggest we do not export the Servlet API from the Jetty bundle but 
expect the Servlet API to be exported from somewhere else.

As the Http Service Bundle bundle is a convenience all-in-one bundle, it does 
not hurt for this bundle to export the API.

To help solve the versioning problem, I actually think we should create our own 
Servlet API bundle. The versioning problem is that the Servlet API 3.0 spec is 
actually backwards compatible with Servlet 2.5 but chose to upgrade the 
specification major version. Unfortunately that does not play well with 
semantic versioning when applying the specification version to the API exports 
(as is customarily but wrongly done).

So, our bundle should:
- be based on the Tomcat Servlet API library (since this is ASL2 licensed and 
can easily be included)
- export Servlet API at version 2.6 (which is a custom compromise) as well as 
version 3.0
- also Provide-Capability for the Servlet API capability

  was:
Currently the Servlet API is exported from the Http Service Bundle bundle and 
the Jetty bundle.

In a typical web application a large number of bundles will typically wire to 
the Servlet API and to the Http Service API. To detach the application from the 
Http Service implementation, if would be usefull to have the APIs fully 
detached from the implementations.

As such, I suggest we do not export the Servlet API from the Jetty bundle but 
expect the Servlet API to be exported from somewhere else.

As the Http Service Bundle bundle is a convenience all-in-one bundle, it does 
not hurt for this bundle to export the API.


> Create separate API bundle
> --
>
> Key: FELIX-4427
> URL: https://issues.apache.org/jira/browse/FELIX-4427
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.2.1
>Reporter: Felix Meschberger
>
> Currently the Servlet API is exported from the Http Service Bundle bundle and 
> the Jetty bundle.
> In a typical web application a large number of bundles will typically wire to 
> the Servlet API and to the Http Service API. To detach the application from 
> the Http Service implementation, if would be usefull to have the APIs fully 
> detached from the implementations.
> As such, I suggest we do not export the Servlet API from the Jetty bundle but 
> expect the Servlet API to be exported from somewhere else.
> As the Http Service Bundle bundle is a convenience all-in-one bundle, it does 
> not hurt for this bundle to export the API.
> To help solve the versioning problem, I actually think we should create our 
> own Servlet API bundle. The versioning problem is that the Servlet API 3.0 
> spec is actually backwards compatible with Servlet 2.5 but chose to upgrade 
> the specification major version. Unfortunately that does not play well with 
> semantic versioning when applying the specification version to the API 
> exports (as is customarily but wrongly done).
> So, our bundle should:
> - be based on the Tomcat Servlet API library (since this is ASL2 licensed and 
> can easily be included)
> - export Servlet API at version 2.6 (which is a custom compromise) as well as 
> version 3.0
> - also Provide-Capability for the Servlet API capability



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Created] (FELIX-4427) Create separate API bundle

2014-02-17 Thread Felix Meschberger (JIRA)
Felix Meschberger created FELIX-4427:


 Summary: Create separate API bundle
 Key: FELIX-4427
 URL: https://issues.apache.org/jira/browse/FELIX-4427
 Project: Felix
  Issue Type: Bug
  Components: HTTP Service
Affects Versions: http-2.2.1
Reporter: Felix Meschberger


Currently the Servlet API is exported from the Http Service Bundle bundle and 
the Jetty bundle.

In a typical web application a large number of bundles will typically wire to 
the Servlet API and to the Http Service API. To detach the application from the 
Http Service implementation, if would be usefull to have the APIs fully 
detached from the implementations.

As such, I suggest we do not export the Servlet API from the Jetty bundle but 
expect the Servlet API to be exported from somewhere else.

As the Http Service Bundle bundle is a convenience all-in-one bundle, it does 
not hurt for this bundle to export the API.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (FELIX-3988) FilterHandler does not handle return of context.handleSecurity() correctly

2014-02-13 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-3988?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13900203#comment-13900203
 ] 

Felix Meschberger commented on FELIX-3988:
--

Oh, you are right ! each filter is registered with an HttpContext and the 
handleSecurity of each of these context's is called.

I have the impression, this is not how it should be. In fact, this raises a 
very interesting question: Should only filters be called for a servlet where 
all HttpContexts are the same ? Not going into this one here.

So, ok, lets keep it as you proposed and reconsider later if needed.

Thanks.

> FilterHandler does not handle return of context.handleSecurity() correctly
> --
>
> Key: FELIX-3988
> URL: https://issues.apache.org/jira/browse/FELIX-3988
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.2.0
>Reporter: Kaspar von Gunten
>Assignee: J.W. Janssen
> Attachments: FilterHandler.patch
>
>
> This is somewhat similar to FELIX-2768, but not resolved.
> The JavaDoc for HttpContext.handleSecurity states: 
> * When this method returns false, the Http Service will send the response 
> back to the client, thereby
> * completing the request. When this method returns true, the Http Service 
> will proceed with servicing the 
> * request.
> The current FilterHandler impl is as follows:
> if (!getContext().handleSecurity(req, res)) {
>   res.sendError(HttpServletResponse.SC_FORBIDDEN);
> } else {
>   this.filter.doFilter(req, res, chain);
> }
> 1) This does not comply to the above doc, because the context might have set 
> a status/error code and prepared everything correctly to be returned. Sending 
> an error will overwrite the prepared headers and status.
> 2) Some context implementations are a bit eager and already send the response 
> back before they return "false" from the above method. The current 
> implementation will then lead to an IllegalStateException, because the 
> response has already been committed. In order to be more robust, there should 
> be a if(!res.isCommitted())-block around the handling of the "false" return 
> value.
> I attached a patch for the second aspect of the issue, but couldn't resolve 
> the first part, because - as it is at the moment - there seems to be no way 
> to check if there is already a status set on the resource (no getStatus() or 
> isStatusSet() method).
> Ideally the fix should be something like:
> if (!res.isCommitted() && !res.isStatusSet()) {
>   res.sendError(SC_FORBIDDEN);
> }



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (FELIX-3988) FilterHandler does not handle return of context.handleSecurity() correctly

2014-02-13 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-3988?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13900155#comment-13900155
 ] 

Felix Meschberger commented on FELIX-3988:
--

Will the filters be called during handleSecurity at all ? I thought requests 
are processed like this:

1. handleSecurity
2. REQUEST scoped filters
3. Servlet
4. more filters and servlet as per RequestDispatcher

> FilterHandler does not handle return of context.handleSecurity() correctly
> --
>
> Key: FELIX-3988
> URL: https://issues.apache.org/jira/browse/FELIX-3988
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.2.0
>Reporter: Kaspar von Gunten
>Assignee: J.W. Janssen
> Attachments: FilterHandler.patch
>
>
> This is somewhat similar to FELIX-2768, but not resolved.
> The JavaDoc for HttpContext.handleSecurity states: 
> * When this method returns false, the Http Service will send the response 
> back to the client, thereby
> * completing the request. When this method returns true, the Http Service 
> will proceed with servicing the 
> * request.
> The current FilterHandler impl is as follows:
> if (!getContext().handleSecurity(req, res)) {
>   res.sendError(HttpServletResponse.SC_FORBIDDEN);
> } else {
>   this.filter.doFilter(req, res, chain);
> }
> 1) This does not comply to the above doc, because the context might have set 
> a status/error code and prepared everything correctly to be returned. Sending 
> an error will overwrite the prepared headers and status.
> 2) Some context implementations are a bit eager and already send the response 
> back before they return "false" from the above method. The current 
> implementation will then lead to an IllegalStateException, because the 
> response has already been committed. In order to be more robust, there should 
> be a if(!res.isCommitted())-block around the handling of the "false" return 
> value.
> I attached a patch for the second aspect of the issue, but couldn't resolve 
> the first part, because - as it is at the moment - there seems to be no way 
> to check if there is already a status set on the resource (no getStatus() or 
> isStatusSet() method).
> Ideally the fix should be something like:
> if (!res.isCommitted() && !res.isStatusSet()) {
>   res.sendError(SC_FORBIDDEN);
> }



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (FELIX-3988) FilterHandler does not handle return of context.handleSecurity() correctly

2014-02-13 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-3988?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13900134#comment-13900134
 ] 

Felix Meschberger commented on FELIX-3988:
--

I am not really sure, that proposed fix is a good one, since the handleSecurity 
could expressely set SC_OK for any one reason (e.g. sending an HTML form to 
enter credentials) but not commit the response. In this case sending back 
FORBIDDEN is wrong.

Maybe we could setStatus(SC_FORBIDDEN) before calling handleSecurity and if 
that returns false the response is just terminated (committed if needed). 
Otherwise (handleSecurity returns true) setStatus(SC_OK) is called and the 
request continues.

WDYT ?

> FilterHandler does not handle return of context.handleSecurity() correctly
> --
>
> Key: FELIX-3988
> URL: https://issues.apache.org/jira/browse/FELIX-3988
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.2.0
>Reporter: Kaspar von Gunten
>Assignee: J.W. Janssen
> Attachments: FilterHandler.patch
>
>
> This is somewhat similar to FELIX-2768, but not resolved.
> The JavaDoc for HttpContext.handleSecurity states: 
> * When this method returns false, the Http Service will send the response 
> back to the client, thereby
> * completing the request. When this method returns true, the Http Service 
> will proceed with servicing the 
> * request.
> The current FilterHandler impl is as follows:
> if (!getContext().handleSecurity(req, res)) {
>   res.sendError(HttpServletResponse.SC_FORBIDDEN);
> } else {
>   this.filter.doFilter(req, res, chain);
> }
> 1) This does not comply to the above doc, because the context might have set 
> a status/error code and prepared everything correctly to be returned. Sending 
> an error will overwrite the prepared headers and status.
> 2) Some context implementations are a bit eager and already send the response 
> back before they return "false" from the above method. The current 
> implementation will then lead to an IllegalStateException, because the 
> response has already been committed. In order to be more robust, there should 
> be a if(!res.isCommitted())-block around the handling of the "false" return 
> value.
> I attached a patch for the second aspect of the issue, but couldn't resolve 
> the first part, because - as it is at the moment - there seems to be no way 
> to check if there is already a status set on the resource (no getStatus() or 
> isStatusSet() method).
> Ideally the fix should be something like:
> if (!res.isCommitted() && !res.isStatusSet()) {
>   res.sendError(SC_FORBIDDEN);
> }



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Resolved] (FELIX-2871) Transistive Dependencies

2014-02-12 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-2871?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger resolved FELIX-2871.
--

   Resolution: Fixed
Fix Version/s: http-2.2.1
 Assignee: Felix Meschberger

You are right, this seems to have been fixed in the last release already.

> Transistive Dependencies
> 
>
> Key: FELIX-2871
> URL: https://issues.apache.org/jira/browse/FELIX-2871
> Project: Felix
>  Issue Type: Improvement
>  Components: HTTP Service
>Affects Versions: http-2.2.0
> Environment: Win XP
>Reporter: Andrew Holland
>Assignee: Felix Meschberger
>Priority: Minor
> Fix For: http-2.2.1
>
>
> i use both felix org.apache.felix.http.jetty & 
> org.apache.felix.http.whiteboard bundles with my project, it seems that both 
> these bundles export the same packages.
> is it possible that transitive dependencies could be excluded from the built 
> bundles and Import-Package should be used to find required packages. (the 
> base and api bundles)
> As it stands org.apache.felix.http.jetty includes the following embedded 
> dependencies
> javax.servlet
> org.apache.felix.http.api
> org.apache.felix.http.base
> org.mortbay
> org.osgi.service.http
> org.apache.felix.http.whiteboard bundles includes
> org.apache.felix.http.api
> org.apache.felix.http.base
> is it not possible to just use Import-Package and not use the embedded 
> dependencies



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (FELIX-4423) ClassNotFoundException when stopping Jetty bundle

2014-02-12 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4423?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13899065#comment-13899065
 ] 

Felix Meschberger commented on FELIX-4423:
--

Hmm this might be caused by the JettyService.stop() method scheduling the 
server shutdown but not waiting until the Executor service has actually 
executed all scheduled tasks.

Maybe the stop() method should call the awaitTermination() method after 
shutting down the executor to make sure the server has been stopped.

> ClassNotFoundException when stopping Jetty bundle
> -
>
> Key: FELIX-4423
> URL: https://issues.apache.org/jira/browse/FELIX-4423
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.2.2
>Reporter: J.W. Janssen
>Assignee: J.W. Janssen
> Fix For: http-2.3.0
>
>
> I sometimes see a class-not-found exception when stopping the OSGi framework 
> with a running Jetty bundle. It seems that due to the asynchronous nature of 
> this bundle, subtle timing issues can occur during shutdown:
> {code}
> 2014-02-07 17:21:23.312:WARN:oejuc.AbstractLifeCycle:FAILED 
> qtp1827750836{8<=8<=8/254,0}: java.lang.NoClassDefFoundError: 
> org/eclipse/jetty/util/thread/QueuedThreadPool$1
> java.lang.NoClassDefFoundError: 
> org/eclipse/jetty/util/thread/QueuedThreadPool$1
>   at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.doStop(QueuedThreadPool.java:126)
>   at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89)
>   at 
> org.eclipse.jetty.util.component.AggregateLifeCycle.doStop(AggregateLifeCycle.java:107)
>   at 
> org.eclipse.jetty.server.handler.AbstractHandler.doStop(AbstractHandler.java:69)
>   at 
> org.eclipse.jetty.server.handler.HandlerWrapper.doStop(HandlerWrapper.java:108)
>   at org.eclipse.jetty.server.Server.doStop(Server.java:342)
>   at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89)
>   at 
> org.apache.felix.http.jetty.internal.JettyService.stopJetty(JettyService.java:228)
>   at 
> org.apache.felix.http.jetty.internal.JettyService.access$100(JettyService.java:72)
>   at 
> org.apache.felix.http.jetty.internal.JettyService$3.doExecute(JettyService.java:169)
>   at 
> org.apache.felix.http.jetty.internal.JettyService$JettyOperation.call(JettyService.java:792)
>   at 
> org.apache.felix.http.jetty.internal.JettyService$JettyOperation.call(JettyService.java:783)
>   at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>   at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>   at java.lang.Thread.run(Thread.java:744)
> Caused by:
> java.lang.ClassNotFoundException: Unable to load class 
> 'org.eclipse.jetty.util.thread.QueuedThreadPool$1' because the bundle wiring 
> for org.apache.felix.http.jetty is no longer valid.
>   at 
> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1494)
>   at 
> org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)
>   at 
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
>   at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.doStop(QueuedThreadPool.java:126)
>   at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89)
>   at 
> org.eclipse.jetty.util.component.AggregateLifeCycle.doStop(AggregateLifeCycle.java:107)
>   at 
> org.eclipse.jetty.server.handler.AbstractHandler.doStop(AbstractHandler.java:69)
>   at 
> org.eclipse.jetty.server.handler.HandlerWrapper.doStop(HandlerWrapper.java:108)
>   at org.eclipse.jetty.server.Server.doStop(Server.java:342)
>   at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89)
>   at 
> org.apache.felix.http.jetty.internal.JettyService.stopJetty(JettyService.java:228)
>   at 
> org.apache.felix.http.jetty.internal.JettyService.access$100(JettyService.java:72)
>   at 
> org.apache.felix.http.jetty.internal.JettyService$3.doExecute(JettyService.java:169)
>   at 
> org.apache.felix.http.jetty.internal.JettyService$JettyOperation.call(JettyService.java:792)
>   at 
> org.apache.felix.http.jetty.internal.JettyService$JettyOperation.call(JettyService.java:783)
>   at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>   at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>   

[jira] [Commented] (FELIX-4422) Remove asynchronous starting of Jetty service

2014-02-12 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4422?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13899064#comment-13899064
 ] 

Felix Meschberger commented on FELIX-4422:
--

[~jajans] Looks like this asynchronous start up behaviour was introduced with 
the patch for FELIX-4137 to implement web app bundle support.

[~dpfister] Do you remember why you introduced this for web app support ?

> Remove asynchronous starting of Jetty service
> -
>
> Key: FELIX-4422
> URL: https://issues.apache.org/jira/browse/FELIX-4422
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.2.2
>Reporter: J.W. Janssen
> Fix For: http-2.3.0
>
>
> The Jetty bundle currently uses an {{ExecutorService}} to start Jetty in the 
> background. I'm not sure this is actually needed with the recent versions of 
> Jetty. I've did a quick test to start Jetty synchronously in the bundle 
> activator, but could not measure any significant timing differences in 
> startup times.
> A reason to change this is that it makes the start/stop behaviour bundle more 
> deterministic when using it in integration tests.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (FELIX-4424) ClassLoader leak in Http Service ServletContextManager

2014-02-12 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4424?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13898929#comment-13898929
 ] 

Felix Meschberger commented on FELIX-4424:
--

Thanks.

Yes, I agree with the full fix. I would think that we need to track consumers 
of the ServletContexts:

* In the Whiteboard case we can remove the ServletContext once the HttpContext 
service is unregistered
* In the traditional registration case we can probably remove the entry when 
the last Servlet (and Filter in our case) referring to the same HttpContext is 
unregistered from the HttpService.

> ClassLoader leak in Http Service ServletContextManager
> --
>
> Key: FELIX-4424
> URL: https://issues.apache.org/jira/browse/FELIX-4424
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Reporter: Chetan Mehrotra
>Assignee: J.W. Janssen
>
> While analyzing heap dump for classloader leaks using script [1] following 
> possible leak was reported
> {noformat}
>   com.day.crx.packmgr.impl.AuthHttpContext@0x124214d18
>Following are few of the live paths found
>Live path
>   com.day.crx.packmgr.impl.AuthHttpContext@0x124214d18
>   java.util.HashMap$Entry@0x12429db50
>   [Ljava.util.HashMap$Entry;@0x1238f47b0
>   java.util.HashMap@0x1238f4780
>   
> org.apache.felix.http.base.internal.context.ServletContextManager@0x1238f4760 
> [*]
>   
> org.apache.felix.http.base.internal.service.HttpServiceImpl@0x1238f45c0 [*]
>   
> org.apache.felix.framework.ServiceRegistry$UsageCount@0x1238f45a8
>   
> [Lorg.apache.felix.framework.ServiceRegistry$UsageCount;@0x129efb430
>   java.util.HashMap$Entry@0x1235ee950
>   [Ljava.util.HashMap$Entry;@0x1249e2b78
>   java.util.HashMap@0x123484668
>   org.apache.felix.framework.ServiceRegistry@0x12339c108
>   org.apache.felix.framework.ServiceRegistrationImpl@0x126a7a3c8
>   java.util.concurrent.atomic.AtomicReference@0x126a7a3b8
>   
> org.apache.felix.scr.impl.manager.DelayedComponentManager@0x126a79ab8 [*]
>   java.util.HashMap$Entry@0x126a9c3f0
>   java.util.HashMap$Entry@0x1286ce7a0
>   [Ljava.util.HashMap$Entry;@0x124884030
>   java.util.HashMap@0x1238f1ce0
>   org.apache.felix.scr.impl.ComponentRegistry@0x1236757f0 [*]
>   org.apache.felix.scr.impl.BundleComponentActivator@0x127152bd0 
> [*]
>   
> org.apache.felix.scr.impl.config.ImmediateComponentHolder@0x127153a08 [*]
>   
> org.apache.felix.scr.impl.manager.DelayedComponentManager@0x127154398 [*]
>   org.apache.felix.scr.impl.manager.DependencyManager@0x127154720 
> [*]
> {noformat}
> In our case the AuthHttpContext was being registered via the Whiteboard 
> pattern. The dump shows that ServletContextManager [2] uses the HttpContext 
> as key for the map however it is never removed. If our bundle would had used 
> HttpService directly then internal map would have been GC upon bundle 
> deactivation.
> In Felix HttpService is registered as a ServiceFactory however as all 
> interactions with HttpService is done via Whiteboard bundle the HttpService 
> is bound to Whiteboard bundle. So such HttpContext might remain for the 
> lifetime of whiteboard bundle and hence cause classloader leak.
> [1] https://gist.github.com/chetanmeh/8860776
> [2] 
> https://github.com/apache/felix/blob/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/context/ServletContextManager.java
> PS: The lines marked with [*] are objects which are from valid bundle and are 
> maintaining hard reference to the objects from classloader which should have 
> been GC



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (FELIX-4424) ClassLoader leak in Http Service ServletContextManager

2014-02-11 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4424?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13897830#comment-13897830
 ] 

Felix Meschberger commented on FELIX-4424:
--

[~jajans] Thanks alot. This is just a quick shot approach which I did not 
actually thoroughly test, though :-)

> ClassLoader leak in Http Service ServletContextManager
> --
>
> Key: FELIX-4424
> URL: https://issues.apache.org/jira/browse/FELIX-4424
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Reporter: Chetan Mehrotra
>Assignee: J.W. Janssen
>
> While analyzing heap dump for classloader leaks using script [1] following 
> possible leak was reported
> {noformat}
>   com.day.crx.packmgr.impl.AuthHttpContext@0x124214d18
>Following are few of the live paths found
>Live path
>   com.day.crx.packmgr.impl.AuthHttpContext@0x124214d18
>   java.util.HashMap$Entry@0x12429db50
>   [Ljava.util.HashMap$Entry;@0x1238f47b0
>   java.util.HashMap@0x1238f4780
>   
> org.apache.felix.http.base.internal.context.ServletContextManager@0x1238f4760 
> [*]
>   
> org.apache.felix.http.base.internal.service.HttpServiceImpl@0x1238f45c0 [*]
>   
> org.apache.felix.framework.ServiceRegistry$UsageCount@0x1238f45a8
>   
> [Lorg.apache.felix.framework.ServiceRegistry$UsageCount;@0x129efb430
>   java.util.HashMap$Entry@0x1235ee950
>   [Ljava.util.HashMap$Entry;@0x1249e2b78
>   java.util.HashMap@0x123484668
>   org.apache.felix.framework.ServiceRegistry@0x12339c108
>   org.apache.felix.framework.ServiceRegistrationImpl@0x126a7a3c8
>   java.util.concurrent.atomic.AtomicReference@0x126a7a3b8
>   
> org.apache.felix.scr.impl.manager.DelayedComponentManager@0x126a79ab8 [*]
>   java.util.HashMap$Entry@0x126a9c3f0
>   java.util.HashMap$Entry@0x1286ce7a0
>   [Ljava.util.HashMap$Entry;@0x124884030
>   java.util.HashMap@0x1238f1ce0
>   org.apache.felix.scr.impl.ComponentRegistry@0x1236757f0 [*]
>   org.apache.felix.scr.impl.BundleComponentActivator@0x127152bd0 
> [*]
>   
> org.apache.felix.scr.impl.config.ImmediateComponentHolder@0x127153a08 [*]
>   
> org.apache.felix.scr.impl.manager.DelayedComponentManager@0x127154398 [*]
>   org.apache.felix.scr.impl.manager.DependencyManager@0x127154720 
> [*]
> {noformat}
> In our case the AuthHttpContext was being registered via the Whiteboard 
> pattern. The dump shows that ServletContextManager [2] uses the HttpContext 
> as key for the map however it is never removed. If our bundle would had used 
> HttpService directly then internal map would have been GC upon bundle 
> deactivation.
> In Felix HttpService is registered as a ServiceFactory however as all 
> interactions with HttpService is done via Whiteboard bundle the HttpService 
> is bound to Whiteboard bundle. So such HttpContext might remain for the 
> lifetime of whiteboard bundle and hence cause classloader leak.
> [1] https://gist.github.com/chetanmeh/8860776
> [2] 
> https://github.com/apache/felix/blob/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/context/ServletContextManager.java
> PS: The lines marked with [*] are objects which are from valid bundle and are 
> maintaining hard reference to the objects from classloader which should have 
> been GC



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (FELIX-4424) ClassLoader leak in Http Service ServletContextManager

2014-02-10 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4424?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13896573#comment-13896573
 ] 

Felix Meschberger commented on FELIX-4424:
--

Wow ! Excellent catch, indeed !

We could use a WeakHashMap, though, instead of a regular HashMap. This way, we 
can cope for this.

{noformat}
Index: ServletContextManager.java
===
--- ServletContextManager.java  (Revision 1566626)
+++ ServletContextManager.java  (Arbeitskopie)
@@ -16,8 +16,8 @@
  */
 package org.apache.felix.http.base.internal.context;
 
-import java.util.HashMap;
 import java.util.Map;
+import java.util.WeakHashMap;
 
 import javax.servlet.ServletContext;
 import javax.servlet.ServletContextAttributeListener;
@@ -39,7 +39,7 @@
 this.bundle = bundle;
 this.context = context;
 this.attributeListener = attributeListener;
-this.contextMap = new HashMap();
+this.contextMap = new WeakHashMap();
 this.sharedAttributes = sharedAttributes;
 }
 
{noformat}

> ClassLoader leak in Http Service ServletContextManager
> --
>
> Key: FELIX-4424
> URL: https://issues.apache.org/jira/browse/FELIX-4424
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Reporter: Chetan Mehrotra
>
> While analyzing heap dump for classloader leaks using script [1] following 
> possible leak was reported
> {noformat}
>   com.day.crx.packmgr.impl.AuthHttpContext@0x124214d18
>Following are few of the live paths found
>Live path
>   com.day.crx.packmgr.impl.AuthHttpContext@0x124214d18
>   java.util.HashMap$Entry@0x12429db50
>   [Ljava.util.HashMap$Entry;@0x1238f47b0
>   java.util.HashMap@0x1238f4780
>   
> org.apache.felix.http.base.internal.context.ServletContextManager@0x1238f4760 
> [*]
>   
> org.apache.felix.http.base.internal.service.HttpServiceImpl@0x1238f45c0 [*]
>   
> org.apache.felix.framework.ServiceRegistry$UsageCount@0x1238f45a8
>   
> [Lorg.apache.felix.framework.ServiceRegistry$UsageCount;@0x129efb430
>   java.util.HashMap$Entry@0x1235ee950
>   [Ljava.util.HashMap$Entry;@0x1249e2b78
>   java.util.HashMap@0x123484668
>   org.apache.felix.framework.ServiceRegistry@0x12339c108
>   org.apache.felix.framework.ServiceRegistrationImpl@0x126a7a3c8
>   java.util.concurrent.atomic.AtomicReference@0x126a7a3b8
>   
> org.apache.felix.scr.impl.manager.DelayedComponentManager@0x126a79ab8 [*]
>   java.util.HashMap$Entry@0x126a9c3f0
>   java.util.HashMap$Entry@0x1286ce7a0
>   [Ljava.util.HashMap$Entry;@0x124884030
>   java.util.HashMap@0x1238f1ce0
>   org.apache.felix.scr.impl.ComponentRegistry@0x1236757f0 [*]
>   org.apache.felix.scr.impl.BundleComponentActivator@0x127152bd0 
> [*]
>   
> org.apache.felix.scr.impl.config.ImmediateComponentHolder@0x127153a08 [*]
>   
> org.apache.felix.scr.impl.manager.DelayedComponentManager@0x127154398 [*]
>   org.apache.felix.scr.impl.manager.DependencyManager@0x127154720 
> [*]
> {noformat}
> In our case the AuthHttpContext was being registered via the Whiteboard 
> pattern. The dump shows that ServletContextManager [2] uses the HttpContext 
> as key for the map however it is never removed. If our bundle would had used 
> HttpService directly then internal map would have been GC upon bundle 
> deactivation.
> In Felix HttpService is registered as a ServiceFactory however as all 
> interactions with HttpService is done via Whiteboard bundle the HttpService 
> is bound to Whiteboard bundle. So such HttpContext might remain for the 
> lifetime of whiteboard bundle and hence cause classloader leak.
> [1] https://gist.github.com/chetanmeh/8860776
> [2] 
> https://github.com/apache/felix/blob/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/context/ServletContextManager.java
> PS: The lines marked with [*] are objects which are from valid bundle and are 
> maintaining hard reference to the objects from classloader which should have 
> been GC



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Comment Edited] (FELIX-4421) Embed Jetty 8 in Felix Http Jetty

2014-02-06 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13893411#comment-13893411
 ] 

Felix Meschberger edited comment on FELIX-4421 at 2/6/14 2:56 PM:
--

[~jajans] I thought this would come up :-)

According to [~dpfister] the changes from Jetty 7 to Jetty 8 are not that 
dramatic and require little changes to the bridge. The changes to Jetty 9 seem 
to be rather substantial apart from Jetty 9 requiring Java 7 (there is still a 
large install base on Java 6, unfortunately).

So in the interest of having Servlet API 3 soonish, I suggest to first go for 
Jetty 8 (and have a release of that) and do the Jetty 9 switch later.

An option would also be to have two bridges: one for Jetty 8 (requiring Java 6) 
and one for Jetty 9 (requiring Java 7). Not sure, whether that is a good idea, 
though, maintenance-wise.

WDYT ?


was (Author: fmeschbe):
[~jajans] I thought this would come up :-)

According to [~dpfister] the changes from Jetty 7 to Jetty 8 are not that 
dramatic and require little changes to the bridge. The changes to Jetty 9 seem 
to be rather substantial apart from Jetty 9 requiring Java 7 (there is still a 
large install base on Java 6, unfortunately).

So in the interest of having Servlet API 3 soonish, I suggest to first go for 
Jetty 8 (and have a release of that) and do the Jetty 9 switch later.

WDYT ?

> Embed Jetty 8 in Felix Http Jetty
> -
>
> Key: FELIX-4421
> URL: https://issues.apache.org/jira/browse/FELIX-4421
> Project: Felix
>  Issue Type: New Feature
>  Components: HTTP Service
>Affects Versions: http-2.2.1
>Reporter: Dominique Pfister
> Attachments: patch.txt
>
>
> Currently, the Jetty version embedded in Felix Http Jetty is version 
> 7.6.13.v20130916. In order to leverage features available in Servlet API 3.0 
> only, I'd like to change the embedded version to 8.1.14.v20131031.
> A quick test shows that increasing this version number in parent/pom.xml 
> alone requires some small changes to JettyService, deployment of a fresh 
> build of Http Jetty into an OSGI container succeeds, but no request can be 
> handled, because Jetty internally calls methods on interfaces and classes 
> that were only introduced in Servlet API 3.0.
> This implies that the servlet version supported should be upped to 3.0 as 
> well. In order to be backward compatible with bundles expecting a 2.x 
> version, one could also export a virtual version (e.g. 2.6) to satisfy those.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (FELIX-4421) Embed Jetty 8 in Felix Http Jetty

2014-02-06 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13893411#comment-13893411
 ] 

Felix Meschberger commented on FELIX-4421:
--

[~jajans] I thought this would come up :-)

According to [~dpfister] the changes from Jetty 7 to Jetty 8 are not that 
dramatic and require little changes to the bridge. The changes to Jetty 9 seem 
to be rather substantial apart from Jetty 9 requiring Java 7 (there is still a 
large install base on Java 6, unfortunately).

So in the interest of having Servlet API 3 soonish, I suggest to first go for 
Jetty 8 (and have a release of that) and do the Jetty 9 switch later.

WDYT ?

> Embed Jetty 8 in Felix Http Jetty
> -
>
> Key: FELIX-4421
> URL: https://issues.apache.org/jira/browse/FELIX-4421
> Project: Felix
>  Issue Type: New Feature
>  Components: HTTP Service
>Affects Versions: http-2.2.1
>Reporter: Dominique Pfister
> Attachments: patch.txt
>
>
> Currently, the Jetty version embedded in Felix Http Jetty is version 
> 7.6.13.v20130916. In order to leverage features available in Servlet API 3.0 
> only, I'd like to change the embedded version to 8.1.14.v20131031.
> A quick test shows that increasing this version number in parent/pom.xml 
> alone requires some small changes to JettyService, deployment of a fresh 
> build of Http Jetty into an OSGI container succeeds, but no request can be 
> handled, because Jetty internally calls methods on interfaces and classes 
> that were only introduced in Servlet API 3.0.
> This implies that the servlet version supported should be upped to 3.0 as 
> well. In order to be backward compatible with bundles expecting a 2.x 
> version, one could also export a virtual version (e.g. 2.6) to satisfy those.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Created] (FELIX-4420) [HTTP SSLFilter] Implement sendRedirect

2014-02-06 Thread Felix Meschberger (JIRA)
Felix Meschberger created FELIX-4420:


 Summary: [HTTP SSLFilter] Implement sendRedirect
 Key: FELIX-4420
 URL: https://issues.apache.org/jira/browse/FELIX-4420
 Project: Felix
  Issue Type: Improvement
  Components: HTTP Service
Affects Versions: http-2.2.1
Reporter: Felix Meschberger
Assignee: Felix Meschberger
 Fix For: http-2.2.2, http-sslfilter-1.0.0


The HTTP SSL Filter service implemented in FELIX-3693 supports revealing the 
actual protocol used by the client side browser by inspecting a request header 
and exposing the proper scheme through its ServletRequest.getScheme() 
implementation if the actual server is operated behind an SSL terminating proxy 
(i.e. client connects with HTTPS to proxy, proxy forwards request to server 
over plain HTTP)

The HttpServletRequest.sendRedirect() method is declared to set the Location 
header to the absolute redirect URL which includes the scheme. In an SSL 
terminating proxy situation, the servlet container does not know about this 
fact and hence uses the actual server scheme (HTTP) for the redirect instead of 
the scheme used by client.

To fix this situation the SSL filter response should implement the 
HttpServletResponse.sendRedirect() method to use use the client side scheme as 
extracted from the request instead of the actual server request.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (FELIX-4415) Cannot associate HttpService instance with ServletContext

2014-02-05 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13891979#comment-13891979
 ] 

Felix Meschberger commented on FELIX-4415:
--

[RFC-1089|https://github.com/osgi/design/blob/master/rfcs/rfc0189/rfc-0189-Http_Service_Updates.pdf]
 for the upcoming Http Service update currently defines the 
{{osgi.http.endpoint}} service property to list the endpoint URLs (scheme, 
authority, context path) served by the Http Service instance. But this property 
is defined to be optional.

I asked the experts whether we can change this property to be mandatory and 
actually be a relative URL: if the scheme and authority is know it is included, 
otherwise it is just the servlet context path served.

> Cannot associate HttpService instance with ServletContext
> -
>
> Key: FELIX-4415
> URL: https://issues.apache.org/jira/browse/FELIX-4415
> Project: Felix
>  Issue Type: Bug
>  Components: HTTP Service
>Affects Versions: http-2.2.1
>Reporter: Thomas Diesler
>
> A tracker like this
> {code}
> tracker = new ServiceTracker(context, 
> HttpService.class, null) {
> @Override
> public HttpService addingService(ServiceReference 
> sref) {
> httpService = super.addingService(sref);
> registerHttpServiceServlet();
> return httpService;
> }
> };
> tracker.open();
> {code}
> cannot associate an HttpService instance with the servlet context that 
> registered it. Adding the contextPath as service property would be a possible 
> solution.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (FELIX-4412) Add Provide-Capability for declarative services bundle

2014-02-03 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4412?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13889293#comment-13889293
 ] 

Felix Meschberger commented on FELIX-4412:
--

As BJ Hargrave wrote in the Eclipse bug, the extender will be defined as part 
of the DS update. See 
https://github.com/osgi/design/blob/master/rfcs/rfc0190/rfc-0190-Declarative_Services_Enhancements.pdf
 for the current state, particularly section 5.5.

I would suggest to wait with implementing this Capability until the RFC is 
finalized.

> Add Provide-Capability for declarative services bundle
> --
>
> Key: FELIX-4412
> URL: https://issues.apache.org/jira/browse/FELIX-4412
> Project: Felix
>  Issue Type: Bug
>  Components: Declarative Services (SCR), Specification compliance
>Affects Versions: scr-1.8.0
>Reporter: Alex Blewitt
>Priority: Minor
>
> To allow bundles to declare that they need declarative services, a 
> Provide-Capability should be defined on the DS bundle such that clients can 
> depend on it, for example:
> Provide-Capability: 
> osgi.extender;osgi.extender="osgi.service.component";version:=1.1.0
> This would allow clients to require that there be a Declarative Services 
> bundle without actually declaring a package dependency:
> Require-Capability: 
> osgi.extender;filter:="(&(osgi.extender=osgi.service.component")(version>1.0.0))"
> The name of the declarative services component isn't well defined but 
> osgi.service.component or osgi.declarative.services might be used.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (FELIX-4412) Add Provide-Capability for declarative services bundle

2014-02-03 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4412?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger updated FELIX-4412:
-

Affects Version/s: scr-1.8.0

> Add Provide-Capability for declarative services bundle
> --
>
> Key: FELIX-4412
> URL: https://issues.apache.org/jira/browse/FELIX-4412
> Project: Felix
>  Issue Type: Bug
>  Components: Declarative Services (SCR), Specification compliance
>Affects Versions: scr-1.8.0
>Reporter: Alex Blewitt
>Priority: Minor
>
> To allow bundles to declare that they need declarative services, a 
> Provide-Capability should be defined on the DS bundle such that clients can 
> depend on it, for example:
> Provide-Capability: 
> osgi.extender;osgi.extender="osgi.service.component";version:=1.1.0
> This would allow clients to require that there be a Declarative Services 
> bundle without actually declaring a package dependency:
> Require-Capability: 
> osgi.extender;filter:="(&(osgi.extender=osgi.service.component")(version>1.0.0))"
> The name of the declarative services component isn't well defined but 
> osgi.service.component or osgi.declarative.services might be used.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (FELIX-4412) Add Provide-Capability for declarative services bundle

2014-02-03 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4412?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger updated FELIX-4412:
-

Component/s: Specification compliance

> Add Provide-Capability for declarative services bundle
> --
>
> Key: FELIX-4412
> URL: https://issues.apache.org/jira/browse/FELIX-4412
> Project: Felix
>  Issue Type: Bug
>  Components: Declarative Services (SCR), Specification compliance
>Affects Versions: scr-1.8.0
>Reporter: Alex Blewitt
>Priority: Minor
>
> To allow bundles to declare that they need declarative services, a 
> Provide-Capability should be defined on the DS bundle such that clients can 
> depend on it, for example:
> Provide-Capability: 
> osgi.extender;osgi.extender="osgi.service.component";version:=1.1.0
> This would allow clients to require that there be a Declarative Services 
> bundle without actually declaring a package dependency:
> Require-Capability: 
> osgi.extender;filter:="(&(osgi.extender=osgi.service.component")(version>1.0.0))"
> The name of the declarative services component isn't well defined but 
> osgi.service.component or osgi.declarative.services might be used.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Resolved] (FELIX-4408) CaseInsensitiveDictionary is platform/locale dependant

2014-01-27 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4408?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger resolved FELIX-4408.
--

   Resolution: Fixed
Fix Version/s: configadmin-1.8.2
 Assignee: Felix Meschberger

Thanks for providing the patch. I have applied it slightly modified in Rev. 
1561599: Instead of calling the String.toLowerCase(Locale) method in each 
place, I created a new helper method.

> CaseInsensitiveDictionary is platform/locale dependant
> --
>
> Key: FELIX-4408
> URL: https://issues.apache.org/jira/browse/FELIX-4408
> Project: Felix
>  Issue Type: Bug
>  Components: Configuration Admin
>Affects Versions: configadmin-1.8.0
>Reporter: Tobias Bocanegra
>Assignee: Felix Meschberger
> Fix For: configadmin-1.8.2
>
> Attachments: FELIX-4408-r1558196.patch, FELIX-4408-test-r1558196.patch
>
>
> The CaseInsensitiveDictionary [0] can behave wrongly for non english locales. 
> see reasoning in COLLECTIONS-294 and [1].
> [0] 
> https://svn.apache.org/repos/asf/felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/CaseInsensitiveDictionary.java
> [1] http://mattryall.net/blog/2009/02/the-infamous-turkish-locale-bug
> A fix similar to the 2nd patch in COLLECTIONS-294 probably solves the problem.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (FELIX-4389) Configuration ranking for LMF services should also use "jaas.ranking" property

2014-01-21 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-4389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13878357#comment-13878357
 ] 

Felix Meschberger commented on FELIX-4389:
--

Sorry for the dealy and thanks for the patch. I have applied it in Rev. 1560267.

> Configuration ranking for LMF services should also use "jaas.ranking" property
> --
>
> Key: FELIX-4389
> URL: https://issues.apache.org/jira/browse/FELIX-4389
> Project: Felix
>  Issue Type: Improvement
>  Components: JAAS
>Affects Versions: jaas-0.0.2
>Reporter: Tobias Bocanegra
>Assignee: Felix Meschberger
> Fix For: jaas-0.0.2
>
> Attachments: felix-4389-r1558508.patch, felix-4389-r1558868.patch
>
>
> The JAAS configuration entries that are managed by configuration are sorted 
> using the "jaas.ranking" property, but the entries that are managed via a 
> LoginModuleFactory service are ranked using the "service.ranking" property.
> this might be a problem if an implementing class also implements another 
> service that is ranked by the "service.ranking" property (e.g. the 
> AuthenticationHandlers in Sling).
> Suggest to use the "jaas.ranking" also for LMF service based entries.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Resolved] (FELIX-4389) Configuration ranking for LMF services should also use "jaas.ranking" property

2014-01-16 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4389?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger resolved FELIX-4389.
--

   Resolution: Fixed
Fix Version/s: jaas-0.0.2

Thanks for providing the patch.

I have applied it with a small extension in Rev. 1558854:
   - For backwards compatibility support for service.ranking is retained
   if the jaas.ranking property is missing
   - Also consolidated the service property and configuration constants

> Configuration ranking for LMF services should also use "jaas.ranking" property
> --
>
> Key: FELIX-4389
> URL: https://issues.apache.org/jira/browse/FELIX-4389
> Project: Felix
>  Issue Type: Improvement
>  Components: JAAS
>Affects Versions: jaas-0.0.2
>Reporter: Tobias Bocanegra
>Assignee: Felix Meschberger
> Fix For: jaas-0.0.2
>
> Attachments: felix-4389-r1558508.patch
>
>
> The JAAS configuration entries that are managed by configuration are sorted 
> using the "jaas.ranking" property, but the entries that are managed via a 
> LoginModuleFactory service are ranked using the "service.ranking" property.
> this might be a problem if an implementing class also implements another 
> service that is ranked by the "service.ranking" property (e.g. the 
> AuthenticationHandlers in Sling).
> Suggest to use the "jaas.ranking" also for LMF service based entries.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Resolved] (FELIX-4390) Login modules registered via LMF not updated if LMF service config changes

2014-01-15 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4390?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger resolved FELIX-4390.
--

   Resolution: Fixed
Fix Version/s: jaas-0.0.2

Thanks for providing the patch. I have applied it in Rev. 1558624

> Login modules registered via LMF not updated if LMF service config changes
> --
>
> Key: FELIX-4390
> URL: https://issues.apache.org/jira/browse/FELIX-4390
> Project: Felix
>  Issue Type: Bug
>  Components: JAAS
>Affects Versions: jaas-0.0.2
>Reporter: Tobias Bocanegra
>Assignee: Felix Meschberger
> Fix For: jaas-0.0.2
>
> Attachments: felix-4390-r1558508.patch
>
>
> The configuration entries of LoginModules registered via a LoginModuleFactory 
> service are not updated, if the LMF service changes its configuration.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Resolved] (FELIX-4387) JAAS config fields are initialized too late in the ConfigSpiOsgi constructor

2014-01-15 Thread Felix Meschberger (JIRA)

 [ 
https://issues.apache.org/jira/browse/FELIX-4387?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger resolved FELIX-4387.
--

   Resolution: Fixed
Fix Version/s: jaas-0.0.2

Thanks for providing the patch. I have applied in in Rev. 1558623

> JAAS config fields are initialized too late in the ConfigSpiOsgi constructor
> 
>
> Key: FELIX-4387
> URL: https://issues.apache.org/jira/browse/FELIX-4387
> Project: Felix
>  Issue Type: Bug
>  Components: JAAS
>Affects Versions: jaas-0.0.2
>Reporter: Tobias Bocanegra
>Assignee: Felix Meschberger
> Fix For: jaas-0.0.2
>
> Attachments: felix-4387-r1558508.patch
>
>
> The {{originalConfig}} and {{proxyConfig}} fields are initialized after the 
> service registration, which is a problem in the {{update()}} call triggered 
> by the config admin.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


  1   2   3   4   5   6   7   8   9   10   >