router :: gradle-plugin

Generic generator for http router bases on a route file similar to rails. The generated classes are framework agnostic, whereas several adapters are already provided.

License

License

MIT
Categories

Categories

Gradle Build Tools
GroupId

GroupId

de.leanovate.router
ArtifactId

ArtifactId

router-gradle-plugin
Last Version

Last Version

0.10
Release Date

Release Date

Type

Type

jar
Description

Description

router :: gradle-plugin
Generic generator for http router bases on a route file similar to rails. The generated classes are framework agnostic, whereas several adapters are already provided.

Download router-gradle-plugin

How to add to project

<!-- https://jarcasting.com/artifacts/de.leanovate.router/router-gradle-plugin/ -->
<dependency>
    <groupId>de.leanovate.router</groupId>
    <artifactId>router-gradle-plugin</artifactId>
    <version>0.10</version>
</dependency>
// https://jarcasting.com/artifacts/de.leanovate.router/router-gradle-plugin/
implementation 'de.leanovate.router:router-gradle-plugin:0.10'
// https://jarcasting.com/artifacts/de.leanovate.router/router-gradle-plugin/
implementation ("de.leanovate.router:router-gradle-plugin:0.10")
'de.leanovate.router:router-gradle-plugin:jar:0.10'
<dependency org="de.leanovate.router" name="router-gradle-plugin" rev="0.10">
  <artifact name="router-gradle-plugin" type="jar" />
</dependency>
@Grapes(
@Grab(group='de.leanovate.router', module='router-gradle-plugin', version='0.10')
)
libraryDependencies += "de.leanovate.router" % "router-gradle-plugin" % "0.10"
[de.leanovate.router/router-gradle-plugin "0.10"]

Dependencies

compile (1)

Group / Artifact Type Version
de.leanovate.router : router-generator jar 0.10

provided (3)

Group / Artifact Type Version
javax.inject : javax.inject jar 1
org.gradle » gradle-core jar 2.0
org.codehaus.groovy : groovy-all jar 2.3.3

test (1)

Group / Artifact Type Version
junit : junit jar 4.11

system (1)

Group / Artifact Type Version
org.gradle » gradle-plugins jar 2.0

Project Modules

There are no modules declared in this project.

route-generator

Introduction

This is a very generic framework to use Rails-like (or Play framework like) http route files in any java-based web-framework of your choice, including (but not restricted to) plain old java servlets.

Please note: This is a Java 8 project and will not work on Java 7 or lower.

How it works

Consider you have a class SomethingController like this:

pacakge com.myself.project

public class SomethingController {
  public static void index(Response response) {
    ... do something ...
  }

  public static void create(Request request, Response response) {
    ... do something ...
  }
  
  public static void get(String id, Response response) {
    ... do something ...
  }
}

Wheras Request and Response are the request and response classes of your web-framework (line HttpServletRequest and HttpServletResponse in case of servlets).

Now you can define somewhere inside your project (default: src/main/routes) one or more .routes files like this:

something.routes

package com.myself.project

GET  /something      SomethingController.index(response)
POST /something      SomethingController.create(request, response)
GET  /something/:id  SomethingController.get(id, response)

which will be converted to a java class

pacakge com.myself.project

import de.leanovate.router.RouteMatchingContext;
import static de.leanovate.router.CommonRouteRules.*;

public class SomethingRoutes {
  public boolean route(final RouteMatchingContext<Request, Response> ctx0) {
    ... if request matches the rules: calles the methods of SomethingController and returns true
    ... otherwise returns false
  }
}

Its now up to you to integrate this class into your web-framework, by using the approriate adapters or implement them yourself, which should be fairly straight foreward in both cases.

At the moment the following adapters are provided out of the box:

  • Servlet-API 3.1
  • Vert.x

Licence

MIT Licence

de.leanovate.router

Versions

Version
0.10
0.9
0.7