stoicflame / enunciate Goto Github PK
View Code? Open in Web Editor NEWBuild-time enhancement tool for Java-based Web services projects
Home Page: http://enunciate.webcohesion.com/
License: Other
Build-time enhancement tool for Java-based Web services projects
Home Page: http://enunciate.webcohesion.com/
License: Other
Api docs was working just fine until I bring this dependency in my maven pom:
org.apache.kafka
kafka_2.10
0.8.0
mvn compile -X
<...>
[DEBUG] Noticed class kafka.Kafka. in .m2\repository\org\apache\kafka\kafka_2.10\0.8.0\kafka_2.10-0.8.0.jar.
<...>
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(String.java:658)
at org.codehaus.enunciate.main.ImportedClassesClasspathHandler.handleResource(ImportedClassesClasspathHandler.java:55)
When decompiling the JAR, here is the name of this class: kafka.Kafka$
I have the following API:
/**
* [...]
* @return the list of some data corresponding to the given name
* @HTTP 404 if no data are found for this name
*/
@GET
@Path(RestConstant.PATH_DATA)
public List<SomeData> findSomeDataByName(@QueryParam("name") String name)
{
[...]
}
This results in the following Response Body
element: (custom)
media types: application/json
the list of some data corresponding to the given name
Ie. my List<SomeData>
is shown as (custom)
.
SomeData
is a Pojo class with an @XmlRootElement
annotation. It is correctly listed in another API returning one instance of this class.
I would expect the information to look like:
Response Body
element: List of someData
media types: application/json
or similar ("Array of" is OK too, http://json.org/ uses the terms interchangeably.
Ie. this issue suggests that types List
and Map
should be handled gracefully when their generic type is known by Enunciate, as they are base Json types.
Mixing @Form and @FormParam generates the error message:
An entity parameter must be of type MultivaluedMap<String, String> if there is another parameter annotated with @FormParam.
as found in DefaultValidator.java:222
RESTEasy seems to have no problem with a declaration of the form:
public String myMethod(..., @Form MyClass, @FormParam("var1") String var1, @FormParam("var2") String var2) { ... }
If annotating a getter for a non-primitive type, e.g. String, as required=true, then the Enunciate generated documentation will state that min/max occurs is 1/1, but the JSON document generated for Swagger has "required" : false
For the AddressBook example:
@xmlelement(required = true)
public String getName() {
return name;
}
results in:
"name" : {
"required" : false,
"description" : "The get return name of the contact.",
"type" : "string"
}
It would be nice to have a Fault Types section in the Data Model documentation page generated by enunciate.
This section could be similar to the existing Data Elements and Data Types sections but for @WebFaults
.
Property:
<services>
<rest defaultRestSubcontext="/whatever" />
</services>
will be ignored if, for example, module contains <xml disabled="true"/>
Thus resulting mount points for API calls start with ./rest/...
instead of ./whatever/...
Enunciate version: 1.29
Javadoc @throws description is not used when on new line :
/**
* ...
* @throws InvalidParameterException
* if the given parameter is invalid
*/
It works if on the same line :
/**
* ...
* @throws InvalidParameterException if the given parameter is invalid
*/
The Swagger-UI version currently being used in enunciate is old. The latest version supports using custom headers, etc. for making requests through the UI. Would be great to have those features out of the box when enunciate populates the swagger-ui.
If that is too much work, it might make sense to allow users to just take a dump of the generated swagger schema, and then plugin their own customized version of the swagger-ui.
Hi there!
When generating for JAX-RS off of the Javadoc the pre/code tags that are contained within a @param tag are generated as single-line only. While the same code in a return statement generates multi-line as expected.
This is being generated with Default settings and default configuration settings. Screenshot attached for reference.
@Path("/test")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public interface TestRestService {
/**
* <p>
* This is some text.
* </p>
*
* @param testQueryParam
* <em>Required</em> <strong>string</strong> Test Parameter.
* @param testJaxbObject
* <p>
* The test object
* </p>
*
* <pre><code><codes>
* <code>This</code>
* <code>is</code>
* <code>a</code>
* <code>multiline</code>
* <code>test.</code>
* </codes></code></pre>
*
* @since v1
* @return <p>
* a response
* </p>
*
* <pre><code><codes>
* <code>This</code>
* <code>is</code>
* <code>another</code>
* <code>multiline</code>
* <code>test.</code>
* </codes></code></pre>
*/
@GET
public TestJaxbObject test(@QueryParam("testQueryParam") String testQueryParam, TestJaxbObject testJaxbObject);
}
Hi there! I love the tool, but running into a lot of wasted time due to limited documentation. A lot of the features such as where the "Request Body", "Response Body" and other such fields come from I'm stuck with guessing until I eventually find how it is mapped.
Hoping that some verbiage could be added to explain these mappings and make it easier for use.
Model names in the swagger json schema get generated with name = prefix + "_" + qname.getLocalPart();
^1
This becomes a bit ugly in the generated documentation, as names become things like ns0_download
, ns0_onlineResource
, and so on.
It would be nice if this could be disabled, so that model names become Download
, OnlineResource
, ...
Hi,
we have a problem with the XML parsing in the IOS driver. I took a lock =
in the git repo and think there is a bug in client-complex-type.fmt:
Starting from line 931 we have the following code:
else {
//end wrapper element =
"{${element.wrapperNamespace!""}}${element.wrapperName}"
status =3D xmlTextReaderAdvanceToNextStartOrEndElement(reader);
}
But we already moved to the next start or end element in line 919/920:
[#if element.wrapped]
status =3D xmlTextReaderAdvanceToNextStartOrEndElement(reader);
This causes if we have 2 child element one after another only the first =
gets parsed correct. For example if we have the following XML:
<Product>
.
.
.
<Variants>
<Variant>...</Variant>
<Variant>...</Variant>
</Variants>
<Choices>
<Choice>...
</Choices>
..
</Product>
And we parse the "Variant" block. The line in 920 moves to "Variants"
after that the xmlTextReaderAdvanceToNextStartOrEndElement in line 933
moves to "Choices" which is wrong. Is there a reason for the else part
starting from 931?
Greetings
Alex
Having this kind of method
@POST
@Consumes(MediaType.APPLICATION_JSON)
@TypeHint(Data.class)
public void myMethod(final Data data) {...}
the WADL generated by Enunciate is
<wadl:request>
<wadl:representation mediaType="application/json"/>
</wadl:request>
instead of
<wadl:request>
<wadl:representation mediaType="application/json" element="data" />
</wadl:request>
if I remove @Consumes(MediaType.APPLICATION_JSON)
then I get
<wadl:request>
<wadl:representation mediaType="*/*" element="data"/>
<wadl:representation mediaType="application/xml" element="data"/>
</wadl:request>
(FurtherMore the wadl also generates a
<wadl:response>
<wadl:representation mediaType="*/*" element="data"/>
<wadl:representation mediaType="application/xml" element="data"/>
</wadl:response>
while the java method has void return type)
I tried to put the Facet annotation in a "Data Model" class but I get:
Failed to execute goal org.codehaus.enunciate:maven-enunciate-plugin:1.27:assemble (default) on project gui: Problem assembling the enunciate app. compile failed. -> [Help 1]
So probably I misunderstood the usage of Facet but it's really useful for us if it is possible to drop abstract classes from the Data Model documentation
Hi Ryan
First thanks for this package (enunciate) .
However unfortunately I can't use it! a it is developed with Spring 2.5.4 and I have to use it with Spring 3.0.5.RELEASE.
I have tried to use 3.0.5.RELEASE but then there is a certain subtle bug
that if one accesses Soup service and then a Rest service, a following exception occurs within enunciate framework (stack trace below)
This defect is reproducible and I traced it to Spring libraries dependencies (switching to 2.5.4 completely) and doing maven overrides gets rid of the exception (but then of course if libraries are using Spring 3.x.x this will only work if methods coded are backwards compatible with Spring 2.5.4
Thanks and looking forward any suggestions (meantime I will be going with Apache WS for the time being)
org.springframework spring-aspects 2.5.4 org.springframework spring-context-support 2.5.4 org.springframework spring-core 2.5.4 org.springframework spring-beans 2.5.4stack trace:
HTTP ERROR 500
Problem accessing /numbers-appfuse-services/api/numbers/results. Reason:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cxf-NumbersService': Invocation of init method failed; nested exception is javax.xml.ws.WebServiceException: java.lang.RuntimeException: Soap 1.1 endpoint already registered on address /services/NumbersService
Caused by:
java.lang.RuntimeException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cxf-NumbersService': Invocation of init method failed; nested exception is javax.xml.ws.WebServiceException: java.lang.RuntimeException: Soap 1.1 endpoint already registered on address /services/NumbersService
at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:96)
at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:86)
at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:64)
at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:53)
at org.apache.cxf.transport.servlet.CXFServlet.updateContext(CXFServlet.java:142)
at org.apache.cxf.transport.servlet.CXFServlet.loadSpringBus(CXFServlet.java:104)
at org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:73)
at org.apache.cxf.transport.servlet.AbstractCXFServlet.init(AbstractCXFServlet.java:84)
at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:440)
at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221)
at org.codehaus.enunciate.modules.cxf.CXFAdaptedServletFilter.doFilter(CXFAdaptedServletFilter.java:32)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
at org.codehaus.enunciate.modules.cxf.CXFAdaptedServletFilter.doFilter(CXFAdaptedServletFilter.java:32)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
at org.codehaus.enunciate.modules.cxf.CXFAdaptedServletFilter.doFilter(CXFAdaptedServletFilter.java:32)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
at org.codehaus.enunciate.webapp.HTTPRequestContextFilter.doFilter(HTTPRequestContextFilter.java:36)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
The following errors cause the Objective-C module to fail when building enunciate version 1.27:
[exec] /Users/furtim/GitCode/enunciate/obj-c/target/enunciate/gen/obj-c/enunciate.m:5690:80: error: format specifies type 'char *' but the argument has type 'NSString *' [-Werror,-Wformat]
[exec] NSLog(@"Attempt to read enum value failed: %s doesn't match an enum value.", _color);
[exec] ~~ ^~~~~~
[exec] %@
[exec] /Users/furtim/GitCode/enunciate/obj-c/target/enunciate/gen/obj-c/enunciate.m:6652:80: error: format specifies type 'char *' but the argument has type 'NSString *' [-Werror,-Wformat]
[exec] NSLog(@"Attempt to read enum value failed: %s doesn't match an enum value.", _lineStyle);
[exec] ~~ ^~~~~~~~~~
[exec] %@
[exec] 2 errors generated.
[exec] /Users/furtim/GitCode/enunciate/obj-c/target/enunciate/gen/obj-c/enunciate-common.m:1363:98: error: values of type 'NSInteger' should not be used as format arguments; add an explicit cast to 'long' instead [-Werror,-Wformat]
[exec] NSString *dateString = [NSString stringWithFormat: @"%04i-%02i-%02i %02i:%02i:%02i %+03i%02i", year, month, day, hour, minute, second, offset_hour, offset_minute];
[exec] ~~~~ ^~~~
[exec] %04li (long)
[exec] /Users/furtim/GitCode/enunciate/obj-c/target/enunciate/gen/obj-c/enunciate-common.m:1363:104: error: values of type 'NSUInteger' should not be used as format arguments; add an explicit cast to 'unsigned long' instead [-Werror,-Wformat]
[exec] NSString *dateString = [NSString stringWithFormat: @"%04i-%02i-%02i %02i:%02i:%02i %+03i%02i", year, month, day, hour, minute, second, offset_hour, offset_minute];
[exec] ~~~~ ^~~~~
[exec] %02lu (unsigned long)
[exec] /Users/furtim/GitCode/enunciate/obj-c/target/enunciate/gen/obj-c/enunciate-common.m:1363:111: error: values of type 'NSUInteger' should not be used as format arguments; add an explicit cast to 'unsigned long' instead [-Werror,-Wformat]
[exec] NSString *dateString = [NSString stringWithFormat: @"%04i-%02i-%02i %02i:%02i:%02i %+03i%02i", year, month, day, hour, minute, second, offset_hour, offset_minute];
[exec] ~~~~ ^~~
[exec] %02lu (unsigned long)
[exec] /Users/furtim/GitCode/enunciate/obj-c/target/enunciate/gen/obj-c/enunciate-common.m:1363:116: error: values of type 'NSUInteger' should not be used as format arguments; add an explicit cast to 'unsigned long' instead [-Werror,-Wformat]
[exec] NSString *dateString = [NSString stringWithFormat: @"%04i-%02i-%02i %02i:%02i:%02i %+03i%02i", year, month, day, hour, minute, second, offset_hour, offset_minute];
[exec] ~~~~ ^~~~
[exec] %02lu (unsigned long)
[exec] /Users/furtim/GitCode/enunciate/obj-c/target/enunciate/gen/obj-c/enunciate-common.m:1363:122: error: values of type 'NSUInteger' should not be used as format arguments; add an explicit cast to 'unsigned long' instead [-Werror,-Wformat]
[exec] NSString *dateString = [NSString stringWithFormat: @"%04i-%02i-%02i %02i:%02i:%02i %+03i%02i", year, month, day, hour, minute, second, offset_hour, offset_minute];
[exec] ~~~~ ^~~~~~
[exec] %02lu (unsigned long)
[exec] /Users/furtim/GitCode/enunciate/obj-c/target/enunciate/gen/obj-c/enunciate-common.m:1363:130: error: values of type 'NSUInteger' should not be used as format arguments; add an explicit cast to 'unsigned long' instead [-Werror,-Wformat]
[exec] NSString *dateString = [NSString stringWithFormat: @"%04i-%02i-%02i %02i:%02i:%02i %+03i%02i", year, month, day, hour, minute, second, offset_hour, offset_minute];
[exec] ~~~~ ^~~~~~
[exec] %02lu (unsigned long)
[exec] 6 errors generated.
This appears to be similar to the followed Fixed issue I found on JIRA: http://jira.codehaus.org/browse/ENUNCIATE-403
At the moment, I'm working around this by modifying the generated obj-c source files enunciate.m and enunciate-common.m. The fixes are as follows.
obj-c/target/enunciate/gen/obj-c/enunciate.m (5960, 6652): Add .UTF8String to the _color and _lineStyle arguments of NSLog().
obj-c/target/enunciate/gen/obj-c/enunciate-common.m (1363): Add .intValue to the various date component arguments of [NSString stringWithFormat:]
Of course, running a clean build removes those changes, so there probably needs to be a fix implemented back at the generate-sources phase.
Provide support for Spring WS annotations, e.g. RequestMapping
, ResponseBody
, etc.
Swagger is a tool for rest services: its provides forms which help to fill parameters (based on enriched wadl).
If swagger could be embedded within enunciate, enunciate would be much more powerful.
http://developers.helloreverb.com/swagger/
HI,
I am using enunciate 1.29 to generate the document. Below snippet is from ant and usig JDK 7.
i am getting getting below exception
C:\Users\Downloads\swagger\swagger-java-sample-app-master\swagger-java-sample-app-master\src\main\java>ant generate-document -Denunciate.javac.check=true
Buildfile: C:\Users\Downloads\swagger\swagger-java-sample-app-master\swagger-java-sample-app-master\src\main\java\build.xml
[mkdir] Created dir: C:\Users\Downloads\swagger\swagger-java-sample-app-master\swagger-java-sample-app-master\src\main\java\lib
[mkdir] Created dir: C:\Users\Downloads\swagger\swagger-java-sample-app-master\swagger-java-sample-app-master\src\main\java\lib\ext
generate-document:
Loading modules from the specified classpath....
Discovered module c
Discovered module csharp
Discovered module docs
Discovered module java-client
Discovered module jaxws-ri
Discovered module jaxws-support
Discovered module jersey
Discovered module obj-c
Discovered module php
Discovered module ruby
Discovered module xml
Loading config C:\Users\Downloads\swagger\swagger-java-sample-app-master\swagger-java-sample-app-master\src\main\java\enunciate-full.xml
initializing enunciate.
invoking enunciate:generate step...
[enunciate]
[enunciate] warning: The apt tool and its associated API are planned to be
[enunciate] removed in the next major JDK release. These features have been
[enunciate] superseded by javac and the standardized annotation processing API,
[enunciate] javax.annotation.processing and javax.lang.model. Users are
[enunciate] recommended to migrate to the annotation processing features of
[enunciate] javac; see the javac man page for more information.
[enunciate] An exception has occurred in apt (1.7.0_80-ea). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport) after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report. Thank you.
[enunciate] java.lang.NullPointerException
[enunciate] at com.sun.tools.apt.comp.Apt$AptTreeScanner.visitAnnotation(Apt.java:180)
[enunciate] at com.sun.tools.javac.tree.JCTree$JCAnnotation.accept(JCTree.java:2004)
[enunciate] at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
[enunciate] at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:57)
[enunciate] at com.sun.tools.javac.tree.TreeScanner.visitNewArray(TreeScanner.java:212)
[enunciate] at com.sun.tools.javac.tree.JCTree$JCNewArray.accept(JCTree.java:1412)
[enunciate] at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
[enunciate] at com.sun.tools.javac.tree.TreeScanner.visitAssign(TreeScanner.java:221)
[enunciate] at com.sun.tools.javac.tree.JCTree$JCAssign.accept(JCTree.java:1466)
[enunciate] at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
[enunciate] at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:57)
[enunciate] at com.sun.tools.javac.tree.TreeScanner.visitAnnotation(TreeScanner.java:300)
[enunciate] at com.sun.tools.apt.comp.Apt$AptTreeScanner.visitAnnotation(Apt.java:179)
[enunciate] at com.sun.tools.javac.tree.JCTree$JCAnnotation.accept(JCTree.java:2004)
[enunciate] at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
[enunciate] at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:57)
[enunciate] at com.sun.tools.javac.tree.TreeScanner.visitModifiers(TreeScanner.java:295)
[enunciate] at com.sun.tools.javac.tree.JCTree$JCModifiers.accept(JCTree.java:2029)
[enunciate] at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
[enunciate] at com.sun.tools.javac.tree.TreeScanner.visitMethodDef(TreeScanner.java:84)
[enunciate] at com.sun.tools.apt.comp.Apt$AptTreeScanner.visitMethodDef(Apt.java:171)
[enunciate] at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:669)
[enunciate] at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
[enunciate] at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:57)
[enunciate] at com.sun.tools.javac.tree.TreeScanner.visitClassDef(TreeScanner.java:80)
[enunciate] at com.sun.tools.apt.comp.Apt$AptTreeScanner.visitClassDef(Apt.java:165)
[enunciate] at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:591)
[enunciate] at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
[enunciate] at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:57)
[enunciate] at com.sun.tools.javac.tree.TreeScanner.visitTopLevel(TreeScanner.java:68)
[enunciate] at com.sun.tools.apt.comp.Apt$AptTreeScanner.visitTopLevel(Apt.java:143)
[enunciate] at com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:459)
[enunciate] at com.sun.tools.apt.comp.Apt.main(Apt.java:232)
[enunciate] at com.sun.tools.apt.main.AptJavaCompiler.compile(AptJavaCompiler.java:270)
[enunciate] at com.sun.tools.apt.main.Main.compile(Main.java:1127)
[enunciate] at com.sun.tools.apt.main.Main.compile(Main.java:989)
[enunciate] at com.sun.tools.apt.Main.processing(Main.java:113)
[enunciate] at com.sun.tools.apt.Main.process(Main.java:103)
[enunciate] at com.sun.tools.apt.Main.process(Main.java:85)
[enunciate] at org.codehaus.enunciate.main.Enunciate.invokeApt(Enunciate.java:817)
[enunciate] at org.codehaus.enunciate.main.Enunciate.doGenerate(Enunciate.java:401)
[enunciate] at org.codehaus.enunciate.main.Enunciate$Stepper.step(Enunciate.java:1799)
[enunciate] at org.codehaus.enunciate.main.Enunciate$Stepper.stepTo(Enunciate.java:1831)
[enunciate] at org.codehaus.enunciate.main.Enunciate.execute(Enunciate.java:181)
[enunciate] at org.codehaus.enunciate.main.EnunciateTask.execute(EnunciateTask.java:170)
[enunciate] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
[enunciate] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[enunciate] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[enunciate] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[enunciate] at java.lang.reflect.Method.invoke(Method.java:606)
[enunciate] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[enunciate] at org.apache.tools.ant.Task.perform(Task.java:348)
[enunciate] at org.apache.tools.ant.Target.execute(Target.java:435)
[enunciate] at org.apache.tools.ant.Target.performTasks(Target.java:456)
[enunciate] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
[enunciate] at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
[enunciate] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[enunciate] at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
[enunciate] at org.apache.tools.ant.Main.runBuild(Main.java:851)
[enunciate] at org.apache.tools.ant.Main.startAnt(Main.java:235)
[enunciate] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
[enunciate] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
BUILD FAILED
C:\Users\Downloads\swagger\swagger-java-sample-app-master\swagger-java-sample-app-master\src\main\java\build.xml:129: org.codehaus.enunciate.EnunciateException: The invocation of APT has failed. See http://jira.codehaus.org/browse/ENUNCIATE-771 for a case where this has been seen. There is no explanation for this error.
at org.codehaus.enunciate.main.Enunciate.invokeApt(Enunciate.java:819)
at org.codehaus.enunciate.main.Enunciate.doGenerate(Enunciate.java:401)
at org.codehaus.enunciate.main.Enunciate$Stepper.step(Enunciate.java:1799)
at org.codehaus.enunciate.main.Enunciate$Stepper.stepTo(Enunciate.java:1831)
at org.codehaus.enunciate.main.Enunciate.execute(Enunciate.java:181)
at org.codehaus.enunciate.main.EnunciateTask.execute(EnunciateTask.java:170)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:435)
at org.apache.tools.ant.Target.performTasks(Target.java:456)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
at org.apache.tools.ant.Main.runBuild(Main.java:851)
at org.apache.tools.ant.Main.startAnt(Main.java:235)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Total time: 2 seconds
Please guide me to solve this issue.
Should be reading @ApplicationPath annotation, which is in my case @ApplicationPath("/rest/version1"). This is causing every link from docs to fail.
REST methods that return json type (ie not xml) are always described as element: (custom), even if the class itself is correctly referenced on the main page.
JAXB annotated classes are correctly referenced.
Hi,
I'm trying enunciate and do not succeed to make it work in the directory integration-tests/:
git clone https://github.com/stoicflame/enunciate
cd cd enunciate/integration-tests
mvn enunciate:docs
Maven does not find 1.30-SNAPSHOT:
[WARNING] The POM for org.codehaus.enunciate:maven-enunciate-cxf-plugin:jar:1.30-SNAPSHOT is missing, no dependency information available
[WARNING] Failed to retrieve plugin descriptor for org.codehaus.enunciate:maven-enunciate-cxf-plugin:1.30-SNAPSHOT: Plugin org.codehaus.enunciate:maven-enunciate-cxf-plugin:1.30-SNAPSHOT or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.codehaus.enunciate:maven-enunciate-cxf-plugin:jar:1.30-SNAPSHOT
Hi.
I'm trying to get rid of the generic ns0 namespace (and so ns0.xsd) that is used during the documentation generation. Like described here:
http://docs.codehaus.org/display/ENUNCIATE/Customizing+Namespace+Prefixes
This should work for @webservice. But I'm using REST with JSON only. How do I specify a namespace in REST so enunciate will pick it up?
I tried to define the @XmlSchema in a package-info.java in the package of the JAX-RS interfaces - like described in the docs. But this doesn't seem to be taken into account (except for the splash documentation provided as javadoc there). I also put the tags into enunciate.xml like described.
Any idea what I'm missing?
Thanks!
Veit
Hi Ryan, I saw that version 1.29 is available, however I can't seem to be able to add it through Maven.
Is version 1.29 in the Maven repository?
Hi,
we have a problem with the IOS driver. The problem is, that a Java long value is 64bit and an Objective-C long is only 32bit. So if we try to send long values we have to change the client files to use a "long long" value. Is it somehow possible to change the type the driver use?
Greetings
Alex
Hi.
I'm using enunciate 1.30 for generating documentation for my REST api.
Somehow parameters on my subresource locators aren't found for documentation:
public interface SubResource {
/**
* Gets the sub sub resource.
*
* @param myId the id of the sub sub resource to get.
* @return the sub sub resource.
*/
@path("{myId}")
SubSubResource getSubSubResource(@PathParam("myId") String myId);
}
When I look at the generated documentation for the SubSubResource, myId states (no documentation provided).
I am missing something?
Thanks.
Veit
Hello,
i'm trying to use the last version of the enunciate maven plugin :
<build>
<plugins>
<plugin>
<groupId>org.codehaus.enunciate</groupId>
<artifactId>maven-enunciate-plugin</artifactId>
<version>1.28</version>
<executions>
<execution>
<goals>
<goal>docs</goal>
</goals>
<configuration>
<!-- the directory where to put the docs -->
<docsDir>${project.build.directory}/docs</docsDir>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
But when i launch the docs goal of this plugin with maven 3 (Jdk 7), i have this kind of error :
warning: The apt tool and its associated API are planned to be
removed in the next major JDK release. These features have been
superseded by javac and the standardized annotation processing API,
javax.annotation.processing and javax.lang.model. Users are
recommended to migrate to the annotation processing features of
javac; see the javac man page for more information.
i have try to pass javacArguments
in the configuration of the plugin without any success.
It would be nice for Enunciate to provide a Gradle plugin.
I am running into problems trying to configure enunciate against a Spring 3 application. I have a set of RESTful endoints that are annotated as @controller but when I include enunciate in my pom along with the config file, the only thing that gets generated against are some random XML schema elements.
Is there some additional dependencies needed in my pom to get spring (and swagger) to parse out.
From the pom, my plugin is as follows:
org.codehaus.enunciate
maven-enunciate-spring-plugin
1.27
enunciate.xml
assemble
And my enunciate.xml is:
Any pointers would be gratefully received! Thanks
Hi,
I am trying to work out if its possible to have a dynamic URL which will be used for the JSON generation.
deployment protocol="http" host="server" context="/context"/
gives a hard url to the specified server, but i want it to be the same url as where swagger has been deployed.
I will deploy the application on 3 environments (dev/acc/prod) and want the swagger documentation to reflect this. Now i need to make 3 seperate builds to change the url used for swagger.
I want either to use a relative url or a list of urls (which fetches the resources on that url). Is this possible or am i asking too much?
Note: the localhost:8080 default isnt working for me for the default :(
The example in issue #6 that you give also works fine for me.
However when the class which you are providing the type hint for exists in a different Maven project then you get the output:
element: (custom)
I am including my other Maven project as a dependency e.g
<dependency>
<groupId>uk.co.somecompany.db</groupId>
<artifactId>someDb</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
The class being used for the type hint is
uk.co.somecompany.db.value.Device
The class is annotated with @XmlRootElement
At my RESTful endpoint the annotations are
@get
@path("{id: [0-9]*}")
@produces(MediaType.APPLICATION_JSON)
@typehint(Device.class)
public Response read( @PathParam( "id" ) long id )
Am missing something?
In our REST api we are using capture expressions on the path
/resource/v2/user/{userBy: (id|name)}/
The capture regular expressions do not get translated into the documentation. Is this by design or is there an option I am missing that will allow me to make this show up?
Or an annotation that would allow me to specify a valid list of options for some of these?
If this could be done then it would be useful to have the ability to put this into the swagger resource files with an enum type allowing for swagger to have a drop down of the possible options
We use the jaxws module of Enunciate. To prevent our API users to use deprecated fields, it would be nice if these fields were excluded from the Example XML and Example JSON outputs. Other parts of the documentation already show deprecated fields with a red background and our JavaDocs states the reason for the deprecation. But for the examples, it would be very nice to exclude them.
Revamp the JSON support. Don't make it a second-class citizen. Use the Jackson annotations.
Hello together,
I want to customize some parts of enunciate, but therefore I must debug enunciate to find the right way. I checked out the source. But if I start enunciate out of Eclipse to document your sample project "wannabecool" it doesn't generate a API. It will be generated a war file without any html files inside only. If I start enunciate out of maven (mvn clean install the "wannabecool" project), the API-Html files will be generated. I do not really know, what I did wrong....
I am using following configuration to start enunciate out of eclipse:
-vv
-f C:\temp\enunciate\enunciate-1.30-RC1\enunciate-1.30-RC1\samples\wannabecool\src\conf\enunciate.xml
-g C:\temp\enunciate\work\generated
-c C:\temp\enunciate\work\compiled
-b C:\temp\enunciate\work\build
-p C:\temp\enunciate\work\package
C:\temp\enunciate\enunciate-1.30-RC1\enunciate-1.30-RC1\samples\wannabecool\src\main\java\org\codehaus\enunciate\api\ExclusiveGroupException.java
C:\temp\enunciate\enunciate-1.30-RC1\enunciate-1.30-RC1\samples\wannabecool\src\main\java\org\codehaus\enunciate\api\PermissionDeniedException.java
C:\temp\enunciate\enunciate-1.30-RC1\enunciate-1.30-RC1\samples\wannabecool\src\main\java\org\codehaus\enunciate\api\PersonaService.java
C:\temp\enunciate\enunciate-1.30-RC1\enunciate-1.30-RC1\samples\wannabecool\src\main\java\org\codehaus\enunciate\api\SocialGroupService.java
C:\temp\enunciate\enunciate-1.30-RC1\enunciate-1.30-RC1\samples\wannabecool\src\main\java\org\codehaus\enunciate\domain\link\Link.java
C:\temp\enunciate\enunciate-1.30-RC1\enunciate-1.30-RC1\samples\wannabecool\src\main\java\org\codehaus\enunciate\domain\link\SocialGroup.java
C:\temp\enunciate\enunciate-1.30-RC1\enunciate-1.30-RC1\samples\wannabecool\src\main\java\org\codehaus\enunciate\domain\persona\Name.java
C:\temp\enunciate\enunciate-1.30-RC1\enunciate-1.30-RC1\samples\wannabecool\src\main\java\org\codehaus\enunciate\domain\persona\Persona.java
C:\temp\enunciate\enunciate-1.30-RC1\enunciate-1.30-RC1\samples\wannabecool\src\main\java\org\codehaus\enunciate\impl\PersonaServiceImpl.java
C:\temp\enunciate\enunciate-1.30-RC1\enunciate-1.30-RC1\samples\wannabecool\src\main\java\org\codehaus\enunciate\impl\SocialGroupServiceImpl.java
Eclipse starts the enunciate project, but the produced war file hasn't any html files inside. There are no errors in the log.
Could anybody helps me?
Greetings
Fival
It would be handy to have the documentation include JSR 250-defined security roles references (@RolesAllowed, @permitAll, @Denyall) that are used to annotate the corresponding web services.
(This is a copy of the soon-to-be-unavailable https://jira.codehaus.org/browse/ENUNCIATE-618 )
I followed the instructions listed at:
http://docs.codehaus.org/display/ENUNCIATE/Documentation+Only#DocumentationOnly-Ant
But when I execute the Ant task I get:
WARNING: Unknown artifact 'docs'. Artifact will not be exported.
Any help would be greatly appreciated!!
Hi,
I've had a few issues related to Facets which weren't occuring when I was using DocumentationGroups.
<docs groupRestResources="http://domain.com/facets#myfacet"/>
Unfortunately, the following XSD validation fails as the groupRestResources value is enumerated and can only contain either byPath or byDocumentationGroup:
http://enunciate.codehaus.org/schemas/enunciate-1.27.xsd
can not change [assumed-base-address] in swagger-ui filter it always give the predefined assumed-base-address
http://localhost:8080/full
and want to change it to
When using the @org.codehaus.enunciate.jaxrs.TypeHint annotation decorate a method which returns a javax.ws.rs.core.Response, it does not appear that Enunciate uses this annotation to determine the response type for the service method.
E.g.
@GET
@Path("{customerId}")
@Produces(MediaType.APPLICATION_JSON)
@org.codehaus.enunciate.jaxrs.TypeHint(CustomerData.class)
public Response getCustomer(@PathParam("customerId")
Does not produce output with the correct response type.
@GET
@Path("{customerId}")
@Produces(MediaType.APPLICATION_JSON)
public CustomerData getCustomer(@PathParam("customerId")
Does produce the desired result.
Currently, only the @QueryParam and @PathParam are taken into account in the WADL (AFAIK).
Example:
@Path("/share")
public class SharingResource {
@POST
@Path("/{shareMethod}")
public ShareResponse sendShare(@PathParam("shareMethod") String method,
@FormParam("itemId") List<Long> itemIds,
@FormParam("recipient") List<String> recipients) {
...
The generated WADL, without the itemId and recipient parameters:
<wadl:resource path="/share/{shareMethod}">
<wadl:param name="shareMethod" style="template"/>
<wadl:method name="POST">
<wadl:request/>
<wadl:response>
<wadl:representation mediaType="*/*"/>
<wadl:representation mediaType="application/xml"/>
</wadl:response>
</wadl:method>
</wadl:resource>
In the documentation the form parameters are described perfectly.
According to the WADL specs the form-encoded parameters should have the following representation, inside the request element:
<request>
<representation mediaType="application/x-www-form-urlencoded">
<name="itemId" style="query"/>
<name="recipient" style="query"/>
</representation>
</request>
I would love to see the form parameters included in the WADL. Why I care about this? ApiGee Console on the go seems awesome, and it is the only missing piece from your generated WADL.
Cheers,
Omar
@Consumes and @Produces allow comma separated lists of types to be used:
A list of media types. Each entry may specify a single type or consist of a comma separated list of types. E.g. {"image/jpeg,image/gif", "image/png"}. Use of the comma-separated form allows definition of a common string constant for use on multiple targets.
When trying to process a REST service using this syntax with enunciate, it fails with an error like the following:
[jersey] Invalid produces MIME type: application/json,application/xml(Error parsing media type 'application/json,application/xml').
I'm trying to upgrade maven-enunciate-plugin from 1.2.0 to 1.2.1 or latter and getting this error:
[INFO] --- maven-enunciate-plugin:1.30.1:assemble (default) @ exammple-integration ---
Mar 31, 2015 6:23:44 PM org.apache.commons.digester.Digester endElement
SEVERE: End event threw exception
java.lang.NoSuchMethodException: No such accessible method: addClientPackageConversion() on object: org.codehaus.enunciate.modules.java_client.config.ClientPackageConversion
at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:279)
at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:220)
at org.apache.commons.digester.Rule.end(Rule.java:257)
at org.apache.commons.digester.Digester.endElement(Digester.java:1345)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:607)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:183)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1323)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2750)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:625)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:828)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:757)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:133)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1211)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:551)
at org.apache.commons.digester.Digester.parse(Digester.java:1940)
at org.codehaus.enunciate.config.EnunciateConfiguration.load(EnunciateConfiguration.java:893)
at org.codehaus.enunciate.config.EnunciateConfiguration.load(EnunciateConfiguration.java:749)
at org.codehaus.enunciate.config.EnunciateConfiguration.load(EnunciateConfiguration.java:740)
at org.codehaus.enunciate.ConfigMojo.loadConfig(ConfigMojo.java:490)
at org.codehaus.enunciate.ConfigMojo.execute(ConfigMojo.java:332)
at org.codehaus.enunciate.AssembleMojo.execute(AssembleMojo.java:56)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:355)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:216)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:160)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:622)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:622)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] -------------------------------------------------------------
Configuration in pom.xml looks like
<plugin>
<groupId>org.codehaus.enunciate</groupId>
<artifactId>maven-enunciate-plugin</artifactId>
<version>1.30.1</version>
<extensions>true</extensions>
<configuration>
<configFile>enunciate.xml</configFile>
<generateDir>${project.build.directory}/enunciate-generate</generateDir>
<compileDir>${project.build.directory}/enunciate-compile</compileDir>
<buildDir>${project.build.directory}/enunciate-build</buildDir>
<packageDir>${project.build.directory}/enunciate-package</packageDir>
<outputDir>${project.build.directory}</outputDir>
<artifacts>
<artifact>
<enunciateArtifactId>client.jdk15.library.binaries</enunciateArtifactId>
<artifactType>jar</artifactType>
<classifier>client</classifier>
</artifact>
<artifact>
<enunciateArtifactId>jaxws.client.library.binaries</enunciateArtifactId>
<artifactType>jar</artifactType>
<classifier>jaxws-client</classifier>
</artifact>
<artifact>
<enunciateArtifactId>docs</enunciateArtifactId>
<artifactType>zip</artifactType>
<classifier>docs</classifier>
</artifact>
</artifacts>
<exports>
<docs>${project.build.finalName}-docs.zip</docs>
</exports>
</configuration>
<executions>
<execution>
<goals>
<goal>assemble</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.codehaus.enunciate</groupId>
<artifactId>enunciate-xfire</artifactId>
<version>1.20</version>
</dependency>
<dependency>
<groupId>org.codehaus.enunciate</groupId>
<artifactId>enunciate-jaxws-client</artifactId>
<version>1.20fix01</version>
</dependency>
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.6.0</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
</dependencies>
</plugin>
From ENUNCIATE-701:
JDK 1.7 displays the following warning when using maven-enunciate-plugin 1.27:
[INFO] invoking enunciate:generate step...
warning: The apt tool and its associated API are planned to be removed in the next major JDK
release. These features have been superseded by javac and the standardized annotation processing
API, javax.annotation.processing and javax.lang.model. Users are recommended to migrate to the
annotation processing features of javac; see the javac man page for more information.*
In JDK 1.8 however, you get this:
Caused by: java.lang.NoClassDefFoundError: com/sun/mirror/apt/AnnotationProcessorFactory
at org.codehaus.enunciate.DocsMojo.loadMavenSpecificEnunciate(DocsMojo.java:107)
at org.codehaus.enunciate.ConfigMojo.execute(ConfigMojo.java:326)
at org.codehaus.enunciate.DocsMojo.execute(DocsMojo.java:81)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133)
... 20 more
Caused by: java.lang.ClassNotFoundException: com.sun.mirror.apt.AnnotationProcessorFactory
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:259)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:235)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:227)
... 24 more
This is preventing projects from upgrading to Java 8.
See this discussion for more info.
Hello, I discovered enunciate to document my SOAP service, and it is so much helpful. Many many thanks.
I'm wondering if there is currently a solution to document the JAXB data model with the javadoc or some annotations ?
If not, any hint on the complexity to extends enunciate to do so?
As I see, started work on migration to version 2.0
The main improvement of this version should be using of JSR 269 Annotation processing and JSR 166 Compiler API instead of deprecated and removed in JDK8 Sun APT tool.
Currently migrated modules are:
<modules>
<module>core-annotations</module>
<module>models</module>
<module>core</module>
<module>jaxb</module>
</modules>
I don't know are they completely migrated or not. If yes, could you release them to RC version?
Also I'm interested in maven-enunciate-slim-plugin
and maven-enunciate-plugin
bit as I see work wasn't started yet.
To track all work on this it would be great to create milestone in Github issues tracker
Mashery iodocs is a great way to document and provide sample invocation of REST services. It is nice because it is technology agnostic (node.js server/app that derives its information from JSON configuration files about the services).
The thinking was to make a new module/artifact for output from Enunciate that generates JSON configus in the iodocs format. This would allow easy integration and best of both worlds in my opinion. I have applications in various technologies and like iodocs for it's agnostic approach, but for my 75% heavy java community want them to use Enunciate for overall service stack and would like comments/information to flow clear through top to bottom.
IODocs General Info - http://mashery.com/solution/iodocs
GITHUB - https://github.com/mashery/iodocs
Example JSON - https://github.com/mashery/iodocs/blob/8e408c2a33d63f17c4eea9228b8890f2980c735a/config.json.sample
We might have an alternative as well Ryan. We're looking into contributing an enhancement to iodocs that would allow it to remotely parse a WADL file and translate to it's JSON configs. Since Enunciate generates WADL with documentation references throughout it that come from the relevant javadoc levels, that might turn into great fit for Enunciate since it already does it and also work for other languages/frameworks that either generate a WADL or people how create a WADL manually.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.