Hi
Tried with the 3.1.13 libs and now i fail on:
        [exec] Caused by: java.lang.ClassNotFoundException: 
org.apache.cxf.jaxrs.model.wadl.WadlGenerator
And i see it under cxf-rt-rs-service-description-3.1.13.jar

Not sure i will be able to "test" this locally so my next question is - do you 
plan to add it to future release, and if so when can i expect it (give or take 
:-) )?


Thanks, 
Eyal


-----Original Message-----
From: Sergey Beryozkin [mailto:[email protected]] 
Sent: 07 November, 2017 12:02
To: Eyal Weingart <[email protected]>; users 
<[email protected]>
Subject: Re: cxf-java2wadl-plugin java2wadl questions

Hi

Well, something is going wrong there given this class in the cxf-core.
You only need to get the snapshot of the cxf-java2wadl-plugin, it will work OK 
with other existing 3.1.13 libs

Sergey
On 07/11/17 07:52, Eyal Weingart wrote:
> 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.EShelfR
>>>>>>>>> e
>>>>>>>>> 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/
>>>

Reply via email to