diff --git a/.github/workflows/samples-scala.yaml b/.github/workflows/samples-scala.yaml index 7b955b12e9ec..f57d3c832c93 100644 --- a/.github/workflows/samples-scala.yaml +++ b/.github/workflows/samples-scala.yaml @@ -28,7 +28,6 @@ jobs: #- samples/client/petstore/scala-sttp #- samples/client/petstore/scala-sttp-circe # servers - - samples/server/petstore/scala-lagom-server - samples/server/petstore/scala-play-server - samples/server/petstore/scala-akka-http-server - samples/server/petstore/scala-pekko-http-server diff --git a/bin/configs/unmaintained/scala-lagom-server.yaml b/bin/configs/unmaintained/scala-lagom-server.yaml deleted file mode 100644 index 8aabf4b0fd08..000000000000 --- a/bin/configs/unmaintained/scala-lagom-server.yaml +++ /dev/null @@ -1,6 +0,0 @@ -systemProperties: - skipFormModel: "true" -generatorName: scala-lagom-server -outputDir: samples/server/petstore/scala-lagom-server -inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore.yaml -templateDir: modules/openapi-generator/src/main/resources/scala-lagom-server diff --git a/docs/generators.md b/docs/generators.md index 710d2614290c..8a8ff23086b8 100644 --- a/docs/generators.md +++ b/docs/generators.md @@ -151,7 +151,7 @@ The following generators are available: * [scala-cask](generators/scala-cask.md) * [scala-finch](generators/scala-finch.md) * [scala-http4s-server](generators/scala-http4s-server.md) -* [scala-lagom-server](generators/scala-lagom-server.md) +* [scala-lagom-server-deprecated (deprecated)](generators/scala-lagom-server-deprecated.md) * [scala-play-server](generators/scala-play-server.md) * [scalatra](generators/scalatra.md) * [spring](generators/spring.md) diff --git a/docs/generators/scala-lagom-server.md b/docs/generators/scala-lagom-server-deprecated.md similarity index 96% rename from docs/generators/scala-lagom-server.md rename to docs/generators/scala-lagom-server-deprecated.md index 2261851ca503..f100a8825fa2 100644 --- a/docs/generators/scala-lagom-server.md +++ b/docs/generators/scala-lagom-server-deprecated.md @@ -1,17 +1,17 @@ --- -title: Documentation for the scala-lagom-server Generator +title: Documentation for the scala-lagom-server-deprecated Generator --- ## METADATA | Property | Value | Notes | | -------- | ----- | ----- | -| generator name | scala-lagom-server | pass this to the generate command after -g | -| generator stability | STABLE | | +| generator name | scala-lagom-server-deprecated | pass this to the generate command after -g | +| generator stability | DEPRECATED | | | generator type | SERVER | | | generator language | Scala | | | generator default templating engine | mustache | | -| helpTxt | Generates a Lagom API server (Beta) in scala | | +| helpTxt | Generates a Lagom API server (Beta) in scala. IMPORTANT: this generator has been deprecated | | ## CONFIG OPTIONS These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details. diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaLagomServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaLagomServerCodegen.java index 3a2e44d52648..57efc5671b20 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaLagomServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaLagomServerCodegen.java @@ -19,6 +19,8 @@ import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.*; +import org.openapitools.codegen.meta.GeneratorMetadata; +import org.openapitools.codegen.meta.Stability; import org.openapitools.codegen.meta.features.*; import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.ModelsMap; @@ -61,6 +63,10 @@ public ScalaLagomServerCodegen() { ) ); + generatorMetadata = GeneratorMetadata.newBuilder(generatorMetadata) + .stability(Stability.DEPRECATED) + .build(); + outputFolder = "generated-code/scala-lagom-server"; modelTemplateFiles.put("model.mustache", ".scala"); apiTemplateFiles.put("api.mustache", ".scala"); @@ -149,12 +155,12 @@ public CodegenType getTag() { @Override public String getName() { - return "scala-lagom-server"; + return "scala-lagom-server-deprecated"; } @Override public String getHelp() { - return "Generates a Lagom API server (Beta) in scala"; + return "Generates a Lagom API server (Beta) in scala. IMPORTANT: this generator has been deprecated"; } @Override @@ -220,6 +226,4 @@ public OperationsMap postProcessOperationsWithModels(OperationsMap objs, List - 4.0.0 - io.swagger - scala-lagom - pom - 1.0-SNAPSHOT - Scala Lagom server - - - - org.codehaus.mojo - exec-maven-plugin - 1.5.0 - - - sbt-test - integration-test - - exec - - - sbt - - -ivy - ${user.home}/.ivy2 - test - - - - - - - - diff --git a/samples/server/petstore/scala-lagom-server/project/build.properties b/samples/server/petstore/scala-lagom-server/project/build.properties deleted file mode 100644 index c091b86ca467..000000000000 --- a/samples/server/petstore/scala-lagom-server/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=0.13.16 diff --git a/samples/server/petstore/scala-lagom-server/project/plugins.sbt b/samples/server/petstore/scala-lagom-server/project/plugins.sbt deleted file mode 100644 index 2e1dfa4e0588..000000000000 --- a/samples/server/petstore/scala-lagom-server/project/plugins.sbt +++ /dev/null @@ -1,5 +0,0 @@ -addSbtPlugin("com.lightbend.lagom" % "lagom-sbt-plugin" % "1.3.8") -// Needed for importing the project into Eclipse -addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.1.0") -// The ConductR plugin -addSbtPlugin("com.lightbend.conductr" % "sbt-conductr" % "2.3.5") diff --git a/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/api/PetApi.scala b/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/api/PetApi.scala deleted file mode 100644 index 61ab724d00d2..000000000000 --- a/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/api/PetApi.scala +++ /dev/null @@ -1,138 +0,0 @@ -/** - * OpenAPI Petstore - * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. - * - * The version of the OpenAPI document: 1.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package io.swagger.client.api - -import akka.{Done, NotUsed} -import com.lightbend.lagom.scaladsl.api.transport.Method -import com.lightbend.lagom.scaladsl.api.{Service, ServiceCall} -import play.api.libs.json._ -import com.lightbend.lagom.scaladsl.api.deser.PathParamSerializer - -import io.swagger.client.model.ApiResponse -import java.io.File -import io.swagger.client.model.Pet - -trait PetApi extends Service { - - - final override def descriptor = { - import Service._ - named("PetApi").withCalls( - restCall(Method.POST, "/pet", addPet _), - restCall(Method.DELETE, "/pet/:petId", deletePet _), - restCall(Method.GET, "/pet/findByStatus?status", findPetsByStatus _), - restCall(Method.GET, "/pet/findByTags?tags", findPetsByTags _), - restCall(Method.GET, "/pet/:petId", getPetById _), - restCall(Method.PUT, "/pet", updatePet _), - restCall(Method.POST, "/pet/:petId", updatePetWithForm _), - restCall(Method.POST, "/pet/:petId/uploadImage", uploadFile _) - ).withAutoAcl(true) - } - - - /** - * Add a new pet to the store - * - * - * @return Pet Body Parameter Pet object that needs to be added to the store - */ - def addPet(): ServiceCall[Pet ,Pet] - - - // apiKey:String -- not yet supported header params - /** - * Deletes a pet - * - * - * @param petId Pet id to delete - * @param apiKey (optional) - * @return void - */ - def deletePet(petId: Long): ServiceCall[NotUsed ,Done] - - // status:Seq[String] -- not yet supported Seq PathParamSerializers for multi value query parameters https://github.com/lagom/lagom/issues/643 - - /** - * Finds Pets by status - * Multiple status values can be provided with comma separated strings - * - * @param status Status values that need to be considered for filter - * @return Seq[Pet] - */ - def findPetsByStatus(status: Option[PetApiStatusEnum.PetApiStatusEnum]): ServiceCall[NotUsed ,Seq[Pet]] - - // tags:Seq[String] -- not yet supported Seq PathParamSerializers for multi value query parameters https://github.com/lagom/lagom/issues/643 - - /** - * Finds Pets by tags - * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. - * - * @param tags Tags to filter by - * @return Seq[Pet] - */ - def findPetsByTags(): ServiceCall[NotUsed ,Seq[Pet]] - - /** - * Find pet by ID - * Returns a single pet - * - * @param petId ID of pet to return - * @return Pet - */ - def getPetById(petId: Long): ServiceCall[NotUsed ,Pet] - - /** - * Update an existing pet - * - * - * @return Pet Body Parameter Pet object that needs to be added to the store - */ - def updatePet(): ServiceCall[Pet ,Pet] - - - // name:String -- not yet supported x-www-form-urlencoded - // status:String -- not yet supported x-www-form-urlencoded - /** - * Updates a pet in the store with form data - * - * - * @param petId ID of pet that needs to be updated - * @param name Updated name of the pet (optional) - * @param status Updated status of the pet (optional) - * @return void - */ - def updatePetWithForm(petId: Long): ServiceCall[NotUsed ,Done] - - - // additionalMetadata:String -- not yet supported x-www-form-urlencoded - // file:File -- not yet supported x-www-form-urlencoded - /** - * uploads an image - * - * - * @param petId ID of pet to update - * @param additionalMetadata Additional data to pass to server (optional) - * @param file file to upload (optional) - * @return ApiResponse - */ - def uploadFile(petId: Long): ServiceCall[NotUsed ,ApiResponse] - - - object PetApiStatusEnum extends Enumeration { - val available, pending, sold = Value - type PetApiStatusEnum = Value - implicit val format: Format[Value] = Format(Reads.enumNameReads(this), Writes.enumNameWrites[PetApiStatusEnum.type]) - implicit val pathParamSerializer: PathParamSerializer[PetApiStatusEnum] = PathParamSerializer.required("PetApiStatusEnum")(withName)(_.toString) - } - } - diff --git a/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/api/StoreApi.scala b/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/api/StoreApi.scala deleted file mode 100644 index a432ebfccb85..000000000000 --- a/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/api/StoreApi.scala +++ /dev/null @@ -1,73 +0,0 @@ -/** - * OpenAPI Petstore - * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. - * - * The version of the OpenAPI document: 1.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package io.swagger.client.api - -import akka.{Done, NotUsed} -import com.lightbend.lagom.scaladsl.api.transport.Method -import com.lightbend.lagom.scaladsl.api.{Service, ServiceCall} -import play.api.libs.json._ -import com.lightbend.lagom.scaladsl.api.deser.PathParamSerializer - -import io.swagger.client.model.Order - -trait StoreApi extends Service { - - - final override def descriptor = { - import Service._ - named("StoreApi").withCalls( - restCall(Method.DELETE, "/store/order/:orderId", deleteOrder _), - restCall(Method.GET, "/store/inventory", getInventory _), - restCall(Method.GET, "/store/order/:orderId", getOrderById _), - restCall(Method.POST, "/store/order", placeOrder _) - ).withAutoAcl(true) - } - - - /** - * Delete purchase order by ID - * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors - * - * @param orderId ID of the order that needs to be deleted - * @return void - */ - def deleteOrder(orderId: String): ServiceCall[NotUsed ,Done] - - /** - * Returns pet inventories by status - * Returns a map of status codes to quantities - * - * @return Map[String, Int] - */ - def getInventory(): ServiceCall[NotUsed ,Map[String, Int]] - - /** - * Find purchase order by ID - * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions - * - * @param orderId ID of pet that needs to be fetched - * @return Order - */ - def getOrderById(orderId: Long): ServiceCall[NotUsed ,Order] - - /** - * Place an order for a pet - * - * - * @return Order Body Parameter order placed for purchasing the pet - */ - def placeOrder(): ServiceCall[Order ,Order] - - - } - diff --git a/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/api/UserApi.scala b/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/api/UserApi.scala deleted file mode 100644 index 211db9974bfb..000000000000 --- a/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/api/UserApi.scala +++ /dev/null @@ -1,112 +0,0 @@ -/** - * OpenAPI Petstore - * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. - * - * The version of the OpenAPI document: 1.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package io.swagger.client.api - -import akka.{Done, NotUsed} -import com.lightbend.lagom.scaladsl.api.transport.Method -import com.lightbend.lagom.scaladsl.api.{Service, ServiceCall} -import play.api.libs.json._ -import com.lightbend.lagom.scaladsl.api.deser.PathParamSerializer - -import io.swagger.client.model.User - -trait UserApi extends Service { - - - final override def descriptor = { - import Service._ - named("UserApi").withCalls( - restCall(Method.POST, "/user", createUser _), - restCall(Method.POST, "/user/createWithArray", createUsersWithArrayInput _), - restCall(Method.POST, "/user/createWithList", createUsersWithListInput _), - restCall(Method.DELETE, "/user/:username", deleteUser _), - restCall(Method.GET, "/user/:username", getUserByName _), - restCall(Method.GET, "/user/login?username&password", loginUser _), - restCall(Method.GET, "/user/logout", logoutUser _), - restCall(Method.PUT, "/user/:username", updateUser _) - ).withAutoAcl(true) - } - - - /** - * Create user - * This can only be done by the logged in user. - * - * @return void Body Parameter Created user object - */ - def createUser(): ServiceCall[User ,Done] - - /** - * Creates list of users with given input array - * - * - * @return void Body Parameter List of user object - */ - def createUsersWithArrayInput(): ServiceCall[Seq[User] ,Done] - - /** - * Creates list of users with given input array - * - * - * @return void Body Parameter List of user object - */ - def createUsersWithListInput(): ServiceCall[Seq[User] ,Done] - - /** - * Delete user - * This can only be done by the logged in user. - * - * @param username The name that needs to be deleted - * @return void - */ - def deleteUser(username: String): ServiceCall[NotUsed ,Done] - - /** - * Get user by user name - * - * - * @param username The name that needs to be fetched. Use user1 for testing. - * @return User - */ - def getUserByName(username: String): ServiceCall[NotUsed ,User] - - /** - * Logs user into the system - * - * - * @param username The user name for login - * @param password The password for login in clear text - * @return String - */ - def loginUser(username:String ,password:String ): ServiceCall[NotUsed ,String] - - /** - * Logs out current logged in user session - * - * - * @return void - */ - def logoutUser(): ServiceCall[NotUsed ,Done] - - /** - * Updated user - * This can only be done by the logged in user. - * - * @param username name that need to be deleted - * @return void Body Parameter Updated user object - */ - def updateUser(username: String): ServiceCall[User ,Done] - - - } - diff --git a/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/model/ApiResponse.scala b/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/model/ApiResponse.scala deleted file mode 100644 index 28448672d579..000000000000 --- a/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/model/ApiResponse.scala +++ /dev/null @@ -1,25 +0,0 @@ -/** - * OpenAPI Petstore - * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. - * - * The version of the OpenAPI document: 1.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package io.swagger.client.model -import play.api.libs.json._ - -case class ApiResponse ( - code: Option[Int], - `type`: Option[String], - message: Option[String] -) - -object ApiResponse { -implicit val format: Format[ApiResponse] = Json.format -} - diff --git a/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/model/Category.scala b/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/model/Category.scala deleted file mode 100644 index 68f37da0d9e2..000000000000 --- a/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/model/Category.scala +++ /dev/null @@ -1,24 +0,0 @@ -/** - * OpenAPI Petstore - * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. - * - * The version of the OpenAPI document: 1.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package io.swagger.client.model -import play.api.libs.json._ - -case class Category ( - id: Option[Long], - name: Option[String] -) - -object Category { -implicit val format: Format[Category] = Json.format -} - diff --git a/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/model/Order.scala b/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/model/Order.scala deleted file mode 100644 index b788db2ab51f..000000000000 --- a/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/model/Order.scala +++ /dev/null @@ -1,34 +0,0 @@ -/** - * OpenAPI Petstore - * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. - * - * The version of the OpenAPI document: 1.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package io.swagger.client.model -import play.api.libs.json._ -import java.time.OffsetDateTime - -case class Order ( - id: Option[Long], - petId: Option[Long], - quantity: Option[Int], - shipDate: Option[OffsetDateTime], - status: Option[OrderStatusEnum.OrderStatusEnum], - complete: Option[Boolean] -) - -object Order { -implicit val format: Format[Order] = Json.format -} - -object OrderStatusEnum extends Enumeration { - val placed, approved, delivered = Value - type OrderStatusEnum = Value - implicit val format: Format[Value] = Format(Reads.enumNameReads(this), Writes.enumNameWrites[OrderStatusEnum.type]) -} diff --git a/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/model/Pet.scala b/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/model/Pet.scala deleted file mode 100644 index 56798d01eef0..000000000000 --- a/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/model/Pet.scala +++ /dev/null @@ -1,33 +0,0 @@ -/** - * OpenAPI Petstore - * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. - * - * The version of the OpenAPI document: 1.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package io.swagger.client.model -import play.api.libs.json._ - -case class Pet ( - id: Option[Long], - category: Option[Category], - name: String, - photoUrls: Seq[String], - tags: Option[Seq[Tag]], - status: Option[PetStatusEnum.PetStatusEnum] -) - -object Pet { -implicit val format: Format[Pet] = Json.format -} - -object PetStatusEnum extends Enumeration { - val available, pending, sold = Value - type PetStatusEnum = Value - implicit val format: Format[Value] = Format(Reads.enumNameReads(this), Writes.enumNameWrites[PetStatusEnum.type]) -} diff --git a/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/model/Tag.scala b/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/model/Tag.scala deleted file mode 100644 index 8d8da70ff8ae..000000000000 --- a/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/model/Tag.scala +++ /dev/null @@ -1,24 +0,0 @@ -/** - * OpenAPI Petstore - * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. - * - * The version of the OpenAPI document: 1.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package io.swagger.client.model -import play.api.libs.json._ - -case class Tag ( - id: Option[Long], - name: Option[String] -) - -object Tag { -implicit val format: Format[Tag] = Json.format -} - diff --git a/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/model/User.scala b/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/model/User.scala deleted file mode 100644 index f5de40df3690..000000000000 --- a/samples/server/petstore/scala-lagom-server/src/main/scala/io/swagger/client/model/User.scala +++ /dev/null @@ -1,31 +0,0 @@ -/** - * OpenAPI Petstore - * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. - * - * The version of the OpenAPI document: 1.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package io.swagger.client.model -import play.api.libs.json._ - -case class User ( - id: Option[Long], - username: Option[String], - firstName: Option[String], - lastName: Option[String], - email: Option[String], - password: Option[String], - phone: Option[String], - /* User Status */ - userStatus: Option[Int] -) - -object User { -implicit val format: Format[User] = Json.format -} -