紫風亂寫

          除了他眼前的屏幕,這個人什么也沒看見。
          被周圍的電腦簇擁著,他只知道他所創(chuàng)造的現(xiàn)實,但又意識到那是虛幻。
          他已經(jīng)超越了技術。也超越了機器。
          posts - 62, comments - 93, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          使用如下Name Space可以讓Xml工具對POM元素進行驗證
          <?xml version="1.0" encoding="UTF-8"?>
          <project xmlns="http://maven.apache.org/POM/4.0.0"
            xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation
          ="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
          </project>
          幾個相當不錯的Maven Repository
          <repositories>
                  
          <repository>
                    
          <id>maven2-repository.dev.java.net</id>
                    
          <name>Java.net Repository for Maven</name>
                    
          <url>http://download.java.net/maven/2/</url>
                    
          <layout>default</layout>
                  
          </repository>
                  
          <repository>
                    
          <id>jboss.repository</id>
                    
          <name>JBoss Repository</name>
                    
          <url>http://repository.jboss.com/maven2/</url>
                  
          </repository>
                  
          <repository>
                  
          <id>maven.search</id>
                  
          <name>Maven Search Org</name>
                  
          <url>http://www.mvnsearch.org/maven2</url>
                  
          </repository>
                
          </repositories>

          posted @ 2008-03-11 22:18 Justfly Shi 閱讀(1156) | 評論 (0)編輯 收藏

            上周去某上市公司面試一個ITIL產(chǎn)品技術經(jīng)理的崗位,前一輪面試已經(jīng)談了不少管理方面的事情了,這次主要集中在談ITIL的知識。該公司本身在做HP等廠家的ITIL類產(chǎn)品的代理,自己也開發(fā)了一套ITIL軟件。

            在面談過程中,該公司的面試人員對我原先服務的理想科技公司Entegor(iEAI)產(chǎn)品在光大銀行IT服務管理項目中的作用不以為然,認為只要是加強了IT運維過程中的管理就能起到大幅度減少IT事故。并且認為該項目并不是一個合格的ITIL項目。很是汗顏的是,那天天我居然被該面試人員的ITIL方面的教條熟悉程度以及其對HPIBMBMCCA等廠家的產(chǎn)品了解程度所嚇到,認為對方果然是ITIL專家,作為一個連十大流程名字都背不全的我實在是不配談ITIL。第二天早上醒來,才發(fā)現(xiàn)其論點是典型 ITIL教條主義。下面我談談基于中國銀行業(yè)IT建設現(xiàn)狀該怎么看待ITIL

            “ITILInformation Technology Infrastructure LibraryIT基礎設施庫)是英國中央計算機與電信總局(Central Computer and Telecommunications agencyCCTA)于1980年為了解決“IT服務質(zhì)量不佳的問題而開發(fā)的一套IT業(yè)界的服務管理標準庫,是管理科學在信息技術(IT)中的應 用,是一種基于流程的方式。(來之《現(xiàn)代IT服務管理-基于ITIL的最佳實踐) ITIL包括十大流程,五個基于運營層面的服務支持流程,包括服務臺、事件管理、問題管理、配置管理、變更管理、發(fā)布管理;二是五個基于戰(zhàn)術層面的服務提供流程,包括服務等級管理、持續(xù)性、可用性、能力和財務管理。以 ITIL為參考,各個廠家都提出了自身的實施模型,其中包括有HPITSMIBMITPM、微軟的MOF

            以上是ITIL的一些基本資料,冷一眼看起來的確是非常不錯:英國的中央計算機與電信總局各大廠商支持十大流程。于是業(yè)內(nèi)的一些行 家,開口閉口十大流程,但是卻忘了IT系統(tǒng)的最基本的要求滿足客戶需求。作為任何一個服務提供商,你的價值體現(xiàn)在為客戶解決現(xiàn)有問題。ITIL只是一個源于英國國內(nèi)IT管理實踐的參考模型而已,并不是一個萬能藥。

            中國的IT建設有其自身的特點,與英國的IT建設并不一樣,不同的文化和不同的種族需要不同的管理方法,來自于英國的管理文化在中國成功的并不不多。同樣,來自于英國的IT管理實踐在國內(nèi)也不見得就是好東西,有些情況下還可能是一副毒藥。這個情況和ERP最初的實施情況非常類似。

            我在擔任長春理想科技Entegor(iEAI)產(chǎn)品研發(fā)部門經(jīng)理期間與多家銀行的信息部門管理人員有過交流。總的來說,大家的關注點主要集中在如何保證系統(tǒng)持續(xù)良好的運行上。

            那么這個情況是怎么形成的呢,我認為主要是這是國內(nèi)目前IT建設現(xiàn)狀的一個體現(xiàn)。

            國內(nèi)的IT建設現(xiàn)在處于這么一個情況:IT系統(tǒng)種類豐富,IT系統(tǒng)性能不穩(wěn)定,管理水平較低。這個情況主要由這么幾個因素造成:1、信息系統(tǒng)建設初期缺乏完整的遠期的規(guī)劃,后期隨意建設情況較嚴重;2、高級系統(tǒng)管理人員缺乏,初級維護人員經(jīng)驗不足;3IT部門管理仍有相當部分停留在手工操作水平;4、國外IT產(chǎn)品水土不服、國內(nèi)IT產(chǎn)品質(zhì)量欠缺。

            那么國內(nèi)目前最需要的是什么樣的IT管理呢?我總結出來的結論是目前國內(nèi)所需要的IT管理主要集中在保持系統(tǒng)的穩(wěn)定運行,保證IT系統(tǒng)的良好運行,提高IT系統(tǒng)、部門的管理水平。從實施的角度來說,需要做好對系統(tǒng)的監(jiān)控,事故問題的預防、及時解決和經(jīng)驗總結,完善IT系統(tǒng)、部門的信息管理。要做到這個不是單靠背誦ITIL教條,死搬硬套ITIL十大流程就能做到的。需要的是參考成功經(jīng)驗(如ITIL模型及流程),根據(jù)企業(yè)的管理模式、IT建設現(xiàn)狀進行相關系統(tǒng)的開發(fā)和實施,相關制度和流程的制訂和實施。

            在這個實施過程中,企業(yè)IT建設現(xiàn)狀和企業(yè)管理模式才是我們需要關注的重點,ITIL只是一個參考模型而已。

            我們需要這么來認識ITIL,它是一個泊來的提高IT管理和IT服務水平的參考模型,僅供參考!

          posted @ 2007-12-11 00:18 Justfly Shi 閱讀(1603) | 評論 (12)編輯 收藏

            作為一個現(xiàn)代的開發(fā)人員,你已經(jīng)習慣了使用版本管理來管理自己的代碼和文檔。當我們在家里的機器上想對自己的東西做版本管理的時候你需要自己配置一個版本管理服務器,如CVS等。但是很遺憾的是,CVSNT的配置很是麻煩,而且CVS的功能實在是落伍,SVN服務器的配置也實在麻煩,VSS?老古董一邊去!網(wǎng)絡上申請一個免費的項目空間,如sf.net之類的:那你的文件就都公開了。

            今天我無意中發(fā)現(xiàn)原來創(chuàng)建一個個人用的SVN Repository是那么的方便。TortoiseSvn這個小烏龜你一定很熟悉,它本身就有一個創(chuàng)建本地Repository的功能,我以前沒有注意到過,不知道你用過沒有。我用的版本是 1.4.4,在它的幫助的Chapter4里就提到了這個功能。簡單來說操作步驟如下

            第一步,創(chuàng)建一個空白目錄,如F:/SVNRepositorys/sample/sampleRepository

            第二步,右鍵點擊該目錄,在右鍵菜單中選擇TortoiseSVN->Create repository here...。如下圖所示


            第三步,在彈出窗口中選擇repository的類型,F(xiàn)SFS是一種新的格式是一種新的類型,速度快,支持網(wǎng)絡共享和windows98;BDB類型比較成熟,已經(jīng)用了很長時間了,比較穩(wěn)定。選擇你想要的,點擊OK按鈕就可以了。

           


            到此為止我們的工作就完成了,你已經(jīng)有一個本地的repository可以用來做版本管理了。如果有興趣的話你可以打開你剛才創(chuàng)建的目錄看看里面的內(nèi)容。我對里面的內(nèi)容格式并不很清楚,這里就不說了。下面我們可以用Repository Browser看看我們新創(chuàng)建的repository,如下圖所示:輸入地址file:///F:/SVNRepositorys/sample/sampleRepository你就可以看到新創(chuàng)建的repository了。注意上面的藍色部分,這里使用的協(xié)議是file協(xié)議。

           

           

            我原先為自己一些文件的版本管理做過很多的麻煩事,比如搭建CVSNT啊,學習SVN Server的配置啊。但是沒有想到可以這么簡單的就可以達到自己的目的了。這件事情給了我一個啟發(fā):熟練掌握你手里已有的工具,你會發(fā)現(xiàn)你其實已經(jīng)擁有很多。

          posted @ 2007-08-29 01:38 Justfly Shi 閱讀(7705) | 評論 (4)編輯 收藏

          CURRENT=`pwd`
          echo $CURRENT

          以上兩行厲害吧?其實就是使用了反引號而已,注意pwd邊上的那兩撇不是單引號,是鍵盤左上角1邊上的那個鍵。

          下面是一點相關的資料
          來源是http://hi.baidu.com/lzwwqk/blog/item/40a3f41bb4f8b3fbae513358.html

          反引號 `

          反引號(`)這個字符所對應的鍵一般位于鍵盤的左上角,不要將其同單引號(’)混淆。反引號括起來的字符串被shell解釋為命令行,在執(zhí)行時,shell首先執(zhí)行該命令行,并以它的標準輸出結果取代整個反引號(包括兩個反引號)部分。例如:

          $ pwd

          /home/xyz

          $ string=”current directory is `pwd`”

          $ echo $string

          current directour is /home/xyz

          $

          shell執(zhí)行echo命令時,首先執(zhí)行`pwd`中的命令pwd,并將輸出結果/home/xyz取代`pwd`這部分,最后輸出替換后的整個結果。

          利用反引號的這種功能可以進行命令置換,即把反引號括起來的執(zhí)行結果賦值給指定變量。例如:

          $ today=`date`

          $ echo Today is $today

          Today is Mon Apr 15 16:20:13 CST 1999

          $

          反引號還可以嵌套使用。但需注意,嵌套使用時內(nèi)層的反引號必須用反斜線(\)將其轉(zhuǎn)義。例如:

          $ abc=`echo The number of users is \`who| wc-l\``

          $ echo $abc

          The number of users is 5

          $

          在反引號之間的命令行中也可以使用shell的特殊字符。Shell為得到``中命令的結果,它實際上要去執(zhí)行``中指定的命令。執(zhí)行時,命令中的特殊字符,如$,”,?等又將具有特殊含義,并且``所包含的可以是任何一個合法的Shell命令,如:

          $ ls

          note readme.txt Notice Unix.dir

          $ TestString=”`echo $HOME ` ` ls [nN]*`”

          $ echo $TestString

          /home/yxz note Notice

          posted @ 2007-04-18 21:14 Justfly Shi 閱讀(1970) | 評論 (1)編輯 收藏

          Remote Debugging with Eclipse說明了遠程調(diào)試的原理,說明了讓java程序支持被遠程調(diào)用所需要的java參數(shù)如下
          -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
          以及如何配置遠程調(diào)試weblogic、jboss和tomcat,但是里面對如何讓tomcat支持遠程調(diào)用并沒有仔細說。再搜索,在tomcat的FAQ就找到了:
          How do I configure Tomcat to support remote debugging?
          如上面所示,其中的關鍵在于如何正確的啟動tomcat。對于非windows平臺下的操作來說,需要把%TOMCAT_HOME%/bin/startup.sh中的最后一行exec "$PRGDIR"/"$EXECUTABLE" start "$@" 中的start改成jpda start。如果的8000端口有其他用處的話,那么還需要修改catalina.sh文件,看其中的說明,添加一行JPDA_ADDRESS=”1044”或者其他你指定的端口。這樣就可以通過startup.sh或者catalina.sh jpda start來其中支持遠程調(diào)試的tomcat了。
          在windows平臺上是一樣的步驟,只不過.sh文件改成了.bat文件了。然后需要注意以下這些地方,
          1、?catalina.bat文件默認的JPDA_TRANSPORT是dt_shmem,但是Eclipse只支持dt_socket,所以需要在catalina.bat中添加一行set JPDA_TRANSPORT=”dt_socket”
          2、?catalina.bat文件默認的端口是jdbconn,我也不知道這個端口是多少,因此添加一個set JPDA_ADDRESS="1044"

          posted @ 2007-02-05 18:34 Justfly Shi 閱讀(6765) | 評論 (0)編輯 收藏

          資料地址: SSH技術專題|中國IT認證實驗室
          配置SSH所用密鑰的方法
          使用ssh-keygen或者ssh-keygen -d(for ssh2)產(chǎn)生密鑰對,其中公鑰的地址為$HOME/.ssh/id_dsa.pub,私鑰的地址為$HOME/.ssh/id_dsa。
          把.ssh下面的id_dsa.pub改名為authorized_keys,則可以使用id_dsa作為密鑰實現(xiàn)登陸了



          ssh-keygen -d調(diào)用過程

          putty使用密鑰登錄的方法
          putty是一個常用的ssh客戶端,通過使用密鑰登錄,就可以不用每次登錄的時候都使用密碼了。1、使用puttygen.exe程序,先load上面生成的id_dsa文件,然后Save private key生成一個ppk文件。
          2、打開putty,在Connection->SSH->Auth中選中該ppk文件就可以了。

          SCP使用密鑰登錄的命令
          scp -i .ssh/id_dsa ./tmp/test.tgz abc@192.168.0.5:/tmp
          其中-i .ssh/id_dsa用于指定使用id_dsa做為私鑰

          posted @ 2007-01-29 20:03 Justfly Shi 閱讀(769) | 評論 (0)編輯 收藏

          25 測試驅(qū)動開發(fā)模式


          準備兩個TODO-List一個用于當前,一個用于最近
          當發(fā)現(xiàn)有事情要做的時候,對其優(yōu)先級進行判斷,將其放到當前或者以后。
          集中注意力于當前要做的事情

          斷言優(yōu)先
          寫Case的時候,一開始就寫斷言,從測試完成時能通過的斷言開始寫。

          測試數(shù)據(jù)
          測試數(shù)據(jù)要使用容易讓人理解的數(shù)據(jù),不要為了編排數(shù)據(jù)而編排數(shù)據(jù)
          不要用同一個常量來表達多種一絲。另外也可以使用真實數(shù)據(jù)進行測試。

          盡量讓測試的行為和數(shù)據(jù)容易理解,比如不使用常量,而是直接使用數(shù)字。在assert中加入斷言要測試的目的的文字說明

          26 不可運行狀態(tài)


          一步測試(One Step Test)
          從計劃列表中選擇具有指導意義而且有把握實現(xiàn)的測試去完成它。??

          啟動測試(Starter Test)
          從測試某個實質(zhì)上不做任何工作的操作開始,這樣的測試一般能很快工作。而一個做實際工作的功能的測試可能需要等你解決很多問題,比如:這個操作隸屬于哪里?正確的輸入是什么?對應的正確輸出是什么?等等。結果是其長期無法通過。

          回歸測試(Regression Test)
          對于一個錯誤情況,編寫一個針對該錯誤的,會出錯的,盡可能小的測試。

          27測試模式


          子測試(Child Test)
          如果一個測試太大以至于難以運行起來,那么可以先把該測試給分解成幾個小的測試,并注釋掉本測試。等這些小測試通過之后再繼續(xù)這個大的測試??

          模擬對象(Mock Object)
          如何測試一個依賴于昂貴的且復雜的資源的對象?創(chuàng)建一個這些資源的模擬版本。

          自分流(self Shunt)
          如何測試對象間是否正常交互?讓測試對象于測試用例而不是期望的對象進行交互。
          需要讓測試用例類實現(xiàn)所要交互的類的接口。從而進行測試所實現(xiàn)的方法會被正確的調(diào)用。

          日志字符串(Log String)
          如何才能測試使消息調(diào)用順序是正確的?將日志保存在字符串中,當調(diào)用一個消息時,就向字符串尾部追加相應的信息。

          清掃測試死角(Crash Test Dummy)
          如何測試到不大可能被調(diào)用的錯誤代碼呢?使用一種特殊的對象調(diào)用它,這個對象拋出一個異常而不做任何實際工作。比如實現(xiàn)一個匿名File子類,只實現(xiàn)其createNewFile方法,方法中拋出一個異常,通過這種方式來測試文件系統(tǒng)滿了的情況。

          不完整測試(Broken Test)
          留下半截句子或者一個沒有通過的測試用例可以保證你離開代碼一段時間之后依然能較快的回憶起原先的想法。

          提交前保證所有測試運行通過
          當你在團隊中變成時如何結束一段編碼工作?讓所有測試運行起來。
          注釋掉一些測試代碼使測試套件通過是要嚴格禁止的。

          28可運行模式


          偽實現(xiàn)(直到你成功)
          測試不能通過時首先應該執(zhí)行什么?可以返回一個常量。一旦你能使測試運行起來,那個常量就會逐漸換成用變量表示的表達式。這個方法可以從心理上讓我們感到滿足,可以讓我們集中注意力于當前要解決的問題。

          三角法(Triangulation)
          怎樣可以更適當?shù)乩脺y試推動抽象呢?只有當你有兩個或兩個以上的例子時,你才能進行抽象。使用兩個針對同一個測試目標的測試例子(或斷言),在此基礎上對該測試目標的實現(xiàn)進行抽象并實現(xiàn)。

          顯明實現(xiàn)(Obvious Implementation)
          直接實現(xiàn)簡單的操作。

          從一到多(One to Many)
          怎樣實現(xiàn)一個作用于對象集合體的操作呢?首先在非集合體中實現(xiàn),然后使之作用于集合體。

          32 掌握TDD


          什么可以不必測試?
          應該測試:條件部分、循環(huán)部分、操作部分、多態(tài)性。除了不信任,否則不要測試其他來源的代碼。

          怎樣知道自己的測試沒有疏漏呢?
          一些預示著設計存在這缺陷的特征:
          過長的設置代碼——如果為了一個簡單的斷言,需要花費上百行代碼創(chuàng)建對象,那么肯定有哪兒不對勁兒。對象太大,需要分割。
          冗余的設置代碼——如果你無法為公共代碼找到一個存放它的公共場所的話,那么就表明有太多的對象過于緊密地聯(lián)系在一起了。
          過長的測試運行時間——這樣測試不會被經(jīng)常運行,同時也暗示著對系統(tǒng)的方方面面進行測試是困難的。這種測試困難是一種設計問題,并且需要在設計時就被提出來。
          脆弱的測試——意外中斷的測試說明應用的某一部分出人意料地存在對另一部分的影響。你需要對系統(tǒng)進行設計,要么打破聯(lián)系,要么將兩部分合并,直到這種影響消失為止。

          你需要多少反饋?
          測試驅(qū)動的開發(fā)對測試的觀點就是注重實效。在測試驅(qū)動開發(fā)中,測試從某種意義上說是一種達到目的的手段——達到充滿自信地編寫代碼的目的。如果我們對實現(xiàn)有充分了解,不用測試就能擁有自信的話,那么就沒有必要編寫測試了。

          什么時候應該刪除測試?
          如果刪除一個測試降低了你對整個系統(tǒng)功能的信心,那么就不要刪除。
          如果你有兩個測試,走的是同一條路,但對讀者來說講述的是不同的情形的話,那么就應該原封不動的保留。
          如果有兩個測試,它們就自信和溝通而言都是冗余的,那么就刪除其中用處最小的那個。

          如何中途轉(zhuǎn)向測試驅(qū)動開發(fā)?
          首先限定修改的范圍。對于該范圍外的可以簡化的地方先不動手。
          其次,必須打破測試與重構之間的僵局。可以先通過其他方式獲取反饋,如系統(tǒng)測試,然后使用這些反饋進行修改。通過這種方式逐漸的讓一直在改變的部分轉(zhuǎn)向測試驅(qū)動。

          posted @ 2006-11-21 00:24 Justfly Shi 閱讀(548) | 評論 (0)編輯 收藏

            由于最近需要通過一種跨平臺、跨語言的方式來傳遞需要多層嵌套的數(shù)據(jù),因此研究了一下JSON。首先試用JSON-lib做一下測試,但是未能通過測試,于是再找其他幾個Java實現(xiàn),但是也未能通過測試。分別測試對于一個簡單的類的序列化和反序列化,對于一個有數(shù)組和Map域的對象的序列化和反序列化。對于結果比較失望。
            其中的JSON-lib能通過第一個測試,第二個測試的時候則失敗。但是有一個很大的bug,對于存在null域的對象反序列化的時候會失敗。該bug已經(jīng)在主頁上了,但是不知道那個版本會修改。
            其中的StringTree只能revert回一個Map對象。而對于一個復雜的對象,則無法revert。在做第二個測試的時候總是停在那里不動了。
            其中的JSON-Tool根本就沒有直接的序列化的功能。
            由于測試情況很不理想,因此只進行了兩個測試,對于特殊字符、國際化的測試沒有進行。
            
            結論:JSON的序列化和反序列化功能還不成熟。
            所有代碼下載地址http://www.aygfsteel.com/Files/justfly/jsonTest.zip
            測試類如下:

          ?1 /**
          ?2 ?*?created?on?2006-10-2
          ?3 ? */

          ?4 package ?cn.shijingjia.justfly.json;
          ?5
          ?6 import ?java.util.HashMap;
          ?7 import ?java.util.Map;
          ?8
          ?9 import ?junit.framework.Assert;
          10 import ?net.sf.json.JSONObject;
          11
          12 import ?org.junit.Before;
          13 import ?org.junit.Test;
          14
          15 import ?cn.shijingjia.justfly.json.imps.StringTreeImp;
          16
          17 /**
          18 ?*? @author ?Shi?Jiemiao
          19 ?*?
          20 ? */

          21 public ? class ?JSonTest? {
          22
          23 ???? private ?SimpleClass?simple1? = ? new ?SimpleClass();
          24
          25 ???? private ?SimpleClass?simple2? = ? new ?SimpleClass();
          26
          27 ???? private ?SimpleClass?simple3? = ? new ?SimpleClass();
          28
          29 ???? private ?IJSonUtil < SimpleClass > ?simpUtil;
          30
          31 ???? private ?IJSonUtil < CompositeClass > ?compositeUtil;
          32
          33 ???? /**
          34 ?????*? @throws ?java.lang.Exception
          35 ????? */

          36 ????@Before
          37 ???? public ? void ?setUp()? throws ?Exception? {
          38 ????????simple1.setAInt( 1 );
          39 ????????simple1.setStr( " name1 " );
          40 ????????simple2.setAInt( 2 );
          41 ????????simple2.setStr( " name2 " );
          42 ????????simple3.setAInt( 3 );
          43 ????????simple3.setStr( " name3 " );
          44
          45 ????????simpUtil? = ? new ?StringTreeImp < SimpleClass > ();
          46 ????????compositeUtil? = ? new ?StringTreeImp < CompositeClass > ();
          47 ????}

          48
          49 ???? /**
          50 ?????*?Test?if?it?can?format?a?object?and?then?reverted?it?back
          51 ????? */

          52 ????@Test
          53 ???? public ? void ?simpleTest()? {
          54
          55 ????????String?jsonString? = ?simpUtil.toString(simple1);
          56 ????????System.out.println( " simpleClass\n " ? + ?jsonString);
          57 ????????SimpleClass?revertedObj? = ?simpUtil.toBean(jsonString);
          58 ????????Assert.assertEquals(simple1,?revertedObj);
          59 ????}

          60
          61 ???? /**
          62 ?????*?Test?if?it?can?format?and?revert?a?composite?object?with?array?and?map
          63 ????? */

          64 ????@Test
          65 ???? public ? void ?testComposite()? {
          66 ???????? // ?setup?the?origin?composite?class
          67 ????????CompositeClass?composite? = ? new ?CompositeClass();
          68 ????????composite.setName( " composite?Instance " );
          69 ????????composite.setSimple(simple2);
          70 ????????composite.setSimples( new ?SimpleClass[]? {?simple1,?simple3,?simple2?} );
          71 ????????Map?multiMap? = ? new ?HashMap();
          72 ????????multiMap.put( " simpleObject " ,?simple3);
          73 ????????multiMap.put( " aString " ,? " This?is?a?String " );
          74 ????????multiMap.put( " A?integer " ,? 297 );
          75 ????????composite.setMultiMap(multiMap);
          76 ???????? // ?orgin?json?object?and?jsonString
          77 ????????String?jsonString? = ?compositeUtil.toString(composite);
          78 ????????System.out.println( " composite?class\n " ? + ?jsonString);
          79
          80 ???????? // ?Map?atrMap?=?new?HashMap();
          81 ???????? // ?atrMap.put("simpleObject",?SimpleClass.class);
          82 ???????? // ?atrMap.put("aString",?String.class);
          83 ???????? // ?atrMap.put("A?integer",?Integer.class);
          84
          85 ????????CompositeClass?revertedBean? = ?compositeUtil.toBean(jsonString);
          86 ????????Assert.assertEquals(composite,?revertedBean);
          87 ????}

          88
          89 }

          90


          posted @ 2006-10-03 17:45 Justfly Shi 閱讀(3142) | 評論 (3)編輯 收藏

          I have talked with my boss last week. Because there is a workflow enginee in our product, my boss don't allow me to release an open source workflow enginee , even the design of my Frontal Sea Workflow Engine is different with the enginee in our product.

          posted @ 2006-08-30 23:28 Justfly Shi 閱讀(607) | 評論 (0)編輯 收藏

          I want to develop a workflow engine together with my girl friend. The purpose of developing a workflow is list below:
          1. I was deploy project with workflow or developing workflow product in my three year career, but none of them can satisfy me.
          2. I think I can study and practice java 5, spring, Hibernate 3, AJAX, Eclipse EMF etc...
          3. With pair programming, I can teach my girl friend how to do professional programming

          What is Frontal Sea?
          Frontal Sea is the name of a scenic beach in my hometown. Spray waving lightly, the sea breeze blowing softly. It is peaceful; it is full of childhood memories.

          posted @ 2006-06-21 00:49 Justfly Shi 閱讀(722) | 評論 (0)編輯 收藏

          僅列出標題
          共6頁: 上一頁 1 2 3 4 5 6 下一頁 
          主站蜘蛛池模板: 南充市| 扎囊县| 革吉县| 高碑店市| 正镶白旗| 阳朔县| 冕宁县| 年辖:市辖区| 兴业县| 陆丰市| 乐至县| 广州市| 池州市| 衢州市| 怀远县| 哈巴河县| 刚察县| 巫山县| 密云县| 革吉县| 沁水县| 修武县| 西青区| 福清市| 且末县| 永和县| 新宁县| 大理市| 齐齐哈尔市| 剑阁县| 皮山县| 滦平县| 明光市| 南宁市| 龙山县| 竹山县| 桓台县| 巢湖市| 安西县| 盐亭县| 曲阜市|