Skip to content
This repository has been archived by the owner on Aug 7, 2023. It is now read-only.

Commit

Permalink
Improve
Browse files Browse the repository at this point in the history
  • Loading branch information
VladRassokhin committed Apr 8, 2014
1 parent fd5ffe3 commit 153b7a9
Show file tree
Hide file tree
Showing 8 changed files with 81 additions and 95 deletions.
20 changes: 10 additions & 10 deletions pom.xml
Expand Up @@ -64,16 +64,16 @@
<version>6.8.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.7</version>
</dependency>
<!--<dependency>-->
<!--<groupId>org.glassfish.jersey.core</groupId>-->
<!--<artifactId>jersey-common</artifactId>-->
<!--<version>2.7</version>-->
<!--</dependency>-->
<!--<dependency>-->
<!--<groupId>org.glassfish.jersey.core</groupId>-->
<!--<artifactId>jersey-client</artifactId>-->
<!--<version>2.7</version>-->
<!--</dependency>-->
</dependencies>

<build>
Expand Down
37 changes: 7 additions & 30 deletions rest-client.iml
Expand Up @@ -4,24 +4,12 @@
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/generated-java/gen" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="jdk" jdkName="1.6" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" name="Maven: org.glassfish.jersey.core:jersey-common:2.7" level="project" />
<orderEntry type="library" exported="" name="Maven: javax.annotation:javax.annotation-api:1.2" level="project" />
<orderEntry type="library" exported="" name="Maven: org.glassfish.jersey.bundles.repackaged:jersey-guava:2.7" level="project" />
<orderEntry type="library" exported="" name="Maven: org.glassfish.hk2:hk2-api:2.2.0" level="project" />
<orderEntry type="library" exported="" name="Maven: org.glassfish.hk2:hk2-utils:2.2.0" level="project" />
<orderEntry type="library" exported="" name="Maven: org.glassfish.hk2.external:aopalliance-repackaged:2.2.0" level="project" />
<orderEntry type="library" exported="" name="Maven: org.glassfish.hk2.external:javax.inject:2.2.0" level="project" />
<orderEntry type="library" exported="" name="Maven: org.glassfish.hk2:hk2-locator:2.2.0" level="project" />
<orderEntry type="library" exported="" name="Maven: org.javassist:javassist:3.18.1-GA" level="project" />
<orderEntry type="library" exported="" name="Maven: org.glassfish.hk2:osgi-resource-locator:1.0.1" level="project" />
<orderEntry type="library" exported="" name="Maven: org.glassfish.jersey.core:jersey-client:2.7" level="project" />
<orderEntry type="library" exported="" name="Maven: com.google.http-client:google-http-client:1.18.0-rc" level="project" />
<orderEntry type="library" exported="" name="Maven: com.google.code.findbugs:jsr305:1.3.9" level="project" />
<orderEntry type="library" exported="" name="Maven: org.apache.httpcomponents:httpclient:4.0.1" level="project" />
Expand All @@ -33,23 +21,12 @@
<orderEntry type="library" exported="" name="Maven: org.jetbrains.kotlin:kotlin-runtime:0.7.270" level="project" />
<orderEntry type="library" exported="" name="Maven: org.jetbrains.kotlin:kotlin-stdlib:0.7.270" level="project" />
<orderEntry type="library" exported="" name="Maven: javax.ws.rs:javax.ws.rs-api:2.0" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="Maven: org.testng:testng:6.8.5" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="Maven: junit:junit:4.10" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.1" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="Maven: org.beanshell:bsh:2.0b4" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="Maven: com.beust:jcommander:1.27" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="Maven: org.yaml:snakeyaml:1.6" level="project" />
<orderEntry type="library" exported="" name="Maven: org.glassfish.jersey.core:jersey-common:2.7" level="project" />
<orderEntry type="library" exported="" name="Maven: javax.annotation:javax.annotation-api:1.2" level="project" />
<orderEntry type="library" exported="" name="Maven: org.glassfish.jersey.bundles.repackaged:jersey-guava:2.7" level="project" />
<orderEntry type="library" exported="" name="Maven: org.glassfish.hk2:hk2-api:2.2.0" level="project" />
<orderEntry type="library" exported="" name="Maven: org.glassfish.hk2:hk2-utils:2.2.0" level="project" />
<orderEntry type="library" exported="" name="Maven: org.glassfish.hk2.external:aopalliance-repackaged:2.2.0" level="project" />
<orderEntry type="library" exported="" name="Maven: org.glassfish.hk2.external:javax.inject:2.2.0" level="project" />
<orderEntry type="library" exported="" name="Maven: org.glassfish.hk2:hk2-locator:2.2.0" level="project" />
<orderEntry type="library" exported="" name="Maven: org.javassist:javassist:3.18.1-GA" level="project" />
<orderEntry type="library" exported="" name="Maven: org.glassfish.hk2:osgi-resource-locator:1.0.1" level="project" />
<orderEntry type="library" exported="" name="Maven: org.glassfish.jersey.core:jersey-client:2.7" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.testng:testng:6.8.5" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.10" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.beanshell:bsh:2.0b4" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.beust:jcommander:1.27" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.yaml:snakeyaml:1.6" level="project" />
</component>
</module>

17 changes: 6 additions & 11 deletions src/main/java/jetbrains/teamcity/rest/client/model/Properties.java
Expand Up @@ -2,7 +2,6 @@

import com.google.api.client.util.Key;

import javax.xml.bind.annotation.XmlType;
import java.util.List;


Expand All @@ -26,15 +25,11 @@
* </pre>
*/

@XmlType(name = "properties", propOrder = {
"property"
})
public class Properties {

public List<Property> property;
@Key("count")
public Integer count;
@Key("href")
public String href;

@Key("property")
public List<Property> property;
@Key("count")
public Integer count;
@Key("href")
public String href;
}
Expand Up @@ -30,8 +30,15 @@
"type"
})
public class Property {
public Property(String name, String value) {
this.name = name;
this.value = value;
}

public ParameterType type;
public Property() {
}

public ParameterType type;
@Key("name")
public String name;
@Key("value")
Expand Down
Expand Up @@ -34,13 +34,10 @@
* </pre>
*/

@XmlType(name = "vcs-root", propOrder = {
"project",
"properties",
"vcsRootInstances"
})
public class VcsRoot {
@Key("project")
public Project project;
@Key("properties")
public Properties properties;
public HReference vcsRootInstances;
@Key("id")
Expand Down
Expand Up @@ -22,7 +22,7 @@ public class VcsRootsResourceImpl extends ResourceImpl implements VcsRootsResour

public VcsRootsResourceImpl(@NotNull RequestsProcessor processor) {
super(processor);
}
}

public VcsRoot addRoot(@NotNull VcsRoot root) {
// if (root.project == null) {
Expand All @@ -31,7 +31,13 @@ public VcsRoot addRoot(@NotNull VcsRoot root) {

final HttpResponse response = processor.post(VCS_ROOTS, processor.asJson(root));
try {
return response.parseAs(VcsRoot.class);
if ("application/json".equals(response.getContentType())) {
return response.parseAs(VcsRoot.class);
} else {
// Not good.
System.err.println("Error: " + response.parseAsString());
return null;
}
} catch (IOException e) {
return null;
}
Expand Down Expand Up @@ -77,47 +83,47 @@ public jetbrains.teamcity.rest.client.model.Properties getRootInstanceProperties


public Response serveInstanceField(String field, String vcsRootInstanceLocator, String vcsRootLocator) {
throw new java.lang.UnsupportedOperationException();
}
throw new java.lang.UnsupportedOperationException();
}


public Response setInstanceField(String field, String vcsRootInstanceLocator, String vcsRootLocator) {
throw new java.lang.UnsupportedOperationException();
}
public Response setInstanceField(String field, String vcsRootInstanceLocator, String vcsRootLocator) {
throw new java.lang.UnsupportedOperationException();
}


public Response serveRootInstances(String vcsRootLocator) {
throw new java.lang.UnsupportedOperationException();
}
public Response serveRootInstances(String vcsRootLocator) {
throw new java.lang.UnsupportedOperationException();
}


public Response serveRootInstance(String vcsRootInstanceLocator, String vcsRootLocator) {
throw new java.lang.UnsupportedOperationException();
}
public Response serveRootInstance(String vcsRootInstanceLocator, String vcsRootLocator) {
throw new java.lang.UnsupportedOperationException();
}


public Response serveProperties(String vcsRootLocator) {
throw new java.lang.UnsupportedOperationException();
}
public Response serveProperties(String vcsRootLocator) {
throw new java.lang.UnsupportedOperationException();
}


public Response changProperties(String vcsRootLocator) {
throw new java.lang.UnsupportedOperationException();
}
public Response changProperties(String vcsRootLocator) {
throw new java.lang.UnsupportedOperationException();
}


public void deleteAllProperties(String vcsRootLocator) {
throw new java.lang.UnsupportedOperationException();
}
public void deleteAllProperties(String vcsRootLocator) {
throw new java.lang.UnsupportedOperationException();
}


public Response serveField(String field, String vcsRootLocator) {
throw new java.lang.UnsupportedOperationException();
}
public Response serveField(String field, String vcsRootLocator) {
throw new java.lang.UnsupportedOperationException();
}


public Response setField(String field, String vcsRootLocator) {
throw new java.lang.UnsupportedOperationException();
}
public Response setField(String field, String vcsRootLocator) {
throw new java.lang.UnsupportedOperationException();
}

}
23 changes: 13 additions & 10 deletions src/main/java/org/jetbrains/teamcity/rest/client/HTTP.kt
Expand Up @@ -14,18 +14,18 @@ import java.util.Collections
import kotlin.test.assertNotNull
import org.jetbrains.teamcity.rest.client.RequestsProcessor.Method
import com.google.api.client.http.json.JsonHttpContent
import com.intellij.openapi.diagnostic.Logger

class HTTP(val config: ConnectionConfig) : RequestsProcessor {
public val LOG: Logger = Logger.getInstance(javaClass<HTTP>())!!

override fun asJson(data: Any): JsonHttpContent {
throw UnsupportedOperationException()
return JsonHttpContent(jsonFactory, data);
}

val root: GenericUrl = GenericUrl(config.getRestUrl())
val factory: HttpRequestFactory = NetHttpTransport().createRequestFactory(config.auth)!!
class object {
private val parser = JsonObjectParser(JacksonFactory())
private val jsonFactory = JacksonFactory()
private val jsonParser = JsonObjectParser(jsonFactory)
}

override fun request(path: String, method: Method, content: HttpContent?, headers: Map<String, String>?, parser: ObjectParser?): HttpResponse {
Expand All @@ -43,8 +43,8 @@ class HTTP(val config: ConnectionConfig) : RequestsProcessor {
else -> throw IllegalStateException("Unsuppored type ${method}")
}

val rh = request.getHeaders()
if ( headers != null ) {
val rh = request.getHeaders()
for ( (k, v) in headers.entrySet() ) {
try {
rh.set(k, v)
Expand All @@ -56,11 +56,14 @@ class HTTP(val config: ConnectionConfig) : RequestsProcessor {
}
}
}
if (rh.get("Accept") == null) {
rh.put("Accept", listOf(Json.MEDIA_TYPE, "text/plain"))
}

request.setParser(parser)
request.setParser(parser?:jsonParser)
// Debug ;)
// request.setConnectTimeout(1000000)
// request.setReadTimeout(1000000)
request.setConnectTimeout(1000000)
request.setReadTimeout(1000000)
request.setFollowRedirects(true);
val response = request.setThrowExceptionOnExecuteError(false).execute()!!

Expand All @@ -81,12 +84,12 @@ class HTTP(val config: ConnectionConfig) : RequestsProcessor {
override fun getAsJson (url: String): GenericJson = getAs(url, javaClass<GenericJson>())

override fun getAs<T> (url: String, rtype: Class<T>): T {
val response = request(method = Method.GET, path = url, headers = Collections.singletonMap("Accept", Json.MEDIA_TYPE), parser = parser)
val response = request(method = Method.GET, path = url, headers = Collections.singletonMap("Accept", Json.MEDIA_TYPE), parser = jsonParser)
return response.parseAs(rtype)!!
}

override fun getSafeAs<T> (url: String, rtype: Class<T>): Triple<T?, Exception?, HttpResponse> {
val response = request(method = Method.GET, path = url, headers = Collections.singletonMap("Accept", Json.MEDIA_TYPE), parser = parser)
val response = request(method = Method.GET, path = url, headers = Collections.singletonMap("Accept", Json.MEDIA_TYPE), parser = jsonParser)
val parsed: T?
val exception: Exception?
try {
Expand Down
Expand Up @@ -5,6 +5,7 @@ import com.google.api.client.http.HttpResponse
import com.google.api.client.json.GenericJson
import com.google.api.client.util.ObjectParser
import com.google.api.client.http.json.JsonHttpContent
import com.google.api.client.json.JsonObjectParser

/**
* @author Vladislav.Rassokhin
Expand Down

0 comments on commit 153b7a9

Please sign in to comment.