Author: bago
Date: Sat Aug 20 17:51:57 2005
New Revision: 234137

URL: http://svn.apache.org/viewcvs?rev=234137&view=rev
Log:
Reduced the visibility of the SMTPServer from UserStore to the 
LocalUsersRepository (a new block) (part of JAMES-412)

Added:
    
james/server/trunk/src/java/org/apache/james/smtpserver/LocalUsersRepository.java
    
james/server/trunk/src/java/org/apache/james/smtpserver/LocalUsersRepository.xinfo
Modified:
    james/server/trunk/src/conf/james-assembly.xml
    james/server/trunk/src/java/org/apache/james/smtpserver/SMTPServer.java
    james/server/trunk/src/java/org/apache/james/smtpserver/SMTPServer.xinfo

Modified: james/server/trunk/src/conf/james-assembly.xml
URL: 
http://svn.apache.org/viewcvs/james/server/trunk/src/conf/james-assembly.xml?rev=234137&r1=234136&r2=234137&view=diff
==============================================================================
--- james/server/trunk/src/conf/james-assembly.xml (original)
+++ james/server/trunk/src/conf/james-assembly.xml Sat Aug 20 17:51:57 2005
@@ -79,7 +79,7 @@
   <!-- SMTP Server -->
   <block name="smtpserver" class="org.apache.james.smtpserver.SMTPServer" >
     <provide name="James" role="org.apache.mailet.MailetContext"/>
-    <provide name="users-store" role="org.apache.james.services.UsersStore"/>
+    <provide name="localusersrepository" 
role="org.apache.james.services.UsersRepository"/>
     <provide name="sockets"
              
role="org.apache.avalon.cornerstone.services.sockets.SocketManager"/>
     <provide name="connections"
@@ -136,7 +136,12 @@
              
role="org.apache.avalon.cornerstone.services.datasources.DataSourceSelector" />
   </block>
 
-
+  <!-- This is needed to link the smtpserver to the local user repository -->
+  <block name="localusersrepository" 
class="org.apache.james.smtpserver.LocalUsersRepository">
+    <provide name="users-store"
+             role="org.apache.james.services.UsersStore"/>
+  </block>
+  
   <!-- Configuration for Cornerstone Blocks only after here
        NOTHING BELOW THIS SHOULD NEED CHANGING,
        (unless you want secure sockets (TLS)) -->

Added: 
james/server/trunk/src/java/org/apache/james/smtpserver/LocalUsersRepository.java
URL: 
http://svn.apache.org/viewcvs/james/server/trunk/src/java/org/apache/james/smtpserver/LocalUsersRepository.java?rev=234137&view=auto
==============================================================================
--- 
james/server/trunk/src/java/org/apache/james/smtpserver/LocalUsersRepository.java
 (added)
+++ 
james/server/trunk/src/java/org/apache/james/smtpserver/LocalUsersRepository.java
 Sat Aug 20 17:51:57 2005
@@ -0,0 +1,103 @@
+/***********************************************************************
+ * Copyright (c) 1999-2005 The Apache Software Foundation.             *
+ * All rights reserved.                                                *
+ * ------------------------------------------------------------------- *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you *
+ * may not use this file except in compliance with the License. You    *
+ * may obtain a copy of the License at:                                *
+ *                                                                     *
+ *     http://www.apache.org/licenses/LICENSE-2.0                      *
+ *                                                                     *
+ * Unless required by applicable law or agreed to in writing, software *
+ * distributed under the License is distributed on an "AS IS" BASIS,   *
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or     *
+ * implied.  See the License for the specific language governing       *
+ * permissions and limitations under the License.                      *
+ ***********************************************************************/
+
+package org.apache.james.smtpserver;
+
+import org.apache.avalon.framework.activity.Initializable;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.avalon.framework.service.Serviceable;
+import org.apache.james.services.User;
+import org.apache.james.services.UsersRepository;
+import org.apache.james.services.UsersStore;
+
+import java.util.Iterator;
+
+public class LocalUsersRepository implements UsersRepository, Serviceable, 
Initializable {
+
+    private UsersStore usersStore;
+    private UsersRepository users;
+
+    public void service(ServiceManager serviceManager) throws ServiceException 
{
+        usersStore =
+           (UsersStore) 
serviceManager.lookup("org.apache.james.services.UsersStore");
+    }
+
+    public void initialize() throws Exception {
+        users = usersStore.getRepository("LocalUsers");
+        if (users == null) {
+            throw new ServiceException("","The user repository could not be 
found.");
+        }
+    }
+
+    public boolean addUser(User user) {
+        return users.addUser(user);
+    }
+
+    public void addUser(String name, Object attributes) {
+        users.addUser(name,attributes);
+    }
+
+    public Object getAttributes(String name) {
+        return users.getAttributes(name);
+    }
+
+    public User getUserByName(String name) {
+        return users.getUserByName(name);
+    }
+
+    public User getUserByNameCaseInsensitive(String name) {
+        return users.getUserByNameCaseInsensitive(name);
+    }
+
+    public String getRealName(String name) {
+        return users.getRealName(name);
+    }
+
+    public boolean updateUser(User user) {
+        return users.updateUser(user);
+    }
+
+    public void removeUser(String name) {
+        users.removeUser(name);
+    }
+
+    public boolean contains(String name) {
+        return users.contains(name);
+    }
+
+    public boolean containsCaseInsensitive(String name) {
+        return users.containsCaseInsensitive(name);
+    }
+
+    public boolean test(String name, Object attributes) {
+        return users.test(name,attributes);
+    }
+
+    public boolean test(String name, String password) {
+        return users.test(name,password);
+    }
+
+    public int countUsers() {
+        return users.countUsers();
+    }
+
+    public Iterator list() {
+        return users.list();
+    }
+
+}

Added: 
james/server/trunk/src/java/org/apache/james/smtpserver/LocalUsersRepository.xinfo
URL: 
http://svn.apache.org/viewcvs/james/server/trunk/src/java/org/apache/james/smtpserver/LocalUsersRepository.xinfo?rev=234137&view=auto
==============================================================================
--- 
james/server/trunk/src/java/org/apache/james/smtpserver/LocalUsersRepository.xinfo
 (added)
+++ 
james/server/trunk/src/java/org/apache/james/smtpserver/LocalUsersRepository.xinfo
 Sat Aug 20 17:51:57 2005
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+
+<blockinfo>
+
+  <!-- section to describe block -->
+  <block>
+    <version>1.0</version>
+  </block>
+
+  <!-- services that are offered by this block -->
+  <services>
+    <service name="org.apache.james.services.UsersRepository" version="1.0" />
+  </services>
+
+  <dependencies>
+    <dependency>
+      <service name="org.apache.james.services.UsersStore" version="1.0"/>
+    </dependency>
+  </dependencies>
+</blockinfo>

Modified: 
james/server/trunk/src/java/org/apache/james/smtpserver/SMTPServer.java
URL: 
http://svn.apache.org/viewcvs/james/server/trunk/src/java/org/apache/james/smtpserver/SMTPServer.java?rev=234137&r1=234136&r2=234137&view=diff
==============================================================================
--- james/server/trunk/src/java/org/apache/james/smtpserver/SMTPServer.java 
(original)
+++ james/server/trunk/src/java/org/apache/james/smtpserver/SMTPServer.java Sat 
Aug 20 17:51:57 2005
@@ -34,7 +34,6 @@
 import org.apache.james.core.AbstractJamesService;
 import org.apache.james.services.MailServer;
 import org.apache.james.services.UsersRepository;
-import org.apache.james.services.UsersStore;
 import org.apache.james.util.NetMatcher;
 import org.apache.james.util.watchdog.Watchdog;
 import org.apache.james.util.watchdog.WatchdogFactory;
@@ -140,12 +139,7 @@
         super.service( manager );
         mailetcontext = (MailetContext) 
manager.lookup("org.apache.mailet.MailetContext");
         mailServer = (MailServer) 
manager.lookup("org.apache.james.services.MailServer");
-        UsersStore usersStore =
-            (UsersStore) 
manager.lookup("org.apache.james.services.UsersStore");
-        users = usersStore.getRepository("LocalUsers");
-        if (users == null) {
-            throw new ServiceException("","The user repository could not be 
found.");
-        }
+        users = (UsersRepository) 
manager.lookup("org.apache.james.services.UsersRepository");
     }
 
     /**

Modified: 
james/server/trunk/src/java/org/apache/james/smtpserver/SMTPServer.xinfo
URL: 
http://svn.apache.org/viewcvs/james/server/trunk/src/java/org/apache/james/smtpserver/SMTPServer.xinfo?rev=234137&r1=234136&r2=234137&view=diff
==============================================================================
--- james/server/trunk/src/java/org/apache/james/smtpserver/SMTPServer.xinfo 
(original)
+++ james/server/trunk/src/java/org/apache/james/smtpserver/SMTPServer.xinfo 
Sat Aug 20 17:51:57 2005
@@ -17,7 +17,7 @@
       <service name="org.apache.mailet.MailetContext" version="1.0"/>
     </dependency>
     <dependency>
-      <service name="org.apache.james.services.UsersStore" version="1.0"/>
+      <service name="org.apache.james.services.UsersRepository" version="1.0"/>
     </dependency>
     <dependency>
       <service name="org.apache.james.services.JamesConnectionManager" 
version="1.0"/>



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

Reply via email to