Author: berndf
Date: Mon Aug 24 13:43:22 2009
New Revision: 807212
URL: http://svn.apache.org/viewvc?rev=807212&view=rev
Log:
VYSPER-176: prepare routing inbound stanzas to a component
Modified:
mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInboundStanzaRelay.java
mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java
mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringStanzaRelayTestCase.java
Modified:
mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInboundStanzaRelay.java
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInboundStanzaRelay.java?rev=807212&r1=807211&r2=807212&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInboundStanzaRelay.java
(original)
+++
mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInboundStanzaRelay.java
Mon Aug 24 13:43:22 2009
@@ -21,6 +21,7 @@
import org.apache.vysper.storage.StorageProviderRegistry;
import org.apache.vysper.xmpp.addressing.Entity;
+import org.apache.vysper.xmpp.addressing.EntityImpl;
import org.apache.vysper.xmpp.authorization.AccountManagement;
import org.apache.vysper.xmpp.protocol.SessionStateHolder;
import org.apache.vysper.xmpp.protocol.StanzaHandler;
@@ -75,12 +76,14 @@
protected ExecutorService executor;
protected AccountManagement accountVerification;
protected OfflineStanzaReceiver offlineStanzaReceiver = null;
+ protected Entity serverEntity;
- public DeliveringInboundStanzaRelay(ResourceRegistry resourceRegistry,
StorageProviderRegistry storageProviderRegistry) {
- this(resourceRegistry,
(AccountManagement)storageProviderRegistry.retrieve(AccountManagement.class));
+ public DeliveringInboundStanzaRelay(Entity serverEntity, ResourceRegistry
resourceRegistry, StorageProviderRegistry storageProviderRegistry) {
+ this(serverEntity, resourceRegistry,
(AccountManagement)storageProviderRegistry.retrieve(AccountManagement.class));
}
- public DeliveringInboundStanzaRelay(ResourceRegistry resourceRegistry,
AccountManagement accountVerification) {
+ public DeliveringInboundStanzaRelay(Entity serverEntity, ResourceRegistry
resourceRegistry, AccountManagement accountManagement) {
+ this.serverEntity = serverEntity;
this.resourceRegistry = resourceRegistry;
this.accountVerification = accountVerification;
int coreThreadCount = 10;
@@ -143,6 +146,19 @@
@SpecCompliant(spec="draft-ietf-xmpp-3921bis-00", section="8.",
status= SpecCompliant.ComplianceStatus.IN_PROGRESS, coverage =
SpecCompliant.ComplianceCoverage.COMPLETE)
protected RelayResult deliver() {
try {
+ String receiverDomain = receiver.getDomain();
+ if (receiverDomain != null &&
!receiverDomain.equals(serverEntity.getDomain())) {
+ if (!receiverDomain.endsWith("." +
serverEntity.getDomain())) {
+ return new RelayResult(new
ServiceNotAvailableException("unsupported domain " + receiverDomain));
+ }
+
+ // TODO get components runtime context
+
+ // pass through to component all stanzas like
component.vysper.org for server domain vysper.org
+ // TODO INBOUND_STANZA_PROTOCOL_WORKER.processStanza(null,
sessionStateHolder, stanza, stanzaHandler);
+ throw new RuntimeException("component delivery not
implemented");
+ }
+
if (receiver.isResourceSet()) {
return deliverToFullJID();
} else {
Modified:
mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java?rev=807212&r1=807211&r2=807212&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java
(original)
+++
mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java
Mon Aug 24 13:43:22 2009
@@ -99,8 +99,10 @@
ResourceRegistry resourceRegistry = new ResourceRegistry();
+ EntityImpl serverEntity = new EntityImpl(null, serverDomain, null);
+
AccountManagement accountManagement = (AccountManagement)
storageProviderRegistry.retrieve(AccountManagement.class);
- DeliveringInboundStanzaRelay internalStanzaRelay = new
DeliveringInboundStanzaRelay(resourceRegistry, accountManagement);
+ DeliveringInboundStanzaRelay internalStanzaRelay = new
DeliveringInboundStanzaRelay(serverEntity, resourceRegistry, accountManagement);
RecordingStanzaRelay externalStanzaRelay = new RecordingStanzaRelay();
StanzaRelayBroker stanzaRelayBroker = new StanzaRelayBroker();
@@ -110,8 +112,6 @@
ServerFeatures serverFeatures = new ServerFeatures();
serverFeatures.setAuthenticationMethods(saslMechanisms);
- EntityImpl serverEntity = new EntityImpl(null, serverDomain, null);
-
serverRuntimeContext = new DefaultServerRuntimeContext(serverEntity,
stanzaRelayBroker, serverFeatures, dictionaries, resourceRegistry);
serverRuntimeContext.setStorageProviderRegistry(storageProviderRegistry);
serverRuntimeContext.setTlsContextFactory(tlsContextFactory);
Modified:
mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringStanzaRelayTestCase.java
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringStanzaRelayTestCase.java?rev=807212&r1=807211&r2=807212&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringStanzaRelayTestCase.java
(original)
+++
mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringStanzaRelayTestCase.java
Mon Aug 24 13:43:22 2009
@@ -57,8 +57,8 @@
protected void setUp() throws Exception {
super.setUp();
- accountVerification = new AccountVerificationMock();
- stanzaRelay = new DeliveringInboundStanzaRelay(resourceRegistry,
accountVerification);
+ accountVerification = new AccountVerificationMock();
+ stanzaRelay = new
DeliveringInboundStanzaRelay(EntityImpl.parse("vysper.org"), resourceRegistry,
accountVerification);
}
public void testSimpleRelay() throws EntityFormatException,
XMLSemanticError, DeliveryException {