CLOVER🍀

That was when it all began.

2011-05-01から1ヶ月間の記事一覧

Web層との連携Bundleの作成

今度は、前回作成したWeb層と連携するOSGi Bundleを作成してみたいと思います。Web層でSTSを使ったOSGi Bundle Projectの作成で散々な目に遭ったので、今回は最初からMavenを利用します。まずは、Projectの作成。 $ mvn archetype:generate -DgroupId=my.ser…

Spring MVC、最初の一歩

Spring MVCを使ってOSGi Web Bundleを作成してみたいと思います。とりあえず、いろいろ準備が要りますが…用意したコードを列挙。pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0…</modelversion></project>

MavenとSTSでOSGi Web Bundleプロジェクトを作成する

サンプルアプリケーション「GreenPages」をいろいろ見てきましたので、次はいよいよ自分でBundleを作ってみよう!という気だったのですが、ここで思わぬ障壁が…。障壁になっているのは、ズバリSpringSource Tool Suite(STS)です…。お前、Spring関連のプロ…

OSGi BundleのImport/Exportの見方

VirgoのサンプルアプリケーションGreenPagesのMANIFEST.MFを見てみましたが、最初意味不明だったのが、数あるインポート宣言。エクスポートは「Export-Package」だけなのですが、インポートについては Import-Package Import-Bundle Import-Library と3つも…

GreenPagesのMANIFEST.MFを読む

前回は、チュートリアルに従ってサンプルアプリケーションGreenPagesを、STSからVirgoを起動して動作させるところまでやりました。今回は、GreenPages内の各アプリケーションのOSGi Bundleとしての関係を見ていこうと思います。インポートしたプロジェクトは…

SpringSource Tool Suite(STS)でVirgoを動かしてみる

サンプルアプリケーションが動いたところで、続いてチュートリアルに従ってSpringSource Tool Suite(STS)でVirgoを動かしてみましょう。STSとは、SpringSourceが提供する拡張版のEclipseです。個人的にはEclipseからIntelliJに完全に移行したつもりだった…

Virgoで始めるOSGi

これから少しの間、Virgoを使ったOSGiの勉強をしていこうと思います。途中で心が折れたら、そこでやめるかもしれませんが(笑)。以前、仕事の提案でApache Felixを使ったOSGiの調査をしたことがあるのですが、OSGiの敷居の高さに完全に置いていかれ、諦めた…

カリー化の短縮表記を通常の表記で書いてみる

Scalaは関数を返す関数…いわゆるカリー化をサポートしていて、その例としてC#から拝借したusingの定義がよく挙がっています。要は、こんなやつです。 Control.scala object Control { type Closeable = { def close(): Unit } def using[A <: Closeable, B](resource: A)(body: A => B): B = { try { </:>…

PythonでJavaのProxyライクにAOP

前回は関数デコレータでお手軽にAOPっぽいことをやってみましたが、これだと実体のクラス/メソッド定義そのものに織り込むコードを書かないといけないのであまりいい感じがしません。だったら、やっぱりクラスベースで動的に織り込みますかってことで、Java…

関数デコレータで、AOPっぽく

なんとなく、PythonでAOPっぽいことをやってみたくなりまして。実現方法を考えてみましたが、1番簡単なのが関数デコレータを使うことかなぁと。関数デコレータは、文字通り関数を拡張するものです。まあ、とりあえず書いてみましょう。AOP適用の例としては、…

Apache MavenでWebアプリにトライ

今回は、Apache Mavenを使ったWebアプリ作成にトライしてみます。以下のページを参考に、Webアプリ用のプロジェクトを作成。http://maven.apache.org/guides/mini/guide-webapp.html $ mvn archetype:generate -DgroupId=myapp.web -DartifactId=myapp-web -…

Apache Mavenで依存関係の管理

前回は、Apache Mavenのインストールとプロジェクト作成、起動までやりました。今回は、Mavenを使った依存関係の管理をやりたいと思います。まず、不要な雛型クラスを削除 $ rm src/main/java/myapp/hello/App.java $ rm src/test/java/myapp/hello/AppTest.…

Apache Mavenことはじめ

あまり個人的に積極的には使う理由がない…というかそれほど興味はないのですが、一応知っておいた方がいいのかな〜ってことで、ちょっとApache Mavenを使ってみることにしました。一応標準に近い位置にいますし、Scalaで使っているsbtも似たような動きをする…

ジェネリクスの上限/下限ワイルドカードを学ぶ

前回高階関数の話と一緒に、Java版では上限/下限ワイルドカードが登場しました。これをなかなか覚えられないので、ちょっとマジメに勉強してみようと思います。まずは、今回のスケープゴート。 class Super { private String value; public Super(String va…

Javaプログラマ向け高階関数紹介

Javaプログラマ向けに、高階関数のお話でも。高階関数とは、「関数を引数に取る関数」のことです。本来は「関数を返す関数」(カリー化)も含むそうですが、高階関数というと専らこの意味で使われることが多いので問題ないでしょう。Javaでは、メソッドとか…

Parallel Collectionsの裏にいる人

Scala 2.9.0で追加されたParallel Collectionsを利用すると、Collectionに対する各種操作が並列実行されます。ただ、並列とはいいますが、どの程度の並列度で実行されるんでしょうねぇ?確認してみましょうか。この手のライブラリは、利用者にこっそり裏でス…

ScalaのParallel Collectionsで遊ぶ

Scala 2.9.0の目玉といえば、Parallel Collectionsですよね。ちょっとこれで遊んでみたいと思います。Scala 2.9.0 finalリリースページ http://www.scala-lang.org/node/9483上のページによると、「par」メソッドでこれまでのCollectionからParallel Collect…

Scala 2.9.0 final インストール

Scala 2.9.0 final リリースということで。Scalaのインストール方法の紹介でも。当方の環境は、以下のようになっております。 CentOS 5.6 on VMWare Player ScalaはJavaVM上で動作するので、まずはJDKをインストールしましょう。Oracleのサイトより、ダウン…

ブログ開始

今日から開設。技術系のネタを中心に書いていく予定です。