You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ng...@apache.org on 2011/01/04 00:06:39 UTC
svn commit: r1054817 [2/2] - in /mina/vysper/trunk: ./ server/core-inttest/
server/core-inttest/src/test/java/org/apache/vysper/xmpp/server/
server/core-inttest/src/test/java/org/apache/vysper/xmpp/server/s2s/
server/core-inttest/src/test/resources/ se...
Modified: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/stanza/StanzaBuilder.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/stanza/StanzaBuilder.java?rev=1054817&r1=1054816&r2=1054817&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/stanza/StanzaBuilder.java (original)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/stanza/StanzaBuilder.java Mon Jan 3 23:06:37 2011
@@ -29,6 +29,7 @@ import org.apache.vysper.xml.fragment.Ab
import org.apache.vysper.xml.fragment.Attribute;
import org.apache.vysper.xml.fragment.XMLElement;
import org.apache.vysper.xml.fragment.XMLFragment;
+import org.apache.vysper.xml.fragment.XMLText;
import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.addressing.EntityImpl;
import org.apache.vysper.xmpp.protocol.NamespaceURIs;
@@ -211,6 +212,44 @@ public class StanzaBuilder extends Abstr
public static Stanza createForwardStanza(Stanza original, Entity from, Entity to) {
return createForward(original, from, to).build();
}
+
+ public static Stanza rewriteNamespace(Stanza stanza, String fromNamespaceUri, String toNamespaceUri) {
+ StanzaBuilder builder = new StanzaBuilder(stanza.getName(), toNamespaceUri, stanza.getNamespacePrefix());
+ for(Attribute attribute : stanza.getAttributes()) {
+ builder.addAttribute(attribute);
+ }
+
+ for(XMLFragment fragment : stanza.getInnerFragments()) {
+ if(fragment instanceof XMLElement) {
+ rewriteNamespace((XMLElement) fragment, builder, fromNamespaceUri, toNamespaceUri);
+ } else {
+ // XMLText
+ builder.addText(((XMLText)fragment).getText());
+ }
+ }
+
+ return builder.build();
+ }
+
+ private static void rewriteNamespace(XMLElement element, StanzaBuilder builder, String fromNamespaceUri, String toNamespaceUri) {
+ if(fromNamespaceUri.equals(element.getNamespaceURI())) {
+ builder.startInnerElement(element.getName(), toNamespaceUri);
+ for(Attribute attribute : element.getAttributes()) {
+ builder.addAttribute(attribute);
+ }
+ for(XMLFragment fragment : element.getInnerFragments()) {
+ if(fragment instanceof XMLElement) {
+ rewriteNamespace((XMLElement) fragment, builder, fromNamespaceUri, toNamespaceUri);
+ } else {
+ // XMLText
+ builder.addText(((XMLText)fragment).getText());
+ }
+ }
+ builder.endInnerElement();
+ } else {
+ builder.addPreparedElement(element);
+ }
+ }
class ElementStruct {
public ElementStruct parentElement = null;
Modified: mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/stanzasession/StanzaSessionTestCase.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/stanzasession/StanzaSessionTestCase.java?rev=1054817&r1=1054816&r2=1054817&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/stanzasession/StanzaSessionTestCase.java (original)
+++ mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/stanzasession/StanzaSessionTestCase.java Mon Jan 3 23:06:37 2011
@@ -26,7 +26,7 @@ import junit.framework.TestCase;
import org.apache.vysper.xmpp.addressing.EntityImpl;
import org.apache.vysper.xmpp.delivery.StanzaRelayBroker;
-import org.apache.vysper.xmpp.protocol.NamespaceHandlerDictionary;
+import org.apache.vysper.xmpp.protocol.HandlerDictionary;
import org.apache.vysper.xmpp.server.DefaultServerRuntimeContext;
import org.apache.vysper.xmpp.server.ServerFeatures;
import org.apache.vysper.xmpp.stanza.Stanza;
@@ -44,7 +44,7 @@ public class StanzaSessionTestCase exten
protected void setUp() throws Exception {
StanzaRelayBroker relay = new StanzaRelayBroker();
- List<NamespaceHandlerDictionary> dictionaries = new ArrayList<NamespaceHandlerDictionary>();
+ List<HandlerDictionary> dictionaries = new ArrayList<HandlerDictionary>();
dictionaries.add(new org.apache.vysper.xmpp.modules.core.base.BaseStreamStanzaDictionary());
dictionaries.add(new org.apache.vysper.xmpp.modules.core.starttls.StartTLSStanzaDictionary());
dictionaries.add(new org.apache.vysper.xmpp.modules.core.sasl.SASLStanzaDictionary());
Copied: mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInteralInboundStanzaRelayTestCase.java (from r1054813, mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInteralInboundStanzaRelayTestCase.java)
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInteralInboundStanzaRelayTestCase.java?p2=mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInteralInboundStanzaRelayTestCase.java&p1=mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInteralInboundStanzaRelayTestCase.java&r1=1054813&r2=1054817&rev=1054817&view=diff
==============================================================================
--- mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInteralInboundStanzaRelayTestCase.java (original)
+++ mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInteralInboundStanzaRelayTestCase.java Mon Jan 3 23:06:37 2011
@@ -55,6 +55,10 @@ public class DeliveringInteralInboundSta
public boolean verifyAccountExists(Entity jid) {
return true;
}
+
+ public void changePassword(String username, String password) throws AccountCreationException {
+ ; // empty
+ }
}
@Override
Propchange: mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceAvailInitialOutHandlerTestCase.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan 3 23:06:37 2011
@@ -0,0 +1 @@
+/mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceAvailInitialOutHandlerTestCase.java:1050957-1054813
Propchange: mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceSubRequestOutHandlerTestCase.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan 3 23:06:37 2011
@@ -0,0 +1 @@
+/mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceSubRequestOutHandlerTestCase.java:1050957-1054813
Propchange: mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/sasl/handler/AuthHandlerPlainMechanismTestCase.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan 3 23:06:37 2011
@@ -0,0 +1 @@
+/mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/sasl/handler/AuthHandlerPlainMechanismTestCase.java:1050957-1054813
Modified: mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/server/TestSessionContext.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/server/TestSessionContext.java?rev=1054817&r1=1054816&r2=1054817&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/server/TestSessionContext.java (original)
+++ mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/server/TestSessionContext.java Mon Jan 3 23:06:37 2011
@@ -166,7 +166,7 @@ public class TestSessionContext extends
return this;
}
- public void switchToTLS() {
+ public void switchToTLS(boolean delayed, boolean clientTls) {
switchToTLSCalled = true;
}
Modified: mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/stanza/StanzaBuilderTestCase.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/stanza/StanzaBuilderTestCase.java?rev=1054817&r1=1054816&r2=1054817&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/stanza/StanzaBuilderTestCase.java (original)
+++ mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/stanza/StanzaBuilderTestCase.java Mon Jan 3 23:06:37 2011
@@ -19,16 +19,28 @@
*/
package org.apache.vysper.xmpp.stanza;
+import junit.framework.Assert;
import junit.framework.TestCase;
+import org.apache.derby.tools.sysinfo;
+import org.apache.vysper.xml.fragment.Renderer;
import org.apache.vysper.xml.fragment.XMLElement;
+import org.apache.vysper.xml.fragment.XMLSemanticError;
+import org.apache.vysper.xmpp.addressing.Entity;
+import org.apache.vysper.xmpp.addressing.EntityImpl;
+import org.apache.vysper.xmpp.protocol.NamespaceURIs;
/**
*/
public class StanzaBuilderTestCase extends TestCase {
- public void testInnerElementNamespace() {
+ private static final Entity FROM = EntityImpl.parseUnchecked("from@vysper.org");
+ private static final Entity TO = EntityImpl.parseUnchecked("to@vysper.org");
+ private static final String LANG = "en";
+ private static final String BODY = "Hello world";
+
+ public void testInnerElementNamespace() {
StanzaBuilder builder = new StanzaBuilder("iq");
builder.startInnerElement("foo", "urn:bar");
builder.endInnerElement();
@@ -41,4 +53,38 @@ public class StanzaBuilderTestCase exten
assertEquals("urn:bar", innerElm.getNamespaceURI());
}
+
+ public void testRewriteNamespace() throws XMLSemanticError {
+ Stanza stanza = StanzaBuilder.createMessageStanza(FROM, TO, LANG, BODY)
+ .startInnerElement("foo", "http://someothernamespace")
+ .startInnerElement("bar", NamespaceURIs.JABBER_CLIENT)
+ .addAttribute("inner", "attribute")
+ .addText("inner text")
+ .endInnerElement()
+ .endInnerElement()
+ .addText("some text")
+ .build();
+
+ Stanza rewritten = StanzaBuilder.rewriteNamespace(stanza, NamespaceURIs.JABBER_CLIENT, NamespaceURIs.JABBER_SERVER);
+
+ System.out.println(new Renderer(rewritten).getComplete());
+ Assert.assertEquals("message", rewritten.getName());
+ Assert.assertEquals(NamespaceURIs.JABBER_SERVER, rewritten.getNamespaceURI());
+ Assert.assertEquals(FROM, rewritten.getFrom());
+ Assert.assertEquals(TO, rewritten.getTo());
+
+ XMLElement body = rewritten.getSingleInnerElementsNamed("body", NamespaceURIs.JABBER_SERVER);
+ Assert.assertNotNull(body);
+ Assert.assertEquals(BODY, body.getInnerText().getText());
+
+ XMLElement foo = rewritten.getSingleInnerElementsNamed("foo", "http://someothernamespace");
+ Assert.assertNotNull(foo);
+
+ // wrapped elements must not be rewritten
+ XMLElement bar = foo.getSingleInnerElementsNamed("bar", NamespaceURIs.JABBER_CLIENT);
+ Assert.assertNotNull(bar);
+
+ Assert.assertEquals("attribute", bar.getAttributeValue("inner"));
+ Assert.assertEquals("inner text", bar.getInnerText().getText());
+ }
}
Modified: mina/vysper/trunk/server/core/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/test/resources/log4j.properties?rev=1054817&r1=1054816&r2=1054817&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/test/resources/log4j.properties (original)
+++ mina/vysper/trunk/server/core/src/test/resources/log4j.properties Mon Jan 3 23:06:37 2011
@@ -15,7 +15,7 @@
# specific language governing permissions and limitations
# under the License.
-log4j.rootLogger=DEBUG, C
+log4j.rootLogger=INFO, C
log4j.logger.org.apache.vysper.mina.XmppIoHandlerAdapter=WARN,C
log4j.logger.org.apache.mina.filter.executor.ExecutorFilter=WARN,C
Propchange: mina/vysper/trunk/server/extensions/xep0045-muc/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Mon Jan 3 23:06:37 2011
@@ -0,0 +1 @@
+/mina/vysper/branches/s2s/server/extensions/xep0045-muc:1050957-1054813
Modified: mina/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/TestSessionContext.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/TestSessionContext.java?rev=1054817&r1=1054816&r2=1054817&view=diff
==============================================================================
--- mina/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/TestSessionContext.java (original)
+++ mina/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/TestSessionContext.java Mon Jan 3 23:06:37 2011
@@ -170,7 +170,7 @@ public class TestSessionContext extends
return this;
}
- public void switchToTLS() {
+ public void switchToTLS(boolean delayed, boolean clientTls) {
switchToTLSCalled = true;
}
Modified: mina/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/TestSessionContext.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/TestSessionContext.java?rev=1054817&r1=1054816&r2=1054817&view=diff
==============================================================================
--- mina/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/TestSessionContext.java (original)
+++ mina/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/TestSessionContext.java Mon Jan 3 23:06:37 2011
@@ -170,7 +170,7 @@ public class TestSessionContext extends
return this;
}
- public void switchToTLS() {
+ public void switchToTLS(boolean delayed, boolean clientTls) {
switchToTLSCalled = true;
}
Modified: mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshBackedSessionContext.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshBackedSessionContext.java?rev=1054817&r1=1054816&r2=1054817&view=diff
==============================================================================
--- mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshBackedSessionContext.java (original)
+++ mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshBackedSessionContext.java Mon Jan 3 23:06:37 2011
@@ -295,7 +295,7 @@ public class BoshBackedSessionContext ex
LOGGER.info("BOSH session {} closed", getSessionId());
}
- public void switchToTLS() {
+ public void switchToTLS(boolean delayed, boolean clientTls) {
// BOSH cannot switch dynamically (because STARTTLS cannot be used with HTTP),
// SSL can be enabled/disabled in BoshEndpoint#setSSLEnabled()
}