Hi Sergey
We've taken 3.1.14-20171106.085950 jars but still failing (see below).
So for the use of "cxf-java2wadl-plugin" I've taken also
"cxf-rt-rs-service-description" and "cxf-core" with same snapshot releases
(just to make sure) but did not help.
Ami i missing something?
[exec] WARNING: Error injecting:
org.apache.cxf.maven_plugin.javatowadl.Java2WADLMojo
[exec] java.lang.NoClassDefFoundError: org/apache/cxf/Bus
[exec] at java.lang.Class.getDeclaredMethods0(Native Method)
[exec] at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
[exec] at java.lang.Class.getDeclaredMethods(Class.java:1975)
[exec] at
com.google.inject.spi.InjectionPoint.getInjectionPoints(InjectionPoint.java:664)
[exec] at
com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:358)
[exec] at
com.google.inject.internal.ConstructorBindingImpl.getInternalDependencies(ConstructorBindingImpl.java:155)
[exec] at
com.google.inject.internal.InjectorImpl.getInternalDependencies(InjectorImpl.java:585)
[exec] at
com.google.inject.internal.InjectorImpl.cleanup(InjectorImpl.java:542)
[exec] at
com.google.inject.internal.InjectorImpl.initializeJitBinding(InjectorImpl.java:528)
[exec] at
com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:833)
[exec] at
com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:758)
[exec] at
com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:255)
[exec] at
com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:204)
[exec] at
com.google.inject.internal.InjectorImpl.getProviderOrThrow(InjectorImpl.java:954)
[exec] at
com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:987)
[exec] at
com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:950)
[exec] at
com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1000)
[exec] at
org.sonatype.guice.bean.reflect.AbstractDeferredClass.get(AbstractDeferredClass.java:45)
[exec] at
com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:84)
[exec] at
com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:52)
[exec] at
com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:70)
[exec] at
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:100)
[exec] at
org.sonatype.guice.plexus.lifecycles.PlexusLifecycleManager.onProvision(PlexusLifecycleManager.java:138)
[exec] at
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:108)
[exec] at
com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:55)
[exec] at
com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:68)
[exec] at
com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
[exec] at
com.google.inject.internal.InjectorImpl$3$1.call(InjectorImpl.java:965)
[exec] at
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1011)
[exec] at
com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:961)
[exec] at com.google.inject.Scopes$1$1.get(Scopes.java:59)
[exec] at
org.sonatype.guice.bean.locators.LazyBeanEntry.getValue(LazyBeanEntry.java:83)
[exec] at
org.sonatype.guice.plexus.locators.LazyPlexusBean.getValue(LazyPlexusBean.java:49)
[exec] at
org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:253)
[exec] at
org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:245)
[exec] at
org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:455)
[exec] at
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:92)
[exec] at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
[exec] at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
[exec] at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
[exec] at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
[exec] at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
[exec] at
org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
[exec] at
org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
[exec] at
org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
[exec] at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
[exec] at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
[exec] at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
[exec] at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
[exec] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[exec] at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[exec] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[exec] at java.lang.reflect.Method.invoke(Method.java:498)
[exec] at
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
[exec] at
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
[exec] at
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
[exec] at
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
[exec] Caused by: java.lang.ClassNotFoundException: org.apache.cxf.Bus
[exec] at
org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
[exec] at
org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)
[exec] at
org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)
Thanks,
Eyal
-----Original Message-----
From: Sergey Beryozkin [mailto:[email protected]]
Sent: 01 November, 2017 16:58
To: Eyal Weingart <[email protected]>; users
<[email protected]>
Subject: Re: cxf-java2wadl-plugin java2wadl questions
Hi
You can get it from
https://repository.apache.org/content/groups/snapshots/org/apache/cxf/cxf-java2wadl-plugin/3.1.14-SNAPSHOT/
Sergey
On 01/11/17 14:27, Eyal Weingart wrote:
> Hi Sergey,
>
> I'm struggling here with downloading it thru the maven build (i was
> told that in my local environment i'm connecting only to a local maven
> repository) Is it possible to send me the jar for this snapshot version so we
> can upload it to our local maven repository and then work with it?
>
>
> Thanks,
> Eyal
>
>
> -----Original Message-----
> From: Sergey Beryozkin [mailto:[email protected]]
> Sent: 23 October, 2017 12:19
> To: Eyal Weingart <[email protected]>; users
> <[email protected]>
> Subject: Re: cxf-java2wadl-plugin java2wadl questions
>
> Hi, I think you'll need to enable the snapshot repositories
>
> Sergey
> On 22/10/17 09:14, Eyal Weingart wrote:
>> Hi Sergey
>>
>> Should i download something manually for the 3.1.14-SNAPSHOT version (and if
>> so how and from where)?
>> Because i'm trying to do it thru the maven build (defining the version of
>> the artifact as 3.1.14-SNAPSHOT) and it does not download this version.
>>
>> And it comes with the below error (of course) :
>> Plugin org.apache.cxf:cxf-java2wadl-plugin:3.1.14-SNAPSHOT or one of
>> its dependencies could not be resolved: Failed to read artifact descriptor
>> for org.apache.cxf:cxf-java2wadl- plugin:jar:3.1.14-SNAPSHOT: Could
>> not find artifact org.apache.cxf:cxf-java2wadl-plugin:pom:3.1.14-SNAPSHOT in
>>
>>
>> Thanks,
>> Eyal
>>
>>
>> -----Original Message-----
>> From: Sergey Beryozkin [mailto:[email protected]]
>> Sent: 19 October, 2017 17:01
>> To: Eyal Weingart <[email protected]>; users
>> <[email protected]>
>> Subject: Re: cxf-java2wadl-plugin java2wadl questions
>>
>> Np, by the way, the custom provider will need to have a constructor
>> accepting 'Bus' which it can provide to the super...
>>
>> Sergey
>> On 19/10/17 14:06, Eyal Weingart wrote:
>>> Thanks a lot!
>>> I will check this on Sunday (leaving for the weekend) and will let
>>> you know Working currently with version 3.1.4 and not 3.1.14 so will need
>>> to fix some dependencies so my build will not fail...
>>>
>>> Thanks,
>>> Eyal
>>>
>>>
>>> -----Original Message-----
>>> From: Sergey Beryozkin [mailto:[email protected]]
>>> Sent: 19 October, 2017 15:20
>>> To: Eyal Weingart <[email protected]>; users
>>> <[email protected]>
>>> Subject: Re: cxf-java2wadl-plugin java2wadl questions
>>>
>>> Hi Eyal
>>> On 19/10/17 09:47, Eyal Weingart wrote:
>>>> Hi Sergey
>>>>
>>>> 1. Do you see a future option to custom the WADL generator class
>>>> during the maven build? If so, what is a reasonable timeline for this?
>>>> (Just to know how to plan ahead)
>>>>
>>> I've added a 'customWadlGenerator' parameter, give 3.1.14-SNAPSHOT
>>> or 3.2.1-SNAPSHOT a try
>>>> 2. Regarding the "classResourceNames" and multiple WADL files question, i
>>>> think i was misunderstood, it is not that each rest class holds 1 service,
>>>> i meant that each rest class holds
>>>> 1 business with few operations.
>>>> For example, 1 class holds books operations, another class holds
>>>> teachers operations and another class will hold course operations - so our
>>>> expectation is that we should have
>>>> 3 separate WADLs generated - what do you think?
>>>>
>>> That is fine, it is just that it can't be really solved at the
>>> WADLGenerator level - in your case the separation may be clean, in
>>> other cases - may be not. And from the practical point of view it
>>> will push the already very complex WADLGenerator code to the limit
>>> if we started trying updating it to push the info to many files
>>>
>>> Thanks, Sergey
>>>>
>>>> Thanks,
>>>> Eyal
>>>>
>>>>
>>>> -----Original Message-----
>>>> From: Eyal Weingart
>>>> Sent: 18 October, 2017 13:47
>>>> To: Sergey Beryozkin <[email protected]>; users
>>>> <[email protected]>
>>>> Subject: RE: cxf-java2wadl-plugin java2wadl questions
>>>>
>>>> Well, actually i was referring to applicative error codes (and
>>>> their
>>>> descriptions) - that might be useful by users so can they
>>>> understand the exact issue
>>>>
>>>>
>>>> Thanks,
>>>> Eyal
>>>>
>>>>
>>>> -----Original Message-----
>>>> From: Sergey Beryozkin [mailto:[email protected]]
>>>> Sent: 18 October, 2017 12:44
>>>> To: Eyal Weingart <[email protected]>; users
>>>> <[email protected]>
>>>> Subject: Re: cxf-java2wadl-plugin java2wadl questions
>>>>
>>>> That said, while customizing a response serialization in order to show the
>>>> extra statuses can help users see them, one can document it as well.
>>>>
>>>> For example, I do not see how the information that a given response can
>>>> return 405 can be practically used. Well, one can type for example a 405
>>>> catch block on the client knowing 405 can be returned, but I'm not sure
>>>> what difference it makes, where this 405 info is located in the response
>>>> statuses or in the docs...
>>>>
>>>> Cheers, Sergey
>>>> On 18/10/17 10:37, Sergey Beryozkin wrote:
>>>>> I forgot it's really about using a Maven plugin.
>>>>> Hmm...I guess we may need to support a custom class...
>>>>>
>>>>> Sergey
>>>>> On 18/10/17 07:06, Eyal Weingart wrote:
>>>>>> Thanks again.
>>>>>> Regarding: "Create MyWadlGenerator extending WADLGenerator,
>>>>>> override whatever is needed, and register MyWadlGenerator as a
>>>>>> jaxrs:provider"
>>>>>> Where exactly do i need to register the MyWadlGenerator as a
>>>>>> jaxrs:provider? I saw it can be done in a spring file that serves
>>>>>> cases for WADL Auto Generation at Runtime.
>>>>>> But where/how should i do it in the pom.xml for the
>>>>>> cxf-java2wadl-plugin in order for it to be activated during build
>>>>>> time
>>>>>>
>>>>>>
>>>>>> Thanks,
>>>>>> Eyal
>>>>>>
>>>>>>
>>>>>> -----Original Message-----
>>>>>> From: Sergey Beryozkin [mailto:[email protected]]
>>>>>> Sent: 17 October, 2017 17:48
>>>>>> To: Eyal Weingart <[email protected]>; users
>>>>>> <[email protected]>
>>>>>> Subject: Re: cxf-java2wadl-plugin java2wadl questions
>>>>>>
>>>>>> Hi,
>>>>>> On 17/10/17 15:28, Eyal Weingart wrote:
>>>>>>> Thanks Sergey for the quick response.
>>>>>>>
>>>>>>> 1. Regarding the customization option, one example i can think
>>>>>>> of (and it relates to issue#2 below) is that we want to use
>>>>>>> multiple DocTarget.RESPONSE in order to display multiple error
>>>>>>> codes and since the generic code does not support it then this
>>>>>>> logic could have been applied in the customization class.
>>>>>>>
>>>>>> Well, there are so many possible customization points that one
>>>>>> can think of, some parts like the docs can be easier customized
>>>>>> than others, but FYI, nearly all of if not all of methods in
>>>>>> WADLGenerator are protected.
>>>>>> Create MyWadlGenerator extending WADLGenerator, override whatever
>>>>>> is needed, and register MyWadlGenerator as a jaxrs:provider
>>>>>>
>>>>>>> 3. Sorry, but did not understand the answer regarding generating
>>>>>>> 1 WADL per 1 Rest API class.
>>>>>>> Each Rest API class is a different service so don't you
>>>>>>> think it should have the option to have its own WADL file?
>>>>>>>
>>>>>> It depends. They can be part of the composite service, and quite
>>>>>> often, they can share the same (XML) schema types. It's not
>>>>>> something WADLGenerator should be concerned about, trying to push
>>>>>> each service docs into a separate file, and thinking of how to
>>>>>> avoid the schema duplication.
>>>>>>
>>>>>> If, in your case, each class does indeed represent a standalone
>>>>>> service, then IMHO it would be better to create N
>>>>>> jaxrs:endpoints, one per each class, as opposed to having 1
>>>>>> endpoint with N classes
>>>>>>
>>>>>> Sergey
>>>>>>
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Eyal
>>>>>>>
>>>>>>> -----Original Message-----
>>>>>>> From: Sergey Beryozkin [mailto:[email protected]]
>>>>>>> Sent: 17 October, 2017 00:06
>>>>>>> To: users <[email protected]>
>>>>>>> Cc: Eyal Weingart <[email protected]>
>>>>>>> Subject: Re: cxf-java2wadl-plugin java2wadl questions
>>>>>>>
>>>>>>> Hi
>>>>>>> On 16/10/17 12:35, Eyal Weingart wrote:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Not sure to whom i need to send my Questions so hopefully one
>>>>>>>> of you can help me.
>>>>>>>>
>>>>>>> Forwarding to the CXF users list
>>>>>>>
>>>>>>>> I want to use the maven plugin cxf-java2wadl-plugin in order to
>>>>>>>> generate WADL from Java rest APIs in build time but i found few
>>>>>>>> issues with that:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> 1. Is there a way to custom the generator class so i can
>>>>>>>> apply some business code during the build? (is it the
>>>>>>>> org.apache.cxf.jaxrs.model.wadl.WadlGenerator that generates
>>>>>>>> it?)
>>>>>>>
>>>>>>> What do you need to customize in the generated WADL ?
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> 2. When i use multiple DocTarget.RESPONSE in the rest API
>>>>>>>> annotations then it generates only the first one it finds
>>>>>>>>
>>>>>>> Right, because WADLGenerator only creates a single wadl:response
>>>>>>> per a given operation
>>>>>>>>
>>>>>>>> 3. If i define more than 1 classResourceNames in the
>>>>>>>> configuration in the pom.xml then it generates all services
>>>>>>>> under
>>>>>>>> 1 application.wadl file so if i want 1 WADL file per 1 rest API
>>>>>>>> class then i need to define multiple <execution> (1 execution
>>>>>>>> per
>>>>>>>> 1 Rest
>>>>>>>> class) - is there a nicer way of doing it?
>>>>>>>>
>>>>>>> There's no way to auto-gen 1 wadl per 1 class resource - it
>>>>>>> would be hard to achieve because most likely these class
>>>>>>> resources will share the schema
>>>>>>>
>>>>>>> Sergey
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Example of how i configured it in the pom.xml:
>>>>>>>>
>>>>>>>> <plugin>
>>>>>>>>
>>>>>>>> <groupId>org.apache.cxf</groupId>
>>>>>>>>
>>>>>>>>
>>>>>>>> <artifactId>cxf-java2wadl-plugin</artifactId>
>>>>>>>>
>>>>>>>> <version>3.1.4</version>
>>>>>>>>
>>>>>>>> <executions>
>>>>>>>>
>>>>>>>> <execution>
>>>>>>>>
>>>>>>>> <id>process-classes1</id>
>>>>>>>>
>>>>>>>> <phase>process-classes</phase>
>>>>>>>>
>>>>>>>> <goals>
>>>>>>>>
>>>>>>>> <goal>java2wadl</goal>
>>>>>>>>
>>>>>>>> </goals>
>>>>>>>>
>>>>>>>>
>>>>>>>> <configuration>
>>>>>>>>
>>>>>>>> <classResourceNames>
>>>>>>>>
>>>>>>>> <classResourceName>com.exlibris.primo.webservices.rest.EShelfRe
>>>>>>>> s
>>>>>>>> t
>>>>>>>> A
>>>>>>>> p
>>>>>>>> i<
>>>>>>>> /
>>>>>>>> classResourceName>
>>>>>>>>
>>>>>>>> </classResourceNames>
>>>>>>>>
>>>>>>>> <applicationTitle>Primo</applicationTitle>
>>>>>>>>
>>>>>>>> <attachWadl>true</attachWadl>
>>>>>>>>
>>>>>>>> </configuration>
>>>>>>>>
>>>>>>>> </execution>
>>>>>>>>
>>>>>>>> </executions>
>>>>>>>>
>>>>>>>> </plugin>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks in advance
>>>>>>>>
>>>>>>>> Eyal
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Sergey Beryozkin
>>>>>>>
>>>>>>> Talend Community Coders
>>>>>>> http://coders.talend.com/
>>>>>>>
>>
>>
>> --
>> Sergey Beryozkin
>>
>> Talend Community Coders
>> http://coders.talend.com/
>>