Skip to content

Commit 7953a75

Browse files
committed
refactoring in URI building
1 parent 8dce4de commit 7953a75

File tree

14 files changed

+138
-77
lines changed

14 files changed

+138
-77
lines changed

pom.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

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

@@ -196,6 +196,7 @@
196196
<version>2.12</version>
197197
<configuration>
198198
<skipTests>false</skipTests>
199+
<testFailureIgnore>true</testFailureIgnore>
199200
<excludes>
200201
<exclude>**/IT.java</exclude>
201202
</excludes>

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/attributes/BatchAttributeAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public BatchAttributeAdapter(String organizationId, String userName, SessionStor
6464
path.add(organizationId);
6565
}
6666
if (userName != null) {
67-
path.add("users/");
67+
path.add("users");
6868
path.add(userName);
6969
}
7070
this.organizationId = organizationId;

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/domain/DomainMetadataAdapter.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,29 +20,30 @@
2020
*/
2121
package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.domain;
2222

23+
import com.jaspersoft.jasperserver.dto.domain.DomainMetaData;
2324
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.AbstractAdapter;
2425
import com.jaspersoft.jasperserver.jaxrs.client.core.JerseyRequest;
2526
import com.jaspersoft.jasperserver.jaxrs.client.core.SessionStorage;
2627
import com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.handling.DefaultErrorHandler;
2728
import com.jaspersoft.jasperserver.jaxrs.client.core.operationresult.OperationResult;
28-
import com.jaspersoft.jasperserver.dto.domain.DomainMetaData;
2929
import java.util.ArrayList;
30+
import java.util.Arrays;
3031

3132
public class DomainMetadataAdapter extends AbstractAdapter {
32-
private final ArrayList<String> uri = new ArrayList<String>();
33+
private final ArrayList<String> path = new ArrayList<String>();
3334

3435
public DomainMetadataAdapter(SessionStorage sessionStorage, String domainURI) {
3536
super(sessionStorage);
36-
uri.add("domains");
37-
uri.add(domainURI);
38-
uri.add("metadata");
37+
path.add("domains");
38+
path.addAll(Arrays.asList(domainURI.split("/")));
39+
path.add("metadata");
3940
}
4041

4142
public OperationResult<DomainMetaData> retrieve() {
4243
return JerseyRequest.buildRequest(
4344
sessionStorage,
4445
DomainMetaData.class,
45-
uri.toArray(new String[uri.size()]),
46+
path.toArray(new String[path.size()]),
4647
new DefaultErrorHandler()
4748
).get();
4849
}

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/inputControls/InputControlsAdapter.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.MandatoryParameterNotFoundException;
99
import com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.handling.DefaultErrorHandler;
1010
import com.jaspersoft.jasperserver.jaxrs.client.core.operationresult.OperationResult;
11+
import java.util.ArrayList;
12+
import java.util.Arrays;
1113
import java.util.List;
1214

1315
/**
@@ -17,10 +19,14 @@ public class InputControlsAdapter extends AbstractAdapter{
1719

1820
public static final String REPORTS_URI = "reports";
1921
public static final String INPUT_CONTROLS_URI = "inputControls";
22+
public ArrayList<String> path = new ArrayList<String>();
2023
private String containerUri;
2124
private Boolean excludeState = false;
2225

2326
public InputControlsAdapter container(String uri) {
27+
if (uri == null) {
28+
throw new MandatoryParameterNotFoundException("Uri of container should be specified");
29+
}
2430
this.containerUri = uri;
2531
return this;
2632
}
@@ -48,12 +54,12 @@ public OperationResult<ReportInputControlsListWrapper> reorder(List<ReportInputC
4854
}
4955

5056
private JerseyRequest<ReportInputControlsListWrapper> buildRequest(){
51-
if (containerUri == null) {
52-
throw new MandatoryParameterNotFoundException("Uri of container should be specified");
53-
}
57+
path.add(REPORTS_URI);
58+
path.addAll(Arrays.asList(containerUri.split("/")));
59+
path.add(INPUT_CONTROLS_URI);
5460
JerseyRequest<ReportInputControlsListWrapper> request = JerseyRequest.buildRequest(sessionStorage,
5561
ReportInputControlsListWrapper.class,
56-
new String[]{REPORTS_URI, containerUri, INPUT_CONTROLS_URI},
62+
path.toArray(new String[path.size()]),
5763
new DefaultErrorHandler());
5864
if (excludeState) {
5965
request.addParam("exclude", "state");

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/inputControls/InputControlsValuesAdapter.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.handling.DefaultErrorHandler;
88
import com.jaspersoft.jasperserver.jaxrs.client.core.operationresult.OperationResult;
99
import com.jaspersoft.jasperserver.jaxrs.client.dto.reports.inputcontrols.InputControlStateListWrapper;
10+
import java.util.ArrayList;
11+
import java.util.Arrays;
1012
import java.util.LinkedHashMap;
1113
import java.util.List;
1214
import java.util.Map;
@@ -19,11 +21,16 @@
1921
*/
2022
public class InputControlsValuesAdapter extends AbstractAdapter{
2123

24+
public static final String REPORTS_URI = "reports";
25+
public static final String INPUT_CONTROLS_URI = "inputControls";
26+
public static final String VALUES_URI = "values";
2227
private String containerUri;
2328
private Boolean useFreshData = false;
2429
private Boolean includeFullStructure = false;
2530
private MultivaluedHashMap<String, String> inputControlsValues = new MultivaluedHashMap<String, String>();
2631
private StringBuilder ids = new StringBuilder("");
32+
private ArrayList<String> path = new ArrayList<String>();
33+
2734

2835
public InputControlsValuesAdapter(SessionStorage sessionStorage, String containerUri) {
2936
super(sessionStorage);
@@ -70,10 +77,14 @@ public OperationResult<InputControlStateListWrapper> get(){
7077
}
7178

7279
private JerseyRequest<InputControlStateListWrapper> buildRequest(){
73-
80+
path.add(REPORTS_URI);
81+
path.addAll(Arrays.asList(containerUri.split("/")));
82+
path.add(INPUT_CONTROLS_URI);
83+
path.add(ids.toString());
84+
path.add(VALUES_URI);
7485
JerseyRequest<InputControlStateListWrapper> request = JerseyRequest.buildRequest(sessionStorage,
7586
InputControlStateListWrapper.class,
76-
new String[]{"reports", containerUri, "inputControls",ids.toString(), "values"},
87+
path.toArray(new String[path.size()]),
7788
new DefaultErrorHandler());
7889
if (useFreshData) {
7990
request.addParam("freshData", useFreshData.toString());

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/jobs/SingleJobOperationsAdapter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131
import static com.jaspersoft.jasperserver.jaxrs.client.core.JerseyRequest.buildRequest;
3232

3333
public class SingleJobOperationsAdapter extends AbstractAdapter {
34-
public static final String SERVICE_URI = "/jobs";
35-
public static final String STATE = "/state";
34+
public static final String SERVICE_URI = "jobs";
35+
public static final String STATE = "state";
3636
private final String jobId;
3737

3838
public SingleJobOperationsAdapter(SessionStorage sessionStorage, String jobId) {

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/permissions/PermissionResourceRequestAdapter.java

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,24 @@
2222

2323
import com.jaspersoft.jasperserver.dto.permissions.RepositoryPermissionListWrapper;
2424
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.AbstractAdapter;
25-
import com.jaspersoft.jasperserver.jaxrs.client.core.*;
25+
import com.jaspersoft.jasperserver.jaxrs.client.core.Callback;
26+
import com.jaspersoft.jasperserver.jaxrs.client.core.JerseyRequest;
27+
import com.jaspersoft.jasperserver.jaxrs.client.core.MimeTypeUtil;
28+
import com.jaspersoft.jasperserver.jaxrs.client.core.RequestExecution;
29+
import com.jaspersoft.jasperserver.jaxrs.client.core.SessionStorage;
30+
import com.jaspersoft.jasperserver.jaxrs.client.core.ThreadPoolUtil;
2631
import com.jaspersoft.jasperserver.jaxrs.client.core.operationresult.OperationResult;
27-
32+
import java.util.ArrayList;
33+
import java.util.Arrays;
2834
import javax.ws.rs.core.MultivaluedHashMap;
2935
import javax.ws.rs.core.MultivaluedMap;
3036

3137
import static com.jaspersoft.jasperserver.jaxrs.client.core.JerseyRequest.buildRequest;
3238

3339
public class PermissionResourceRequestAdapter extends AbstractAdapter {
3440

35-
public static final String SERVICE_URI = "permissions";
41+
public static final String PERMISSIONS_URI = "permissions";
42+
private ArrayList<String> path = new ArrayList<String>();
3643
private final String resourceUri;
3744
private final MultivaluedMap<String, String> params;
3845

@@ -49,13 +56,13 @@ public SinglePermissionRecipientRequestAdapter permissionRecipient(PermissionRec
4956
}
5057

5158
public OperationResult<RepositoryPermissionListWrapper> createOrUpdate(RepositoryPermissionListWrapper permissions) {
52-
JerseyRequest<RepositoryPermissionListWrapper> request = buildRequest(sessionStorage, RepositoryPermissionListWrapper.class, new String[]{SERVICE_URI, resourceUri});
59+
JerseyRequest<RepositoryPermissionListWrapper> request = buildReauest();
5360
request.setContentType(MimeTypeUtil.toCorrectContentMime(sessionStorage.getConfiguration(), "application/collection+{mime}"));
5461
return request.put(permissions);
5562
}
5663

5764
public <R> RequestExecution asyncCreateOrUpdate(final RepositoryPermissionListWrapper permissions, final Callback<OperationResult<RepositoryPermissionListWrapper>, R> callback) {
58-
final JerseyRequest<RepositoryPermissionListWrapper> request = buildRequest(sessionStorage, RepositoryPermissionListWrapper.class, new String[]{SERVICE_URI, resourceUri});
65+
final JerseyRequest<RepositoryPermissionListWrapper> request = buildReauest();
5966
request.setContentType(MimeTypeUtil.toCorrectContentMime(sessionStorage.getConfiguration(), "application/collection+{mime}"));
6067
RequestExecution task = new RequestExecution(new Runnable() {
6168
@Override
@@ -67,19 +74,21 @@ public void run() {
6774
return task;
6875
}
6976

77+
78+
7079
public PermissionResourceRequestAdapter param(PermissionResourceParameter resourceParam, String value) {
7180
params.add(resourceParam.getParamName(), value);
7281
return this;
7382
}
7483

7584
public OperationResult<RepositoryPermissionListWrapper> get(){
76-
JerseyRequest<RepositoryPermissionListWrapper> request = buildRequest(sessionStorage, RepositoryPermissionListWrapper.class, new String[]{SERVICE_URI, resourceUri});
85+
JerseyRequest<RepositoryPermissionListWrapper> request = buildReauest();
7786
request.addParams(params);
7887
return request.get();
7988
}
8089

8190
public <R> RequestExecution asyncGet(final Callback<OperationResult<RepositoryPermissionListWrapper>, R> callback) {
82-
final JerseyRequest<RepositoryPermissionListWrapper> request = buildRequest(sessionStorage, RepositoryPermissionListWrapper.class, new String[]{SERVICE_URI, resourceUri});
91+
final JerseyRequest<RepositoryPermissionListWrapper> request = buildReauest();
8392
request.addParams(params);
8493
RequestExecution task = new RequestExecution(new Runnable() {
8594
@Override
@@ -92,11 +101,11 @@ public void run() {
92101
}
93102

94103
public OperationResult delete(){
95-
return buildRequest(sessionStorage, RepositoryPermissionListWrapper.class, new String[]{SERVICE_URI, resourceUri}).delete();
104+
return buildReauest().delete();
96105
}
97106

98107
public <R> RequestExecution asyncDelete(final Callback<OperationResult<RepositoryPermissionListWrapper>, R> callback) {
99-
final JerseyRequest<RepositoryPermissionListWrapper> request = buildRequest(sessionStorage, RepositoryPermissionListWrapper.class, new String[]{SERVICE_URI, resourceUri});
108+
final JerseyRequest<RepositoryPermissionListWrapper> request = buildReauest();
100109
RequestExecution task = new RequestExecution(new Runnable() {
101110
@Override
102111
public void run() {
@@ -106,4 +115,10 @@ public void run() {
106115
ThreadPoolUtil.runAsynchronously(task);
107116
return task;
108117
}
118+
119+
protected JerseyRequest<RepositoryPermissionListWrapper> buildReauest() {
120+
path.add(PERMISSIONS_URI);
121+
path.addAll(Arrays.asList(resourceUri.split("/")));
122+
return buildRequest(sessionStorage, RepositoryPermissionListWrapper.class, path.toArray(new String[path.size()]));
123+
}
109124
}

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/query/QueryExecutorAdapter.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,19 @@
2020
*/
2121
package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.query;
2222

23+
import com.jaspersoft.jasperserver.dto.query.QueryResult;
2324
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.AbstractAdapter;
2425
import com.jaspersoft.jasperserver.jaxrs.client.core.JerseyRequest;
2526
import com.jaspersoft.jasperserver.jaxrs.client.core.SessionStorage;
2627
import com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.handling.DefaultErrorHandler;
2728
import com.jaspersoft.jasperserver.jaxrs.client.core.operationresult.OperationResult;
2829
import com.jaspersoft.jasperserver.jaxrs.client.dto.query.Query;
29-
import com.jaspersoft.jasperserver.dto.query.QueryResult;
30+
import java.util.ArrayList;
31+
import java.util.Arrays;
3032

3133
public class QueryExecutorAdapter extends AbstractAdapter {
32-
public static final String QUERY_EXECUTOR = "queryExecutor";
34+
public static final String QUERY_EXECUTOR_URI = "queryExecutor";
35+
private ArrayList<String> path = new ArrayList<String>();
3336
private final String resourceUri;
3437
private final Query query;
3538

@@ -40,10 +43,12 @@ public QueryExecutorAdapter(SessionStorage sessionStorage, Query query, String r
4043
}
4144

4245
public OperationResult<QueryResult> execute() {
46+
path.add(QUERY_EXECUTOR_URI);
47+
path.addAll(Arrays.asList(resourceUri.split("/")));
4348
JerseyRequest<QueryResult> req = JerseyRequest.buildRequest(
4449
sessionStorage,
4550
QueryResult.class,
46-
new String[]{QUERY_EXECUTOR, resourceUri},
51+
path.toArray(new String[path.size()]),
4752
new DefaultErrorHandler()
4853
);
4954

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/reporting/ReportsAndJobsSearchAdapter.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,6 @@
2929
import javax.ws.rs.core.MultivaluedHashMap;
3030
import javax.ws.rs.core.MultivaluedMap;
3131

32-
import static com.jaspersoft.jasperserver.jaxrs.client.core.JerseyRequest.buildRequest;
33-
34-
3532
public class ReportsAndJobsSearchAdapter extends AbstractAdapter {
3633

3734
public static final String REPORT_EXECUTIONS_URI = "reportExecutions";
@@ -49,14 +46,14 @@ public ReportsAndJobsSearchAdapter parameter(ReportAndJobSearchParameter param,
4946

5047
public OperationResult<ReportExecutionListWrapper> find(){
5148
JerseyRequest<ReportExecutionListWrapper> request =
52-
buildRequest(sessionStorage, ReportExecutionListWrapper.class, new String[]{REPORT_EXECUTIONS_URI});
49+
buildRequest();
5350
request.addParams(params);
5451
return request.get();
5552
}
5653

5754
public <R> RequestExecution asyncFind(final Callback<OperationResult<ReportExecutionListWrapper>, R> callback) {
5855
final JerseyRequest<ReportExecutionListWrapper> request =
59-
buildRequest(sessionStorage, ReportExecutionListWrapper.class, new String[]{REPORT_EXECUTIONS_URI});
56+
buildRequest();
6057
request.addParams(params);
6158

6259
RequestExecution task = new RequestExecution(new Runnable() {
@@ -70,4 +67,10 @@ public void run() {
7067
return task;
7168
}
7269

70+
protected JerseyRequest<ReportExecutionListWrapper> buildRequest() {
71+
return JerseyRequest.buildRequest(sessionStorage,
72+
ReportExecutionListWrapper.class,
73+
new String[]{REPORT_EXECUTIONS_URI});
74+
}
75+
7376
}

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/reporting/RunReportAdapter.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import com.jaspersoft.jasperserver.jaxrs.client.core.ThreadPoolUtil;
3030
import com.jaspersoft.jasperserver.jaxrs.client.core.operationresult.OperationResult;
3131
import java.io.InputStream;
32+
import java.util.ArrayList;
3233
import java.util.Arrays;
3334
import java.util.Iterator;
3435
import java.util.LinkedList;
@@ -49,6 +50,7 @@ public class RunReportAdapter extends AbstractAdapter {
4950
private final String format;
5051
private TimeZone timeZone;
5152
private String[] pages = new String[0];
53+
private ArrayList<String> path = new ArrayList<String>();
5254

5355
public RunReportAdapter(SessionStorage sessionStorage, String reportUnitUri, String format) {
5456
super(sessionStorage);
@@ -96,7 +98,6 @@ public RunReportAdapter forTimeZone(String timeZoneId) {
9698
}
9799

98100
public RunReportAdapter parameter(String name, String... value) {
99-
100101
params.addAll(name, Arrays.asList(value));
101102
return this;
102103
}
@@ -128,11 +129,12 @@ public void run() {
128129
}
129130

130131
private JerseyRequest<InputStream> prepareRunRequest() {
131-
132+
path.add(SERVICE_URI);
133+
path.addAll(Arrays.asList((reportUnitUri + "." + format).split("/")));
132134
JerseyRequest<InputStream> request = JerseyRequest.buildRequest(
133135
sessionStorage,
134136
InputStream.class,
135-
new String[]{SERVICE_URI, reportUnitUri + "." + format},
137+
path.toArray(new String[path.size()]),
136138
new RunReportErrorHandler());
137139

138140
request.addParams(params);

0 commit comments

Comments
 (0)