felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ron Koerner (JIRA)" <j...@apache.org>
Subject [jira] Commented: (FELIX-1114) callback after configuration change needed
Date Mon, 04 May 2009 09:03:30 GMT

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

Ron Koerner commented on FELIX-1114:
------------------------------------

Hi Clement,

I'm very impressed about your response and implementation speed.

Unfortunately I have a problem to use the new feature. As soon as I add the annotation the
class seems not to be loaded anymore.
I'm quite new to OSGi and may not have found all the debug switches, but right now I can't
see any errors anywhere. Actually I don't see any OSGi framework-level errors at all, so I
always have to guess why a class was not loaded. Since I'm not using BND yet, I usually forget
an import in the manifest.

I'd be grateful for a hint on how to improve my debugging.

> callback after configuration change needed
> ------------------------------------------
>
>                 Key: FELIX-1114
>                 URL: https://issues.apache.org/jira/browse/FELIX-1114
>             Project: Felix
>          Issue Type: Improvement
>          Components: iPOJO
>    Affects Versions: iPOJO-1.2.0
>            Reporter: Ron Koerner
>            Assignee: Clement Escoffier
>             Fix For: iPOJO-1.4.0
>
>   Original Estimate: 0h
>  Remaining Estimate: 0h
>
> It often occurs that a configuration/property change requires some work to be done. If
only a single property is affected method injection can be used.
> If multiple properties are changed and these changes are kind of an atomic transaction,
there is no (sensible) way to tell the service to use the new values.
> Imagine a service listening on a port and writing the output to a file. The service has
the two string properties "port" and "file". When the service is validated, it opens a listening
port and a writable file according to the properties. Now imagine it is either dangerous to
have a port input written to the wrong file or opening ports and files is very costly or there
is already an object doing the work for us but it needs to be constructed with port number
and filename and cannot be changed at runtime. Therefore we cannot use method injection like
> @Property(name="port")
> public void setPort(String port)
> {
>    incomingSocket.close();
>    incomingSocket=new IncomingSocket(port);
> }
> because that is costly and leaves the possibility to have things written to the wrong
file.
> Therefore something like
> @Updated
> public void updatedConfiguration()
> {
>   // put changed configuration in use
> }
> is needed. The method annotated with @Updated (or specified in XML) is to called after
all the configuration changes are done.
> Right now, the only way is to stop and start the service since only one ManagedService
per PID is recognized by ConfigurationAdmin.

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


Mime
View raw message