Jump to: navigation, search

Difference between revisions of "Hudson-ci/Planning/Library Cleanup"

m
(JavaBeans Activation Framework)
 
(15 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{hudson|pageTitle=Library Cleanup Project}}  
 
{{hudson|pageTitle=Library Cleanup Project}}  
  
Introduction One of the major problems with the original Hudson code-base was the use of several of forked / patched 3rd party libraries. It's in no-one's interest to have to maintain separate code-bases in these cases and so we need to look at contributing any patches back to the original projects and removing the dependency on the patched versions This page tracks the libraries that we need to concentrate on as part of this process  
+
= Introduction =
 +
 
 +
One of the major problems with the original Hudson code-base was the use of several of forked / patched 3rd party libraries. It's in no-one's interest to have to maintain separate code-bases in these cases and so we need to look at contributing any patches back to the original projects and removing the dependency on the patched versions This page tracks the libraries that we need to concentrate on as part of this process  
  
 
= JavaBeans Activation Framework  =
 
= JavaBeans Activation Framework  =
  
Hudson / Jenkins use a patched version of activation.jar derived from '''git://github.com/kohsuke/javax.activation.git'''  
+
Hudson uses a patched version of activation.jar derived from '''git://github.com/kohsuke/javax.activation.git'''  
  
The home of the base project is now the GlassFish Project: '''https://svn.java.net/svn/glassfish~svn/trunk/external/modules/activation'''  
+
The home of the base project version compared below is now the GlassFish Project: '''https://svn.java.net/svn/glassfish~svn/trunk/external/modules/activation'''  
  
== Diffs  ==
+
=== Tracking  ===
 +
 
 +
This project is related to CQ: [https://dev.eclipse.org/ipzilla/show_bug.cgi?id=5774 5774]
 +
 
 +
This project is tracked by BugZilla: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=364988 364988]
 +
 
 +
=== JAF Diffs  ===
 +
 
 +
By package / source file:
 +
 
 +
Strikethrough indicates no significant diffs apart from comments / copyright. Bold used to indicate simple code change within a statement.
 +
 
 +
<br>
 +
 
 +
DataContentHandler.java
 +
 
 +
{| width="200px" border="1" cellpadding="1" cellspacing="1" summary="Codebase Diffs"
 +
|-
 +
| '''Package'''
 +
| '''Class'''
 +
| '''Diff'''
 +
| '''Function'''
 +
| '''Origional (1.1 JAF)'''
 +
| '''Hudson'''
 +
|-
 +
| com.sun.<br>activation.<br>registries
 +
| <strike>LogSupport.java</strike>
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
|
 +
| MailcapFile.java
 +
| 1
 +
| public String[] getNativeCommands( String mime_type)
 +
| List v = (List)native_commands.get(<br>mime_type.toLowerCase());
 +
| List v =<br> (List)native_commands.get(<br>mime_type.toLowerCase('''Locale.ENGLISH'''));
 +
|-
 +
|
 +
|
 +
| 2
 +
| protected void parseLine(String mailcapEntry)
 +
| String primaryType = tokenizer.getCurrentTokenValue().toLowerCase();
 +
| String primaryType =<br> tokenizer.getCurrentTokenValue().toLowerCase('''Locale.ENGLISH''');
 +
|-
 +
|
 +
|
 +
| 3
 +
|
 +
| subType = tokenizer.getCurrentTokenValue().toLowerCase();
 +
| subType =<br> tokenizer.getCurrentTokenValue().toLowerCase('''Locale.ENGLISH''');
 +
|-
 +
|
 +
|
 +
|
 +
|
 +
| String paramName =<br> tokenizer.getCurrentTokenValue().toLowerCase();
 +
| String paramName = tokenizer.getCurrentTokenValue().<br> toLowerCase('''Locale.ENGLISH''');
 +
|-
 +
|
 +
| <strike>MailcapParseException<br>.java</strike>
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
|
 +
| MailcapTokenizer.java
 +
| 1
 +
| public void setAutoquoteChar(char value)
 +
| <br>
 +
| '''Function Not Present'''
 +
|-
 +
|
 +
|
 +
| 2
 +
| public int nextToken()
 +
| if (isAutoquoting) {<br> if (!isAutoquoteSpecialChar(c)) {<br> processAutoquoteToken();<br> } else if ((c == ';') &#124;&#124; (c == '=')) {<br> currentToken = c;<br> currentTokenValue = new Character(c).toString();<br> ++dataIndex;<br> } else {<br> currentToken = UNKNOWN_TOKEN;<br> currentTokenValue = new Character(c).toString();<br> ++dataIndex;<br> }
 +
| if (isAutoquoting) {<br> if (c == ';' &#124;&#124; c == '=') {<br> currentToken = c;<br> currentTokenValue = new Character(c).toString();<br> ++dataIndex;<br> } else {<br> processAutoquoteToken();<br> }
 +
|-
 +
|
 +
|
 +
| 3
 +
| public static boolean isAutoquoteSpecialChar( char c)
 +
|
 +
| '''Function Not Present'''
 +
|-
 +
|
 +
| <strike>MimeTypeEntry.java</strike>
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
|
 +
| <strike>MimeTypeFile.java</strike>
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
|
 +
com.sun.<br>activation.<br>viewers
 +
 
 +
| <strike>ImageViewer.java</strike>
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
|
 +
| <strike>ImageViewerCanvas.java</strike>
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
|
 +
| TextEditor.java
 +
| 1
 +
| public void <br>setInputStream<br>(InputStream ins)
 +
| // make sure we got one<br> if(fos == null) {<br> System.out.println("Invalid outputstream in TextEditor!");<br> System.out.println("not saving!");<br> }
 +
| // make sure we got one<br> if(fos == null) {<br> System.out.println("Invalid outputstream in TextEditor!");<br> System.out.println("not saving!");<br> '''return;'''<br> }
 +
|-
 +
|
 +
| <strike>TextViewer.java</strike>
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
| javax.<br>activation
 +
| ActivationDataFlavor.java
 +
| 1
 +
| public boolean isMimeTypeEqual(String mimeType)
 +
| } catch (MimeTypeParseException e) {}
 +
| } catch (MimeTypeParseException e) {<br> '''// something didn't parse, do a crude comparison<br> return this.mimeType.equalsIgnoreCase(mimeType);'''<br> }
 +
|-
 +
|
 +
| <strike>CommandInfo.java</strike>
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
|
 +
| <strike>CommandMap.java</strike>
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
|
 +
| <strike>CommandObject.java</strike>
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
|
 +
| <strike>DataContentHandler.java</strike>
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
|
 +
| <strike>DataContentHandlerFactory<br>.java</strike>
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
|
 +
| DataHandler.java
 +
| 1
 +
| public DataFlavor[] getTransferDataFlavors()
 +
| public DataFlavor[] getTransferDataFlavors()
 +
| public '''synchronized '''DataFlavor[] getTransferDataFlavors()
 +
|-
 +
|
 +
|
 +
| 2
 +
| Object getTransferData( DataFlavor df, DataSource ds)
 +
| else if (df.equals(transferFlavors[0])) // only have one now
 +
| else if (df.equals('''getTransferDataFlavors()'''[0])) // only have one now
 +
|-
 +
|
 +
|
 +
| 3
 +
| public void writeTo(Object obj, String mimeType, OutputStream os)
 +
| if (dch&nbsp;!= null)<br> dch.writeTo(obj, mimeType, os);<br> else<br> throw new UnsupportedDataTypeException(
 +
| if (dch&nbsp;!= null)<br> dch.writeTo(obj, mimeType, os);<br> '''else if (obj instanceof byte[])<br> os.write((byte[])obj);<br> else if (obj instanceof String) {<br> OutputStreamWriter osw = new OutputStreamWriter(os);<br> osw.write((String)obj);<br> osw.flush();'''<br> } else<br> throw new UnsupportedDataTypeException(
 +
|-
 +
|
 +
| <strike>DataSource.java</strike>
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
|
 +
| <strike>FileDataSource.java</strike>
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
|
 +
| <strike>FileTypeMap.java</strike>
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
|
 +
| MailcapCommandMap<br>.java
 +
| 1
 +
| public synchronized CommandInfo[] getPreferredCommands (String mimeType)
 +
| mimeType = mimeType.toLowerCase();
 +
| mimeType = mimeType.toLowerCase('''Locale.ENGLISH''');
 +
|-
 +
|
 +
|
 +
| 2
 +
| public synchronized CommandInfo[] getAllCommands(String mimeType)
 +
| mimeType = mimeType.toLowerCase();
 +
| mimeType = mimeType.toLowerCase('''Locale.ENGLISH''');
 +
|-
 +
|
 +
|
 +
| 3
 +
| public synchronized DataContentHandler createDataContentHandler<br>(String mimeType)
 +
| mimeType = mimeType.toLowerCase();
 +
| mimeType = mimeType.toLowerCase('''Locale.ENGLISH''');
 +
|-
 +
|
 +
|
 +
| 4
 +
| public synchronized String[] getNativeCommands(String mimeType)
 +
| mimeType = mimeType.toLowerCase();
 +
| mimeType = mimeType.toLowerCase('''Locale.ENGLISH''');
 +
|-
 +
|
 +
| MimeType.java
 +
| 1
 +
| public MimeType(String primary, String sub)
 +
| primaryType = primary.toLowerCase();
 +
| primaryType = primary.toLowerCase('''Locale.ENGLISH''');
 +
|-
 +
|
 +
|
 +
| 2
 +
| public MimeType(String primary, String sub)
 +
| subType= sub.toLowerCase();
 +
| subType= sub.toLowerCase('''Locale.ENGLISH''');
 +
|-
 +
|
 +
|
 +
| 3
 +
| private void parse(String rawdata)
 +
| primaryType = rawdata.substring(0, slashIndex).trim().toLowerCase();
 +
| primaryType = rawdata.substring(0, slashIndex).trim().toLowerCase('''Locale.ENGLISH''');
 +
|-
 +
|
 +
|
 +
| 4
 +
| private void parse(String rawdata)
 +
| subType = rawdata.substring(slashIndex + 1).trim().toLowerCase();
 +
| subType = rawdata.substring(slashIndex + 1).trim().toLowerCase('''Locale.ENGLISH''');
 +
|-
 +
|
 +
|
 +
| 5
 +
| private void parse(String rawdata)
 +
| primaryType = rawdata.substring(0, slashIndex).trim().toLowerCase();
 +
| primaryType = rawdata.substring(0, slashIndex).trim().toLowerCase('''Locale.ENGLISH''');
 +
|-
 +
|
 +
|
 +
| 6
 +
| private void parse(String rawdata)
 +
| subType = rawdata.substring(slashIndex + 1,semIndex).trim().toLowerCase();
 +
| subType = rawdata.substring(slashIndex + 1,semIndex).trim().toLowerCase('''Locale.ENGLISH''');
 +
|-
 +
|
 +
|
 +
| 7
 +
| public void setPrimaryType(String primary)
 +
| primaryType = primary.toLowerCase();
 +
| primaryType = primary.toLowerCase('''Locale.ENGLISH''');
 +
|-
 +
|
 +
|
 +
| 8
 +
| public void setSubType( String sub)
 +
| subType = sub.toLowerCase();
 +
| subType = sub.toLowerCase('''Locale.ENGLISH''');
 +
|-
 +
|
 +
| MimeTypeParameterList<br>.java
 +
| 1
 +
| protected void parse(String parameterList)
 +
| name = parameterList.substring(lastIndex, i).toLowerCase();
 +
| name = parameterList.substring(lastIndex, i).toLowerCase('''Locale.ENGLISH''');
 +
|-
 +
|
 +
|
 +
| 2
 +
| public String get(String name)
 +
| return (String)parameters.get(name.trim().toLowerCase());
 +
| return (String)parameters.get(name.trim().toLowerCase('''Locale.ENGLISH'''));
 +
|-
 +
|
 +
|
 +
| 3
 +
| public void set(String name, String value)
 +
| parameters.put(name.trim().toLowerCase(), value);
 +
| parameters.put(name.trim().toLowerCase('''Locale.ENGLISH'''), value);
 +
|-
 +
|
 +
|
 +
| 4
 +
| public void remove(String name)
 +
| parameters.remove(name.trim().toLowerCase());
 +
| parameters.remove(name.trim().toLowerCase('''Locale.ENGLISH'''));
 +
|-
 +
|
 +
| <strike>MimeTypeParseException<br>.java</strike>
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
|
 +
| <strike>MimetypesFileTypeMap<br>.java</strike>
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
|
 +
| <strike>SecuritySupport<br>.java</strike>
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
|
 +
| <strike>UnsupportedDataType<br>Exception.java</strike>
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
|
 +
| <strike>URLDataSource.java</strike>
 +
|
 +
|
 +
|
 +
|
 +
|}
  
 
= Xstream XML Parser  =
 
= Xstream XML Parser  =
  
Husdon / Jenkins use a patched version of xstream:  
+
Husdon uses a patched version of xstream:  
  
 
The home of the base project is on Codehaus: http://svn.codehaus.org/xstream/trunk/
 
The home of the base project is on Codehaus: http://svn.codehaus.org/xstream/trunk/
 +
 +
=== Tracking ===
 +
 +
This project is related to CQ: [https://dev.eclipse.org/ipzilla/show_bug.cgi?id=5771 5771]
 +
 +
This project is tracked by BugZilla:
 +
 +
=== Diffs  ===
 +
 +
The issues tracking the diffs on Codehaus are:
 +
 +
*http://jira.codehaus.org/browse/XSTR-676
 +
*http://jira.codehaus.org/browse/XSTR-675
 +
*http://jira.codehaus.org/browse/XSTR-674

Latest revision as of 07:37, 1 December 2011

Hudson Continuous Integration Server
Website
Download
Community
Mailing ListForumsIRC
Bugzilla
Open
Help Wanted
Bug Day
Contribute
Browse Source
Hudson-bust.png Library Cleanup Project











Introduction

One of the major problems with the original Hudson code-base was the use of several of forked / patched 3rd party libraries. It's in no-one's interest to have to maintain separate code-bases in these cases and so we need to look at contributing any patches back to the original projects and removing the dependency on the patched versions This page tracks the libraries that we need to concentrate on as part of this process

JavaBeans Activation Framework

Hudson uses a patched version of activation.jar derived from git://github.com/kohsuke/javax.activation.git

The home of the base project version compared below is now the GlassFish Project: https://svn.java.net/svn/glassfish~svn/trunk/external/modules/activation

Tracking

This project is related to CQ: 5774

This project is tracked by BugZilla: 364988

JAF Diffs

By package / source file:

Strikethrough indicates no significant diffs apart from comments / copyright. Bold used to indicate simple code change within a statement.


DataContentHandler.java

Package Class Diff Function Origional (1.1 JAF) Hudson
com.sun.
activation.
registries
LogSupport.java
MailcapFile.java 1 public String[] getNativeCommands( String mime_type) List v = (List)native_commands.get(
mime_type.toLowerCase());
List v =
(List)native_commands.get(
mime_type.toLowerCase(Locale.ENGLISH));
2 protected void parseLine(String mailcapEntry) String primaryType = tokenizer.getCurrentTokenValue().toLowerCase(); String primaryType =
tokenizer.getCurrentTokenValue().toLowerCase(Locale.ENGLISH);
3 subType = tokenizer.getCurrentTokenValue().toLowerCase(); subType =
tokenizer.getCurrentTokenValue().toLowerCase(Locale.ENGLISH);
String paramName =
tokenizer.getCurrentTokenValue().toLowerCase();
String paramName = tokenizer.getCurrentTokenValue().
toLowerCase(Locale.ENGLISH);
MailcapParseException
.java
MailcapTokenizer.java 1 public void setAutoquoteChar(char value)
Function Not Present
2 public int nextToken() if (isAutoquoting) {
if (!isAutoquoteSpecialChar(c)) {
processAutoquoteToken();
} else if ((c == ';') || (c == '=')) {
currentToken = c;
currentTokenValue = new Character(c).toString();
++dataIndex;
} else {
currentToken = UNKNOWN_TOKEN;
currentTokenValue = new Character(c).toString();
++dataIndex;
}
if (isAutoquoting) {
if (c == ';' || c == '=') {
currentToken = c;
currentTokenValue = new Character(c).toString();
++dataIndex;
} else {
processAutoquoteToken();
}
3 public static boolean isAutoquoteSpecialChar( char c) Function Not Present
MimeTypeEntry.java
MimeTypeFile.java

com.sun.
activation.
viewers

ImageViewer.java
ImageViewerCanvas.java
TextEditor.java 1 public void
setInputStream
(InputStream ins)
// make sure we got one
if(fos == null) {
System.out.println("Invalid outputstream in TextEditor!");
System.out.println("not saving!");
}
// make sure we got one
if(fos == null) {
System.out.println("Invalid outputstream in TextEditor!");
System.out.println("not saving!");
return;
}
TextViewer.java
javax.
activation
ActivationDataFlavor.java 1 public boolean isMimeTypeEqual(String mimeType) } catch (MimeTypeParseException e) {} } catch (MimeTypeParseException e) {
// something didn't parse, do a crude comparison
return this.mimeType.equalsIgnoreCase(mimeType);

}
CommandInfo.java
CommandMap.java
CommandObject.java
DataContentHandler.java
DataContentHandlerFactory
.java
DataHandler.java 1 public DataFlavor[] getTransferDataFlavors() public DataFlavor[] getTransferDataFlavors() public synchronized DataFlavor[] getTransferDataFlavors()
2 Object getTransferData( DataFlavor df, DataSource ds) else if (df.equals(transferFlavors[0])) // only have one now else if (df.equals(getTransferDataFlavors()[0])) // only have one now
3 public void writeTo(Object obj, String mimeType, OutputStream os) if (dch != null)
dch.writeTo(obj, mimeType, os);
else
throw new UnsupportedDataTypeException(
if (dch != null)
dch.writeTo(obj, mimeType, os);
else if (obj instanceof byte[])
os.write((byte[])obj);
else if (obj instanceof String) {
OutputStreamWriter osw = new OutputStreamWriter(os);
osw.write((String)obj);
osw.flush();

} else
throw new UnsupportedDataTypeException(
DataSource.java
FileDataSource.java
FileTypeMap.java
MailcapCommandMap
.java
1 public synchronized CommandInfo[] getPreferredCommands (String mimeType) mimeType = mimeType.toLowerCase(); mimeType = mimeType.toLowerCase(Locale.ENGLISH);
2 public synchronized CommandInfo[] getAllCommands(String mimeType) mimeType = mimeType.toLowerCase(); mimeType = mimeType.toLowerCase(Locale.ENGLISH);
3 public synchronized DataContentHandler createDataContentHandler
(String mimeType)
mimeType = mimeType.toLowerCase(); mimeType = mimeType.toLowerCase(Locale.ENGLISH);
4 public synchronized String[] getNativeCommands(String mimeType) mimeType = mimeType.toLowerCase(); mimeType = mimeType.toLowerCase(Locale.ENGLISH);
MimeType.java 1 public MimeType(String primary, String sub) primaryType = primary.toLowerCase(); primaryType = primary.toLowerCase(Locale.ENGLISH);
2 public MimeType(String primary, String sub) subType= sub.toLowerCase(); subType= sub.toLowerCase(Locale.ENGLISH);
3 private void parse(String rawdata) primaryType = rawdata.substring(0, slashIndex).trim().toLowerCase(); primaryType = rawdata.substring(0, slashIndex).trim().toLowerCase(Locale.ENGLISH);
4 private void parse(String rawdata) subType = rawdata.substring(slashIndex + 1).trim().toLowerCase(); subType = rawdata.substring(slashIndex + 1).trim().toLowerCase(Locale.ENGLISH);
5 private void parse(String rawdata) primaryType = rawdata.substring(0, slashIndex).trim().toLowerCase(); primaryType = rawdata.substring(0, slashIndex).trim().toLowerCase(Locale.ENGLISH);
6 private void parse(String rawdata) subType = rawdata.substring(slashIndex + 1,semIndex).trim().toLowerCase(); subType = rawdata.substring(slashIndex + 1,semIndex).trim().toLowerCase(Locale.ENGLISH);
7 public void setPrimaryType(String primary) primaryType = primary.toLowerCase(); primaryType = primary.toLowerCase(Locale.ENGLISH);
8 public void setSubType( String sub) subType = sub.toLowerCase(); subType = sub.toLowerCase(Locale.ENGLISH);
MimeTypeParameterList
.java
1 protected void parse(String parameterList) name = parameterList.substring(lastIndex, i).toLowerCase(); name = parameterList.substring(lastIndex, i).toLowerCase(Locale.ENGLISH);
2 public String get(String name) return (String)parameters.get(name.trim().toLowerCase()); return (String)parameters.get(name.trim().toLowerCase(Locale.ENGLISH));
3 public void set(String name, String value) parameters.put(name.trim().toLowerCase(), value); parameters.put(name.trim().toLowerCase(Locale.ENGLISH), value);
4 public void remove(String name) parameters.remove(name.trim().toLowerCase()); parameters.remove(name.trim().toLowerCase(Locale.ENGLISH));
MimeTypeParseException
.java
MimetypesFileTypeMap
.java
SecuritySupport
.java
UnsupportedDataType
Exception.java
URLDataSource.java

Xstream XML Parser

Husdon uses a patched version of xstream:

The home of the base project is on Codehaus: http://svn.codehaus.org/xstream/trunk/

Tracking

This project is related to CQ: 5771

This project is tracked by BugZilla:

Diffs

The issues tracking the diffs on Codehaus are: