diff --git a/.gitignore b/.gitignore index ead76a3a945..ca54f525660 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,7 @@ samples/server-generator/node/output/node_modules samples/server-generator/scalatra/target samples/server-generator/scalatra/output/.history +target +.idea +.lib +atlassian-ide-plugin.xml diff --git a/build.sbt b/build.sbt new file mode 100644 index 00000000000..50638d53563 --- /dev/null +++ b/build.sbt @@ -0,0 +1,103 @@ +import xml.Group +import AssemblyKeys._ + +organization := "com.wordnik" + +name := "swagger-codegen" + +version := "2.0.2-SNAPSHOT" + +scalaVersion := "2.9.2" + +javacOptions ++= Seq("-Xlint:unchecked", "-Xlint:deprecation") + +scalacOptions ++= Seq("-optimize", "-unchecked", "-deprecation", "-Xcheckinit", "-encoding", "utf8") + +crossScalaVersions := Seq("2.9.0", "2.9.0-1", "2.9.1", "2.9.1-1", "2.9.2", "2.10.0") + +libraryDependencies ++= Seq( + "org.json4s" %% "json4s-jackson" % "3.1.0", + "commons-io" % "commons-io" % "2.3", + "junit" % "junit" % "4.11" % "test", + "org.scalatest" %% "scalatest" % "1.9.1" % "test" +) + +libraryDependencies <+= scalaVersion { + case v if v.startsWith("2.9") => + "org.fusesource.scalate" % "scalate-wikitext_2.9" % "1.6.1" + case v if v.startsWith("2.10") => + "org.fusesource.scalate" %% "scalate-wikitext" % "1.6.1" +} + + +libraryDependencies <+= scalaVersion { + case v if v.startsWith("2.9") => + "org.fusesource.scalate" % "scalate-page_2.9" % "1.6.1" + case v if v.startsWith("2.10") => + "org.fusesource.scalate" %% "scalate-page" % "1.6.1" +} + +packageOptions <+= (name, version, organization) map { + (title, version, vendor) => + Package.ManifestAttributes( + "Created-By" -> "Simple Build Tool", + "Built-By" -> System.getProperty("user.name"), + "Build-Jdk" -> System.getProperty("java.version"), + "Specification-Title" -> title, + "Specification-Version" -> version, + "Specification-Vendor" -> vendor, + "Implementation-Title" -> title, + "Implementation-Version" -> version, + "Implementation-Vendor-Id" -> vendor, + "Implementation-Vendor" -> vendor + ) +} + +publishTo <<= (version) { version: String => + if (version.trim.endsWith("SNAPSHOT")) + Some("Sonatype Nexus Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots") + else + Some("Sonatype Nexus Releases" at "https://oss.sonatype.org/content/repositories/releases") +} + +homepage := Some(new URL("https://github.com/json4s/json4s")) + +startYear := Some(2009) + +licenses := Seq(("Apache License 2.0", new URL("http://www.apache.org/licenses/LICENSE-2.0.html"))) + +pomExtra <<= (pomExtra, name, description) {(pom, name, desc) => pom ++ Group( + + scm:git:git@github.com:wordnik/swagger-codegen.git + scm:git:git@github.com:wordnik/swagger-codegen.git + https://github.com/wordnik/swagger-codegen + + + github + https://github.com/wordnik/swagger-codegen/issues + + + + rpidikiti + Ramesh Pidikiti + ramesh@wordnik.com + + + ayush + Ayush Gupts + ayush@glugbot.com + + + fehguy + Tony Tam + fehguy@gmail.com + + + casualjim + Ivan Porto Carrero + http://flanders.co.nz/ + + +)} + +seq(assemblySettings:_*) \ No newline at end of file diff --git a/pom.xml b/pom.xml index 84a1f498102..4f2906641cb 100644 --- a/pom.xml +++ b/pom.xml @@ -223,12 +223,12 @@ org.fusesource.scalate scalate-wikitext - 1.5.3 + 1.6.1 org.fusesource.scalate scalate-page - 1.5.3 + 1.6.1 org.scala-lang diff --git a/project/build.properties b/project/build.properties new file mode 100644 index 00000000000..2b9d40cb820 --- /dev/null +++ b/project/build.properties @@ -0,0 +1 @@ +sbt.version=0.12.1 \ No newline at end of file diff --git a/project/plugins.sbt b/project/plugins.sbt new file mode 100644 index 00000000000..e9dd5feefb9 --- /dev/null +++ b/project/plugins.sbt @@ -0,0 +1,2 @@ + +addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.8.5") \ No newline at end of file diff --git a/samples/client/petstore/flash/src/main/flex/com/wordnik/swagger/common/ApiInvoker.as b/samples/client/petstore/flash/src/main/flex/com/wordnik/swagger/common/ApiInvoker.as index 662041443dc..40ad41af65f 100644 --- a/samples/client/petstore/flash/src/main/flex/com/wordnik/swagger/common/ApiInvoker.as +++ b/samples/client/petstore/flash/src/main/flex/com/wordnik/swagger/common/ApiInvoker.as @@ -238,7 +238,7 @@ public class ApiInvoker extends EventDispatcher var qualifiedClassName:String=objDescriptor.@name; qualifiedClassName=qualifiedClassName.replace("::","."); var className: String = qualifiedClassName.substring(qualifiedClassName.lastIndexOf(".") + 1); - className = className.charAt().toLowerCase() + className.substring(1); + className = className().toLowerCase() + className.substring(1); writer.xml.setName(className); for each(property in objDescriptor.elements("variable")){ diff --git a/samples/client/petstore/flash/src/main/flex/com/wordnik/swagger/common/ApiUrlHelper.as b/samples/client/petstore/flash/src/main/flex/com/wordnik/swagger/common/ApiUrlHelper.as index 3b94f447a83..affa1eb0ff9 100644 --- a/samples/client/petstore/flash/src/main/flex/com/wordnik/swagger/common/ApiUrlHelper.as +++ b/samples/client/petstore/flash/src/main/flex/com/wordnik/swagger/common/ApiUrlHelper.as @@ -31,7 +31,7 @@ internal class ApiUrlHelper { } internal static function getProxyUrl(hostName: String, proxyPath: String): String{ - if (hostName.charAt(hostName.length - 1) == "/") //remove trailing slash + if (hostName(hostName.length - 1) == "/") //remove trailing slash { hostName = hostName.substring(0, hostName.length - 1); } diff --git a/sbt b/sbt new file mode 100755 index 00000000000..4ad3dcf36ba --- /dev/null +++ b/sbt @@ -0,0 +1,463 @@ +#!/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.12.2-RC2 +declare -r sbt_snapshot_version=0.13.0-SNAPSHOT + +unset sbt_jar sbt_dir sbt_create sbt_snapshot sbt_launch_dir +unset scala_version java_home sbt_explicit_version +unset verbose debug quiet noshare trace_level log_level + +for arg in "$@"; do + case $arg in + -q|-quiet) quiet=1 ;; + *) ;; + esac +done + +build_props_sbt () { + if [[ -f project/build.properties ]]; then + versionLine=$(grep ^sbt.version project/build.properties) + versionString=${versionLine##sbt.version=} + echo "$versionString" + fi +} + +update_build_props_sbt () { + local ver="$1" + local old=$(build_props_sbt) + + if [[ $ver == $old ]]; then + return + elif [[ -f project/build.properties ]]; then + perl -pi -e "s/^sbt\.version=.*\$/sbt.version=${ver}/" project/build.properties + grep -q '^sbt.version=' project/build.properties || echo "sbt.version=${ver}" >> project/build.properties + + echo !!! + echo !!! Updated file project/build.properties setting sbt.version to: $ver + echo !!! Previous value was: $old + echo !!! + fi +} + +sbt_version () { + if [[ -n $sbt_explicit_version ]]; then + echo $sbt_explicit_version + else + local v=$(build_props_sbt) + if [[ -n $v ]]; then + echo $v + else + echo $sbt_release_version + fi + fi +} + +echoerr () { + [[ -z $quiet ]] && echo 1>&2 "$@" +} +vlog () { + [[ $verbose || $debug ]] && echoerr "$@" +} +dlog () { + [[ $debug ]] && echoerr "$@" +} + +# 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 "$(dirname $path)/$target" + fi +} + +# a ham-fisted attempt to move some memory settings in concert +# so they need not be dicked around with individually. +get_mem_opts () { + local mem=${1:-1536} + local perm=$(( $mem / 4 )) + (( $perm > 256 )) || perm=256 + (( $perm < 1024 )) || perm=1024 + local codecache=$(( $perm / 2 )) + + echo "-Xms${mem}m -Xmx${mem}m -XX:MaxPermSize=${perm}m -XX:ReservedCodeCacheSize=${codecache}m" +} + +die() { + echo "Aborting: $@" + exit 1 +} + +make_url () { + groupid="$1" + category="$2" + version="$3" + + echo "http://typesafe.artifactoryonline.com/typesafe/ivy-$category/$groupid/sbt-launch/$version/sbt-launch.jar" +} + +declare -r default_jvm_opts="-Dfile.encoding=UTF8" +declare -r default_sbt_opts="-XX:+CMSClassUnloadingEnabled" +declare -r default_sbt_mem=1536 +declare -r default_trace_level=15 +declare -r noshare_opts="-Dsbt.global.base=project/.sbtboot -Dsbt.boot.directory=project/.boot -Dsbt.ivy.home=project/.ivy" +declare -r sbt_opts_file=".sbtopts" +declare -r jvm_opts_file=".jvmopts" +declare -r latest_28="2.8.2" +declare -r latest_29="2.9.2" +declare -r latest_210="2.10.0" + +declare -r script_path=$(get_script_path "$BASH_SOURCE") +declare -r script_dir="$(dirname $script_path)" +declare -r script_name="$(basename $script_path)" + +# some non-read-onlies set with defaults +declare java_cmd=java +declare sbt_launch_dir="$script_dir/.lib" +declare sbt_universal_launcher="$script_dir/lib/sbt-launch.jar" +declare sbt_mem=$default_sbt_mem +declare sbt_jar=$sbt_universal_launcher +declare trace_level=$default_trace_level +declare log_level=Info + +# 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 + +# if set, use JAVA_HOME over java found in path +[[ -e "$JAVA_HOME/bin/java" ]] && java_cmd="$JAVA_HOME/bin/java" + +build_props_scala () { + if [[ -f project/build.properties ]]; then + versionLine=$(grep ^build.scala.versions project/build.properties) + versionString=${versionLine##build.scala.versions=} + echo ${versionString%% .*} + fi +} + +execRunner () { + # print the arguments one to a line, quoting any containing spaces + [[ $verbose || $debug ]] && echo "# Executing command line:" && { + for arg; do + if printf "%s\n" "$arg" | grep -q ' '; then + printf "\"%s\"\n" "$arg" + else + printf "%s\n" "$arg" + fi + done + echo "" + } + + exec "$@" +} + +sbt_groupid () { + case $(sbt_version) in + 0.7.*) echo org.scala-tools.sbt ;; + 0.10.*) echo org.scala-tools.sbt ;; + 0.11.[12]) echo org.scala-tools.sbt ;; + *) echo org.scala-sbt ;; + esac +} + +sbt_artifactory_list () { + local version0=$(sbt_version) + local version=${version0%-SNAPSHOT} + local url="http://typesafe.artifactoryonline.com/typesafe/ivy-snapshots/$(sbt_groupid)/sbt-launch/" + dlog "Looking for snapshot list at: $url " + + curl -s --list-only "$url" | \ + grep -F $version | \ + perl -e 'print reverse <>' | \ + perl -pe 's#^/dev/null + dlog "curl returned: $?" + echo "$url" + return + done +} + +jar_url () { + case $(sbt_version) in + 0.7.*) echo "http://simple-build-tool.googlecode.com/files/sbt-launch-0.7.7.jar" ;; + *-SNAPSHOT) make_snapshot_url ;; + *) make_release_url ;; + esac +} + +jar_file () { + echo "$sbt_launch_dir/$1/sbt-launch.jar" +} + +download_url () { + local url="$1" + local jar="$2" + + echo "Downloading sbt launcher $(sbt_version):" + echo " From $url" + echo " To $jar" + + mkdir -p $(dirname "$jar") && { + if which curl >/dev/null; then + curl --fail --silent "$url" --output "$jar" + elif which wget >/dev/null; then + wget --quiet -O "$jar" "$url" + fi + } && [[ -f "$jar" ]] +} + +acquire_sbt_jar () { + sbt_url="$(jar_url)" + sbt_jar="$(jar_file $(sbt_version))" + + [[ -f "$sbt_jar" ]] || download_url "$sbt_url" "$sbt_jar" +} + +usage () { + cat < display stack traces with a max of frames (default: $default_trace_level) + -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) + -mem set memory options (default: $sbt_mem, which is + $(get_mem_opts $sbt_mem) ) + -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: from project/build.properties if present, else latest release) + !!! The only way to accomplish this pre-0.12.0 if there is a build.properties file which + !!! contains an sbt.version property is to update the file on disk. That's what this does. + -sbt-version use the specified version of sbt + -sbt-jar use the specified jar as the sbt launcher + -sbt-snapshot use a snapshot version of sbt + -sbt-launch-dir directory to hold sbt launchers (default: $sbt_launch_dir) + + # scala version (default: as chosen by sbt) + -28 use $latest_28 + -29 use $latest_29 + -210 use $latest_210 + -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 |& grep version)) + -java-home alternate JAVA_HOME + + # jvm options and output control + JAVA_OPTS environment variable holding jvm args, if unset uses "$default_jvm_opts" + SBT_OPTS environment variable holding jvm args, if unset uses "$default_sbt_opts" + .jvmopts if file is in sbt root, it is prepended to the args given to the jvm + .sbtopts if file is in sbt root, it is prepended to the args given to **sbt** + -Dkey=val pass -Dkey=val directly to the jvm + -J-X pass option -X directly to the jvm (-J is stripped) + -S-X add -X to sbt's scalacOptions (-S is stripped) + +In the case of duplicated or conflicting options, the order above +shows precedence: JAVA_OPTS lowest, command line options highest. +EOM +} + +addJava () { + dlog "[addJava] arg = '$1'" + java_args=( "${java_args[@]}" "$1" ) +} +addSbt () { + dlog "[addSbt] arg = '$1'" + sbt_commands=( "${sbt_commands[@]}" "$1" ) +} +addScalac () { + dlog "[addScalac] arg = '$1'" + scalac_args=( "${scalac_args[@]}" "$1" ) +} +addResidual () { + dlog "[residual] arg = '$1'" + residual_args=( "${residual_args[@]}" "$1" ) +} +addResolver () { + addSbt "set resolvers in ThisBuild += $1" +} +addDebugger () { + addJava "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=$1" +} +setScalaVersion () { + addSbt "set scalaVersion in ThisBuild := \"$1\"" + if [[ "$1" == *SNAPSHOT* ]]; then + addResolver Opts.resolver.sonatypeSnapshots + fi +} + +get_jvm_opts () { + # echo "${JAVA_OPTS:-$default_jvm_opts}" + # echo "${SBT_OPTS:-$default_sbt_opts}" + + [[ -f "$jvm_opts_file" ]] && cat "$jvm_opts_file" +} + +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) verbose=1 && shift ;; + -d|-debug) debug=1 && log_level=Debug && shift ;; + -q|-quiet) quiet=1 && log_level=Error && 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 ;; + -mem) require_arg integer "$1" "$2" && sbt_mem="$2" && shift 2 ;; + -no-colors) addJava "-Dsbt.log.noformat=true" && shift ;; + -no-share) noshare=1 && 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) exec { val e = Project.extract(s) ; $2 })" && shift 2 ;; + + -sbt-create) sbt_create=true && shift ;; + -sbt-snapshot) sbt_explicit_version=$sbt_snapshot_version && 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-launch-dir) require_arg path "$1" "$2" && sbt_launch_dir="$2" && shift 2 ;; + -scala-version) require_arg version "$1" "$2" && setScalaVersion "$2" && shift 2 ;; +-binary-version) require_arg version "$1" "$2" && addSbt "set scalaBinaryVersion in ThisBuild := \"$2\"" && shift 2 ;; + -scala-home) require_arg path "$1" "$2" && addSbt "set every scalaHome := Some(file(\"$2\"))" && shift 2 ;; + -java-home) require_arg path "$1" "$2" && java_cmd="$2/bin/java" && shift 2 ;; + + -D*) addJava "$1" && shift ;; + -J*) addJava "${1:2}" && shift ;; + -S*) addScalac "${1:2}" && shift ;; + -28) addSbt "++ $latest_28" && shift ;; + -29) addSbt "++ $latest_29" && shift ;; + -210) addSbt "++ $latest_210" && shift ;; + + *) addResidual "$1" && shift ;; + esac + done +} + +# if .sbtopts exists, prepend its contents to $@ so it can be processed by this runner +[[ -f "$sbt_opts_file" ]] && { + sbtargs=() + while IFS= read -r arg; do + sbtargs=( "${sbtargs[@]}" "$arg" ) + done <"$sbt_opts_file" + + set -- "${sbtargs[@]}" "$@" +} + +# process the combined args, then reset "$@" to the residuals +process_args "$@" +set -- "${residual_args[@]}" +argumentCount=$# + +# set sbt version specific options +case $(sbt_version) in + 0.7.*) ;; + 0.10.*) ;; + 0.11.*) ;; + *) addSbt "set every 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 no disk to set explicit version - sbt gives us no choice +[[ -n "$sbt_explicit_version" ]] && update_build_props_sbt "$sbt_explicit_version" +echoerr "Detected sbt version $(sbt_version)" + +[[ -n "$scala_version" ]] && echo "Overriding scala version to $scala_version" + +# no args - alert them there's stuff in here +(( $argumentCount > 0 )) || echo "Starting $script_name: invoke with -help for other options" + +# verify this is an sbt dir or -create was given +[[ -f ./build.sbt || -d ./project || -n "$sbt_create" ]] || { + cat < name.charAt(0).toUpperCase + name.substring(1) - case _ => "NIK" + name.charAt(0).toUpperCase + name.substring(1) + case true => name(0).toUpper + name.substring(1) + case _ => "NIK" + name(0).toUpper + name.substring(1) } } // naming for the apis - override def toApiName(name: String) = "NIK" + name.charAt(0).toUpperCase + name.substring(1) + "Api" + override def toApiName(name: String) = "NIK" + name(0).toUpper + name.substring(1) + "Api" // location of templates override def templateDir = "src/main/resources/objc" diff --git a/src/main/scala/com/wordnik/swagger/codegen/BasicRubyGenerator.scala b/src/main/scala/com/wordnik/swagger/codegen/BasicRubyGenerator.scala index ea8af283dad..6a47a78f58a 100644 --- a/src/main/scala/com/wordnik/swagger/codegen/BasicRubyGenerator.scala +++ b/src/main/scala/com/wordnik/swagger/codegen/BasicRubyGenerator.scala @@ -27,7 +27,7 @@ object BasicRubyGenerator extends BasicRubyGenerator { class BasicRubyGenerator extends BasicGenerator { override def toApiName(name: String) = { - name.charAt(0).toUpperCase + name.substring(1) + "_api" + name(0).toUpper + name.substring(1) + "_api" } override def apiPackage = Some("lib") @@ -68,14 +68,14 @@ class BasicRubyGenerator extends BasicGenerator { def toUnderscore(name: String): String = { val sb = new StringBuilder for ((char) <- super.toVarName(name)) { - if (char.isUpperCase) sb.append("_").append(char.toLowerCase) + if (char.isUpper) sb.append("_").append(char.toLower) else sb.append(char) } sb.toString } override def toDeclaration(obj: ModelProperty) = { - var datatype = obj.`type`.charAt(0).toUpperCase + obj.`type`.substring(1) + var datatype = obj.`type`(0).toUpper + obj.`type`.substring(1) datatype match { case "Array" => datatype = "List" diff --git a/src/main/scala/com/wordnik/swagger/codegen/Codegen.scala b/src/main/scala/com/wordnik/swagger/codegen/Codegen.scala index ad0e9b0cbc7..3c6a5dc1e6f 100644 --- a/src/main/scala/com/wordnik/swagger/codegen/Codegen.scala +++ b/src/main/scala/com/wordnik/swagger/codegen/Codegen.scala @@ -22,7 +22,7 @@ import com.wordnik.swagger.codegen.language.CodegenConfig import com.wordnik.swagger.codegen.spec.SwaggerSpec._ import org.json4s.jackson.JsonMethods._ -import org.json4s.native.Serialization.write +import org.json4s.jackson.Serialization.write import org.fusesource.scalate._ import org.fusesource.scalate.layout.DefaultLayoutStrategy @@ -183,7 +183,7 @@ class Codegen(config: CodegenConfig) { var output = engine.layout(config.templateDir + File.separator + templateFile, template, data.toMap) // a shutdown method will be added to scalate in an upcoming release - engine.compiler.asInstanceOf[ScalaCompiler].compiler.askShutdown + engine.compiler.shutdown output } @@ -306,7 +306,7 @@ class Codegen(config: CodegenConfig) { paramList.size match { case 0 => case _ => { - sp.first.asInstanceOf[HashMap[String, String]] -= "secondaryParam" + sp.head.asInstanceOf[HashMap[String, String]] -= "secondaryParam" sp.last.asInstanceOf[HashMap[String, String]] -= "hasMore" } } @@ -544,7 +544,7 @@ class Codegen(config: CodegenConfig) { } }) //a shutdown method will be added to scalate in an upcoming release - engine.compiler.asInstanceOf[ScalaCompiler].compiler.askShutdown + engine.compiler.shutdown() } protected def isListType(dt: String) = isCollectionType(dt, "List") || isCollectionType(dt, "Array") diff --git a/src/main/scala/com/wordnik/swagger/codegen/PathUtil.scala b/src/main/scala/com/wordnik/swagger/codegen/PathUtil.scala index 9676c1efe3e..521c347f12d 100644 --- a/src/main/scala/com/wordnik/swagger/codegen/PathUtil.scala +++ b/src/main/scala/com/wordnik/swagger/codegen/PathUtil.scala @@ -34,12 +34,12 @@ trait PathUtil { } def toModelName(name: String) = { - name.charAt(0).toUpperCase + name.substring(1) + name(0).toUpper + name.substring(1) } def toApiName(name: String) = { name.replaceAll("\\{","").replaceAll("\\}", "") match { - case s: String if(s.length > 0) => s.charAt(0).toUpperCase + s.substring(1) + "Api" + case s: String if(s.length > 0) => s(0).toUpper + s.substring(1) + "Api" case _ => "Api" } } diff --git a/src/main/scala/com/wordnik/swagger/codegen/language/CodegenConfig.scala b/src/main/scala/com/wordnik/swagger/codegen/language/CodegenConfig.scala index 04a76d26bdb..ee922460e65 100644 --- a/src/main/scala/com/wordnik/swagger/codegen/language/CodegenConfig.scala +++ b/src/main/scala/com/wordnik/swagger/codegen/language/CodegenConfig.scala @@ -96,14 +96,14 @@ abstract class CodegenConfig { case "boolean" => "is" case _ => "get" } - base + name.charAt(0).toUpperCase + name.substring(1) + base + name(0).toUpper + name.substring(1) } def toSetter(name: String, datatype: String) = { val base = datatype match { case _ => "set" } - base + name.charAt(0).toUpperCase + name.substring(1) + base + name(0).toUpper + name.substring(1) } def toVarName(name: String): String = { diff --git a/src/main/scala/com/wordnik/swagger/codegen/util/ApiExtractor.scala b/src/main/scala/com/wordnik/swagger/codegen/util/ApiExtractor.scala index 352b89e0d01..78b7ef002cb 100644 --- a/src/main/scala/com/wordnik/swagger/codegen/util/ApiExtractor.scala +++ b/src/main/scala/com/wordnik/swagger/codegen/util/ApiExtractor.scala @@ -19,7 +19,7 @@ package com.wordnik.swagger.codegen.util import com.wordnik.swagger.model._ import org.json4s.jackson.JsonMethods._ -import org.json4s.native.Serialization.read +import org.json4s.jackson.Serialization.read import java.net.URL import java.io.InputStream diff --git a/src/main/scala/com/wordnik/swagger/codegen/util/CoreUtils.scala b/src/main/scala/com/wordnik/swagger/codegen/util/CoreUtils.scala index de542c03a88..e3b24fb665f 100644 --- a/src/main/scala/com/wordnik/swagger/codegen/util/CoreUtils.scala +++ b/src/main/scala/com/wordnik/swagger/codegen/util/CoreUtils.scala @@ -110,7 +110,7 @@ object CoreUtils { modelObjects += name -> m // extract all base model names, strip away Containers like List[] and primitives - val baseNames = (for (modelName <- (modelNames.toList -- primitives)) + val baseNames = (for (modelName <- (modelNames.toList filterNot primitives.contains)) yield (extractBasePartFromType(modelName))).toSet // get complex models from base diff --git a/src/main/scala/com/wordnik/swagger/codegen/util/ResourceExtractor.scala b/src/main/scala/com/wordnik/swagger/codegen/util/ResourceExtractor.scala index fbb98e27cf1..d6af174d14e 100644 --- a/src/main/scala/com/wordnik/swagger/codegen/util/ResourceExtractor.scala +++ b/src/main/scala/com/wordnik/swagger/codegen/util/ResourceExtractor.scala @@ -19,7 +19,7 @@ package com.wordnik.swagger.codegen.util import com.wordnik.swagger.model._ import org.json4s.jackson.JsonMethods._ -import org.json4s.native.Serialization.read +import org.json4s.jackson.Serialization.read import scala.io._ diff --git a/src/main/scala/com/wordnik/swagger/model/SwaggerModelSerializer.scala b/src/main/scala/com/wordnik/swagger/model/SwaggerModelSerializer.scala index b4b8336dd5d..885ac259bb2 100644 --- a/src/main/scala/com/wordnik/swagger/model/SwaggerModelSerializer.scala +++ b/src/main/scala/com/wordnik/swagger/model/SwaggerModelSerializer.scala @@ -3,7 +3,7 @@ package com.wordnik.swagger.model import org.json4s._ import org.json4s.JsonDSL._ import org.json4s.jackson.JsonMethods._ -import org.json4s.native.Serialization.{read, write} +import org.json4s.jackson.Serialization.{read, write} import scala.collection.mutable.{ListBuffer, LinkedHashMap} diff --git a/src/test/scala/ModelSerializersTest.scala b/src/test/scala/ModelSerializersTest.scala index ee9a1e29c03..c707167ae21 100644 --- a/src/test/scala/ModelSerializersTest.scala +++ b/src/test/scala/ModelSerializersTest.scala @@ -3,7 +3,7 @@ import com.wordnik.swagger.model._ import org.json4s._ import org.json4s.JsonDSL._ import org.json4s.jackson.JsonMethods._ -import org.json4s.native.Serialization.{read, write} +import org.json4s.jackson.Serialization.{read, write} import org.junit.runner.RunWith import org.scalatest.junit.JUnitRunner diff --git a/src/test/scala/SwaggerModelTest.scala b/src/test/scala/SwaggerModelTest.scala index c6b07664146..3c920dfd785 100644 --- a/src/test/scala/SwaggerModelTest.scala +++ b/src/test/scala/SwaggerModelTest.scala @@ -17,7 +17,7 @@ import com.wordnik.swagger.model._ import org.json4s.jackson.JsonMethods._ -import org.json4s.native.Serialization.read +import org.json4s.jackson.Serialization.read import org.junit.runner.RunWith import org.scalatest.junit.JUnitRunner