From 5d9291116c8066f91130deaa338256f90395e565 Mon Sep 17 00:00:00 2001 From: Darren Reid Date: Sat, 10 Oct 2015 16:11:36 +1100 Subject: [PATCH 1/3] Convert client to jar Fix related problems like org.apache.httpcomponents package collision. bintray publish now controlled by property Fixed 404 test. Migrated client androidTest to test and JUnit --- src/AndroidClient/.idea/gradle.xml | 5 +- src/AndroidClient/.idea/modules.xml | 4 +- src/AndroidClient/AndroidClient.iml | 1 - src/AndroidClient/android/android.iml | 12 +- src/AndroidClient/android/build.gradle | 17 +- .../android/TestServiceTestsAsync.java | 2 +- .../android/src/main/AndroidManifest.xml | 1 + src/AndroidClient/app/app.iml | 8 +- src/AndroidClient/client-new/client-new.iml | 15 ++ src/AndroidClient/client/build.gradle | 149 +++++++----------- src/AndroidClient/client/client.iml | 87 ++-------- src/AndroidClient/client/pom.xml | 60 +++++++ .../client/tests/ApplicationTest.java | 13 -- .../java/io/techstacks/dto.java | 0 .../servicestack/client/tests/GsonTests.java | 16 +- .../client/tests/JsonServiceClientTests.java | 8 +- .../servicestack/client/tests/JsonTests.java | 8 +- .../client/tests/TechStacksServiceTests.java | 9 +- .../tests/TestInterfaceMarkerTests.java | 8 +- .../client/tests/TestServiceTests.java | 22 ++- .../servicestack/client/tests/UtilsTests.java | 8 +- .../net/servicestack/client/tests/dto.java | 0 .../servicestack/client/tests/testdtos.java | 0 .../{androidTest => test}/java/test/dto.java | 0 .../resources/overview.json | 0 .../gradle/wrapper/gradle-wrapper.jar | Bin 49896 -> 51018 bytes .../gradle/wrapper/gradle-wrapper.properties | 4 +- src/AndroidClient/settings.gradle | 2 + src/AndroidClient/techstacks/techstacks.iml | 8 +- 29 files changed, 222 insertions(+), 245 deletions(-) create mode 100644 src/AndroidClient/client-new/client-new.iml create mode 100644 src/AndroidClient/client/pom.xml delete mode 100644 src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/ApplicationTest.java rename src/AndroidClient/client/src/{androidTest => test}/java/io/techstacks/dto.java (100%) rename src/AndroidClient/client/src/{androidTest => test}/java/net/servicestack/client/tests/GsonTests.java (88%) rename src/AndroidClient/client/src/{androidTest => test}/java/net/servicestack/client/tests/JsonServiceClientTests.java (88%) rename src/AndroidClient/client/src/{androidTest => test}/java/net/servicestack/client/tests/JsonTests.java (92%) rename src/AndroidClient/client/src/{androidTest => test}/java/net/servicestack/client/tests/TechStacksServiceTests.java (97%) rename src/AndroidClient/client/src/{androidTest => test}/java/net/servicestack/client/tests/TestInterfaceMarkerTests.java (91%) rename src/AndroidClient/client/src/{androidTest => test}/java/net/servicestack/client/tests/TestServiceTests.java (96%) rename src/AndroidClient/client/src/{androidTest => test}/java/net/servicestack/client/tests/UtilsTests.java (91%) rename src/AndroidClient/client/src/{androidTest => test}/java/net/servicestack/client/tests/dto.java (100%) rename src/AndroidClient/client/src/{androidTest => test}/java/net/servicestack/client/tests/testdtos.java (100%) rename src/AndroidClient/client/src/{androidTest => test}/java/test/dto.java (100%) rename src/AndroidClient/client/src/{androidTest => test}/resources/overview.json (100%) diff --git a/src/AndroidClient/.idea/gradle.xml b/src/AndroidClient/.idea/gradle.xml index 7df5e3d2..0da7cbc1 100644 --- a/src/AndroidClient/.idea/gradle.xml +++ b/src/AndroidClient/.idea/gradle.xml @@ -3,9 +3,9 @@ - - + \ No newline at end of file diff --git a/src/AndroidClient/AndroidClient.iml b/src/AndroidClient/AndroidClient.iml index 813b5b3e..d55edf77 100644 --- a/src/AndroidClient/AndroidClient.iml +++ b/src/AndroidClient/AndroidClient.iml @@ -4,7 +4,6 @@ diff --git a/src/AndroidClient/android/android.iml b/src/AndroidClient/android/android.iml index 6e558443..04997b14 100644 --- a/src/AndroidClient/android/android.iml +++ b/src/AndroidClient/android/android.iml @@ -1,5 +1,5 @@ - + @@ -12,9 +12,8 @@ \ No newline at end of file diff --git a/src/AndroidClient/android/build.gradle b/src/AndroidClient/android/build.gradle index 446c2286..8bcc12db 100644 --- a/src/AndroidClient/android/build.gradle +++ b/src/AndroidClient/android/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' apply plugin: 'com.github.dcendents.android-maven' apply plugin: 'com.jfrog.bintray' -version = "1.0.19" +version = "1.0.20" android { compileSdkVersion 21 @@ -20,6 +20,13 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } + packagingOptions { + exclude 'META-INF/DEPENDENCIES' + exclude 'META-INF/NOTICE' + exclude 'META-INF/NOTICE.txt' + exclude 'META-INF/LICENSE' + exclude 'META-INF/LICENSE.txt' + } } Properties properties = System.properties; @@ -42,7 +49,7 @@ bintray { websiteUrl = siteUrl vcsUrl = gitUrl licenses = ["BSD 3-Clause"] - publish = true + publish = properties.getProperty('bintray.publish') == 'true' userOrg = 'servicestack' } } @@ -92,7 +99,11 @@ install { dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:21.0.3' compile project(':client') + compile fileTree(dir: 'libs', include: '*.jar') + testCompile 'junit:junit:4.11' + testCompile 'org.mockito:mockito-core:1.9.5' } + +configurations.compile.exclude group: 'org.apache.httpcomponents' diff --git a/src/AndroidClient/android/src/androidTest/java/net/servicestack/android/TestServiceTestsAsync.java b/src/AndroidClient/android/src/androidTest/java/net/servicestack/android/TestServiceTestsAsync.java index 333187ab..13988747 100644 --- a/src/AndroidClient/android/src/androidTest/java/net/servicestack/android/TestServiceTestsAsync.java +++ b/src/AndroidClient/android/src/androidTest/java/net/servicestack/android/TestServiceTestsAsync.java @@ -187,7 +187,7 @@ public void complete() { ResponseStatus status = thrownError[0].getResponseStatus(); - assertEquals("not here", status.getErrorCode()); + assertEquals("NotFound", status.getErrorCode()); assertEquals("not here", status.getMessage()); assertNotNull(status.getStackTrace()); } diff --git a/src/AndroidClient/android/src/main/AndroidManifest.xml b/src/AndroidClient/android/src/main/AndroidManifest.xml index 0a739c08..d9314e9a 100644 --- a/src/AndroidClient/android/src/main/AndroidManifest.xml +++ b/src/AndroidClient/android/src/main/AndroidManifest.xml @@ -4,5 +4,6 @@ + diff --git a/src/AndroidClient/app/app.iml b/src/AndroidClient/app/app.iml index 19a1a1db..d353442c 100644 --- a/src/AndroidClient/app/app.iml +++ b/src/AndroidClient/app/app.iml @@ -12,9 +12,8 @@ \ No newline at end of file diff --git a/src/AndroidClient/client-new/client-new.iml b/src/AndroidClient/client-new/client-new.iml new file mode 100644 index 00000000..11a525dd --- /dev/null +++ b/src/AndroidClient/client-new/client-new.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/AndroidClient/client/build.gradle b/src/AndroidClient/client/build.gradle index cb89d827..03a7fe18 100644 --- a/src/AndroidClient/client/build.gradle +++ b/src/AndroidClient/client/build.gradle @@ -1,41 +1,67 @@ -apply plugin: 'com.android.library' -apply plugin: 'com.github.dcendents.android-maven' apply plugin: 'com.jfrog.bintray' +apply plugin: 'java' +apply plugin: 'idea' +apply plugin: 'maven' -version = "1.0.19" -group = "net.servicestack" // Maven Group ID for the artifact -String packageId = "client" - -android { - compileSdkVersion 21 - buildToolsVersion "21.1.2" - - defaultConfig { - minSdkVersion 15 - targetSdkVersion 21 - versionCode 1 - versionName version - } - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - } - } -} dependencies { compile 'com.google.code.gson:gson:2.3.1' + compile 'org.apache.httpcomponents:httpmime:4.2.3' + testCompile 'junit:junit:4.11' + testCompile 'org.mockito:mockito-core:1.9.5' } +version = "1.0.21" +group = "net.servicestack" // Maven Group ID for the artifact +String packageId = "client" + +String siteUrl = 'https://github.com/ServiceStack/ServiceStack.Java' // Homepage URL of the library +String gitUrl = 'https://github.com/ServiceStack/ServiceStack.Java.git' // Git repository URL + Properties properties = System.properties; if(properties.getProperty("bintray.user", null) == null) { properties.load(project.file('./local.properties').newDataInputStream()) } +task createPom { + pom { + project { + packaging 'jar' + + // Add your description here + name 'ServiceStack.Client' + description 'A client library to call your ServiceStack webservices.' + url siteUrl + + // Set your license + licenses { + license { + name 'The BSD 3-Clause License' + url 'https://raw.githubusercontent.com/ServiceStack/Assets/master/docs/license/LICENSE-BSD3.txt' + } + } -def siteUrl = 'https://github.com/ServiceStack/ServiceStack.Java' // Homepage URL of the library -def gitUrl = 'https://github.com/ServiceStack/ServiceStack.Java.git' // Git repository URL + developers { + developer { + id 'mythz' + name 'Demis Bellot' + email 'team@servicestack.net' + } + developer { + id 'layoric' + name 'Darren Reid' + email 'team@servicestack.net' + } + } + scm { + connection 'https://github.com/ServiceStack/ServiceStack.Java' + developerConnection 'https://github.com/ServiceStack/ServiceStack.Java' + url 'https://github.com/ServiceStack/ServiceStack.Java' + } + } + }.writeTo("pom.xml") +} +build.dependsOn createPom bintray { user = properties.getProperty("bintray.user") @@ -49,67 +75,13 @@ bintray { websiteUrl = siteUrl vcsUrl = gitUrl licenses = ["BSD 3-Clause"] - publish = true + publish = properties.getProperty('bintray.publish') == 'true' } } -task makeJar(type: Copy) { - from('build/intermediates/bundles/release/') - into('build/libs/') - include('classes.jar') - rename ('classes.jar', packageId + '-' + version + '.jar') -} - -install { - repositories.mavenInstaller { - // This generates POM.xml with proper parameters - pom { - project { - packaging 'jar' - - // Add your description here - name 'ServiceStack.Client' - description 'A client library to call your ServiceStack webservices.' - url siteUrl - - // Set your license - licenses { - license { - name 'The BSD 3-Clause License' - url 'https://raw.githubusercontent.com/ServiceStack/Assets/master/docs/license/LICENSE-BSD3.txt' - } - } - - developers { - developer { - id 'mythz' - name 'Demis Bellot' - email 'team@servicestack.net' - } - developer { - id 'layoric' - name 'Darren Reid' - email 'team@servicestack.net' - } - } - scm { - connection 'https://github.com/ServiceStack/ServiceStack.Java' - developerConnection 'https://github.com/ServiceStack/ServiceStack.Java' - url 'https://github.com/ServiceStack/ServiceStack.Java' - } - } - } - } -}.dependsOn makeJar - -task sourcesJar(type: Jar) { - from android.sourceSets.main.java.srcDirs +task sourcesJar(type: Jar, dependsOn: classes) { classifier = 'sources' -} - -task javadoc(type: Javadoc) { - source = android.sourceSets.main.java.srcDirs - classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) + from sourceSets.main.allSource } task javadocJar(type: Jar, dependsOn: javadoc) { @@ -117,16 +89,7 @@ task javadocJar(type: Jar, dependsOn: javadoc) { from javadoc.destinationDir } -task clearJar(type: Delete) { - delete ("build/libs/" + packageId + '-' + version + '.jar') -} - artifacts { - archives javadocJar archives sourcesJar - archives file: new File(project.projectDir,'build/libs/' + packageId + '-' + version + '.jar'), name: packageId, type: 'jar' -} - -task findConventions << { - println project.getConvention() -} + archives javadocJar +} \ No newline at end of file diff --git a/src/AndroidClient/client/client.iml b/src/AndroidClient/client/client.iml index 9d35ea69..2288dcef 100644 --- a/src/AndroidClient/client/client.iml +++ b/src/AndroidClient/client/client.iml @@ -1,92 +1,37 @@ - + - + - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/src/AndroidClient/client/pom.xml b/src/AndroidClient/client/pom.xml new file mode 100644 index 00000000..ee15c77d --- /dev/null +++ b/src/AndroidClient/client/pom.xml @@ -0,0 +1,60 @@ + + + 4.0.0 + net.servicestack + client + 1.0.21 + ServiceStack.Client + A client library to call your ServiceStack webservices. + https://github.com/ServiceStack/ServiceStack.Java + + + The BSD 3-Clause License + https://raw.githubusercontent.com/ServiceStack/Assets/master/docs/license/LICENSE-BSD3.txt + + + + + mythz + Demis Bellot + team@servicestack.net + + + layoric + Darren Reid + team@servicestack.net + + + + https://github.com/ServiceStack/ServiceStack.Java + https://github.com/ServiceStack/ServiceStack.Java + https://github.com/ServiceStack/ServiceStack.Java + + + + com.google.code.gson + gson + 2.3.1 + compile + + + org.mockito + mockito-core + 1.9.5 + test + + + org.apache.httpcomponents + httpmime + 4.2.3 + compile + + + junit + junit + 4.11 + test + + + diff --git a/src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/ApplicationTest.java b/src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/ApplicationTest.java deleted file mode 100644 index 5e90429f..00000000 --- a/src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/ApplicationTest.java +++ /dev/null @@ -1,13 +0,0 @@ -package net.servicestack.client.tests; - -import android.app.Application; -import android.test.ApplicationTestCase; - -/** - * Testing Fundamentals - */ -public class ApplicationTest extends ApplicationTestCase { - public ApplicationTest() { - super(Application.class); - } -} \ No newline at end of file diff --git a/src/AndroidClient/client/src/androidTest/java/io/techstacks/dto.java b/src/AndroidClient/client/src/test/java/io/techstacks/dto.java similarity index 100% rename from src/AndroidClient/client/src/androidTest/java/io/techstacks/dto.java rename to src/AndroidClient/client/src/test/java/io/techstacks/dto.java diff --git a/src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/GsonTests.java b/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/GsonTests.java similarity index 88% rename from src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/GsonTests.java rename to src/AndroidClient/client/src/test/java/net/servicestack/client/tests/GsonTests.java index 89ebda47..db582b13 100644 --- a/src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/GsonTests.java +++ b/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/GsonTests.java @@ -2,24 +2,22 @@ package net.servicestack.client.tests; -import android.app.Application; -import android.test.ApplicationTestCase; -import android.util.Log; - import com.google.gson.Gson; import java.util.ArrayList; import java.util.List; + +import junit.framework.TestCase; import net.servicestack.client.tests.dto.*; -public class GsonTests extends ApplicationTestCase { +public class GsonTests extends TestCase { public GsonTests() { - super(Application.class); + } public void test_Gson() { - Log.i("LOG", "=========== HELLO JSON ============"); + System.out.println("=========== HELLO JSON ============"); String json = "{\n" + " \"posts\": [\n" + @@ -43,7 +41,7 @@ public void test_Gson() { Gson gson = new Gson(); PostList list = gson.fromJson(json, PostList.class); - Log.i("LOG", "JSON: " + gson.toJson(list)); + System.out.println("JSON: " + gson.toJson(list)); } public class PostList { @@ -111,7 +109,7 @@ public void test_Can_serialize_nested_classes() { list.add(o); Gson gson = new Gson(); - Log.i("LOG", "JSON LIST: " + gson.toJson(list)); + System.out.println("JSON LIST: " + gson.toJson(list)); Class a = NestedPojo.class; } diff --git a/src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/JsonServiceClientTests.java b/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/JsonServiceClientTests.java similarity index 88% rename from src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/JsonServiceClientTests.java rename to src/AndroidClient/client/src/test/java/net/servicestack/client/tests/JsonServiceClientTests.java index 12bffaf5..64baea79 100644 --- a/src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/JsonServiceClientTests.java +++ b/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/JsonServiceClientTests.java @@ -2,9 +2,7 @@ package net.servicestack.client.tests; -import android.app.Application; -import android.test.ApplicationTestCase; - +import junit.framework.TestCase; import net.servicestack.client.ConnectionFilter; import net.servicestack.client.JsonServiceClient; @@ -12,10 +10,10 @@ import java.net.HttpURLConnection; -public class JsonServiceClientTests extends ApplicationTestCase { +public class JsonServiceClientTests extends TestCase { public JsonServiceClientTests() { - super(Application.class); + } //10.0.2.2 = loopback //http://developer.android.com/tools/devices/emulator.html diff --git a/src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/JsonTests.java b/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/JsonTests.java similarity index 92% rename from src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/JsonTests.java rename to src/AndroidClient/client/src/test/java/net/servicestack/client/tests/JsonTests.java index 4f9c53f3..631c8fd5 100644 --- a/src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/JsonTests.java +++ b/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/JsonTests.java @@ -2,14 +2,12 @@ package net.servicestack.client.tests; -import android.app.Application; -import android.test.ApplicationTestCase; - +import junit.framework.TestCase; import net.servicestack.client.TimeSpan; -public class JsonTests extends ApplicationTestCase { +public class JsonTests extends TestCase { public JsonTests() { - super(Application.class); + } public void test_Does_serialize_TimeSpan(){ diff --git a/src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/TechStacksServiceTests.java b/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/TechStacksServiceTests.java similarity index 97% rename from src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/TechStacksServiceTests.java rename to src/AndroidClient/client/src/test/java/net/servicestack/client/tests/TechStacksServiceTests.java index 42601c94..da63b50e 100644 --- a/src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/TechStacksServiceTests.java +++ b/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/TechStacksServiceTests.java @@ -1,9 +1,6 @@ package net.servicestack.client.tests; -import android.app.Application; -import android.test.ApplicationTestCase; -import android.util.Log; - +import junit.framework.TestCase; import net.servicestack.client.JsonServiceClient; import net.servicestack.client.Utils; @@ -13,9 +10,9 @@ import io.techstacks.dto.*; -public class TechStacksServiceTests extends ApplicationTestCase { +public class TechStacksServiceTests extends TestCase { public TechStacksServiceTests() { - super(Application.class); + } JsonServiceClient client = new JsonServiceClient("http://techstacks.io"); diff --git a/src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/TestInterfaceMarkerTests.java b/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/TestInterfaceMarkerTests.java similarity index 91% rename from src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/TestInterfaceMarkerTests.java rename to src/AndroidClient/client/src/test/java/net/servicestack/client/tests/TestInterfaceMarkerTests.java index 09324ac1..4ea03757 100644 --- a/src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/TestInterfaceMarkerTests.java +++ b/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/TestInterfaceMarkerTests.java @@ -1,8 +1,6 @@ package net.servicestack.client.tests; -import android.app.Application; -import android.test.ApplicationTestCase; - +import junit.framework.TestCase; import net.servicestack.client.HttpMethods; import net.servicestack.client.JsonServiceClient; @@ -11,9 +9,9 @@ /** * Created by mythz on 9/11/2015. */ -public class TestInterfaceMarkerTests extends ApplicationTestCase { +public class TestInterfaceMarkerTests extends TestCase { public TestInterfaceMarkerTests() { - super(Application.class); + } JsonServiceClient client = new JsonServiceClient("http://test.servicestack.net"); diff --git a/src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/TestServiceTests.java b/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/TestServiceTests.java similarity index 96% rename from src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/TestServiceTests.java rename to src/AndroidClient/client/src/test/java/net/servicestack/client/tests/TestServiceTests.java index f3fa0f00..adc724df 100644 --- a/src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/TestServiceTests.java +++ b/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/TestServiceTests.java @@ -2,10 +2,7 @@ package net.servicestack.client.tests; -import android.app.Application; -import android.test.ApplicationTestCase; -import android.text.TextUtils; - +import junit.framework.TestCase; import net.servicestack.client.ConnectionFilter; import net.servicestack.client.ExceptionFilter; import net.servicestack.client.HttpMethods; @@ -33,9 +30,8 @@ import io.techstacks.*; import io.techstacks.dto; -public class TestServiceTests extends ApplicationTestCase { +public class TestServiceTests extends TestCase { public TestServiceTests() { - super(Application.class); //Log.Instance = new AndroidLogProvider("ZZZ"); } @@ -86,7 +82,7 @@ public void test_does_fire_Request_and_Response_Filters(){ assertEquals("Hello, World!", response.getResult()); - String results = TextUtils.join(", ", events); + String results = strJoin(", ", events); assertEquals("RequestFilter, GlobalRequestFilter, ResponseFilter, GlobalResponseFilter", results); } @@ -172,7 +168,7 @@ public void exec(HttpURLConnection res, Exception ex) { ResponseStatus status = thrownError.getResponseStatus(); - assertEquals("not here", status.getErrorCode()); + assertEquals("NotFound", status.getErrorCode()); assertEquals("not here", status.getMessage()); assertNotNull(status.getStackTrace()); } @@ -405,4 +401,14 @@ public static void assertPocoEquals(Poco expected, Poco actual){ assertNotNull(actual); assertEquals(actual.getName(), expected.getName()); } + + public static String strJoin(String sSep,ArrayList aArr) { + StringBuilder sbStr = new StringBuilder(); + for (int i = 0, il = aArr.size(); i < il; i++) { + if (i > 0) + sbStr.append(sSep); + sbStr.append(aArr.get(i)); + } + return sbStr.toString(); + } } diff --git a/src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/UtilsTests.java b/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/UtilsTests.java similarity index 91% rename from src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/UtilsTests.java rename to src/AndroidClient/client/src/test/java/net/servicestack/client/tests/UtilsTests.java index 359e4e55..e48245eb 100644 --- a/src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/UtilsTests.java +++ b/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/UtilsTests.java @@ -1,17 +1,15 @@ package net.servicestack.client.tests; -import android.app.Application; -import android.test.ApplicationTestCase; - +import junit.framework.TestCase; import net.servicestack.client.Utils; import java.text.SimpleDateFormat; import java.util.Date; import java.util.UUID; -public class UtilsTests extends ApplicationTestCase { +public class UtilsTests extends TestCase { public UtilsTests() { - super(Application.class); + } public void test_Can_parse_Date_with_SubMillis(){ diff --git a/src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/dto.java b/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/dto.java similarity index 100% rename from src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/dto.java rename to src/AndroidClient/client/src/test/java/net/servicestack/client/tests/dto.java diff --git a/src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/testdtos.java b/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/testdtos.java similarity index 100% rename from src/AndroidClient/client/src/androidTest/java/net/servicestack/client/tests/testdtos.java rename to src/AndroidClient/client/src/test/java/net/servicestack/client/tests/testdtos.java diff --git a/src/AndroidClient/client/src/androidTest/java/test/dto.java b/src/AndroidClient/client/src/test/java/test/dto.java similarity index 100% rename from src/AndroidClient/client/src/androidTest/java/test/dto.java rename to src/AndroidClient/client/src/test/java/test/dto.java diff --git a/src/AndroidClient/client/src/androidTest/resources/overview.json b/src/AndroidClient/client/src/test/resources/overview.json similarity index 100% rename from src/AndroidClient/client/src/androidTest/resources/overview.json rename to src/AndroidClient/client/src/test/resources/overview.json diff --git a/src/AndroidClient/gradle/wrapper/gradle-wrapper.jar b/src/AndroidClient/gradle/wrapper/gradle-wrapper.jar index 8c0fb64a8698b08ecc4158d828ca593c4928e9dd..c97a8bdb9088d370da7e88784a7a093b971aa23a 100644 GIT binary patch delta 43603 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 delta 42576 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 \ No newline at end of file From fa090d8e67dff85e96d0a579c146d43e141e6bc9 Mon Sep 17 00:00:00 2001 From: Darren Reid Date: Sat, 10 Oct 2015 16:30:04 +1100 Subject: [PATCH 2/3] Fix tests --- .../client/tests/TestServiceTests.java | 24 +++---------------- .../servicestack/client/tests/UtilsTests.java | 2 +- 2 files changed, 4 insertions(+), 22 deletions(-) diff --git a/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/TestServiceTests.java b/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/TestServiceTests.java index adc724df..5c545fb7 100644 --- a/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/TestServiceTests.java +++ b/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/TestServiceTests.java @@ -2,33 +2,15 @@ package net.servicestack.client.tests; +import io.techstacks.dto; import junit.framework.TestCase; -import net.servicestack.client.ConnectionFilter; -import net.servicestack.client.ExceptionFilter; -import net.servicestack.client.HttpMethods; -import net.servicestack.client.JsonServiceClient; -import net.servicestack.client.Log; -import net.servicestack.client.MimeTypes; -import net.servicestack.client.ResponseStatus; -import net.servicestack.client.TimeSpan; -import net.servicestack.client.Utils; -import net.servicestack.client.WebServiceException; - +import net.servicestack.client.*; import net.servicestack.client.tests.testdtos.*; -import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.math.BigInteger; import java.net.HttpURLConnection; -import java.net.URLEncoder; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.UUID; - -import io.techstacks.*; -import io.techstacks.dto; +import java.util.*; public class TestServiceTests extends TestCase { public TestServiceTests() { diff --git a/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/UtilsTests.java b/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/UtilsTests.java index e48245eb..eb866413 100644 --- a/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/UtilsTests.java +++ b/src/AndroidClient/client/src/test/java/net/servicestack/client/tests/UtilsTests.java @@ -16,7 +16,7 @@ public void test_Can_parse_Date_with_SubMillis(){ Date date = Utils.parseDate("2015-03-27T03:41:41.987375+00:00"); SimpleDateFormat dateFmt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS"); - assertEquals("2015-03-26T20:41:41.983", dateFmt.format(date)); + assertEquals("2015-03-27T03:41:41.987", dateFmt.format(date)); } public void test_Can_stripSubMillis(){ From 2d8305d3b51672c9b6f7c5d941a3a38ca8d4c390 Mon Sep 17 00:00:00 2001 From: Darren Reid Date: Sat, 10 Oct 2015 17:05:13 +1100 Subject: [PATCH 3/3] Fix version for client. Ignore client/pom.xml as it's generated --- .gitignore | 1 + src/AndroidClient/client/build.gradle | 2 +- src/AndroidClient/client/client.iml | 2 +- src/AndroidClient/client/pom.xml | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 2b08c709..6c8cf89b 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,4 @@ src/ServiceStackEclipse/**/.idea src/ServiceStackEclipse/**/target src/ServiceStackEclipse/**/.settings +src/AndroidClient/client/pom.xml diff --git a/src/AndroidClient/client/build.gradle b/src/AndroidClient/client/build.gradle index 03a7fe18..fee08a76 100644 --- a/src/AndroidClient/client/build.gradle +++ b/src/AndroidClient/client/build.gradle @@ -11,7 +11,7 @@ dependencies { testCompile 'org.mockito:mockito-core:1.9.5' } -version = "1.0.21" +version = "1.0.20" group = "net.servicestack" // Maven Group ID for the artifact String packageId = "client" diff --git a/src/AndroidClient/client/client.iml b/src/AndroidClient/client/client.iml index 2288dcef..d4421402 100644 --- a/src/AndroidClient/client/client.iml +++ b/src/AndroidClient/client/client.iml @@ -1,5 +1,5 @@ - + diff --git a/src/AndroidClient/client/pom.xml b/src/AndroidClient/client/pom.xml index ee15c77d..a7d85e44 100644 --- a/src/AndroidClient/client/pom.xml +++ b/src/AndroidClient/client/pom.xml @@ -4,7 +4,7 @@ 4.0.0 net.servicestack client - 1.0.21 + 1.0.20 ServiceStack.Client A client library to call your ServiceStack webservices. https://github.com/ServiceStack/ServiceStack.Java