You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by Carlos Quiroz <cq...@gemini.edu> on 2011/01/27 13:50:29 UTC
iPOJO Field @Property
Hi
I'm using iPOJO and I want to also integrate with ConfigAdmin but I have found an issue that I'm not sure if it is by design or bugs
I' having a bundle that defines a component (Not a service) and has a couple of configuration properties defined as fields:
I'm also using the Felix ConfigAdmin and Felix FileInstall service setting the properties in a configuration file as simple properties
The class look like:
@Component(name = "GIAPI_STATUS_SERVICE", managedservice = "edu.gemini.aspen.giapi.statusservice.StatusService")
@Instantiate(name="GIAPI_STATUS_SERVICE")
public class StatusService {
@Property
private String statusName;
@Property
private String serviceName;
...
@Updated
public void updates() ...
@Validated
public void updates() ...
Now, I expect that since the values are stored in the configuration they will be made available at @Updated but. If the fields are initialized in code like
@Property(name = "statusName", value = "INVALID", mandatory = true)
private String statusName = "SOMETHING";
Then at @Updated statusName has the value "SOMETHING" rather than the one in the config file
If I don't initialize then it works
Any ideas?
Carlos
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org
Re: iPOJO Field @Property
Posted by "issac@torito.org" <is...@torito.org>.
2011/1/27 Carlos Quiroz <cq...@gemini.edu>
> Hi
>
> I see, I guess that is worth to document a bit.
>
I agree
>
> In general though it makes iPOJO non transparent as the behaviour depends
> on details like where you are initializing the fields
> I'd expect that it wouldn't matter whether you initialize it in code or via
> the external service
>
It' is not 'in code" or "external service" its "in code" or "the component
model"
the thing is, if you want the component model handles some properties
(simple property or a service dependency), you need to let it do his job.
For example, a required service, if you have :
@requires
private MyService service;
// Then, you expect the framework to solve the service dependency, so you
will not do
@requires
private MyService service;
...//and later ask the bundle context for a service.
service = bundleContext.getService(theServiceReference);
If you do so, you affect the component model job.
> Carlos
>
> On Jan 27, 2011, at 10:07 AM, issac@torito.org wrote:
>
> > Its the iPOJO normal/known behaviour.
> > In order to set or initialize a default value, you must doit in the
> property
> > anotation.
> > @Property(name = "statusName", value = "SOMETHING", mandatory = true)
> > private String statusName;
> >
> > why? I don't know, I think is a code manipulation problem.
> >
> > 2011/1/27 Carlos Quiroz <cq...@gemini.edu>
> >
> >> Hi
> >>
> >> I'm using iPOJO and I want to also integrate with ConfigAdmin but I have
> >> found an issue that I'm not sure if it is by design or bugs
> >>
> >> I' having a bundle that defines a component (Not a service) and has a
> >> couple of configuration properties defined as fields:
> >> I'm also using the Felix ConfigAdmin and Felix FileInstall service
> setting
> >> the properties in a configuration file as simple properties
> >>
> >> The class look like:
> >>
> >> @Component(name = "GIAPI_STATUS_SERVICE", managedservice =
> >> "edu.gemini.aspen.giapi.statusservice.StatusService")
> >> @Instantiate(name="GIAPI_STATUS_SERVICE")
> >> public class StatusService {
> >> @Property
> >> private String statusName;
> >>
> >> @Property
> >> private String serviceName;
> >> ...
> >>
> >> @Updated
> >> public void updates() ...
> >>
> >> @Validated
> >> public void updates() ...
> >>
> >> Now, I expect that since the values are stored in the configuration they
> >> will be made available at @Updated but. If the fields are initialized in
> >> code like
> >> @Property(name = "statusName", value = "INVALID", mandatory = true)
> >> private String statusName = "SOMETHING";
> >>
> >> Then at @Updated statusName has the value "SOMETHING" rather than the
> one
> >> in the config file
> >>
> >> If I don't initialize then it works
> >>
> >> Any ideas?
> >> Carlos
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> >> For additional commands, e-mail: users-help@felix.apache.org
> >>
> >>
> >
> >
> > --
> > Issac Noé García Garza
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>
>
--
Issac Noé García Garza
Re: iPOJO Field @Property
Posted by Carlos Quiroz <cq...@gemini.edu>.
Hi
I see, I guess that is worth to document a bit.
In general though it makes iPOJO non transparent as the behaviour depends on details like where you are initializing the fields
I'd expect that it wouldn't matter whether you initialize it in code or via the external service
Carlos
On Jan 27, 2011, at 10:07 AM, issac@torito.org wrote:
> Its the iPOJO normal/known behaviour.
> In order to set or initialize a default value, you must doit in the property
> anotation.
> @Property(name = "statusName", value = "SOMETHING", mandatory = true)
> private String statusName;
>
> why? I don't know, I think is a code manipulation problem.
>
> 2011/1/27 Carlos Quiroz <cq...@gemini.edu>
>
>> Hi
>>
>> I'm using iPOJO and I want to also integrate with ConfigAdmin but I have
>> found an issue that I'm not sure if it is by design or bugs
>>
>> I' having a bundle that defines a component (Not a service) and has a
>> couple of configuration properties defined as fields:
>> I'm also using the Felix ConfigAdmin and Felix FileInstall service setting
>> the properties in a configuration file as simple properties
>>
>> The class look like:
>>
>> @Component(name = "GIAPI_STATUS_SERVICE", managedservice =
>> "edu.gemini.aspen.giapi.statusservice.StatusService")
>> @Instantiate(name="GIAPI_STATUS_SERVICE")
>> public class StatusService {
>> @Property
>> private String statusName;
>>
>> @Property
>> private String serviceName;
>> ...
>>
>> @Updated
>> public void updates() ...
>>
>> @Validated
>> public void updates() ...
>>
>> Now, I expect that since the values are stored in the configuration they
>> will be made available at @Updated but. If the fields are initialized in
>> code like
>> @Property(name = "statusName", value = "INVALID", mandatory = true)
>> private String statusName = "SOMETHING";
>>
>> Then at @Updated statusName has the value "SOMETHING" rather than the one
>> in the config file
>>
>> If I don't initialize then it works
>>
>> Any ideas?
>> Carlos
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>> For additional commands, e-mail: users-help@felix.apache.org
>>
>>
>
>
> --
> Issac Noé García Garza
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org
Re: iPOJO Field @Property
Posted by "issac@torito.org" <is...@torito.org>.
Its the iPOJO normal/known behaviour.
In order to set or initialize a default value, you must doit in the property
anotation.
@Property(name = "statusName", value = "SOMETHING", mandatory = true)
private String statusName;
why? I don't know, I think is a code manipulation problem.
2011/1/27 Carlos Quiroz <cq...@gemini.edu>
> Hi
>
> I'm using iPOJO and I want to also integrate with ConfigAdmin but I have
> found an issue that I'm not sure if it is by design or bugs
>
> I' having a bundle that defines a component (Not a service) and has a
> couple of configuration properties defined as fields:
> I'm also using the Felix ConfigAdmin and Felix FileInstall service setting
> the properties in a configuration file as simple properties
>
> The class look like:
>
> @Component(name = "GIAPI_STATUS_SERVICE", managedservice =
> "edu.gemini.aspen.giapi.statusservice.StatusService")
> @Instantiate(name="GIAPI_STATUS_SERVICE")
> public class StatusService {
> @Property
> private String statusName;
>
> @Property
> private String serviceName;
> ...
>
> @Updated
> public void updates() ...
>
> @Validated
> public void updates() ...
>
> Now, I expect that since the values are stored in the configuration they
> will be made available at @Updated but. If the fields are initialized in
> code like
> @Property(name = "statusName", value = "INVALID", mandatory = true)
> private String statusName = "SOMETHING";
>
> Then at @Updated statusName has the value "SOMETHING" rather than the one
> in the config file
>
> If I don't initialize then it works
>
> Any ideas?
> Carlos
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>
>
--
Issac Noé García Garza