Author: berndf
Date: Sun Aug  5 12:44:25 2007
New Revision: 562943

URL: http://svn.apache.org/viewvc?view=rev&rev=562943
Log:
missing from last commit: configuration interception example

Added:
    
james/server/sandbox/spring-integration/spring-deployment/src/main/java/org/apache/james/container/spring/examples/configuration/
    
james/server/sandbox/spring-integration/spring-deployment/src/main/java/org/apache/james/container/spring/examples/configuration/UnprivilegedPortConfigurationInterceptor.java

Added: 
james/server/sandbox/spring-integration/spring-deployment/src/main/java/org/apache/james/container/spring/examples/configuration/UnprivilegedPortConfigurationInterceptor.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/spring-integration/spring-deployment/src/main/java/org/apache/james/container/spring/examples/configuration/UnprivilegedPortConfigurationInterceptor.java?view=auto&rev=562943
==============================================================================
--- 
james/server/sandbox/spring-integration/spring-deployment/src/main/java/org/apache/james/container/spring/examples/configuration/UnprivilegedPortConfigurationInterceptor.java
 (added)
+++ 
james/server/sandbox/spring-integration/spring-deployment/src/main/java/org/apache/james/container/spring/examples/configuration/UnprivilegedPortConfigurationInterceptor.java
 Sun Aug  5 12:44:25 2007
@@ -0,0 +1,36 @@
+package org.apache.james.container.spring.examples.configuration;
+
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.MutableConfiguration;
+import 
org.apache.james.container.spring.configuration.ConfigurationInterceptor;
+
+/**
+ * re-maps all privileged ports into the 9000's range
+ */
+public class UnprivilegedPortConfigurationInterceptor implements 
ConfigurationInterceptor {
+    
+    public Configuration intercept(Configuration configuration) {
+        interceptInternal(configuration);
+        return configuration;
+    }
+
+    private void interceptInternal(Configuration configuration) {
+        String name = configuration.getName();
+        if ("port".equals(name) && configuration instanceof 
MutableConfiguration) {
+            MutableConfiguration mutableConfiguration = (MutableConfiguration) 
configuration;
+            int port = configuration.getValueAsInteger(0);
+            if (port > 0 && port < 1024) {
+                // map privileged port to unprivileged in the 9000's range
+                port += 9000;
+            }
+            mutableConfiguration.setValue(port);
+        }
+
+        // go deep.
+        Configuration[] children = configuration.getChildren();
+        for (int i = 0; i < children.length; i++) {
+            Configuration childConfiguration = children[i];
+            interceptInternal(childConfiguration);
+        }
+    }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to