Sahil Lele

ONOS-2485 Autogenerate swagger JSON files from WebResource classes

Change-Id: If3efcd22ce04b4579bf0d3359684b252d981913e
...@@ -51,6 +51,8 @@ ...@@ -51,6 +51,8 @@
51 <module>features</module> 51 <module>features</module>
52 <module>tools/package/archetypes</module> 52 <module>tools/package/archetypes</module>
53 <module>tools/package/branding</module> 53 <module>tools/package/branding</module>
54 + <!-- FIXME remove before release -->
55 + <module>tools/package/maven-plugin</module>
54 <module>ovsdb</module> 56 <module>ovsdb</module>
55 </modules> 57 </modules>
56 58
...@@ -94,6 +96,14 @@ ...@@ -94,6 +96,14 @@
94 </repository> 96 </repository>
95 </repositories> 97 </repositories>
96 98
99 + <!--- FIXME Needed for onos-maven-plugin. Remove before official release -->
100 + <pluginRepositories>
101 + <pluginRepository>
102 + <id>snapshots</id>
103 + <url>https://oss.sonatype.org/content/repositories/snapshots</url>
104 + </pluginRepository>
105 + </pluginRepositories>
106 +
97 <dependencyManagement> 107 <dependencyManagement>
98 <dependencies> 108 <dependencies>
99 <dependency> 109 <dependency>
...@@ -584,7 +594,7 @@ ...@@ -584,7 +594,7 @@
584 <plugin> 594 <plugin>
585 <groupId>org.onosproject</groupId> 595 <groupId>org.onosproject</groupId>
586 <artifactId>onos-maven-plugin</artifactId> 596 <artifactId>onos-maven-plugin</artifactId>
587 - <version>1.4</version> 597 + <version>1.5-SNAPSHOT</version>
588 <executions> 598 <executions>
589 <execution> 599 <execution>
590 <id>cfg</id> 600 <id>cfg</id>
...@@ -594,6 +604,13 @@ ...@@ -594,6 +604,13 @@
594 </goals> 604 </goals>
595 </execution> 605 </execution>
596 <execution> 606 <execution>
607 + <id>swagger</id>
608 + <phase>generate-resources</phase>
609 + <goals>
610 + <goal>swagger</goal>
611 + </goals>
612 + </execution>
613 + <execution>
597 <id>app</id> 614 <id>app</id>
598 <phase>package</phase> 615 <phase>package</phase>
599 <goals> 616 <goals>
......
...@@ -75,6 +75,16 @@ ...@@ -75,6 +75,16 @@
75 <version>3.4</version> 75 <version>3.4</version>
76 <scope>provided</scope> 76 <scope>provided</scope>
77 </dependency> 77 </dependency>
78 + <dependency>
79 + <groupId>com.fasterxml.jackson.core</groupId>
80 + <artifactId>jackson-databind</artifactId>
81 + <version>2.4.2</version>
82 + </dependency>
83 + <dependency>
84 + <groupId>com.fasterxml.jackson.core</groupId>
85 + <artifactId>jackson-annotations</artifactId>
86 + <version>2.4.2</version>
87 + </dependency>
78 </dependencies> 88 </dependencies>
79 89
80 <build> 90 <build>
......
...@@ -59,4 +59,13 @@ ...@@ -59,4 +59,13 @@
59 <web.context>/onos/v1</web.context> 59 <web.context>/onos/v1</web.context>
60 </properties> 60 </properties>
61 61
62 + <build>
63 + <plugins>
64 + <plugin>
65 + <groupId>org.onosproject</groupId>
66 + <artifactId>onos-maven-plugin</artifactId>
67 + </plugin>
68 + </plugins>
69 + </build>
70 +
62 </project> 71 </project>
......
...@@ -240,9 +240,8 @@ public class NetworkConfigWebResource extends AbstractWebResource { ...@@ -240,9 +240,8 @@ public class NetworkConfigWebResource extends AbstractWebResource {
240 */ 240 */
241 @DELETE 241 @DELETE
242 @Path("{subjectKey}/{subject}") 242 @Path("{subjectKey}/{subject}")
243 - @Consumes(MediaType.APPLICATION_JSON)
244 @SuppressWarnings("unchecked") 243 @SuppressWarnings("unchecked")
245 - public Response upload(@PathParam("subjectKey") String subjectKey, 244 + public Response delete(@PathParam("subjectKey") String subjectKey,
246 @PathParam("subject") String subject) { 245 @PathParam("subject") String subject) {
247 NetworkConfigService service = get(NetworkConfigService.class); 246 NetworkConfigService service = get(NetworkConfigService.class);
248 Object s = service.getSubjectFactory(subjectKey).createSubject(subject); 247 Object s = service.getSubjectFactory(subjectKey).createSubject(subject);
...@@ -261,9 +260,8 @@ public class NetworkConfigWebResource extends AbstractWebResource { ...@@ -261,9 +260,8 @@ public class NetworkConfigWebResource extends AbstractWebResource {
261 */ 260 */
262 @DELETE 261 @DELETE
263 @Path("{subjectKey}/{subject}/{configKey}") 262 @Path("{subjectKey}/{subject}/{configKey}")
264 - @Consumes(MediaType.APPLICATION_JSON)
265 @SuppressWarnings("unchecked") 263 @SuppressWarnings("unchecked")
266 - public Response upload(@PathParam("subjectKey") String subjectKey, 264 + public Response delete(@PathParam("subjectKey") String subjectKey,
267 @PathParam("subject") String subject, 265 @PathParam("subject") String subject,
268 @PathParam("configKey") String configKey) { 266 @PathParam("configKey") String configKey) {
269 NetworkConfigService service = get(NetworkConfigService.class); 267 NetworkConfigService service = get(NetworkConfigService.class);
...@@ -279,9 +277,8 @@ public class NetworkConfigWebResource extends AbstractWebResource { ...@@ -279,9 +277,8 @@ public class NetworkConfigWebResource extends AbstractWebResource {
279 * @return empty response 277 * @return empty response
280 */ 278 */
281 @DELETE 279 @DELETE
282 - @Consumes(MediaType.APPLICATION_JSON)
283 @SuppressWarnings("unchecked") 280 @SuppressWarnings("unchecked")
284 - public Response upload() { 281 + public Response delete() {
285 NetworkConfigService service = get(NetworkConfigService.class); 282 NetworkConfigService service = get(NetworkConfigService.class);
286 service.getSubjectClasses().forEach(subjectClass -> { 283 service.getSubjectClasses().forEach(subjectClass -> {
287 service.getSubjects(subjectClass).forEach(subject -> { 284 service.getSubjects(subjectClass).forEach(subject -> {
...@@ -303,9 +300,8 @@ public class NetworkConfigWebResource extends AbstractWebResource { ...@@ -303,9 +300,8 @@ public class NetworkConfigWebResource extends AbstractWebResource {
303 */ 300 */
304 @DELETE 301 @DELETE
305 @Path("{subjectKey}/") 302 @Path("{subjectKey}/")
306 - @Consumes(MediaType.APPLICATION_JSON)
307 @SuppressWarnings("unchecked") 303 @SuppressWarnings("unchecked")
308 - public Response upload(@PathParam("subjectKey") String subjectKey) { 304 + public Response delete(@PathParam("subjectKey") String subjectKey) {
309 NetworkConfigService service = get(NetworkConfigService.class); 305 NetworkConfigService service = get(NetworkConfigService.class);
310 service.getSubjects(service.getSubjectFactory(subjectKey).getClass()).forEach(subject -> { 306 service.getSubjects(service.getSubjectFactory(subjectKey).getClass()).forEach(subject -> {
311 service.getConfigs(subject).forEach(config -> { 307 service.getConfigs(subject).forEach(config -> {
......