You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ry...@apache.org on 2012/04/09 20:22:31 UTC

svn commit: r1311363 - in /lucene/dev/trunk/solr: core/src/java/org/apache/solr/servlet/LogLevelSelection.java core/src/java/org/apache/solr/servlet/RedirectServlet.java webapp/web/WEB-INF/web.xml

Author: ryan
Date: Mon Apr  9 18:22:31 2012
New Revision: 1311363

URL: http://svn.apache.org/viewvc?rev=1311363&view=rev
Log:
SOLR-3337: redirect old UI locations to new UI

Added:
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/servlet/RedirectServlet.java   (with props)
Removed:
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/servlet/LogLevelSelection.java
Modified:
    lucene/dev/trunk/solr/webapp/web/WEB-INF/web.xml

Added: lucene/dev/trunk/solr/core/src/java/org/apache/solr/servlet/RedirectServlet.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/servlet/RedirectServlet.java?rev=1311363&view=auto
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/servlet/RedirectServlet.java (added)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/servlet/RedirectServlet.java Mon Apr  9 18:22:31 2012
@@ -0,0 +1,67 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.solr.servlet;
+
+import java.io.IOException;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * A Simple redirection servlet to help us deprecate old UI elements
+ */
+public class RedirectServlet extends HttpServlet{
+  
+  static final String CONTEXT_KEY = "${context}";
+  
+  String destination;
+  int code = HttpServletResponse.SC_MOVED_PERMANENTLY;
+  
+  public void init(ServletConfig config) throws ServletException {
+    super.init(config);
+    
+    destination = config.getInitParameter("destination");
+    if(destination==null) {
+      throw new ServletException("RedirectServlet missing destination configuration");
+    }
+    if( "false".equals(config.getInitParameter("permanent") )) {
+      code = HttpServletResponse.SC_MOVED_TEMPORARILY;
+    }
+    
+    // Replace the context key
+    if(destination.startsWith(CONTEXT_KEY)) {
+      destination = config.getServletContext().getContextPath()
+          +destination.substring(CONTEXT_KEY.length());
+    }
+  }
+  
+  public void doGet(HttpServletRequest req, HttpServletResponse res)
+          throws ServletException,IOException {
+      
+    res.setStatus(code);
+    res.setHeader("Location", destination);
+  }
+
+  public void doPost(HttpServletRequest req, HttpServletResponse res)
+          throws ServletException,IOException {
+    doGet(req,res);
+  }
+}
\ No newline at end of file

Modified: lucene/dev/trunk/solr/webapp/web/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/webapp/web/WEB-INF/web.xml?rev=1311363&r1=1311362&r2=1311363&view=diff
==============================================================================
--- lucene/dev/trunk/solr/webapp/web/WEB-INF/web.xml (original)
+++ lucene/dev/trunk/solr/webapp/web/WEB-INF/web.xml Mon Apr  9 18:22:31 2012
@@ -84,11 +84,6 @@
   </filter-mapping>
 
   <servlet>
-    <servlet-name>Logging</servlet-name>
-    <servlet-class>org.apache.solr.servlet.LogLevelSelection</servlet-class>
-  </servlet>
-  
-  <servlet>
     <servlet-name>Zookeeper</servlet-name>
     <servlet-class>org.apache.solr.servlet.ZookeeperInfoServlet</servlet-class>
   </servlet>
@@ -97,13 +92,54 @@
     <servlet-name>LoadAdminUI</servlet-name>
     <servlet-class>org.apache.solr.servlet.LoadAdminUiServlet</servlet-class>
   </servlet>
-
-  <!-- Will be removed before 4.0 release! -->
+  
+  <!-- Remove in Solr 5.0 -->
+  <!-- This sends SC_MOVED_PERMANENTLY (301) for resources that changed in 4.0 -->
+  <servlet>
+    <servlet-name>RedirectOldAdminUI</servlet-name>
+    <servlet-class>org.apache.solr.servlet.RedirectServlet</servlet-class>
+    <init-param>
+      <param-name>destination</param-name>
+      <param-value>${context}/#/</param-value>
+    </init-param>
+  </servlet>
+  
+  <servlet>
+    <servlet-name>RedirectOldZookeeper</servlet-name>
+    <servlet-class>org.apache.solr.servlet.RedirectServlet</servlet-class>
+    <init-param>
+      <param-name>destination</param-name>
+      <param-value>${context}/zookeeper</param-value>
+    </init-param>
+  </servlet>
+  
+  <servlet>
+    <servlet-name>RedirectLogging</servlet-name>
+    <servlet-class>org.apache.solr.servlet.RedirectServlet</servlet-class>
+    <init-param>
+      <param-name>destination</param-name>
+      <param-value>${context}/#/~logging</param-value>
+    </init-param>
+  </servlet>
+  
+  <servlet-mapping>
+    <servlet-name>RedirectOldAdminUI</servlet-name>
+    <url-pattern>/admin/</url-pattern>
+  </servlet-mapping>
+  <servlet-mapping>
+    <servlet-name>RedirectOldAdminUI</servlet-name>
+    <url-pattern>/admin</url-pattern>
+  </servlet-mapping>
   <servlet-mapping>
-    <servlet-name>Logging</servlet-name>
+    <servlet-name>RedirectOldZookeeper</servlet-name>
+    <url-pattern>/zookeeper.jsp</url-pattern>
+  </servlet-mapping>
+  <servlet-mapping>
+    <servlet-name>RedirectLogging</servlet-name>
     <url-pattern>/logging</url-pattern>
   </servlet-mapping>
-  
+
+  <!-- Servlet Mapping -->
   <servlet-mapping>
     <servlet-name>Zookeeper</servlet-name>
     <url-pattern>/zookeeper</url-pattern>
@@ -113,7 +149,7 @@
     <servlet-name>LoadAdminUI</servlet-name>
     <url-pattern>/admin.html</url-pattern>
   </servlet-mapping>
-
+  
   <mime-mapping>
     <extension>.xsl</extension>
     <!-- per http://www.w3.org/TR/2006/PR-xslt20-20061121/ -->