2014年9月24日 星期三

Java:convert List/Map to a join string

There's no such convenience method in the standard Java API.
But, All the references to Apache Commons are fine.
Use the library 「org.apache.commons.lang.StringUtils」.

List:
  List<String> list = Arrays.asList("342443","342450","342449");
  System.out.println(StringUtils.join(list, ","));
  // 342443,342450,342449

Map:
  Map<String, Integer> map = new HashMap<String, Integer>();
  map.put("342443", 23);
  map.put("342450", 672);
  map.put("342449", 15);
  // join keys
  System.out.println(StringUtils.join(map.keySet(), ","));
  // 342443,342450,342449

  // join valus
  System.out.println(StringUtils.join(map.values(), ","));
  // 23,672,15

2014年7月15日 星期二

The default Context Path on 『Add & Remove Available Resource』set Tomcat with Eclipse.

When I use the『Add and Remove...』function on Server with IDE Eclipse.
I always have to rewrite the default Context Path on file server.xml.
Ex:
Before:
<Context docBase="test" path="/test" reloadable="true" source="org.eclipse.jst.jee.server:test"/></Host>
After:<Context docBase="test" path="/" reloadable="true" source="org.eclipse.jst.jee.server:test"/></Host>

If I want do it once.
Find the file 『org.eclipse.wst.common.component』 where located in folder 『.setting』.
The content is like:
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
    <wb-module deploy-name="test">
        <wb-resource deploy-path="/" source-path="/WebContent" tag="defaultRootSource"/>
        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
        <property name="context-root" value="test"/>
        <property name="java-output-path" value="/test/build/classes"/>
    </wb-module>
</project-modules>

Just rewrite the fragment:
<property name="context-root" value="test"/>
to                                                                   ^^^^
<property name="context-root" value="xxxx"/>

Done.

Another way.
Right click on your 『Dynamic Web Project』.
Choose 『properties...』→『Web Project Settings』.
Rewrite the Content on 『Context root』.
Much easier.

Done.

2012年3月7日 星期三

Eclipse 加入 tomcat 做法

每次要開發專案就要在eclipse上新增tomcat server,因為只要設定一次,然後就常常忘了怎麼設,所以就記錄下來。

  要新增server之前,要先看到ServersView,「WindowàShow ViewàServers」如右圖:

  然後在『ServersView中按右鍵新增一個Server,如右圖:


開啟『New Server』視窗後,選一個開發的伺服器;這裡我選的是『Tomcat v7.0 Server』;如右圖:

Server's host name: 預設是【localhost】
Server name: 預設是【Tomcat v7.0 Server at localhost】
Server runtime environment: 【Apache Tomcat v7.0】

  要加入對應的 Tomcat,要按下【Add...】;如右圖紅框所示:
開啟『New Server Runtime Environment』後,選擇 Tomcat 的所在位置;如右圖:
新增後,在『Package Explorer』View 中會顯示【Servers】,而『Servers』View 中則會顯示【Apache Tomcat v7 at localhost】;如右圖紅框所示:
在『Servers』View 的【Apache Tomcat v7 at localhost】上按【F3】開啟,或是滑鼠左鍵連擊兩次開啟如右圖之視窗;在《Server Locations》中選擇【Use Tomcat installation (takes control of Tomcat installation)】,其餘欄位資料為預設帶出;如右圖:

  如 8080 port 被佔住,亦可以在此做修改;如右圖紅框所示。
完成 Server 基本設定後,接下來要把專案掛到 Server 上,在【Apache Tomcat v7 at localhost】上按右鍵點選【Add and Remove】開啟,如右圖:
開啟【Add and Remove...】後,選擇要加入的專案;如右圖:
加入完成後,在『Package Explorer』View中可以找到【server.xml】檔,連擊滑鼠左鍵開啟後,可看到

<Context docBase="web_ecs" path="/ecs" reloadable="true" source="org.eclipse.jst.jee.server:web_ecs"/>
<Context docBase="web_mcs" path="/member" reloadable="true" source="org.eclipse.jst.jee.server:web_mcs"/>
<Context docBase="web_mng" path="/mng" reloadable="true" source="org.eclipse.jst.jee.server:web_mng"/>
,如右圖:


  其中,若有其他本機資源要提供給專案使用的話,我知道的有兩種方法,這裡介紹其中一種,
<Context debug="0" docBase="D:\Upload\web" path="/upload" privileged="true"/>
<Context debug="0" docBase="D:\Resource\web" path="/resource" privileged="true"/>
,即加入此字串,告訴 Server 只要 context path 為「/upload」,就連結到「D:\Upload\web」資料夾取得對應的資源。


前述步驟完成後,開啟 tomcat 資料夾,會發現多了一個【wtpwebapps】資料夾,這是因為在前步驟中有指定要執行的位置;如右圖:
要啟動Server了,首先在【Apache Tomcat v7 at localhost】上按右鍵點選【Clean Tomcat Work Directory】清除暫存程式資料檔;如右圖:
前一步驟目的是清除暫存程式資料,所在位置如右圖所示:
然後在【Apache Tomcat v7 at localhost】上按右鍵點選【Clean...】清除專案程式資料檔;如右圖:

  最後按【Start】啟動 server。
如啟動過程中跳出如右圖之警告訊息視窗,這只是表示無法在45秒內完成啟動,可以無需理會重新啟動 server 。
如要拉長啟動時間,可在【Timeouts】中設定,如右圖:
正常啟動後,【Console】View 中會顯示對應的專案名稱,這裡我加入了ecs、mng 及mcs 等三個專案,所以三個專案在正常啟動後都會顯示如右圖的訊息。


啟動後,在【Servers】View 中的 icon 會顯示執行中,如右圖所示。

  到此,Server 已正常啟動完成。

2011年6月15日 星期三

PMP 4th edition 筆記分享-(chapter 5)

5.1 Collect Requirements
Input 口訣:專利
 專:1. 案章呈
 利:2. 害關係者登錄簿
T&T 口訣:集集訪問促焦觀雛
 集:4. 體創新技術
 集:5. 體決策技術
 訪:1. 談
 問:6. 卷與調查
 促:3. 進研習會
 焦:2. 點團體
 觀:7. 察
 雛:8. 
Output 口訣:追溯管理文件
 追溯:3. 需求追溯矩陣
 管理:2. 專案管理計劃
 文件:1. 需求文件
5.2 Define Scope
Input 口訣:文章流
 文:2. 需求件
 章:1. 專案呈
 流:3. 組織程資產
T&T 口訣:研選家產(嚴選家產)
 研:4. 促進習會
 選:3. 備方案辨識
 家:1. 專判斷
 產:2. 品分析
Output 口訣:範疇文件
 範疇:1. 專案範疇聲明
 文件:2. 專案文件更新
5.3 Create WBS
Input 口訣:範文流
 範:1. 專案疇聲明
 文:2. 需求件
 流:3. 組織程資產
T&T 口訣:分解術
Output 口訣:無
5.4 Verify Scope
Input 口訣:確認管理追溯文件
 確認:4. 已確認的交付產品
 管理:1. 專案管理計劃
 追溯:3. 需求追溯矩陣
 文件:2. 需求文件
T&T 口訣:檢驗
Output 口訣:接受變更文件
 接受:1. 可接受的交付產品
 變更:2. 變更申請
 文件:3. 專案文件更新
5.5 Control Scope
Input 口訣:專管績效追溯文件流程
 專管:1. 理計劃
 績效:2. 工作績效資訊
 追溯:4. 需求追溯矩陣
 文件:3. 需求文件
 流程:5. 組織流程資產
T&T 口訣:差異分析
Output 口訣:專管績效申請流程文件
 專管:4. 理計劃更新
 績效:1. 工作績效衡量
 申請:3. 變更申請
 流程:2. 組織流程資產更新
 文件:5. 專案文件更新
Chapter 5

PMP 4th edition 筆記分享-(chapter 4)

4.1 Develop Project Charter
Input 口訣:據說合產子
 據:2. 商業論
 說:1. 專案工作明
 合:3. 約
 產:5. 組織流程資
 子:4. 企業環境因
T&T 口訣:無
Output 口訣:無
4.2 Develop Project Management Plan
Input 口訣:章劃產子(彰化產子)
 章:2. 專案程
 劃:1. 規流程產出
 產:4. 組織流程資
 子:3. 企業環境因
T&T 口訣:無
Output 口訣:無
4.3 Direct & Manage Project Execution
Input 口訣:變劃產子(變化產子)
 變:2. 經核准的更需求
 劃:1. 專案管理計
 產:4. 組織流程資
 子:3. 企業環境因
T&T 口訣:無
Output 口訣:件付申效劃(見富紳笑話)
 件:5. 專案文更新
 付:1. 交標的
 申:3. 請變更
 效:2. 工作績資訊
 劃:4. 專案管理計更新
4.4 Monitor & Control Project Work
Input 口訣:效劃產子(笑話產子)
 效:2. 績報告
 劃:1. 專案管理計
 產:4. 組織流程資
 子:3. 企業環境因
T&T 口訣:無
Output 口訣:專管申請文件
 專管:2. 理計劃更新
 申請:1. 變更申請
 文件:3. 專案文件更新
4.5 Perform Integrated Change Control
Input 口訣:效劃申產子(笑話生產子)
 效:2. 工作績資訊
 劃:1. 專案管理計
 申:3. 變更請
 產:5. 組織流程資
 子:4. 企業環境因
T&T 口訣:無
Output 口訣:專管狀況文件
 專管:2. 理計劃更新
 狀況:1. 變更需求狀況更新
 文件:3. 專案文件更新
4.6 Close Project or Phase
Input 口訣:專管交付流程
 專管:1. 理計劃
 交付:2. 可接受的交付產品
 流程:3. 組織流程資產
T&T 口訣:無
Output 口訣:無
Chapter 4