Skip to content

Commit 2159b6b

Browse files
committed
Add scalafmt plugin to scalatra generator
1 parent dd6ea59 commit 2159b6b

12 files changed

Lines changed: 268 additions & 3 deletions

File tree

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalatraServerCodegen.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ public void processOpts() {
138138
supportingFiles.add(new SupportingFile("ServletApp.mustache", sourceFolderByPackage(appPackage), "ServletApp.scala"));
139139
supportingFiles.add(new SupportingFile("project/build.properties", "project", "build.properties"));
140140
supportingFiles.add(new SupportingFile("project/plugins.sbt", "project", "plugins.sbt"));
141+
supportingFiles.add(new SupportingFile("scalafmt.mustache", "", ".scalafmt.conf"));
141142
supportingFiles.add(new SupportingFile("sbt", "", "sbt"));
142143

143144
additionalProperties.put("appName", appName);
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.6")
22
addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.0.1")
33
addSbtPlugin("org.scalariform" % "sbt-scalariform" % "1.8.2")
4+
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.6")
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
version=3.10.6
2+
runner.dialect = scala212
3+
project {
4+
git = false
5+
excludeFilters = [
6+
scalafmt-benchmarks/src/resources,
7+
sbt-test
8+
bin/issue
9+
]
10+
layout = StandardConvention
11+
}
12+
align {
13+
preset = none
14+
stripMargin = true
15+
}
16+
binPack {
17+
importSelectors = fold
18+
}
19+
newlines {
20+
avoidForSimpleOverflow = all
21+
ignoreInSyntax = false
22+
source = fold
23+
}
24+
rewrite {
25+
rules = [
26+
AvoidInfix,
27+
Imports,
28+
RedundantBraces,
29+
RedundantParens,
30+
SortModifiers,
31+
]
32+
imports {
33+
selectors = fold
34+
removeRedundantSelectors = true
35+
sort = ascii
36+
groups = [
37+
["org\\.scalafmt\\..*"],
38+
["scala\\.meta\\..*", "org\\.scalameta\\..*"],
39+
["sbt\\..*"],
40+
["java.?\\..*"],
41+
["scala\\..*"],
42+
["org\\..*"],
43+
["com\\..*"],
44+
]
45+
}
46+
redundantBraces {
47+
preset = all
48+
oneStatApply {
49+
parensMaxSpan = 300
50+
bracesMinSpan = 300
51+
}
52+
}
53+
redundantParens {
54+
preset = all
55+
}
56+
sortModifiers.preset = styleGuide
57+
trailingCommas.style = "always"
58+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
.gitignore
2+
.scalafmt.conf
3+
README.md
4+
build.sbt
5+
project/build.properties
6+
project/plugins.sbt
7+
sbt
8+
src/main/resources/logback.xml
9+
src/main/scala/org/openapitools/JettyMain.scala
10+
src/main/scala/org/openapitools/ScalatraBootstrap.scala
11+
src/main/scala/org/openapitools/app/ServletApp.scala
12+
src/main/scala/org/openapitools/server/api/PetApi.scala
13+
src/main/scala/org/openapitools/server/api/StoreApi.scala
14+
src/main/scala/org/openapitools/server/api/UserApi.scala
15+
src/main/scala/org/openapitools/server/model/ApiResponse.scala
16+
src/main/scala/org/openapitools/server/model/Category.scala
17+
src/main/scala/org/openapitools/server/model/Order.scala
18+
src/main/scala/org/openapitools/server/model/Pet.scala
19+
src/main/scala/org/openapitools/server/model/Tag.scala
20+
src/main/scala/org/openapitools/server/model/User.scala
21+
src/main/webapp/WEB-INF/web.xml
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
5.0.0-SNAPSHOT
1+
7.22.0-SNAPSHOT
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
version=3.10.6
2+
runner.dialect = scala212
3+
project {
4+
git = false
5+
excludeFilters = [
6+
scalafmt-benchmarks/src/resources,
7+
sbt-test
8+
bin/issue
9+
]
10+
layout = StandardConvention
11+
}
12+
align {
13+
preset = none
14+
stripMargin = true
15+
}
16+
binPack {
17+
importSelectors = fold
18+
}
19+
newlines {
20+
avoidForSimpleOverflow = all
21+
ignoreInSyntax = false
22+
source = fold
23+
}
24+
rewrite {
25+
rules = [
26+
AvoidInfix,
27+
Imports,
28+
RedundantBraces,
29+
RedundantParens,
30+
SortModifiers,
31+
]
32+
imports {
33+
selectors = fold
34+
removeRedundantSelectors = true
35+
sort = ascii
36+
groups = [
37+
["org\\.scalafmt\\..*"],
38+
["scala\\.meta\\..*", "org\\.scalameta\\..*"],
39+
["sbt\\..*"],
40+
["java.?\\..*"],
41+
["scala\\..*"],
42+
["org\\..*"],
43+
["com\\..*"],
44+
]
45+
}
46+
redundantBraces {
47+
preset = all
48+
oneStatApply {
49+
parensMaxSpan = 300
50+
bracesMinSpan = 300
51+
}
52+
}
53+
redundantParens {
54+
preset = all
55+
}
56+
sortModifiers.preset = styleGuide
57+
trailingCommas.style = "always"
58+
}

samples/server/petstore/scalatra/build.sbt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
organization := "org.openapitools"
2-
name := "scalatra-sample"
3-
version := "0.1.0-SNAPSHOT"
2+
name := "org.openapitools-openapi-server"
3+
version := "1.0.0"
44
scalaVersion := "2.12.20"
55

66
mainClass in assembly := Some("JettyMain")
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.6")
22
addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "4.0.1")
33
addSbtPlugin("org.scalariform" % "sbt-scalariform" % "1.8.2")
4+
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.6")
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
/**
2+
* OpenAPI Petstore
3+
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
4+
*
5+
* The version of the OpenAPI document: 1.0.0
6+
* Contact: team@openapitools.org
7+
*
8+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9+
* https://openapi-generator.tech
10+
*/
11+
12+
package org.openapitools
13+
import org.eclipse.jetty.server._
14+
import org.eclipse.jetty.webapp.WebAppContext
15+
import org.scalatra.servlet.ScalatraListener
16+
17+
object JettyMain {
18+
19+
object conf {
20+
val port = sys.env.get("PORT") map (_.toInt) getOrElse (8080)
21+
val stopTimeout = sys.env.get("STOP_TIMEOUT") map (_.toInt) getOrElse (5000)
22+
val connectorIdleTimeout = sys.env.get("CONNECTOR_IDLE_TIMEOUT") map (_.toInt) getOrElse (90000)
23+
val webapp = sys.env.get("PUBLIC") getOrElse "webapp"
24+
val contextPath = sys.env.get("CONTEXT_PATH") getOrElse "/"
25+
}
26+
27+
def main(args: Array[String]) = {
28+
val server: Server = new Server
29+
println("starting jetty")
30+
31+
server setStopTimeout conf.stopTimeout
32+
//server setDumpAfterStart true
33+
server setStopAtShutdown true
34+
35+
val httpConfig = new HttpConfiguration()
36+
httpConfig setSendDateHeader true
37+
httpConfig setSendServerVersion false
38+
39+
val connector = new NetworkTrafficServerConnector(server, new HttpConnectionFactory(httpConfig))
40+
connector setPort conf.port
41+
connector setSoLingerTime 0
42+
connector setIdleTimeout conf.connectorIdleTimeout
43+
server addConnector connector
44+
45+
val webapp = conf.webapp
46+
val webApp = new WebAppContext
47+
webApp setContextPath conf.contextPath
48+
webApp setResourceBase conf.webapp
49+
webApp setEventListeners Array(new ScalatraListener)
50+
webApp.setInitParameter(ScalatraListener.LifeCycleKey, classOf[ScalatraBootstrap].getName)
51+
52+
server setHandler webApp
53+
54+
server.start()
55+
}
56+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/**
2+
* OpenAPI Petstore
3+
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
4+
*
5+
* The version of the OpenAPI document: 1.0.0
6+
* Contact: team@openapitools.org
7+
*
8+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9+
* https://openapi-generator.tech
10+
*/
11+
12+
package org.openapitools
13+
import org.openapitools.server.api._
14+
import org.openapitools.app.{ ResourcesApp, OpenAPIApp }
15+
import javax.servlet.ServletContext
16+
import org.scalatra.LifeCycle
17+
18+
class ScalatraBootstrap extends LifeCycle {
19+
implicit val openapi = new OpenAPIApp
20+
21+
override def init(context: ServletContext) {
22+
try {
23+
context mount (new PetApi, "/v2/Pet/*")
24+
context mount (new StoreApi, "/v2/Store/*")
25+
context mount (new UserApi, "/v2/User/*")
26+
context mount (new ResourcesApp, "/api-docs/*")
27+
} catch {
28+
case e: Throwable => e.printStackTrace()
29+
}
30+
}
31+
}

0 commit comments

Comments
 (0)