Skip to content

Commit dc39b77

Browse files
Merge branch 'develop'
# Conflicts: # README.md # pom.xml
2 parents ef69bdc + 0a6eddc commit dc39b77

File tree

260 files changed

+14625
-1654
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

260 files changed

+14625
-1654
lines changed

.travis.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ branches:
1212
only:
1313
- develop
1414
- master
15-
- develop-domainDesigner
16-
15+
1716
env:
1817
global:
1918
- secure: "Dwb41Mdes13RFaB9Pf4fViLVt9U0NK8EvbzrD/GcWfHjKi1GpAgQ0WyUdQSKrxLViH2OL4BqQIQmOtugkW1rNQn/Gnnb4Hu4/rZ06+tLStcvmrm9+Pph++niqzCxZe206/VwDV393UVPWtVpFtbhDTaiJOf0dP+3BX7NAzqW+JU="

README.md

100644100755
Lines changed: 1446 additions & 505 deletions
Large diffs are not rendered by default.

pom.xml

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@
77

88
<groupId>com.jaspersoft</groupId>
99
<artifactId>jrs-rest-java-client</artifactId>
10-
<version>6.3.1</version>
10+
<version>6.3.20-SNAPSHOT</version>
1111
<name>REST client for JasperReports server</name>
1212
<url>http://github.com/Jaspersoft/jrs-rest-java-client</url>
1313

1414
<properties>
1515
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1616
<powermock.version>1.5.5</powermock.version>
17-
<jasperserver-dto.version>6.3.0</jasperserver-dto.version>
17+
<jasperserver-dto.version>7.2.0</jasperserver-dto.version>
1818
</properties>
1919

2020
<scm>
@@ -23,7 +23,7 @@
2323
<tag>HEAD</tag>
2424
</scm>
2525

26-
<repositories>
26+
<repositories>
2727
<repository>
2828
<id>jaspersoft-clients-snapshots</id>
2929
<name>Jaspersoft clients snapshots</name>
@@ -33,14 +33,20 @@
3333
<id>central</id>
3434
<name>jaspersoft-releases</name>
3535
<url>https://jaspersoft.jfrog.io/jaspersoft/jrs-ce-releases</url>
36-
</repository>
37-
</repositories>
36+
</repository>
37+
</repositories>
3838

3939
<dependencies>
4040
<dependency>
4141
<groupId>com.jaspersoft.jasperserver</groupId>
4242
<artifactId>jasperserver-dto</artifactId>
4343
<version>${jasperserver-dto.version}</version>
44+
<exclusions>
45+
<exclusion>
46+
<artifactId>jackson-annotations</artifactId>
47+
<groupId>com.fasterxml.jackson.core</groupId>
48+
</exclusion>
49+
</exclusions>
4450
</dependency>
4551

4652
<!-- Jersey-->
@@ -50,13 +56,13 @@
5056
<version>2.22.1</version>
5157
</dependency>
5258
<dependency>
53-
<groupId>com.sun.jersey</groupId>
54-
<artifactId>jersey-json</artifactId>
55-
<version>1.19</version>
59+
<groupId>org.glassfish.jersey.media</groupId>
60+
<artifactId>jersey-media-multipart</artifactId>
61+
<version>2.22.1</version>
5662
</dependency>
5763
<dependency>
58-
<groupId>com.sun.jersey.contribs</groupId>
59-
<artifactId>jersey-multipart</artifactId>
64+
<groupId>com.sun.jersey</groupId>
65+
<artifactId>jersey-json</artifactId>
6066
<version>1.19</version>
6167
</dependency>
6268
<dependency>
@@ -162,8 +168,8 @@
162168
<artifactId>maven-compiler-plugin</artifactId>
163169
<version>3.1</version>
164170
<configuration>
165-
<source>1.6</source>
166-
<target>1.6</target>
171+
<source>1.7</source>
172+
<target>1.7</target>
167173
</configuration>
168174
</plugin>
169175
<plugin>
@@ -182,6 +188,7 @@
182188
</exclude>
183189
<exclude>**/com/jaspersoft/jasperserver/jaxrs/client/core/exceptions/**</exclude>
184190
<exclude>**/com/jaspersoft/jasperserver/jaxrs/client/core/enums/**</exclude>
191+
<exclude>**/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/adhoc/queryexecution/enums/**</exclude>
185192
</excludes>
186193
</instrumentation>
187194
</configuration>
@@ -203,6 +210,7 @@
203210
<version>2.12</version>
204211
<configuration>
205212
<skipTests>false</skipTests>
213+
<testFailureIgnore>false</testFailureIgnore>
206214
<excludes>
207215
<exclude>**/IT.java</exclude>
208216
</excludes>
Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.adhoc.queryexecution;
2+
3+
import com.jaspersoft.jasperserver.dto.executions.AbstractClientExecution;
4+
import com.jaspersoft.jasperserver.dto.executions.ClientExecutionListWrapper;
5+
import com.jaspersoft.jasperserver.dto.executions.ExecutionStatusObject;
6+
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.AbstractAdapter;
7+
import com.jaspersoft.jasperserver.jaxrs.client.core.JerseyRequest;
8+
import com.jaspersoft.jasperserver.jaxrs.client.core.SessionStorage;
9+
import com.jaspersoft.jasperserver.jaxrs.client.core.enums.MimeType;
10+
import com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.MandatoryParameterNotFoundException;
11+
import com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.handling.DefaultErrorHandler;
12+
import com.jaspersoft.jasperserver.jaxrs.client.core.operationresult.OperationResult;
13+
import org.apache.commons.lang3.StringUtils;
14+
15+
import javax.ws.rs.core.MultivaluedHashMap;
16+
import java.util.ArrayList;
17+
import java.util.List;
18+
19+
import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
20+
21+
/**
22+
* <p/>
23+
* <p/>
24+
*
25+
* @author tetiana.iefimenko
26+
* @version $Id$
27+
* @see
28+
*/
29+
public class QueryExecutionAdapter extends AbstractAdapter {
30+
31+
32+
private String serviceURI = "queryExecutions";
33+
private List<String> uri;
34+
private Class responseClass;
35+
private String contentType;
36+
private String[] acceptType;
37+
private MimeType responseFormat = sessionStorage.getConfiguration().getAcceptMimeType();
38+
private MultivaluedHashMap<String, String> params;
39+
40+
public QueryExecutionAdapter(SessionStorage sessionStorage, String contentType, Class responseClass, String... acceptType) {
41+
super(sessionStorage);
42+
this.contentType = contentType;
43+
this.acceptType = acceptType;
44+
this.responseClass = responseClass;
45+
params = new MultivaluedHashMap<>();
46+
uri = new ArrayList<>();
47+
uri.add(serviceURI);
48+
}
49+
50+
public QueryExecutionAdapter(SessionStorage sessionStorage, String executionId) {
51+
super(sessionStorage);
52+
uri = new ArrayList<>();
53+
uri.add(serviceURI);
54+
uri.add(executionId);
55+
}
56+
57+
public QueryExecutionAdapter(SessionStorage sessionStorage) {
58+
super(sessionStorage);
59+
uri = new ArrayList<>();
60+
uri.add(serviceURI);
61+
}
62+
63+
public QueryExecutionAdapter asXml() {
64+
responseFormat = MimeType.XML;
65+
return this;
66+
}
67+
68+
public QueryExecutionAdapter asJson() {
69+
responseFormat = MimeType.JSON;
70+
return this;
71+
}
72+
73+
public QueryExecutionAdapter asResultDataSet(String resultMimeType) {
74+
acceptType = new String[]{resultMimeType};
75+
responseClass = QueryResultDataHelper.getResultDataType(resultMimeType);
76+
return this;
77+
}
78+
79+
public QueryExecutionAdapter asResultExecution(String resultMimeType) {
80+
acceptType = new String[]{resultMimeType};
81+
responseClass = QueryExecutionHelper.getClassForMime(resultMimeType);
82+
return this;
83+
}
84+
85+
public QueryExecutionAdapter asDefaultAccept() {
86+
acceptType = new String[]{APPLICATION_JSON};
87+
responseClass = QueryExecutionHelper.getClassForMime(contentType);
88+
return this;
89+
}
90+
91+
public QueryExecutionAdapter offset(Integer offset) {
92+
params.add("offset", offset.toString());
93+
return this;
94+
}
95+
96+
public QueryExecutionAdapter pageSize(Integer pageSize) {
97+
params.add("pageSize", pageSize.toString());
98+
return this;
99+
}
100+
101+
public QueryExecutionAdapter withQueryParameter(String name, String value) {
102+
params.add(name, value);
103+
return this;
104+
}
105+
106+
public <T> OperationResult<T> retrieveData(String executionId) {
107+
uri.add(executionId);
108+
uri.add("data");
109+
JerseyRequest<T> request = buildRequest(responseClass);
110+
if (params.size() > 0) {
111+
request.addParams(params);
112+
}
113+
114+
request.setAccept(StringUtils.join(acceptType, ","));
115+
return request.get();
116+
}
117+
118+
/**
119+
* @deprecated Replaced by {@link QueryExecutionAdapter#delete()}
120+
*/
121+
@Deprecated
122+
public <T> OperationResult<T> deleteExecution(String executionId) {
123+
uri.add(executionId);
124+
JerseyRequest<T> request = buildRequest(responseClass);
125+
return request.delete();
126+
}
127+
128+
public OperationResult delete() {
129+
JerseyRequest request = buildRequest(Object.class);
130+
return request.delete();
131+
}
132+
133+
public OperationResult<ClientExecutionListWrapper> getExecutions() {
134+
JerseyRequest request = buildRequest(ClientExecutionListWrapper.class);
135+
return request.get();
136+
}
137+
138+
public <T extends AbstractClientExecution> OperationResult<T> get() {
139+
JerseyRequest request = buildRequest(AbstractClientExecution.class);
140+
return request.get();
141+
}
142+
143+
public OperationResult<ExecutionStatusObject> status() {
144+
uri.add("status");
145+
146+
JerseyRequest request = buildRequest(ExecutionStatusObject.class);
147+
return request.get();
148+
}
149+
150+
public <T> OperationResult<T> execute(AbstractClientExecution query) {
151+
if (query == null) {
152+
throw new MandatoryParameterNotFoundException("Query must be specified");
153+
}
154+
JerseyRequest<T> request = buildRequest(responseClass);
155+
request.setContentType(contentType);
156+
if (!(sessionStorage.getConfiguration().getAcceptMimeType() == responseFormat)) {
157+
for (int i = 0; i < acceptType.length; i++) {
158+
String type = acceptType[i];
159+
acceptType[i] = type.replace(type.substring(type.lastIndexOf("+") + 1), responseFormat.toString().toLowerCase());
160+
}
161+
}
162+
request.setAccept(StringUtils.join(acceptType, ","));
163+
request.addParams(params);
164+
return request.
165+
post(query);
166+
}
167+
168+
protected <T> JerseyRequest<T> buildRequest(Class<T> responseType) {
169+
JerseyRequest<T> request = JerseyRequest.buildRequest(sessionStorage,
170+
responseType,
171+
uri.toArray(new String[uri.size()]),
172+
new DefaultErrorHandler());
173+
174+
return request;
175+
}
176+
177+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.adhoc.queryexecution;
2+
3+
import com.jaspersoft.jasperserver.dto.executions.AbstractClientExecution;
4+
import com.jaspersoft.jasperserver.dto.executions.ClientMultiAxisQueryExecution;
5+
import com.jaspersoft.jasperserver.dto.executions.ClientMultiLevelQueryExecution;
6+
import com.jaspersoft.jasperserver.dto.executions.ClientProvidedQueryExecution;
7+
8+
import java.util.HashMap;
9+
import java.util.Map;
10+
11+
import static com.jaspersoft.jasperserver.dto.executions.QueryExecutionsMediaType.EXECUTION_MULTI_LEVEL_QUERY_JSON;
12+
import static com.jaspersoft.jasperserver.dto.executions.QueryExecutionsMediaType.EXECUTION_MULTI_AXIS_QUERY_JSON;
13+
import static com.jaspersoft.jasperserver.dto.executions.QueryExecutionsMediaType.EXECUTION_PROVIDED_QUERY_JSON;
14+
15+
public class QueryExecutionHelper {
16+
17+
private static Map<String, Class<? extends AbstractClientExecution>> mediaTypeWithExecutionClassInfo =
18+
new HashMap<String, Class<? extends AbstractClientExecution>>(){{
19+
put(EXECUTION_MULTI_LEVEL_QUERY_JSON, ClientMultiLevelQueryExecution.class);
20+
put(EXECUTION_MULTI_AXIS_QUERY_JSON, ClientMultiAxisQueryExecution.class);
21+
put(EXECUTION_PROVIDED_QUERY_JSON, ClientProvidedQueryExecution.class);
22+
}};
23+
24+
public static Class<? extends AbstractClientExecution> getClassForMime(String mime) {
25+
for (Map.Entry<String, Class<? extends AbstractClientExecution>> entry :
26+
mediaTypeWithExecutionClassInfo.entrySet()) {
27+
if (entry.getKey().equalsIgnoreCase(mime)) {
28+
return entry.getValue();
29+
}
30+
}
31+
return null;
32+
}
33+
34+
}

0 commit comments

Comments
 (0)