Planet JDKhttp://planetjdk.orgNews and views from the Java SE Development-Kit CommunityVariousDonald Smith: #OpenJDK interview in Java Magazine &#8211; direct link, no reg required.http://openj.dk/2012/05/16/openjdk-interview-in-java-magazine-direct-link-no-reg-required/0 <div xmlns="http://www.w3.org/1999/xhtml">I saw a few comments about the OpenJDK Interview I did in the most recent Java magazine, and some concern friends raised that it’s a “register to read” publication.  I highly recommend Java magazine to anyone in the Java Community, … <a shape="rect" href="http://openj.dk/2012/05/16/openjdk-interview-in-java-magazine-direct-link-no-reg-required/">Continue reading <span>→</span></a></div> UncategorizedWed, 16 May 2012 16:31:49 GMThttp://openj.dk/?p=131DonaldOJDK2012-05-16T16:31:49ZDalibor Topić: Next Gig: LinuxTag on May 23rd & 24thhttp://robilad.livejournal.com/119975.html <div xmlns="http://www.w3.org/1999/xhtml">I'll be <a shape="rect" href="http://www.linuxtag.org/2012/de/program/program/vortragsdetails.html?no_cache=1&amp;talkid=183">speaking</a> at LinuxTag in Berlin, Germany on JDK 7 Updates in OpenJDK. When I'm not speaking, I'll be mostly be around at the Oracle <a shape="rect" href="https://blogs.oracle.com/linux/entry/guten_tag_oracle_is_at">booth</a> on Wednesday &amp; Thursday.See you there!</div> Wed, 16 May 2012 11:20:15 GMTurn:lj:livejournal.com:atom1:robilad:1199752012-05-16T11:20:15ZDalibor Topić: QotD: Donald Smith on Community Stars in OpenJDKhttp://robilad.livejournal.com/119557.html <div xmlns="http://www.w3.org/1999/xhtml">Donald Smith, Director of Product Management in the Java Platform Group at Oracle, in an <a shape="rect" href="http://www.oraclejavamagazine-digital.com/javamagazine/20120506#pg32">interview</a> for the latest edition of the Java Magazine.</div> Wed, 16 May 2012 10:40:34 GMTurn:lj:livejournal.com:atom1:robilad:1195572012-05-16T10:40:34ZAndrew Hughes: IcedTea6 1.10.7 &#38; 1.11.2 Released!http://blog.fuseyism.com/index.php/2012/05/14/icedtea6-1-10-7-1-11-2-released/0 <div xmlns="http://www.w3.org/1999/xhtml">The IcedTea project provides a harness to build the source code from OpenJDK6 using Free Software build tools, along with additional features such as a PulseAudio sound driver and support for alternative virtual machines. A new set of releases is now available for IcedTea6, which uses OpenJDK6 as its base: IcedTea6 1.10.7 (based on OpenJDK6 [...]</div> IcedTeaOpenJDKMon, 14 May 2012 12:56:22 GMThttp://blog.fuseyism.com/?p=275gnu_andrew2012-05-14T12:56:22ZDalibor Topić: OpenJDK 7u4 Source Code Bundle Publishedhttp://robilad.livejournal.com/119265.html <div xmlns="http://www.w3.org/1999/xhtml">As Edvard Wendelin <a shape="rect" href="http://mail.openjdk.java.net/pipermail/jdk7u-dev/2012-May/002994.html">announced</a> on the jdk7u-dev mailing list, the source code bundle corresponding to the JDK 7 Updates jdk7u/jdk7u4 Mercurial forest is now available for <a shape="rect" href="http://jdk7.java.net/source.html">download.</a>Happy packaging!</div> Sat, 12 May 2012 11:51:56 GMTurn:lj:livejournal.com:atom1:robilad:1192652012-05-12T11:51:56ZDalibor Topić: QotD: Linus Torvalds on GitHub Pull Requestshttp://robilad.livejournal.com/118925.html <div xmlns="http://www.w3.org/1999/xhtml">Linus Torvalds <a shape="rect" href="https://github.com/torvalds/linux/pull/17#issuecomment-5654674">commenting</a> on a GitHub pull request to the Linux kernel.</div> Sat, 12 May 2012 11:10:11 GMTurn:lj:livejournal.com:atom1:robilad:1189252012-05-12T11:10:11ZJames Gosling: ForgeRock is hiringhttp://nighthacks.com/roller/jag/entry/forgerock_is_hiring <div xmlns="http://www.w3.org/1999/xhtml"><a shape="rect" href="http://forgerock.com/" />The folks at <a shape="rect" href="http://forgerock.com/">ForgeRock</a> are <a shape="rect" href="http://forgerock.com/content/were-hiring">hiring</a>. They do development and support of the OpenDS/OpenAM/OpenIDM open source identity management products that had been the latest versions of the Sun Identity Manager. It's heavily ex-Sun folks. They've been around since Sun disappeared, but they just recently got funding to allow them to expand. The current employees are distributed all over the place. They have a new ...</div> /JavaFri, 11 May 2012 17:07:45 GMThttp://nighthacks.com/roller/jag/entry/forgerock_is_hiringJames Gosling2012-05-11T17:07:45ZDonald Smith: One year back at Oracle and my first year of #openjdkhttp://openj.dk/2012/05/11/one-year-back-at-oracle-and-my-first-year-of-openjdk/0 <div xmlns="http://www.w3.org/1999/xhtml">Today marks the end of exactly one year since I started back at Oracle, working on OpenJDK and other things.  It’s been a heck of a year, and a lot has changed.  Many things I thought would be hard, turned … <a shape="rect" href="http://openj.dk/2012/05/11/one-year-back-at-oracle-and-my-first-year-of-openjdk/">Continue reading <span>→</span></a></div> UncategorizedFri, 11 May 2012 15:38:55 GMThttp://openj.dk/?p=126DonaldOJDK2012-05-11T15:38:55ZJeroen Frijters: Using MethodRental.SwapMethodBody to do Method Level JIT Compilationhttp://weblog.ikvm.net/PermaLink.aspx?guid=977499e8-0a70-4744-9482-5b6132504055http://weblog.ikvm.net/Trackback.aspx?guid=977499e8-0a70-4744-9482-5b6132504055http://weblog.ikvm.net/pingback.aspxhttp://weblog.ikvm.net/PermaLink.aspx?guid=977499e8-0a70-4744-9482-5b6132504055http://weblog.ikvm.net/CommentView.aspx?guid=977499e8-0a70-4744-9482-5b6132504055http://weblog.ikvm.net/SyndicationService.asmx/GetEntryCommentsRss?guid=977499e8-0a70-4744-9482-5b61325040552

IKVM.NET has always had a class granularity JIT. Whenever a type is first "used" the CLR fires the AppDomain.TypeResolve event and at that point the IKVM.NET runtime compiles the Java bytecode to CIL for all of the methods in the class.

I don't recall my exact thought process, but I assume that when I started on IKVM.NET I looked at MethodRental.SwapMethodBody and was scared away by the lack of documentation and the fact that it requires full trust and manually constructing a method body blob.

Later on, I focussed more on static compilation and didn't care too deeply about dynamic performance. So I never revisited this decision. However, recently I have been thinking about dynamic performance, triggered by potential invokedynamic optimizations.

To get reacquainted with MethodRental.SwapMethodBody I wrote a small program that dynamically creates the following class:

class Frob {
public Frob(int i) { Console.WriteLine(i); } public static void M(int i) { Console.WriteLine(); Console.WriteLine(new Frob(i)); } }

The code is available here: MethodRentalDemo.cs

When the constructor and the M method are first created, the method body is defined, using MethodBuilder.CreateMethodBody, as a simple trampoline that calls Program.JIT to just-in-time generate the actual CIL for the method.

Here's the managed JIT trampoline CIL code for Frob.M:

ldtoken    method void Frob::M(int32))
call       void Program::JIT(valuetype System.RuntimeMethodHandle)
jmp        void Frob::M(int32)

The jmp instruction is interesting, it transfers control to a method that takes the same arguments as the current method and passes the current argument values. Here it is used to jump to a new version the same method, where the method body has been replaced with the actual CIL code.

The native code that is generated for the trampoline is:

  x86 x64
 
push   ebp 
mov    ebp,esp 
sub    esp,8 
xor    eax,eax 
mov    dword ptr [ebp-8],eax 
mov    dword ptr [ebp-4],ecx 
lea    ecx,[ebp-8] 
mov    edx,6231A0h 
call   680065F0 
lea    eax,[ebp-8] 
push   dword ptr [eax] 
call   FFE39B70 
mov    ecx,dword ptr [ebp-4] 
mov    esp,ebp 
pop    ebp 
jmp    dword ptr ds:[006231A8h] 
 
push   rbx 
sub    rsp,20h 
mov    ebx,ecx 
lea    rcx,[00257330h] 
call   FFFFFFFFF35036D0 
mov    rcx,rax 
call   00000000001C84C0 
mov    ecx,ebx 
lea    rax,[00247D80h] 
add    rsp,20h 
pop    rbx 
jmp    rax
add
               rsp,20h pop rbx ret

(Note that the x64 JIT generates three unreachable instructions at the end. Shown in gray.)

When this code is invoked, it loads the method handle and calls the Program.JIT method. After that returns, it invokes the new method body that the JIT method installed using MethodRental.SwapMethodBody.

When run on the CLR* this all appears to work as you'd hope, but unfortunately that's no guarantee that it will work in the real world. Googling (and experience) suggests that there aren't many** users of MethodRental.SwapMethodBody, so it is quite possible that there are some showstoppers lurking somewhere.

* It does not work on Mono at the moment.
** I found one reference to it in a paper on RubySharp from 2004.

<div xmlns="http://www.w3.org/1999/xhtml"><p> IKVM.NET has always had a class granularity JIT. Whenever a type is first "used" the CLR fires the <a shape="rect" href="http://msdn.microsoft.com/en-us/library/system.appdomain.typeresolve.aspx">AppDomain.TypeResolve</a> event and at that point the IKVM.NET runtime compiles the Java bytecode to CIL for all of the methods in the class. </p></div> Fri, 11 May 2012 10:24:32 GMThttp://weblog.ikvm.net/PermaLink.aspx?guid=977499e8-0a70-4744-9482-5b61325040552012-05-11T10:24:32Z
Dalibor Topić: QotD: Alan Bateman on Project Jigsaw Preview Buildshttp://robilad.livejournal.com/118605.html <div xmlns="http://www.w3.org/1999/xhtml">Alan Bateman in a <a shape="rect" href="http://mail.openjdk.java.net/pipermail/jigsaw-dev/2012-May/002536.html">post</a> to the jigsaw-dev mailing list.</div> Thu, 10 May 2012 22:06:45 GMTurn:lj:livejournal.com:atom1:robilad:1186052012-05-10T22:06:45ZMark Wielaard: FSF statement on jury&#8217;s partial verdict in Oracle v Googlehttp://gnu.wildebeest.org/blog/mjw/2012/05/10/fsf-statement-on-jurys-partial-verdict-in-oracle-v-google/0 <div xmlns="http://www.w3.org/1999/xhtml">Were it grounded in reality, Oracle’s claim that copyright law gives them proprietary control over any software that uses a particular functional API would be terrible for free software and programmers everywhere. It is an unethical and greedy interpretation created with the express purpose of subjugating as many computer users as possible, and is particularly [...]</div> UncategorizedThu, 10 May 2012 07:46:43 GMThttp://gnu.wildebeest.org/blog/mjw/?p=835Mark Wielaard2012-05-10T07:46:43ZFabien Duminy: Devoxx France 2012 – Java Caching with Guavahttp://www.duminy.fr/blog/?p=1649&lang=enhttp://www.duminy.fr/blog/?feed=rss2&p=1649&lang=en0 <div xmlns="http://www.w3.org/1999/xhtml">At Devoxx France 2012, I attended to conference titled Java Caching with Guava presented by Charles Fry. The Guava Cache library works one level above ConcurrentHashmap but doesn’t offer as much features as Ehcache. Guava caches aren’t pre-loaded by default and are all thread safe. The loading of a cache is done with an implementation [...]</div> guavafrance2012devoxxcacheEventDevoxx France 2012JavaWed, 09 May 2012 07:00:31 GMThttp://www.duminy.fr/blog/?p=1649fabien2012-05-09T07:00:31ZDalibor Topić: QotD: Claus von Riegen on SAP & OpenJDKhttp://robilad.livejournal.com/118312.html <div xmlns="http://www.w3.org/1999/xhtml">Claus von Riegen, Vice President Industry Standards and Open Source at SAP, in a blog post titled <a shape="rect" href="http://scn.sap.com/community/open-source/blog/2012/05/07/protecting-the-future-of-java?author=">Protecting the future of Java</a>.</div> Tue, 08 May 2012 21:20:11 GMTurn:lj:livejournal.com:atom1:robilad:1183122012-05-08T21:20:11ZDalibor Topić: Next Gig: JUG Karlsruhe on Wednesday, May 9th on JDK 7 Updates & JDK 8http://robilad.livejournal.com/118246.html <div xmlns="http://www.w3.org/1999/xhtml">I'll be <a shape="rect" href="http://jug-karlsruhe.mixxt.de/networks/events/show_event.55541">speaking</a> at JUG Karlsruhe on Wednesday, May 9th on <a shape="rect" href="http://openjdk.java.net/projects/jdk7u">JDK 7 Updates</a> and <a shape="rect" href="http://openjdk.java.net/projects/jdk8">JDK 8</a>.See you there!</div> Tue, 08 May 2012 21:10:46 GMTurn:lj:livejournal.com:atom1:robilad:1182462012-05-08T21:10:46ZDonald Smith: Diversity in Action &#8211; #OpenJDK PowerPC ports proposed by SAP and IBMhttp://openj.dk/2012/05/08/diversity-in-action-openjdk-powerpc-ports-proposed-by-sap-and-ibm/0 <div xmlns="http://www.w3.org/1999/xhtml">Volker Simonis, from SAP, posted to the OpenJDK-Discuss mailing list yesterday a proposal to start a project for PowerPC ports (AIX/Linux) in OpenJDK, driven jointly with IBM.  I think the technical and community benefits of this are self evident – … <a shape="rect" href="http://openj.dk/2012/05/08/diversity-in-action-openjdk-powerpc-ports-proposed-by-sap-and-ibm/">Continue reading <span>→</span></a></div> UncategorizedTue, 08 May 2012 17:36:42 GMThttp://openj.dk/?p=122DonaldOJDK2012-05-08T17:36:42ZRoman Kennke: How to use Cacio-tta with FEST for Java GUI testinghttp://rkennke.wordpress.com/2012/05/08/how-to-use-cacio-tta-with-fest-for-java-gui-testing/4 <div xmlns="http://www.w3.org/1999/xhtml">Now that Cacio is finally released and promoted to Maven central repositories, I want to provide you a quick HOWTO about testing user interfaces. For writing GUI tests, I am using FEST. However, one problem with running GUI tests is that they need to create windows, grab keyboard focus, and do all sorts of interaction [...]</div> UncategorizedTue, 08 May 2012 09:20:12 GMThttp://rkennke.wordpress.com/?p=529Roman Kennke2012-05-08T09:20:12ZFabien Duminy: Devoxx France 2012 – CRaSH a shell to extend the Java platformhttp://www.duminy.fr/blog/?p=1655&lang=enhttp://www.duminy.fr/blog/?feed=rss2&p=1655&lang=en0 <div xmlns="http://www.w3.org/1999/xhtml">During Devoxx France 2012, I attended the conference titled CRaSH a shell to extend the Java platform, presented by Julien Viet (his github account). CRaSH (Common ReusAble SHell) is a shell in the form of a command line interpreter allowing access to the Java virtual machine running it. This shell, under the LGPL open source [...]</div> franceCRaSHshell2012devoxxgroovyEventDevoxx France 2012JavaTue, 08 May 2012 07:00:48 GMThttp://www.duminy.fr/blog/?p=1655fabien2012-05-08T07:00:48ZFabien Duminy: Devoxx France 2012 – Bytecode manipulationhttp://www.duminy.fr/blog/?p=1635&lang=enhttp://www.duminy.fr/blog/?feed=rss2&p=1635&lang=en0 <div xmlns="http://www.w3.org/1999/xhtml">During Devoxx France 2012, I attended the conference titled Bytecode manipulation : democratize black magic, presented by Julien Ponge (his github account) and Frédéric Le Mouel. Among libraries manipulating bytecode, there are EJB containers, terracota to distribute computations and hibernate. The eclipse plugin managing layout and display of Android screens also manipulates bytecode to instrument [...]</div> francemanipulation2012devoxxbytecodeEventDevoxx France 2012JavaMon, 07 May 2012 07:00:28 GMThttp://www.duminy.fr/blog/?p=1635fabien2012-05-07T07:00:28ZDalibor Topić: PodFodder: Henrik Ståhl on 7u4http://robilad.livejournal.com/117898.html <div xmlns="http://www.w3.org/1999/xhtml">In the last <a shape="rect" href="https://blogs.oracle.com/javaspotlight/entry/java_spotlight_episode_81_henrik">episode</a> of the Java Spotlight podcast, we interviewed <a shape="rect" href="http://blogs.oracle.com/henrik">Henrik Ståhl</a>, Senior Director of Product Management in the Java Platform Group at Oracle on the latest release of Java SE 7.As usual, you can grab just this <a shape="rect" href="http://kenai.com/projects/javaspotlight/downloads/download/JavaSpotlight081.mp3">episode</a> or fetch the whole <a shape="rect" href="http://feeds.feedburner.com/TheJavaSpotlightPodcast">feed</a>.</div> Fri, 04 May 2012 10:54:25 GMTurn:lj:livejournal.com:atom1:robilad:1178982012-05-04T10:54:25ZJeroen Frijters: New Development Snapshothttp://weblog.ikvm.net/PermaLink.aspx?guid=9aae28e9-ab18-48b7-83c5-31e15a3d69f2http://weblog.ikvm.net/Trackback.aspx?guid=9aae28e9-ab18-48b7-83c5-31e15a3d69f2http://weblog.ikvm.net/pingback.aspxhttp://weblog.ikvm.net/PermaLink.aspx?guid=9aae28e9-ab18-48b7-83c5-31e15a3d69f2http://weblog.ikvm.net/CommentView.aspx?guid=9aae28e9-ab18-48b7-83c5-31e15a3d69f2http://weblog.ikvm.net/SyndicationService.asmx/GetEntryCommentsRss?guid=9aae28e9-ab18-48b7-83c5-31e15a3d69f22

This should hopefully be the last snapshot based on OpenJDK 7 FCS as 7u4 has shipped and the bundle should be available soon. After that I'll start work on integrating 7u4 and working towards the IKVM 7.1 release.

Changes:

  • Bug fix. When adding certificates to virtual cacerts file make sure that the aliases that are generated from the certificate subject are unique.
  • Bug fix. If a class file UTF-8 string ends with an incomplete multi byte char, we should throw the appropriate exception.
  • IKVM.Reflection: Added ModuleBuilder.__GetAssemblyToken() API.
  • IKVM.Reflection: Removed Mono CryptoConvert code and use .NET 2.0 API instead.
  • IKVM.Reflection: Rewrote StrongNameKeyPair to remove dependency on System.Reflection.StrongNameKeyPair.
  • IKVM.Reflection: Improved assembly title and description.
  • IKVM.Reflection: Metadata is now sorted with a stable sort algorithm.

Binaries available here: ikvmbin-7.1.4507.zip

<div xmlns="http://www.w3.org/1999/xhtml"><p> This should hopefully be the last snapshot based on OpenJDK 7 FCS as 7u4 has shipped and the bundle should be available soon. After that I'll start work on integrating 7u4 and working towards the IKVM 7.1 release. </p></div> Fri, 04 May 2012 06:58:49 GMThttp://weblog.ikvm.net/PermaLink.aspx?guid=9aae28e9-ab18-48b7-83c5-31e15a3d69f22012-05-04T06:58:49Z
Fabien Duminy: Devoxx France 2012 – Android, Graphism and Performancehttp://www.duminy.fr/blog/?p=1625&lang=enhttp://www.duminy.fr/blog/?feed=rss2&p=1625&lang=en2 <div xmlns="http://www.w3.org/1999/xhtml">At Devoxx France 2012, I attended to the conference titled Android, Graphism and Performance presented by Romain GUY. To begin, Romain is speaking about threads in Android (subject that I am starting to know well) by saying us to not block the main thread, also known as UI thread because user interface operations must run [...]</div> androidfrance2012devoxxgraphismeEventDevoxx France 2012performanceJavaThu, 03 May 2012 07:00:34 GMThttp://www.duminy.fr/blog/?p=1625fabien2012-05-03T07:00:34ZMarcus Hirt: Why JCMD?http://hirt.se/blog/?p=2170 <div xmlns="http://www.w3.org/1999/xhtml">One of the reactions to my recent blog on JCMD has been “But, why?”. It is a reasonable question – after all, the simple examples I added to the blog can be solved using existing tools (jps, jstack etc) in the bin folder of any recent JDK. The answer is that JCMD provides: A simple framework [...]</div> ProgrammingThu, 03 May 2012 05:57:10 GMThttp://hirt.se/blog/?p=217Marcus2012-05-03T05:57:10ZRoman Kennke: Caciocavallo 1.1 releasedhttp://rkennke.wordpress.com/2012/05/02/caciocavallo-1-1-released/4 <div xmlns="http://www.w3.org/1999/xhtml">I am very proud to announce that after 4 years of development, we publish the first release of Caciocavallo. Due to some funny problems with Maven and my network, it is numbered 1.1. Cacio started out in 2008 as one of ten projects to take on the OpenJDK Innovators Challenge. This is how it all [...]</div> UncategorizedWed, 02 May 2012 21:05:09 GMThttp://rkennke.wordpress.com/?p=516Roman Kennke2012-05-02T21:05:09ZHenrik Ståhl: Moving to Java 7 as defaulthttps://blogs.oracle.com/henrik/entry/moving_to_java_7_as <div xmlns="http://www.w3.org/1999/xhtml"><p>Back in February, I wrote <a shape="rect" href="https://blogs.oracle.com/henrik/entry/updated_java_6_eol_date">a post on this blog</a> stating that the End Of Life (EOL) of public support and public releases for JDK 6 was extended to November 2012, to allow for some more time for the transition to JDK 7. As part of the <a shape="rect" href="http://www.oracle.com/technetwork/java/eol-135779.html">updated EOL policy</a>, EOL for public support and fixes for Java SE will typically occur no earlier ...</p></div> /OraclejavajdkWed, 02 May 2012 17:13:41 GMThttps://blogs.oracle.com/henrik/entry/moving_to_java_7_asHenrik Stahl 2012-05-02T17:13:41ZFabien Duminy: Devoxx France 2012 – Seren, serialization under steroids !http://www.duminy.fr/blog/?p=1637&lang=enhttp://www.duminy.fr/blog/?feed=rss2&p=1637&lang=en0 <div xmlns="http://www.w3.org/1999/xhtml">At Devoxx France 2012, I attended to conference titled Seren, serialization under steroids ! presented by Olivier Croisier, who animates the codersbreakfast site. Seren, meaning SERialization ENhancer, is a free software allowing to speed up serialization of Java objects. It can, for example, be used for a faster persistance of objects in Ehcache or to [...]</div> serenfrance2012serializationdevoxxEventDevoxx France 2012JavaWed, 02 May 2012 07:00:40 GMThttp://www.duminy.fr/blog/?p=1637fabien2012-05-02T07:00:40ZJames Gosling: Comments around Oracle v Googlehttp://nighthacks.com/roller/jag/entry/comments_around_oracle_v_google <div xmlns="http://www.w3.org/1999/xhtml">There's been a lot of chatter about the Oracle v Google case, sometimes putting words into my mouth. I can't go into much detail because it is an ongoing court case where I'm likely to be a witness. But there are a few points I feel I should restate that have been said before: <span> ...</span></div> /JavaTue, 01 May 2012 21:06:35 GMThttp://nighthacks.com/roller/jag/entry/comments_around_oracle_v_googleJames Gosling2012-05-01T21:06:35ZFabien Duminy: Devoxx France 2012 – Deadlock Victimhttp://www.duminy.fr/blog/?p=1658&lang=enhttp://www.duminy.fr/blog/?feed=rss2&p=1658&lang=en0 <div xmlns="http://www.w3.org/1999/xhtml">For the conference titled Deadlock Victim at Devoxx France 2012, Heinz Kabutz and Olivier Croisier were talking about the DeadLock subject. By taking the dining philosophers problem as example, they show us that an inappropriate strategy can lead to a DeadLock. In the case of a database, the engine chooses the deadlock victim by returning [...]</div> france2012devoxxEventDevoxx France 2012deadlockJavaMon, 30 Apr 2012 07:00:20 GMThttp://www.duminy.fr/blog/?p=1658fabien2012-04-30T07:00:20ZJames Gosling: My attitude on Oracle v Googlehttp://nighthacks.com/roller/jag/entry/my_attitude_on_oracle_v <div xmlns="http://www.w3.org/1999/xhtml">[ Update: he fixed the article to put me on the same side as Scott ] <span> ...</span></div> /JavaSun, 29 Apr 2012 04:10:28 GMThttp://nighthacks.com/roller/jag/entry/my_attitude_on_oracle_vJames Gosling2012-04-29T04:10:28ZDalibor Topić: Seven By Defaulthttp://robilad.livejournal.com/117689.html <div xmlns="http://www.w3.org/1999/xhtml">On Java.com:In Fedora 17: In Ubuntu 12.10:At Jelastic:</div> Fri, 27 Apr 2012 22:02:15 GMTurn:lj:livejournal.com:atom1:robilad:1176892012-04-27T22:02:15ZMarcus Hirt: Cool New Features in JDK7 update 4!http://hirt.se/blog/?p=2112 <div xmlns="http://www.w3.org/1999/xhtml">JDK7 was quite recently released, and I thought I should mention a few new cool things in it. JCMD First out is the port of the small JRockit command line utility JRCMD (JRockit Command). JRCMD was a command line tool to enumerate the Java processes running on the local machine, and to send commands (referred to [...]</div> ProgrammingFri, 27 Apr 2012 09:53:01 GMThttp://hirt.se/blog/?p=211Marcus2012-04-27T09:53:01ZHenrik Ståhl: Oracle JDK and JavaFX SDK now GA on Mac OS Xhttps://blogs.oracle.com/henrik/entry/oracle_jdk_and_javafx_sdk <div xmlns="http://www.w3.org/1999/xhtml"><p>Oracle JDK 7 and the JavaFX 2.1 SDK are now available for Mac OS X. This release is a major milestone in our effort to bring Oracle Java to Mac. From this point on, every release of Oracle JDK 7 and JavaFX 2.1 (and later) will be available on Mac at the same time as for Linux, Windows and Solaris.</p></div> /Oraclejavajavafxjdkjdk7macosxThu, 26 Apr 2012 23:41:58 GMThttps://blogs.oracle.com/henrik/entry/oracle_jdk_and_javafx_sdkHenrik Stahl 2012-04-26T23:41:58ZDalibor Topić: QotD: Ubuntu 12.04 Release Notes on OpenJDK 7http://robilad.livejournal.com/117342.html <div xmlns="http://www.w3.org/1999/xhtml">Taken from the <a shape="rect" href="https://wiki.ubuntu.com/PrecisePangolin/ReleaseNotes/UbuntuServer#Java">Precise Pangolin</a> release notes.</div> Thu, 26 Apr 2012 16:53:20 GMTurn:lj:livejournal.com:atom1:robilad:1173422012-04-26T16:53:20ZDalibor Topić: Next Gig: JavaOne India on May 3rd & 4th in Hyderabadhttp://robilad.livejournal.com/116992.html <div xmlns="http://www.w3.org/1999/xhtml">I'll be <a shape="rect" href="http://www.oracle.com/javaone/in-en/program/keynotes/index.html">speaking</a> at JavaOne India next week in a couple of sessions.See you there!</div> Thu, 26 Apr 2012 16:36:51 GMTurn:lj:livejournal.com:atom1:robilad:1169922012-04-26T16:36:51ZDalibor Topić: OpenJDK in The News: Oracle Releases Java SE 7 Update 4 and JavaFX 2.1 http://robilad.livejournal.com/116965.html <div xmlns="http://www.w3.org/1999/xhtml">Taken from an Oracle press <a shape="rect" href="http://www.oracle.com/us/corporate/press/1603497">release</a> titled "Oracle Releases Java SE 7 Update 4 and JavaFX 2.1".</div> Thu, 26 Apr 2012 16:24:36 GMTurn:lj:livejournal.com:atom1:robilad:1169652012-04-26T16:24:36ZFabien Duminy: Get Android sources before version 4 (ICS)http://www.duminy.fr/blog/?p=1413&lang=enhttp://www.duminy.fr/blog/?feed=rss2&p=1413&lang=en0 <div xmlns="http://www.w3.org/1999/xhtml">If, like me, you are developing under an Android version older than version 4 (also named Ice Cream Sandwich or ICS), you must have seen the SDK Manager doesn’t propose you to get the sources. In fact, it’s possible to manually download them. For that purpose, you must go to the grepcode site, where one [...]</div> astucesandroidsourcesICSAndroidThu, 26 Apr 2012 07:00:02 GMThttp://www.duminy.fr/blog/?p=1413fabien2012-04-26T07:00:02ZFabien Duminy: In which thread do I have to execute this code under android ?http://www.duminy.fr/blog/?p=1417&lang=enhttp://www.duminy.fr/blog/?feed=rss2&p=1417&lang=en0 <div xmlns="http://www.w3.org/1999/xhtml">While I was developing under android, I discovered 3 exceptions thrown by android to indicate execution of code in the wrong thread. The first case is about execution of a request with the apache HTTP client, provided with android. The android documentation advice to use the AsyncTask class for long tasks, in order to avoid [...]</div> AsyncTaskandroidrunOnUiThreadAndroidCalledFromWrongThreadExceptionthreadNetworkOnMainThreadExceptionWed, 25 Apr 2012 07:00:45 GMThttp://www.duminy.fr/blog/?p=1417fabien2012-04-25T07:00:45ZMarcus Hirt: Remote JRCMD for JRockit R28.xhttp://hirt.se/blog/?p=2070 <div xmlns="http://www.w3.org/1999/xhtml">On popular demand, here is how write a remote JRCMD for R28.x: import java.lang.management.ManagementFactory; import java.net.MalformedURLException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import javax.management.Attribute; import javax.management.InstanceNotFoundException; import javax.management.MBeanAttributeInfo; import javax.management.MBeanServerConnection; import javax.management.ObjectName; import javax.management.remote.JMXConnector; import javax.management.remote.JMXConnectorFactory; import javax.management.remote.JMXServiceURL; /** * Simple code example on how to execute * ctrl-break handlers remotely. * * Usage: * RemoteJRCMD -host -port -user -pass -command [] * * All arguments are optional. If [...]</div> ProgrammingTue, 24 Apr 2012 14:02:23 GMThttp://hirt.se/blog/?p=207Marcus2012-04-24T14:02:23ZMarcus Hirt: Speaking at Java One and Oracle Develop India!http://hirt.se/blog/?p=2060 <div xmlns="http://www.w3.org/1999/xhtml">I will be presenting the following two sessions at Java One in Hyderabad next week: Thursday, May 3 Time Room Title Abstract Type 17:30-18:20 Hall 5 HotRockit: What to Expect from Oracle’s Converged JVM Oracle is converging the HotSpot and Oracle JRockit JVMs to produce a “best-of-breed JVM.” Internally, the project is sometimes referred to as the HotRockit project. This presentation discusses what to ...</div> ProgrammingTue, 24 Apr 2012 09:47:27 GMThttp://hirt.se/blog/?p=206Marcus2012-04-24T09:47:27ZFabien Duminy: Processing an HTTP response with the apache clienthttp://www.duminy.fr/blog/?p=1415&lang=enhttp://www.duminy.fr/blog/?feed=rss2&p=1415&lang=en1 <div xmlns="http://www.w3.org/1999/xhtml">As I had to do an HTTP request under android, I started to write the following code using the apache HTTP client API (included in android) : After a problem, I discovered the server returned an http error 403 (access forbidden). So, I added the highlighted code below in order to manage the case it [...]</div> http error codeapachecode d'erreur httpclient httpJavaTue, 24 Apr 2012 07:00:42 GMThttp://www.duminy.fr/blog/?p=1415fabien2012-04-24T07:00:42ZJeroen Frijters: IKDASM - IL Disassembler Example for IKVM.Reflectionhttp://weblog.ikvm.net/PermaLink.aspx?guid=5ec2c949-aeec-4d05-bd54-bd12a2c3a7cahttp://weblog.ikvm.net/Trackback.aspx?guid=5ec2c949-aeec-4d05-bd54-bd12a2c3a7cahttp://weblog.ikvm.net/pingback.aspxhttp://weblog.ikvm.net/PermaLink.aspx?guid=5ec2c949-aeec-4d05-bd54-bd12a2c3a7cahttp://weblog.ikvm.net/CommentView.aspx?guid=5ec2c949-aeec-4d05-bd54-bd12a2c3a7cahttp://weblog.ikvm.net/SyndicationService.asmx/GetEntryCommentsRss?guid=5ec2c949-aeec-4d05-bd54-bd12a2c3a7ca0

A while ago I wrote an IL disassembler to test IKVM.Reflection. Both as a correctness test and also to test if the API surface exposes enough of the underlying information.

I thought it would make a good IKVM.Reflection example (although the code won't win any awards, it's a bit of a hack). One nice feature is that it tries really hard to emit the same output file as the .NET ildasm to make comparison easier. There's even a command line option to match a specific ildasm version (2.0, 4.0 or 4.5) and its quirks.

The binaries are available in ikdasm-v0.1-binaries.zip and the Visual Studio 2010 solution in ikdasm-v0.1.zip.

Note that in its current form the ildasm compatibility mode only works on Windows, because it needs to P/Invoke _gcvt in msvcrt.dll to make sure the floating point numbers match the ildasm output.

<div xmlns="http://www.w3.org/1999/xhtml"><p> A while ago I wrote an IL disassembler to test IKVM.Reflection. Both as a correctness test and also to test if the API surface exposes enough of the underlying information. </p></div> Mon, 23 Apr 2012 14:54:40 GMThttp://weblog.ikvm.net/PermaLink.aspx?guid=5ec2c949-aeec-4d05-bd54-bd12a2c3a7ca2012-04-23T14:54:40Z