- From: Thomas Gambet via cvs-syncmail <cvsmail@w3.org>
- Date: Mon, 24 Aug 2009 11:17:02 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2006/unicorn/src/org/w3c/unicorn/action
In directory hutz:/tmp/cvs-serv9647/src/org/w3c/unicorn/action
Modified Files:
Tag: dev2
ObserveAction.java
Log Message:
added language negociation
Index: ObserveAction.java
===================================================================
RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/action/Attic/ObserveAction.java,v
retrieving revision 1.1.2.7
retrieving revision 1.1.2.8
diff -u -d -r1.1.2.7 -r1.1.2.8
--- ObserveAction.java 19 Aug 2009 08:14:12 -0000 1.1.2.7
+++ ObserveAction.java 24 Aug 2009 11:17:00 -0000 1.1.2.8
@@ -32,11 +32,10 @@
import org.w3c.unicorn.UnicornCall;
import org.w3c.unicorn.contract.EnumInputMethod;
import org.w3c.unicorn.exceptions.NoTaskException;
-import org.w3c.unicorn.index.IndexGenerator;
+import org.w3c.unicorn.language.Language;
import org.w3c.unicorn.output.OutputFactory;
import org.w3c.unicorn.output.OutputFormater;
import org.w3c.unicorn.output.OutputModule;
-import org.w3c.unicorn.util.LocalizedString;
import org.w3c.unicorn.util.Property;
/**
@@ -47,8 +46,7 @@
*/
public class ObserveAction extends HttpServlet {
- private static final Log logger = LogFactory
- .getLog("org.w3c.unicorn.servlet");
+ private static final Log logger = LogFactory.getLog(ObserveAction.class);
private static final long serialVersionUID = -1375355420965607571L;
@@ -73,22 +71,6 @@
ObserveAction.factory.setRepository(new File(Property
.get("UPLOADED_FILES_REPOSITORY")));
- try {
- IndexGenerator.generateIndexes();
- } catch (final ResourceNotFoundException e) {
- ObserveAction.logger.error("ResourceNotFoundException : "
- + e.getMessage(), e);
- e.printStackTrace();
- } catch (final ParseErrorException e) {
- ObserveAction.logger.error(
- "ParseErrorException : " + e.getMessage(), e);
- e.printStackTrace();
- } catch (final Exception e) {
- ObserveAction.logger.error("Exception : " + e.getMessage(), e);
- e.printStackTrace();
- }
- ObserveAction.logger.info("End of initialisation of servlet.");
-
}
/*
@@ -98,11 +80,17 @@
* javax.servlet.http.HttpServletResponse)
*/
@Override
- protected void doGet(final HttpServletRequest aHttpServletRequest,
- final HttpServletResponse aHttpServletResponse)
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
ObserveAction.logger.trace("doGet");
+ // Language negotiation
+ String langParameter = req.getParameter(Property.get("UNICORN_PARAMETER_PREFIX") + "lang");
+ if (langParameter == null || !Framework.getLanguageProperties().containsKey(langParameter))
+ langParameter = Language.negociate(req.getLocales());
+
+ //velocityContext = new VelocityContext(Language.getContext(langParameter));
+
// Variables related to the output
final Map<String, String[]> mapOfSpecificParameter = new Hashtable<String, String[]>();
final Map<String, String> mapOfOutputParameter = new Hashtable<String, String>();
@@ -110,39 +98,20 @@
mapOfOutputParameter.put("format", "xhtml10");
mapOfOutputParameter.put("charset", "UTF-8");
mapOfOutputParameter.put("mimetype", "text/html");
-
- // Returns the preferred Locale that the client will accept content in,
- // based on the Accept-Language header
- final String aLocale = convertEnumerationToString(aHttpServletRequest
- .getLocales());
+ mapOfOutputParameter.put("lang", langParameter);
+
final UnicornCall aUnicornCall = new UnicornCall();
-
- // Language of the template
- // ucn_lang is a parameter which is define in xx_index.html.vm.
- // It is an hidden parameter of a form.
- String templateLang = null;
- if (aHttpServletRequest.getParameterValues(Property
- .get("UNICORN_PARAMETER_PREFIX")
- + "lang") != null) {
- templateLang = aHttpServletRequest.getParameterValues(Property
- .get("UNICORN_PARAMETER_PREFIX")
- + "lang")[0];
- } else {
- templateLang = chooseTemplateLang(aLocale);
- }
-
- mapOfOutputParameter.put("lang", templateLang);
-
+ final String aLocale = convertEnumerationToString(req.getLocales());
if (null == aLocale) {
- aUnicornCall.setLang(Property.get("DEFAULT_LANGUAGE"));
+ aUnicornCall.setLang(langParameter + "," + Property.get("DEFAULT_LANGUAGE"));
} else {
- aUnicornCall.setLang(templateLang + "," + aLocale);
+ aUnicornCall.setLang(langParameter + "," + aLocale);
}
- for (final Enumeration<?> aEnumParamName = aHttpServletRequest
+ for (final Enumeration<?> aEnumParamName = req
.getParameterNames(); aEnumParamName.hasMoreElements();) {
final String sParamName = (String) aEnumParamName.nextElement();
- final String[] tStringParamValue = aHttpServletRequest
+ final String[] tStringParamValue = req
.getParameterValues(sParamName);
this.addParameter(sParamName, tStringParamValue, aUnicornCall,
@@ -151,7 +120,7 @@
if (aUnicornCall.getTask() == null) {
ObserveAction.logger.error("No task selected.");
- this.createError(aHttpServletResponse, new NoTaskException(),
+ this.createError(resp, new NoTaskException(),
mapOfSpecificParameter, mapOfOutputParameter);
return;
}
@@ -159,12 +128,12 @@
try {
aUnicornCall.doTask();
- this.createOutput(aHttpServletResponse, aUnicornCall,
+ this.createOutput(resp, aUnicornCall,
mapOfSpecificParameter, mapOfOutputParameter);
} catch (final Exception aException) {
ObserveAction.logger.error("Exception : " + aException.getMessage(),
aException);
- this.createError(aHttpServletResponse, aException,
+ this.createError(resp, aException,
mapOfSpecificParameter, mapOfOutputParameter);
}
}
@@ -176,42 +145,42 @@
* javax.servlet.http.HttpServletResponse)
*/
@Override
- protected void doPost(final HttpServletRequest aHttpServletRequest,
- final HttpServletResponse aHttpServletResponse)
+ protected void doPost(final HttpServletRequest req,
+ final HttpServletResponse resp)
throws ServletException, IOException {
ObserveAction.logger.trace("doPost");
-
+
// Check that we have a file upload request
- final boolean bIsMultipart = ServletFileUpload
- .isMultipartContent(new ServletRequestContext(
- aHttpServletRequest));
+ final boolean bIsMultipart = ServletFileUpload.isMultipartContent(new ServletRequestContext(req));
if (!bIsMultipart) {
- this.doGet(aHttpServletRequest, aHttpServletResponse);
+ this.doGet(req, resp);
return;
}
-
- // Parse the request
- final List<?> listOfItem;
-
- final UnicornCall aUnicornCall = new UnicornCall();
-
+
+ // Language negotiation
+ String langParameter = req.getParameter(Property.get("UNICORN_PARAMETER_PREFIX") + "lang");
+ if (langParameter == null || !Framework.getLanguageProperties().containsKey(langParameter))
+ langParameter = Language.negociate(req.getLocales());
+
// Variables related to the output
final Map<String, String> mapOfOutputParameter = new Hashtable<String, String>();
mapOfOutputParameter.put("output", "simple");
mapOfOutputParameter.put("format", "xhtml10");
mapOfOutputParameter.put("charset", "UTF-8");
mapOfOutputParameter.put("mimetype", "text/html");
-
- // Returns the preferred Locale that the client will accept content in,
- // based on the Accept-Language header
- final String aLocale = convertEnumerationToString(aHttpServletRequest
- .getLocales());
-
- // Language of the template
- // ucn_lang is a parameter which is define in xx_index.html.vm.
- // It is an hidden parameter of a form.
- String templateLang = null;
+ mapOfOutputParameter.put("lang", langParameter);
+
+ final UnicornCall aUnicornCall = new UnicornCall();
+ final String aLocale = convertEnumerationToString(req.getLocales());
+ if (null == aLocale) {
+ aUnicornCall.setLang(langParameter + "," + Property.get("DEFAULT_LANGUAGE"));
+ } else {
+ aUnicornCall.setLang(langParameter + "," + aLocale);
+ }
+
+ // Parse the request
+ final List<?> listOfItem;
ObserveAction.logger.trace("doPost");
@@ -220,7 +189,7 @@
FileItem aFileItemUploaded = null;
try {
- listOfItem = ObserveAction.upload.parseRequest(aHttpServletRequest);
+ listOfItem = ObserveAction.upload.parseRequest(req);
// Process the uploaded items
for (final Iterator<?> aIterator = listOfItem.iterator(); aIterator
@@ -228,10 +197,6 @@
final FileItem aFileItem = (FileItem) aIterator.next();
if (aFileItem.isFormField()) {
- if (aFileItem.getFieldName().equals("ucn_lang")) {
- templateLang = aFileItem.getString();
- }
-
addParameter(aFileItem.getFieldName(), aFileItem
.getString(), aUnicornCall, mapOfSpecificParameter,
mapOfOutputParameter);
@@ -244,36 +209,24 @@
aUnicornCall.setEnumInputMethod(EnumInputMethod.UPLOAD);
}
}
-
- if (templateLang == null) {
- templateLang = chooseTemplateLang(aLocale);
- }
-
- if (null == aLocale) {
- aUnicornCall.setLang(Property.get("DEFAULT_LANGUAGE"));
- } else {
- aUnicornCall.setLang(templateLang + "," + aLocale);
- }
- mapOfOutputParameter.put("lang", templateLang);
-
}
catch (final FileUploadException aFileUploadException) {
ObserveAction.logger.error("FileUploadException : "
+ aFileUploadException.getMessage(), aFileUploadException);
- this.createError(aHttpServletResponse, aFileUploadException,
+ this.createError(resp, aFileUploadException,
mapOfSpecificParameter, mapOfOutputParameter);
}
try {
aUnicornCall.doTask();
- this.createOutput(aHttpServletResponse, aUnicornCall,
+ this.createOutput(resp, aUnicornCall,
mapOfSpecificParameter, mapOfOutputParameter);
} catch (final Exception aException) {
ObserveAction.logger.error("Exception : " + aException.getMessage(),
aException);
- this.createError(aHttpServletResponse, aException,
+ this.createError(resp, aException,
mapOfSpecificParameter, mapOfOutputParameter);
} finally {
if ("true".equals(Property.get("DELETE_UPLOADED_FILES"))
@@ -460,26 +413,6 @@
}
/**
- * This method returns the first language of the accept language list which
- * is equal to one of available index template language
- *
- * @param aLocale
- * @return The selected language or the default language.
- */
- private String chooseTemplateLang(String aLocale) {
- String[] tabLang = aLocale.split(";|,");
- for (int i = 0; i < tabLang.length; i++) {
- if (Framework.outputLang.contains(tabLang[i])) {
- return tabLang[i];
- } else if (Framework.outputLang.contains(tabLang[i].split("-")[0])) {
- return tabLang[i].split("-")[0];
- }
- }
-
- return Property.get("DEFAULT_LANGUAGE");
- }
-
- /**
* Converts an Enumeration object to a string, the terms being separated by
* a coma.
*
Received on Monday, 24 August 2009 11:17:18 UTC