Skip to content

Commit 9f7d2df

Browse files
Merge pull request #109 from TanyaEf/master
Added BundlesService support
2 parents ddc91bf + 6a70a6f commit 9f7d2df

File tree

10 files changed

+331
-49
lines changed

10 files changed

+331
-49
lines changed

README.md

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -109,13 +109,14 @@ Table of Contents
109109
12. [Thumbnail Search Service](#thumbnail-search-service).
110110
13. [Query executor service](#queryexecutor-service).
111111
14. [REST Server Information](#rest-server-information).
112-
15. [Exception handling](#exception-handling).
113-
16. [Asynchronous API](#asynchronous-api).
114-
17. [Getting serialized content from response](#getting-serialized-content-from-response).
115-
18. [Switching between JSON and XML](#switching-between-json-and-xml).
116-
19. [Possible issues](#possible-issues).
117-
20. [Maven dependency to add jasperserver-rest-client to your app](#maven-dependency-to-add-jasperserver-rest-client-to-your-app).
118-
21. [License](#license).
112+
15. [Bundles service](#bundles-service).
113+
16. [Exception handling](#exception-handling).
114+
17. [Asynchronous API](#asynchronous-api).
115+
18. [Getting serialized content from response](#getting-serialized-content-from-response).
116+
19. [Switching between JSON and XML](#switching-between-json-and-xml).
117+
20. [Possible issues](#possible-issues).
118+
21. [Maven dependency to add jasperserver-rest-client to your app](#maven-dependency-to-add-jasperserver-rest-client-to-your-app).
119+
22. [License](#license).
119120

120121
Introduction
121122
-------------
@@ -1542,7 +1543,24 @@ OperationResult<String> result = client
15421543

15431544
String edition = result.getEntity();
15441545
```
1545-
1546+
###Bundles service
1547+
Use bundles service to get bundles of internalization properties for particular or default user’s locale as JSON. To get all bundles for particular locale(foe example, "de") use the code below:
1548+
```java
1549+
final JSONObject bundles = session
1550+
.bundlesService()
1551+
.forLocale("de")
1552+
.allBundles()
1553+
.getEntity();
1554+
```
1555+
If you pass `null` in `.forLocale()` method, you will get bundles for your default locale.
1556+
To get bundle by name you should specified locale in `.forLocale()` method and name of the bundle in `.bundles()` method:
1557+
```java
1558+
final JSONObject bundle = session
1559+
.bundlesService()
1560+
.forLocale("en_US")
1561+
.bundle("jasperserver_messages")
1562+
.getEntity();
1563+
```
15461564
###Exception handling
15471565
You can customize exception handling for each endpoint. To do this you need to pass `com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.handling.ErrorHandler` implementation to `JerseyRequestBuilder.buildRequest()` factory method.
15481566

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.bundles;
2+
3+
import com.jaspersoft.jasperserver.jaxrs.client.core.*;
4+
import org.codehaus.jettison.json.JSONObject;
5+
import org.testng.annotations.BeforeMethod;
6+
import org.testng.annotations.Test;
7+
8+
import static junit.framework.Assert.assertFalse;
9+
import static junit.framework.Assert.assertNotNull;
10+
11+
/**
12+
* @author Tetiana Iefimenko
13+
*/
14+
public class BundlesServiceIT {
15+
16+
private RestClientConfiguration config;
17+
private JasperserverRestClient client;
18+
private AnonymousSession session;
19+
20+
@BeforeMethod
21+
public void before() {
22+
config = new RestClientConfiguration("http://localhost:4444/jasperserver-pro");
23+
config.setAcceptMimeType(MimeType.JSON);
24+
config.setContentMimeType(MimeType.JSON);
25+
config.setJrsVersion(JRSVersion.v6_1_0);
26+
client = new JasperserverRestClient(config);
27+
session = client.getAnonymousSession();
28+
}
29+
30+
@Test
31+
public void should_return_all_bundles_for_default_locale() {
32+
33+
// When
34+
final JSONObject bundles = session
35+
.bundlesService()
36+
.forLocale(null)
37+
.allBundles()
38+
.getEntity();
39+
40+
// Then
41+
assertNotNull(bundles);
42+
assertFalse(bundles.has("jasperserver_messages"));
43+
}
44+
45+
@Test
46+
public void should_return_all_bundles_for_specified_locale() {
47+
48+
// When
49+
final JSONObject bundles = session
50+
.bundlesService()
51+
.forLocale("de")
52+
.allBundles()
53+
.getEntity();
54+
55+
// Then
56+
assertNotNull(bundles);
57+
assertFalse(bundles.has("jasperserver_messages"));
58+
}
59+
60+
@Test
61+
public void should_return__bundle_by_name_for_specified_locale() {
62+
63+
// When
64+
final JSONObject bundle = session
65+
.bundlesService()
66+
.forLocale("de")
67+
.bundle("jasperserver_messages")
68+
.getEntity();
69+
70+
// Then
71+
assertNotNull(bundle);
72+
assertFalse(bundle.has("jsp.JSErrorPage.errorTrace"));
73+
}
74+
75+
@Test
76+
public void should_return__bundle_by_name_for_default_locale() {
77+
78+
// When
79+
final JSONObject bundle = session
80+
.bundlesService()
81+
.forLocale(null)
82+
.bundle("jasperserver_messages")
83+
.getEntity();
84+
85+
// Then
86+
assertNotNull(bundle);
87+
assertFalse(bundle.has("jsp.JSErrorPage.errorTrace"));
88+
}
89+
}

src/integration-test/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/settings/SettingsServiceIT.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import static junit.framework.Assert.assertTrue;
2828

2929
/**
30-
* @author
3130
* @author Tetiana Iefimenko
3231
* */
3332
public class SettingsServiceIT {
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
/*
2+
* Copyright (C) 2005 - 2014 Jaspersoft Corporation. All rights reserved.
3+
* http://www.jaspersoft.com.
4+
*
5+
* Unless you have purchased a commercial license agreement from Jaspersoft,
6+
* the following license terms apply:
7+
*
8+
* This program is free software: you can redistribute it and/or modify
9+
* it under the terms of the GNU Affero General Public License as
10+
* published by the Free Software Foundation, either version 3 of the
11+
* License, or (at your option) any later version.
12+
*
13+
* This program is distributed in the hope that it will be useful,
14+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16+
* GNU Affero General Public License for more details.
17+
*
18+
* You should have received a copy of the GNU Affero General Public License
19+
* along with this program.&nbsp; If not, see <http://www.gnu.org/licenses/>.
20+
*/
21+
22+
package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.bundles;
23+
24+
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.AbstractAdapter;
25+
import com.jaspersoft.jasperserver.jaxrs.client.core.JerseyRequest;
26+
import com.jaspersoft.jasperserver.jaxrs.client.core.SessionStorage;
27+
import com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.handling.DefaultErrorHandler;
28+
import com.jaspersoft.jasperserver.jaxrs.client.core.operationresult.OperationResult;
29+
import java.util.Locale;
30+
import javax.ws.rs.core.MediaType;
31+
import org.codehaus.jettison.json.JSONObject;
32+
33+
34+
public class BundlesService extends AbstractAdapter {
35+
36+
private Locale locale;
37+
38+
public BundlesService(SessionStorage sessionStorage) {
39+
super(sessionStorage);
40+
this.locale = Locale.getDefault();
41+
}
42+
43+
public BundlesService forLocale(String locale) {
44+
if (locale != null) {
45+
this.locale = new Locale(locale);
46+
}
47+
return this;
48+
}
49+
50+
public OperationResult<JSONObject> allBundles() {
51+
return buildBundleRequest("/bundles").addParam("expanded", "true").get();
52+
}
53+
54+
public OperationResult<JSONObject> bundle(String name) {
55+
return buildBundleRequest("/bundles", name).get();
56+
}
57+
58+
private JerseyRequest<JSONObject> buildBundleRequest(String... path) {
59+
JerseyRequest<JSONObject> request =
60+
JerseyRequest.buildRequest(sessionStorage, JSONObject.class, path, new DefaultErrorHandler());
61+
request.setAccept(MediaType.APPLICATION_JSON).addHeader("Accept-Language", locale.toString().replace('_', '-'));
62+
return request;
63+
}
64+
65+
66+
67+
}

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/core/AnonymousSession.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.jaspersoft.jasperserver.jaxrs.client.core;
22

33
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.AbstractAdapter;
4+
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.bundles.BundlesService;
45
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.serverInfo.ServerInfoService;
56
import com.jaspersoft.jasperserver.jaxrs.client.apiadapters.settings.SettingsService;
67

@@ -34,4 +35,6 @@ public ServerInfoService serverInfoService() {
3435
public SettingsService settingsService() {
3536
return getService(SettingsService.class);
3637
}
38+
39+
public BundlesService bundlesService() {return getService(BundlesService.class);}
3740
}

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/core/JRSVersion.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,6 @@ public enum JRSVersion implements Comparable<JRSVersion> {
3131
v5_5_0,
3232
v5_6_1,
3333
v6_0_0,
34-
v6_0_1
34+
v6_0_1,
35+
v6_1_0;
3536
}

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/core/JerseyRequest.java

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,6 @@
4343
import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
4444
import static javax.ws.rs.core.MediaType.APPLICATION_XML;
4545

46-
/**
47-
* @author
48-
* @author Tetiana Iefimenko
49-
* */
5046
public class JerseyRequest<ResponseType> implements RequestBuilder<ResponseType> {
5147
private static final int GET = 0;
5248
private static final int DELETE = 1;
@@ -247,35 +243,4 @@ public RequestBuilder<ResponseType> setHeaders(MultivaluedMap<String, String> he
247243
return this;
248244
}
249245

250-
251-
/**
252-
* getters/setters block
253-
*/
254-
protected OperationResultFactory getOperationResultFactory() {
255-
return operationResultFactory;
256-
}
257-
258-
protected Class<ResponseType> getResponseClass() {
259-
return responseClass;
260-
}
261-
262-
protected ErrorHandler getErrorHandler() {
263-
return errorHandler;
264-
}
265-
266-
protected MultivaluedMap<String, String> getHeaders() {
267-
return headers;
268-
}
269-
270-
protected WebTarget getUsersWebTarget() {
271-
return usersWebTarget;
272-
}
273-
274-
protected String getContentType() {
275-
return contentType;
276-
}
277-
278-
protected String getAcceptType() {
279-
return acceptType;
280-
}
281246
}

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/core/Session.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,7 @@
3737
import javax.ws.rs.client.WebTarget;
3838
import javax.ws.rs.core.Response;
3939

40-
/**
41-
* @author
42-
* @author Tetiana Iefimenko
43-
* */
40+
4441
public class Session extends AnonymousSession{
4542

4643
public Session(SessionStorage sessionStorage) {

0 commit comments

Comments
 (0)