Apple beendet Java-Unterstützung, so Nokia für Java ME

Apple wird Java SE nicht mit unterstützen. Die alte Version bleibt bestehen doch wird vielleicht bei neuen OS nicht mehr mit angeboten.

http://news.ycombinator.com/item?id=1814613

Nokia lizensiert Java ME nicht mehr und ist damit einer der großen, die bei den Milliarden von Phones auf Java verzichten.

http://www.nokia.com/press/press-releases/showpressrelease?newsid=1453894

GWT 2.1 RC1

Die Version 2.1 nimmt Neuerungen, die für 2.2 geplant waren, vorweg. Die Änderungen in Kürze:

  • Neue sogenannte Cell Widgets. Gedacht sind sie für große Datenmengen. Sie verbrauchen wenig Speicher.
  • Safe-HTML-Funktion, die böse HTML-Injektionen verhindert.
  • GWT-Applikationen können auf den Server loggen.

InfoQ (http://www.infoq.com/news/2010/10/GWT-2.1) stellt die Neuerungen kurz vor.

Ich würde mich noch wünschen, dass GIN in den Core aufgenommen wird.

IBM und Oracle arbeiten am OpenJDK, das Ende von Harmony

IBM hat bisher immer zu Harmony gehalten – das ist nun Verhangenheit: http://www-03.ibm.com/press/us/en/pressrelease/32708.wss.

Bin gespannt, was das für Google und Android bedeutet. IBM geht nun zu OpenJDK, was interessant ist, da die Lizenzform auch eine ganz andere ist.

Mehr http://java.dzone.com/articles/rip-harmony-0 und http://www.theserverside.com/discussions/thread.tss?thread_id=61081.

Amino: Ein neues Gui-Framwork

Josh stellt in seinem Blog-Beitrag http://weblogs.java.net/blog/joshy/archive/2010/10/09/announcing-amino-new-ui-toolkit-desktop-java ein neues Gui-Framwork Amino (http://leonardosketch.org/amino/) vor.

Amino is a next generation graphics library and UI toolkit. Though originally built as support for Leonardo Sketch it is now it’s own incubator project.  Amino is a 100% open source Java library that provides:

  • a 2D/3D scenegraph with multiple backends (Java2D, JOGL, and more coming).
  • a set of UI controls, skinnable with CSS.
  • Utility classes to help you build desktop apps quickly.
  • is extremely testable.
  • 100% open source (BSD), redistributable, and embeddable.
  • 100% Java, ready for use by any JVM dynamic language (Groovy, JRuby, Jython, JavaScript, JavaFX Script, etc.)

Erweiterungen von Swing sind:

    • Uses an event bus instead of listeners on each component, enabling better separation of model and view
    • A background task API to handle threading for you.
    • Mixes a retained mode scenegraph with immediate mode paint APIs so you can work at the abstraction level you prefer.
    • There are no Look & Feel classes. All UI skinning is done directly with CSS 3, even the default L&F.
    • If you use the (experimental) JOGL backend you can directly mix 2D graphics with OpenGL code.
    • All controls can be referenced by ID, similar to JavaScript libs, enabling further separation of concerns.
    • Amino has a tool called AppBundler which generates Mac OSX .app bundles as well as JNLP builds. The user should never know that your app is written in Java, or any other language. They will just love your app.

Noch sehen die Gui-Componenten gammelig aus aber es kann was werden (ist ja alles “nur” CSS).

Ant-Skripte für die Android-Entwicklung (AndCooperANT)

Der Build-Prozess für Android-Programme nimmt durch die Obfuscation einen Extra-Schritt. Das Projekt http://github.com/shareme/AndCooperANT von Fred Grott stellt Ant-Skripte bereit, die helfen, ProGuard richtig einzubinden, sodass die Entschlüsselung von Android-Programmen erschwert wird. Insbesondere mit der Anbindung an den Lizenzserver ist das zentraler Schritt – einige gehackte Programmen haben genau darauf nicht geachtet.

Das zentrale Ant-Skript ist http://github.com/shareme/AndCooperANT/blob/master/add-proguard-release.xml mit den Anpassungen in http://github.com/shareme/AndCooperANT/blob/master/proguard_android_config.txt.

<path id="android.modified.classpath">

            <fileset dir="${external.libs.dir}">

                 <include name="**/*.jar"/>

            </fileset>

            <path refid="android.target.classpath"/>

</path>

 

<property name="obfuscate.dir" value="obf" />

<property name="obfuscate.absolute.dir" location="${obfuscate.dir}" />

<property name="android-jar-preobfuscate" value="${obfuscate.absolute.dir}/original.jar" />

<property name="android-jar-postobfuscate" value="${obfuscate.absolute.dir}/postobf.jar" />

<property name="out.dex.input.absolute.dir" value="${android-jar-postobfuscate}" />

 

<!-- replaces the post-compile step from ant_rules_r3 -->

<target name="-post-compile" depends="-dex-obfuscate,-dex-no-obfuscate">

</target>

 

<target name="-dex-no-obfuscate" unless="build.mode.release">

  <mkdir dir="${obfuscate.absolute.dir}" />

  <jar basedir="${out.classes.dir}" destfile="${android-jar-postobfuscate}" />

</target>

 

<!-- Converts this project's .class files into .dex files -->

<target name="-dex-obfuscate" if="build.mode.release">

  <property name="proguard-jar" value="${proguard.dir}/proguard.jar" />

  <property name="proguard-conf.dir" value="" />

  <property name="proguard-conf.absolute.dir" location="${proguard-conf.dir}" />

  <property name="proguard-conf" value="${proguard-conf.absolute.dir}/procfg.txt" />

  <property name="libraryjarpath" refid="android.modified.classpath"/>

  <!-- Add Proguard Task -->

  <taskdef resource="proguard/ant/task.properties" classpath="${proguard-jar}" />

 

  <mkdir dir="${obfuscate.absolute.dir}" />

  <delete file="${android-jar-preobfuscate}"/>

  <delete file="${android-jar-postobfuscate}"/>

  <jar basedir="${out.classes.dir}" destfile="${android-jar-preobfuscate}" />

  <proguard>

    @${proguard-conf}

    -injars ${android-jar-preobfuscate}

    -outjars ${android-jar-postobfuscate}

    -libraryjars ${libraryjarpath}

    -dump ${obfuscate.absolute.dir}/dump.txt

    -printseeds ${obfuscate.absolute.dir}/seeds.txt

    -printusage ${obfuscate.absolute.dir}/usage.txt

    -printmapping ${obfuscate.absolute.dir}/mapping.txt

  </proguard>

</target>

Update von SwingX auf Version 1.6.2

Jan Haderke, ein Commiter des SwingX Projekts, schreibt:

As it became almost a tradition we have rolled out next SwingX release just before the SwingLabs BOF at JavaOne last night.

You can get the release from our website, or directly from the java.net or also from the maven central repo. Please note that the artifactID has changedfrom swingx to swingx-core due to changes in the structure of the project.

Thanks a lot to all who contributed to this release with both the bug reports and the fixes.

Ein Kommentator lästert gleich, dass zwar Maven unterstützt wird, aber das POM falsch ist.

SwingX nutzt auch Hudson (http://swinglabs.java.sun.com/hudson/), schön. (Kohsuke Kawaguchi war bei einem Interview auf Oracle Dev zu sehen, sehr sympathisch der Typ. Schade, dass der von Sun/Oracle gegangen ist.) Hudson (http://hudson-labs.org/changelog) hat vor ein paar Tagen auch eine neues Release veröffentlicht.

Hinweis:

Open Source Java Tool Mediathek

Bei Heise (http://www.heise.de/open/artikel/Oeffentlich-rechtliches-Media-Center-1073454.html) fand ich gerade einen Beitrag über eine Software, die die öffentlich-rechtlichen Medien über eine Java-Oberfläche zugänglich macht.

 

 

Die Software ist funktional aber in der Optik kann mach noch was machen und auch der Programmierstil nicht überwältigend.

Alles ist deutsch:

private void gibBescheid() {

Variablenanmen alles andere als klar:

private void pfadLaden(String pfad, boolean boolDatei) {

Und einiges könnte durchaus knapper geschrieben werden:

    private boolean istZip(String str) {
        boolean ret = false;
        if (str.endsWith(".zip") || str.endsWith(".Zip")) {
            ret = true;
        }
        return ret;
    }

-> warum nicht das?

return str.toLowerCase().endsWith(“.zip”);

Aber wie im richtigen Leben: So lang’s funktioniert Smile

JavaOne 2010 beginnt heute und aktualisierte Java 7 Features

Die Liste der Features für Java 7 wurde aktualisiert: http://openjdk.java.net/projects/jdk7/features/.

vm
JSR 292: Support for dynamically-typed languages (InvokeDynamic)

lang
JSR TBD: Small language enhancements (Project Coin) [UPDATED]

core
Upgrade class-loader architecture

Method to close a URLClassLoader

Concurrency and collections updates (jsr166y)

i18n
Unicode 6.0 [UPDATED]

Locale enhancement [NEW]

Separate user locale and user-interface locale [NEW]

ionet
JSR 203: More new I/O APIs for the Java platform (NIO.2)

NIO.2 filesystem provider for zip/jar archives [NEW]

SCTP (Stream Control Transmission Protocol)

SDP (Sockets Direct Protocol)

Use the Windows Vista IPv6 stack [NEW]

TLS 1.2 [NEW]

sec
Elliptic-curve cryptography (ECC)

jdbc
JDBC 4.1 [NEW]

client
XRender pipeline for Java 2D

Create new platform APIs for 6u10 graphics features

Nimbus look-and-feel for Swing

Swing JLayer component

web
Update the XML stack

Heute beginnt in San Francisco die JavaOne (und Oracle Develop 2010) Konferenz (http://www.oracle.com/us/javaonedevelop/index.html, http://www.oracle.com/us/javaonedevelop/062264.html).

Viele Vorträge werden live übertragen: http://www.oracle.com/us/javaonedevelop/oracle-technology-network-live-166853.html.

Google veröffentlicht die Instantiations-Tools für lau

Der Google Web Toolkit Blog berichtet heute von neuen GWT-Tools: http://googlewebtoolkit.blogspot.com/2010/09/google-relaunches-instantiations.html.

In early August, Google acquired Instantiations, a company known for its focus on Eclipse Java developer tools, including GWT Designer. We’re happy to announce today that we’re relaunching the following former Instantiations products under the Google name and making them available to all developers at no charge:

  • GWT Designer
    Powerful Eclipse-based development tools that enable Java developers to quickly create Ajax user interfaces using Google Web Toolkit (GWT)
  • CodePro AnalytiX
    Comprehensive automated software code quality and security analysis tools to improve software quality, reliability, and maintainability
  • WindowBuilder Pro
    Java graphical user interface designer for Swing, SWT, GWT, RCP, and XWT UI frameworks
  • WindowTester Pro
    Test GUI interactions within Java client rich applications for the SWT and Swing UI frameworks

Now that these products are available again, we hope you’ll start using them within your GWT projects. Meanwhile, our next step is to more deeply unify them into the GWT family of tools by blending the fantastic Instantiations technology into the Google Plugin for Eclipse (GPE). So, there’s much more to come, including things we’re pretty sure you’ll like, such as UiBinder support in GWT Designer.

You can download any of the tools from the GWT download page. If you have questions or comments we’d love to hear from you. The best place to discuss the tools above is at http://forums.instantiations.com. As always, continue to discuss GWT and GPE at the main GWT Group.

We would love to stay in better touch with you as we have more news about how we are integrating the Instantiations products into the Google Web Toolkit suite. Sign up if you’d like to receive email updates on these products and other developer tools.

Sehr cool. Der nicht gepflegte Gui-Builder VE von Eclipse dürfte damit Vergangenheit sein.

Gibt doch mal euren Eindruck.

HTC Desire geht mit BASE nicht ins Internet? Dann …

Wenn das Desire nicht auf Anhieb ins Netz will, sollte folgendes helfen:

  • Gehe auf Einstellungen -> Drahtlos und Netzwerke -> Mobile Netzwerke –> Zugangspunkte

Installiere ein neues Access Point Name (APN).

Bei den Angaben muss man nur 2 Dinge angeben:

  • Name: BASE (ist aber egal)
  • APN: internet.eplus.de

Ist der APN dann ausgewählt – und ePlus das Netzwerk – dann sollte es klappen.

SimpleDS 1.0 ist fertig

Entwickler auf der GAE/J, die nicht mit JPA oder JDO arbeiten – was die Regel sein dürfte? – können die neuste Version von SimpleDS nutzen.

In der Vergangenheit habe ich ein GAE/J-Projekt mit http://code.google.com/p/objectify-appengine/ realisiert und mich gegen SimpleDS entschieden. Beides haben etwas unterschiedliche Philosophien, wie sie mit IDs/Keys umgehen. Frühere Blog-Eintrage verlinken zu beiden und zu Seiten mit einer Diskussion der Unterschiede.

Async Http Client 1.1.0 ist fertig

So kann man es lesen unter http://jfarcand.wordpress.com/2010/09/04/async-http-client-1-1-0-released/. Neu ist:

  • Connection pool is unlimited by default
  • Basic and Digest Authentication supported out-of-the-box
  • Multi Headers support
  • Removal of Google Collection and Log4j dependency (significantly reduce the jar)
  • Latest Netty version (3.3.2)
  • OAuth signature now supported
  • Proxy per request now supported
  • Performance improved
  • JDK Uri/Url now used instead of our own Url class.