diff --git a/.github/workflows/samples-scala-jdk8.yaml b/.github/workflows/samples-scala-jdk8.yaml
deleted file mode 100644
index 21cfb3eadca5..000000000000
--- a/.github/workflows/samples-scala-jdk8.yaml
+++ /dev/null
@@ -1,38 +0,0 @@
-name: Samples Scala/sbt (JDK8)
-
-on:
- push:
- paths:
- - 'samples/server/petstore/scala-finch/**'
- pull_request:
- paths:
- - 'samples/server/petstore/scala-finch/**'
-jobs:
- build:
- name: Build scala-finch servers
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- sample:
- # servers
- - samples/server/petstore/scala-finch # cannot be tested with jdk11
- steps:
- - uses: actions/checkout@v5
- - uses: actions/setup-java@v5
- with:
- distribution: 'temurin'
- java-version: 8
- - name: Setup sbt launcher
- uses: sbt/setup-sbt@v1
- - name: Cache maven dependencies
- uses: actions/cache@v5
- env:
- cache-name: maven-repository
- with:
- path: |
- ~/.ivy2
- key: ${{ runner.os }}-${{ github.job }}-${{ env.cache-name }}-${{ hashFiles('**/build.sbt') }}
- - name: Build and test
- working-directory: ${{ matrix.sample }}
- run: sbt -v +test
diff --git a/bin/configs/unmaintained/scala-finch.yaml b/bin/configs/unmaintained/scala-finch.yaml
deleted file mode 100644
index 4ec9a16b9f50..000000000000
--- a/bin/configs/unmaintained/scala-finch.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-systemProperties:
- skipFormModel: "true"
-generatorName: scala-finch
-outputDir: samples/server/petstore/scala-finch
-inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore.yaml
-templateDir: modules/openapi-generator/src/main/resources/scala-finch
diff --git a/docs/generators.md b/docs/generators.md
index efd633f162ef..d9d5bafcaf3c 100644
--- a/docs/generators.md
+++ b/docs/generators.md
@@ -151,7 +151,7 @@ The following generators are available:
* [rust-server-deprecated](generators/rust-server-deprecated.md)
* [scala-akka-http-server (beta)](generators/scala-akka-http-server.md)
* [scala-cask](generators/scala-cask.md)
-* [scala-finch](generators/scala-finch.md)
+* [scala-finch-deprecated (deprecated)](generators/scala-finch-deprecated.md)
* [scala-http4s-server](generators/scala-http4s-server.md)
* [scala-lagom-server-deprecated (deprecated)](generators/scala-lagom-server-deprecated.md)
* [scala-play-server](generators/scala-play-server.md)
diff --git a/docs/generators/scala-finch.md b/docs/generators/scala-finch-deprecated.md
similarity index 94%
rename from docs/generators/scala-finch.md
rename to docs/generators/scala-finch-deprecated.md
index 35aae393a08d..6b13b9c631b4 100644
--- a/docs/generators/scala-finch.md
+++ b/docs/generators/scala-finch-deprecated.md
@@ -1,17 +1,17 @@
---
-title: Documentation for the scala-finch Generator
+title: Documentation for the scala-finch-deprecated Generator
---
## METADATA
| Property | Value | Notes |
| -------- | ----- | ----- |
-| generator name | scala-finch | pass this to the generate command after -g |
-| generator stability | STABLE | |
+| generator name | scala-finch-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 Scala server application with Finch. | |
+| helpTxt | Generates a Scala server application with Finch. 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/ScalaFinchServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaFinchServerCodegen.java
index 85be7d98c486..bd09a19a0e74 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaFinchServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaFinchServerCodegen.java
@@ -20,6 +20,8 @@
import io.swagger.v3.oas.models.media.Schema;
import lombok.Setter;
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.OperationMap;
@@ -43,6 +45,10 @@ public class ScalaFinchServerCodegen extends DefaultCodegen implements CodegenCo
public ScalaFinchServerCodegen() {
super();
+ generatorMetadata = GeneratorMetadata.newBuilder(generatorMetadata)
+ .stability(Stability.DEPRECATED)
+ .build();
+
modifyFeatureSet(features -> features
.includeDocumentationFeatures(DocumentationFeature.Readme)
.wireFormatFeatures(EnumSet.of(WireFormatFeature.JSON, WireFormatFeature.XML, WireFormatFeature.Custom))
@@ -209,12 +215,12 @@ public CodegenType getTag() {
@Override
public String getName() {
- return "scala-finch";
+ return "scala-finch-deprecated";
}
@Override
public String getHelp() {
- return "Generates a Scala server application with Finch.";
+ return "Generates a Scala server application with Finch. IMPORTANT: this generator has been deprecated.";
}
@Override
diff --git a/samples/server/petstore/scala-finch/.openapi-generator-ignore b/samples/server/petstore/scala-finch/.openapi-generator-ignore
deleted file mode 100644
index 7484ee590a38..000000000000
--- a/samples/server/petstore/scala-finch/.openapi-generator-ignore
+++ /dev/null
@@ -1,23 +0,0 @@
-# OpenAPI Generator Ignore
-# Generated by openapi-generator https://github.com/openapitools/openapi-generator
-
-# Use this file to prevent files from being overwritten by the generator.
-# The patterns follow closely to .gitignore or .dockerignore.
-
-# As an example, the C# client generator defines ApiClient.cs.
-# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
-#ApiClient.cs
-
-# You can match any string of characters against a directory, file or extension with a single asterisk (*):
-#foo/*/qux
-# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
-
-# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
-#foo/**/qux
-# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
-
-# You can also negate patterns with an exclamation (!).
-# For example, you can ignore all files in a docs folder with the file extension .md:
-#docs/*.md
-# Then explicitly reverse the ignore rule for a single file:
-#!docs/README.md
diff --git a/samples/server/petstore/scala-finch/.openapi-generator/FILES b/samples/server/petstore/scala-finch/.openapi-generator/FILES
deleted file mode 100644
index cce55c6e8e8e..000000000000
--- a/samples/server/petstore/scala-finch/.openapi-generator/FILES
+++ /dev/null
@@ -1,19 +0,0 @@
-.scalafmt.conf
-README.md
-build.sbt
-project/build.properties
-project/plugins.sbt
-sbt
-src/main/scala/DataAccessor.scala
-src/main/scala/Server.scala
-src/main/scala/endpoint.scala
-src/main/scala/errors.scala
-src/main/scala/org/openapitools/apis/PetApi.scala
-src/main/scala/org/openapitools/apis/StoreApi.scala
-src/main/scala/org/openapitools/apis/UserApi.scala
-src/main/scala/org/openapitools/models/ApiResponse.scala
-src/main/scala/org/openapitools/models/Category.scala
-src/main/scala/org/openapitools/models/Order.scala
-src/main/scala/org/openapitools/models/Pet.scala
-src/main/scala/org/openapitools/models/Tag.scala
-src/main/scala/org/openapitools/models/User.scala
diff --git a/samples/server/petstore/scala-finch/.openapi-generator/VERSION b/samples/server/petstore/scala-finch/.openapi-generator/VERSION
deleted file mode 100644
index f7962df3e243..000000000000
--- a/samples/server/petstore/scala-finch/.openapi-generator/VERSION
+++ /dev/null
@@ -1 +0,0 @@
-7.22.0-SNAPSHOT
diff --git a/samples/server/petstore/scala-finch/.scalafmt.conf b/samples/server/petstore/scala-finch/.scalafmt.conf
deleted file mode 100644
index fa3c57ad8c66..000000000000
--- a/samples/server/petstore/scala-finch/.scalafmt.conf
+++ /dev/null
@@ -1,58 +0,0 @@
-version=3.10.6
-runner.dialect = scala212
-project {
- git = false
- excludeFilters = [
- scalafmt-benchmarks/src/resources,
- sbt-test
- bin/issue
- ]
- layout = StandardConvention
-}
-align {
- preset = none
- stripMargin = true
-}
-binPack {
- importSelectors = fold
-}
-newlines {
- avoidForSimpleOverflow = all
- ignoreInSyntax = false
- source = fold
-}
-rewrite {
- rules = [
- AvoidInfix,
- Imports,
- RedundantBraces,
- RedundantParens,
- SortModifiers,
- ]
- imports {
- selectors = fold
- removeRedundantSelectors = true
- sort = ascii
- groups = [
- ["org\\.scalafmt\\..*"],
- ["scala\\.meta\\..*", "org\\.scalameta\\..*"],
- ["sbt\\..*"],
- ["java.?\\..*"],
- ["scala\\..*"],
- ["org\\..*"],
- ["com\\..*"],
- ]
- }
- redundantBraces {
- preset = all
- oneStatApply {
- parensMaxSpan = 300
- bracesMinSpan = 300
- }
- }
- redundantParens {
- preset = all
- }
- sortModifiers.preset = styleGuide
- trailingCommas.style = "always"
-}
diff --git a/samples/server/petstore/scala-finch/README.md b/samples/server/petstore/scala-finch/README.md
deleted file mode 100644
index 099ac4d904e4..000000000000
--- a/samples/server/petstore/scala-finch/README.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# OpenAPI generated server
-
-## Overview
-This server was generated by the [OpenAPI Generator](https://openapi-generator.tech) project. By using the
-[OpenAPI-Spec](https://openapis.org) from a remote server, you can easily generate a server stub. This
-is an example of building a OpenAPI-enabled scalatra server.
-
-This example uses the [finch](http://github.com/finagle/finch/) framework.
-
-### After generation
-
-Run `scalafix RemoveUnusedImports` to cleanup unused imports.
diff --git a/samples/server/petstore/scala-finch/build.sbt b/samples/server/petstore/scala-finch/build.sbt
deleted file mode 100644
index de479d2ca1fa..000000000000
--- a/samples/server/petstore/scala-finch/build.sbt
+++ /dev/null
@@ -1,66 +0,0 @@
-scalariformSettings
-
-organization := "org.openapitools"
-
-name := "finch-sample"
-
-version := "0.1.0-SNAPSHOT"
-
-scalaVersion := "2.12.3"
-
-resolvers += Resolver.sonatypeRepo("snapshots")
-
-resolvers += "TM" at "https://maven.twttr.com"
-
-resolvers += "Local Maven Repository" at "file://"+Path.userHome.absolutePath+"/.m2/repository"
-
-resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots/"
-
-resolvers += "Sonatype OSS Releases" at "https://oss.sonatype.org/content/repositories/releases/"
-
-Defaults.itSettings
-
-lazy val circeVersion = "0.8.0"
-lazy val finagleVersion = "6.45.0"
-lazy val finchVersion = "0.15.1"
-lazy val scalaTestVersion = "3.0.0"
-
-scalacOptions ++= Seq(
- "-deprecation",
- "-encoding", "UTF-8",
- "-feature",
- "-language:existentials",
- "-language:higherKinds",
- "-language:implicitConversions",
- "-unchecked",
- "-Yno-adapted-args",
- "-Ywarn-dead-code",
- "-Ywarn-numeric-widen",
- "-Xfuture",
- "-Xlint",
- "-Ywarn-unused-import",
- "-language:postfixOps"
-)
-
-lazy val `it-config-sbt-project` = project.in(file(".")).configs(IntegrationTest)
-
-libraryDependencies ++= Seq(
- "com.github.finagle" %% "finch-core" % finchVersion,
- "com.github.finagle" %% "finch-circe" % finchVersion,
- "io.circe" %% "circe-generic" % circeVersion,
- "io.circe" %% "circe-java8" % circeVersion,
- "com.twitter" %% "util-core" % finagleVersion,
- "com.github.finagle" %% "finch-test" % finchVersion % "test",
- "org.scalacheck" %% "scalacheck" % "1.13.4" % "test",
- "org.scalatest" %% "scalatest" % scalaTestVersion % "test"
-)
-
-assemblyMergeStrategy in assembly := {
- case "application.conf" => MergeStrategy.concat
- case "about.html" => MergeStrategy.discard
- case x =>
- val oldStrategy = (assemblyMergeStrategy in assembly).value
- oldStrategy(x)
-}
-
-addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full)
diff --git a/samples/server/petstore/scala-finch/pom.xml b/samples/server/petstore/scala-finch/pom.xml
deleted file mode 100644
index 5e1cad23c528..000000000000
--- a/samples/server/petstore/scala-finch/pom.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
- 4.0.0
- org.openapitools
- finch-server
- pom
- 1.0-SNAPSHOT
- Finch 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-finch/project/build.properties b/samples/server/petstore/scala-finch/project/build.properties
deleted file mode 100644
index 27e88aa115af..000000000000
--- a/samples/server/petstore/scala-finch/project/build.properties
+++ /dev/null
@@ -1 +0,0 @@
-sbt.version=0.13.13
diff --git a/samples/server/petstore/scala-finch/project/plugins.sbt b/samples/server/petstore/scala-finch/project/plugins.sbt
deleted file mode 100644
index 3b4ef35c4f66..000000000000
--- a/samples/server/petstore/scala-finch/project/plugins.sbt
+++ /dev/null
@@ -1,9 +0,0 @@
-resolvers += Resolver.typesafeRepo("releases")
-
-addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.3")
-
-addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.5.3")
-
-addSbtPlugin("org.scalariform" % "sbt-scalariform" % "1.6.0")
-
-addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.6")
diff --git a/samples/server/petstore/scala-finch/sbt b/samples/server/petstore/scala-finch/sbt
deleted file mode 100644
index 08e58821219c..000000000000
--- a/samples/server/petstore/scala-finch/sbt
+++ /dev/null
@@ -1,525 +0,0 @@
-#!/usr/bin/env bash
-#
-# A more capable sbt runner, coincidentally also called sbt.
-# Author: Paul Phillips
-
-# todo - make this dynamic
-declare -r sbt_release_version="0.13.6"
-declare -r sbt_unreleased_version="0.13.6"
-declare -r buildProps="project/build.properties"
-
-declare sbt_jar sbt_dir sbt_create sbt_version
-declare scala_version sbt_explicit_version
-declare verbose noshare batch trace_level log_level
-declare sbt_saved_stty debugUs
-
-echoerr () { echo >&2 "$@"; }
-vlog () { [[ -n "$verbose" ]] && echoerr "$@"; }
-
-# spaces are possible, e.g. sbt.version = 0.13.0
-build_props_sbt () {
- [[ -r "$buildProps" ]] && \
- grep '^sbt\.version' "$buildProps" | tr '=' ' ' | awk '{ print $2; }'
-}
-
-update_build_props_sbt () {
- local ver="$1"
- local old="$(build_props_sbt)"
-
- [[ -r "$buildProps" ]] && [[ "$ver" != "$old" ]] && {
- perl -pi -e "s/^sbt\.version\b.*\$/sbt.version=${ver}/" "$buildProps"
- grep -q '^sbt.version[ =]' "$buildProps" || printf "\nsbt.version=%s\n" "$ver" >> "$buildProps"
-
- vlog "!!!"
- vlog "!!! Updated file $buildProps setting sbt.version to: $ver"
- vlog "!!! Previous value was: $old"
- vlog "!!!"
- }
-}
-
-set_sbt_version () {
- sbt_version="${sbt_explicit_version:-$(build_props_sbt)}"
- [[ -n "$sbt_version" ]] || sbt_version=$sbt_release_version
- export sbt_version
-}
-
-# restore stty settings (echo in particular)
-onSbtRunnerExit() {
- [[ -n "$sbt_saved_stty" ]] || return
- vlog ""
- vlog "restoring stty: $sbt_saved_stty"
- stty "$sbt_saved_stty"
- unset sbt_saved_stty
-}
-
-# save stty and trap exit, to ensure echo is reenabled if we are interrupted.
-trap onSbtRunnerExit EXIT
-sbt_saved_stty="$(stty -g 2>/dev/null)"
-vlog "Saved stty: $sbt_saved_stty"
-
-# this seems to cover the bases on OSX, and someone will
-# have to tell me about the others.
-get_script_path () {
- local path="$1"
- [[ -L "$path" ]] || { echo "$path" ; return; }
-
- local target="$(readlink "$path")"
- if [[ "${target:0:1}" == "/" ]]; then
- echo "$target"
- else
- echo "${path%/*}/$target"
- fi
-}
-
-die() {
- echo "Aborting: $@"
- exit 1
-}
-
-make_url () {
- version="$1"
-
- case "$version" in
- 0.7.*) echo "http://simple-build-tool.googlecode.com/files/sbt-launch-0.7.7.jar" ;;
- 0.10.* ) echo "$sbt_launch_repo/org.scala-tools.sbt/sbt-launch/$version/sbt-launch.jar" ;;
- 0.11.[12]) echo "$sbt_launch_repo/org.scala-tools.sbt/sbt-launch/$version/sbt-launch.jar" ;;
- *) echo "$sbt_launch_repo/org.scala-sbt/sbt-launch/$version/sbt-launch.jar" ;;
- esac
-}
-
-init_default_option_file () {
- local overriding_var="${!1}"
- local default_file="$2"
- if [[ ! -r "$default_file" && "$overriding_var" =~ ^@(.*)$ ]]; then
- local envvar_file="${BASH_REMATCH[1]}"
- if [[ -r "$envvar_file" ]]; then
- default_file="$envvar_file"
- fi
- fi
- echo "$default_file"
-}
-
-declare -r cms_opts="-XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC"
-declare -r jit_opts="-XX:ReservedCodeCacheSize=256m -XX:+TieredCompilation"
-declare -r default_jvm_opts_common="-Xms512m -Xmx1536m -Xss2m $jit_opts $cms_opts"
-declare -r noshare_opts="-Dsbt.global.base=project/.sbtboot -Dsbt.boot.directory=project/.boot -Dsbt.ivy.home=project/.ivy"
-declare -r latest_28="2.8.2"
-declare -r latest_29="2.9.3"
-declare -r latest_210="2.10.4"
-declare -r latest_211="2.11.2"
-
-declare -r script_path="$(get_script_path "$BASH_SOURCE")"
-declare -r script_name="${script_path##*/}"
-
-# some non-read-onlies set with defaults
-declare java_cmd="java"
-declare sbt_opts_file="$(init_default_option_file SBT_OPTS .sbtopts)"
-declare jvm_opts_file="$(init_default_option_file JVM_OPTS .jvmopts)"
-declare sbt_launch_repo="http://typesafe.artifactoryonline.com/typesafe/ivy-releases"
-
-# pull -J and -D options to give to java.
-declare -a residual_args
-declare -a java_args
-declare -a scalac_args
-declare -a sbt_commands
-
-# args to jvm/sbt via files or environment variables
-declare -a extra_jvm_opts extra_sbt_opts
-
-# if set, use JAVA_HOME over java found in path
-[[ -e "$JAVA_HOME/bin/java" ]] && java_cmd="$JAVA_HOME/bin/java"
-
-# directory to store sbt launchers
-declare sbt_launch_dir="$HOME/.sbt/launchers"
-[[ -d "$sbt_launch_dir" ]] || mkdir -p "$sbt_launch_dir"
-[[ -w "$sbt_launch_dir" ]] || sbt_launch_dir="$(mktemp -d -t sbt_extras_launchers.XXXXXX)"
-
-java_version () {
- local version=$("$java_cmd" -version 2>&1 | grep -e 'java version' | awk '{ print $3 }' | tr -d \")
- vlog "Detected Java version: $version"
- echo "${version:2:1}"
-}
-
-# MaxPermSize critical on pre-8 jvms but incurs noisy warning on 8+
-default_jvm_opts () {
- local v="$(java_version)"
- if [[ $v -ge 8 ]]; then
- echo "$default_jvm_opts_common"
- else
- echo "-XX:MaxPermSize=384m $default_jvm_opts_common"
- fi
-}
-
-build_props_scala () {
- if [[ -r "$buildProps" ]]; then
- versionLine="$(grep '^build.scala.versions' "$buildProps")"
- versionString="${versionLine##build.scala.versions=}"
- echo "${versionString%% .*}"
- fi
-}
-
-execRunner () {
- # print the arguments one to a line, quoting any containing spaces
- vlog "# Executing command line:" && {
- for arg; do
- if [[ -n "$arg" ]]; then
- if printf "%s\n" "$arg" | grep -q ' '; then
- printf >&2 "\"%s\"\n" "$arg"
- else
- printf >&2 "%s\n" "$arg"
- fi
- fi
- done
- vlog ""
- }
-
- [[ -n "$batch" ]] && exec /dev/null; then
- curl --fail --silent "$url" --output "$jar"
- elif which wget >/dev/null; then
- wget --quiet -O "$jar" "$url"
- fi
- } && [[ -r "$jar" ]]
-}
-
-acquire_sbt_jar () {
- sbt_url="$(jar_url "$sbt_version")"
- sbt_jar="$(jar_file "$sbt_version")"
-
- [[ -r "$sbt_jar" ]] || download_url "$sbt_url" "$sbt_jar"
-}
-
-usage () {
- cat < display stack traces with a max of frames (default: -1, traces suppressed)
- -debug-inc enable debugging log for the incremental compiler
- -no-colors disable ANSI color codes
- -sbt-create start sbt even if current directory contains no sbt project
- -sbt-dir path to global settings/plugins directory (default: ~/.sbt/)
- -sbt-boot path to shared boot directory (default: ~/.sbt/boot in 0.11+)
- -ivy path to local Ivy repository (default: ~/.ivy2)
- -no-share use all local caches; no sharing
- -offline put sbt in offline mode
- -jvm-debug Turn on JVM debugging, open at the given port.
- -batch Disable interactive mode
- -prompt Set the sbt prompt; in expr, 's' is the State and 'e' is Extracted
-
- # sbt version (default: sbt.version from $buildProps if present, otherwise $sbt_release_version)
- -sbt-force-latest force the use of the latest release of sbt: $sbt_release_version
- -sbt-version use the specified version of sbt (default: $sbt_release_version)
- -sbt-dev use the latest pre-release version of sbt: $sbt_unreleased_version
- -sbt-jar use the specified jar as the sbt launcher
- -sbt-launch-dir directory to hold sbt launchers (default: ~/.sbt/launchers)
- -sbt-launch-repo repo url for downloading sbt launcher jar (default: $sbt_launch_repo)
-
- # scala version (default: as chosen by sbt)
- -28 use $latest_28
- -29 use $latest_29
- -210 use $latest_210
- -211 use $latest_211
- -scala-home use the scala build at the specified directory
- -scala-version use the specified version of scala
- -binary-version use the specified scala version when searching for dependencies
-
- # java version (default: java from PATH, currently $(java -version 2>&1 | grep version))
- -java-home alternate JAVA_HOME
-
- # passing options to the jvm - note it does NOT use JAVA_OPTS due to pollution
- # The default set is used if JVM_OPTS is unset and no -jvm-opts file is found
- $(default_jvm_opts)
- JVM_OPTS environment variable holding either the jvm args directly, or
- the reference to a file containing jvm args if given path is prepended by '@' (e.g. '@/etc/jvmopts')
- Note: "@"-file is overridden by local '.jvmopts' or '-jvm-opts' argument.
- -jvm-opts file containing jvm args (if not given, .jvmopts in project root is used if present)
- -Dkey=val pass -Dkey=val directly to the jvm
- -J-X pass option -X directly to the jvm (-J is stripped)
-
- # passing options to sbt, OR to this runner
- SBT_OPTS environment variable holding either the sbt args directly, or
- the reference to a file containing sbt args if given path is prepended by '@' (e.g. '@/etc/sbtopts')
- Note: "@"-file is overridden by local '.sbtopts' or '-sbt-opts' argument.
- -sbt-opts file containing sbt args (if not given, .sbtopts in project root is used if present)
- -S-X add -X to sbt's scalacOptions (-S is stripped)
-EOM
-}
-
-addJava () {
- vlog "[addJava] arg = '$1'"
- java_args=( "${java_args[@]}" "$1" )
-}
-addSbt () {
- vlog "[addSbt] arg = '$1'"
- sbt_commands=( "${sbt_commands[@]}" "$1" )
-}
-setThisBuild () {
- vlog "[addBuild] args = '$@'"
- local key="$1" && shift
- addSbt "set $key in ThisBuild := $@"
-}
-
-addScalac () {
- vlog "[addScalac] arg = '$1'"
- scalac_args=( "${scalac_args[@]}" "$1" )
-}
-addResidual () {
- vlog "[residual] arg = '$1'"
- residual_args=( "${residual_args[@]}" "$1" )
-}
-addResolver () {
- addSbt "set resolvers += $1"
-}
-addDebugger () {
- addJava "-Xdebug"
- addJava "-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=$1"
-}
-setScalaVersion () {
- [[ "$1" == *"-SNAPSHOT" ]] && addResolver 'Resolver.sonatypeRepo("snapshots")'
- addSbt "++ $1"
-}
-
-process_args ()
-{
- require_arg () {
- local type="$1"
- local opt="$2"
- local arg="$3"
-
- if [[ -z "$arg" ]] || [[ "${arg:0:1}" == "-" ]]; then
- die "$opt requires <$type> argument"
- fi
- }
- while [[ $# -gt 0 ]]; do
- case "$1" in
- -h|-help) usage; exit 1 ;;
- -v) verbose=true && shift ;;
- -d) addSbt "--debug" && shift ;;
- -w) addSbt "--warn" && shift ;;
- -q) addSbt "--error" && shift ;;
- -x) debugUs=true && shift ;;
- -trace) require_arg integer "$1" "$2" && trace_level="$2" && shift 2 ;;
- -ivy) require_arg path "$1" "$2" && addJava "-Dsbt.ivy.home=$2" && shift 2 ;;
- -no-colors) addJava "-Dsbt.log.noformat=true" && shift ;;
- -no-share) noshare=true && shift ;;
- -sbt-boot) require_arg path "$1" "$2" && addJava "-Dsbt.boot.directory=$2" && shift 2 ;;
- -sbt-dir) require_arg path "$1" "$2" && sbt_dir="$2" && shift 2 ;;
- -debug-inc) addJava "-Dxsbt.inc.debug=true" && shift ;;
- -offline) addSbt "set offline := true" && shift ;;
- -jvm-debug) require_arg port "$1" "$2" && addDebugger "$2" && shift 2 ;;
- -batch) batch=true && shift ;;
- -prompt) require_arg "expr" "$1" "$2" && setThisBuild shellPrompt "(s => { val e = Project.extract(s) ; $2 })" && shift 2 ;;
-
- -sbt-create) sbt_create=true && shift ;;
- -sbt-jar) require_arg path "$1" "$2" && sbt_jar="$2" && shift 2 ;;
- -sbt-version) require_arg version "$1" "$2" && sbt_explicit_version="$2" && shift 2 ;;
- -sbt-force-latest) sbt_explicit_version="$sbt_release_version" && shift ;;
- -sbt-dev) sbt_explicit_version="$sbt_unreleased_version" && shift ;;
- -sbt-launch-dir) require_arg path "$1" "$2" && sbt_launch_dir="$2" && shift 2 ;;
- -sbt-launch-repo) require_arg path "$1" "$2" && sbt_launch_repo="$2" && shift 2 ;;
- -scala-version) require_arg version "$1" "$2" && setScalaVersion "$2" && shift 2 ;;
- -binary-version) require_arg version "$1" "$2" && setThisBuild scalaBinaryVersion "\"$2\"" && shift 2 ;;
- -scala-home) require_arg path "$1" "$2" && setThisBuild scalaHome "Some(file(\"$2\"))" && shift 2 ;;
- -java-home) require_arg path "$1" "$2" && java_cmd="$2/bin/java" && shift 2 ;;
- -sbt-opts) require_arg path "$1" "$2" && sbt_opts_file="$2" && shift 2 ;;
- -jvm-opts) require_arg path "$1" "$2" && jvm_opts_file="$2" && shift 2 ;;
-
- -D*) addJava "$1" && shift ;;
- -J*) addJava "${1:2}" && shift ;;
- -S*) addScalac "${1:2}" && shift ;;
- -28) setScalaVersion "$latest_28" && shift ;;
- -29) setScalaVersion "$latest_29" && shift ;;
- -210) setScalaVersion "$latest_210" && shift ;;
- -211) setScalaVersion "$latest_211" && shift ;;
-
- *) addResidual "$1" && shift ;;
- esac
- done
-}
-
-# process the direct command line arguments
-process_args "$@"
-
-# skip #-styled comments and blank lines
-readConfigFile() {
- while read line; do
- [[ $line =~ ^# ]] || [[ -z $line ]] || echo "$line"
- done < "$1"
-}
-
-# if there are file/environment sbt_opts, process again so we
-# can supply args to this runner
-if [[ -r "$sbt_opts_file" ]]; then
- vlog "Using sbt options defined in file $sbt_opts_file"
- while read opt; do extra_sbt_opts+=("$opt"); done < <(readConfigFile "$sbt_opts_file")
-elif [[ -n "$SBT_OPTS" && ! ("$SBT_OPTS" =~ ^@.*) ]]; then
- vlog "Using sbt options defined in variable \$SBT_OPTS"
- extra_sbt_opts=( $SBT_OPTS )
-else
- vlog "No extra sbt options have been defined"
-fi
-
-[[ -n "${extra_sbt_opts[*]}" ]] && process_args "${extra_sbt_opts[@]}"
-
-# reset "$@" to the residual args
-set -- "${residual_args[@]}"
-argumentCount=$#
-
-# set sbt version
-set_sbt_version
-
-# only exists in 0.12+
-setTraceLevel() {
- case "$sbt_version" in
- "0.7."* | "0.10."* | "0.11."* ) echoerr "Cannot set trace level in sbt version $sbt_version" ;;
- *) setThisBuild traceLevel $trace_level ;;
- esac
-}
-
-# set scalacOptions if we were given any -S opts
-[[ ${#scalac_args[@]} -eq 0 ]] || addSbt "set scalacOptions in ThisBuild += \"${scalac_args[@]}\""
-
-# Update build.properties on disk to set explicit version - sbt gives us no choice
-[[ -n "$sbt_explicit_version" ]] && update_build_props_sbt "$sbt_explicit_version"
-vlog "Detected sbt version $sbt_version"
-
-[[ -n "$scala_version" ]] && vlog "Overriding scala version to $scala_version"
-
-# no args - alert them there's stuff in here
-(( argumentCount > 0 )) || {
- vlog "Starting $script_name: invoke with -help for other options"
- residual_args=( shell )
-}
-
-# verify this is an sbt dir or -create was given
-[[ -r ./build.sbt || -d ./project || -n "$sbt_create" ]] || {
- cat < apis -> operations = TODO error
- private object TODO extends CommonError("Not implemented") {
- def message = "Not implemented"
- }
-
- /**
- *
- * @return A Pet
- */
- def Pet_addPet(pet: Pet): Either[CommonError,Pet] = Left(TODO)
-
- /**
- *
- * @return A Unit
- */
- def Pet_deletePet(petId: Long, apiKey: Option[String]): Either[CommonError,Unit] = Left(TODO)
-
- /**
- *
- * @return A Seq[Pet]
- */
- def Pet_findPetsByStatus(status: Seq[String]): Either[CommonError,Seq[Pet]] = Left(TODO)
-
- /**
- *
- * @return A Seq[Pet]
- */
- def Pet_findPetsByTags(tags: Seq[String]): Either[CommonError,Seq[Pet]] = Left(TODO)
-
- /**
- *
- * @return A Pet
- */
- def Pet_getPetById(petId: Long, authParamapi_key: String): Either[CommonError,Pet] = Left(TODO)
-
- /**
- *
- * @return A Pet
- */
- def Pet_updatePet(pet: Pet): Either[CommonError,Pet] = Left(TODO)
-
- /**
- *
- * @return A Unit
- */
- def Pet_updatePetWithForm(petId: Long, name: Option[String], status: Option[String]): Either[CommonError,Unit] = Left(TODO)
-
- /**
- *
- * @return A ApiResponse
- */
- def Pet_uploadFile(petId: Long, additionalMetadata: Option[String], file: FileUpload): Either[CommonError,ApiResponse] = Left(TODO)
-
- /**
- *
- * @return A Unit
- */
- def Store_deleteOrder(orderId: String): Either[CommonError,Unit] = Left(TODO)
-
- /**
- *
- * @return A Map[String, Int]
- */
- def Store_getInventory(authParamapi_key: String): Either[CommonError,Map[String, Int]] = Left(TODO)
-
- /**
- *
- * @return A Order
- */
- def Store_getOrderById(orderId: Long): Either[CommonError,Order] = Left(TODO)
-
- /**
- *
- * @return A Order
- */
- def Store_placeOrder(order: Order): Either[CommonError,Order] = Left(TODO)
-
- /**
- *
- * @return A Unit
- */
- def User_createUser(user: User, authParamapi_key: String): Either[CommonError,Unit] = Left(TODO)
-
- /**
- *
- * @return A Unit
- */
- def User_createUsersWithArrayInput(user: Seq[User], authParamapi_key: String): Either[CommonError,Unit] = Left(TODO)
-
- /**
- *
- * @return A Unit
- */
- def User_createUsersWithListInput(user: Seq[User], authParamapi_key: String): Either[CommonError,Unit] = Left(TODO)
-
- /**
- *
- * @return A Unit
- */
- def User_deleteUser(username: String, authParamapi_key: String): Either[CommonError,Unit] = Left(TODO)
-
- /**
- *
- * @return A User
- */
- def User_getUserByName(username: String): Either[CommonError,User] = Left(TODO)
-
- /**
- *
- * @return A String
- */
- def User_loginUser(username: String, password: String): Either[CommonError,String] = Left(TODO)
-
- /**
- *
- * @return A Unit
- */
- def User_logoutUser(authParamapi_key: String): Either[CommonError,Unit] = Left(TODO)
-
- /**
- *
- * @return A Unit
- */
- def User_updateUser(username: String, user: User, authParamapi_key: String): Either[CommonError,Unit] = Left(TODO)
-
-}
\ No newline at end of file
diff --git a/samples/server/petstore/scala-finch/src/main/scala/Server.scala b/samples/server/petstore/scala-finch/src/main/scala/Server.scala
deleted file mode 100644
index 4c71eeef5318..000000000000
--- a/samples/server/petstore/scala-finch/src/main/scala/Server.scala
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.openapitools
-
-import io.finch._
-import io.finch.circe._
-import io.circe.{Decoder, ObjectEncoder}
-import io.circe.generic.auto._
-import io.circe.generic.semiauto
-import io.circe.generic.semiauto._
-import io.circe.java8.time._
-import com.twitter.finagle.Http
-import com.twitter.finagle.util.LoadService
-import com.twitter.util.{Await, Future}
-
-
-class Server {
-
- // Loads implementation defined in resources/META-INF/services/org.openapitools.DataAccessor
- val impls: Seq[DataAccessor] = LoadService[DataAccessor]()
- val db = if (impls.isEmpty) new DataAccessor { } else impls.head
-
- val service = endpoint.makeService(db)
-
- val server = Http.serve(":8080", service) //creates service
-
- def close(): Future[Unit] = {
- Await.ready(server.close())
- }
-}
-
-/**
- * Launches the API service when the system is ready.
- */
-object Server extends Server with App {
- Await.ready(server)
-}
diff --git a/samples/server/petstore/scala-finch/src/main/scala/endpoint.scala b/samples/server/petstore/scala-finch/src/main/scala/endpoint.scala
deleted file mode 100644
index 280a5492e88a..000000000000
--- a/samples/server/petstore/scala-finch/src/main/scala/endpoint.scala
+++ /dev/null
@@ -1,48 +0,0 @@
-package org.openapitools
-
-import com.twitter.finagle.Service
-import com.twitter.finagle.http.{Request, Response}
-import com.twitter.finagle.http.exp.Multipart.FileUpload
-import com.twitter.util.Future
-import io.finch._, items._
-import io.circe.{Encoder, Json}
-import io.finch.circe._
-import io.circe.generic.semiauto._
-
-import org.openapitools.apis._
-
-/**
- * Provides the paths and endpoints for all the API's public service methods.
- */
-object endpoint {
-
- def errorToJson(e: Exception): Json = e match {
- case Error.NotPresent(_) =>
- Json.obj("error" -> Json.fromString("something_not_present"))
- case Error.NotParsed(_, _, _) =>
- Json.obj("error" -> Json.fromString("something_not_parsed"))
- case Error.NotValid(_, _) =>
- Json.obj("error" -> Json.fromString("something_not_valid"))
- case error: CommonError =>
- Json.obj("error" -> Json.fromString(error.message))
- }
-
- implicit val ee: Encoder[Exception] = Encoder.instance {
- case e: Error => errorToJson(e)
- case Errors(nel) => Json.arr(nel.toList.map(errorToJson): _*)
- }
-
- /**
- * Compiles together all the endpoints relating to public service methods.
- *
- * @return A service that contains all provided endpoints of the API.
- */
- def makeService(da: DataAccessor): Service[Request, Response] = (
- PetApi.endpoints(da) :+:
- StoreApi.endpoints(da) :+:
- UserApi.endpoints(da)
- ).handle({
- case e: CommonError => NotFound(e)
- }).toService
-
-}
\ No newline at end of file
diff --git a/samples/server/petstore/scala-finch/src/main/scala/errors.scala b/samples/server/petstore/scala-finch/src/main/scala/errors.scala
deleted file mode 100644
index 0d0985d33083..000000000000
--- a/samples/server/petstore/scala-finch/src/main/scala/errors.scala
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.openapitools
-
-/**
- * The parent error from which most API errors extend. Thrown whenever something in the api goes wrong.
- */
-abstract class CommonError(msg: String) extends Exception(msg) {
- def message: String
-}
-
-/**
- * Thrown when the object given is invalid
- * @param message An error message
- */
-case class InvalidInput(message: String) extends CommonError(message)
-
-/**
- * Thrown when the given object is missing a unique ID.
- * @param message An error message
- */
-case class MissingIdentifier(message: String) extends CommonError(message)
-
-/**
- * Thrown when the given record does not exist in the database.
- * @param message An error message
- */
-case class RecordNotFound(message: String) extends CommonError(message)
diff --git a/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/apis/PetApi.scala b/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/apis/PetApi.scala
deleted file mode 100644
index 56c3db10c1d9..000000000000
--- a/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/apis/PetApi.scala
+++ /dev/null
@@ -1,192 +0,0 @@
-package org.openapitools.apis
-
-import java.io._
-import org.openapitools._
-import org.openapitools.models._
-import org.openapitools.models.ApiResponse
-import java.io.File
-import org.openapitools.models.Pet
-import scala.collection.immutable.Seq
-import io.finch.circe._
-import io.circe.generic.semiauto._
-import com.twitter.concurrent.AsyncStream
-import com.twitter.finagle.Service
-import com.twitter.finagle.Http
-import com.twitter.finagle.http.{Request, Response}
-import com.twitter.finagle.http.exp.Multipart.{FileUpload, InMemoryFileUpload, OnDiskFileUpload}
-import com.twitter.util.Future
-import com.twitter.io.Buf
-import io.finch._, items._
-import java.io.File
-import java.nio.file.Files
-import java.time._
-
-object PetApi {
- /**
- * Compiles all service endpoints.
- * @return Bundled compilation of all service endpoints.
- */
- def endpoints(da: DataAccessor) =
- addPet(da) :+:
- deletePet(da) :+:
- findPetsByStatus(da) :+:
- findPetsByTags(da) :+:
- getPetById(da) :+:
- updatePet(da) :+:
- updatePetWithForm(da) :+:
- uploadFile(da)
-
-
- private def checkError(e: CommonError) = e match {
- case InvalidInput(_) => BadRequest(e)
- case MissingIdentifier(_) => BadRequest(e)
- case RecordNotFound(_) => NotFound(e)
- case _ => InternalServerError(e)
- }
-
- implicit class StringOps(s: String) {
-
- import java.time.format.DateTimeFormatter
-
- lazy val localformatter: DateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")
- lazy val datetimeformatter: DateTimeFormatter =
- DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ")
-
- def toLocalDateTime: LocalDateTime = LocalDateTime.parse(s,localformatter)
- def toZonedDateTime: ZonedDateTime = ZonedDateTime.parse(s, datetimeformatter)
-
- }
-
- /**
- *
- * @return An endpoint representing a Pet
- */
- private def addPet(da: DataAccessor): Endpoint[Pet] =
- post("pet" :: jsonBody[Pet]) { (pet: Pet) =>
- da.Pet_addPet(pet) match {
- case Left(error) => checkError(error)
- case Right(data) => Ok(data)
- }
- } handle {
- case e: Exception => BadRequest(e)
- }
-
- /**
- *
- * @return An endpoint representing a Unit
- */
- private def deletePet(da: DataAccessor): Endpoint[Unit] =
- delete("pet" :: long :: headerOption("api_key")) { (petId: Long, apiKey: Option[String]) =>
- da.Pet_deletePet(petId, apiKey) match {
- case Left(error) => checkError(error)
- case Right(data) => Ok(data)
- }
- } handle {
- case e: Exception => BadRequest(e)
- }
-
- /**
- *
- * @return An endpoint representing a Seq[Pet]
- */
- private def findPetsByStatus(da: DataAccessor): Endpoint[Seq[Pet]] =
- get("pet" :: "findByStatus" :: params("status")) { (status: Seq[String]) =>
- da.Pet_findPetsByStatus(status) match {
- case Left(error) => checkError(error)
- case Right(data) => Ok(data)
- }
- } handle {
- case e: Exception => BadRequest(e)
- }
-
- /**
- *
- * @return An endpoint representing a Seq[Pet]
- */
- private def findPetsByTags(da: DataAccessor): Endpoint[Seq[Pet]] =
- get("pet" :: "findByTags" :: params("tags")) { (tags: Seq[String]) =>
- da.Pet_findPetsByTags(tags) match {
- case Left(error) => checkError(error)
- case Right(data) => Ok(data)
- }
- } handle {
- case e: Exception => BadRequest(e)
- }
-
- /**
- *
- * @return An endpoint representing a Pet
- */
- private def getPetById(da: DataAccessor): Endpoint[Pet] =
- get("pet" :: long :: header("api_key")) { (petId: Long, authParamapi_key: String) =>
- da.Pet_getPetById(petId, authParamapi_key) match {
- case Left(error) => checkError(error)
- case Right(data) => Ok(data)
- }
- } handle {
- case e: Exception => BadRequest(e)
- }
-
- /**
- *
- * @return An endpoint representing a Pet
- */
- private def updatePet(da: DataAccessor): Endpoint[Pet] =
- put("pet" :: jsonBody[Pet]) { (pet: Pet) =>
- da.Pet_updatePet(pet) match {
- case Left(error) => checkError(error)
- case Right(data) => Ok(data)
- }
- } handle {
- case e: Exception => BadRequest(e)
- }
-
- /**
- *
- * @return An endpoint representing a Unit
- */
- private def updatePetWithForm(da: DataAccessor): Endpoint[Unit] =
- post("pet" :: long :: paramOption("name") :: paramOption("status")) { (petId: Long, name: Option[String], status: Option[String]) =>
- da.Pet_updatePetWithForm(petId, name, status) match {
- case Left(error) => checkError(error)
- case Right(data) => Ok(data)
- }
- } handle {
- case e: Exception => BadRequest(e)
- }
-
- /**
- *
- * @return An endpoint representing a ApiResponse
- */
- private def uploadFile(da: DataAccessor): Endpoint[ApiResponse] =
- post("pet" :: long :: "uploadImage" :: paramOption("additionalMetadata") :: fileUpload("file")) { (petId: Long, additionalMetadata: Option[String], file: FileUpload) =>
- da.Pet_uploadFile(petId, additionalMetadata, file) match {
- case Left(error) => checkError(error)
- case Right(data) => Ok(data)
- }
- } handle {
- case e: Exception => BadRequest(e)
- }
-
-
- implicit private def fileUploadToFile(fileUpload: FileUpload) : File = {
- fileUpload match {
- case upload: InMemoryFileUpload =>
- bytesToFile(Buf.ByteArray.Owned.extract(upload.content))
- case upload: OnDiskFileUpload =>
- upload.content
- case _ => null
- }
- }
-
- private def bytesToFile(input: Array[Byte]): java.io.File = {
- val file = Files.createTempFile("tmpPetApi", null).toFile
- val output = new FileOutputStream(file)
- output.write(input)
- file
- }
-
- // This assists in params(string) application (which must be Seq[A] in parameter list) when the param is used as a List[A] elsewhere.
- implicit def seqList[A](input: Seq[A]): List[A] = input.toList
-}
diff --git a/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/apis/StoreApi.scala b/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/apis/StoreApi.scala
deleted file mode 100644
index 3167cf7d76a2..000000000000
--- a/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/apis/StoreApi.scala
+++ /dev/null
@@ -1,129 +0,0 @@
-package org.openapitools.apis
-
-import java.io._
-import org.openapitools._
-import org.openapitools.models._
-import org.openapitools.models.Order
-import io.finch.circe._
-import io.circe.generic.semiauto._
-import com.twitter.concurrent.AsyncStream
-import com.twitter.finagle.Service
-import com.twitter.finagle.Http
-import com.twitter.finagle.http.{Request, Response}
-import com.twitter.finagle.http.exp.Multipart.{FileUpload, InMemoryFileUpload, OnDiskFileUpload}
-import com.twitter.util.Future
-import com.twitter.io.Buf
-import io.finch._, items._
-import java.io.File
-import java.nio.file.Files
-import java.time._
-
-object StoreApi {
- /**
- * Compiles all service endpoints.
- * @return Bundled compilation of all service endpoints.
- */
- def endpoints(da: DataAccessor) =
- deleteOrder(da) :+:
- getInventory(da) :+:
- getOrderById(da) :+:
- placeOrder(da)
-
-
- private def checkError(e: CommonError) = e match {
- case InvalidInput(_) => BadRequest(e)
- case MissingIdentifier(_) => BadRequest(e)
- case RecordNotFound(_) => NotFound(e)
- case _ => InternalServerError(e)
- }
-
- implicit class StringOps(s: String) {
-
- import java.time.format.DateTimeFormatter
-
- lazy val localformatter: DateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")
- lazy val datetimeformatter: DateTimeFormatter =
- DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ")
-
- def toLocalDateTime: LocalDateTime = LocalDateTime.parse(s,localformatter)
- def toZonedDateTime: ZonedDateTime = ZonedDateTime.parse(s, datetimeformatter)
-
- }
-
- /**
- *
- * @return An endpoint representing a Unit
- */
- private def deleteOrder(da: DataAccessor): Endpoint[Unit] =
- delete("store" :: "order" :: string) { (orderId: String) =>
- da.Store_deleteOrder(orderId) match {
- case Left(error) => checkError(error)
- case Right(data) => Ok(data)
- }
- } handle {
- case e: Exception => BadRequest(e)
- }
-
- /**
- *
- * @return An endpoint representing a Map[String, Int]
- */
- private def getInventory(da: DataAccessor): Endpoint[Map[String, Int]] =
- get("store" :: "inventory" :: header("api_key")) { (authParamapi_key: String) =>
- da.Store_getInventory(authParamapi_key) match {
- case Left(error) => checkError(error)
- case Right(data) => Ok(data)
- }
- } handle {
- case e: Exception => BadRequest(e)
- }
-
- /**
- *
- * @return An endpoint representing a Order
- */
- private def getOrderById(da: DataAccessor): Endpoint[Order] =
- get("store" :: "order" :: long) { (orderId: Long) =>
- da.Store_getOrderById(orderId) match {
- case Left(error) => checkError(error)
- case Right(data) => Ok(data)
- }
- } handle {
- case e: Exception => BadRequest(e)
- }
-
- /**
- *
- * @return An endpoint representing a Order
- */
- private def placeOrder(da: DataAccessor): Endpoint[Order] =
- post("store" :: "order" :: jsonBody[Order]) { (order: Order) =>
- da.Store_placeOrder(order) match {
- case Left(error) => checkError(error)
- case Right(data) => Ok(data)
- }
- } handle {
- case e: Exception => BadRequest(e)
- }
-
-
- implicit private def fileUploadToFile(fileUpload: FileUpload) : File = {
- fileUpload match {
- case upload: InMemoryFileUpload =>
- bytesToFile(Buf.ByteArray.Owned.extract(upload.content))
- case upload: OnDiskFileUpload =>
- upload.content
- case _ => null
- }
- }
-
- private def bytesToFile(input: Array[Byte]): java.io.File = {
- val file = Files.createTempFile("tmpStoreApi", null).toFile
- val output = new FileOutputStream(file)
- output.write(input)
- file
- }
-
- // This assists in params(string) application (which must be Seq[A] in parameter list) when the param is used as a List[A] elsewhere.
- implicit def seqList[A](input: Seq[A]): List[A] = input.toList
-}
diff --git a/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/apis/UserApi.scala b/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/apis/UserApi.scala
deleted file mode 100644
index 356b98f91baa..000000000000
--- a/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/apis/UserApi.scala
+++ /dev/null
@@ -1,191 +0,0 @@
-package org.openapitools.apis
-
-import java.io._
-import org.openapitools._
-import org.openapitools.models._
-import scala.collection.immutable.Seq
-import org.openapitools.models.User
-import java.time.ZonedDateTime
-import io.finch.circe._
-import io.circe.generic.semiauto._
-import com.twitter.concurrent.AsyncStream
-import com.twitter.finagle.Service
-import com.twitter.finagle.Http
-import com.twitter.finagle.http.{Request, Response}
-import com.twitter.finagle.http.exp.Multipart.{FileUpload, InMemoryFileUpload, OnDiskFileUpload}
-import com.twitter.util.Future
-import com.twitter.io.Buf
-import io.finch._, items._
-import java.io.File
-import java.nio.file.Files
-import java.time._
-
-object UserApi {
- /**
- * Compiles all service endpoints.
- * @return Bundled compilation of all service endpoints.
- */
- def endpoints(da: DataAccessor) =
- createUser(da) :+:
- createUsersWithArrayInput(da) :+:
- createUsersWithListInput(da) :+:
- deleteUser(da) :+:
- getUserByName(da) :+:
- loginUser(da) :+:
- logoutUser(da) :+:
- updateUser(da)
-
-
- private def checkError(e: CommonError) = e match {
- case InvalidInput(_) => BadRequest(e)
- case MissingIdentifier(_) => BadRequest(e)
- case RecordNotFound(_) => NotFound(e)
- case _ => InternalServerError(e)
- }
-
- implicit class StringOps(s: String) {
-
- import java.time.format.DateTimeFormatter
-
- lazy val localformatter: DateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")
- lazy val datetimeformatter: DateTimeFormatter =
- DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ")
-
- def toLocalDateTime: LocalDateTime = LocalDateTime.parse(s,localformatter)
- def toZonedDateTime: ZonedDateTime = ZonedDateTime.parse(s, datetimeformatter)
-
- }
-
- /**
- *
- * @return An endpoint representing a Unit
- */
- private def createUser(da: DataAccessor): Endpoint[Unit] =
- post("user" :: jsonBody[User] :: header("api_key")) { (user: User, authParamapi_key: String) =>
- da.User_createUser(user, authParamapi_key) match {
- case Left(error) => checkError(error)
- case Right(data) => Ok(data)
- }
- } handle {
- case e: Exception => BadRequest(e)
- }
-
- /**
- *
- * @return An endpoint representing a Unit
- */
- private def createUsersWithArrayInput(da: DataAccessor): Endpoint[Unit] =
- post("user" :: "createWithArray" :: jsonBody[Seq[User]] :: header("api_key")) { (user: Seq[User], authParamapi_key: String) =>
- da.User_createUsersWithArrayInput(user, authParamapi_key) match {
- case Left(error) => checkError(error)
- case Right(data) => Ok(data)
- }
- } handle {
- case e: Exception => BadRequest(e)
- }
-
- /**
- *
- * @return An endpoint representing a Unit
- */
- private def createUsersWithListInput(da: DataAccessor): Endpoint[Unit] =
- post("user" :: "createWithList" :: jsonBody[Seq[User]] :: header("api_key")) { (user: Seq[User], authParamapi_key: String) =>
- da.User_createUsersWithListInput(user, authParamapi_key) match {
- case Left(error) => checkError(error)
- case Right(data) => Ok(data)
- }
- } handle {
- case e: Exception => BadRequest(e)
- }
-
- /**
- *
- * @return An endpoint representing a Unit
- */
- private def deleteUser(da: DataAccessor): Endpoint[Unit] =
- delete("user" :: string :: header("api_key")) { (username: String, authParamapi_key: String) =>
- da.User_deleteUser(username, authParamapi_key) match {
- case Left(error) => checkError(error)
- case Right(data) => Ok(data)
- }
- } handle {
- case e: Exception => BadRequest(e)
- }
-
- /**
- *
- * @return An endpoint representing a User
- */
- private def getUserByName(da: DataAccessor): Endpoint[User] =
- get("user" :: string) { (username: String) =>
- da.User_getUserByName(username) match {
- case Left(error) => checkError(error)
- case Right(data) => Ok(data)
- }
- } handle {
- case e: Exception => BadRequest(e)
- }
-
- /**
- *
- * @return An endpoint representing a String
- */
- private def loginUser(da: DataAccessor): Endpoint[String] =
- get("user" :: "login" :: param("username") :: param("password")) { (username: String, password: String) =>
- da.User_loginUser(username, password) match {
- case Left(error) => checkError(error)
- case Right(data) => Ok(data)
- }
- } handle {
- case e: Exception => BadRequest(e)
- }
-
- /**
- *
- * @return An endpoint representing a Unit
- */
- private def logoutUser(da: DataAccessor): Endpoint[Unit] =
- get("user" :: "logout" :: header("api_key")) { (authParamapi_key: String) =>
- da.User_logoutUser(authParamapi_key) match {
- case Left(error) => checkError(error)
- case Right(data) => Ok(data)
- }
- } handle {
- case e: Exception => BadRequest(e)
- }
-
- /**
- *
- * @return An endpoint representing a Unit
- */
- private def updateUser(da: DataAccessor): Endpoint[Unit] =
- put("user" :: string :: jsonBody[User] :: header("api_key")) { (username: String, user: User, authParamapi_key: String) =>
- da.User_updateUser(username, user, authParamapi_key) match {
- case Left(error) => checkError(error)
- case Right(data) => Ok(data)
- }
- } handle {
- case e: Exception => BadRequest(e)
- }
-
-
- implicit private def fileUploadToFile(fileUpload: FileUpload) : File = {
- fileUpload match {
- case upload: InMemoryFileUpload =>
- bytesToFile(Buf.ByteArray.Owned.extract(upload.content))
- case upload: OnDiskFileUpload =>
- upload.content
- case _ => null
- }
- }
-
- private def bytesToFile(input: Array[Byte]): java.io.File = {
- val file = Files.createTempFile("tmpUserApi", null).toFile
- val output = new FileOutputStream(file)
- output.write(input)
- file
- }
-
- // This assists in params(string) application (which must be Seq[A] in parameter list) when the param is used as a List[A] elsewhere.
- implicit def seqList[A](input: Seq[A]): List[A] = input.toList
-}
diff --git a/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/models/ApiResponse.scala b/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/models/ApiResponse.scala
deleted file mode 100644
index f0a89e43a1dc..000000000000
--- a/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/models/ApiResponse.scala
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.openapitools.models
-
-import io.circe._
-import io.finch.circe._
-import io.circe.generic.semiauto._
-import io.circe.java8.time._
-import org.openapitools._
-
-/**
- * Describes the result of uploading an image resource
- * @param code
- * @param _type
- * @param message
- */
-case class ApiResponse(code: Option[Int],
- _type: Option[String],
- message: Option[String]
- )
-
-object ApiResponse {
- /**
- * Creates the codec for converting ApiResponse from and to JSON.
- */
- implicit val decoder: Decoder[ApiResponse] = deriveDecoder
- implicit val encoder: ObjectEncoder[ApiResponse] = deriveEncoder
-}
diff --git a/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/models/Category.scala b/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/models/Category.scala
deleted file mode 100644
index 1f3793278091..000000000000
--- a/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/models/Category.scala
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.openapitools.models
-
-import io.circe._
-import io.finch.circe._
-import io.circe.generic.semiauto._
-import io.circe.java8.time._
-import org.openapitools._
-
-/**
- * A category for a pet
- * @param id
- * @param name
- */
-case class Category(id: Option[Long],
- name: Option[String]
- )
-
-object Category {
- /**
- * Creates the codec for converting Category from and to JSON.
- */
- implicit val decoder: Decoder[Category] = deriveDecoder
- implicit val encoder: ObjectEncoder[Category] = deriveEncoder
-}
diff --git a/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/models/Order.scala b/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/models/Order.scala
deleted file mode 100644
index 657a7b7249a9..000000000000
--- a/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/models/Order.scala
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.openapitools.models
-
-import io.circe._
-import io.finch.circe._
-import io.circe.generic.semiauto._
-import io.circe.java8.time._
-import org.openapitools._
-import java.time.ZonedDateTime
-
-/**
- * An order for a pets from the pet store
- * @param id
- * @param petId
- * @param quantity
- * @param shipDate
- * @param status Order Status
- * @param complete
- */
-case class Order(id: Option[Long],
- petId: Option[Long],
- quantity: Option[Int],
- shipDate: Option[ZonedDateTime],
- status: Option[String],
- complete: Option[Boolean]
- )
-
-object Order {
- /**
- * Creates the codec for converting Order from and to JSON.
- */
- implicit val decoder: Decoder[Order] = deriveDecoder
- implicit val encoder: ObjectEncoder[Order] = deriveEncoder
-}
diff --git a/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/models/Pet.scala b/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/models/Pet.scala
deleted file mode 100644
index 4e499e7f05a8..000000000000
--- a/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/models/Pet.scala
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.openapitools.models
-
-import io.circe._
-import io.finch.circe._
-import io.circe.generic.semiauto._
-import io.circe.java8.time._
-import org.openapitools._
-import org.openapitools.models.Category
-import org.openapitools.models.Tag
-import scala.collection.immutable.Seq
-
-/**
- * A pet for sale in the pet store
- * @param id
- * @param category
- * @param name
- * @param photoUrls
- * @param tags
- * @param status pet status in the store
- */
-case class Pet(id: Option[Long],
- category: Option[Category],
- name: String,
- photoUrls: Seq[String],
- tags: Option[Seq[Tag]],
- status: Option[String]
- )
-
-object Pet {
- /**
- * Creates the codec for converting Pet from and to JSON.
- */
- implicit val decoder: Decoder[Pet] = deriveDecoder
- implicit val encoder: ObjectEncoder[Pet] = deriveEncoder
-}
diff --git a/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/models/Tag.scala b/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/models/Tag.scala
deleted file mode 100644
index 7636d02e6bec..000000000000
--- a/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/models/Tag.scala
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.openapitools.models
-
-import io.circe._
-import io.finch.circe._
-import io.circe.generic.semiauto._
-import io.circe.java8.time._
-import org.openapitools._
-
-/**
- * A tag for a pet
- * @param id
- * @param name
- */
-case class Tag(id: Option[Long],
- name: Option[String]
- )
-
-object Tag {
- /**
- * Creates the codec for converting Tag from and to JSON.
- */
- implicit val decoder: Decoder[Tag] = deriveDecoder
- implicit val encoder: ObjectEncoder[Tag] = deriveEncoder
-}
diff --git a/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/models/User.scala b/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/models/User.scala
deleted file mode 100644
index b4b05b2c3f16..000000000000
--- a/samples/server/petstore/scala-finch/src/main/scala/org/openapitools/models/User.scala
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.openapitools.models
-
-import io.circe._
-import io.finch.circe._
-import io.circe.generic.semiauto._
-import io.circe.java8.time._
-import org.openapitools._
-
-/**
- * A User who is purchasing from the pet store
- * @param id
- * @param username
- * @param firstName
- * @param lastName
- * @param email
- * @param password
- * @param phone
- * @param userStatus User Status
- */
-case class User(id: Option[Long],
- username: Option[String],
- firstName: Option[String],
- lastName: Option[String],
- email: Option[String],
- password: Option[String],
- phone: Option[String],
- userStatus: Option[Int]
- )
-
-object User {
- /**
- * Creates the codec for converting User from and to JSON.
- */
- implicit val decoder: Decoder[User] = deriveDecoder
- implicit val encoder: ObjectEncoder[User] = deriveEncoder
-}