Robolectric3でDrawerLayoutをテスト

2015-10-29T23:17:26+09:00 Java Android robolectric

タイトル通り、DrawerLayoutをRobolectric3でテストするメモ

Robolectric3でandroid.os.Handler

2015-10-28T20:07:10+09:00 Java Android robolectric

android.os.Handlerを使う場合のテストのメモ

RxJavaのlift

2015-10-15T11:16:25+09:00 Java RxJava

参考: RxJava学習のベストプラクティスっぽいもの

※あくまで個人的なメモなので、詳しいことは上記参考参照

まぁ要はOperatorを通す物って感じなのだろうか。やってみた

ToolbarからSearchView ActionViewを取る方法

2015-10-03T21:45:08+09:00 Java Android

Toolbarを使っている場合であれば、onCreateOptionsなんちゃらでメニューを作る以外でもSearchView等のActionViewを取得できるっぽい

TabLayoutでaddTabした直後にselectしてもスクロールされない件

2015-08-23T04:27:36+09:00 Java Android

Android Design Support Libraryで?追加されているTabLayoutを使った場合に、addTabをした直後にselectメソッドを呼んだりaddTabの第2引数でtrue(selected)にしてもそのタブにフォーカスは当たるけど自動アニメーションスクロールによる処理が行われない為に自分でそのタブが出てる所までスライドしないといけない問題が出てるのですが...

なんとか解決出来たっぽいのでメモ

Mockitoでfinalクラスをモック化 (3)

2015-08-19T15:34:57+09:00 Java

今まで

というように書いてきたんですが、知ってはいたものの書いてなかったっていうのもあるので改めて書く事にした

twitter4j+mockwebserver

2015-08-17T13:54:43+09:00 Java Android

例えばtwitter4jを使う所をテストしたい場合にやたらとAPIリクエスト投げられても困るなっていう事案が発生した場合に、twitter4jが投げるリクエストをローカルサーバーとかにぶん投げるようにしてテストしたいみたいなケースの場合の検証をしてみた

※環境はAndroid(Robolectric)

HttpsURLConnection TrustManagerでPublic Key Pinning

2015-07-07T09:55:21+09:00 Java

参考1: 不正なSSL証明書を見破るPublic Key Pinningを試す

参考2: https://developer.mozilla.org/ja/docs/Web/Security/Public_Key_Pinning

関連エントリー: HttpsURLConnection TrustManager

要はHTTPS通信をする際にサーバーから送られてくる証明書が正当な物であるかをどう検証するべきかっていう所が色々あるのですが、それを検証する手法としてあるのがPublic Key Pinningっていう事っぽい(あってるかは微妙)

とりあえず色々検証してみた

※あくまでセキュリティ対策を前提としたネタではない

※個人的なメモなので上記参考を読むべき

Google Cloud Endpoints(Java)のApiTransformer

2015-07-01T20:30:40+09:00 Java Google App Engine

公式ドキュメント: https://cloud.google.com/appengine/docs/java/endpoints/annotations#apitransformer

前回で省略した@ApiTransformerをやってみた

Google Cloud Endpoints(Java)を使ってみた

2015-06-24T17:03:46+09:00 Java Google App Engine JavaScript

公式ドキュメント: https://cloud.google.com/appengine/docs/java/endpoints

今までGoogle App Engineを使ってWeb API的なのを定義する際、Slim3を使ってOAuthServiceで認証情報を取得してJSONでレスポンス返す的な事を一から実装してたりとかしてたけど、今時そんな事しなくてもGoogle Cloud Endpointsを使う事で同等な事をさらっと出来るようになってるらしい

っていう事でドキュメントを読みつつやってみた

MockWebServerRule

2015-06-18T00:00:00+09:00 Java

okhttp+mockwebserverとかでもmockwebserverをテストで使うっていうネタ書いたけど、MockWebServerのインスタンス作ってグダグダしなくてもMockWebServerRuleを使えば良いらしい

※以前に検証したretrofitプロジェクトを利用して検証

retrofit

2015-06-15T17:45:49+09:00 Java RxJava Ruby Rails

公式: http://square.github.io/retrofit/

以前に

っていうように単純なデータのやりとりだけなのであればそういうのがあれば良いんじゃねって思ってたんですが、ソースとかを生成したりはしない(はずだ)けど、retrofitっていうのがあるみたいで使ってみた

retrolambda

2015-06-12T20:17:38+09:00 Android Java

公式?: https://github.com/evant/gradle-retrolambda

参考: http://qiita.com/kamimoo/items/f4b3ef22ca0327e88e32

最近色んなデモアプリのソースとかを見ていると一部でJava8での記法みたいなので作られてる物もあるけど、AndroidってJava8サポートしてないよねっていう事で調べたらretrolambdaっていうのを使う事で出来るっぽい

RxAndroidをざっくり使ってみた

2015-06-11T16:49:40+09:00 Java Android RxJava

参考1: 【翻訳】AsyncTask と AsyncTaskLoader を rx.Observable に置き換える - RxJava Android Patterns

参考2: http://stablekernel.com/blog/replace-asynctask-asynctaskloader-rx-observable-rxjava-android-patterns (参考1の元)

参考3: 俺が RxAndroid について知っているいくつかのまとめ

大分前から色々話題になってるRxAndroidをちょっとざっくりと使ってみた

※あくまで個人的なメモなので詳しく知りたいなら上記の参考を読んだ方が良い

※0.24以降になるとAndroidScheduler以外は無くなるそうなので以下のAppObservableを使うには0.24より上のバージョンでは使えなくなるらしい

Google AppEngine(+OAuth2)にAndroid AccountManagerを介してリクエストする

2015-06-01T16:58:53+09:00 Java Android Google App Engine

chrome.identity APIを使ってGoogle App Engine OAuth2を使うの続き

前回ではJavaScript(Chrome Extension)側からchrome.identityのAPIを利用してアクセスしてレスポンスを取るみたいな事しましたが、AndroidでAccountManagerを使って端末に紐付けしてあるGoogleアカウントを使ってリクエストする場合どうなるのって事でやってみた

Google AppEngineでGoogle Analytics Core Reporting API

2015-05-15T00:00:00+09:00 Java Google App Engine

Google AppEngineにはAppIdentityっていうAPIがあってこれを使ってGoogleのサービスをAppEngine側から利用できる(※あくまでクライアント依存ではなくサーバーを利用しているユーザー依存かと)

っていう事で、このAppIdentity APIを使って自分が登録しているGoogle Analyticsのレポートデータを簡単に取得できるようにしてみた

chrome.identity APIを使ってGoogle App Engine OAuth2を使う

2015-04-22T00:00:00+09:00 Java Google App Engine JavaScript Chrome Extension

参考: http://www.ciiycode.com/0z6ziWjWxjjP/google-app-engine-oauth2-provider

Google Account OAuth1.0aがdeprecated化したのがつい先日くらいの話なので、そのまま放置しておくと問題にもなりそうなので検証してみる

doma2をやってみる (5) - OriginalStates -

2015-04-20T00:00:00+09:00 Java doma

参考: http://doma.readthedocs.org/ja/stable/entity/#id16

取得時の状態とは、エンティティがDaoから取得されときの全プロパティの値です。取得時の状態を保持しておくことで、更新処理を実行する際、UPDATE文のSET句に変更したフィールドのみを含められます

との事。やってみた

doma2を使ってみる (4) - Domain -

2015-03-22T00:00:00+09:00 Java doma

ドキュメント: http://doma.readthedocs.org/ja/latest/domain

要はJavaオブジェクト的なのをデータベース上で表現できるようにする、逆も然りみたいな感じ?。まぁコンバーターみたいな所なんじゃないかと。正式な所は公式ドキュメントに書いてるので(ry

Springでアノテーションがついてるメソッドにアスペクトする方法

2015-03-17T00:00:00+09:00 Java Spring Framework

メソッドに特定のアノテーションをつけている場合に指定したMethodInterceptorを実行する機能があるっぽいのでやってみた

doma2を使ってみた (3) - @Repositoryを使う -

2015-03-16T00:00:00+09:00 Java doma Spring Framework

doma2の機能ではなくSpring Frameworkの@Repositoryで定義した場合どうなるのか気になったのでやってみた

doma2を使ってみた (2) - DI Containerを使う場合 -

2015-03-14T00:00:00+09:00 Java doma

公式ドキュメント: http://doma.readthedocs.org/ja/latest/config/#id21

参考: http://qiita.com/nyasba/items/1e22c2401f3849f9071d

前回にも記述した通り前回ではdomaで使うConfig実装なAppConfig上でDataSource等の設定をそのまま埋め込んでる。でそういう所をDI Containerに設定されているDataSource等を依存性注入して使うような形の場合には設定がいろいろ異なるっていうことでやってみた(使うDI ContainerはSpring Framework)

doma2を使ってみた

2015-03-10T00:00:00+09:00 Java doma

http://doma.readthedocs.org/ja/latest/getting-started を見ながらやってみた

※ターゲットバージョンは2.x

Java EE Batch Processingに触ってみた (2) - Batchlet -

2015-01-05T00:00:00+09:00 Java Java EE

reader/writer/processorを書かなくてもAbstractBatchlet(or Batchlet interface)を実装する事でも可能らしい。でもどっちかといえばクリーンアップ用途的な事で使うのがありっぽい(事実かどうかは曖昧)

Spring Batchの設定ファイルに関して

2015-01-01T00:00:00+09:00 Java Spring Framework

前回のJava EE Batch Processingに触ってみたでも書いたけど、Spring Batchを使うときにbaseContext.xmlみたいにごちゃごちゃ書かなくてもいい模様

Java EE Batch Processingに触ってみた

2014-12-28T00:00:00+00:00 Java Java EE

公式リファレンス: http://www.oracle.com/technetwork/articles/java/batch-1965499.html

参考(jBatch): http://qiita.com/opengl-8080/items/0293bcff97261cb7d0cf

Java EE7?から追加されたっぽいJSR352のBatch Processingが色々気になってたのでやってみた

okhttp+mockwebserver

2014-12-21T00:00:00+00:00 Java

okhttp https://github.com/square/okhttp

mockwebserver https://github.com/square/okhttp/tree/master/mockwebserver

Android界隈向けでよく名前出てくるokhttp、と同等なプロジェクトグループ?が開発しているmockwebserverを使ってみた

excella-reportsを使ってみた

2014-11-24T00:00:00+00:00 Java

excellaを使って、Excelをテンプレートとして読み込んでPDFとして出力してみた

POIでExcelを生成する

2014-11-11T00:00:00+00:00 Java

POIを使ってExcelを生成してみる

Spring Frameworkのdefault scope

2014-11-03T00:00:00+00:00 Java Spring Framework

っていう事でやってみた

Javaで同時リクエストをテストする方法

2014-11-02T00:00:00+00:00 Java

例えば、テスト時に同時リクエストが発生させて処理が異常がなのをチェックしたりする方法

chrome.gcm

2014-10-24T00:00:00+00:00 Chrome Extension JavaScript Java

参考1: https://developer.chrome.com/apps/cloudMessaging

参考2: http://docs.monaca.mobi/3.5/ja/manual/backend/push_config/gcm/ (※主に設定の有効の仕方等)

ちょっと前にはchrome.pushMessagingっていうAPIが公開(って言っても一年以上前)されてたはずなのですが、現在これがどうもlegacy扱いになっている模様で現在はchrome.gcmを使うのが良いっぽそう。確かpushMessagingの方はwebstoreを経由してインストールしたアプリで無いと使えないのかどうかまでは覚えてないが、gcmはcrxパッケージングした拡張であれば使う事が可能らしい

っていう事でやってみた

※おそらくはChrome Sync(ChromeでのGoogleアカウントのログイン機能)をやっておかないと出来ないのかも知れない

JAX-RSをやってみる (20) - SecurityEntityFiltering -

2014-10-23T00:00:00+00:00 Java JAX-RS

参考: https://jersey.java.net/documentation/latest/entity-filtering.html#ef.security.annotations

Entity Filtering機能を使えば出力されるエンティティのデータ等?をフィルタリングできるらしい。一番わかりやすいパターンとして言えば、ログインしているユーザーが持つ権限に応じて出力されては困るデータ等をフィルタリングすることにより出力させないようにする事が可能になる感じ(他にも@EntityFilteringアノテーションを使ってフィルタリングする事自体も可能)

という事でやってみた

JAX-RSをやってみる (19) - OAuth1Providerを実装する -

2014-10-19T00:00:00+00:00 Java JAX-RS Ruby

以前やった「JAX-RSをやってみる (18) – OAuth1Provider -」のだと、jersey-oauthに含まれているDefaultOAuth1Providerを使ってるので、アクセストークンなどはインスタンス上で管理されるはずなのでサーバーダウンしたりするとアクセストークンなどが失効するのではないかと思われる。まぁ要はDefaultOAuth1Providerのようなのをつくればいいだけなので、OAuth1Providerを実装することでできるのでやってみた

※前回の「gradle jettyでJDBCRealm」の設定が別途で必要になるのでそれも前提となる

JAX-RSをやってみる (18) - OAuth1Provider -

2014-10-08T00:00:00+00:00 Java JAX-RS Ruby

公式ドキュメント: https://jersey.java.net/documentation/latest/security.html#d0e11010

参考: https://github.com/jersey/jersey/blob/master/tests/e2e/src/test/java/org/glassfish/jersey/tests/e2e/oauth/OAuthClientServerTest.java

※暫定なので大幅修正する可能性あり

org.glassfish.jersey.securityのoaut1-serverパッケージを使えばOAuth1Providerが使えるようになる模様。っていう事でやってみた

JAX-RSをやってみる (17) - SecurityContext -

2014-10-06T00:00:00+00:00 Java JAX-RS

公式ドキュメント: https://jersey.java.net/documentation/latest/security.html

サーブレットシステムとかで使われるようなPrincipalを使ったセキュリティロールをアノテーションで補助する機能を持つような感じかと。言ってる事わかりづらいと思うのでさっさと本題に入る

HttpsURLConnection TrustManager

2014-10-05T00:00:00+00:00 Java

参考: https://developer.android.com/training/articles/security-ssl.html

※セキュリティ対策を前提としたネタではないので

以前にオレオレHTTPSにJavaから接続するメモというネタで書いてる。そこでTrustManagerを使用するがnullを返すだけなパターンが色々と問題なのでそういう手法を使わない方法をちょっと調べてみたのでメモ

arquillian-managed

2014-09-15T00:00:00+00:00 Java JAX-RS

今回で3回のarquillianネタとして、今までをまとめると

  • arquillian-embeddedで組み込みのサーバーを使ってテスト
  • arquillian-remoteで外部のサーバーを利用してテスト

っていう感じなのでだけど、ローカルにあるサーバーとかを使ってテスト出来る仕組み的なのがarquillian-managedに相当するのではないかと。という事でやってみた

arquillian-remote

2014-09-10T00:00:00+00:00 Java

arquillian-remoteなパッケージを使えば、既存するサーバーに動的にデプロイしてテストしたり出来る模様。基本的には前回の「JAX-RS+CDIをArquillianでテスト」をそのまま使って、arquillian-remoteなパッケージを使ってテスト出来るようにする

JAX-RS+CDIをArquillianでテスト

2014-09-08T00:00:00+00:00 Java JAX-RS

公式ドキュメント: http://arquillian.org/guides/getting_started_ja/

参考: Arquillianでインテグレーションテスト最初の第一歩

タイトル通り、JAX-RS+CDIなのをArquillianでテストしてみようっていうネタ

JAX-RSをやってみる (16) - ParamConverter -

2014-08-16T00:00:00+00:00 Java JAX-RS

参考: http://backpaper0.github.io/2013/07/17/jaxrs_parameter.html

「JAX-RSをやってみる (1)」にも書いてるけど、引数等の型変換の仕組みはfromStringもしくはvalueOfメソッドを定義する事でも可能なのだけどParamConverterっていう仕組みもあるっぽい。という事で使ってみた

JAX-RSをやってみる (15) - ForcedAutoDiscoverable -

2014-07-16T00:00:00+00:00 Java JAX-RS

以前にJAX-RSをやってみる (3) – AutoDiscoverable -っていうので

AutoDiscoverableっていうのを使う事で外部ライブラリで定義されたクラスをコンポーネント的な形として登録して利用

と説明した。でこれ前提がCommonProperties.FEATURE_AUTO_DISCOVERY_DISABLEが設定されているようなケースであるような場合だと処理されない模様。でそれの処理を設定されていようが強制するのがForcedAutoDiscoverableな模様

っていう事でやってみた

※AutoDiscoverableなのとForcedAutoDiscoverableな両方をアプリケーションにデプロイする。但し前者はこっちでは書かないので

JAX-RSをやってみる (14) - Bean Validation -

2014-07-07T00:00:00+00:00 Java JAX-RS

公式リファレンス: https://jersey.java.net/documentation/latest/user-guide.html#bean-validation

単純にアノテーションベースで入力検証のルールを定義出来る。別に説明しなくても良いんじゃねって事で

JAX-RSをやってみる (13) - Refの依存性注入に関して -

2014-06-27T00:00:00+00:00 Java JAX-RS

前回も記述したけど、JspTemplateProcessorでは

final class JspTemplateProcessor extends AbstractTemplateProcessor<String> {

    @Inject
    private Provider<Ref<HttpServletRequest>> requestProviderRef;
    @Inject
    private Provider<Ref<HttpServletResponse>> responseProviderRef;

みたいになっとる訳で、テストで使用する際にあたってそういうところの依存性の注入の解決がうまくいかないのがあったので普通に@Contextで注入する的な事をしてましたけど、なんとか出来たっぽいので

JAX-RSをやってみる (12) - MVC -

2014-06-25T00:00:00+00:00 Java JAX-RS

公式ドキュメント: https://jersey.java.net/documentation/latest/user-guide.html#mvc

参考: http://qiita.com/opengl-8080/items/f4c25ad671e8a6dac743

jersey-mvcなAPIを使えばViewableをぶん投げたりする事によりテンプレートエンジンによりレスポンスを出したりする事も出来る。※現時点で公式でサポートされているテンプレートエンジンがfreemarkerとmustacheとjsp

っていう事でやってみる

JAX-RSをやってみる (11) - Server Sent Events -

2014-06-21T00:00:00+00:00 Java JAX-RS

公式ドキュメント: https://jersey.java.net/documentation/latest/user-guide.html#sse

Server Sent Eventsにも対応している模様。んまぁドキュメントに書いてる通りにjersey-media-sseなライブラリを参照をすればAutoDiscoverableとかそれによりSseFeatureが作用してServer Sent Eventsなのを利用出来るようになる感じかと

JAX-RSをやってみる (10) - AsyncResponse -

2014-06-19T00:00:00+00:00 Java JAX-RS

公式ドキュメント: https://jersey.java.net/documentation/latest/user-guide.html#async

例えば、Threadでなんか非同期に処理するような場合にレスポンスを返す場合にはAsyncResponseを使えば良いとの事な模様で、他にもチャンクレスポンスを出す機能のChunkedOutputを利用する方法でも可能な模様

JAX-RSをやってみる (9) - Container Filters -

2014-06-16T00:00:00+00:00 Java JAX-RS

公式ドキュメント: https://jersey.java.net/documentation/latest/user-guide.html#d0e8119

単純にリクエストなりレスポンスをフィルターする仕組みなAPIな模様。でリクエストからレスポンスまでのライフサイクルについては9.4. Filter and interceptor execution orderにかかれているのだけど、@PreMatchingを使う事によりリクエストからマッチするリソースが特定される前に実行される物なのだろうかと

JAX-RSをやってみる (8) - DynamicFeature -

2014-06-15T00:00:00+00:00 Java JAX-RS

公式ドキュメント先: https://jersey.java.net/documentation/latest/user-guide.html#d0e8531

例えば特定のリソースクラスだったりメソッドだったりで動的にコンポーネントをregisterしたいなどの要件がある場合にはDynamicFeatureを使えばよろしい模様

JAX-RSをやってみる (7) - Reader & Writer interceptor -

2014-06-14T00:00:00+00:00 Java JAX-RS

公式ドキュメント先: https://jersey.java.net/documentation/latest/user-guide.html#filters-and-interceptors

リクエストなりレスポンスなりで処理される前後になんらかの処理をしたい場合にInterceptorが使える模様。それとInterceptorは普通に定義しちゃうとグローバルに作業してしまう件に関しては@NameBindingを使ったアノテーションを定義する事で、そのアノテーションがついている場合にのみ作動するような仕組みを利用する事も可能

JAX-RSをやってみる (6) - 例外処理 -

2014-06-13T00:00:00+00:00 Java JAX-RS

んまぁJAX-RSアプリケーション上における例外処理な所を

JAX-RSをやってみる (5) - CDI -

2014-06-12T00:00:00+00:00 Java JAX-RS

んまぁJAX-RSの機能っていうわけでもないと思うのですが、Java EEな@Injectを使ってDependency Injectionするっていうだけな事

JAX-RSをやってみる (4) - MessageBodyReader -

2014-06-11T00:00:00+00:00 Java JAX-RS

前回の「JAX-RSをやってみる (3) – AutoDiscoverable -」とかだと

package sample.controller;

import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

import sample.bean.SampleBean;
import static javax.ws.rs.core.MediaType.*;

@Path("/sample")
public class Home {

    @Path("save")
    @POST
    @Consumes(APPLICATION_JSON)
    @Produces(APPLICATION_JSON)
    public SampleBean save(SampleBean bean) {
        return bean;
    }
}

なんていうので

package sample.controller;

import javax.ws.rs.client.Entity;
import javax.ws.rs.core.Application;

import org.glassfish.jersey.test.JerseyTest;
import org.junit.Test;

import sample.SampleApplication;
import sample.bean.SampleBean;

import static javax.ws.rs.core.MediaType.*;
import static org.junit.Assert.*;
import static org.hamcrest.Matchers.*;

public class HomeTest extends JerseyTest {

    @Override
    protected Application configure() {
        return new SampleApplication();
    }

    @Test
    public void test_save() {
        Entity<SampleBean> entity = Entity.entity(
            new SampleBean("hoge"),
            APPLICATION_JSON
        );

        SampleBean response = target("/sample/save").request().post(entity, SampleBean.class);
        assertThat(response, notNullValue());
    }
}

なんていうテストをやってみると「not found MessageBodyReader」なんていうエラーになるわけで。もちろん前回のはMessageBodyWriterは実装してあるけど、MessageBodyReaderが実装されてないので。っていう事でMessageBodyReaderを実装してみた

JAX-RSをやってみる (3) - AutoDiscoverable -

2014-06-10T00:00:00+00:00 Java JAX-RS

JAX-RSで返される値の型に対してレスポンスを変換するような仕組みはMessageBodyWriter(MessageBodyReaderっていうのもある)で利用する事が出来る。@Providerアノテーションを使う事でJAX-RSアプリケーションプロジェクト内にクラスを定義すれば良いだけなのだけど、例えばそういう仕組みな所を外部のライブラリにした場合でアノテーションが処理されるパッケージフィルターに該当しないような場合にどうやってその仕組みをロードするのか調べてみるとAutoDiscoverableっていうのを使う事で外部ライブラリで定義されたクラスをコンポーネント的な形として登録して利用できる模様。

という事でやってみた

JAX-RSをやってみる (2) - glassfish deployment -

2014-06-08T00:00:00+00:00 Java JAX-RS

参考: https://jersey.java.net/documentation/latest/deployment.html#deployment.servlet.3

JAX-RSに準拠しているアプリケーションサーバー(glassfish等)ではデプロイ時の設定が若干異なる模様。またJAX-RSに準拠しているアプリケーションサーバーであれば特にデプロイメントデスクリプタ(web.xml)を定義しなくても@ApplicationPathを使う事で引数に指定したパスを<servlet-mapping>のベースとして利用できるようになるっぽい。微妙にややこしいけど

※記述している内容が正しいかは微妙なのであくまで個人的なメモとして

JAX-RSをやってみる (1)

2014-06-05T00:00:00+00:00 Java JAX-RS

Jerseyドキュメント: https://jersey.java.net/documentation/latest/index.html

参考: http://backpaper0.github.io/2013/05/02/jaxrs.html

JavaでRESTfulなWebアプリケーションを作るっていう場合とかだとJAX-RSを使えば何かと便利っぽそうなのでいろいろ勉強してみたのでちょっとだけまとめる

※JAX-RSのバージョンは2.x系をターゲットにしてます。又、以下で書くのはあくまでサーバーを起動して利用する前提ではなくテストを書いて実行しているだけなのでサーバー関係に伴ってくる部分に関しては今後に書く予定

Androidでengine.io

2014-05-21T00:00:00+00:00 Android Java

前回やったengine.ioの記事にも書いてるが、Java向けのクライアントライブラリが既にengine.io-client-javaっていうのがあるので、それを使えば出来るだろうってことでやってみた

※サーバーは前回のをそのまま利用

gradle-android-test-plugin+robolectric+espresso

2014-04-28T00:00:00+00:00 Android Java robolectric

https://groups.google.com/forum/#!topic/robolectric/xsOpEwtdTi4 にあるように元はJake Wharton氏が開発されていてdeprecatedになっていたgradle-android-test-pluginをrobolectric開発チームによってメンテされるようになった模様

てな訳でgradle-android-test-pluginを使いつつの、robolectricでの単体テスト及びespressoによるUIテストをやってみる

Espressoを使ったUIテスト

2014-04-27T00:00:00+00:00 Android Java

公式: https://code.google.com/p/android-test-kit/wiki/Espresso

APIリファレンス: https://android-test-kit.googlecode.com/git-history/master/docs/javadocs/apidocs/index.html?r=master

タイトル通り、EspressoのUIテストキットなライブラリを使ってUIテストをするっていうのをやってみた。まぁ導入周りとかそっち系の単純な話だけなので(ry

SlidingPaneLayout

2014-04-04T00:00:00+00:00 Android Java

公式リファレンス: http://developer.android.com/reference/android/support/v4/widget/SlidingPaneLayout.html

android.support.v4.widgetにSlidingPaneLayoutっていうのが追加されていたのを今更知ったので検証してみた

SwipeRefreshLayout

2014-03-30T00:00:00+00:00 Android Java

参考: [Android] Support Library に追加された SwipeRefreshLayout - @adakoda

上記参考によるとAndorid Support v4 packageにSwipeRefreshLayoutっていうのが追加された模様。んまぁ見る限りだとAndroid PullToRefreshとActionBar PullToRefreshを組み合わせたのっぽいような感じもするんですが

という事で使ってみた。ちなみに/path/to/android_sdk/extras/android/support/samples/Support4Demosにサンプルが入ってる

LoadMoreListView

2014-02-26T00:00:00+00:00 Android Java

まぁ要はListViewの末尾に達したら新しいデータをロードする等の仕組みを提供する機能的なやつ。Android PullToRefreshにはそういう機能があったけど、何回かふれているけどActionBar PullToRefreshを使うべきという形になっているので、それっぽい機能をどうするかって所なんですが

調べた所によると、LoadMoreListViewっていうのを利用する事で出来るっぽい。という事で使ってみた

maven+android archive

2014-02-19T00:00:00+00:00 Android gradle Java

参考: http://www.flexlabs.org/2013/06/using-local-aar-android-library-packages-in-gradle-builds

今時な手法として良いかは知らんけど、例えばAndroidプロジェクトでライブラリプロジェクトを伴うけど、アプリプロジェクトとは別で開発されていてそれは社内なりのMaven Repositories(後術参考)を介して利用できる。それをやってみた

gradle-android-toolkit+robolectric-plugin

2014-02-18T00:00:00+00:00 Android Java robolectric

っていう事でrobolectric-pluginっていうのがあるっては知ってはいたんですが、どうも上手く行かなずな感じで。まぁ一回は挫折したんですが再チャレンジでようやくテストの実行が出来たのでメモっておく

gradle-android-test-plugin+Robolectricでテスト

2014-02-16T00:00:00+00:00 Android Java robolectric

参考: http://starzero.hatenablog.com/entry/2013/12/22/201149

gradle-android-test-pluginがいつの間にかDEPRECATEDになっているっていうのを知らずに(ry まぁ他に手段ってのもなかなかなものなので、とりあえずRobolectric演習的に使ってみる

ActionBar-PullToRefreshをメニューボタン等で連動させる

2014-02-13T00:00:00+00:00 Android Java

っていうActionBar-PullToRefreshを使っている場合において、メニューでリフレッシュボタンとかでActionBar-PullToRefreshを発生させるような要件を実現したい場合にはどうすれば良いのか。簡単に言えば上記画像中の右上にあるリフレッシュボタンをクリックする事でonRefreshStartedメソッドを発生させたいっていう所

っていうのをやってみた

ActionBar-PullToRefresh

2014-02-12T00:00:00+00:00 Android Java

※ActionBar-PullToRefreshも「PLEASE NOTE, THIS PROJECT IS NO LONGER BEING MAINTAINED」になってますので現時点で使う場合注意

Android PullToRefreshにも追記しましたが、Android-PullToRefresh は既にdeprecated(正確にはNO LONGER BEING MAINTAINED)らしいので、ActionBar-PullToRefreshを使えとのこと。つーことでListFragmentを使う場合のドキュメントを見つつやってみた

※但し、Android PullToRefreshとActionBar PullToRefreshはスタンスは異なるかと思われますので

Spring WebMVCをやってみる (19) - UriComponentsBuilder -

2014-02-11T00:00:00+00:00 Java Spring Framework

公式ドキュメント的にはBuild URIsBuild URIs to Controllers and Methodsなあたりを読みつつ

gradle-android-toolkitでライブラリプロジェクト

2014-02-11T00:00:00+00:00 Android gradle Java

例えば、アプリプロジェクト・ライブラリプロジェクトの両方を持ちつつActionBarSherlock等のような外部のライブラリプロジェクトを利用する場合のgradle-android-toolkitでのビルドってどうなってるかとか辺りをまだやってなかったのでやってみた (※Android Studioに関してはノータッチで)

※以下のバージョンのgradle-android-toolkitはGradleのバージョンが1.10くらい辺りからじゃないと動かないので(ry

ProgressFragment

2014-02-10T00:00:00+00:00 Android Java

http://johnkil.github.io/Android-ProgressFragment っていうのがあるみたいでデモアプリもある模様

ottoの@Produceに関して

2014-02-03T00:00:00+00:00 Android Java

Androidのイベントバスなライブラリとしてottoが有名ですが、これの@Produceアノテーションの動作が微妙だったので検証してみた所だと

SwipeListView

2014-01-31T00:00:00+00:00 Android Java

っていう事で使ってみた

RefreshActionItem

2014-01-31T00:00:00+00:00 Android Java

的な感じでChrome拡張機能にあるchrome.browserAction.setBadgeText的な事も出来るリロード機能に特化した?AndroidライブラリのRefreshActionItemを使ってみた

Android4.4(Kitkat)のデフォルトSMSアプリに関して

2014-01-29T00:00:00+00:00 Android Java

参考1: Getting Your SMS Apps Ready for KitKat

参考2: Android KITKAT: デフォルトSMSアプリを作る - ブライテクノBlog

※非常に内容がざっくりとしてますので上記参考を(ry

Android 4.4(Kitkat)からデフォルトなSMSのアプリを作って利用する事が出来るらしいとの事は知っていたのだけど検証的な辺りとかしてなかったので色々やってみた

ottoとActivityRecognition

2014-01-27T00:00:00+00:00 Android Java

ottoな勉強をするにあたってそういう要件が必要にならないと例にならない気がしたので、ActivityRecognitionを使って行動認識をActivityへottoを使って通知する仕組み的な事やってみた

AndroidSlidingUpPanel

2014-01-21T00:00:00+00:00 Android Java

Android Library Rankingで1位になっているAndroid SlidingUpPanelっていうのが気になったので使ってみた。んまぁAuthor見れば分かるがUmanoっていうアプリで使われてるそうで

でどういうライブラリなのかざっくり画像で見せると

っていう感じになってて下側にあるsliding contentsっていう部分をひっぱることが出来る

まぁ今時は使われてないけど、似たようなのにAndroid公式でサポートされているSlidingDrawerっていうのがある。まぁようはそれっぽい動作をする物みたいな感じ

Android ImageView Library?のPicassoが使えるんじゃないかって件

2014-01-20T00:00:00+00:00 Android Java

https://github.com/square/picasso っていうのがあるのを知り使ってみたんだが、これなかなか使えるのではと

android-times-square

2014-01-19T00:00:00+00:00 Android Java

CalendarっぽいViewなのでhttps://github.com/square/android-times-squareっていうのがある模様。ってな訳でちょいと使ってみた

gradle-android-test-plugin

2014-01-17T00:00:00+00:00 Android Java

ActionBarSherlockの開発者(だはず)でもあるJake Wharton氏がgradle-android-test-pluginっていうのを開発している模様っていうのを知ったので使ってみた

以前gradle-android-toolkitでRobolectricを動かすっていうのをやったのでそれをそのまま使う。修正するのはbuild.gradleだけ

Androidでsocket.io

2014-01-11T00:00:00+00:00 Android Java JavaScript Node.js

socket.io-java-clientを使えば出来るらしいのでちょっと要件検証目的でやってみた。ちなみにsocket.ioサーバーはnode.jsなやつを使う

Spring WebMVCのformとFormatterの件

2014-01-10T00:00:00+00:00 Java Spring Framework

※おそらくは書いてる内容は自分以外は理解しにくいと思いますので興味ないならCTRL+Wしてください(笑)

Spring WebMVCをやってみる (18) – AnnotationFormatterFactory -でも書いてるけど

「getPrinter実装してもどういう作用で発生するのかが謎」。普通にFormatterを使う場合とかだと等で作用されるっていうはあるのだけど、このAnnotationFormatterFactoryの事象だけはgetPrinterメソッドが作用する事が無い

っていう件に関して。結論から言うと「やり方が悪い」っていうだけだった模様

mock-javamail

2014-01-07T00:00:00+00:00 Java

「JavaMailを使ってgmailでメールを送る件」なコードをそのまま使う

前回のをそのまま実行すると普通にメール送れるのは良いんですが、それをテストする方法としてまぁちょっと古いけれどもmock-javamailっていうのがある模様。どうやらjavamailで使用するメールトランサポートをモックする事で送ったメールをMailboxクラスで参照できる的な所かと

JavaMailを使ってgmailでメールを送る件

2014-01-07T00:00:00+00:00 Java

タイトル通り

オレオレHTTPSにJavaから接続するメモ

2014-01-07T00:00:00+00:00 Java

※以下の手法を使うとセキュリティ問題になる原因になるので注意

適当にnginxでオレオレ証明書を使ってHTTPSサーバーを構築した。じゃあそれをJavaで接続してみよう

MahoutのLocalitySensitiveHashSearch

2014-01-06T00:00:00+00:00 Java Mahout

通称で言うとLSH。んまぁmixiさんの「LSH (Locality Sensitive Hashing) を用いた類似インスタンスペアの抽出」辺りが有名?ですかね

http://hillbig.cocolog-nifty.com/do/2009/02/lsh-spectral-ha.html にはLSHとはなんぞやと以下の本とかでも触れられているらしい(ていうか筆者かと)

でMahoutでそのLSHサポートがあるっぽいのでちょっと使ってみたのでメモ

Spring WebMVCをやってみる (18) - AnnotationFormatterFactory -

2014-01-04T00:00:00+00:00 Java Spring Framework

前回でも書いたように、@DateTimeFormatのようなアノテーションによってFormatterが作用する仕組みっていうのを作る事も出来る。それを担うのがAnnotationFormatterFactoryになる模様

Spring WebMVCをやってみる (17) - Formatter -

2014-01-03T00:00:00+00:00 Java Spring Framework

前回のConverter同様に型を変換したりする仕組みな模様。@DateTimeFormatのようにアノテーションによって型変換を行うのも可能(後日書く)。んまぁ違い的な所としては非常に曖昧で微妙なのだけど、Formatterはインターフェースによりパースする所と出力サポートを行うメソッドを実装する必要がある。んまぁ詳しい違いとかわかり次第補足なりする予定

とりあえず使ってみる。題材的なのとしてEnumを変換する仕組み的なのを作ってみる

thymeleaf+spring mvc

2014-01-02T00:00:00+00:00 Java Spring Framework

タイトルどおりでSpring WebMVCでJSPを使わずにthymeleafを使ってやるってだけ。まぁドキュメント(但しSpring3)を見れば良いだけなので、ざっくり行きます

thymeleaf

2013-12-31T00:00:00+00:00 Java

Javaなテンプレートエンジンらしい。ドキュメント読みつつちょっとやってみた。とりあえずは暫定的なメモ

※日本語情報的にはhttp://tech.nulab.co.jp/2012/02/thymeleaf/が良いかと

Spring WebMVCをやってみる (16) - Converter -

2013-12-26T00:00:00+00:00 Java Spring Framework

以前にも引数にDateを使う場合だとかはConversionServiceな設定が必要だって件を書いたけど、そういう所を自分で作って利用したい場合どうすれば良いのかって所を検証してみた

Spring WebMVCをやってみる (15) - TypeMismatch -

2013-12-25T00:00:00+00:00 Java Spring Framework

前回の「Spring WebMVCをやってみる (14) – @Valid+BindingResult+RedirectAttributes -」で書いたのをそのまま利用

前回だとSampleFormのnameプロパティだけをフォームで入力させて利用するっていうパターンだけやったのですが、SampleFormにはidプロパティもあるのでそれをフォームで入力させる際にあたって、数値(int)型では無い値を入れた場合のエラーメッセージはTypeMismatchを利用する事で出来る模様

Spring WebMVCをやってみる (14) - @Valid+BindingResult+RedirectAttributes -

2013-12-24T00:00:00+00:00 Java Spring Framework

前回で出した問題点として、「エラー表示はビューをレンダリングしているのでリロードするとPOSTなリクエストになる」って件。まぁ良くあるパターンなのかは微妙な所なんですが、対策として

  • ビューをレンダリングしないでフォームを出す所にリダイレクトする
  • リダイレクトする際にFlashスコープでエラーを突っ込んでおく
  • リダイレクト先で上記で突っ込んだエラーがあるのならば、それをビューで表示できるように構成する (BindingResult.MODEL_KEY_PREFIX + ModelAttributeな文字列をキーとする)

っていう感じじゃねーかと。んまぁ今回修正案として出すのはコントローラーだけ(それとテストも)

Spring WebMVCをやってみる (13) - @ValidとBindingResult -

2013-12-23T00:00:00+00:00 Java Spring Framework

簡単に入力検証なのを実現したいのであれば@ValidとBindingResultを利用する事で出来るらしい。色々突っかかる所があるのであくまで暫定的ではあるけどメモっておく

Spring WebMVCをやってみる (12) - RedirectAttributes -

2013-12-20T00:00:00+00:00 Java Spring Framework

んまぁSpring WebMVCでアクションからリダイレクトを利用したい場合等にはredirect:なプレフィックスを利用する事で出来るんだけれども

  • リダイレクト先にパラメーターを設置したい (リダイレクト先で@RequestParam)
  • フラッシュスコープを利用してリダイレクトしたい

っていう要件を検証してみた

jsp-config

2013-12-18T00:00:00+00:00 Java

良く忘れるのでメモ

Spring WebMVCをやってみる (11) - @RequestMappingのparams -

2013-12-18T00:00:00+00:00 Java Spring Framework

例えば

<form action="/swmvc/sample/index.action" method="post">
    <input type="submit" name="say1" value="say1" />
    <input type="submit" name="say2" value="say2" />
</form>

っていうようにターゲットとなるアクションは1つでサブミットによって処理されるアクションを切り分けたい場合には@RequestMappingアノテーションにparams属性で<input type="submit">で指定されてるname属性の値を指定すれば良いらしいとの事

java.util.ServiceLoader

2013-12-16T00:00:00+00:00 Java

まぁJavaやってるとたまーにみるMETA-INF/servicesっていうディレクトリにファイルがあってその中身が実装クラスのFQDNが書いてるっていうケース。こういう仕組みを作るにはどうするのかっていうのをやってみた

Spring WebMVCをやってみる (10) - gsonを使う -

2013-12-15T00:00:00+00:00 Java Spring Framework JavaScript

例えば

  • @ResponseBodyアノテーションがついてるメソッドでStringじゃなくてオブジェクトだとかをぶん投げたりとか
  • @RequestBodyアノテーションがついてるメソッドの引数でStringじゃなくてオブジェクトだとかを指定したりとか

っていうケースな場合にJSONで投げられる事を前提とするのであれば、MessageConverterな方式を利用する事でサポート出来るらしいのでやってみた

Spring WebMVCをやってみる (9) - @ExceptionHandler -

2013-12-14T00:00:00+00:00 Java Spring Framework

タイトル通り、例外が発生すると特定の@ExceptionHandlerがついてるメソッドが発動して処理を促せるような物らしい

Spring WebMVCをやってみる (8) - @ModelAttribute -

2013-12-13T00:00:00+00:00 Java Spring Framework

リクエストパラメーターとかからJavaBeanとなるオブジェクトを引数にマッピング出来たりだとか、ModelAndViewで使用するモデルを初期化したりする事も出来る模様

Spring WebMVCをやってみる (7) - @RequestBody -

2013-12-11T00:00:00+00:00 Java JavaScript Spring Framework

まぁアノテーション名で分かるようにHTTPリクエストボディを引数にマッピング出来る的な感じの解釈で良いんじゃないかと。例えばJSONデータをぶっこんでコントローラーでパースして利用するような場合とかに使うとかなんですかね

とりあえずやってみた

Spring WebMVCをやってみる (6) - @RequestParam -

2013-12-10T00:00:00+00:00 Java Spring Framework

パスの一部をマッピングで結びつけるのが@PathVariableで、クエリーを結びつけるのが@RequestParam的な解釈で良いんだろうか。

Spring WebMVCをやってみる (5) - PathVariable -

2013-12-09T00:00:00+00:00 Java Spring Framework

例えばRequestMappingで指定するパスの一部を変数で引数にマッピングしたい時とかに使うのが@PathVariableアノテーションな模様。

Spring WebMVCをやってみる (4) - AbstractViewを利用した独自Viewを利用する -

2013-12-08T00:00:00+00:00 Java Spring Framework

前回のSpring WebMVCをやってみる (3) – 返せるレスポンスタイプに関して -でも書いたように、レスポンスを返す型としてView型を返す事も出来る。又、ModelAndViewにsetViewNameを利用する事でも独自のViewを使ってレスポンスを返却させる事が出来る。という事で使ってみた

Spring WebMVCをやってみる (3) - 返せるレスポンスタイプに関して -

2013-12-06T00:00:00+00:00 Java Spring Framework

大まかにSpring WebMVCでコントローラーアクション(@RequestMappingで処理されるメソッド)で返せる値の形式は

  • String (redirect/forward等のプレフィックスも含む)
  • ModelAndView
  • Map<String, Object>
  • String、又はbyte[]等で@ResponseBodyなアノテーションを付与
  • ResponseEntityを使用
  • org.springframework.web.servlet.Viewを使用

っていうような感じで値を返す事が出来る。もちろん値を返さないvoidでも引数にHttpServletResponseを利用してレスポンスを出す事も可能

ModelAndViewはSpring WebMVCをやってみる (2) – アノテーションを使わないコントローラー -で既に検証済みなので省略する。又、最後のViewに関しては後日別途で記事を書く予定になっているので今回は省略する。という事でコントローラー書いてテスト書いて検証してみる

Spring WebMVCをやってみる (2) - アノテーションを使わないコントローラー -

2013-12-05T00:00:00+00:00 Java Spring Framework

前回のだとアノテーションでコントローラーを定義してゼロコンフィギュレーション方式でやってみたのだけど、そうではなくて普通にAbstractControllerを継承する方式でも作る事自体は可能な模様

Spring WebMVCをやってみる (1)

2013-12-03T00:00:00+00:00 gradle Java Spring Framework

タイトル通り、まぁ特に依存性注入するとか細かい所は今回無しな方向で画面にテキストを出すだけな事をSpring WebMVCを使ってやってみる。まぁ要は使い方の一歩目的な感じで

DialogFragmentのsetShowsDialog

2013-11-25T00:00:00+00:00 Android Java

※ソースを完全に読んだ訳じゃないので若干微妙なのであくまでネタとして

例えば、DialogFragmentを継承したクラスを作りsetArgumentsでandroid.os.Bundleを指定してパラメーターを渡す。そこまでは良いのだけど、そのパラメーターに値が入ってないとかgetSerializableなりはできるけどnullが返ってきてるような場合でそのままonCreateDialogを実行されてしまうとNPEなりの問題が発生してくる訳。そこら辺の制御とか辺りどうするのかって所なんですが

slf4j+fluentd

2013-11-16T12:00:00+00:00 Java fluentd

まぁタイトルで分かるようにslf4jで送出されるログをfluentdにぶん投げるネタ

slf4j

2013-11-16T00:00:00+00:00 Java

前にから気になってたロガーのslf4jを使ってみる

Android+JsonPullParser

2013-11-14T12:00:00+00:00 Android Java

AndroidでJsonPullParserを使うっていうネタ。まぁ公式にもサンプルあるしそれ参考にすれば良いんじゃねって所なんで

※@JsonModel等は前回のをそのまま利用

jsonpullparser

2013-11-14T00:00:00+00:00 Java

jsonpullparserを使ってみた

Annotation Processorの基本的な所

2013-11-13T00:00:00+00:00 gradle Java

codemodelを使ってアノテーションプロセッサ利用によるJavaコードの生成とかでもやってるけど、色々思う所があったのでやってみた

InputMethodServiceを使ってIMを作るメモ

2013-11-06T00:00:00+00:00 Android Java Python

ネタ帳からの大体そのままな引用(要は雑って事)。以前、Androidのソフトウェアキーボードを作って、PC側とbluetoothを経由してスマフォ上のテキスト入力をPCから入力させるとかっていうのをやってた。とりあえず書いておこうかと

SpeechRecognizerを使って音声テキスト及び音声データを取得する方法

2013-11-05T00:00:00+00:00 Android Java

昔書いたネタをそのまま書く。

※リソース開放方式まで考慮してないので、そこら辺は活用する場合にはそれなりに要修正必須

※onBufferReceivedが機種依存により呼ばれないのもあるそうです

android.speech.SpeechRecognizerを使って音声からテキストを起こすAPIがあるけど、この際に音声データ自体も保管しておくっていう事をする。

SherlockNavigationDrawerを使ってみた

2013-10-23T00:00:00+00:00 Android Java

んまぁSlidingMenuだったりだとか色々あるのですけど、Googleが公開したNavigationDrawer方式をベースに使えるようにした物がSherlockNavigationDrawerらしい、正しいかは微妙だけど。ちなみにデモアプリもあるのでちょっとどんな感じかってのを見たければそれ入れて確認してみるってのも可能

という事で使ってみた (ただ公式なサンプルを見て自分で書いてやってみただけなので、ほとんど同じ)

gradle-android-toolkitでRobolectricを動かす

2013-10-20T00:00:00+00:00 Android gradle Java robolectric

Robolectricなテストプロジェクトをgradleで動かすなネタと若干似てますけど、こっちではandroid toolkitなgradleプラグインを用いてAndroidアプリをビルドする、testタスクを利用してsrc/test/javaにあるクラスをRobolectric利用でテストを実行するっていう方式をやってみた

Mockitoでfinalクラスをモック化 (2)

2013-10-16T00:00:00+00:00 Java

Mockitoでfinalクラスをモック化の続き

Robolectric+mockito

2013-10-15T00:00:00+00:00 Android Java robolectric

Robolectric+powermockitoでRobolectricを利用している際におけるstaticメソッドのモック化っていうのを書いたけど、単純にRobolectric+Mockitoを使ったインスタンスメソッドのモック化に関してはスルーしてたので色々検証

Robolectric+powermockito

2013-10-11T00:00:00+00:00 Android Java robolectric

参考: http://addie9000.blogspot.jp/2012/12/robolectricpowermockandroidunit-test.html

Robolectricを使ってJUnit4ベースでテストしたいけど、PowerMockitoを使ってstaticメソッドをテストしたいって思ってもRobolectric自体が@RunWith(RobolectricTestRunner.class)を使うので、PowerMockitoのPowerMockRunner.class指定出来ないよねっていう事で上記の参考にRobolectricでのPowerMockitoの動かし方参考にしつつやってみた。ただ気になる事の検証的な目的かなと

※但し、上記の参考のRobolectricバージョン(1.1)とこの記事のバージョン(2.2)は違う

Android NativeMethods Pattern

2013-10-10T00:00:00+00:00 Android C++ Java

Androidっていうか単純にJNIに関する事だと思うので(ry

おそらくは通常だと

JNIEXPORT JNICALL jstring Java_パッケージ_say(JNIEnv* env, jobject thiz) {
}

的な感じでパッケージ名とメソッド名をconcatしたような名前の関数を定義する方式が一般的に知られていると思われるのですが、Androidのコアパッケージのソースとか色々見ているとNativeMethodsパターンな方式を採用しているのが多い。つまり上記のように定義しないっていうのがAndroidでは一般的なのかなと。んまぁNDKというかこういう辺りな事をやる事自体まったく無いんだけれどもやってみた

Struts2をやってみる (16) - ModelDriven -

2013-10-04T00:00:00+00:00 Java Struts2

今までだとフォームだとかで送信されるデータをActionクラスにセッターメソッドを用意して利用するっていう方式ですけど、従来のStrutsの方式であるActionFormのような方式をModelDrivenを使う事で可能らしい。という事でやってみた

Struts2をやってみる (15) - struts.patternMatcher

2013-10-02T00:00:00+00:00 Java Struts2

何やら色々見ているとWildcard Mappingsにおいて、struts.patternMatcherを設定する事で、*によるマッチングでは無く、{id}のようなパターンマッチ方式も使えるとの事で

Struts2をやってみる (14) - TypeConverter -

2013-10-01T00:00:00+00:00 Java Struts2

何やらアクションで評価されるパラメーターとか?を指定した型で変換する仕組みが備わってるようで。公式ドキュメント

とりまぁ読みつつ進めてみるかってことで

Struts2をやってみる (13) -validationインターセプターを抑制する -

2013-09-27T00:00:00+00:00 Java Struts2

validateメソッドによる入力検証だったり、XML定義による入力検証っていうような方式がある。でこういう処理はフレームワークレベルで判断される訳だけど、これを抑制して自動で処理せずに自分でコントロールしたい場合とかの方法も用意されているようで

ちなみにStruts2のバリデーションインターセプターの実体はcom.opensymphony.xwork2.validator.ValidationInterceptorとなっている模様。でこちらで色々オプションなパラメーターがある模様

Struts2をやってみる (12) - Spring Framework -

2013-09-23T00:00:00+00:00 Java Spring Framework Struts2

struts2-spring-pluginを使えばStruts2でSpring Frameworkを利用して依存性を注入したりも出来る

Struts2をやってみる (11) - Interceptor -

2013-09-23T00:00:00+00:00 Java Struts2

Interceptorの利用法は今まで何度と無く書いてきたので(ry

とりあえず自分でInterceptorを作って利用してみる

Struts2をやってみる (10) - HTTP Session -

2013-09-22T00:00:00+00:00 Java Struts2

Struts2でセッション管理な機能を使うには

Struts2をやってみる (9) - Preparable Interface -

2013-09-21T00:00:00+00:00 Java Struts2

いわゆるアクションメソッドが起きる前の事前処理をしたい場合とかにメソッドがコールされる仕組みが存在する模様

Struts2をやってみる (8) - Exception Handling -

2013-09-21T00:00:00+00:00 Java Struts2

アクションから例外が発生した場合の振る舞いなコントロールなあれですね

Struts2をやってみる (7) - フォームバリデーション (2) -

2013-09-20T00:00:00+00:00 Java Struts2

前回の続き。validateメソッドでグダグダとしましたけど、それをXMLで定義して利用する事も可能だって事らしいのでやってみる。構成は前回と全く同じ、クラス等を修正するだけ

Struts2をやってみる (6) - フォームバリデーション (1) -

2013-09-19T00:00:00+00:00 Java Struts2

タイトル通り。ActionSupportなクラスにvalidateメソッドを定義する事で入力検証な機能を実装出来る。こいつの実体自体はValidateableインターフェースが作用している模様。

HBaseのTableReducer

2013-09-18T00:00:00+00:00 gradle Hadoop HBase Java

タイトル通り、Hadoop MapReduce上でReducer側から処理したデータをHBaseにぶっこむ為にTableReducerを使う事が出来る。やってみた

HBaseのTableMapper

2013-09-18T00:00:00+00:00 Hadoop HBase Java

前回の逆というか、TableMapperを使ってHBase上のテーブルからデータとってそれを普通のReducerで処理する

という事なので前回のと今回のを合わせれば、「HBaseで取ってHBaseに出力」なんていう事も出来る。というかベースはそれでなっててそれを分割しているにしかすぎないのが今回の件

Struts2をやってみる (5) - struts.xmlに定義する事なくActionをテストする -

2013-09-17T00:00:00+00:00 Java Struts2

単純に言うと、struts.xmlにを定義せずにテストクラスにアクションクラスを書いてそいつをregisterしてテストするっていう方式。どうやるのか不明だったので色々Struts2のソースを探ってみると

Struts2をやってみる (4) - StrutsResultSupportクラスを作る -

2013-09-17T00:00:00+00:00 Java Struts2

前回では書いて無かったけど、で使えるtypeに指定出来るようにするには

  • StrutsResultSupportを継承したクラスを定義する
  • struts.xmlにてで定義したStrutsResultSupportを設定する

というような方式を行う事で独自で作る事も可能な模様。という事でやってみた

Struts2をやってみる (3) - <result>のtypeに関して

2013-09-16T00:00:00+00:00 Java Struts2

struts.xmlにて

<action name="..." class="...">
    <result name="success">/WEB-INF/jsp/index.jsp</result>
</action>

っていうような記述を行う訳ですが、そこのtypeに指定する値でレスポンス方式を変えたり出来る模様。んまぁまだアノテーション利用な部分まで進んでないので(ry

で結構たくさんある模様なのだけど

  • redirect
  • redirectAction
  • plainText
  • stream

等を利用してみる

Struts2をやってみる (2) - Actionのテスト -

2013-09-15T00:00:00+00:00 Java Struts2

まぁサブタイトル?通り。struts2-junit-pluginっていうのを利用する事でorg.apache.struts2.StrutsTestCaseっていうのが利用できそれを使う事でコントローラー部分なテストをする事が可能な模様

Struts2をやってみる (1)

2013-09-15T00:00:00+00:00 Java Struts2

まぁStruts1.xがEOLっていう事で代わりとなりえるだろうフレームワークを調査中で。でまぁStruts2とかもあるんじゃないかっていう事で色々勉強をしてみる事に

Android Live Wallpaper

2013-09-10T00:00:00+00:00 Android Java

いわゆるライブ壁紙っていう機能。SurfaceView的な感じで壁紙に動的にレンダリングしたりとか出来る

まぁ自宅のメモ用ブログには書いてたけどこっちに書いてなかったので、美人時計サービスを利用して1分毎に動的に壁紙をレンダリングするっていうのをやってみる。ただ、結構雑に作ってあるので(ry

※あくまでLive Wallpaperってどんな感じで作るのかっていう

AccessibilityServiceを古いAndroidバージョンで動かす

2013-09-08T00:00:00+00:00 Android Java

android.accessibilityservice.AccessibilityServiceを使用してNotificationを取得するをAndroid4.x以下(3.x系を除く)な2.x系で動かす場合、<meta-data>によるAccessibityServiceInfoの構築?はサポートされてない模様。

という事でやってみた

oauth-signpost(Android)でGoogle App Engine(+OAuth)

2013-09-06T00:00:00+00:00 Android Google App Engine Java

タイトル通り。要件は以下

Android4.3 NotificationListenerServiceを使ってみる

2013-09-03T00:00:00+00:00 Android Java

タイトル通り、Android4.3から追加されたらしいNotificationListenerServiceっていうのがある模様。どうやらAccessibilityServiceを使って通知を取得するっていうのは以前にやったけれども、それと同等な事をサクッと出来るようになったっぽい

とりあえずwktkしてるので使ってみた

Hadoop DBInputFormat/DBOutputFormat を使ってみる

2013-09-02T00:00:00+00:00 Database Hadoop Java

今更って感じですが... っていうか元ブログ(自宅用)からの現在のバージョンで動くか確認しつつの転用っていう形

※ちなみに検証したHadoopのバージョンは1.2.1

codemodelを使ってアノテーションプロセッサ利用によるJavaコードの生成

2013-08-10T00:00:00+00:00 gradle Java

とあるチャットにて、「クラスについたアノテーションからJavaソース生成させるとかどうやるの」っていう相談を受けたんだが、まぁ出来るんだろうけどやった事が無いっていう事でやってみた

LocalBroadcastManager

2013-07-19T00:00:00+00:00 Android Java

※ローカルのネタ帳からのほぼコピペ

一言で言えばアプリ内ローカルでのみ利用可能なブロードキャスト的な感じかなと。一般的には

ActionsContentView

2013-07-17T00:00:00+00:00 Android Java

https://github.com/StevenRudenko/ActionsContentView

SlidingMenuと同様なUIコンポーネントライブラリ。まぁサイドバーを設置してスワイプする事で出てくるようなメニューUIを実現するようなライブラリ。使ってみた

ちなみに https://play.google.com/store/apps/details?id=sample.actionscontentview にデモがあるので

PullToRefresh(ListFragment)#onRefreshをTouchUtilsでテストする

2013-07-08T00:00:00+00:00 Android Java

PullToRefreshを使うのは良いけど、PullToRefreshBase.OnRefreshListenerを使用して発生するListViewの下部に向けてスライドする事でリフレッシュするUI処理をテストしたい場合

ViewPager(FragmentPagerAdapter)のテスト

2013-07-04T00:00:00+00:00 Android Java

ViewPager(+FragmentPagerAdapter)を使っている際に、Activityのテスト(ActivityInstrumentalTestCase2)でViewPagerで利用されているFragmentPagerAdapterを取って、そのFragmentを取得してごにょごにょテストする方法

Mockitoでfinalクラスをモック化

2013-06-28T00:00:00+00:00 Java

※解釈が正しいかは微妙なのであしからず

通常Mockitoではfinalクラス等はモック化出来ない。やってもエラーになるのだけど、それを無茶ぶりでやっちゃう方法がある模様

PullToRefreshでListFragment

2013-06-27T00:00:00+00:00 Android Java

※以下のAndroid-PullToRefreshは現時点でも既にdeprecatedになっており、 https://github.com/chrisbanes/ActionBar-PullToRefresh を使うべきだそうです

https://github.com/chrisbanes/Android-PullToRefresh を使うにあたってListFragmentでPullToRefreshをする場合

Eclipse BIRTで参照するデータソースをJava側から変更させる方法

2013-06-22T00:00:00+00:00 Eclipse BIRT Java

Eclipse BIRTとか使ってると、Eclipseで作業しているには問題無いけど動かす際にJDBCを利用する辺りの情報をJava等で操作出来るようにしたいとかっていうようなケースがあった場合どうすれば良いのか

robotium(+ActionBarSherlock)を使ってみた

2013-06-13T00:00:00+00:00 Android Java

https://code.google.com/p/robotium を使う事でSelenium likeな方式でUIをシナリオテスト的な感じで使えるらしい

※以降で継承しているBaseActivityTestCaseはただのActivityInstrumentationTestCase2のサブクラス

jmockit

2013-06-07T00:00:00+00:00 Java

最強(って言われてる気がする)なモックフレームワーク?な https://code.google.com/p/jmockit を触ってみた。しかもライブラリ入れるだけでカバレッジも出力出来るという(jmockit-coverage)

Android AccountManager+SyncAdapter

2013-06-04T00:00:00+00:00 Android Java

以前Android AccountManagerで使えるアカウントを開発する方法を書きましたが同期的な機能のSyncAdapterをすっぽかしてたのでやってみた

Android PagerSlidingTabStripを使ってみた

2013-05-30T00:00:00+00:00 Android Java

https://github.com/astuetz/PagerSlidingTabStrip

デモアプリもある模様だからそれみれば良いんだけど、いわゆるViewPager+PagerTabStripにインディケーター装飾を付ける物なのかなと。とりあえず以前書いたのをベースに使ってみた

BaseAdapterでgetFilter

2013-05-29T00:00:00+00:00 Android Java

BaseAdapterを用いる際にはgetFilterなんてメソッドが存在しないのでどうすんの的な感じなんだけど、Android FrameworkソースのArrayAdapterは

ActionBarSherlockでSearchView

2013-05-27T00:00:00+00:00 Android Java

android.widget.SearchViewなメニューのActionView自体が多分Android3.xくらいからサポートされたんだと思うんだけど、ActionBarSherlockにそれと同等な感じのWidgetが存在する模様。という事でAndroidAnnotations+ActionBarSherlockな構成でやってみた

DialogFragmentのテスト

2013-05-21T00:00:00+00:00 Android Java

例えば、なんかの登録処理をAlertDialogで表示させてsetViewでフォーム的なのをビューとして利用、そのAlertDialog自体はDialogFragmentで生成される。でそれのテストをどうやるのかって所なんですが、DialogFragmentはレイアウトにIDとか含まれず

AddFormDialogFragment fragment = new AddFormDialogFragment();
fragment.show(getSupportFragmentManager(), "add_form_fragment");

的な感じで使ってる場合にそのUIの振る舞いな処理をテストするにはって所なんですが

ActionBarSherlockとSlidingMenuなテスト

2013-05-18T00:00:00+00:00 Android Java

ActionBarSherlockなActionBarを使いつつの、ホームアイコンをタップしたらSlidingMenuが出たり消えたりするっていう所なUIテスト的なのをちょっと色々やってみた

HDFSにデータをコピるケース

2013-05-17T00:00:00+00:00 Hadoop Java

例えばシステム側で処理したデータをHadoopで処理するためにはデータをうpしないといけなかったりする(InputFormatによる)

でhadoop fs putとか使わずにそれをやるには

Androidのテストカバレッジレポートでフィルター

2013-05-15T00:00:00+00:00 Android Java

カバレッジレポート出力で特定のパッケージとかライブラリプロジェクトとして参照しているのは除外(あくまで自分が作ったのじゃない物)したいとかっていうケースがあると思うのですが、ant.propertiesにemma.filterっていう形式で書けば良い模様

Androidでテストカバレッジレポートを出力

2013-05-13T00:00:00+00:00 Android Java

http://blog.kawamura-lab.com/?p=68

を参考にしました。まぁ普通に「android update (test-)project」的な事をやったら生成されるbuild.xmlのantタスクでemmaタスクでサポート出来る模様。でこっちでハマったのがライブラリプロジェクトの扱い、ライブラリプロジェクトにもbuild.xmlとかそういう辺りが必要な模様(フィルターすれば必要ないのかは不明)

Android SlidingMenuを試す

2013-05-12T00:00:00+00:00 Android Java

https://github.com/jfeinstein10/SlidingMenu

っていうfoursquareとかのアプリとかで採用されているやつらしく、Facebookアプリとかでも左上(通常はActionBarとかにアイコンが表示されている部分)を押すと左にサイドメニューがびょ〜んって出てくるやつ、あんな感じなのを実現できるライブラリな模様で

Universal Image Loader for Androidを使ってみた

2013-05-10T00:00:00+00:00 Android Java

参考: http://qiita.com/chuross/items/e3ca79065d9b67716ace

https://github.com/nostra13/Android-Universal-Image-Loader

ちょうど、AndroidAnnotations+Twitter4jで作ってたデモアプリ的なのがあったので、そいつでプロフィール画像をロードする仕組みな所をこのUniversal Image Loaderを使ってプロフィール画像を読み込むっていうのを処理してみた

Eclipseで引数とかを改行するとインデントが2倍になる

2013-04-29T00:00:00+00:00 Eclipse Java

以下みたいなクラスがあって

package sample.test;

import com.googlecode.androidannotations.annotations.rest.Rest;

@Rest(rootUrl = "", converters = {})
public interface XService {
}

@Restな引数を改行すると

Eclipse BIRTを使ってみる (6) - IReportEventHandler -

2013-04-26T00:00:00+00:00 Eclipse BIRT Java

org.eclipse.birt.report.engine.api.script.eventhandler.IReportEventHandlerっていうのを使うと、ラベルを動的に変えちゃったり出来る模様

Android PullToRefresh

2013-04-16T00:00:00+00:00 Android Java

※以下のAndroid-PullToRefreshは現時点でも既にdeprecatedになっており、 https://github.com/chrisbanes/ActionBar-PullToRefresh を使うべきだそうです。既に補足済み

シリーズネタになるかどうかは現状微妙ですが...

PullToRefreshっていう引っ張ってリロードしたりだとか、画面中でデータが末尾に達した場合に次のページなデータを読み込むかだとか、んまぁそういうのを実現したい時に便利なのが https://github.com/chrisbanes/Android-PullToRefresh っていうのがある訳なんですが、まだ使ってみたりとかした事が無いし、ちょっと要件としてそういうのが出てきたので使ってみた

ActionBarCompat

2013-04-14T00:00:00+00:00 Android Java

一般的にAndroid3.x以下のバージョンにおいてはActionBarそのものがサポートされてない。でAndroidのサンプル集にActionBarCompatっていうのがあって、それを利用する事でAndroid3.x以下のバージョンでもActionBar同様なUIを実現する事は出来る模様(但し、ActionBarクラス自体が存在する訳じゃないのでそれは使えない。あくまでUI的な所かと)

HttpClientクラスで「java.io.IOException: Attempted read from closed stream」が出るケース

2013-04-05T00:00:00+00:00 Android Java

多分、Androidに限った話じゃないと思うのですが

Slim3のDatastore Attribute

2013-03-28T00:00:00+00:00 Google App Engine Java

https://sites.google.com/site/slim3appengine/slim3-datastore/defining-data-classes/automatic-values

っていうのがあるっていうのを今日知った。

MapFragmentを使ってみた

2013-03-24T00:00:00+00:00 Android Java

タイトル通り。今更ながらMapFragmentを使ってGoogle MapsをAndroidアプリ上に表示させてみた

Android DreamServiceのsettingsActivity

2013-02-27T00:00:00+00:00 Android Java

たまたま見ていたらandroid.service.dreamで指定出来るDayDreamの定義XMLでsettingsActivityっていうのがあるのに気づいたのでやってみた

Tracing JMX

2013-01-31T00:00:00+00:00 Java

https://blogs.oracle.com/jmxetc/entry/tracing_jmx_what_s_going な感じらしい。ちょっとデモっぽいのやってみた

Androidアプリのテスト関係な件

2013-01-27T00:00:00+00:00 Android Java

色々まとめてみようかと思う。以前勉強したのをAndroid v4.1ベースで検証して書く

UbuntuとAndroidをbluetooth RFCOMMで通信する

2013-01-21T00:00:00+00:00 Android Java Python

まぁAndroid公式にBluetoothChatっていうのはありますけど。一応Android側はそれのソース読んでやってみたって話。ただこれはAndroidとPC(Ubuntu)をbluetooth RFCOMMを使って通信するというところになる

Android AccountManagerで使えるカスタムアカウントを開発する方法

2013-01-19T00:00:00+00:00 Android Java

んまぁAndroid端末使ってる人とかだと見た事あるし、触った事もある人もいるだろう

まぁWebサービスとかのアカウントを端末内に保管して、認証要求だとかをAccountManagerな機能を通じて行えたり出来るAPIが存在する訳ですが、これの独自のを作る方法。まぁ結構書く量が多いので

AppWidgetでListView

2013-01-18T00:00:00+00:00 Android Java

検証したのいつかは覚えてないんですが、ネタとして書いておく

Android API Level 11(Android3.x)くらいから(RemoteViews.setRemoteAdapter辺りがAPI Level14が必要なのでAndroid4.0以降)だと思うんですが、AppWidgetにListViewが使えるようになってる。それを検証したという件

ContentProviderから返されたCursor実装を取る

2013-01-09T00:00:00+00:00 Android Java

例えば以下のようなAbstractCursorを継承したクラスを作ったとする

Mockitoの件 (2)

2013-01-04T00:00:00+00:00 Java

引き続き、Mockitoのドキュメント読みつつ色々やってみた

Mockito

2013-01-03T00:00:00+00:00 Java

どうもモック伊藤です。っていう鉄板ジョークはおいといて、Mockitoを使ってみた。でstaticメソッドのmockはPowerMockitoってのを使えば出来る模様なので

Androidアプリ上でのサーチハードウェアキーによる振る舞い機能を実装

2013-01-02T00:00:00+00:00 Android Java

まだ微妙だけどメモる。一応、テストケースとかで色々してませんので

Linuxでのjava.util.prefs.Preferences

2013-01-02T00:00:00+00:00 Java Linux

Windowsでいうレジストリ的な事するの場合にはjava.util.prefs.Preferencesを使えば出来た気がするのですが、これLinuxだとどこでデータが保管されているのか知らない(っていうかやった事が無い)のでやってみた

ShareCompatとActionProvider

2013-01-01T00:00:00+00:00 Android Java

Android4.x系からはShareActionProviderとかあるんすけど、それを使わずにActionProviderを使ってShareCompatで共有の処理を実装する方法

gradleでselenium

2012-12-25T00:00:00+00:00 gradle Java

Gradleを使ってSeleniumベースなテストをサーバー起動を含め自動化しちゃいたい場合のメモ

jsonicを使ってみる

2012-12-23T00:00:00+00:00 Java

ちょいと事情によりorg.jsonじゃなくてjsonicを使う事案が出てきて勉強している。まだまだ勉強途中だけどとりあえずまとめてみた。

s2jdbc-genでtinyblobになる件

2012-12-18T00:00:00+00:00 Java

何やらs2jdbc-genでgen-ddlをした際のSQLでLob型のやつがデータベース上ではtinyblob(MySQL)になってるのを確認。これmediumblobとかにする場合には

gradle使ってみる (4) - Java Plugin -

2012-12-14T00:00:00+00:00 gradle Java

javaプラグインを使ってJavaプロジェクトをビルド・テストしてみる

gradle使ってみる (3) - ant -

2012-12-13T00:00:00+00:00 gradle Java

Antな機能を使ってみる

joda-timeとhamcrest

2012-12-05T00:00:00+00:00 Java

以前からやろうと思ってた物シリーズ的な感じ。日付処理系でjoda-time、んで単体テストのマッチャにhamcrestを使ってみた

Eclipse BIRTを使ってみる (5) - Excelで出力 -

2012-11-22T00:00:00+00:00 Eclipse BIRT Java

EXCELRenderOptionっていうのがあるので、これを使えばExcelを出力可能。だけど、これを使うとチャートがレンダリングされないっていうのがあったので、NativeXlsっていうエミッターを使う事で対処可能らしい(正確にはOpenDocument Spreadsheetで出さない物っぽい)

とりあえずrtpdesignに関しては適当にデータベースに接続して、集計の結果をチャートで出すっていう感じで作っておく

Mavenでs2jdbc-gen

2012-11-17T00:00:00+00:00 Java

まぁググれば色々情報あるのでそれ参考にすれば良いと思います

今までは、普通にデータベースにテーブル作ってエンティティクラス書いてみたいな事してましたが、s2jdbc-genを使ってデータベースからテーブル構成のSQLをダンプできたり、厚生からエンティティクラスを生成したり、データをロード・マイグレーション出来る模様

jetty-maven-plugin+selenium-maven-pluginでintegration-test

2012-11-15T00:00:00+00:00 Java

integration-testを行う際に、jetty-maven-pluginでWebシステムをJettyで動かし、それをSeleniumを使ってテストしたい場合、それの一連動作を一括でやる方法。まぁ色々調べてたら(ggrks)、結構情報はあったのでメモしとく

android.service.dreams.DreamServiceを使ってみる

2012-11-14T00:00:00+00:00 Android Java

Android4.2から追加された模様なDreamService API(公式的にはDayDreamかと)をさっそく使ってみた。単純に言うとスクリーンセーバー機能。

Eclipse BIRTを使ってみる (4) - Scripted DataSetを使う -

2012-11-12T00:00:00+00:00 Eclipse BIRT Java JavaScript

例えば、データベースを利用しないでデータセットにJavaオブジェクトからの実行結果(List<Object>)をバインドしたい場合、Scripted DataSetを使う事でJavaオブジェクトを介した結果をデータセットにバインド出来る模様。なのでやってみた

Eclipse BIRTを使ってみる (2) - データバインディング -

2012-11-01T00:00:00+00:00 Eclipse BIRT Java

今度はJava側から変数をぶっこんでそれをBIRTレポートに反映させるっていうのをやってみる

Eclipse BIRTを使ってみる (1)

2012-10-31T00:00:00+00:00 Eclipse BIRT Java

単純にDBにあるエントリーをPDFにして出力してみる。BIRTのインストール方法は省略します。但し、最後辺りにBIRT Runtimeな話が出るので http://download.eclipse.org/birt/downloads からダウンロードしておく(一応ダウンロードしなくてもMaven使うのでそこからコピーでも構わない)

PagerTitle(Tab)Stripを使ってみる

2012-10-15T00:00:00+00:00 Android Java

最近、サーバー関係なタスクが多くてAndroidな音沙汰がまったくしなかったのでリハビリ的な感じでちょいと調べ物をしてました。それがだいぶ前からGoogle Play等であったように

の上部に表示される「おすすめ」や「カテゴリ」といったようなヘッダーラベルのような物。これどうやってやるのかって調べたらPagerTitleStrip、PagerTabStrip等を用いる事で簡単に出来る模様。なのでやってみた(実行環境はAndroid2.2)

(AndroidManifest.xmlはアクティビティ定義だけなのでパス)

android.accessibilityservice.AccessibilityServiceを使用してNotificationを取得する

2012-10-14T00:00:00+00:00 Android Java

ちょっと前にDeskNotifierっていうスマフォの通知をPCにプッシュするというアプリがあったのを見て思ったのですけど、(Android)スマフォのNotificationって監視して取得したり出来る物なのかっていう所が不明だったので色々と調査

で調査結果としてAccessibilityServiceを使う事で可能な模様、という事でやってみた。まぁ詳しい事は公式ドキュメントに書いてあるんですけど

SAStrutsを勉強してみる (9) - UserTransaction -

2012-10-13T00:00:00+00:00 Java SAStruts

SAStrutsっていうかS2JDBCな件だとは思うのですが、それはおいといて。トランザクションを自動化せずに手動によるトランザクションを利用したい場合のメモ

SAStrutsを勉強してみる (8) - ファイルアップロード -

2012-10-09T00:00:00+00:00 Java SAStruts

タイトル通り。SAStruts公式のドキュメントにもちゃんと解説が載ってるのでそれ見た方が早いかも。但し、今回は要件としてアップロードされた画像ファイルをコンテキスト内ではなくデータベース領域内にBlobデータとして格納する

SAStrutsを勉強してみる (7) - LoginInterceptorをテスト -

2012-10-08T00:00:00+00:00 Java SAStruts

タイトルなんですが、S2AOPな模様げなのをテストする(正式な)手段が結局分からないので、とりあえずMethodInvocationぶちこんじゃえば良いんじゃね的な感じでやってみた

ConnectivityManager.isActiveNetworkMeteredな件

2012-10-08T00:00:00+00:00 Android Java

なんかどっかで見た気がするのですが、例えばでかいファイルをダウンロードする必要性がある場合に3GではなくWi-Fiを使ってダウンロードさせたい。っていうか正しいのかは曖昧なんですが、「通信制限が存在するネットワークでダウンロード処理を継続しない」っていう処理をする場合等に使える模様。

SAStrutsを勉強してみる (6) - LoginInterceptor -

2012-10-07T00:00:00+00:00 Java SAStruts

http://d.hatena.ne.jp/idesaku/20081226/1230263190 をそのまま試してみる。まぁちょっとだけ違いますけど

android.support.v13.dreams.BasicDream

2012-10-07T00:00:00+00:00 Android Java

android-support-v13.jarの中身を見てたらそういうのがあるっていうのを発見。で色々調べてみたら、なにやらスクリーンセーバーのような物を作れるAPIな模様。という事でやってみた

SAStrutsを勉強してみる (5) - @Mockを使う -

2012-10-06T00:00:00+00:00 Java SAStruts

詳しい事は http://s2container.seasar.org/2.4/ja/S2JUnit4.html#mockAnnotation を読めば良いはずなので省略。一応、これはSAStrutsの機能ではなくS2Containerな機能な模様

SAStrutsを勉強してみる (4) - S2JUnit4でテスト -

2012-10-05T00:00:00+00:00 Java SAStruts

タイトル通り。まだ(調査が)微妙なんですが、S2Unit4を使ってテストをしてみる

SAStrutsを勉強してみる (3) - S2JDBCを使う -

2012-10-04T00:00:00+00:00 Java SAStruts

タイトル通り。S2JDBCを使ってMySQLデータベースに接続してテーブルにアクセスしてみる

SAStrutsを勉強してみる (2) - ActionForm -

2012-10-03T00:00:00+00:00 Java SAStruts

StrutsにあるAction Form Beansの機能っぽいのを使うには@ActionFormアノテーションを使えば良いらしい

SAStrutsを勉強してみる (1) - First Step -

2012-10-02T00:00:00+00:00 Java SAStruts

タイトル通りです。とりあえず使ってみる

Hectorを使ってみる (4) - 単体テスト -

2012-09-24T00:00:00+00:00 Cassandra Java

hector-testっていうパッケージがあるのですがこれ特になんちゃらTestCaseとかがある訳じゃなくて、あくまでCassandraのサーバーインスタンスを起動できるヘルパークラスがあって、それを使う事でCassandraを使う事ができるみたいな感じな模様

Hectorを使ってみる (3) - Object Mapperの続き -

2012-09-23T00:00:00+00:00 Cassandra Java

さらにちょっと進めてみた。やってみる項目として、継承・AnonymousPropertyHandling(ドキュメントではAnonymousPropertyAddHandler)・Listなデータを突っ込んでみる

Hectorを使ってみる (2) - Object Mapper -

2012-09-22T00:00:00+00:00 Cassandra Java

http://hector-client.github.com/hector/build/html/content/HOM/hector-object-mapper.html をやってみる。そのままある程度はドキュメント通りに

HadoopとCassandra1.1

2012-09-21T00:00:00+00:00 Cassandra Hadoop Java

何やらorg.apache.cassandra.hadoopサポートなAPIの使い方が変わったようなので、ちょっと色々検証を兼ねてやってみた

Hectorを使ってみる (1)

2012-09-20T00:00:00+00:00 Cassandra Java

Cassandra Client LibraryにHectorなんつーのがある模様なので使ってみた

CassandraのJMX

2012-09-18T00:00:00+00:00 Cassandra Java

何やら「CassandraのJMXに接続すればノードとかキースペースとかの情報は取れるよ」っていうのを言われたのでやってみた。Cassandraを起動している状態だと、デフォルトでは7199(cassandra-env.shで変更可能)でJMXポートが開放されている。jconsoleで見ると

という風になっているので、このStorageServiceMBeanなのを取得すれば云々出来る模様

Slim3でrespond_toもどき

2012-08-19T00:00:00+00:00 Java JavaScript

IndexController.java

package server_director.controller.profile;

import org.slim3.controller.Navigation;

import server_director.controller.ServerDirectorController;
import server_director.model.Profile;
import server_director.service.ProfileService;

import com.google.appengine.api.users.User;

public class IndexController extends ServerDirectorController {

    ProfileService service = new ProfileService();

    @Override
    protected Navigation run() throws Exception {
        User user = service.getUser();

        if (!service.isLogin() || user == null) {
            return redirect(service.createLoginURL("/profile"));
        }

        Profile profile = service.getProfile();

        requestScope("profile", profile);

        return forward("/WEB-INF/jsp/index.jsp");
    }
}

まぁてな感じで継承しているクラス以外は普通のSlim3コントローラークラス。もちろんコントローラー側でJSONに変換したりっていう処理は含まれない(あるがJSONに変換する処理自体はModelに。それは以下参照)

modelToJsonでInverseModelListRefを扱う

2012-08-18T00:00:00+00:00 Java

package server_director.model;

import java.io.Serializable;

import org.slim3.datastore.Attribute;
import org.slim3.datastore.InverseModelListRef;
import org.slim3.datastore.Model;

import server_director.meta.ServerMeta;

import com.google.appengine.api.datastore.Key;
import com.google.appengine.api.users.User;

@Model
public class Profile implements Serializable {

    private static final long serialVersionUID = 1L;

    @Attribute(primaryKey = true)
    private Key key;

    @Attribute(persistent = true)
    private User user;

    @Attribute(persistent = false)
    private InverseModelListRef<Server, Profile> servers = new InverseModelListRef<Server, Profile>(
        Server.class,
        ServerMeta.get().profileRef.getName(),
        this
    );

    public Key getKey() {
        return key;
    }

    public void setKey(Key key) {
        this.key = key;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public InverseModelListRef<Server, Profile> getServers() {
        return servers;
    }
}

みたいなのがあって、これをmodelToJsonを使ってJSON化するとInverseModelListRefなのはエンコードしたJSONに含まれない(ModelRefの場合はKeyが出るらしい)

でこれをやる方法がちゃんとあるみたいで以下のようにJsonアノテーションを設定する

Android+Bluetoothを使ってPC側からテキストの入力を行う

2012-07-29T12:00:00+09:00 Android Java Python

んまぁAndroidのKeyboard APIを使って独自のキーボードを作って、それをBluetoothのRFCOMMを介してPCからAndroidスマートフォン側に入力をさせるというしょうもない事をやってみてる。まぁ実際やったのはかなーり前の話なんですが今更ながらネタにしてみようかと

MRUnitでHadoop MapReduceのテストを書く

2012-06-28T00:00:00+00:00 Hadoop Java

Hadoop MapReduceのテストを書く方法としてMRUnitっていうのがあるのを以前から知ってて、だけどまったく検証する気配が無いのでやってみた。但し、相変わらずMaven2を使う

Apache tikaを使ってみる

2012-04-25T00:00:00+09:00 Java

一応、tika-app.jarってのを使えば出来るんですけど、とにかくJavaりたいんだっという欲求により(ry

Hadoop+Cassandra (3) - Mapper & ReducerでCassandra -

2012-04-08T00:00:00+09:00 Cassandra Hadoop Java

HadoopでCassandraを使ってみるネタシリーズはこれで終わり。1回目と2回目をくっつけて、Cassandraから読み込みCassandraにプッシュしてみる。で、MapperとReducerは1回目で書いたSampleCassandraMapperと2回目で書いたSampleCassandraReducerをそのまま使います。なのでHadoopジョブを投げる側だけを作れば良い

Hadoop+Cassandra (2) - ReducerでCassandra -

2012-04-07T00:00:00+09:00 Cassandra Hadoop Java

前回はCassandraなデータを使うMapperを作って、HDFS上にMapReduce結果を出したので今回はその逆をやってみる。HDFSにインプットデータを用意して、それをMapReduceで処理後CassandraのColumn Familyにプッシュしてみる

Hadoop+Cassandra (1) - MapperでCassandra -

2012-04-06T00:00:00+09:00 Cassandra Hadoop Java

HadoopからCassandraのColumn Familyを読んで云々してみる。とりあえずまったく意味の無いことで書くので、あくまでHadoopからCassandraを使う場合の設定例とか

(基礎的なHadoopのセットアップは省略します)

Cassandra使ってみた

2012-03-21T00:00:00+00:00 Cassandra Java

現状は概念までは説明出来ないので、あくまでお触り程度な所をメモる

(非常に適当に)Android ICS SpellCheckerServiceを使ってみる

2012-03-19T00:00:00+00:00 Android Java

Android4.xから使える(んだと思われる)SpellCheckerServiceを使って、独自のスペルチェックを行うサービスを作りそれをアプリから利用してみる

android.widget.ArrayAdapterでのフィルタリングの拡張

2012-02-28T00:00:00+00:00 Android Java

Quick Search Box関係を調べていて勉強しているとふと思ったのが、クエリーによる検索をするのは良いけど例えばフィルターをする実際の処理を自分で実装した場合とかどうするのって思った。というかどうやらデフォルトのAdapterのフィルターだと検索キーワードをトークンで分割してフィルタしてくれない模様なんだけど。という事でフィルタ処理を自分で処理する方法を調べた所だと、Adapterとそれが使用するFilterオブジェクトを拡張してやれば良いらしい

Perl(Protocol::WebSocket)にJava(weberknecht)でつなぐ

2012-01-25T00:00:00+00:00 HTML5 Java JavaScript

要はPerl(Protocol::WebSocket)で作られたWebSocketサーバーにJavaのweberknechtっていうWebSocketライブラリを使って接続してブラウザ側で送信されたメッセージング等を取得したり出来るかっていう検証をやってみた

android.content.BroadcastReceiver Using Android ICS of android.test.AndroidTestCase

2012-01-07T00:00:00+00:00 Android Java

Android4.0以前だとonReceiveメソッドをそのままインスタンスメソッドとしてAndroidTestCaseを使ってテスト出来たんですけど、Android4.0からだとエラーになる。そのエラーになるケースがsetResultExtrasを使った場合になるんですが[APIドキュメント][1]によると

Change the current result extras of this broadcast; only works with broadcasts sent through Context.sendOrderedBroadcast. This is a Bundle holding arbitrary data, whose interpretation is up to the broadcaster. Can be set to null. Calling this method completely replaces the current map (if any). This method does not work with non-ordered broadcasts such as those sent with Context.sendBroadcast

って書いちゃってんすよね。英語読める訳じゃないけど、要するにsetResultExtrasを使う場合はonReceiveをそのまま実行してもsendBroadcastでやっても出来ないらしいっぽい事を書いてる気がする。じゃあどないすんねんと。まぁ書いてあるとおりにsendBroadcastではなく、sendOrderedBroadcastを使えとの事らしいので

android.content.Loader Test Case Using android.test.LoaderTestCase

2011-12-19T00:00:00+00:00 Android Java

例えば

SampleLoader.java

package sample.test;

import android.content.Context;
import android.content.CursorLoader;
import android.database.Cursor;
import android.database.MatrixCursor;

public class SampleLoader extends CursorLoader {

    public SampleLoader(Context context) {
        super(context);
    }

    @Override
    public Cursor loadInBackground() {
        Cursor csr  = null;

        try {
            MatrixCursor mc = new MatrixCursor(new String[]{ "_id", "NAME" });
            mc.addRow(new Object[] { 1, "hoge" });
            mc.addRow(new Object[] { 2, "fuga" });
            mc.addRow(new Object[] { 3, "foobar" });

            csr = mc;
        } catch(Exception e) {
            e.printStackTrace();
        }

        return csr;
    }
}

的な感じで作っといて、これをテストする方法ですが。普通にLoaderTestCaseっていうのがあるので

Mahout (3) - SVDRecommender -

2011-05-04T00:00:00+00:00 Java Mahout

※以前検証したのを現時点のバージョンであるMahout0.8で修正してます (使い方が変わっている為)

Mahout (2) - ItemBasedRecommender -

2011-05-01T00:00:00+00:00 Java Mahout

アイテムベースの評価予測?を行う物だと思うんすけど、以下のようなアルゴリズムがサポートされている模様

Mahout (1) - LogLikelihood -

2011-04-30T00:00:00+00:00 Java Mahout

※前ブログネタ帳からのほぼ転用

対数尤度を用いたユーザー間のベクトル相関性?を算出する物的な事で良いんだろうか

DOMImplementationLS+LSParserFilter

2010-10-26T00:00:00+09:00 Java

DOM LeveL3のDOMImplemetationLSの使用法メモ

java.util.zip.GZIPInputStream

2010-03-21T00:00:00+09:00 Java

JavaでAccept-Encoding: gzipを利用するメモ

java.util.Observer

2010-03-15T00:00:00+09:00 Java

java.util.Observerを使用したメモ