diff --git a/README.md b/README.md index 3650c1daae3c..09d01072d58a 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ OpenAPI Generator allows generation of API client libraries (SDK generation), se | | Languages/Frameworks | | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **API clients** | **ActionScript**, **Ada**, **Apex**, **Bash**, **C**, **C#** (.net 2.0, 3.5 or later, .NET Standard 1.3 - 2.0, .NET Core 2.0), **C++** (cpp-restsdk, Qt5, Tizen), **Clojure**, **Dart (1.x, 2.x)**, **Elixir**, **Elm**, **Eiffel**, **Erlang**, **Go**, **Groovy**, **Haskell** (http-client, Servant), **Java** (Jersey1.x, Jersey2.x, OkHttp, Retrofit1.x, Retrofit2.x, Feign, RestTemplate, RESTEasy, Vertx, Google API Client Library for Java, Rest-assured, Spring 5 Web Client, MicroProfile Rest Client), **k6**, **Kotlin**, **Lua**, **Nim**, **Node.js/JavaScript** (ES5, ES6, AngularJS with Google Closure Compiler annotations, Flow types, Apollo GraphQL DataStore), **Objective-C**, **OCaml**, **Perl**, **PHP**, **PowerShell**, **Python**, **R**, **Ruby**, **Rust** (rust, rust-server), **Scala** (akka, http4s, scalaz, sttp, swagger-async-httpclient), **Swift** (2.x, 3.x, 4.x, 5.x), **Typescript** (AngularJS, Angular (2.x - 8.x), Aurelia, Axios, Fetch, Inversify, jQuery, Node, Rxjs) | -| **Server stubs** | **Ada**, **C#** (ASP.NET Core, NancyFx), **C++** (Pistache, Restbed, Qt5 QHTTPEngine), **Erlang**, **F#** (Giraffe), **Go** (net/http, Gin), **Haskell** (Servant), **Java** (MSF4J, Spring, Undertow, JAX-RS: CDI, CXF, Inflector, Jersey, RestEasy, Play Framework, [PKMST](https://github.com/ProKarma-Inc/pkmst-getting-started-examples), [Vert.x](https://vertx.io/)), **Kotlin** (Spring Boot, Ktor, Vertx), **PHP** (Laravel, Lumen, Slim, Silex, [Symfony](https://symfony.com/), [Zend Expressive](https://github.com/zendframework/zend-expressive)), **Python** (Flask), **NodeJS**, **Ruby** (Sinatra, Rails5), **Rust** (rust-server), **Scala** ([Finch](https://github.com/finagle/finch), [Lagom](https://github.com/lagom/lagom), [Play](https://www.playframework.com/), Scalatra) | +| **Server stubs** | **Ada**, **C#** (ASP.NET Core, NancyFx), **C++** (Pistache, Restbed, Qt5 QHTTPEngine), **Erlang**, **F#** (Giraffe), **Go** (net/http, Gin), **Haskell** (Servant), **Java** (MSF4J, Spring, Undertow, JAX-RS: CDI, CXF, Inflector, Jersey, RestEasy, Play Framework, [PKMST](https://github.com/ProKarma-Inc/pkmst-getting-started-examples), [Vert.x](https://vertx.io/)), **Kotlin** (Spring Boot, Ktor, Vertx), **PHP** (Laravel, Lumen, Slim, Silex, [Symfony](https://symfony.com/), [Zend Expressive](https://github.com/zendframework/zend-expressive)), **Python** (Flask), **NodeJS**, **Ruby** (Sinatra, Rails5), **Rust** (rust-server), **Scala** (Akka, [Finch](https://github.com/finagle/finch), [Lagom](https://github.com/lagom/lagom), [Play](https://www.playframework.com/), Scalatra) | | **API documentation generators** | **HTML**, **Confluence Wiki**, **Asciidoc** | | **Configuration files** | [**Apache2**](https://httpd.apache.org/) | | **Others** | **GraphQL**, **JMeter**, **MySQL Schema**, **Protocol Buffer** | @@ -875,6 +875,7 @@ Here is a list of template creators: * Python AIOHTTP: @Jyhess * Ruby on Rails 5: @zlx * Rust (rust-server): @metaswitch + * Scala Akka: @Bouillie * Scala Finch: @jimschubert [:heart:](https://www.patreon.com/jimschubert) * Scala Lagom: @gmkumar2005 * Scala Play: @adigerber diff --git a/bin/scala-akka-http-server-petstore.sh b/bin/scala-akka-http-server-petstore.sh old mode 100644 new mode 100755 index 83ca77a4c384..80d49b4e9336 --- a/bin/scala-akka-http-server-petstore.sh +++ b/bin/scala-akka-http-server-petstore.sh @@ -26,6 +26,6 @@ fi # if you've executed sbt assembly previously it will use that instead. export JAVA_OPTS="${JAVA_OPTS} -Xmx1024M -DloggerPath=conf/log4j.properties" -ags="$@ generate -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g scala-akka-http -o samples/server/petstore/scala-akka-http" +ags="generate -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g scala-akka-http-server -o samples/server/petstore/scala-akka-http-server $@" java ${JAVA_OPTS} -jar ${executable} ${ags} diff --git a/bin/windows/scala-akka-http-server-petstore.bat b/bin/windows/scala-akka-http-server-petstore.bat index f9c73f7d7aec..d59f6fb47b6b 100644 --- a/bin/windows/scala-akka-http-server-petstore.bat +++ b/bin/windows/scala-akka-http-server-petstore.bat @@ -5,6 +5,6 @@ If Not Exist %executable% ( ) REM set JAVA_OPTS=%JAVA_OPTS% -Xmx1024M -DloggerPath=conf/log4j.properties -set ags=generate --artifact-id "scala-akka-http-petstore-server" -i modules\openapi-generator\src\test\resources\2_0\petstore.yaml -g scala-akka-http -o samples\server\petstore\scala-akka-http +set ags=generate --artifact-id "scala-akka-http-petstore-server" -i modules\openapi-generator\src\test\resources\2_0\petstore.yaml -g scala-akka-http-server -o samples\server\petstore\scala-akka-http-server java %JAVA_OPTS% -jar %executable% %ags% diff --git a/docs/generators.md b/docs/generators.md index 555373e4a690..cc730aab7d88 100644 --- a/docs/generators.md +++ b/docs/generators.md @@ -120,7 +120,7 @@ The following generators are available: * [ruby-on-rails](generators/ruby-on-rails.md) * [ruby-sinatra](generators/ruby-sinatra.md) * [rust-server](generators/rust-server.md) -* [scala-akka-http](generators/scala-akka-http.md) +* [scala-akka-http-server (beta)](generators/scala-akka-http-server.md) * [scala-finch](generators/scala-finch.md) * [scala-lagom-server](generators/scala-lagom-server.md) * [scala-play-server](generators/scala-play-server.md) diff --git a/docs/generators/scala-akka-http-server.md b/docs/generators/scala-akka-http-server.md new file mode 100644 index 000000000000..ecd656979e35 --- /dev/null +++ b/docs/generators/scala-akka-http-server.md @@ -0,0 +1,221 @@ +--- +title: Config Options for scala-akka-http-server +sidebar_label: scala-akka-http-server +--- + +| Option | Description | Values | Default | +| ------ | ----------- | ------ | ------- | +|akkaHttpVersion|The version of akka-http| |10.1.10| +|allowUnicodeIdentifiers|boolean, toggles whether unicode identifiers are allowed in names or not, default is false| |false| +|apiPackage|package for generated api classes| |null| +|artifactId|artifactId| |openapi-scala-akka-http-server| +|artifactVersion|artifact version in generated pom.xml. This also becomes part of the generated library's filename| |1.0.0| +|dateLibrary|Option. Date library to use|
**joda**
Joda (for legacy app)
**java8**
Java 8 native JSR310 (prefered for JDK 1.8+)
|java8| +|ensureUniqueParams|Whether to ensure parameter names are unique in an operation (rename parameters that are not).| |true| +|groupId|groupId in generated pom.xml| |org.openapitools| +|invokerPackage|root package for generated code| |org.openapitools.server| +|modelPackage|package for generated models| |null| +|modelPropertyNaming|Naming convention for the property: 'camelCase', 'PascalCase', 'snake_case' and 'original', which keeps the original name| |camelCase| +|prependFormOrBodyParameters|Add form or body parameters to the beginning of the parameter list.| |false| +|sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |true| +|sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |true| +|sourceFolder|source folder for generated code| |null| + +## IMPORT MAPPING + +| Type/Alias | Imports | +| ---------- | ------- | +|Array|java.util.List| +|ArrayList|java.util.ArrayList| +|Date|java.util.Date| +|DateTime|org.joda.time.*| +|File|java.io.File| +|HashMap|java.util.HashMap| +|ListBuffer|scala.collection.mutable.ListBuffer| +|ListSet|scala.collection.immutable.ListSet| +|LocalDate|org.joda.time.*| +|LocalDateTime|org.joda.time.*| +|LocalTime|org.joda.time.*| +|Timestamp|java.sql.Timestamp| +|URI|java.net.URI| +|UUID|java.util.UUID| + + +## INSTANTIATION TYPES + +| Type/Alias | Instantiated By | +| ---------- | --------------- | +|array|ListBuffer| +|map|Map| +|set|Set| + + +## LANGUAGE PRIMITIVES + + + +## RESERVED WORDS + + + +## FEATURE SET + + +### Client Modification Feature +| Name | Supported | Defined By | +| ---- | --------- | ---------- | +|BasePath|✗|ToolingExtension +|Authorizations|✗|ToolingExtension +|UserAgent|✗|ToolingExtension + +### Data Type Feature +| Name | Supported | Defined By | +| ---- | --------- | ---------- | +|Custom|✗|OAS2,OAS3 +|Int32|✓|OAS2,OAS3 +|Int64|✓|OAS2,OAS3 +|Float|✓|OAS2,OAS3 +|Double|✓|OAS2,OAS3 +|Decimal|✓|ToolingExtension +|String|✓|OAS2,OAS3 +|Byte|✓|OAS2,OAS3 +|Binary|✓|OAS2,OAS3 +|Boolean|✓|OAS2,OAS3 +|Date|✓|OAS2,OAS3 +|DateTime|✓|OAS2,OAS3 +|Password|✓|OAS2,OAS3 +|File|✓|OAS2 +|Array|✓|OAS2,OAS3 +|Maps|✓|ToolingExtension +|CollectionFormat|✓|OAS2 +|CollectionFormatMulti|✓|OAS2 +|Enum|✓|OAS2,OAS3 +|ArrayOfEnum|✓|ToolingExtension +|ArrayOfModel|✓|ToolingExtension +|ArrayOfCollectionOfPrimitives|✓|ToolingExtension +|ArrayOfCollectionOfModel|✓|ToolingExtension +|ArrayOfCollectionOfEnum|✓|ToolingExtension +|MapOfEnum|✓|ToolingExtension +|MapOfModel|✓|ToolingExtension +|MapOfCollectionOfPrimitives|✓|ToolingExtension +|MapOfCollectionOfModel|✓|ToolingExtension +|MapOfCollectionOfEnum|✓|ToolingExtension + +### Documentation Feature +| Name | Supported | Defined By | +| ---- | --------- | ---------- | +|Readme|✓|ToolingExtension +|Model|✓|ToolingExtension +|Api|✓|ToolingExtension + +### Global Feature +| Name | Supported | Defined By | +| ---- | --------- | ---------- | +|Host|✓|OAS2,OAS3 +|BasePath|✓|OAS2,OAS3 +|Info|✓|OAS2,OAS3 +|Schemes|✗|OAS2,OAS3 +|PartialSchemes|✓|OAS2,OAS3 +|Consumes|✓|OAS2 +|Produces|✓|OAS2 +|ExternalDocumentation|✓|OAS2,OAS3 +|Examples|✓|OAS2,OAS3 +|XMLStructureDefinitions|✗|OAS2,OAS3 +|MultiServer|✗|OAS3 +|ParameterizedServer|✗|OAS3 +|ParameterStyling|✗|OAS3 +|Callbacks|✗|OAS3 +|LinkObjects|✗|OAS3 + +### Parameter Feature +| Name | Supported | Defined By | +| ---- | --------- | ---------- | +|Path|✓|OAS2,OAS3 +|Query|✓|OAS2,OAS3 +|Header|✓|OAS2,OAS3 +|Body|✓|OAS2 +|FormUnencoded|✓|OAS2 +|FormMultipart|✓|OAS2 +|Cookie|✗|OAS3 + +### Schema Support Feature +| Name | Supported | Defined By | +| ---- | --------- | ---------- | +|Simple|✓|OAS2,OAS3 +|Composite|✓|OAS2,OAS3 +|Polymorphism|✗|OAS2,OAS3 +|Union|✗|OAS3 + +### Security Feature +| Name | Supported | Defined By | +| ---- | --------- | ---------- | +|BasicAuth|✓|OAS2,OAS3 +|ApiKey|✓|OAS2,OAS3 +|OpenIDConnect|✗|OAS3 +|BearerToken|✓|OAS3 +|OAuth2_Implicit|✗|OAS2,OAS3 +|OAuth2_Password|✗|OAS2,OAS3 +|OAuth2_ClientCredentials|✗|OAS2,OAS3 +|OAuth2_AuthorizationCode|✗|OAS2,OAS3 + +### Wire Format Feature +| Name | Supported | Defined By | +| ---- | --------- | ---------- | +|JSON|✓|OAS2,OAS3 +|XML|✓|OAS2,OAS3 +|PROTOBUF|✗|ToolingExtension +|Custom|✓|OAS2,OAS3 diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java index 5e1ae3dfc7dd..c46341ec5800 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java @@ -1,19 +1,36 @@ +/* + * Copyright 2018 OpenAPI-Generator Contributors (https://openapi-generator.tech) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package org.openapitools.codegen.languages; import io.swagger.v3.oas.models.Operation; import io.swagger.v3.oas.models.parameters.Parameter; import io.swagger.v3.oas.models.servers.Server; import org.openapitools.codegen.*; +import org.openapitools.codegen.meta.GeneratorMetadata; +import org.openapitools.codegen.meta.Stability; +import org.openapitools.codegen.meta.features.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.File; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.openapitools.codegen.meta.features.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - public class ScalaAkkaHttpServerCodegen extends AbstractScalaCodegen implements CodegenConfig { protected String groupId; protected String artifactId; @@ -33,11 +50,11 @@ public CodegenType getTag() { } public String getName() { - return "scala-akka-http"; + return "scala-akka-http-server"; } public String getHelp() { - return "Generates a scala-akka-http server."; + return "Generates a scala-akka-http server (beta)."; } public ScalaAkkaHttpServerCodegen() { @@ -64,6 +81,9 @@ public ScalaAkkaHttpServerCodegen() { ParameterFeature.Cookie ) ); + generatorMetadata = GeneratorMetadata.newBuilder(generatorMetadata) + .stability(Stability.BETA) + .build(); outputFolder = "generated-code" + File.separator + "scala-akka-http"; modelTemplateFiles.put("model.mustache", ".scala"); @@ -173,6 +193,7 @@ public void processOpts() { private boolean is10_1_10AndAbove = false; private static final Pattern akkaVersionPattern = Pattern.compile("([0-9]+)(\\.([0-9]+))?(\\.([0-9]+))?(.\\+)?"); + private void parseAkkaHttpVersion() { Matcher matcher = akkaVersionPattern.matcher(akkaHttpVersion); if (matcher.matches()) { @@ -226,7 +247,7 @@ public CodegenOperation fromOperation(String path, String httpMethod, Operation public CodegenParameter fromParameter(Parameter parameter, Set imports) { CodegenParameter param = super.fromParameter(parameter, imports); // Removing unhandled types - if(!primitiveParamTypes.contains(param.dataType)) { + if (!primitiveParamTypes.contains(param.dataType)) { param.dataType = "String"; } if (!param.required) { @@ -240,7 +261,6 @@ public CodegenParameter fromParameter(Parameter parameter, Set imports) } - @Override public Map postProcessOperationsWithModels(Map objs, List allModels) { Map baseObjs = super.postProcessOperationsWithModels(objs, allModels); @@ -249,7 +269,7 @@ public Map postProcessOperationsWithModels(Map o return baseObjs; } - private static Set primitiveParamTypes = new HashSet(){{ + private static Set primitiveParamTypes = new HashSet() {{ addAll(Arrays.asList( "Int", "Long", @@ -260,12 +280,12 @@ public Map postProcessOperationsWithModels(Map o )); }}; - private static Map pathTypeToMatcher = new HashMap(){{ + private static Map pathTypeToMatcher = new HashMap() {{ put("Int", "IntNumber"); put("Long", "LongNumber"); - put("Float","FloatNumber"); - put("Double","DoubleNumber"); - put("Boolean","Boolean"); + put("Float", "FloatNumber"); + put("Double", "DoubleNumber"); + put("Boolean", "Boolean"); put("String", "Segment"); }}; @@ -274,14 +294,14 @@ protected static void addPathMatcher(CodegenOperation codegenOperation) { allPaths.removeIf(""::equals); LinkedList pathMatchers = new LinkedList<>(); - for(String path: allPaths){ + for (String path : allPaths) { TextOrMatcher textOrMatcher = new TextOrMatcher("", true, true); - if(path.startsWith("{") && path.endsWith("}")) { - String parameterName = path.substring(1, path.length()-1); - for(CodegenParameter pathParam: codegenOperation.pathParams){ - if(pathParam.baseName.equals(parameterName)) { + if (path.startsWith("{") && path.endsWith("}")) { + String parameterName = path.substring(1, path.length() - 1); + for (CodegenParameter pathParam : codegenOperation.pathParams) { + if (pathParam.baseName.equals(parameterName)) { String matcher = pathTypeToMatcher.get(pathParam.dataType); - if(matcher == null) { + if (matcher == null) { LOGGER.warn("The path parameter " + pathParam.baseName + " with the datatype " + pathParam.dataType + " could not be translated to a corresponding path matcher of akka http" + @@ -316,8 +336,8 @@ private static void pathMatcherPatternsPostProcessor(Map objs) { Map operations = (Map) objs.get("operations"); if (operations != null) { List ops = (List) operations.get("operation"); - for (CodegenOperation operation: ops) { - for (CodegenParameter parameter: operation.pathParams) { + for (CodegenOperation operation : ops) { + for (CodegenParameter parameter : operation.pathParams) { if (parameter.pattern != null && !parameter.pattern.isEmpty()) { String name = pathMatcherPatternName(parameter); if (!patternMap.containsKey(name)) { diff --git a/pom.xml b/pom.xml index b88e81362edc..6c7a0b6ee61e 100644 --- a/pom.xml +++ b/pom.xml @@ -1367,6 +1367,7 @@ samples/server/petstore/java-msf4j samples/server/petstore/scala-lagom-server samples/server/petstore/scala-play-server + samples/server/petstore/scala-akka-http-server samples/server/petstore/scalatra samples/server/petstore/java-vertx-web/rx samples/server/petstore/scala-finch diff --git a/samples/server/petstore/scala-akka-http/.openapi-generator-ignore b/samples/server/petstore/scala-akka-http-server/.openapi-generator-ignore similarity index 100% rename from samples/server/petstore/scala-akka-http/.openapi-generator-ignore rename to samples/server/petstore/scala-akka-http-server/.openapi-generator-ignore diff --git a/samples/server/petstore/scala-akka-http/.openapi-generator/VERSION b/samples/server/petstore/scala-akka-http-server/.openapi-generator/VERSION similarity index 100% rename from samples/server/petstore/scala-akka-http/.openapi-generator/VERSION rename to samples/server/petstore/scala-akka-http-server/.openapi-generator/VERSION diff --git a/samples/server/petstore/scala-akka-http/README.md b/samples/server/petstore/scala-akka-http-server/README.md similarity index 100% rename from samples/server/petstore/scala-akka-http/README.md rename to samples/server/petstore/scala-akka-http-server/README.md diff --git a/samples/server/petstore/scala-akka-http/build.sbt b/samples/server/petstore/scala-akka-http-server/build.sbt similarity index 83% rename from samples/server/petstore/scala-akka-http/build.sbt rename to samples/server/petstore/scala-akka-http-server/build.sbt index 1099fe43c457..f78b367397d5 100644 --- a/samples/server/petstore/scala-akka-http/build.sbt +++ b/samples/server/petstore/scala-akka-http-server/build.sbt @@ -1,5 +1,5 @@ version := "1.0.0" -name := "scala-akka-http-petstore-server" +name := "openapi-scala-akka-http-server" organization := "org.openapitools" scalaVersion := "2.12.8" diff --git a/samples/server/petstore/scala-akka-http-server/pom.xml b/samples/server/petstore/scala-akka-http-server/pom.xml new file mode 100644 index 000000000000..92061e708b4e --- /dev/null +++ b/samples/server/petstore/scala-akka-http-server/pom.xml @@ -0,0 +1,32 @@ + + 4.0.0 + org.openapitools + scala-akka-http-server + pom + 1.0-SNAPSHOT + Scala Play server + + + + org.codehaus.mojo + exec-maven-plugin + 1.5.0 + + + sbt-test + integration-test + + exec + + + sbt + + test + + + + + + + + diff --git a/samples/server/petstore/scala-akka-http-server/project/build.properties b/samples/server/petstore/scala-akka-http-server/project/build.properties new file mode 100644 index 000000000000..d6e35076cc16 --- /dev/null +++ b/samples/server/petstore/scala-akka-http-server/project/build.properties @@ -0,0 +1 @@ +sbt.version=1.1.6 diff --git a/samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/AkkaHttpHelper.scala b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/AkkaHttpHelper.scala similarity index 100% rename from samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/AkkaHttpHelper.scala rename to samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/AkkaHttpHelper.scala diff --git a/samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/Controller.scala b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/Controller.scala similarity index 100% rename from samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/Controller.scala rename to samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/Controller.scala diff --git a/samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/MultipartDirectives.scala b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/MultipartDirectives.scala similarity index 100% rename from samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/MultipartDirectives.scala rename to samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/MultipartDirectives.scala diff --git a/samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/StringDirectives.scala b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/StringDirectives.scala similarity index 100% rename from samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/StringDirectives.scala rename to samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/StringDirectives.scala diff --git a/samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/api/PetApi.scala b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/PetApi.scala similarity index 100% rename from samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/api/PetApi.scala rename to samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/PetApi.scala diff --git a/samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/api/StoreApi.scala b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/StoreApi.scala similarity index 100% rename from samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/api/StoreApi.scala rename to samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/StoreApi.scala diff --git a/samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/api/UserApi.scala b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/UserApi.scala similarity index 100% rename from samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/api/UserApi.scala rename to samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/api/UserApi.scala diff --git a/samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/model/ApiResponse.scala b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/model/ApiResponse.scala similarity index 100% rename from samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/model/ApiResponse.scala rename to samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/model/ApiResponse.scala diff --git a/samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/model/Category.scala b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/model/Category.scala similarity index 100% rename from samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/model/Category.scala rename to samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/model/Category.scala diff --git a/samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/model/Order.scala b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/model/Order.scala similarity index 100% rename from samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/model/Order.scala rename to samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/model/Order.scala diff --git a/samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/model/Pet.scala b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/model/Pet.scala similarity index 100% rename from samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/model/Pet.scala rename to samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/model/Pet.scala diff --git a/samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/model/Tag.scala b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/model/Tag.scala similarity index 100% rename from samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/model/Tag.scala rename to samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/model/Tag.scala diff --git a/samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/model/User.scala b/samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/model/User.scala similarity index 100% rename from samples/server/petstore/scala-akka-http/src/main/scala/org/openapitools/server/model/User.scala rename to samples/server/petstore/scala-akka-http-server/src/main/scala/org/openapitools/server/model/User.scala