initial commit
This commit is contained in:
commit
87a057a3b8
9
.gitignore
vendored
Normal file
9
.gitignore
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
# Maven
|
||||
target
|
||||
pom.xml.versionsBackup
|
||||
|
||||
# Eclipse
|
||||
.project
|
||||
.classpath
|
||||
.settings
|
||||
|
93
pom.xml
Normal file
93
pom.xml
Normal file
@ -0,0 +1,93 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.inteligr8</groupId>
|
||||
<artifactId>bitbucket-api</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
|
||||
<name>BitBucket API & Utilities</name>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
<maven.compiler.target>1.8</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpclient</artifactId>
|
||||
<version>4.5.12</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.jaxrs</groupId>
|
||||
<artifactId>jackson-jaxrs-json-provider</artifactId>
|
||||
<version>2.11.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||
<artifactId>jackson-datatype-jsr310</artifactId>
|
||||
<version>2.11.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
<version>1.7.30</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.13</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.logging.log4j</groupId>
|
||||
<artifactId>log4j-slf4j-impl</artifactId>
|
||||
<version>2.13.2</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<configuration>
|
||||
<excludes>
|
||||
<exclude>**/*IT.class</exclude>
|
||||
</excludes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-failsafe-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>integration-tests</id>
|
||||
<phase>integration-test</phase>
|
||||
<goals>
|
||||
<goal>integration-test</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<includes>
|
||||
<include>**/*IT.class</include>
|
||||
</includes>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<distributionManagement>
|
||||
<repository>
|
||||
<id>inteligr8-releases</id>
|
||||
<name>Inteligr8 Releases</name>
|
||||
<url>http://repos.yateslong.us/nexus/repository/inteligr8-public</url>
|
||||
<layout>default</layout>
|
||||
</repository>
|
||||
</distributionManagement>
|
||||
</project>
|
104
src/main/java/com/inteligr8/bitbucket/ApiGateway.java
Normal file
104
src/main/java/com/inteligr8/bitbucket/ApiGateway.java
Normal file
@ -0,0 +1,104 @@
|
||||
package com.inteligr8.bitbucket;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.client.CredentialsProvider;
|
||||
import org.apache.http.client.methods.HttpDelete;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.client.methods.HttpPost;
|
||||
import org.apache.http.client.methods.HttpUriRequest;
|
||||
import org.apache.http.client.methods.RequestBuilder;
|
||||
import org.apache.http.entity.ContentType;
|
||||
import org.apache.http.entity.StringEntity;
|
||||
import org.apache.http.impl.client.HttpClientBuilder;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.inteligr8.bitbucket.http.BaseResponse;
|
||||
import com.inteligr8.bitbucket.http.PreemptiveAuthInterceptor;
|
||||
|
||||
public class ApiGateway {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(ApiGateway.class);
|
||||
private final String baseUrl = "https://api.bitbucket.org/2.0";
|
||||
private ObjectMapper omapper = new ObjectMapper();
|
||||
private CredentialsProvider credProvider;
|
||||
|
||||
public ApiGateway(CredentialsProvider credProvider) {
|
||||
this.credProvider = credProvider;
|
||||
}
|
||||
|
||||
public <Response extends BaseResponse> Response get(String uriPath, Map<String, Object> paramMap, Class<Response> responseType) throws IOException {
|
||||
return this.execute(HttpGet.METHOD_NAME, uriPath, paramMap, null, responseType);
|
||||
}
|
||||
|
||||
public <Request, Response extends BaseResponse> Response post(String uriPath, Request requestObject, Class<Response> responseType) throws IOException {
|
||||
return this.execute(HttpPost.METHOD_NAME, uriPath, null, requestObject, responseType);
|
||||
}
|
||||
|
||||
public <Request, Response extends BaseResponse> Response put(String uriPath, Request requestObject, Class<Response> responseType) throws IOException {
|
||||
return this.execute(HttpPost.METHOD_NAME, uriPath, null, requestObject, responseType);
|
||||
}
|
||||
|
||||
public <Response extends BaseResponse> Response delete(String uriPath, Map<String, Object> paramMap, Class<Response> responseType) throws IOException {
|
||||
return this.execute(HttpDelete.METHOD_NAME, uriPath, paramMap, null, responseType);
|
||||
}
|
||||
|
||||
private <Request, Response extends BaseResponse> Response execute(String method, String uriPath, Map<String, Object> paramMap, Request requestObject, Class<Response> responseType) throws IOException {
|
||||
if (this.logger.isTraceEnabled())
|
||||
this.logger.trace("execute('" + method + "', '" + uriPath + "')");
|
||||
|
||||
RequestBuilder builder = RequestBuilder
|
||||
.create(method)
|
||||
.setUri(this.baseUrl + uriPath);
|
||||
|
||||
if (paramMap != null) {
|
||||
for (Entry<String, Object> param : paramMap.entrySet())
|
||||
if (param.getValue() != null)
|
||||
builder.addParameter(param.getKey(), param.getValue().toString());
|
||||
}
|
||||
|
||||
if (requestObject != null) {
|
||||
String requestJson = this.omapper.writeValueAsString(requestObject);
|
||||
if (this.logger.isTraceEnabled())
|
||||
this.logger.trace("execute('" + method + "', '" + uriPath + "'): " + requestJson);
|
||||
|
||||
builder.setEntity(new StringEntity(requestJson, ContentType.APPLICATION_JSON));
|
||||
}
|
||||
|
||||
HttpUriRequest request = builder.build();
|
||||
if (this.logger.isDebugEnabled())
|
||||
this.logger.debug("Prepared request for " + method + " to: " + uriPath);
|
||||
|
||||
HttpResponse response = HttpClientBuilder
|
||||
.create()
|
||||
.addInterceptorFirst(new PreemptiveAuthInterceptor())
|
||||
.setDefaultCredentialsProvider(this.credProvider)
|
||||
.build()
|
||||
.execute(request);
|
||||
if (this.logger.isDebugEnabled())
|
||||
this.logger.debug("Received response from " + method + ": " + response.getStatusLine().getStatusCode());
|
||||
|
||||
Response responseObject = null;
|
||||
if (response.getEntity() != null) {
|
||||
InputStream istream = response.getEntity().getContent();
|
||||
try {
|
||||
responseObject = this.omapper.readerFor(responseType).readValue(istream);
|
||||
} finally {
|
||||
istream.close();
|
||||
}
|
||||
} else {
|
||||
responseObject = this.omapper.readerFor(responseType).readValue("{}");
|
||||
}
|
||||
|
||||
responseObject.setHttpStatusCode(response.getStatusLine().getStatusCode());
|
||||
responseObject.setHttpStatusReason(response.getStatusLine().getReasonPhrase());
|
||||
return responseObject;
|
||||
}
|
||||
|
||||
}
|
49
src/main/java/com/inteligr8/bitbucket/http/BaseResponse.java
Normal file
49
src/main/java/com/inteligr8/bitbucket/http/BaseResponse.java
Normal file
@ -0,0 +1,49 @@
|
||||
package com.inteligr8.bitbucket.http;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.inteligr8.bitbucket.model.Error;
|
||||
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class BaseResponse {
|
||||
|
||||
private int httpStatusCode;
|
||||
private String httpStatusReason;
|
||||
private String type;
|
||||
private Error error;
|
||||
|
||||
public int getHttpStatusCode() {
|
||||
return this.httpStatusCode;
|
||||
}
|
||||
|
||||
public void setHttpStatusCode(int httpStatusCode) {
|
||||
this.httpStatusCode = httpStatusCode;
|
||||
}
|
||||
|
||||
public String getHttpStatusReason() {
|
||||
return this.httpStatusReason;
|
||||
}
|
||||
|
||||
public void setHttpStatusReason(String httpStatusReason) {
|
||||
this.httpStatusReason = httpStatusReason;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return this.type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public Error getError() {
|
||||
if (this.error == null)
|
||||
this.error = new Error();
|
||||
return this.error;
|
||||
}
|
||||
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class Data {
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
package com.inteligr8.bitbucket.http;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import org.apache.http.HttpException;
|
||||
import org.apache.http.HttpHost;
|
||||
import org.apache.http.HttpRequest;
|
||||
import org.apache.http.HttpRequestInterceptor;
|
||||
import org.apache.http.auth.AuthScope;
|
||||
import org.apache.http.auth.AuthState;
|
||||
import org.apache.http.auth.Credentials;
|
||||
import org.apache.http.client.CredentialsProvider;
|
||||
import org.apache.http.client.protocol.HttpClientContext;
|
||||
import org.apache.http.impl.auth.BasicScheme;
|
||||
import org.apache.http.protocol.HttpContext;
|
||||
import org.apache.http.protocol.HttpCoreContext;
|
||||
|
||||
public class PreemptiveAuthInterceptor implements HttpRequestInterceptor {
|
||||
|
||||
public void process(final HttpRequest request, final HttpContext context) throws HttpException, IOException {
|
||||
AuthState authState = (AuthState) context.getAttribute(HttpClientContext.TARGET_AUTH_STATE);
|
||||
|
||||
// If no auth scheme available yet, try to initialize it
|
||||
// preemptively
|
||||
if (authState.getAuthScheme() == null) {
|
||||
CredentialsProvider credsProvider = (CredentialsProvider) context.getAttribute(HttpClientContext.CREDS_PROVIDER);
|
||||
HttpHost targetHost = (HttpHost) context.getAttribute(HttpCoreContext.HTTP_TARGET_HOST);
|
||||
Credentials creds = credsProvider.getCredentials(new AuthScope(targetHost.getHostName(), targetHost.getPort()));
|
||||
if (creds == null) {
|
||||
throw new HttpException("No credentials for preemptive authentication");
|
||||
}
|
||||
authState.update(new BasicScheme(), creds);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
23
src/main/java/com/inteligr8/bitbucket/model/Branch.java
Normal file
23
src/main/java/com/inteligr8/bitbucket/model/Branch.java
Normal file
@ -0,0 +1,23 @@
|
||||
package com.inteligr8.bitbucket.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude.Include;
|
||||
|
||||
@JsonInclude(value = Include.NON_EMPTY)
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class Branch {
|
||||
|
||||
@JsonProperty(required = true)
|
||||
private String name;
|
||||
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,63 @@
|
||||
package com.inteligr8.bitbucket.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.inteligr8.bitbucket.http.BaseResponse;
|
||||
|
||||
public class CreateBranch {
|
||||
|
||||
private CreateBranch() {
|
||||
}
|
||||
|
||||
public static String constructRequestPath(String repoName) {
|
||||
return "/repositories/" + repoName + "/" + httpPath;
|
||||
}
|
||||
|
||||
public static String httpPath = "refs/branches";
|
||||
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public static class Request {
|
||||
|
||||
@JsonProperty(required = true)
|
||||
private String name;
|
||||
@JsonProperty(required = true)
|
||||
private RequestTarget target;
|
||||
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public RequestTarget getTarget() {
|
||||
if (this.target == null)
|
||||
this.target = new RequestTarget();
|
||||
return this.target;
|
||||
}
|
||||
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class RequestTarget {
|
||||
|
||||
@JsonProperty(required = true)
|
||||
private String hash;
|
||||
|
||||
public String getHash() {
|
||||
return this.hash;
|
||||
}
|
||||
|
||||
public void setHash(String hash) {
|
||||
this.hash = hash;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public static class Response extends BaseResponse {
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,103 @@
|
||||
package com.inteligr8.bitbucket.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude.Include;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.inteligr8.bitbucket.http.BaseResponse;
|
||||
|
||||
public class CreatePullRequest {
|
||||
|
||||
private CreatePullRequest() {
|
||||
}
|
||||
|
||||
public static String constructRequestPath(String repoName) {
|
||||
return "/repositories/" + repoName + "/" + httpPath;
|
||||
}
|
||||
|
||||
public static String httpPath = "pullrequests";
|
||||
|
||||
@JsonInclude(value = Include.NON_EMPTY)
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public static class Request {
|
||||
|
||||
@JsonProperty(required = true)
|
||||
private String title;
|
||||
private String description;
|
||||
@JsonProperty(required = true)
|
||||
private Repository source;
|
||||
private Repository destination;
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return this.description;
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public Repository getSource() {
|
||||
if (this.source == null)
|
||||
this.source = new Repository();
|
||||
return this.source;
|
||||
}
|
||||
|
||||
public Repository getDestination() {
|
||||
if (this.destination == null)
|
||||
this.destination = new Repository();
|
||||
return this.destination;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public static class Response extends BaseResponse {
|
||||
|
||||
private int id;
|
||||
private String title;
|
||||
private State state;
|
||||
private Links links;
|
||||
|
||||
public int getId() {
|
||||
return this.id;
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return this.title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public State getState() {
|
||||
return this.state;
|
||||
}
|
||||
|
||||
public void setState(State state) {
|
||||
this.state = state;
|
||||
}
|
||||
|
||||
public Links getLinks() {
|
||||
if (this.links == null)
|
||||
this.links = new Links();
|
||||
return this.links;
|
||||
}
|
||||
|
||||
public enum State {MERGED, SUPERSEDED, OPEN, DECLINED};
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package com.inteligr8.bitbucket.model;
|
||||
|
||||
public class DeleteBranch {
|
||||
|
||||
private DeleteBranch() {
|
||||
}
|
||||
|
||||
public static String constructRequestPath(String repoName, String branchName) {
|
||||
return "/repositories/" + repoName + "/" + httpPath + "/" + branchName;
|
||||
}
|
||||
|
||||
public static String httpPath = "refs/branches";
|
||||
|
||||
}
|
29
src/main/java/com/inteligr8/bitbucket/model/Error.java
Normal file
29
src/main/java/com/inteligr8/bitbucket/model/Error.java
Normal file
@ -0,0 +1,29 @@
|
||||
package com.inteligr8.bitbucket.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class Error {
|
||||
|
||||
@JsonProperty(required = true)
|
||||
private String message;
|
||||
private String detail;
|
||||
|
||||
public String getMessage() {
|
||||
return this.message;
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public String getDetail() {
|
||||
return this.detail;
|
||||
}
|
||||
|
||||
public void setDetail(String detail) {
|
||||
this.detail = detail;
|
||||
}
|
||||
|
||||
}
|
33
src/main/java/com/inteligr8/bitbucket/model/Link.java
Normal file
33
src/main/java/com/inteligr8/bitbucket/model/Link.java
Normal file
@ -0,0 +1,33 @@
|
||||
package com.inteligr8.bitbucket.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude.Include;
|
||||
|
||||
@JsonInclude(value = Include.NON_EMPTY)
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class Link {
|
||||
|
||||
@JsonProperty(required = true)
|
||||
private String name;
|
||||
@JsonProperty(required = true)
|
||||
private String href;
|
||||
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getHref() {
|
||||
return this.href;
|
||||
}
|
||||
|
||||
public void setHref(String href) {
|
||||
this.href = href;
|
||||
}
|
||||
|
||||
}
|
26
src/main/java/com/inteligr8/bitbucket/model/Links.java
Normal file
26
src/main/java/com/inteligr8/bitbucket/model/Links.java
Normal file
@ -0,0 +1,26 @@
|
||||
package com.inteligr8.bitbucket.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude.Include;
|
||||
|
||||
@JsonInclude(value = Include.NON_EMPTY)
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class Links {
|
||||
|
||||
private Link self;
|
||||
private Link html;
|
||||
|
||||
public Link getSelf() {
|
||||
if (this.self == null)
|
||||
this.self = new Link();
|
||||
return this.self;
|
||||
}
|
||||
|
||||
public Link getHtml() {
|
||||
if (this.html == null)
|
||||
this.html = new Link();
|
||||
return this.html;
|
||||
}
|
||||
|
||||
}
|
21
src/main/java/com/inteligr8/bitbucket/model/Repository.java
Normal file
21
src/main/java/com/inteligr8/bitbucket/model/Repository.java
Normal file
@ -0,0 +1,21 @@
|
||||
package com.inteligr8.bitbucket.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude.Include;
|
||||
|
||||
@JsonInclude(value = Include.NON_EMPTY)
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class Repository {
|
||||
|
||||
@JsonProperty(required = true)
|
||||
private Branch branch;
|
||||
|
||||
public Branch getBranch() {
|
||||
if (this.branch == null)
|
||||
this.branch = new Branch();
|
||||
return this.branch;
|
||||
}
|
||||
|
||||
}
|
41
src/main/java/com/inteligr8/bitbucket/model/TextBox.java
Normal file
41
src/main/java/com/inteligr8/bitbucket/model/TextBox.java
Normal file
@ -0,0 +1,41 @@
|
||||
package com.inteligr8.bitbucket.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude.Include;
|
||||
|
||||
@JsonInclude(value = Include.NON_EMPTY)
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class TextBox {
|
||||
|
||||
private String raw;
|
||||
private Markup markup;
|
||||
private String html;
|
||||
|
||||
public String getRaw() {
|
||||
return this.raw;
|
||||
}
|
||||
|
||||
public void setRaw(String raw) {
|
||||
this.raw = raw;
|
||||
}
|
||||
|
||||
public Markup getMarkup() {
|
||||
return this.markup;
|
||||
}
|
||||
|
||||
public void setMarkup(Markup markup) {
|
||||
this.markup = markup;
|
||||
}
|
||||
|
||||
public String getHtml() {
|
||||
return this.html;
|
||||
}
|
||||
|
||||
public void setHtml(String html) {
|
||||
this.html = html;
|
||||
}
|
||||
|
||||
public enum Markup {markdown, creole, plaintext};
|
||||
|
||||
}
|
33
src/main/java/com/inteligr8/bitbucket/model/TextBoxes.java
Normal file
33
src/main/java/com/inteligr8/bitbucket/model/TextBoxes.java
Normal file
@ -0,0 +1,33 @@
|
||||
package com.inteligr8.bitbucket.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude.Include;
|
||||
|
||||
@JsonInclude(value = Include.NON_EMPTY)
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class TextBoxes {
|
||||
|
||||
private TextBox title;
|
||||
private TextBox description;
|
||||
private TextBox reason;
|
||||
|
||||
public TextBox getTitle() {
|
||||
if (this.title == null)
|
||||
this.title = new TextBox();
|
||||
return this.title;
|
||||
}
|
||||
|
||||
public TextBox getDescription() {
|
||||
if (this.description == null)
|
||||
this.description = new TextBox();
|
||||
return this.description;
|
||||
}
|
||||
|
||||
public TextBox getReason() {
|
||||
if (this.reason == null)
|
||||
this.reason = new TextBox();
|
||||
return this.reason;
|
||||
}
|
||||
|
||||
}
|
19
src/test/resources/log4j2.xml
Normal file
19
src/test/resources/log4j2.xml
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Configuration status="WARN">
|
||||
<Appenders>
|
||||
<Console name="STDOUT" target="SYSTEM_OUT">
|
||||
<PatternLayout pattern="[%t] %-5level %logger{36} - %msg%n"/>
|
||||
</Console>
|
||||
</Appenders>
|
||||
<Loggers>
|
||||
<Logger name="me.brianlong" level="trace" additivity="false">
|
||||
<AppenderRef ref="STDOUT" />
|
||||
</Logger>
|
||||
<Logger name="org.apache.http" level="trace" additivity="false">
|
||||
<AppenderRef ref="STDOUT" />
|
||||
</Logger>
|
||||
<Root level="info">
|
||||
<AppenderRef ref="STDOUT"/>
|
||||
</Root>
|
||||
</Loggers>
|
||||
</Configuration>
|
Loading…
x
Reference in New Issue
Block a user