You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by jm...@apache.org on 2003/01/16 07:24:06 UTC
cvs commit: xml-axis/proposals/jabber/src TestClient.java Test.java
jmsnell 2003/01/15 22:24:06
Modified: proposals/jabber/src/com/snellspace/axis/jabber
JabberSender.java JabberConnection.java
JabberServer.java
proposals/jabber/src TestClient.java Test.java
Log:
Fixing a bug in Jabber message serialization
Revision Changes Path
1.2 +24 -24 xml-axis/proposals/jabber/src/com/snellspace/axis/jabber/JabberSender.java
Index: JabberSender.java
===================================================================
RCS file: /home/cvs/xml-axis/proposals/jabber/src/com/snellspace/axis/jabber/JabberSender.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JabberSender.java 31 Dec 2002 20:38:34 -0000 1.1
+++ JabberSender.java 16 Jan 2003 06:24:05 -0000 1.2
@@ -23,23 +23,29 @@
* @author James M Snell <ja...@us.ibm.com>
*/
public class JabberSender
- extends BasicHandler {
+ extends BasicHandler
+ implements JabberHandler {
+
+ private Packet packet = null;
public void invoke(
MessageContext context)
throws AxisFault {
JabberConnection connection =
initializeConnection(context);
- Holder holder = new Holder();
Packet request =
createRequestPacketFromMessage(
context.getRequestMessage(),
context);
- connection.send(request, holder);
+ connection.send(request, this);
try {
- holder.waitForPacket();
+ synchronized(this) {
+ while (packet == null) {
+ wait(1000);
+ }
+ }
} catch (InterruptedException e) {}
- Packet response = holder.getPacket();
+ Packet response = packet;
context.setResponseMessage(
createResponseMessageFromPacket(
response,
@@ -92,7 +98,11 @@
DefaultExtension ext = (DefaultExtension)e.nextElement();
StringBuffer buf = new StringBuffer(ext.toString());
if (buf.indexOf(Constants.URI_DEFAULT_SOAP_ENV) > 0) {
- message = new Message(ext.toString());
+ String envbuf =
+ buf.substring(
+ buf.indexOf(">") + 1,
+ buf.indexOf("</soap>"));
+ message = new Message(envbuf);
} else {
// ignore non soap stuff for now
}
@@ -101,24 +111,6 @@
return message;
}
- private class Holder
- implements JabberHandler {
- private Packet packet;
- public Packet getPacket() {
- return this.packet;
- }
- public synchronized void waitForPacket()
- throws InterruptedException {
- if (packet != null) return;
- wait();
- }
- public synchronized void receivedPacket(
- Packet packet) {
- this.packet = packet;
- notifyAll();
- }
- }
-
public static class AxisExtension
extends XMLData
implements MessageExtension, QueryExtension {
@@ -136,8 +128,16 @@
String env =
message.getSOAPPart().
getEnvelope().toString();
+
+ buffer.append("<soap xmlns=\"jabber:iq:soap\">");
buffer.append(env);
+ buffer.append("</soap>");
} catch (SOAPException e) {}
}
+ }
+
+ public synchronized void receivedPacket(Packet packet) {
+ this.packet = packet;
+ notifyAll();
}
}
1.2 +6 -1 xml-axis/proposals/jabber/src/com/snellspace/axis/jabber/JabberConnection.java
Index: JabberConnection.java
===================================================================
RCS file: /home/cvs/xml-axis/proposals/jabber/src/com/snellspace/axis/jabber/JabberConnection.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JabberConnection.java 31 Dec 2002 20:38:34 -0000 1.1
+++ JabberConnection.java 16 Jan 2003 06:24:05 -0000 1.2
@@ -24,6 +24,8 @@
public class JabberConnection
implements ConnectionListener, PacketListener {
+ public static boolean DEBUG = false;
+
protected ConnectionBean cb;
protected String loginid;
protected boolean connected;
@@ -91,6 +93,9 @@
public void receivedPacket(
PacketEvent event) {
Packet packet = event.getPacket();
+ if (DEBUG) {
+ System.out.println("receivedPacket >>" + packet);
+ }
if (!connected) {
if (processLogin(packet)) {
connected = true;
@@ -103,7 +108,7 @@
}
protected void processPacket(
- Packet packet) {
+ Packet packet) {
try {
ContentPacket cp = (ContentPacket)packet;
JabberHandler handler =
1.2 +11 -5 xml-axis/proposals/jabber/src/com/snellspace/axis/jabber/JabberServer.java
Index: JabberServer.java
===================================================================
RCS file: /home/cvs/xml-axis/proposals/jabber/src/com/snellspace/axis/jabber/JabberServer.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JabberServer.java 31 Dec 2002 20:38:34 -0000 1.1
+++ JabberServer.java 16 Jan 2003 06:24:05 -0000 1.2
@@ -74,10 +74,16 @@
JID from = iq.getFromAddress();
JID to = iq.getToAddress();
String id = iq.getIdentifier();
- Message soapMessage = new Message(buffer.toString());
+ String envbuf =
+ buffer.substring(
+ buffer.indexOf(">") + 1,
+ buffer.indexOf("</soap>"));
+ Message soapMessage = new Message(envbuf);
try {
processMessage(from,to,id,soapMessage);
- } catch (AxisFault ex) {}
+ } catch (AxisFault ex) {
+ System.out.println(ex);
+ }
} else {
// ignore for now
}
@@ -101,7 +107,6 @@
String id,
Message soapMessage)
throws AxisFault {
-
AxisEngine engine = JabberServer.getAxisEngine();
MessageContext context =
new MessageContext(engine);
@@ -124,9 +129,10 @@
iqb.addExtension(
new JabberSender.AxisExtension(
response));
-
try {
send(iqb.build());
- } catch (InstantiationException e) {}
+ } catch (InstantiationException e) {
+ System.out.println(e);
+ }
}
}
1.2 +5 -3 xml-axis/proposals/jabber/src/TestClient.java
Index: TestClient.java
===================================================================
RCS file: /home/cvs/xml-axis/proposals/jabber/src/TestClient.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TestClient.java 31 Dec 2002 20:38:34 -0000 1.1
+++ TestClient.java 16 Jan 2003 06:24:06 -0000 1.2
@@ -6,6 +6,7 @@
import org.apache.axis.client.Service;
import org.apache.axis.configuration.XMLStringProvider;
+import com.snellspace.axis.jabber.JabberConnection;
import com.snellspace.axis.jabber.JabberTransport;
/**
@@ -22,15 +23,15 @@
private static void client() throws Exception {
JabberTransport transport = new JabberTransport();
- transport.setTo("<someid>@jabber.org/service1");
+ transport.setTo("JamesMSnell@jabber.org/service1");
Service service = new Service(new XMLStringProvider(dep));
Call call = (Call)service.createCall();
call.setOperationName(new QName("urn:test", "echo"));
call.addParameter("a", XMLType.XSD_STRING, ParameterMode.IN);
call.setReturnType(XMLType.XSD_STRING);
call.setTransport(transport);
- call.setUsername("<someid>2@jabber.org/service2");
- call.setPassword("<somepassword>");
+ call.setUsername("JamesMSnell2@jabber.org/service2");
+ call.setPassword("knight12");
String s = (String)call.invoke(new String[] {"test"});
System.out.println(s);
}
@@ -38,6 +39,7 @@
public static void main(
String[] args)
throws Exception {
+ //JabberConnection.DEBUG = true;
client();
}
}
1.2 +5 -4 xml-axis/proposals/jabber/src/Test.java
Index: Test.java
===================================================================
RCS file: /home/cvs/xml-axis/proposals/jabber/src/Test.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Test.java 31 Dec 2002 20:38:34 -0000 1.1
+++ Test.java 16 Jan 2003 06:24:06 -0000 1.2
@@ -37,6 +37,7 @@
"</undeployment>";
public static void main(String[] args) throws Exception {
+ JabberConnection.DEBUG = true;
deploy();
JabberServer service1 = server();
client();
@@ -47,7 +48,7 @@
public static JabberServer server() {
return
new JabberServer(
- "<someid>@jabber.org/service1", "knight12");
+ "JamesMSnell@jabber.org/service1", "knight12");
}
public static void deploy()
@@ -77,7 +78,7 @@
private static void client() throws Exception {
JabberTransport transport = new JabberTransport();
- transport.setTo("<someid>@jabber.org/service1");
+ transport.setTo("JamesMSnell@jabber.org/service1");
Service service = new Service(new XMLStringProvider(dep));
Call call = (Call)service.createCall();
@@ -86,8 +87,8 @@
call.setReturnType(XMLType.XSD_STRING);
//call.setReturnQName(new QName("arg", "urn:test"));
call.setTransport(transport);
- call.setUsername("<someid>2@jabber.org/service2");
- call.setPassword("<somepassword>");
+ call.setUsername("JamesMSnell2@jabber.org/service2");
+ call.setPassword("knight12");
String s = (String)call.invoke(new String[] {"test"});
System.out.println(s);