Aug 31, 2011

vim で Java の setter / getter を自動で作成する

キーマッピングで以下の設定を .vimrc に追加します。

map Kk mawv/ <CR>"ty/ <CR>wve"ny/getters<CR>$a<CR><CR><Esc>xxa<Tab>public <Esc>"tpa<Esc>"npbiget<Esc>l~hea ()<CR>{<CR><Tab>return <Esc>"npa;<CR>}<Esc>=<CR><Esc>/setters<CR>$a<CR><CR><Esc>xxa<Tab>public void <Esc>"npbiset<Esc>l~hea (<Esc>"tpa<Esc>"npa)<CR>{<CR><Tab>this.<Esc>"npa = <Esc>"npa;<CR>}<Esc>=<CR>`ak

そして、Java のソースを例えば、以下のように書いたとすると、
クラス変数の private の最初のp のところで、マッピングしたキーを入力します。
(上の例だと Kk)

private int    id;
private String text = "initial value";
^(ここで Kk を入力すると、// getters, //setters の下に追加されます。)

// getters

// setters
 ↓
private int    id;
private String text = "initial value";

// getters

public String getText ()
{
    return text;
}

// setters

public void setText (String text)
{
    this.text = text;
}



しかし、この一連のマッピング、、見事です。。

※ 参考サイトのものを自分の環境に合わせて若干変えています。

参考サイト

http://vim.wikia.com/wiki/Generate_Java_setters_and_getters_automatically

Aug 25, 2011

build.xml に tomcat ant タスクの登録

tomcat manager を使用するので、tomcat6-admin-webapps をインストールします。。
reload タスクなどは、manager の URL に REST でコマンドを送って実行します。

yum --enablerepo=jpackage-generic install tomcat6-admin-webapps


tomcat-users.xml を編集して、admin role の userを設定

vi /etc/tomcat6/tomcat-users.xml

# 任意のユーザーを追加
<user name="USERNAME" password="PASSWORD" roles="admin" />



${catalina.home}/bin にある、catalina-tasks.xml を import してタスクを登録

<project>

...
<property name="catalina.home" value="/usr/share/tomcat6" />
<import file="${catalina.home}/bin/catalina-tasks.xml"/>

<!-- Reload tomcat -->
<target name="reload">
<reload url="http://localhost:8080/manager"
username="USERNAME"
password="PASSWORD"
path="/CONTEXT" />
</target>

...


${catalina.home}/bin/catalina-tasks.xml の中にある classpath の設定通りに jar ファイルがない場合は、
該当のファイルをclasspath に登録します。

私の場合は、シンボリックリンクを張りました。

cd /usr/share/java

sudo ln -s tomcat6-servlet-2.5-api-6.0.18.jar servlet-api.jar
sudo ln -s tomcat6-jsp-2.1-api-6.0.18.jar jsp-api.jar
sudo ln -s tomcat6-el-1.0-api-6.0.18.jar el-api.jar


参考サイト

http://www.neutralworks.com/blog/osx/mecurial-on-mac.html

Aug 19, 2011

Ant の native2ascii で「Couldn't load Kaffe's Native2Ascii class」

Ant のバージョンを上げると、解決するかもです。

以下のバージョンを、
ant-1.6.5

ant-nodeps-1.6.5


jpackageリポジトリの最新版、
ant-1.7.1

ant-nodeps-1.7.1

にアップデートすることで解決しました。


参考サイト

http://osdir.com/ml/java.ejbca.devel/2007-02/msg00007.html


Aug 18, 2011

VMware Fusion3: 共有 の設定で「 実行時フォルダの共有ステータスを更新できません:不明なエラー」が出る場合

gcc をインストールした後に、vmware-tools をインストール(再インストール)する。

参考サイトは、openSUSE の記述だけど、同じ方法で解決した。


参考サイト

http://www.vmware.com/jp/support/support-resources/pubs/view_pubs/releasenotes_fusion_312.html#gosissues

CentOS 5.5 に、mercurial のインストール

rpmforge のリポジトリにあるのをインストール。

rpmforge のインストールはこちら

yum --enablerepo=rpmforge install mercurial



参考サイト

http://d.hatena.ne.jp/red_snow/20100428/1272423744


OSX に、Mercurial のリポジトリを構築

macports を使って、mercurial をインストール
sudo port install mercurial


リポジトリの作成
※ パーミッション等、Apacheのユーザが書き込めるようにしておく
mkdir -p /path/to/hg/repo

cd /path/to/hg/repo
hg init someproject


hgrc の設置
vi /path/to/hg/repo/someproject/.hg/hgrc


# こんな感じ
[web]
contact = me@me.com
description = Some Project

allow_push = *
allow_archive = zip
push_ssl = true

# 詳しくは
man hgrc


hgweb.config の設置
vi /path/to/hg/hgweb.config


# こんな感じ
[paths]
/ = /path/to/hg/repo/*


hgweb.cgi の設置
cp /opt/local/share/mercurial/hgweb.cgi /path/to/hg/

vi /path/to/hg/hgweb.cgi

# 設定ファイルのパスを修正
config = "/path/to/hg/hgweb.config"

# 文字化けする場合は以下を追加
import os
os.environ["HGENCODING"] = "UTF-8"

# 以下必要に応じて書き換え
import sys; sys.path.insert(0, "/opt/local/Library/Frameworks/Python.framework/Versions/Current/lib/python2.6/site-packages")


Apacheの設定
sudo vi /etc/apache2/other/hg.config


# こんな感じ
Alias /hg /path/to/hg

<Directory "/path/to/hg">
Options ExecCGI FollowSymLinks
DirectoryIndex hgweb.cgi
AddHandler cgi-script .cgi

AuthType Basic
AuthName "Repository"
AuthUserFile /private/etc/apache2/.htpasswd
AuthGroupFile /dev/null

Order deny,allow
Deny from all
Allow from xxx.xxx.xxx.xxx/24

Require valid-user
</Directory>

# Apache再起動
sudo /usr/sbin/apachectl restart


参考サイト

http://www.neutralworks.com/blog/osx/mecurial-on-mac.html
http://blog.bluegold.me/2010/02/setup-mercurial-hgwebdir-fcgi-on-nginx/
http://d.hatena.ne.jp/eldesh/20110125/1295938971
http://www.proton.jp/main/programming/mercurial.html

Aug 13, 2011

centos 5.5 に、Apache + Tomcat6 な環境を作る

httpd のインストール
sudo yum install httpd


Tomcat のインストール
※ Jpackage のリポジトリを追加しておく。
※ webapps は必要に応じて。
sudo yum --enablerepo=jpackage-generic install tomcat6 tomcat6-webapps


ここで、以下のようなエラーが出る場合がある。
Missing Dependency: /usr/bin/rebuild-security-providers is needed


その場合は、jpackage-utils 5.0 を手動でインストールする。
sudo rpm -Uvh http://plone.lucidsolutions.co.nz/linux/centos/images/jpackage-utils-compat-el5-0.0.1-1.noarch.rpm



参考サイト

http://wiki.hillockhosting.com/yum/usrbinrebuild-security-providers-is-needed/

yum Jpackage リポジトリの追加

su -
rpm --import http://www.jpackage.org/jpackage.asc
wget http://www.jpackage.org/jpackage50.repo -O /etc/yum.repos.d/jpackage.repo
perl -p -i.old -e 's/enabled=1/enabled=0/' /etc/yum.repos.d/jpackage.repo

# 問題なければ
rm /etc/yum.repos.d/jpackage.repo.old


参考サイト

http://www.jpackage.org/