Re: Component status pages

2006-03-09 Thread Paulex Yang

Zoe,

I'm glad to update page for nio-channels component.

zoe slattery wrote:

Hey - looks great Nathan! I'll tidy up the JLM one to look similar

Paulex - it looks to me as though you could create a similar page for 
the NIO, is that right?


Vladimir - is it you who is mainly looking at security? How about a 
similar page on what you are doing?



Nathan Beyer wrote:
 

-Original Message-
From: zoe slattery [mailto:[EMAIL PROTECTED]
Sent: Tuesday, March 07, 2006 7:50 AM
To: harmony-dev@incubator.apache.org
Subject: Component status pages (was:Re: any donations expected for awt
and swing?)

Tim Ellison wrote:
   

Geir Magnusson Jr wrote:

 

Tim Ellison wrote:

   

Probably best to put the 'concerted work in progress' description on
  

the
   

wiki, so anyone can join in; the website status page was intended to
  

be
   
more of a current state of the code overview.  We should also 
start to

set ourselves some goals, in terms of applications to run, etc.

  
Why not have started on the webpage, and then a like to the wiki 
page

if there is one?

Or just encourage people to ask here on the dev list...


Yes, that would be fine.  If somebody wants to hack the wiki for 
module

status pages, I'll volunteer to point to the website to them.

  

To start with (because it is easier for people to update) I've
replicated Tim's table on the Wiki
(here:http://wiki.apache.org/harmony/component_development_status). 
I've
linked one component (j.l.mangement) to a seperate page and marked 
it as

started. How about other people marking up the areas that they are
working in?

[Nathan Beyer] I added a LUNI page [1]. I've been trying to implement 
and
stub out all of the missing Java 5 stuff, so I've put some of my 
information

up there.

[1] http://wiki.apache.org/harmony/LUNI

 

Regards,
Tim


 
If you want to make a start on the wiki page that would be good, 
or if

anyone else has an idea for tracking intent...

It's also worth mentioning that I don't believe we should be 
exclusive

about areas of work within, and contribution to, Harmony.

  

Absolutely.


   

While I
understand that the goal is to minimize redundant work, we may find
ourselves in the situation of having more than one implementation of
  

the
   
same APIs (we already saw this happen with 'security' and 
'security2'
contributions).  This is no bad thing as it allows us to evaluate 
the
best technical option (quickly) and proceed with the combined 
group of

experts collaborating on a single code base.  I hope we can continue
  

to
   

do so 'harmoniously'.

  
Choice and competition is good.  This isn't live or die 
competition,

but we can choose best of breed competition, and we all benefit.


There
   

are no losers.

geir


   

Regards,
Tim

karan malhi wrote:

 

Hi,

I am writing the interfaces for the javax.accessibility package. 
Some


of
   
the interfaces are dependent on classes from the awt package. 
Are we

expecting any donations for awt, swing packages?
If donations are not expected then what approach should I take?


Should I
   

start writing stuff for  awt and swing (on which accessibility


depends
   
on) so that accessibility classes compile during a build in 
harmony?

Please guide me here.

Secondly, once a volunteer starts working on a Missing module as
stated on


http://incubator.apache.org/harmony/subcomponents/classlibrary/status.html 

   

, should the status be changed to something else like Work in


progress
   

or something?



  



  






--
Paulex Yang
China Software Development Lab
IBM




Re: jira messages redirected to commits mailing list

2006-03-09 Thread Paulex Yang

Mikhail Loenko wrote:

Actually there are important things that are to be tracked in JIRA.
For example, questions of being non-compatible with either RI or spec.

  
I personally don't care too much about which mailing list the JIRA 
issues are sent to, because Thunderbird can handle them easily and well.


But I DO prefer to discuss on the mailing list, and JIRA can be used to 
only reflect the stage or result of the discussion(that's my 
understanding of status tracking, instead of discussion tracking :-) ), 
another reason I prefer writing email than commenting on JIRA is email 
is easier to be used as discussion - it can be read/replied/commented 
off line, the previous mail can be inline, it can use html format, etc. 
etc. ;-) .


A sample is the JIRA issue 184 about TimeZone serialization 
compatibility, which itself is a concrete case, and I reply this JIRA to 
dev mailing list to discuss more common compatibility issue, and when we 
have some agreement on what to do, I will  update the JIRA issue to 
reflect that. I'm fine in this way.



And as far as the mail traffic on the dev-list is doubling every month [1]
it would be great to make it possible to separate those JIRA issues
that describe minor bugs/fixes from these ones that have conceptual value.
  
I  agree with you that many JIRA issues are not as significant as some 
others, especially as reference for similar case later, I guess there 
are already some marker for this purpose, priority/type/component, etc.

Is it possible?

Thanks,
Mikhail.

[1] http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/


2006/3/7, S. Meslin-Weber [EMAIL PROTECTED]:
  

On Tue, Mar 07, 2006 at 09:19:54AM -0800, Craig Blake wrote:


Sweet, many thanks.
  

+1, I wasn't being flooded but it's nice to be able to separate these
flows without client-side filters.

Steph

--

Stephane Meslin-Weber Email: [EMAIL PROTECTED]
Senior Software Engineer  Web: http://odonata.tangency.co.uk



-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFEDcGV5QGfd9PDUN0RAhcUAJ9FFfB5zsxEiDxo0r/UkRCHobAU8ACfZGy2
9gq36aAlp5OfoHW/hyoyU4s=
=jI+O
-END PGP SIGNATURE-






  



--
Paulex Yang
China Software Development Lab
IBM




Re: [jchevm] Harmony Class Lib does Hello World on a GNU Classpath JVM

2006-03-09 Thread Enrico Migliore

Weldon Washburn wrote:


Archie,

I can now run the below multithread Hello.java on JCHEVM using Apache
Harmony Class Library.  The output toggles between clumps of Hello
World and clumps of * as WindowsXP schedules the two application
threads.  This is behavior I would expect. I use System.out.write()
because System.out.println() does not work yet.   A summary follows:

Mods to JCHEVM to get it to work
1)
I was not able to find the _JC_LIB_ENTRY that is intended for
read/writing files.  I gave up and borrowed
JCNI_java_lang_VMThread_nativeSetPriority().  Instead of actually
changing thread priority, it now does a fprintf(stdout, %s,
priority); fflush(stdout);  Perhaps you can tell me what native
method I should be using.
2)
I commented out some stuff in bootstrap.c that was dragging in
specific gnu classpath *.class files like Lgnu/classpath/Pointer; 
We should discuss the best solution for this item.


Harmony Class Lib that were modified to get it to work:
Runtime.java -- expected wrapper code. e.g., add VMRuntime.exit() to
Runtime.exit()
Method.java, Field.java, Constructor.java -- minor mods
System.java -- added VMSystem.setOut, setErr... etc
ThreadGroup.java  -- wrappers
Class.java  -- wrappers
Object.java -- wrappers
String.java -- implemented a very simple intern()
Thread.java -- added a bunch of fields that JCHEVM accesses, added
code to start() to create ThreadGroup.root if it does not already
exist
Throwable.java  -- wrappers
ClassLoader.java -- commented out abstract keyword on class
definition (too lazy to create a sub-class), added fields that JCHEVM
accesses, added code getSystemClassLoader to actually create an object
and stuff it in systemClassLoader if it does not already exist. added
a bunch of wrapper code.
OSMemory -- hacked out a bunch of stuff that was in the way
OSFileSystem -- add an ugly hack in writeImpl() to revector chars to
Thread.setPriority()

One last item.  I don't know which SVN repository to place this work
in.  Any suggestions?

  Thanks
  Weldon

##

class Hello extends Thread {

public static void main(String args[])
{

  byte [] ba = new byte[64];

  ba [0] = 'H'; ba [1] = 'e'; ba [2] = 'l'; ba [3] = 'l'; ba [4] = 'o';

  ba [5] = ' '; ba [6] = 'W'; ba [7] = 'o'; ba [8] = 'r'; ba [9] =
'l';  ba[10] = 'd'; ba[11] = ' ';


  Thread tr = new Hello();
  tr.start();   

  while (true) {
 for (int qq = 0; qq  12; qq++) {
   System.out.write(ba[qq]);
 }

   }

}
public void run() {
   while(true) {
 System.out.write('*');
   }
}
}

--
Weldon Washburn
Intel Middleware Products Division

 


Hi Weldon,

Well done!

Where did you actually run the test: Cygwin, Linux, or both?

Enrico


Re: Component status pages

2006-03-09 Thread Paulex Yang
I have updated the nio-channels page. Pls. refer to 
http://wiki.apache.org/harmony/NIO-CHANNELS


But there is a very silly question, why several class names, such as 
FileChannel, CharBuffer, etc, are considered as hyper link 
automatically, while some other class name, such as Closeable are 
rendered as plain text?  Actually there are no relevant pages available 
for these names, and I did nothing  special to them. Help me! O:-)


Paulex Yang wrote:

Zoe,

I'm glad to update page for nio-channels component.

zoe slattery wrote:

Hey - looks great Nathan! I'll tidy up the JLM one to look similar

Paulex - it looks to me as though you could create a similar page for 
the NIO, is that right?


Vladimir - is it you who is mainly looking at security? How about a 
similar page on what you are doing?



Nathan Beyer wrote:
 

-Original Message-
From: zoe slattery [mailto:[EMAIL PROTECTED]
Sent: Tuesday, March 07, 2006 7:50 AM
To: harmony-dev@incubator.apache.org
Subject: Component status pages (was:Re: any donations expected for 
awt

and swing?)

Tim Ellison wrote:
  

Geir Magnusson Jr wrote:



Tim Ellison wrote:

  
Probably best to put the 'concerted work in progress' 
description on
  

the
  
wiki, so anyone can join in; the website status page was 
intended to
  

be
  
more of a current state of the code overview.  We should also 
start to

set ourselves some goals, in terms of applications to run, etc.

  
Why not have started on the webpage, and then a like to the 
wiki page

if there is one?

Or just encourage people to ask here on the dev list...


Yes, that would be fine.  If somebody wants to hack the wiki for 
module

status pages, I'll volunteer to point to the website to them.

  

To start with (because it is easier for people to update) I've
replicated Tim's table on the Wiki
(here:http://wiki.apache.org/harmony/component_development_status). 
I've
linked one component (j.l.mangement) to a seperate page and marked 
it as

started. How about other people marking up the areas that they are
working in?

[Nathan Beyer] I added a LUNI page [1]. I've been trying to 
implement and
stub out all of the missing Java 5 stuff, so I've put some of my 
information

up there.

[1] http://wiki.apache.org/harmony/LUNI

 

Regards,
Tim



If you want to make a start on the wiki page that would be good, 
or if

anyone else has an idea for tracking intent...

It's also worth mentioning that I don't believe we should be 
exclusive

about areas of work within, and contribution to, Harmony.

  

Absolutely.


  

While I
understand that the goal is to minimize redundant work, we may find
ourselves in the situation of having more than one 
implementation of
  

the
  
same APIs (we already saw this happen with 'security' and 
'security2'
contributions).  This is no bad thing as it allows us to 
evaluate the
best technical option (quickly) and proceed with the combined 
group of
experts collaborating on a single code base.  I hope we can 
continue
  

to
  

do so 'harmoniously'.

  
Choice and competition is good.  This isn't live or die 
competition,

but we can choose best of breed competition, and we all benefit.


There
  

are no losers.

geir


  

Regards,
Tim

karan malhi wrote:



Hi,

I am writing the interfaces for the javax.accessibility 
package. Some


of
  
the interfaces are dependent on classes from the awt package. 
Are we

expecting any donations for awt, swing packages?
If donations are not expected then what approach should I take?


Should I
  

start writing stuff for  awt and swing (on which accessibility


depends
  
on) so that accessibility classes compile during a build in 
harmony?

Please guide me here.

Secondly, once a volunteer starts working on a Missing module as
stated on


http://incubator.apache.org/harmony/subcomponents/classlibrary/status.html 

  

, should the status be changed to something else like Work in


progress
  

or something?



  



  









--
Paulex Yang
China Software Development Lab
IBM




Re: Component status pages

2006-03-09 Thread Mark Hindess
FileChannel and CharBuffer are consider CamelCase by the wiki software
where as names with only one upper case letter are not.  Try prefixing
them with a '~' character if you wish to prevent the wiki software
making them links - e.g. '~FileChannel'.

-Mark.

On 3/9/06, Paulex Yang [EMAIL PROTECTED] wrote:
 I have updated the nio-channels page. Pls. refer to
 http://wiki.apache.org/harmony/NIO-CHANNELS

 But there is a very silly question, why several class names, such as
 FileChannel, CharBuffer, etc, are considered as hyper link
 automatically, while some other class name, such as Closeable are
 rendered as plain text?  Actually there are no relevant pages available
 for these names, and I did nothing  special to them. Help me! O:-)


Re: Component status pages

2006-03-09 Thread Chris Gray
On Thursday 09 March 2006 11:41, Paulex Yang wrote:


 But there is a very silly question, why several class names, such as
 FileChannel, CharBuffer, etc, are considered as hyper link
 automatically, while some other class name, such as Closeable are
 rendered as plain text?  Actually there are no relevant pages available
 for these names, and I did nothing  special to them. Help me! O:-)

Probably because the wiki software considers any word with embedded capitals 
to be a WikiName, and hence a link to a page of that name within the wiki. 
You'll have to consult the documentation for the wiki software to find how to 
work around this feature. (A good candidate for the most annoying thing ever 
invented, if you ask me).

Have fun,

Chris

-- 
Chris Gray/k/ Embedded Java Solutions  BE0503765045
Embedded  Mobile Java, OSGihttp://www.k-embedded-java.com/
[EMAIL PROTECTED] +32 3 216 0369



Re: [jchevm] Harmony Class Lib does Hello World on a GNU Classpath JVM

2006-03-09 Thread Weldon Washburn
On 3/9/06, Enrico Migliore [EMAIL PROTECTED] wrote:
 Hi Weldon,

  Well done!

  Where did you actually run the test: Cygwin, Linux, or both?

I did all the work on Cygwin.  I ran out of time for installing vmware
and linux on my laptop.


 Enrico



--
Weldon Washburn
Intel Middleware Products Division


Re: [jira] Updated: (HARMONY-156) InputStreamReader.getEncoding() and OutputStreamWriter.getEncoding() should return a historical charset name.

2006-03-09 Thread Dmitry M. Kononov
Paulex,

I have some thoughts about the patch. It looks good but the following two
things:

1) java/io/InputStreamReader.
getHistoricalName(String name) should not be public I think.

2) java/io/OutputStreamWriter.getEncoding().
You probably meant

if (!isOpen()) {
return null;
}

instead of

if (encoder == null) {
return null;
}

since this method returns null if the stream has been closed.

Thanks.

On 3/8/06, Paulex Yang (JIRA) [EMAIL PROTECTED] wrote:

 [ http://issues.apache.org/jira/browse/HARMONY-156?page=all ]

 Paulex Yang updated HARMONY-156:
 

Attachment: patch_156.txt
patch_156_test.txt

 As no one has better idea than my prior proposal, i.e., save the mapping
 between historical name and canonical name, I created the patch for this
 solution. The affected package is luni/java.io.

 --
 Dmitry M. Kononov
 Intel Managed Runtime Division


Re: Platform dependent code placement (was: Re: repo layout again)

2006-03-09 Thread Oliver Deakin

Time to resurrect this thread again :)

With the work that Mark and I have been doing in HARMONY-183/155/144/171 
we will be at a point soon where all the shared code has been taken out 
of the native-src/win.IA32 and native-src/linux.IA32 directories and 
combined into native-src/shared. Once completed we will be in a good 
position to reorganise the code into whatever layout we choose, and 
refactor the makefiles/scripts to use gmake/ant across both platforms. I 
dont think previous posts on this thread really reached a conclusion, so 
Ill reiterate the previous suggestions:


1) Hierarchy of source - two suggestions put forward so far:
   - Keep architecture and OS names solely confined to directory names. 
So, for example, we could have:

  src\main\native\
 shared\
 unix\
 windows\
 windows_x86\
 solaris_x86\
 All windows_x86 specific code will be contained under that 
directory, any generic windows code will be under windows\, and code 
common to all

 platforms will be under shared\ (or whatever name).
 So when looking for a source/header file on, for example, windows 
x86 the compiler would first look in windows_x86, then windows, then common.


   - Alternatively, have directory names as above, but also allow the 
OS and arch to be mixed into file names. To quote Andreys previous mail [1]:
 Files in the source tree are selected for compilation based on 
the OS or ARCH attribute values which may (or may not appear) in a file 
or directory name.

  Some examples are:
src\main\native\solaris\foo.cpp
means file is applicable for whatever system running Solaris;

   src\main\native\win\foo_ia32.cpp
   file is applicable only for  Windows / IA32;

   src\main\native\foo_ia32_em64t.cpp
   file can be compiled for whatever OS on either IA32 or EM64T 
architecture, but nothing else.
 Files will be selected using a regex expression involving the OS 
and arch descriptors. This is intended to cut down duplication between 
source directories.


Personally I prefer the first system as it is simple to maintain, keeps 
file names consistent and concise and allows developers to easily keep 
track of function location.
For example, as Graeme pointed out in [2], the developer will always 
know that hyfile_open() is defined in hyfile.c.


In addition, I don't believe that the second system will give us much of 
a decrease in the number of duplicated files. For example, if a piece of 
code is unique to only linux
and windows on x86, will the file be named foo_linux_windows_x86.c? How 
will the build scripts be able to determine whether this means all linux 
platforms plus
windows_x86 or windows and linux only on x86? In these cases we will 
either end up duplicating foo_x86.c in the windows and linux directories 
or creating an extra directory
called x86 which contains foo_windows_linux.c. Potentially we will 
either get similar amounts of duplication, or more directories than the 
first method, and because there
is no hard rule on the layout (you can choose directory or filenames to 
include OS/arch) there is no guarantee where a developer will choose to 
put their code in these situations.



2) Build tools - there have been two previous suggestions:
   - Use gmake and VPATH to complement the first layout described 
above. This could lead to platform independent makefiles stored in the 
shared\ directory of each module
 that include platform specifics (such as build file lists, 
compiler flags etc) from a centralised set of resources.


   - Alternatively, use Ant to select the set of files to be compiled 
by employing regex expressions. This sits well with the second layout 
described above (although could also
 be applied to the first) and a regex expression has been described 
by Nikolay in [3].


I prefer the use of gmake here. We can use generic makefiles across 
platforms and pointing the compiler at the right files in the first 
layout above is as easy as setting VPATH to, for example,
windows_x86:windows:shared. I think that complex regex expressions will 
be harder to maintain (and initially understand!).



Opinions? Once we agree on ideas, perhaps we could put together a 
Wiki/website(?) page describing layout, tools and a list of OS/arch 
names to use.


Oliver Deakin
IBM United Kingdom Limited

[1] 
http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/[EMAIL PROTECTED]
[2] 
http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/[EMAIL PROTECTED]
[3] 
http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/[EMAIL PROTECTED]




Re: Which applications run using Harmony classes?

2006-03-09 Thread zoe slattery

Hi Nathan

Nathan Beyer wrote:

Have you tried putting Xerces, Xalan and the xml-commons JARs in the
bootclasspath? I believe the intent is to use that for the JAXP code anyway.
  


No and yes. I haven't because I wasn't actually trying to run Tomcat 
with Harmony classes, I was just using the IBM SDK to see what classes 
Tomcat loads (whilst doing a few basic tasks) and then work out which of 
them we don't have in Harmony. You are completely right about the Xerces 
and Xalan ones, I don't expect them ever to be in Harmony SVN. Perhaps I 
should have taken them off the list.


The reason for looking at class loads like this is that I think it gives 
us a good idea of what it's worth trying to run now and what should be 
left until we have a more complete implementation. Does this make sense?
  

-Original Message-
From: zoe slattery [mailto:[EMAIL PROTECTED]
Sent: Monday, March 06, 2006 3:25 AM
To: harmony-dev@incubator.apache.org
Subject: Re: Which applications run using Harmony classes?

I like Mark's answer best!

Back to the subject though - I've updated the wiki (here
http://wiki.apache.org/harmony/Apache_Tomcat) with the list of API
classes that Tomcat loaded that aren't in SVN.

Having Harmony-39 and Harmony-88 in SVN will make this list a lot
shorter :-).


Geir Magnusson Jr wrote:


Mark Hindess wrote:
  

On 03/03/06, Tim Ellison [EMAIL PROTECTED] wrote:


What is 'perl' ?
(answers in 15 words or fewer)
  

What you choose when you want to code something useful in 15 words or
fewer?



A write-only, self-obfuscating programming language that relies on
punctuation and side effects.

  



  




Re: enhanced/classlib/trunk/depends

2006-03-09 Thread George Harley

Jean-frederic Clere wrote:

Tim Ellison wrote:


Jean-frederic Clere wrote:
 


Mark Hindess wrote:

  

Using touch .now; sleep 2; (cd make; ant) ; find depends ... \!
-anewer .now on both builds shows that the only files that aren't
accessed by either build are the README files and:

depends/files/java.security

That probably isn't needed since the build uses:

modules/security/src/java.home/lib/security/java.security

instead.

But that's the only one that's obviously redundant.




Yep... I would prefer to classlib depends directory a readme that tells
classlib depends on:
CU4C version 3.4 (how to get and install it).
ICU4JNI
FDLIBM
zlib
  



Like this?
http://svn.apache.org/viewcvs.cgi/incubator/harmony/enhanced/classlib/trunk/depends/oss/README.txt?view=markup 

 

The README.txt doesn't tell how depends/jars/icu4j_3_4.jar is build, 
does it?



The README.txt contains the link to the ICU4J home where the binary jars 
may be downloaded from. You can also pick up source and build 
instructions from there if you want. Building the icu4j jar should not 
have to be done for Harmony.


Best regards,
George



Cheers

Jean-Frederic


Regards,
Tim

 


Cheers

Jean-Frederic

  

Regards,
Mark.

On 04/03/06, Jean-frederic Clere [EMAIL PROTECTED] wrote:




Hi,

There are a lot of objects in this repos directory, do we really need
them?

Cheers
Jean-Frederic
 
  

--
Mark Hindess [EMAIL PROTECTED]
IBM Java Technology Centre, UK.




  


 








Re: How to deal with this kind of serialization compatibility issue?

2006-03-09 Thread George Harley

Paulex Yang wrote:

Mikhail

Mikhail Loenko wrote:

2006/3/7, Geir Magnusson Jr [EMAIL PROTECTED]:
 

This is somewhat terrifying, isn't it?  Are there really references to
com.sun.* in serialized API objects?



Yes, there are.
For example, TimeZone.ser produced by the example from the JIRA issue
that started this thread, refers to sun.util.calendar.ZoneInfo
  
yes, and as I mentioned before, the TimeZone is composited by other 
serializable class, so that all these classes cannot be serialization 
compatible, feel like something as cancer :(
Can we list all the popular applications that exchange by serialized 
objects

and identify which objects do they send/receive?
  
Rather than investigating almost infinite and uncertain(i.e. how to 
define popular?) applications, I'd like to test all the serializable 
class in JSE, at least it is a certain and limited set, we can just 
find all these kind of incompatibilities one by one, and take some 
actions.


Hi Paulex,

To restrict the scope of the set of serializable types to be 
compatibility tested we could start by looking for those that are 
abstract types which get instantiated via factory methods. The abstract 
class java.util.TimeZone is a perfect example while concrete type 
java.util.SimpleTimeZone does successfully serialize/de-serialize across 
Harmony and the RI.


Such a testing effort still sounds pretty daunting though.



Currently, we have three options:
1. let it be, and speak it loudly in Harmony JavaDoc
2. try to compatible with RI, by creating some adapter with RI's 
serializable class name, i.e. com.sun.*, etc, and the behavior is even 
not necessarily compatible with RI.  we can even separate them all to 
a new component named as compatibility, so that it is easily modify 
them when RI changes its mind and improve. Not sure if it is legally 
fine.
3. also try to compatible with RI, by maintaining pairs in 
ObjectInputStream, this approach maybe has less legal risk? (I have no 
idea in fact.)


Any other good ideas?

And before all of this, I cannot agree with Geir more - we should make 
Sun be aware of this issue.


Interestingly enough, the RI Javadoc specification for the 
java.util.TimeZone factory method does contain the telling phrase the 
source of the default TimeZone may vary with implementation. Sure, on 
its own that may not emphasise that a user could hit 
serialization/de-serialization problems if working across different 
implementations - but it hopefully does serve to alert users that the 
type of JRE does matter when invoking that method (and perhaps writing 
mission-critical applications that rely on storing the returned object 
in serialized form is not a great idea). At a very minimum, the quoted 
RI Javadoc (and equivalents throughout the rest of the Javadoc files) 
should be expanded to explain the potential serialization issue when a 
concrete type depends on the JRE.


Best regards,
George


Thanks,
Mikhail

  







Re: [jchevm] Harmony Class Lib does Hello World on a GNU Classpath JVM

2006-03-09 Thread Archie Cobbs

Weldon Washburn wrote:

I can now run the below multithread Hello.java on JCHEVM using Apache
Harmony Class Library.  The output toggles between clumps of Hello
World and clumps of * as WindowsXP schedules the two application
threads.  This is behavior I would expect. I use System.out.write()
because System.out.println() does not work yet.   A summary follows:


Wow! Impressive achievment  very cool.


Mods to JCHEVM to get it to work
1)
I was not able to find the _JC_LIB_ENTRY that is intended for
read/writing files.  I gave up and borrowed
JCNI_java_lang_VMThread_nativeSetPriority().  Instead of actually
changing thread priority, it now does a fprintf(stdout, %s,
priority); fflush(stdout);  Perhaps you can tell me what native
method I should be using.


Classpath supplies its own native methods for file I/O. That is,
you can implement file I/O normally using normal native methods.
This is not something the VM needs to be directly involved with.
So the fix would be for classlib to implement this itself.

There's no reason you couldn't write a gnu.classpath.Pointer
class if you wanted to. There's no copyright on the package
name :-)

By the way jchevm's Thread.setPriority() doesn't work because
I don't know how to implement it using POSIX.


2)
I commented out some stuff in bootstrap.c that was dragging in
specific gnu classpath *.class files like Lgnu/classpath/Pointer; 
We should discuss the best solution for this item.


This is use as part of the NIO implementation for direct buffers.
A Pointer object simply contains an int or long that holds a void *.


One last item.  I don't know which SVN repository to place this work
in.  Any suggestions?


You could create a branch of classlib in the sandbox.

Cheers,
-Archie

__
Archie Cobbs  *CTO, Awarix*  http://www.awarix.com


Re: [jchevm] Harmony Class Lib does Hello World on a GNU Classpath JVM

2006-03-09 Thread Weldon Washburn
On 3/9/06, Archie Cobbs [EMAIL PROTECTED] wrote:
 Weldon Washburn wrote:
  I can now run the below multithread Hello.java on JCHEVM using Apache
  Harmony Class Library.  The output toggles between clumps of Hello
  World and clumps of * as WindowsXP schedules the two application
  threads.  This is behavior I would expect. I use System.out.write()
  because System.out.println() does not work yet.   A summary follows:

 Wow! Impressive achievment  very cool.

  Mods to JCHEVM to get it to work
  1)
  I was not able to find the _JC_LIB_ENTRY that is intended for
  read/writing files.  I gave up and borrowed
  JCNI_java_lang_VMThread_nativeSetPriority().  Instead of actually
  changing thread priority, it now does a fprintf(stdout, %s,
  priority); fflush(stdout);  Perhaps you can tell me what native
  method I should be using.

 Classpath supplies its own native methods for file I/O. That is,
 you can implement file I/O normally using normal native methods.
 This is not something the VM needs to be directly involved with.
 So the fix would be for classlib to implement this itself.

I suspected this.  But I could not figure out how to add a new entry
into _JC_LIB_ENTRY.  I tried but got a bunch of misc error messages so
I gave up.  If you give me some hints on how to add enties to
_JC_LIB_ENTRY, I will take a second stab at it.


 There's no reason you couldn't write a gnu.classpath.Pointer
 class if you wanted to. There's no copyright on the package
 name :-)

I just now wrote an Apache Harmony version of java.lang.Pointer and
java.lang.Pointer32.  It works fine.  I put it in the
Harmony/modules/kernel/src/main/java/java/lang directory.  It can be
move to another place and re-packaged once we figure out where it
should go.


 By the way jchevm's Thread.setPriority() doesn't work because
 I don't know how to implement it using POSIX.

  2)
  I commented out some stuff in bootstrap.c that was dragging in
  specific gnu classpath *.class files like Lgnu/classpath/Pointer;
  We should discuss the best solution for this item.

 This is use as part of the NIO implementation for direct buffers.
 A Pointer object simply contains an int or long that holds a void *.

  One last item.  I don't know which SVN repository to place this work
  in.  Any suggestions?

 You could create a branch of classlib in the sandbox.

Tim Ellison, Geir Magnusson,
I could create a ClassLib branch in the sandbox and call it
kernel_path.  It would only contain the generic files needed to glue
a GNU ready JVM to Harmony Class Lib.  Thoughts?



 Cheers,
 -Archie

 __
 Archie Cobbs  *CTO, Awarix*  http://www.awarix.com



--
Weldon Washburn
Intel Middleware Products Division


RE: ITC's Contribution

2006-03-09 Thread Iris Gastañaga
Hi Tim, 
  We have read the contribution policy and we are ready to sign 
the following documents -we've questions on some of them, so please 
advice-:
 
- SG  CCLA (http://www.apache.org/licenses/cla-corporate.txt ): 
Signed by the CEO of ITC. The CCLA should list the team leaders 
as authorized contributors 
 
- Bulk Contribution Checklist
  (http://incubator.apache.org/harmony/bulk_contribution_checklist.txt):

One for each package, signed by the team leader, and specifying 
the list of developers (authors) 
 
- ICLA (http://www.apache.org/licenses/icla.txt): 
One for each person designated as authorized contributor (or 
should it be one for each author?) 
 
- ACQ (http://incubator.apache.org/harmony/auth_cont_quest.txt ): 
One for each person designated as authorized contributor (or 
should it be one for each author?) 
 
Is this ok? where should we send this documents?
 
Thanks, 
 


-Mensaje original-
De: Tim Ellison [mailto:[EMAIL PROTECTED] 
Enviado el: Lunes, 06 de Marzo de 2006 01:54 p.m.
Para: harmony-dev@incubator.apache.org
Asunto: Re: ITC's Contribution

Iris Gastañaga wrote:
 Hi all,
  
 On behalf of ITC (Cordoba Institute of Technology)from Argentina.I
 want to offer a code contribution of the 
 following packages:
  
 - java.math(led by Daniel Fridlender)
 - java.crypto  (led by Miguel Montes)
 - java.rmi (led by Daniel Gándara)
  
 Last year the ITC decided to start a clean-room java package
 development 
 project; now we are proud to make this donation and we hope it be
 accepted as a valid 
 contribution (which we believe it is).

That is fantastic Iris! thanks.

 Having said this, I do have a few questions:
  
 a) Next Steps?
   which are the next steps? we have read the contribution policy and
we
 are 
 ok with that; we'll send aditional questions regarding documents to be

 signed on a separated email.

We can help with a quick overview of the contribution requirements for
acceptance -- that would be the logical next steps.  Looks like the
other questions have been pulled out into separate threads, so let's
deal with them there.

Regards,
Tim

 b) Harmony 1.5?
 we have developed J2SE 1.5 compliant/dependant packages -following the
 specs 
 of harmony project-; but we see that currently Harmony is not 1.5 but
 1.4. 
 Is there an schedule or plan to get Harmony J2SE 1.5?

 c) Some still missing components...
 we have checked some pre-conditions before making this announcement
and
 we 
 found that there are some components we need (i.e.: concurrent) which
 are 
 not on Harmony yet.  Is someone working on those missing components?
  
 we'll be waiting for comments,
  
 Sincerely,
  
 Ing. Iris Gastañaga
 --
 Executive Director
 Instituto Tecnológico Córdoba
 Córdoba Business Tower, Piso 15
 Tel: +54 (351) 5710022 / 23
 www.fitc.unc.edu.ar
 ---
 PS: we will send mails with specific package information.
 PS1: we do know that java.math and java.crypto have already been
 donated, 
 but we do believe our code is a valid donation.
 PS2: for each package we have developed a set of test cases (public
api)
 
 that we are willing to donate too.
  
  
  
  
 

-- 

Tim Ellison ([EMAIL PROTECTED])
IBM Java technology centre, UK.



Re: [jchevm] Harmony Class Lib does Hello World on a GNU Classpath JVM

2006-03-09 Thread Archie Cobbs

Weldon Washburn wrote:

Classpath supplies its own native methods for file I/O. That is,
you can implement file I/O normally using normal native methods.
This is not something the VM needs to be directly involved with.
So the fix would be for classlib to implement this itself.


I suspected this.  But I could not figure out how to add a new entry
into _JC_LIB_ENTRY.  I tried but got a bunch of misc error messages so
I gave up.  If you give me some hints on how to add enties to
_JC_LIB_ENTRY, I will take a second stab at it.


You would not modify that code (or any other part of jchevm) at all.
Instead, you'd build a JNI native library as part of classlib and
then load in your Java code it via System.loadLibrary(). This is just
the usual Java code with native library pattern.

The _JC_LIB_ENTRY() stuff is only for native methods that are provided
by jchevm itself, e.g., java.lang.VMThread.start(), Runtime.gc(), etc.

-Archie

__
Archie Cobbs  *CTO, Awarix*  http://www.awarix.com


Re: Component status pages

2006-03-09 Thread Geir Magnusson Jr

Or stop using the [EMAIL PROTECTED]@ wiki for documentation...  :D

Patches for website welcome!

geir


Mark Hindess wrote:

FileChannel and CharBuffer are consider CamelCase by the wiki software
where as names with only one upper case letter are not.  Try prefixing
them with a '~' character if you wish to prevent the wiki software
making them links - e.g. '~FileChannel'.

-Mark.

On 3/9/06, Paulex Yang [EMAIL PROTECTED] wrote:

I have updated the nio-channels page. Pls. refer to
http://wiki.apache.org/harmony/NIO-CHANNELS

But there is a very silly question, why several class names, such as
FileChannel, CharBuffer, etc, are considered as hyper link
automatically, while some other class name, such as Closeable are
rendered as plain text?  Actually there are no relevant pages available
for these names, and I did nothing  special to them. Help me! O:-)





Re: How to deal with this kind of serialization compatibility issue?

2006-03-09 Thread Mikhail Loenko
Geir

2006/3/7, Geir Magnusson Jr [EMAIL PROTECTED]:
 I see it as an opportunity. :)

 We should ask Sun what to do  they are the go to people for
 compatibility questions, right?

Does it mean that you will ask Sun? :)

Thanks,
Mikhail.



 geir


 George Harley wrote:
  Thanks Chris, your experience on this matter is very welcome. Even if it
  does make me feel a little depressed ;-)
 
  Best regards,
  George
 
 
  Chris Gray wrote:
  Hi George,
 
 
  I wonder what lessons other class library development teams have learned
  in this area ?
 
 
  I guess that our experience from Wonka can be summed up as
  serialization is a PITA. Most of the time the problem can be solved,
  you just never know where the next one will pop up. We advise our
  cutomers against using serialization as a way to exchange data between
  VMs - use XML, use Hessian, use anything except serialization. That
  goes for RMI too. I guess it's easier for us to take this line in an
  embedded environment than in the context of, say, J2EE.
 
  Good luck,
 
  Chris
 
 
 



Re: How to deal with this kind of serialization compatibility issue?

2006-03-09 Thread Stepan Mishura
Hi Paulex,


Currently, we have three options:
1. let it be, and speak it loudly in Harmony JavaDoc


I'd choose this option. It is open and honest - if we get unknown class for
deserialization (say sun.util.calendar.ZoneInfo or
com.someCompanyName.util.MyTimeZone) we should not do any tricks and create
illusion for a user that we know how to deserialize it. Also I don't think
that to be compatible means to provide compatible implementation of
com.sun.* classes.

IMHO, the best we can do in Harmony implementation is not to do the same
serialization bug. I mean the following: factory methods of TimeZone class
should return instances of SimpleTimeZone class. So Harmony implementation
will produce serial form that will be deserializable on any other
implementation. However I don't know whether it is possible or not to
implement in this way.


2. try to compatible with RI, by creating some adapter with RI's
serializable class name, i.e. com.sun.*, etc, and the behavior is even
not necessarily compatible with RI.  we can even separate them all to a
new component named as compatibility, so that it is easily modify them
when RI changes its mind and improve. Not sure if it is legally fine.

IMHO, it is not the option. The word 'adapter' is used here only to soften
the fact that we have to implement a set of com.sun.* classes. And
definitely they won't be compatible. So without them we are not
compatible and with them were are not still compatible :-) Why we should
do this?

3. also try to compatible with RI, by maintaining pairs in
ObjectInputStream, this approach maybe has less legal risk? (I have no
idea in fact.)


Not quite clear what you mean. Do you suggest changing serialization
framework? I mean that if it detects during deserialization, for example,
sun.util.calendar.ZoneInfo it will substitute it with
o.a.h.util.calendar.ZoneInfo. Right?

Thanks,
Stepan Mishura
Intel Middleware Products Division



On 3/8/06, Paulex Yang [EMAIL PROTECTED] wrote:

 Mikhail

 Mikhail Loenko wrote:
  2006/3/7, Geir Magnusson Jr [EMAIL PROTECTED]:
 
  This is somewhat terrifying, isn't it?  Are there really references to
  com.sun.* in serialized API objects?
 
 
  Yes, there are.
  For example, TimeZone.ser produced by the example from the JIRA issue
  that started this thread, refers to sun.util.calendar.ZoneInfo
 
 yes, and as I mentioned before, the TimeZone is composited by other
 serializable class, so that all these classes cannot be serialization
 compatible, feel like something as cancer :(
  Can we list all the popular applications that exchange by serialized
 objects
  and identify which objects do they send/receive?
 
 Rather than investigating almost infinite and uncertain(i.e. how to
 define popular?) applications, I'd like to test all the serializable
 class in JSE, at least it is a certain and limited set, we can just find
 all these kind of incompatibilities one by one, and take some actions.

 Currently, we have three options:
 1. let it be, and speak it loudly in Harmony JavaDoc
 2. try to compatible with RI, by creating some adapter with RI's
 serializable class name, i.e. com.sun.*, etc, and the behavior is even
 not necessarily compatible with RI.  we can even separate them all to a
 new component named as compatibility, so that it is easily modify them
 when RI changes its mind and improve. Not sure if it is legally fine.
 3. also try to compatible with RI, by maintaining pairs in
 ObjectInputStream, this approach maybe has less legal risk? (I have no
 idea in fact.)

 Any other good ideas?

 And before all of this, I cannot agree with Geir more - we should make
 Sun be aware of this issue.
  Thanks,
  Mikhail
 
 


 --
 Paulex Yang
 China Software Development Lab
 IBM





--
Thanks,
Stepan Mishura
Intel Middleware Products Division


[jchevm] generic Harmony_Class_Lib/GNU_Classpath adapter is on JIRA Harmony-192

2006-03-09 Thread Weldon Washburn
Archie,
Please take a look at bootstrap.c  It would be great if we can do the
final integration in the next 2 days while this code is still fresh in
my mind.
   Thanks
 Weldon

--
Weldon Washburn
Intel Middleware Products Division