Hi,
Jetspeed ignores an encoding attribute in XML(.xreg) files...
So I created the patch for fixing this issue. Using this patch,
I think that Jetspeed can read data by using correct encoding
and write it by UTF-8. In my environment, Jetspeed can process
Japanese characters in .xreg files and display it correctly:-)
Please integrate this patch if there is no problem.
Best regards,
shinsuke
---
jakarta-jetspeed.org/src/java/org/apache/jetspeed/services/registry/CastorRegistryService.java
Sun Aug 25 22:44:17 2002
+++
+jakarta-jetspeed/src/java/org/apache/jetspeed/services/registry/CastorRegistryService.java
+ Thu Sep 5 23:28:12 2002
@@ -72,12 +72,14 @@
import org.apache.xml.serialize.Serializer;
import org.apache.xml.serialize.XMLSerializer;
import org.apache.xml.serialize.OutputFormat;
+import org.w3c.dom.*;
//java stuff
import java.util.*;
import java.io.*;
import java.net.*;
import javax.servlet.ServletConfig;
+import javax.xml.parsers.*;
/**
* <p>This is an implementation of the <code>RegistryService</code>
@@ -490,12 +492,15 @@
*/
public void loadFragment(String file)
{
- FileReader reader = null;
try
{
+ DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = dbfactory.newDocumentBuilder();
+
+ Document d = builder.parse(file);
+
Unmarshaller unmarshaller = new Unmarshaller(this.mapping);
- reader = new FileReader(file);
- RegistryFragment fragment =
(RegistryFragment)unmarshaller.unmarshal(reader);
+ RegistryFragment fragment =
+(RegistryFragment)unmarshaller.unmarshal((Node)d);
// if we get here, we successfully loaded the new fragment
updateFragment(file, fragment);
@@ -507,7 +512,6 @@
}
finally
{
- try { reader.close(); } catch (Exception e) {};
}
}
@@ -522,7 +526,6 @@
public void createFragment(String name, Reader reader, boolean persistent)
{
String file = new File( directory, name+extension ).getAbsolutePath();
- FileWriter writer = null;
try
{
Unmarshaller unmarshaller = new Unmarshaller(this.mapping);
@@ -542,7 +545,6 @@
finally
{
try { reader.close(); } catch (Exception e) {};
- try { writer.close(); } catch (Exception e) {};
}
// refresh all regsitries to take the new entries into account
@@ -554,14 +556,16 @@
* @param file the absolute file path storing this fragment
*/
public void saveFragment(String file) {
- FileWriter writer = null;
+ OutputStreamWriter writer = null;
+ String encoding = new String("UTF-8");
RegistryFragment fragment = (RegistryFragment)fragments.get(file);
if (fragment != null)
{
try
{
- writer = new FileWriter(file);
+ writer = new OutputStreamWriter(new FileOutputStream(file),encoding);
+ format.setEncoding(encoding);
Serializer serializer = new XMLSerializer(writer, format);
Marshaller marshaller = new
Marshaller(serializer.asDocumentHandler());
marshaller.setMapping(this.mapping);
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>