[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