NetBeansでLombokが動かない(Maven Project)

lombokなる便利なライブラリを教えてもらったので早速NetBeansの依存性に追加してみたけど動かなかった話。

lombokとは

いわゆるBeanは通常privateなフィールドを作ってgetter/setterを作る。
多分一般にIDEの自動生成を使うと思う。
フィールドが増えたら増えた分だけ生成するとかね。
lombokはこの自動生成すら不要になる便利+ソース見やすい!
他にも色々機能あるけど一番簡単なのがコレ。classに@Dataつけるだけというお手軽系ですよ。

PJに依存性を追加(Maven)

追加の手順は簡単。

  1. PJの依存性右クリック > 依存性の追加 で lombokを検索
  2. org.projectlombokの最新を追加

で、ちゃんとjarもインストールされて万々歳のはずが動かない!
privateフィールド2つを定義しただけのclassに@Data付けただけのテストクラスなのに!

確認すること

ネットで調べると色々出てくる。
maven-compiler-pluginが2.2以上じゃないとダメとか。(自分のは3.1だった)
lombokのバージョンによってはNetBeans7だとうまく動かないとか。(自分のは8だった)

解決編

Maven projectの場合は依存性にlombok-maven-pluginもいるみたい。
依存性に追加したらあっさり動きました。
maven-lombok-pluginという名前ひっくりかえっただけのもあるけどこっちは古いのしかないから互換性のために残してるのかな。

裁量労働制についての云々とか

非常に興味深い事件だったので地裁の判決文全文読みふけってしまった。
地裁判決が有名になったようで、控訴したのかどうかすらなかなか調べがつかず…。
結局のところ、控訴したようだけど特に判決に大きな変更はなかったようで、無料の判例データベースでは判決文が掲載されていなかった。無念。
地裁の結果は最高裁判所のデータベースにも載ってるのにね。

なお、第1078号2013年12月15日発行の労働判例付録によると確定となっているので上告はしなかった模様。

後でまとめるかもしれないのでメモメモ。

通称 エーディーディー割増賃金請求
一審 京都地裁 平21(ワ)2300
控訴審 大阪高判 平23(ネ)3329


それにしても、司法関係の情報はもうちょい検索しやすくならないもんかね。
膨大すぎて大変なのは分かるんだけど、いつまでに整備する計画とかあるんだろうか。

PDFを1つのPDFにしたい、更に2in1にしたい(Java)

ざっくりやりたいこと

色んなファイル形式で作った資料をまとめて印刷したいです。
保存するのに面倒だから印刷した紙のサイズは統一したい。

試行錯誤の結果

資料はWordだったりExcelだったりPowerPointだったりするけどPDFに統一。
さらに1つのPDFにまとめた。(PDFSAMを愛用している)

困っていること

資料によって大きさが違うんですよねー
A4の資料とA3の資料があると一度には印刷できない。
いや、できるけど結局印刷された紙がA4だったりA3だったりするわけで(当然だけど)面倒。

理想型

  • 紙のサイズは大きい方に合わせてA3にする
  • A3はそのままA3サイズとして印刷する
  • A4は縮尺は変えずにA3に2枚並べて印刷する

つまり、こんな感じ。
f:id:vostochnaya:20140601212515p:plain
p.1とp.2はA4、p.3はA3のPDFがある。
これをp.1とp.2を並べて1枚のA3にしたページと元のp.3で2枚のA3資料にしたい。

作ってみた

iText 5.5.0 を使用。 iText, Programmable PDF software | iText Software

A4 2ページをA3 1ページにするにはこんな感じ。
偶数の時に改ページせずに隣に並べるという荒技。
ちゃんとするならもう少しマシな判定を書く必要がある。

ここまでできたらA3の時はそのままとか追加して完成。

さらなる進化

人間欲しいものを手にすると更に良いものが欲しくなるもので…
縦と横も自動で判別してとりあえず全部A3にしてくれよ! と思ったりするのです。

縦向きと横向きが混ざってたりするとRotateする必要があります。
そうなるとaddTemplateの引数が厄介。説明してるところがあまり見つからない。
ただの90度回転ならともかく縮尺が1倍じゃなかったりすると途端に面倒になる。
こちらiText Tutorialに細かい仕様が載っているので助かりました。

また、同じ横向きでもPDFを作成するときに横向きだったものと、PDFSAMなどで回転したものはプロパティが異なるため注意が必要。
Adobe Readerで見ると違いが分からないから上手くいったりいかなかったりで嵌った。
例1)A3横の資料を作ってPDF保存 → PdfReader#getPageRotation = 0
例2)A3縦の資料を作ってPDF保存、PDFSAMで横向きに回転 → PdfReader#getPageRotation = 270

結論

資料は最初から印刷のことも考えて作るべき。

auスマートパスの不具合(犯人はau ID設定)

先月からauスマートパスが動かず。
といっても私はかなりのライトユーザーでATOKと乗換案内のためだけに入ってる鴨なのであまり気にしていなかった。

きっかけはスマートパスのPush通知。
通知を止めようとしたが認証通らず…
試行錯誤してたら乗換案内も使えなくなった。

ネットで検索→サポートに電話→auショップ持ち込み でも解決せず、ショップからは初期化を勧められる始末。なんてこった\(^o^)/

結局自力で解決…

現象

auマーケット or auスマートパスアプリを実行し、ブラウザを開く。
ログインでかんたんログインしようとする→au ID設定開いて画面→au ID設定開いて閉じる→ログインボタン押す→au ID設定開いて画面 (以下無限ループ)
なお、かんたんログインではなくIDとパスワードを直接入れるとログインできる。
ログイン後、マイアプリを開くとなぜか電波がないとか言われる

やったこと

  • 電源On/Off
  • au IDカード抜き差し
  • auマーケット初期化→最新に更新
  • auスマートパス初期化
  • ブラウザのキャッシュとCookieその他データクリア
  • 別ブラウザでチャレンジ
  • スマホからau ID解除
  • au IDパスワード変更
  • au ID設定の初期化

列挙してみると結構がんばっている(笑)

結論

au IDの初期化でOK。
設定→アプリ→au ID設定→アップデートの削除


無事復活しました。
auスマートパスで困ってる人多いようだけどサポートがあれじゃツラい。

(2014/10/21 追記)
別の現象が発生したのでこれで解決しない場合はこちらもお試しください。

EclipseLinkを使ってみる~初めてのORM

O/Rマッパーとやらはとても便利だそうなのであんまり概念とか分かってないけど使ってみる。

テーブルを作成

前回の記事のとおりデータベースを追加し、テーブルもNetBeansで定義してCraete。
データベースはH2を使用している。
テーブルはこのとおりやっつけ系。
f:id:vostochnaya:20140426180751p:plain

エンティティ・クラスを作る

その名のとおりエンティティ。

  1. プロジェクト右クリック 新規 > データベースからのエンティティ・クラス
  2. ウィザードが出てくるのでデータベース接続を選択し、クラスを作りたいテーブルを追加する
  3. 次へ > 次へ で完了

SampleTable.java と SampleTablePK.java が作成された。
できたてはエラーになっていたけどバックグラウンドで eclipselink が依存性に追加され、勝手にエラーが解消した。

コントローラ・クラスを作る

エンティティだけじゃ何もできないのでコントローラ・クラスを追加してみる。

  1. 持続性カテゴリからエンティティ・クラスのJPAコントローラ・クラスを新規作成
  2. 先ほど作成したSampleTable.javaがあるのでそれを追加する

SampleTableJpaController.java が作成された。
ついでに同列にexceptionsパッケージが追加され、例外クラスが生成されている。

  • IllegalOrphanException.java
  • NonexistentEntityException.java
  • PreexistingEntityException.java

persistence.xmlを編集

スキーマがPUBLICのせいかテーブルが見つかりませんエラーが出るので少し修正。
persistence.xml に propertyを追加する。

<property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>

更に、接続の時の名前が自動生成だとアレな感じなので変えておく。
とりあえず test と・・・(余計悪い名前になった感)

<persistence-unit name="test" transaction-type="RESOURCE_LOCAL">

接続

では実行してみる。とりあえず動いた。

実行結果

Key1: KEY_1
Key2: KEY_2
Att VChar:Sample Text
Att Dec: 1
Att Date: Sat Apr 26 19:37:20 JST 2014
Att Time: 19:37:20

NetBeans Mavenプロジェクトでライブラリの追加

せっかくのMavenプロジェクトなのに手動でライブラリ追加とかしてたから見直しました。
JavaプロジェクトじゃなくてMavenプロジェクトにして何も変えてないという意味なし具合。

ライブラリの追加

H2 driverを追加してみる。

  1. NetBeansの左側にあるナビゲーションから「サービス」タブを開く
  2. Mavenリポジトリ > Central Repository を開く
  3. 大量に出てくるので探す。検索どうやるんだコレ…
    H2は「com.h2.database」
  4. 見つかったらフォルダを開くと「h2」が出てくるので更に開く
  5. バージョンがこれまた大量に出るので使うバージョンを右クリック > 依存性として追加

確かに楽ですね。


ちなみにJavaプロジェクトの場合はライブラリの共有ができるようだ。
Mavenじゃない場合はこれでも良いかも。

NetBeansからH2 DBに接続する

調べてもちょうど良いサイトが見つからなかったから自分でメモ。
正しいやり方なのかどうかは分からないけど接続はできた。

前提

  • H2 DBファイルが生成されていること
    *2014/4/19追記
    生成されてない場合は新しいファイルが作成される
  • ドライバjarがあること

ドライバの登録

  1. サービスタブの データベース > ドライバ を右クリック > 新規ドライバ...
  2. H2のjarファイル(h2-x.x.xxx.jar)を選択
  3. ドライバ・クラスは検索を押すと勝手に出てくる
  4. 名前は自分が認識できれば何でも良い

f:id:vostochnaya:20140330132338p:plain

データベース接続の登録

  1. ドライバの登録で作成したドライバを右クリック > 接続...
  2. 新規接続ウィザードが出てくるので設定。
    ドライバ名:ドライバの登録で登録したもの
    ユーザー名:DBユーザー
    パスワード:DBユーザーのパスワード
    JDBC URL:「jdbc:h2:<DBファイルパス>」
    f:id:vostochnaya:20140330140548p:plain
    ※DBファイルパスはjarファイルからの相対パスも可
  3. スキーマの選択。接続したいスキーマを選ぶ。明示的に作っていない場合はPUBLICでOK
  4. 接続名の入力。分かりやすい名前で。スキーマが複数ある場合はスキーマ名も入れておくと良い。