めも

技術メモとその他

【Postgresql】件数を元に連番を生成する generate_series

luna=# select * from sample;

 stake_no | cnt 

----------+-----

 0001     |   1

 0002     |   3

(2 rows)

 

luna=# select * from sample,generate_series(1, 99) as id

where sample.cnt >= id;

 stake_no | cnt | id 

----------+-----+----

 0001     |   1 |  1

 0002     |   3 |  1

 0002     |   3 |  2

 0002     |   3 |  3

(4 rows)

 

terasoluna=# 

【Java】easy mock "入れ子"のサンプル

<test class>

1. inner class

 

public class ConcatorIml implements Concater {

 

@Override

public String concat(String str1, String str2) throws Exception {

 

String conc = "";

conc = str1+str2;

 

return conc;

}

 

}

 

2.outer class

 

public class parConcatorImpl implements parConcator {

 

@Override

public String conc(Concater cn) {

 

String str = null;

try {

str = cn.concat("a", "b");

} catch (Exception e) {

 

e.printStackTrace();

}

return str;

}

 

}

 

<mock test code>

@Test

public void testCbIml() throws Exception {

 

Concater mock = EasyMock.createMock(ConcatorIml.class);

EasyMock.expect(mock.concat(

      (String) EasyMock.anyObject(),

      (String) EasyMock.anyObject())).andReturn("inner mock return");

EasyMock.replay(mock);

 

parConcator mockMain = EasyMock.createMock(parConcatorImpl.class);

EasyMock.expect(mockMain.conc(mock)).andAnswer(new IAnswer<String>() {

public String answer() throws Throwable {

String str =mock.concat("a", "b");

            return str;

        }

 

});

 

 

EasyMock.replay(mockMain);

 

String str = mockMain.conc(mock);

EasyMock.verify(mockMain);

EasyMock.verify(mock);

 

 

System.out.println(str);

 

}

 

【iBatis】sql ログの設定(log4j)

log4j.rootCategory=INFO, consoleLog
log4j.category.jp.terasoluna=DEBUG
log4j.category.org.springframework=INFO
log4j.category.org.apache.struts=INFO

log4j.category.java.sql.Connection= DEBUG 
log4j.category.java.sql.Statement= DEBUG 
log4j.category.java.sql.PreparedStatement= DEBUG 
log4j.category.java.sql.ResultSet= DEBUG 
log4j.category.com.ibatis=DEBUG

log4j.appender.consoleLog=org.apache.log4j.ConsoleAppender
log4j.appender.consoleLog.Target=System.out
log4j.appender.consoleLog.layout=org.apache.log4j.PatternLayout
log4j.appender.consoleLog.layout.ConversionPattern=[%d{yyyy/MM/dd HH:mm:ss}][%p][%c{1}] %m%n

Jenkins を Mac OS X上で動作させる際の注意

homebrewでインストールした際、初回起動時にanonymous以外のユーザが

未作成にも関わらず、ログインを求められる。

 

ネット上にはパスワードファイルを確認するように書かれているが、そもそも

ユーザアカウントが一つもないのでパスワードファイルなどない。

その際の手順メモ。

 

1)/Users/[ユーザ]/.jenkins/ ディレクトリ直下の config.xml

   の <userSecurity>true</userSecurity> を、falseに変更

2)jenkins再起動

brew services restart jenkins

3)http://localhost:8080 から匿名アクセスできるようになるので、

  必要なユーザ、権限設定する

参考:

stackoverflow.com