Author: markt
Date: Wed May  6 10:22:02 2009
New Revision: 772132

URL: http://svn.apache.org/viewvc?rev=772132&view=rev
Log:
Start process of removing o.a.c.ServerFactory. Need to do this so:
a) The current o.a.c.startup.Tomcat tests pass
b) We can start to use o.a.c.startup.Tomcat for some new unit tests
This removes ServerFactory from the Realms

Modified:
    tomcat/trunk/java/org/apache/catalina/realm/DataSourceRealm.java
    tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java
    tomcat/trunk/java/org/apache/catalina/realm/UserDatabaseRealm.java

Modified: tomcat/trunk/java/org/apache/catalina/realm/DataSourceRealm.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/realm/DataSourceRealm.java?rev=772132&r1=772131&r2=772132&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/realm/DataSourceRealm.java (original)
+++ tomcat/trunk/java/org/apache/catalina/realm/DataSourceRealm.java Wed May  6 
10:22:02 2009
@@ -31,7 +31,6 @@
 
 import org.apache.naming.ContextBindings;
 import org.apache.catalina.LifecycleException;
-import org.apache.catalina.ServerFactory;
 import org.apache.catalina.core.StandardServer;
 import org.apache.catalina.util.StringManager;
 
@@ -396,9 +395,8 @@
                 context = ContextBindings.getClassLoader();
                 context = (Context) context.lookup("comp/env");
             } else {
-                StandardServer server = 
-                    (StandardServer) ServerFactory.getServer();
-                context = server.getGlobalNamingContext();
+                context =
+                    ((StandardServer)getServer()).getGlobalNamingContext();
             }
             DataSource dataSource = (DataSource)context.lookup(dataSourceName);
            return dataSource.getConnection();

Modified: tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java?rev=772132&r1=772131&r2=772132&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java (original)
+++ tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java Wed May  6 
10:22:02 2009
@@ -37,11 +37,15 @@
 
 import org.apache.catalina.Container;
 import org.apache.catalina.Context;
+import org.apache.catalina.Engine;
 import org.apache.catalina.Globals;
+import org.apache.catalina.Host;
 import org.apache.catalina.Lifecycle;
 import org.apache.catalina.LifecycleException;
 import org.apache.catalina.LifecycleListener;
 import org.apache.catalina.Realm;
+import org.apache.catalina.Server;
+import org.apache.catalina.Service;
 import org.apache.catalina.connector.Request;
 import org.apache.catalina.connector.Response;
 import org.apache.catalina.core.ContainerBase;
@@ -1219,6 +1223,30 @@
     protected abstract Principal getPrincipal(String username);
 
 
+    /**
+     * Return the Server object that is the ultimate parent for the container
+     * with which this Realm is associated. If the server cannot be found (eg
+     * because the container hierarchy is not complete), <code>null</code> is
+     * returned.
+     */
+    protected Server getServer() {
+        Container c = container;
+        if (c instanceof Context) {
+            c = c.getParent();
+        }
+        if (c instanceof Host) {
+            c = c.getParent();
+        }
+        if (c instanceof Engine) {
+            Service s = ((Engine)c).getService();
+            if (s != null) {
+                return s.getServer();
+            }
+        }
+        return null;
+    }
+
+    
     // --------------------------------------------------------- Static Methods
 
 

Modified: tomcat/trunk/java/org/apache/catalina/realm/UserDatabaseRealm.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/realm/UserDatabaseRealm.java?rev=772132&r1=772131&r2=772132&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/realm/UserDatabaseRealm.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/realm/UserDatabaseRealm.java Wed May  
6 10:22:02 2009
@@ -29,7 +29,6 @@
 import org.apache.catalina.Group;
 import org.apache.catalina.LifecycleException;
 import org.apache.catalina.Role;
-import org.apache.catalina.ServerFactory;
 import org.apache.catalina.User;
 import org.apache.catalina.UserDatabase;
 import org.apache.catalina.core.StandardServer;
@@ -248,8 +247,8 @@
         super.start();
 
         try {
-            StandardServer server = (StandardServer) ServerFactory.getServer();
-            Context context = server.getGlobalNamingContext();
+            Context context =
+                ((StandardServer)getServer()).getGlobalNamingContext();
             database = (UserDatabase) context.lookup(resourceName);
         } catch (Throwable e) {
             containerLog.error(sm.getString("userDatabaseRealm.lookup",



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to