2015年8月31日星期一

Fuse_020:Fuse 6 开发培训


课程名称:JBoss Fuse 6 开发培训
培训对象:Java开发人员
培训时间:1
第一天
0930
1200
主题:Camel介绍
演示:安装与配置JBoss Developer Studio 8.1
演示:创建第一个 Fuse Project
演示:运行并部署应用
演示:创建自定义的Processor
主题:Enterprise Integration Pattern介绍
演示:使用Content-Based-Route Pattern
演示:使用Splitter Pattern
演示:使用Aggregator Pattern
演示:使用Recipient List Pattern
1200
1330
午餐
1330
1730
主题:数据转换
演示:CSV Java Object 互相转换
演示:XML Java Object 互相转换
演示:使用Velocity 模板
演示:使用Type Converter
演示:调用Java Bean
演示:使用FTP组件
演示:使用In-Memory Message组件
演示:使用Logging组件
演示:使用JPA组件
演示:使用Timer组件
演示:使用Http组件
演示:使用JMSActiveMQ)组件
演示:使用Web Service组件
主题:异常处理
演示:异常处理
主题:多线程与事务
演示:多线程
演示:事务处理
演示:一个订单处理流程的例子

MAC_035:使用 Maven + Nexus + SVN + Jenkins 搭建持续集成环境

环境:MAC OS X 10.9.3 + JDK 1.7.0 Update 55 + Maven 3.2.1 + Svnserve 1.7.1 + Nexus 2.8.0-05 + Jenkins 1.568

本文只介绍搭建步骤,不介绍原理,不清楚原理的请参考《Maven实战》。

1. 安装 JDK

2. 安装 Maven 
下载地址:http://maven.apache.org/。
下载后,解压到一个目录下即可。

配置环境脚本(setJdk7.sh)内容如下:
#!/bin/sh

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar
export ANT_HOME=/Users/maping/Apache/ant
export MAVEN_HOME=/Users/maping/Apache/maven
export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$MAVEN_HOME/bin:$PATH

这里为了方便,我是用了目录软连接:
ln -s maven-3.2.1 maven
以后Maven升级后,比如升到了3.2.2版本,只需执行如下命令,而环境脚本无需修改:
rm maven
ln -s maven-3.2.2 maven

安装好后,可以使用:mvn -v 查看Maven版本,确认安装成功。
或者使用:mvn help:system 查看系统环境。

3. 安装 Nexus
Nexus将作为Maven的私服,下载地址:http://www.sonatype.org/nexus/。
我下载的是:nexus-2.8.0-05-bundle.tar.gz,解压后有两个目录:nexus-2.8.0-05和sonatype-work。
nexus-2.8.0-05是会随版本变化的,而sonatype-work是固定的,每个版本都有这个目录,包含配置文件、日志文件、仓库文件。
进入Nexus的bin目录下,执行
(1)前台启动 Nexus:./nexus console
(2)停止后台 Nexus:./nexus stop
(3)后台启动 Nexus:./nexus start
(4)查看 Nexus 状态:./nexus status
(5)后台重启 Nexus:./nexus restart

访问:http://localhost:8081/nexus/,管理员账户默认:admin/admin123。



如果想要修改Nexus默认的8081端口,修改nexus-2.8.0-05/conf/nexus.properties即可。

3. 修改~/.M2/settings.xml,让Maven从Nexus下载构件。
完整的settings.xml内容如下:

<?xml version=“1.0” encoding=“UTF-8”?>

<settings xmlns=“http://maven.apache.org/SETTINGS/1.0.0” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=“http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd”>
 
    <servers>
        <server>
            <id>nexus-releases</id>
            <username>admin</username>
            <password>welcome1</password>
        </server>
        <server>
            <id>nexus-snapshots</id>
            <username>admin</username>
            <password>welcome1</password>
        </server>  
    </servers>
 
    <mirrors>
        <mirror>
            <id>nexus</id>
            <mirrorOf>*</mirrorOf>
            <url>http://localhost:8081/nexus/content/groups/public/</url>
        </mirror>
    </mirrors>
         
    <profiles>
     
        <!— Configure the Nexus repository —>
        <profile>
            <id>nexus</id>
            <repositories>
                <repository>
                    <id>nexus</id>
                    <name>Nexus</name>
                    <layout>default</layout>
                    <url>http://localhost:8081/nexus/content/groups/public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
     
            <pluginRepositories>
                <pluginRepository>
                    <id>nexus</id>
                    <name>Nexus</name>
                    <layout>default</layout>
                    <url>http://localhost:8081/nexus/content/groups/public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
     
    <activeProfiles>
        <activeProfile>nexus</activeProfile>
    </activeProfiles>

</settings>

这样配置之后,所有的构件都是从私服上获取,私服上没有,就从公共的仓库获取,并且获取后上传到在私服上。

4. 安装 Jenkins
下载地址:http://jenkins-ci.org/。我下载的是war文件:jenkins.war。
启动Jenkins:java -jar jenkins.war --httpPort=8082

5. 安装 Svnserve 
Svnserve是一个Subversion服务器软件,默认已经安装到了MAC OS X中。
使用命令:svnserve —version 查看svnserve版本。
(1)创建SVN Repository:svnadmin create /Users/maping/svn/repository
(2)导入已有的Maven项目:svn import -m "initial import" /Users/maping/NetBeansProjects/Nb8/MavenEnterpriseApp file:///Users/maping/svn/repository
(3)启动Svnserve:svnserve -d -r /Users/maping/svn/repository
或者 svnserve -d -r /Users/maping/svn/repository --listen-host 0.0.0.0
(4)查看SVN Repository:svn list svn://localhost/MavenEnterpriseApp
或者指定IP地址:svn list svn://192.168.0.101/MavenEnterpriseApp

6. 配置Jenkins
(1)全局配置:JDK、ANT、Maven、Jenkins。



(2)创建项目,配置项目:SVN,SVM Poll,Maven Goals。


 (3)选择Bulid Now,如果没有错误,就说明环境搭建成功!

说明:我的项目MavenEnterpriseApp是使用NetBeans8开发的。
以后在NetBeans中修改代码后,可以在Jenkins中随时Build,这里设置为每隔15分钟自动Build。

参考文献:
1. 《Maven实战》,是一本好书,严重推荐。
2. https://netbeans.org/kb/docs/javaee/maven-entapp_zh_CN.html

2015年8月30日星期日

EAP_032:EAP 6 开发培训课程


课程名称:JBoss EAP 6 开发培训
培训对象:Java EE 6开发人员
培训时间:3
第一天
0930
1200
主题:Maven 介绍
演示:Maven 基本使用
演示:Maven 高级使用
1200
1330
午餐
1330
1730
演示:安装与配置JBoss Developer Studio 8.1
主题:Java Persistence API介绍
演示:使用 JPA Entities
主题:Validation 介绍
演示:使用Validation
演示:开发JBTravel 应用之数据层服务
第二天
0930
1200
主题:CDI介绍
演示:使用CDI 开发
主题:Managed Bean介绍
演示:使用Managed Bean开发
演示:开发JBTravel 应用之使用CDI
1200
1330
午餐
1330
1730
主题:EJB介绍
演示:开发 Stateless Session Bean
演示:开发 Stateful Session Bean
主题:EJB 高级特性介绍
演示:使用EJB 安全特性
演示:开发JBTravel 应用之使用EJB
第三天
0930
1200
主题:介绍JSF2
实验:使用JSF2开发简单应用
主题:介绍JSF2 生命周期
主题:介绍JSF2 组件
演示:使用JSF2组件
主题:Converters Validators 介绍
演示:使用Converters Validators
主题:Web应用安全介绍
演示:开发登陆表单
演示:打包和发布Web应用
演示:开发JBTravel 应用之使用JSF2 开发Web界面
1200
1330
午餐
1330
1730
主题:Web Service 介绍
演示:开发 JAX-WS 服务
演示:开发 JAX-RS 服务
演示:开发JBTravel 应用之使用Web Service
主题:JMS介绍
演示:开发 JMS Message Driven Bean

EAP_031:EAP 6 高级管理培训


课程名称:JBoss EAP 6 高级管理培训
培训对象:JBoss EAP 6 运维管理人员
培训时间:1


0930
1200
演示:HornetQ 持久化配置
演示:HornetQ 安全配置
演示:HornetQ 集群配置
1200
1330
午餐
1330
1730
演示:按角色分配访问控制台权限
演示:加密 Data Source 口令(使用vault 方式)
演示:配置 SSL
演示:配置 SSO
演示:使用JMX监控
主题:调优与故障诊断