はじめに Javaのクラスファイルというのは、ソースコードからコンパイルして作成する――これが、長い間の常識でした。しかし昨今、この常識を覆すような技術が次々と登場しています。最近のフレームワークなどを見ていて、ふと不思議に思ったことはありませんか? XMLで必要な情報を定義すると、自動的にそのクラスが生成されたり、既にあるクラスの機能が書き換わったりする。プログラマがソースコードを書くこともなく、必要なクラスが作成されてしまう。そうした「クラスの自動生成」の技術を大幅に進歩させたのが「クラスのバイトコードを直接書き換える」技術です。対象読者Javaを使ったプログラム作成を行っている中級レベルのプログラマ。クラスのバイトコード操作について興味のあるひと。同じようなBeanクラスをひたすら作り続けるのに、いい加減、嫌気がさしている人。 クラス生成の新しい形とは? 最近のフレームワークなどでは
私は今だにxUnitに代表される自動テストツールの効果が今ひとつ腑に落ちていなかったのですが、プロジェクトメンバーがその効果を調査・分析・見える化してくれたおかげですっきりしました。私の中だけに留めておくのはもったいないのでエッセンスを公開します。*1 対象プロジェクトに関する情報は以下の通りです。 業務系 画面数は60程度 帳票数は15程度 Java(Seasar2/S2Struts/S2Dao),Web系 クラス数は750程度 開発期間は約半年 最終的には総じて高い品質を実現した テストツールとしては、JUnit/EZmock/S2TestCaseを使っていて、それぞれ対象となるレイヤは、Actionクラス/Serviceクラス/Daoクラスです。画面のテストにはSeleniumも使いましたが、今回の調査の対象外としています。 目的 テストで重要なのは、要はそれぞれの工程で適切な粒度・
May 10, 2007 Matthias Farwick and Michael Hafner Five years after the introduction of SOAP 1.0, XML parsing is still the main bottleneck in web service performance. In search of components for a high performance web service security solution, we have executed benchmarks for various XML parsers in Java and C. These benchmarks cover event-driven parser models like SAX and StAX, object model parsers
The history of taxi’s In this blog, I will tell you all about how taxis first started. The way the world has changed in terms of transport is so dramatic and no one ever really thinks about just how far we have come over the years. Taxis weren’t always around to chauffeur people about but there were other types of transport that taxis actually originated from. Where did it all start? Years ago, th
JavaFXとは? JavaFXとは、Sun Microsystemsの手により生み出された次世代のRIAプラットフォームだ。今年のJavaOneで発表されたばかりの技術で、現在、多くの開発者たちがその可能性を探るべく、日夜研究を行っている。 JavaFXの概要については、別記事として「JavaFXで作るコンテンツは"Unbelievably Rich" - "Javaの父"が語るJavaFX」「JavaFXの実態を暴け! JavaOne 2007で発表されたばかりの新RIA言語を試す」といった記事も掲載されているので、そちらも併せて参考にしていただきたい。 簡単に説明すると、JavaFXは、新しいスクリプト言語「JavaFX Script」を中心に、リッチなUIコンテンツをデバイスを問わずに実行できるようにすることが主目的の技術だ。「デバイスを問わずに」が一番のポイントであり、あらゆるデ
Java Module Systemとは Java SE 7における重要な機能強化のひとつとしてモジュラリティのサポートが挙げられている。その核となるのが「JSR 294: Java Language Modularity Support with Superpackage」と「JSR 277: Java Module System」の2つのJSRである。両者はお互いに密接に関係しているが、区分としてはJSR 294が「開発時のモジュラリティ」、JSR 277が「配付時のモジュラリティ」を提供するものという位置づけになっている。 このうち、JSR 294についてはJavaOneレポートでテクニカルセッションの様子を紹介したので、そちらを参照していただきたい。今回はJava Module Systemについて紹介したいと思う。 現在、Javaアプリケーションの配布にはJAR(Java ARc
皆さんは、JSR-277として提案されている「Java Module System」をご存知だろうか。Java 7に導入される予定の仕様であり、ドラフトがこちらのサイトで公開されている。 Java SE 7では、広範にわたって様々な変更が行われると考えられており、その変化の度合いはJ2SE 5.0を上回る可能性があると指摘されているほどだ。なかでもJava Module SystemはJavaプログラムのパッケージング、配布、実行の方法を根本から変えてしまう可能性のある、魅力的な仕様だ。今回その詳細について調査を行ったので、レポートしたいと思う。なお、本稿はEarly Draftバージョンを基にしているので、正式リリースまでに仕様変更が生じる可能性がある。この点はあらかじめご容赦いただきたい。 Java Module Systemが解決しようとしている問題は以下のようなものだ。 使用してい
Java SEの次期バージョン(Java SE 7)での導入が検討されている「プロパティ」と、それに伴う言語仕様変更が全貌を現しつつある。java.net内のRemi Forax氏のブログによると、プロパティの仕様は現在ドラフト3を閲覧できる状態にあるという。本稿ではそのドキュメントを基に、プロパティが現時点でどのように検討されているのかを見ていきたい。 まず先に、現在のJava言語において「プロパティ」がどういう扱いなのかを復習しておきたい。 ご存じのとおりプロパティとは、クラスが持つ「状態」に対してアクセスするためのAPIだ。多くの場合、フィールドを実体に持つが、記述できるのはそれだけではない。 クラスの状態が変更された場合、副作用として何らかの処理を実行しなければならないこともある。そうしたクラス実装の詳細をカプセル化するための仕組みを、多くのプログラミング言語でプロパティと呼ぶが、
JavaFXとは? 今、ソフトウェアの世界で大きな話題をさらっているのが、8日に開幕したJavaOne 2007で発表された新技術「JavaFX」だ。JavaFXについてお聞き及びでない読者のために簡単に説明すると、JavaFXとはJavaプラットフォーム上で動作するRIA(リッチ・インターネット・アプリケーション)技術である。その目的は、モバイル機器、デスクトップPC、家電製品などデバイスを問わず「リッチな」UIを提供できる、一貫性のある技術を提供するというものである。一度作成したRIAが様々なデバイスで動作するようになるというこの構想は非常に魅力的だ。 そうした優れた構想を持ち、大きな期待を寄せられているJavaFXの実態は、JavaFX Scriptと呼ばれるスクリプト言語とその実行環境である。JavaFX ScriptはJVM上で動くスクリプト言語であるため、基盤となるVMのAPI
Javaプラットフォームの次期バージョンであるJava SE 7は、2008年後半のリリースを目指して現在仕様の策定が進められている。カリフォルニア州サンフランシスコにて8日(現地時間)より開催されている2007 JavaOne Conferenceにおいても、Java SE 7に関連したセッションやBOF(Birds Of a Feather)が多数行われている。本レポートではその中から、モジュラリティサポートについてのテクニカルセッションの様子をお伝えする。 Java SE 7におけるモジュラリティのサポートは、開発時とデプロイメント時の双方からそれぞれ検討されている。そのうち、開発時のモジュラリティについては"Superpackage"という新しい概念によって実現される予定で、JSR 294として仕様の策定が行われている。JavaOneでは「Java Language Modular
James Gosling氏。「オープンソースJavaのライセンスにGPLv2を選んだ理由は?」との質問には「OSSコミュニティで最も幅広く使われているライセンスだから。いまだに不満をぶつけてくる人々がいるが、すべての人の需要を満たすことはできない。こちらは別にケンカを売っているつもりはないんだけどね」と回答した 9日(現地時間)、サンフランシスコで開催中のJavaOne 2007において、Sun Microsystemsのバイスプレジデント兼フェロー James Gosling氏によるInternational Press Round Tableが行われた。Javaテクノロジのアイコンとして、世界中のデベロッパから尊敬をこめて"Father of Java(Javaの父)"と呼ばれるGosling氏、新技術"JavaFX"についても相当の自信を覗かせる。 Gosling氏によれば、Jav
Sun Microsystemsは米国時間5月8日、コンシューマ機器向けのJavaアプリケーションの開発を容易にするスクリプト言語「JavaFX Script」を発表する予定だ。これは、Javaの可能性を十分に引き出し、次世代ウェブアプリケーションにおけるJavaの位置づけを強める試みとなる。 同日サンフランシスコで開幕するJava開発者向けカンファレンス「2007 JavaOne」において、Sunのソフトウェア担当エグゼクティブバイスプレジデントであるRich Green氏がJavaFX Scriptを紹介するとみられている。JavaFX Scriptは、Java対応のPCや携帯機器で動くアプリケーションを書くために簡略化されたスクリプト言語だ。 Sunの経営陣はさらに、オープンソース化を予告済みのJavaプラットフォームのうち、未公開だった残りの部分をリリースし、Java関連のオープン
CNetでも報道された通り、Sunが独自のスクリプト言語JavaFX Scriptを発表した。テクノロジーの優劣だけで決まるものではないので、この試みがうまく行くかどうかは何とも予測しがたいが、とりあえず言語仕様が公開されたので目を通してみた。 私なりに興味深いと思った点は以下の5つ(ただし、私なりの拡大解釈が多少入っている可能性もあるので要注意)。 1.宣言型のUIをサポートしていること 宣言型大好き人間の私としては、この方向性は大賛成(ちなみに、UJMLも宣言型のUI言語^^)。"押してね!"というラベルがついたボタンを表示するには、こう書けば良い。 Frame { content: Button { text: "押してね!" action: operation() { System.out.println("押してくれて、ありがとう"); } } visible: true } 2
2007/05/09 米サン・マイクロシステムズは5月8日(現地時間)、米国サンフランシスコで開催中の開発者向けイベント「JavaOne」で、Javaの文法に近いスクリプト言語「JavaFX Script」と携帯端末向けの実行環境「JavaFX Mobile」を発表した。JavaFX ScriptとJavaFX Mobileは、“JavaFX”のブランド名の基に展開されるシリーズ製品の第一弾となる製品で、今後も複数の製品が追加される予定という。 リッチなGUI作成に適したJavaFX Script 「スクリプト言語は、すでに何十とあるのに、なぜ今さらまた1つ加えるのかと思う人もいるでしょう」。JavaOneの基調講演に登場したJavaの生みの親、ジェームス・ゴスリング(James Gosling)氏は、JavaFX Scriptの紹介をそう切り出した。ゴスリング氏によれば、スクリプト言語に
ROMEの紹介 どんなプログラミング言語で実装するにせよ、RSS/Atomフィードフォーマットの乱立は頭の痛い問題だ。RSS 0.9、1.0、2.0やAtom 0.3、1.0など、様々なフォーマットのフィードが世の中にはあふれており、その全てを正しく取り扱えないとフィードを取り扱うアプリケーションとしては失格である。 フィードの生成に関しても同様で、ユーザが使っているフィードリーダーがRSSしか取り扱うことができないということも考えられるため、提供者側でも複数のフォーマットを配信できるようにしておきたいものだ。 要は、さまざまなフィードフォーマットを統一的に取り扱う仕組みが必要なのである。筆者は以前、JavaScriptでそれを実現するためのAPIとしてGoogle Feed APIを紹介した。今回は、そうした要求をJavaで満たすためのライブラリとしてROMEを紹介しよう。 ROMEの現
実は、Oracle Application Serverのクラス・ローダの日本オラクル社内向けセミナが、今夜これからあります。その前に、Java EEコンテナのクラス・ローダ関連の資料をいくつか見てみたので、ポインタだけ残しておきます。 まず、各Java EEコンテナ/Webコンテナのドキュメント関連: OracleAS 10.1.3.1 > OC4J開発者ガイド > 3 OC4Jクラス・ロード・フレームワークの利用 http://otndnld.oracle.co.jp/document/products/as10g/101320/doc_cd/web.1013/B31851-01/classload.htm Oracle9iAS Containers for J2EEにおけるクラスローディング (内容がちょっと古いです) http://otndnld.oracle.co.jp/tech
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く