andyj2ee

          java tec sky

          統計

          留言簿(4)

          activemq

          aop

          design pattern

          other blog

          spring

          workflow

          多線程

          軟件架構師

          閱讀排行榜

          評論排行榜

          2008年8月28日 #

          系統cvs to Git 遷移

          遷移簡介

          應用工具:cvs2git

          工作原理:文件系統的copy, from cvs repository to export temp file, then import to Git repository.

          使用條件: Git version 1.5.4.4 or later (我們的目標 git 庫版本:

          git --version

          git version 1.9.0

          git --version
          git version 1.9.0

          cvs2git工具安裝

          遷移過程

          具體的遷移過程:

          以下為遷移wxxr-core-framework

          1. 在123.1上用cvs2git把cvs倉庫,導出成git的備份文件(blob file and dump file)

          • cvs2git --blobfile=/tmp/cvs2git/output/git-blob-cfw.dat --dumpfile=/tmp/cvs2git/output/git-dump-cfw.dat --username=zhangjunqing --fallback-encoding=GBK /app/cvsroot/wxxr-projects/wxxr-core-framework
          • 創建本地git倉庫 
            • git init --bare wxxr-core-framework.git
          • 下載導出的git的備份文件到本地臨時目錄 **
            • cd /Users/zhangjq/temp/cvs2git
            • scp -r djboss@192.168.123.1:/tmp/cvs2git/output/git-* . 
          • 用git的fast-import命令把從cvs導出的git備份文件導入剛創建的git倉庫** cd /Users/zhangjq/git/wxxr-core-framework/wxxr-core-framework.git** cat /Users/zhangjq/temp/cvs2git/git-blob-cfw.dat /Users/zhangjq/temp/cvs2git/git-dump-cfw.dat | git fast-import
          • 在Stash 上創建遠程倉庫** 創建了framework-core 倉庫集,并在此倉庫集下創建了wxxr-core-framework, wxxr-core-web  等遠程倉庫**http://developer.corp.wxxr.com.cn/git/projects/FRMCORE/repos/wxxr-core-framework/browse
            •  
          • 在本地執行** git branch -D TAG.FIXUP (執行git branch -a 沒有找到這個分支,為什么刪除?error: branch 'TAG.FIXUP' not found. )
            • git gc --prune=now
            • git push --all origin  (將本地的所有分支都推送到遠程主機)
            • git push -tags origin (最后,git push不會推送標簽(tag),除非使用-tags選項。)
          • 至此,完成了wxxr-core-framework的遷移。下一步執行比較驗證。

          Git 時不時地將這些對象打包至一個叫 packfile 的二進制文件以節省空間并提高效率。當倉庫中有太多的松散對象,或是手工調用git gc 命令,或推送至遠程服務器時,Git 都會這樣做。

          附:遷移腳本

          遷移驗證

          用本地cvs代碼庫代碼與git下載的庫代碼比較,有$Revision$ 的少版本信息外,其它一切正常。

          遷移報告

          wxxr-core-framework

          cvs2svn Statistics:
          ------------------
          Total CVS Files:              3000
          Total CVS Revisions:          9439
          Total CVS Branches:          33449
          Total CVS Tags:            3278944
          Total Unique Tags:            2446
          Total Unique Branches:          24
          CVS Repos Size in KB:       159751
          Total SVN Commits:            5260
          First Revision Date:    Wed May 31 15:56:03 2006
          Last Revision Date:     Sun Jan  4 17:22:23 2015
          ------------------
          Timings (seconds):
          ------------------
          1065   pass1    CollectRevsPass
          0   pass2    CleanMetadataPass
          0   pass3    CollateSymbolsPass
          648   pass4    FilterSymbolsPass
          1   pass5    SortRevisionsPass
          37   pass6    SortSymbolsPass
          436   pass7    InitializeChangesetsPass
          82   pass8    BreakRevisionChangesetCyclesPass
          82   pass9    RevisionTopologicalSortPass
          296   pass10   BreakSymbolChangesetCyclesPass
          406   pass11   BreakAllChangesetCyclesPass
          413   pass12   TopologicalSortPass
          319   pass13   CreateRevsPass
          159   pass14   SortSymbolOpeningsClosingsPass
          15   pass15   IndexSymbolsPass
          432   pass16   OutputPass
          4391   total
          

          fast-import wxxr-core-framework source code:

          git-fast-import statistics:
          ---------------------------------------------------------------------
          Alloc'd objects:      45000
          Total objects:        41365 (      2260 duplicates                  )
          blobs  :         7817 (       709 duplicates       6887 deltas of       7248 attempts)
          trees  :        30677 (      1551 duplicates      12608 deltas of      29589 attempts)
          commits:         2871 (         0 duplicates          0 deltas of          0 attempts)
          tags   :            0 (         0 duplicates          0 deltas of          0 attempts)
          Total branches:        2472 (        24 loads     )
          marks:     1073741824 (     11397 unique    )
          atoms:           2772
          Memory total:          4532 KiB
          pools:          2423 KiB
          objects:          2109 KiB
          ---------------------------------------------------------------------
          pack_report: getpagesize()            =       4096
          pack_report: core.packedGitWindowSize = 1073741824
          pack_report: core.packedGitLimit      = 8589934592
          pack_report: pack_used_ctr            =      23737
          pack_report: pack_mmap_calls          =        824
          pack_report: pack_open_windows        =          1 /          1
          pack_report: pack_mapped              =    7439224 /    7439224
          ---------------------------------------------------------------------

          :)

          @import url(http://www.aygfsteel.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

          posted @ 2015-01-13 18:53 java光環 閱讀(735) | 評論 (0)編輯 收藏

          異常:java.lang.ArrayIndexOutOfBoundsException: 48188



          [ERROR] Failed to execute goal org.apache.maven.plugins:maven-plugin-plugin:3.2:helpmojo (generate-help-mojo) on project wxxr-build-maven-plugin: Execution generate-help-mojo of goal org.apache.maven.plugins:maven-plugin-plugin:3.2:helpmojo failed: 48188 -> [Help 1]
          org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-plugin-plugin:3.2:helpmojo (generate-help-mojo) on project wxxr-build-maven-plugin: Execution generate-help-mojo of goal org.apache.maven.plugins:maven-plugin-plugin:3.2:helpmojo failed: 48188
              at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:224)
              at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
              at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
              at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108)
              at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76)
              at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
              at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116)
              at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361)
              at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
              at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
              at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)
              at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:597)
              at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
              at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
              at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
              at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
          Caused by: org.apache.maven.plugin.PluginExecutionException: Execution generate-help-mojo of goal org.apache.maven.plugins:maven-plugin-plugin:3.2:helpmojo failed: 48188
              at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:144)
              at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
              ... 19 more
          Caused by: java.lang.ArrayIndexOutOfBoundsException: 48188
              at org.objectweb.asm.ClassReader.readClass(Unknown Source)
              at org.objectweb.asm.ClassReader.accept(Unknown Source)
              at org.objectweb.asm.ClassReader.accept(Unknown Source)
              at org.apache.maven.tools.plugin.annotations.scanner.DefaultMojoAnnotationsScanner.scanFile(DefaultMojoAnnotationsScanner.java:139)
              at org.apache.maven.tools.plugin.annotations.scanner.DefaultMojoAnnotationsScanner.scan(DefaultMojoAnnotationsScanner.java:85)
              at org.apache.maven.tools.plugin.annotations.JavaAnnotationsMojoDescriptorExtractor.scanAnnotations(JavaAnnotationsMojoDescriptorExtractor.java:125)
              at org.apache.maven.tools.plugin.annotations.JavaAnnotationsMojoDescriptorExtractor.execute(JavaAnnotationsMojoDescriptorExtractor.java:104)
              at org.apache.maven.tools.plugin.scanner.DefaultMojoScanner.populatePluginDescriptor(DefaultMojoScanner.java:108)
              at org.apache.maven.plugin.plugin.AbstractGeneratorMojo.execute(AbstractGeneratorMojo.java:233)
              at org.apache.maven.plugin.plugin.HelpGeneratorMojo.execute(HelpGeneratorMojo.java:88)
              at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133)
              ... 20 more
          [ERROR]
          [ERROR]
          [ERROR] For more information about the errors and possible solutions, please read the following articles:
          [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

          臨時解決辦法:將commons-jelly 版本由1.0改為1.0-RC1
                  <dependency>
                      <groupId>commons-jelly</groupId>
                      <artifactId>commons-jelly</artifactId>
                      <version>1.0-RC1</version>
                  </dependency>

          posted @ 2014-12-17 15:27 java光環 閱讀(3696) | 評論 (0)編輯 收藏

          如何成為一名軟件架構師?

          Daniel Mohl是一名專業的軟件工程師/架構師,他的興趣包括理解各種復雜的編程語言、企業應用架構以及如何搭建業務與技術,他通曉F#、C#、 CoffeeScript、JavaScript、Erlang、ASP.NET、MVC、WPF、WCF、Sliverlight、SQL Server等技術。有著多年的軟件開發經驗。

          他經常會被一些有潛力和有前途的程序員問到:“我要怎么做才能成為一名架構師?”說實話,這已經是老生常談的話題了,答案當然是視情況而定。不過他也根據自己的經驗,給大家一些建議,并且提供一些資料,助你快速走上架構師這條道路。

          下面是Daniel Mohl所提出的列表,供大家參考:

          首先,你必須不斷地尋求改善和提升自己。而提升自己的最好方法是閱讀,下面有幾本書,對我的軟件架構技能的提升很大。推薦給大家:

          除了閱讀,還有沒有其他需要注意的、或者在平時需要關注的東西呢?

          • 每隔一兩年學習一門新語言,F#是個不錯的選擇。
          • 選擇一個重點領域,但是盡可能對許多技術有個高層次的理解
          • 對你所關注的重點領域,開通一個博客并且繼續拓展該領域的知識面,讓自己漸漸成為一名專家。
          • 與不同的技術、編程語言、設計模式和結構等(甚至是它并沒有在日常中給予你直接的幫助)打交道。你永遠都不知道這些知識是否會在未來派上用場,但是對你絕對是有益無害。
          • 根據你的目標受眾來談論“語言”。作為一名架構師,你將會與各種各樣等級的人打交道,并且他們對技術的理解也會有所不同。所以要學會調整你的講解方式,做到因人制宜,讓他們能夠理解。
          • 閱讀博客、觀看/參加Twitter或G+、聽播客、讀雜志、參加用戶小組會議和技術會議,并且在這些會議上踴躍發言。這些都會給你帶來無窮無盡的知識和樂趣,建立自己的“品牌”和提供交流機會。
          • 紀律是關鍵。永遠做你自己最喜歡的工作,即使它聽起來不那么有趣。每天安排時間學習一些新的東西,即使是15分鐘也可,千萬不要被其他事情占用了這段時間。
          • 開啟博客之旅。我發現,與閱讀比起來,把東西寫下來會讓你有更深入的理解。
          • 利用好“閑暇時間”,這段時間可以拿本雜志讀讀,或者去聽聽播客等。
          • 了解各種可用的開發工具,可以使架構師的工作更好、更有效
          • 看許多不同項目里的架構
          • 學習各個項目的管理方法
          • 學習一些評估技術,對業務可以提供有價值的評估

          上面是作者總結出來的列表,雖然看起來有點枯燥無味,但在整個軟件開發過程中是樂趣無窮的。如果你還有更好的建議,歡迎與我們分享。

          來自:How to Become a Software Architect

          posted @ 2014-06-18 22:49 java光環| 編輯 收藏

          Maven3 在Mac平臺安裝

           

          Maven在Mac平臺安裝

          如果有安裝XCode, XCode會自動幫你安裝Maven, 安裝在/usr/share/java/

          安裝3.0.3

          1. http://maven.apache.org/download.html下載maven 3.0.3
          2. 將apache-maven-3.0.3-bin.tar.gz解壓縮到/usr/share/java
          3. 移除/usr/share下的softlink maven
          4. ln -s /usr/share/java/apache-maven-3.0.3 /usr/share/maven
          5. 修改~/.profile 設定M3_HOME=/usr/share/java/apache-maven-3.0.3

            注意事項

            不能同時設M2_HOME與M3_HOME兩個環境變數, 不然執行maven會出現以下的exception
            Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/plexus/classworlds/launcher/Launcher  Caused by: java.lang.ClassNotFoundException: org.codehaus.plexus.classworlds.launcher.Launcher   at java.net.URLClassLoader$1.run(URLClassLoader.java:202)   at java.security.AccessController.doPrivileged(Native Method)   at java.net.URLClassLoader.findClass(URLClassLoader.java:190)   at java.lang.ClassLoader.loadClass(ClassLoader.java:307)   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)   at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
            參考:http://cb.esast.com/cb/wiki/22945



            Installing Maven 3 on OS X

            1. Install Mac Ports
            2. Install Maven 3

            Open a terminal and type the following:

            sudo port install maven3 maven_select
            sudo maven_select maven3

          posted @ 2011-05-31 14:12 java光環 閱讀(3967) | 評論 (0)編輯 收藏

          jboss AS 使用websphere MQ 連接方式



          MBean Name: Domain Name: jboss.jca

          service: ConnectionFactoryBinding

          name: /wmq/XAQueueConnectionFactory
          MBean Java Class: org.jboss.resource.connectionmanager.ConnectionFactoryBindingService


          /** Whether to use the java naming context */
             protected boolean useJavaContext = true;


          src/main/org/jboss/resource/adapter/jms/inflow/JmsActivationSpec.java:
          Caused by: javax.jms.JMSException: MQJCA1018:Only one session per connection allowed.
          /** The maximum number of sessions */
             private int maxSession = 15;

          <tx-connection-factory>
              <jndi-name>/wmq/XAQueueConnectionFactory</jndi-name>
              <xa-transaction>
              </xa-transaction>
              <rar-name>wmq.jmsra.rar</rar-name>
              <connection-definition>javax.jms.ConnectionFactory</connection-definition>
              <config-property name="channel" type="java.lang.String">SYSTEM.ADMIN.SVRCONN</config-property>
              <config-property name="hostName" type="java.lang.String">192.168.123.20</config-property>
              <config-property name="port" type="java.lang.String">1420</config-property>
              <config-property name="queueManager" type="java.lang.String">QM.NODE.20</config-property>
              <config-property name="maxSession" type="java.lang.String">1</config-property>
              <use-java-context>false</use-java-context>
              <max-pool-size>20</max-pool-size>
            </tx-connection-factory>


          posted @ 2009-08-04 14:00 java光環 閱讀(849) | 評論 (0)編輯 收藏

          了解OptimalJ



          OptimalJ是一款高級的企業級應用開發環境,它使用成熟的模式(Pattern) 直接從可視化模型生成全面的、可運行的J2EE應用系統,實現了最好的實踐經驗并基于J2EE規則編寫代碼。使用OMG的模型驅動架構標準, OptimalJ幫助簡化開發,使架構師、設計人員和開發人員快速開發可靠的應用系統

          MDA的開發工具OptimalJ總共有三個版本:
          一、架構版本
          1、可以定制模型和增加、修改刪除轉換模式。
          2、涵蓋專業版本的所有功能。
          3、適合公司的架構師使用。
          二、專業版本
          1、開發PIM、PSM和代碼模型。
          2、涵蓋開發版本的所有功能。
          3、適合公司的分析和設計人員使用。
          三、開發版本
          1、可以只讀PIM、PSM模型,可以修改Free Block的代碼,并添加自己的代碼。
          2、可以調試、運行測試系統的功能。
          3、適合公司的開發人員使用。

          posted @ 2009-03-19 12:59 java光環 閱讀(299) | 評論 (0)編輯 收藏

          tomcat 如何跟蹤調試




          看了好多關于tomcat 如何跟蹤的文檔
          大多說要手工加上debug
          Tomcat:在catalina.bat中:%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS%后面加上
          -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044

          其實還有更簡單的做法:

          修改startup.sh
          在最后一行啟動代碼中加上  jpda 即可
          參考如下:
          exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"

          posted @ 2008-08-28 15:46 java光環 閱讀(1647) | 評論 (1)編輯 收藏

          主站蜘蛛池模板: 内乡县| 府谷县| 嫩江县| 金沙县| 永寿县| 涿州市| 寿光市| 武陟县| 黄龙县| 德庆县| 剑河县| 阜宁县| 柯坪县| 桃江县| 准格尔旗| 辽宁省| 平昌县| 邵武市| 江口县| 辽中县| 霍山县| 互助| 杭锦后旗| 双流县| 兴仁县| 阿合奇县| 潞城市| 庐江县| 封丘县| 黑水县| 弥渡县| 北碚区| 黄龙县| 土默特左旗| 东安县| 抚松县| 宜兴市| 东乡族自治县| 嘉峪关市| 彭山县| 武川县|