[Yanel-commits] rev 27582 - public/yanel/contributions/resources/redirect/src/java/org/wyona/yanel/impl/resources

michi at wyona.com michi at wyona.com
Mon Sep 24 14:10:08 CEST 2007


Author: michi
Date: 2007-09-24 14:10:07 +0200 (Mon, 24 Sep 2007)
New Revision: 27582

Modified:
   public/yanel/contributions/resources/redirect/src/java/org/wyona/yanel/impl/resources/RedirectResource.java
Log:
also check on localization

Modified: public/yanel/contributions/resources/redirect/src/java/org/wyona/yanel/impl/resources/RedirectResource.java
===================================================================
--- public/yanel/contributions/resources/redirect/src/java/org/wyona/yanel/impl/resources/RedirectResource.java	2007-09-24 10:50:27 UTC (rev 27581)
+++ public/yanel/contributions/resources/redirect/src/java/org/wyona/yanel/impl/resources/RedirectResource.java	2007-09-24 12:10:07 UTC (rev 27582)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2006 Wyona
+ * Copyright 2007 Wyona
  *
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -88,27 +88,45 @@
 
         if (defaultHref == null) throw new Exception("No default redirect has been set!");
 
+        // Default
         response.setStatus(307);
         response.setHeader("Location", defaultHref);
+
+        ResourceConfiguration rc = getConfiguration();
+        Document customConfigDoc = rc.getCustomConfiguration();
+        if (customConfigDoc != null) {
+            Configuration config = ConfigurationUtil.toConfiguration(customConfigDoc.getDocumentElement());
+
+            // Localization
+            Configuration[] languageRedirectConfigs = config.getChildren("language");
+            String localizationLanguage = getRequestedLanguage();
+            log.error("DEBUG: Localization: " + localizationLanguage);
+            for (int i = 0; i < languageRedirectConfigs.length; i++) {
+                try {
+                    if (languageRedirectConfigs[i].getAttribute("code").equals(localizationLanguage)) {
+                        response.setStatus(307);
+                        response.setHeader("Location", languageRedirectConfigs[i].getAttribute("href"));
+                    }
+                } catch (Exception e) {
+                    log.error(e.getMessage(), e);
+                    throw e;
+                }
+            }
         
-        String currentUser = null;
-        Identity identity = getIdentity(getRequest());
-        if (identity != null) {
-            currentUser = identity.getUsername();
-        }
-        
-        if (currentUser != null) {
-            ResourceConfiguration rc = getConfiguration();
-            Document customConfigDoc = rc.getCustomConfiguration();
-            if (customConfigDoc != null) {
-                Configuration config = ConfigurationUtil.toConfiguration(customConfigDoc.getDocumentElement());
-                Configuration[] redirectConfigs = config.getChildren("user");
-                
-                for (int i = 0; i < redirectConfigs.length; i++) {
+
+            // Username
+            String currentUser = null;
+            Identity identity = getIdentity(getRequest());
+            if (identity != null) {
+                currentUser = identity.getUsername();
+            }
+            if (currentUser != null) {
+                Configuration[] userRedirectConfigs = config.getChildren("user");
+                for (int i = 0; i < userRedirectConfigs.length; i++) {
                     try {
-                        if (redirectConfigs[i].getAttribute("name") == currentUser || (currentUser).equals(redirectConfigs[i].getAttribute("name"))) {
+                        if (userRedirectConfigs[i].getAttribute("name") == currentUser || (currentUser).equals(userRedirectConfigs[i].getAttribute("name"))) {
                             response.setStatus(307);
-                            response.setHeader("Location", redirectConfigs[i].getAttribute("href"));
+                            response.setHeader("Location", userRedirectConfigs[i].getAttribute("href"));
                         }
                     } catch (Exception e) {
                         log.error(e.getMessage(), e);



More information about the Yanel-commits mailing list