[Yanel-commits] rev 23854 - in public/yanel/trunk: conf src/core/java/org/wyona/yanel/core src/core/java/org/wyona/yanel/core/attributes/translatable src/core/java/org/wyona/yanel/core/map src/resources/xml/src/java/org/wyona/yanel/impl/resources

josias at wyona.com josias at wyona.com
Wed Apr 18 23:29:19 CEST 2007


Author: josias
Date: 2007-04-18 23:29:18 +0200 (Wed, 18 Apr 2007)
New Revision: 23854

Removed:
   public/yanel/trunk/src/core/java/org/wyona/yanel/core/attributes/translatable/DefaultTranslationManagerRegistry.java
   public/yanel/trunk/src/core/java/org/wyona/yanel/core/attributes/translatable/TranslationManagerRegistry.java
Modified:
   public/yanel/trunk/conf/spring-yanel-config.xml
   public/yanel/trunk/src/core/java/org/wyona/yanel/core/Yanel.java
   public/yanel/trunk/src/core/java/org/wyona/yanel/core/attributes/translatable/DefaultTranslationManager.java
   public/yanel/trunk/src/core/java/org/wyona/yanel/core/attributes/translatable/TranslationManager.java
   public/yanel/trunk/src/core/java/org/wyona/yanel/core/map/Realm.java
   public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java
Log:
refactoring: get translation manager from the realm and specify implementation in realm configuration. removed obsolete translation manager registry. further added getLanguages() to realm.

Modified: public/yanel/trunk/conf/spring-yanel-config.xml
===================================================================
--- public/yanel/trunk/conf/spring-yanel-config.xml	2007-04-18 20:00:31 UTC (rev 23853)
+++ public/yanel/trunk/conf/spring-yanel-config.xml	2007-04-18 21:29:18 UTC (rev 23854)
@@ -21,6 +21,4 @@
   <bean id="IdentityManagerFactory" class="org.wyona.security.impl.IdentityManagerFactoryImpl"/>
 
   <bean id="nav-sitetree" class="org.wyona.yanel.impl.navigation.SitetreeRTIImpl"/>
-
-  <bean id="TranslationManagerRegistry" class="org.wyona.yanel.core.attributes.translatable.DefaultTranslationManagerRegistry"/>
 </beans>

Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/core/Yanel.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/core/Yanel.java	2007-04-18 20:00:31 UTC (rev 23853)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/core/Yanel.java	2007-04-18 21:29:18 UTC (rev 23854)
@@ -18,7 +18,6 @@
 
 import org.wyona.security.core.api.IdentityManager;
 import org.wyona.security.core.api.PolicyManager;
-import org.wyona.yanel.core.attributes.translatable.TranslationManagerRegistry;
 import org.wyona.yanel.core.map.Map;
 import org.wyona.yanel.core.map.Realm;
 import org.wyona.yanel.core.map.RealmConfiguration;
@@ -113,10 +112,6 @@
         return realmConfig;
     }
     
-    public TranslationManagerRegistry getTranslationManagerRegistry() {
-        return (TranslationManagerRegistry)applicationContext.getBean("TranslationManagerRegistry");
-    }
-    
     /**
      * @deprecated
      * use getResourceManager().getResource() instead 

Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/core/attributes/translatable/DefaultTranslationManager.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/core/attributes/translatable/DefaultTranslationManager.java	2007-04-18 20:00:31 UTC (rev 23853)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/core/attributes/translatable/DefaultTranslationManager.java	2007-04-18 21:29:18 UTC (rev 23854)
@@ -53,9 +53,19 @@
     private Node node;
     
     /**
+     * Empty constructor. Don't forget to call the init() method.
+     */
+    public DefaultTranslationManager() {
+    }
+   
+    /**
      *
      */
     public DefaultTranslationManager(Realm realm) throws TranslationException {
+        init(realm);
+    }
+    
+    public void init(Realm realm) throws TranslationException {
         try {
             this.pages = new HashSet();
             this.languageVersions = new HashMap();
@@ -69,6 +79,7 @@
         } catch (Exception e) {
             throw new TranslationException(e.getMessage(), e);
         }
+        
     }
 
     public synchronized String getLanguage(Resource resource) throws TranslationException {

Deleted: public/yanel/trunk/src/core/java/org/wyona/yanel/core/attributes/translatable/DefaultTranslationManagerRegistry.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/core/attributes/translatable/DefaultTranslationManagerRegistry.java	2007-04-18 20:00:31 UTC (rev 23853)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/core/attributes/translatable/DefaultTranslationManagerRegistry.java	2007-04-18 21:29:18 UTC (rev 23854)
@@ -1,48 +0,0 @@
-/*
- * Copyright 2006 Wyona
- *
- *  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.wyona.org/licenses/APACHE-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.wyona.yanel.core.attributes.translatable;
-
-import java.util.HashMap;
-
-import org.apache.log4j.Category;
-import org.wyona.yanel.core.map.Realm;
-
-/**
- *
- */
-public class DefaultTranslationManagerRegistry implements TranslationManagerRegistry {
-
-    private static Category log = Category.getInstance(DefaultTranslationManagerRegistry.class);
-    
-    private HashMap translationManagers; // realm id is the key
-    
-    /**
-     *
-     */
-    public DefaultTranslationManagerRegistry() {
-        this.translationManagers = new HashMap();
-    }
-    
-    public TranslationManager getTranslationManager(Realm realm) throws TranslationException {
-        if (this.translationManagers.containsKey(realm.getID())) {
-            return (TranslationManager)this.translationManagers.get(realm.getID());
-        }
-        TranslationManager manager = new DefaultTranslationManager(realm);
-        this.translationManagers.put(realm.getID(), manager);
-        return manager;
-    }
-}

Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/core/attributes/translatable/TranslationManager.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/core/attributes/translatable/TranslationManager.java	2007-04-18 20:00:31 UTC (rev 23853)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/core/attributes/translatable/TranslationManager.java	2007-04-18 21:29:18 UTC (rev 23854)
@@ -17,6 +17,7 @@
 package org.wyona.yanel.core.attributes.translatable;
 
 import org.wyona.yanel.core.Resource;
+import org.wyona.yanel.core.map.Realm;
 
 /**
  * This is a delegate for the translatable interface.
@@ -24,6 +25,8 @@
  */
 public interface TranslationManager {
     
+    void init(Realm realm) throws TranslationException;
+    
     String getLanguage(Resource resource) throws TranslationException;
     
     String[] getLanguages(Resource resource) throws TranslationException;

Deleted: public/yanel/trunk/src/core/java/org/wyona/yanel/core/attributes/translatable/TranslationManagerRegistry.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/core/attributes/translatable/TranslationManagerRegistry.java	2007-04-18 20:00:31 UTC (rev 23853)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/core/attributes/translatable/TranslationManagerRegistry.java	2007-04-18 21:29:18 UTC (rev 23854)
@@ -1,28 +0,0 @@
-/*
- * Copyright 2006 Wyona
- *
- *  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.wyona.org/licenses/APACHE-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.wyona.yanel.core.attributes.translatable;
-
-import org.wyona.yanel.core.map.Realm;
-
-/**
- *
- */
-public interface TranslationManagerRegistry {
-    
-    public TranslationManager getTranslationManager(Realm realm) throws TranslationException;
-
-}

Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/core/map/Realm.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/core/map/Realm.java	2007-04-18 20:00:31 UTC (rev 23853)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/core/map/Realm.java	2007-04-18 21:29:18 UTC (rev 23854)
@@ -18,6 +18,7 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.util.ArrayList;
 
 import org.wyona.commons.io.FileUtil;
 import org.wyona.commons.io.Path;
@@ -26,6 +27,8 @@
 import org.wyona.security.core.api.IdentityManager;
 import org.wyona.security.core.api.PolicyManager;
 import org.wyona.yanel.core.Yanel;
+import org.wyona.yanel.core.attributes.translatable.DefaultTranslationManager;
+import org.wyona.yanel.core.attributes.translatable.TranslationManager;
 import org.wyona.yarep.core.Repository;
 import org.wyona.yarep.core.RepositoryFactory;
 import org.xml.sax.SAXException;
@@ -51,8 +54,10 @@
     private Repository rtiRepository;
     private PolicyManager policyManager;
     private IdentityManager identityManager;
+    private TranslationManager translationManager;
     private File configFile;
     private File rootDir;
+    private ArrayList languages;
 
     private String proxyHostName;
     private String proxyPort;
@@ -130,6 +135,28 @@
             setDefaultLanguage("en");
         }
         
+        Configuration languagesElement = config.getChild("languages", false);
+        ArrayList languages = new ArrayList();
+        if (languagesElement != null) {
+            Configuration[] langElements = languagesElement.getChildren("language");
+            for (int i = 0; i < langElements.length; i++) {
+                String language = langElements[i].getValue();
+                languages.add(language);
+            }
+        }
+        setLanguages(languages);
+        
+        configElement = config.getChild("translation-manager", false);
+        TranslationManager translationManager = null;
+        if (configElement != null) {
+            String className = configElement.getAttribute("class");
+            translationManager = (TranslationManager)Class.forName(className).newInstance();
+        } else {
+            translationManager = new DefaultTranslationManager();
+        }
+        translationManager.init(this);
+        setTranslationManager(translationManager);
+        
         Configuration rootDirConfig = config.getChild("root-dir", false);
         if (rootDirConfig != null) {
             setRootDir(FileUtil.resolve(getConfigFile(), new File(rootDirConfig.getValue())));
@@ -284,4 +311,24 @@
         }
         return null;
     }
+
+    /**
+     * Gets a list of all languages supported by this realm.
+     * @return list of languages. may be empty.
+     */
+    public ArrayList getLanguages() {
+        return languages;
+    }
+
+    public void setLanguages(ArrayList languages) {
+        this.languages = languages;
+    }
+
+    public TranslationManager getTranslationManager() {
+        return translationManager;
+    }
+
+    public void setTranslationManager(TranslationManager translationManager) {
+        this.translationManager = translationManager;
+    }
 }

Modified: public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java
===================================================================
--- public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java	2007-04-18 20:00:31 UTC (rev 23853)
+++ public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java	2007-04-18 21:29:18 UTC (rev 23854)
@@ -30,7 +30,6 @@
 import org.wyona.yanel.core.api.attributes.ViewableV2;
 import org.wyona.yanel.core.attributes.translatable.TranslationException;
 import org.wyona.yanel.core.attributes.translatable.TranslationManager;
-import org.wyona.yanel.core.attributes.translatable.TranslationManagerRegistry;
 import org.wyona.yanel.core.attributes.versionable.RevisionInformation;
 import org.wyona.yanel.core.attributes.viewable.View;
 import org.wyona.yanel.core.attributes.viewable.ViewDescriptor;
@@ -623,8 +622,7 @@
     }
 
     protected TranslationManager getTranslationManager() throws TranslationException {
-        TranslationManagerRegistry registry = (TranslationManagerRegistry)getYanel().getTranslationManagerRegistry();
-        return registry.getTranslationManager(getRealm());
+        return getRealm().getTranslationManager();
     }
 
     public String getLanguage() throws TranslationException {




More information about the Yanel-commits mailing list