TERASOLUNA Server Framework for Java (5.x) Development Guideline¶
TERASOLUNA Server Framework for Java (5.x) Development Guideline¶
Spock とは build.gradle HelloSpock 仕様(テストケース)の構造 フィールド fixture メソッド feature メソッド helper メソッド データドリブンなテスト @Unroll data pipe Stack の仕様例 例外の検証 例外とならないことの検証 タイムアウトを適用する Hamcrest matchers を使う リソースのクリーンナップを行う @Shared で共有リソースを利用する Specification に自然言語の名前をつける MOPを適用する feature の実行を制限する @Ignore @IgnoreRest @IgnoreIf @Requires @Stepwise Spock とは Java と Groovy アプリケーションのテスティングと仕様フレームワーク JUnit, jMock, RSpec, Groov
いままでのJavaでは、日付時刻を扱おうとするとめんどくさい割に非常に低機能でした。 Java8では、新たに日付時刻APIが導入され、めんどくささが増しつつ非常に高機能になりました。 (以降、Java8で導入された日付時刻APIを単に「日付時刻API」と表します) もちろん、慣れてきて、ちょっとしたサポートメソッドを用意してやれば、結構使いやすいのですが、それは「このAPIは使いやすい」という評価にはなりません。 つまり日付時刻APIは、慣れないとぜんぜんわからないし、サポートメソッドがないと面倒なコードが必要ということです。 いろいろあってよくわからない 日付時刻では、時点を扱うInstantや期間を扱うPeriod、時間量をあらわすDurationなど多くのクラス・インタフェースが導入されています。 これらは、IDEの補完でAPIを探りながら機能を推測すれば、それなりにドキュメントなし
Background 突然引き継ぐことになった案件では、フレームワークにデータベースマイグレートの仕組みがなく、 ORM も使っていなかったので、後付でデータベースマイグレーションを用意してあげる必要があった。 Java で書かれた Flyway を使うと、いくつかのルールを覚え、ベタの SQL を書くだけで、運用で発生する基本的なマイグレートを実現出来たので、使い方をメモ。 環境 Ubuntu 10.04 MySQL 5.1 Flyway 2.2.1 Java(JDK7) Flyway は Java のコードから呼び出せたり、 Ant/Maven/Gradle といったツールと連携出来たりと jvm 系エコシステムと親和性が高い。今回は、非 Java システムということと、僕自身 Java には疎いので、コマンドライン版の Flyway を利用。 Installation Install
Spring Bootで(というかSpring Securityのような気もするが) ユーザ認証を実装する方法について。 とりあえずハードコードで、という方法は見つかるのだが DBにユーザ情報を格納し ID以外のユーザ情報にもアクセスできるようにする という場合の方法が見つからず苦労したので記録しておく。 概要 以下の作業が必要。 Spring Securityをdependencyに追加する WebSecurityConfigurerAdapterを継承して設定する UserDetailsServiceを継承して認証ロジックをカスタマイズする Spring Securityをdependencyに追加する build.gradleのdependenciesにspring-boot-starter-securityを追加する。 (バージョンは適切なものを選ぶ) dependencies {
HikariCP HikariCPはBoneCPより速い速度を誇るDB Connection Poolです。(HikariCP公式サイト参照) BoneCPの場合は、Hibernate 4.xバージョンからは支援が曖昧になった気がしますが、 HikariCPはHibernateとの統合jarが出るなど、HikariCPを押している気がします。 HikariCP設定 ・Maven設定 Java 8 maven artifact: com.zaxxer HikariCP 2.2.5 compile Java 6 and Java 7 maven artifact: com.zaxxer HikariCP-java6 2.2.5 compile ・Spring + HikariCP @Configurationを利用したJava Config設定 @Bean(destroyMethod = "s
Previously I did publish a post on how to install Glassfish V2 as a Windows service a few years ago. Things have moved on quite a bit since then and now the latest version of the server comes with a built in command to configure the domain as a windows service. There are a few short comings though. The command does not fully leverage the windows services and you still have to configure a few thing
< Faster:XML /> Faster, better open source XML and JSON parsing for the Java platform. FasterXML is the business behind the Woodstox streaming XML parser, Jackson streaming JSON parser, the Aalto non-blocking XML parser, and a growing family of utility libraries and extensions. FasterXML offers consulting services for adoption, performance tuning, and extension. Nobody does bits, bytes, buffers, a
Thymeleaf is a modern server-side Java template engine for both web and standalone environments. Thymeleaf's main goal is to bring elegant natural templates to your development workflow — HTML that can be correctly displayed in browsers and also work as static prototypes, allowing for stronger collaboration in development teams. With modules for Spring Framework, a host of integrations with your f
@backpaper0 2014-06-14 #uragamiorm @backpaper0とは うらがみです。 エスアイヤーでジャバ使ってウェッブやってます。 アンヨヨイヨも少しやってます。仕事で。 Doma歴4年ぐらい。 +αの話から みなさんORM使っていますか? backpaper0が知ってるORM JPA (EclipseLink, Hibernate) S2JDBC S2Dao ActiveObjects Iciql (JaQu) MyBatis (旧iBatis) Mirage Doma JPA Java EEに含まれるORMフレームワーク。 オブジェクトとリレーションの柔軟なマッピング。 JPQLでSQLの方言を吸収。 生SQLも書ける。 Criteria API + Metamodel API = 型安全なクエリ。 ただしコード地獄になりがち。 ていうかなる。 クエ
ProjectLibre project management software: #1 free alternative to Microsoft Project w/ 7.8M+ downloads in 193 countries. ProjectLibre is a replacement of MS Project & includes Gantt Chart, Network Diagram, WBS, Earned Value etc. This site downloads our FOSS desktop app. 🌐 Try the Cloud: http://www.projectlibre.com/register/trial We also offer ProjectLibre Cloud—a subscription, AI-powered SaaS for
httpdとTomcatを連携させて運用していると、数十時間〜数日後にTomcatが応答しなくなる(503 Service Temporarily Unavailable になる)症状が発生。どうもajp通信のどちら側かがスタックしたままコネクションの上限数を使い尽くしてしまっているようで、発症の都度Tomcatを再起動させなければなりませんでした。 ajp通信をタイムアウトさせれば良いかと思い、Tomcatのserver.xmlにて となっている部分に connectionTimeout="300000" を追加してみたところ、ひとまず上記の症状はなくなりました。 ところが今度は、httpd側が開くコネクションが(Tomcat側がタイムアウトして切断されても)完全には解放されずにCLOSE_WAIT状態で200個以上溜まってしまうようになりました。今のところ実害は出ていませんが、気持ち悪
概要 apache+tomcat サーバ2台で負荷分散環境設定の記録。 要件 正常時は2台のtomcatサーバで負荷分散。 セッションは DB(postgresql) に格納する。 負荷分散時、stickysession 機能により、一ユーザのアクセスは可能な限り、1つの tomcat サーバに固定する。 1台あたりのtomcatサーバで扱うセッション数はなるべく少なくし、余計なメモリを消費しないようにする。 Apacheサーバ設定 /etc/httpd/conf.d/tomcat.conf を作成し、次のように記述した。 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_http_modul
お久しぶりです、インフラ事業部の小田島です。 Tomcat 6のデフォルトのタイムアウトの設定を知りたくて、ネットサーフィンをしまくっていたのですが、見るサイト見るサイトで設定値が違っていたので、下記サイトを参考に、とりあえず、Connectorだけですが、抜粋で調べたものを、備忘録して記載していきます。 Apache Tomcat Configuration Reference 属性名 内容 デフォルト acceptCount Tomcatにおけるリクエスト処理スレッドすべてが処理中である際に、さらに多くの接続要求がTomcatのサーバポートに到来している場合、1つ以上のスレッドが解放されるまでその接続要求は待たされることになる。acceptCountを設定することで、この待ち行列の最大値を設定する事ができる。待ち行列がいっぱいになった場合、そのコネクタに対する接続要求は待ち行列に空き
チューニング方法はメモリとインデックスしかない ・メモリ 32bit,64bit 64bitだとメモリの消費量が高いとされて実際高い ・PAE 32bitで4GiB以上のメモリを使う技術 Apache チューニング 1.HostnameLookups -> off これがonだと、ログファイルにホスト名を出力するためDNSLookupしてしまう 2.無駄なログファイルを消す ローテートする 3.無駄なモジュールをロードしない 4..htaccessを無効にする ※アクセスのたびにソンァイチェックをおこなうのでパフォーマンスが劣化する ※AllowOverride -> None 5.KeepAlive -> off ※HTTPはステートフルな接続のためリクエストのたびに接続切断が発生するためコストがかかる ※LBに格納されている場合あまり意味がない 6.MNM(Multi Proccess
次のような間違いを含んだコードがあります。 // 同じようなことがRuntime.exec(...)でも起こる ProcessBuilder pb = new ProcessBuilder(args); Process proc = pb.start(); InputStream in = proc.getInputStream(); // ・・・ここでスレッドのストリームから読んで処理をする proc.waitFor(); // ・・・最後に、finallyブロックで「InputStreamを」クローズして、プロセスを終了する(不十分) in.close(); proc.destroy(); プロセスを作成して、ストリームをキャプチャして、最後にそのストリームをクローズしています。ごく一般的な考え方によるコードだと思います。 しかし、これは間違いです。上記コードをループで繰り返すと、IO
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く