Paul,

- scr is installed and started
- the person bundle started
- diag does not produce any output

Best,

-- Jaap

> -----Original Message-----
> From: Paul Spencer <paulspen...@mindspring.com>
> Sent: maandag 23 januari 2023 23:12
> To: user@karaf.apache.org
> Subject: Re: aries-jax-rs-whiteboard with @JaxrsApplicationSelect works not
> with DS
> 
> Jaap,
> 1) What bundle provides PersonService and what is its state, as reported by
> bundle:list?
> 2) What is the state, as reported by bundle:list, of your REST bundle.
> 
> If any of the bundles are in a state of waiting, what does bundle:diag
> <bundle_id> of the waiting bundle report?
> 
> Is the feature scr installed, if not install it.
> 
> Paul Spencer
> 
> 
> > On Jan 23, 2023, at 3:38 PM, Jaap Gordijn <f...@gordijn.org> wrote:
> >
> > Paul,
> >
> > I have now minimized the code that I call via REST:
> >
> >     @Reference(scope=ReferenceScope.PROTOTYPE_REQUIRED)
> >     private PersonService personService;
> >
> >     @GET
> >     @Path("/test")
> >     public String test() {
> >             System.out.println("personService null" + (personService ==
> null));
> >             return "test";
> >     }
> >
> > The personService remains null, so no DI.
> >
> > I enabled DEBUG in the log.
> >
> > I only see DEBUG messages for " org.eclipse.jetty.util".
> > Not for anything else.
> >
> > Nevertheless, feature:list | grep jax
> > Results in:
> >
> > aries-jax-rs-whiteboard                 │ 2.0.2            │          │ 
> > Started     │ aries-jax-
> rs-2.0.2                │
> > aries-jax-rs-whiteboard-jackson         │ 2.0.2            │          │ 
> > Started     │ aries-
> jax-rs-2.0.2                │
> > aries-jax-rs-whiteboard-jettison        │ 2.0.2            │          │ 
> > Uninstalled │
> aries-jax-rs-2.0.2                │
> > aries-jax-rs-whiteboard-openapi         │ 2.0.2            │          │ 
> > Uninstalled │
> aries-jax-rs-2.0.2                │
> > aries-jax-rs-whiteboard-rest-management │ 2.0.2            │          │ 
> > Uninstalled
> │ aries-jax-rs-2.0.2                │
> > aries-jax-rs-whiteboard-shiro           │ 2.0.2            │          │ 
> > Uninstalled │ aries-
> jax-rs-2.0.2                │
> > jaxb                                    │ 2.3.2.3          │          │ 
> > Uninstalled │ specs-4.4.3
> │
> > jaxrs                                   │ 2.1.0            │          │ 
> > Uninstalled │ specs-4.4.3
> │
> > jaxws                                   │ 2.3.0            │          │ 
> > Uninstalled │ specs-4.4.3
> │
> > jackson-jaxrs                           │ 2.14.1           │          │ 
> > Uninstalled │ specs-4.4.3
> │
> > cxf-jaxb                                │ 3.5.5            │          │ 
> > Uninstalled │ cxf-3.5.5
> │
> > cxf-jaxws                               │ 3.5.5            │          │ 
> > Uninstalled │ cxf-3.5.5
> │
> > cxf-jaxrs                               │ 3.5.5            │          │ 
> > Started     │ cxf-3.5.5
> │
> > cxf-databinding-jaxb                    │ 3.5.5            │          │ 
> > Uninstalled │ cxf-3.5.5
> │
> > cxf-jaxrs-cdi                           │ 3.5.5            │          │ 
> > Uninstalled │ cxf-3.5.5
> │
> > karaf@root()>
> >
> > This gives me the impression that the whitenboard stuff is working.
> >
> > -- Jaap
> >
> >> -----Original Message-----
> >
> >
> >> From: Paul Spencer <pau...@me.com>
> >> Sent: maandag 23 januari 2023 21:19
> >> To: user@karaf.apache.org
> >> Subject: Re: aries-jax-rs-whiteboard with @JaxrsApplicationSelect
> >> works not with DS
> >>
> >> Jaap,
> >> Something is missing.  The @Referenece should prevent the component
> >> from becoming Active when a PeopleService does not exist.
> >> Look in Karaf.log for clues.
> >>
> >> Paul Spencer
> >>
> >>> On Jan 23, 2023, at 3:14 PM, Jaap Gordijn <f...@gordijn.org> wrote:
> >>>
> >>> Paul,
> >>>
> >>> I tried also the @Reference annotation.
> >>> This doesn't work, the variable remains null.
> >>> No injection is happening.
> >>>
> >>> -- Jaap
> >>>
> >>>> -----Original Message-----
> >>>> From: Paul Spencer <paulspen...@mindspring.com>
> >>>> Sent: maandag 23 januari 2023 21:09
> >>>> To: user@karaf.apache.org
> >>>> Subject: Re: aries-jax-rs-whiteboard with @JaxrsApplicationSelect
> >>>> works not with DS
> >>>>
> >>>> Jaap,
> >>>> In the code I posted, there was not constructor.  I moved the
> >>>> injection of personService to an @Reference annotated field.  The
> >>>> @Activator annotation is for a method, which you may not need based
> >>>> on
> >> your example.
> >>>>
> >>>> Paul Spencer
> >>>>
> >>>>
> >>>>> On Jan 23, 2023, at 2:30 PM, Jaap Gordijn <f...@gordijn.org> wrote:
> >>>>>
> >>>>> Hi Paul,
> >>>>>
> >>>>> That constructor is called, but only if I disable
> @@JaxrsApplicationSelect.
> >>>>>
> >>>>> If I enable it, only the default constructor is called (Rest() in my 
> >>>>> case.
> >>>>> And no DS.
> >>>>>
> >>>>> -- Jaap
> >>>>>
> >>>>>> -----Original Message-----
> >>>>>> From: Paul Spencer <paulspen...@mindspring.com>
> >>>>>> Sent: maandag 23 januari 2023 18:59
> >>>>>> To: user@karaf.apache.org
> >>>>>> Subject: Re: aries-jax-rs-whiteboard with @JaxrsApplicationSelect
> >>>>>> works not with DS
> >>>>>>
> >>>>>> Jaap,
> >>>>>> Your @Activate annotation is incorrect.
> >>>>>> Try the following.
> >>>>>>
> >>>>>>
> >>>>>> …
> >>>>>> public class Rest() {
> >>>>>>
> >>>>>>  @Reference
> >>>>>>  private PersonService personService;
> >>>>>>
> >>>>>>  @Activate
> >>>>>>  public void activate(Map <String,?> properties) {  ...
> >>>>>>  }
> >>>>>>
> >>>>>> }
> >>>>>>
> >>>>>> Paul Spencer
> >>>>>>
> >>>>>>
> >>>>>>> On Jan 23, 2023, at 12:40 PM, Jaap Gordijn <f...@gordijn.org>
> wrote:
> >>>>>>>
> >>>>>>> Hi,
> >>>>>>>
> >>>>>>> I use an Application object (with @JaxrsApplicationSelect),
> >>>>>>> injection via DS does not work:
> >>>>>>>
> >>>>>>> @Component(service = Rest.class, scope =
> ServiceScope.PROTOTYPE)
> >>>>>>> @JaxrsResource @JaxrsApplicationSelect("(" +
> >>>>>>> JaxrsWhiteboardConstants.JAX_RS_NAME +
> >>>>>>> "=MyApplication)")
> >>>>>>> @JSONRequired
> >>>>>>> @Produces(MediaType.APPLICATION_JSON)
> >>>>>>> public class Rest {
> >>>>>>>
> >>>>>>> private PersonService personService;
> >>>>>>>
> >>>>>>> /*
> >>>>>>> public Rest() {
> >>>>>>> System.out.println("Constructing REST");  this.personService =
> >>>>>>> new PersonServiceImpl();  } */
> >>>>>>>
> >>>>>>> @Activate
> >>>>>>> public Rest(final @Reference PersonService personService) {
> >>>>>>> System.out.println("Constructing REST");  this.personService =
> >>>>>>> personService;  }
> >>>>>>>
> >>>>>>> @GET
> >>>>>>> @Path("/person")
> >>>>>>> public List<PersonDto> listPersons() {
> >>>>>>>   return personService.select(); }
> >>>>>>>
> >>>>>>> @GET
> >>>>>>> @Path("/test")
> >>>>>>> public String test() {
> >>>>>>>  return "test";
> >>>>>>> }
> >>>>>>> }
> >>>>>>>
> >>>>>>> The @Activate constructor is not called. If I enable the Rest()
> >>>>>>> constructor that one is called.
> >>>>>>> if I disable @JaxrsApplicationSelect, the personService is injected.
> >>>>>>>
> >>>>>>> It seems that once an Application class is used (see below), DS
> >>>>>>> is not working.
> >>>>>>> This leads to the question what I have to set up for the
> >>>>>>> Application
> >>>> object:
> >>>>>>>
> >>>>>>> @Component(service=Application.class, property =
> >>>>>>> {"servlet.init.hide-service-list-page=true"} )
> >>>>>>> @JaxrsApplicationBase("example")
> >>>>>>> @JaxrsName("MyApplication")
> >>>>>>> public class MyApplication extends Application {
> >>>>>>>
> >>>>>>> public Set<Class<?>> getClasses() {
> >>>>>>>   HashSet<Class<?>> set = new HashSet<Class<?>>();
> >>>>>>>   set.add(Rest.class);
> >>>>>>>   return set;
> >>>>>>> }
> >>>>>>>
> >>>>>>> }
> >>>>>>>
> >>>>>>> Jax-rs-whiteboard 2.02
> >>>>>>> Karaf 4.4.3
> >>>>>>>
> >>>>>>> Thanks,
> >>>>>>>
> >>>>>>> -- Jaap
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>>>
> >>>
> >>>
> >
> >


Reply via email to