diff --git a/pom.xml b/pom.xml
index dbfe5b9..922e943 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
ae.teletronics.ejabberd
EjabberdXMLRPCClient
- 1.0.5
+ 1.1.0
diff --git a/src/main/java/ae/teletronics/ejabberd/EjabberdXMLRPCClient.java b/src/main/java/ae/teletronics/ejabberd/EjabberdXMLRPCClient.java
index aca241c..d0585d8 100644
--- a/src/main/java/ae/teletronics/ejabberd/EjabberdXMLRPCClient.java
+++ b/src/main/java/ae/teletronics/ejabberd/EjabberdXMLRPCClient.java
@@ -2,8 +2,8 @@
import ae.teletronics.ejabberd.entity.response.BooleanXmppResponse;
import ae.teletronics.ejabberd.entity.response.GetRosterResponse;
-import ae.teletronics.ejabberd.entity.response.GetUsersResponse;
import ae.teletronics.ejabberd.entity.response.GetUserPairListResponse;
+import ae.teletronics.ejabberd.entity.response.GetUsersResponse;
import org.apache.xmlrpc.XmlRpcException;
import org.apache.xmlrpc.client.XmlRpcClient;
@@ -12,6 +12,7 @@
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.CompletionException;
import java.util.concurrent.ExecutorService;
/**
@@ -40,9 +41,7 @@ public CompletableFuture createUser(String username, String
final HashMap createUserXMLRPCResponse = executeXmlRpc("register", Arrays.asList(params));
return responseParser.parseBooleanResponse(createUserXMLRPCResponse);
} catch (XmlRpcException e) {
- final BooleanXmppResponse booleanXmppResponse = new BooleanXmppResponse();
- booleanXmppResponse.setError(e.getMessage());
- return booleanXmppResponse;
+ throw new CompletionException(e);
}
}, executorService);
@@ -58,9 +57,7 @@ public CompletableFuture deleteUser(String username, String
final HashMap deleteUserXMLRPCResponse = executeXmlRpc("unregister", Arrays.asList(params));
return responseParser.parseBooleanResponse(deleteUserXMLRPCResponse);
} catch (XmlRpcException e) {
- final BooleanXmppResponse booleanXmppResponse = new BooleanXmppResponse();
- booleanXmppResponse.setError(e.getMessage());
- return booleanXmppResponse;
+ throw new CompletionException(e);
}
}, executorService);
}
@@ -75,7 +72,7 @@ public CompletableFuture getUsers(String host){
final GetUsersResponse getUsersResponse = responseParser.parseGetUserResponse(response);
return getUsersResponse;
} catch (XmlRpcException e) {
- return new GetUsersResponse(e.getMessage());
+ throw new CompletionException(e);
}
}, executorService);
}
@@ -96,7 +93,7 @@ public CompletableFuture addRosterItem(String localuser, St
final BooleanXmppResponse booleanXmppResponse = responseParser.parseBooleanResponse(response);
return booleanXmppResponse;
} catch (XmlRpcException e) {
- return new BooleanXmppResponse(e.getMessage());
+ throw new CompletionException(e);
}
}, executorService);
}
@@ -113,7 +110,7 @@ public CompletableFuture deleteRosterItem(String localuser,
final HashMap response = executeXmlRpc("delete_rosteritem", Arrays.asList(params));
return responseParser.parseBooleanResponse(response);
} catch (XmlRpcException e) {
- return new BooleanXmppResponse(e.getMessage());
+ throw new CompletionException(e);
}
}, executorService);
}
@@ -128,7 +125,7 @@ public CompletableFuture getRoster(String user, String server
final HashMap response = executeXmlRpc("get_roster", Arrays.asList(struct));
return responseParser.parseGetRosterResponse(response);
} catch (XmlRpcException e) {
- return new GetRosterResponse(e.getMessage());
+ throw new CompletionException(e);
}
}, executorService);
}
@@ -146,7 +143,7 @@ public CompletableFuture sendChatMessage(String to, String
final HashMap response = executeXmlRpc("send_message", Arrays.asList(struct));
return responseParser.parseBooleanResponse(response);
} catch (XmlRpcException e) {
- return new BooleanXmppResponse(e.getMessage());
+ throw new CompletionException(e);
}
}, executorService);
}
@@ -162,7 +159,7 @@ public CompletableFuture sendStanza(String to, String from,
final HashMap response = executeXmlRpc("send_stanza", Arrays.asList(struct));
return responseParser.parseBooleanResponse(response);
} catch (XmlRpcException e) {
- return new BooleanXmppResponse(e.getMessage());
+ throw new CompletionException(e);
}
}, executorService);
}
@@ -181,8 +178,7 @@ public CompletableFuture processRosterItems(String acti
final HashMap response = executeXmlRpc("process_rosteritems", Arrays.asList(struct));
return responseParser.parseUserPairListResponse(response);
}catch (XmlRpcException e) {
- return new GetUserPairListResponse(e.getMessage());
-
+ throw new CompletionException(e);
}
}, executorService);
}
diff --git a/src/main/java/ae/teletronics/ejabberd/EjabberdXMLRPCClientBuilder.java b/src/main/java/ae/teletronics/ejabberd/EjabberdXMLRPCClientBuilder.java
index 62fdbd3..55bb0ed 100644
--- a/src/main/java/ae/teletronics/ejabberd/EjabberdXMLRPCClientBuilder.java
+++ b/src/main/java/ae/teletronics/ejabberd/EjabberdXMLRPCClientBuilder.java
@@ -1,6 +1,5 @@
package ae.teletronics.ejabberd;
-import ae.teletronics.ejabberd.entity.IEjabberdXMLRPCClientBuilder;
import org.apache.xmlrpc.client.XmlRpcClient;
import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
diff --git a/src/main/java/ae/teletronics/ejabberd/entity/IEjabberdXMLRPCClientBuilder.java b/src/main/java/ae/teletronics/ejabberd/IEjabberdXMLRPCClientBuilder.java
similarity index 86%
rename from src/main/java/ae/teletronics/ejabberd/entity/IEjabberdXMLRPCClientBuilder.java
rename to src/main/java/ae/teletronics/ejabberd/IEjabberdXMLRPCClientBuilder.java
index 6b4419e..473f38e 100644
--- a/src/main/java/ae/teletronics/ejabberd/entity/IEjabberdXMLRPCClientBuilder.java
+++ b/src/main/java/ae/teletronics/ejabberd/IEjabberdXMLRPCClientBuilder.java
@@ -1,6 +1,4 @@
-package ae.teletronics.ejabberd.entity;
-
-import ae.teletronics.ejabberd.IEjabberdXMLRPCClient;
+package ae.teletronics.ejabberd;
import java.net.MalformedURLException;
import java.util.concurrent.ExecutorService;
diff --git a/src/main/java/ae/teletronics/ejabberd/ResponseParser.java b/src/main/java/ae/teletronics/ejabberd/ResponseParser.java
index b8137c7..a22ccb3 100644
--- a/src/main/java/ae/teletronics/ejabberd/ResponseParser.java
+++ b/src/main/java/ae/teletronics/ejabberd/ResponseParser.java
@@ -7,7 +7,6 @@
import ae.teletronics.ejabberd.entity.response.GetRosterResponse;
import ae.teletronics.ejabberd.entity.response.GetUserPairListResponse;
import ae.teletronics.ejabberd.entity.response.GetUsersResponse;
-import org.apache.xmlrpc.XmlRpcException;
import java.util.HashMap;
@@ -16,7 +15,7 @@
*/
public class ResponseParser {
- BooleanXmppResponse parseBooleanResponse(HashMap response) throws XmlRpcException {
+ BooleanXmppResponse parseBooleanResponse(HashMap response) {
int res = (int) response.get("res");
final BooleanXmppResponse booleanXmppResponse = new BooleanXmppResponse(res);
if (!booleanXmppResponse.isSuccessFull()) {
diff --git a/src/test/java/ae/teletronics/ejabberd/EjabberdXMLRPCClientErrorResponseTest.java b/src/test/java/ae/teletronics/ejabberd/EjabberdXMLRPCClientErrorResponseTest.java
index dcb6f3f..f490631 100644
--- a/src/test/java/ae/teletronics/ejabberd/EjabberdXMLRPCClientErrorResponseTest.java
+++ b/src/test/java/ae/teletronics/ejabberd/EjabberdXMLRPCClientErrorResponseTest.java
@@ -1,17 +1,19 @@
package ae.teletronics.ejabberd;
-import ae.teletronics.ejabberd.entity.response.*;
-import org.junit.Assert;
import org.apache.xmlrpc.XmlRpcException;
import org.apache.xmlrpc.client.XmlRpcClient;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.rules.ExpectedException;
import org.mockito.Matchers;
import org.mockito.Mockito;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
+import static org.hamcrest.core.Is.isA;
+
/**
* Created by kristian on 4/7/16.
*/
@@ -22,6 +24,9 @@ public class EjabberdXMLRPCClientErrorResponseTest {
ExecutorService executorService = Executors.newSingleThreadExecutor();
final IEjabberdXMLRPCClient ejabberdXmlrpcClient = new EjabberdXMLRPCClient(executorService, xmlRpcClient);
+ @Rule
+ public final ExpectedException expectedException = ExpectedException.none();
+
@Before
public void setup() throws Exception {
Mockito.doThrow(new XmlRpcException(ERROR_MESSAGE)).when(xmlRpcClient).execute(Matchers.anyString(), Matchers.anyList());
@@ -29,42 +34,37 @@ public void setup() throws Exception {
@Test
public void testCreateUser() throws Exception {
- final BooleanXmppResponse createUserResponse = ejabberdXmlrpcClient.createUser("kristian", "test.local", "just").get();
- assertError(createUserResponse);
+ expectedException.expectCause(isA(XmlRpcException.class));
+ ejabberdXmlrpcClient.createUser("kristian", "test.local", "just").get();
}
@Test
public void testDeleteUser() throws Exception {
- final BooleanXmppResponse deleteUserResponse = ejabberdXmlrpcClient.deleteUser("kristian", "test.local").get();
- assertError(deleteUserResponse);
+ expectedException.expectCause(isA(XmlRpcException.class));
+ ejabberdXmlrpcClient.deleteUser("kristian", "test.local").get();
}
@Test
public void testGetUsers() throws Exception {
- final GetUsersResponse getUsersResponse = ejabberdXmlrpcClient.getUsers("test.local").get();
- assertError(getUsersResponse);
+ expectedException.expectCause(isA(XmlRpcException.class));
+ ejabberdXmlrpcClient.getUsers("test.local").get();
}
@Test
public void testAddRosterItem() throws Exception {
- final BooleanXmppResponse addRosterItemResponse = ejabberdXmlrpcClient.addRosterItem("kristian", "test.local", "just", "test.local", "what", "group", "subs").get();
- assertError(addRosterItemResponse);
+ expectedException.expectCause(isA(XmlRpcException.class));
+ ejabberdXmlrpcClient.addRosterItem("kristian", "test.local", "just", "test.local", "what", "group", "subs").get();
}
@Test
public void testDeleteRosterItem() throws Exception {
- final BooleanXmppResponse deleteRosterItemResponse = ejabberdXmlrpcClient.deleteRosterItem("kristian", "test.local", "just", "test.local").get();
- assertError(deleteRosterItemResponse);
+ expectedException.expectCause(isA(XmlRpcException.class));
+ ejabberdXmlrpcClient.deleteRosterItem("kristian", "test.local", "just", "test.local").get();
}
@Test
public void testGetRoster() throws Exception {
- final GetRosterResponse getRosterResponse = ejabberdXmlrpcClient.getRoster("kristian", "test.local").get();
- assertError(getRosterResponse);
- }
-
- private void assertError(ErrorResponse response) {
- Assert.assertTrue(response.hasError());
- Assert.assertEquals(ERROR_MESSAGE, response.getError());
+ expectedException.expectCause(isA(XmlRpcException.class));
+ ejabberdXmlrpcClient.getRoster("kristian", "test.local").get();
}
}
\ No newline at end of file