Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

change maven plugin #59

Closed
wants to merge 25 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
ae4cb7b
1.7.0.20180401
Apr 1, 2018
52e3ecf
优化代码,删除不必要的强转,优化一处循环
JoeKerouac Apr 1, 2018
227b4f2
更改并发逻辑
JoeKerouac Apr 1, 2018
20b8d6a
更改测试逻辑(由于更改并发逻辑导致的,主要是由于ModuleManager接口的register方法造成的,原来当注册重复模块时会返回nu…
JoeKerouac Apr 1, 2018
7c575d0
添加并发BUG测试用例
JoeKerouac Apr 1, 2018
838468a
更改并发BUG测试用例
JoeKerouac Apr 1, 2018
17db41f
更改接口定义,删除抛出异常声明
JoeKerouac Apr 2, 2018
68a7357
更改Map为ConcurrentMap,读操作不加锁
JoeKerouac Apr 2, 2018
af1ff42
删除多余导包
JoeKerouac Apr 2, 2018
a7f2221
更改测试代码
JoeKerouac Apr 2, 2018
23cda22
使用synchronize代替lock
JoeKerouac Apr 2, 2018
26400dd
更改StringBuilder为直接使用+连接
JoeKerouac Apr 2, 2018
6e3065a
删除无用依赖spring-aop
JoeKerouac Apr 3, 2018
091411e
删除common-logging依赖(只保留slf4j,实现由用户系统提供)
JoeKerouac Apr 3, 2018
5d34487
修改兼容性问题(原来的写法不兼容JDK6)
JoeKerouac Apr 4, 2018
93ad8b7
Merge remote-tracking branch 'origin/1.7.0.20180401' into 1.7.0.20180401
JoeKerouac Apr 4, 2018
fef26da
增加模块加载时的拦截扩展点
JoeKerouac Apr 4, 2018
a402b94
修复兼容性问题(部分语法不兼容JDK6)
JoeKerouac Apr 4, 2018
8fc3457
修改判断BUG,增加单元测试
JoeKerouac Apr 4, 2018
c1f2497
修改POM定义,强制定义当前编译JDK版本为1.6(原来为写死的1.8)
JoeKerouac Apr 4, 2018
76718a6
添加模块间调用(当前只有在模块使用注解的形式时才支持),添加模块间调用的单元测试
JoeKerouac Apr 4, 2018
52226d2
将测试中的拦截实现移动到主包中
JoeKerouac Apr 8, 2018
9311f61
删除bin目录
JoeKerouac Apr 10, 2018
184f96d
增加一键生成module
JoeKerouac Apr 10, 2018
7bead3a
更改maven plugin(将GPG插件移入profile中)
JoeKerouac Apr 12, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 1 addition & 2 deletions .gitignore
Expand Up @@ -4,5 +4,4 @@
/.classpath
/.idea
/.DS_Store
*.iml
/bin/
*.iml
54 changes: 54 additions & 0 deletions bin/create-project.bat
@@ -0,0 +1,54 @@
@echo off
echo --------------------------------------------
echo Create Titan Module Batch
for /f "tokens=2 delims==" %%a in ('wmic path win32_operatingsystem get LocalDateTime /value') do (
set t=%%a
)
set Today=%t:~0,4%-%t:~4,2%-%t:~6,2%
echo @version 1.0.%Today%
echo @author Administrator
echo --------------------------------------------
set /p systemName=Please insert your Titan Module English name��
echo --------------------------------------------
echo Titan Module creating��Please wait...
echo --------------------------------------------
md %systemName%\src\main\java\com\mybank\bkcommon\collector\%systemName%\collector
md %systemName%\src\main\java\com\mybank\bkcommon\collector\%systemName%\model
md %systemName%\src\main\resources\META-INF\spring
md %systemName%\src\main\resources\view
md %systemName%\src\test\java\com\mybank\bkcommon\collector\%systemName%
md %systemName%\src\test\resources\
copy project-template\helloworld.vm %systemName%\src\main\resources\view\helloworld.vm
copy project-template\HelloWorld.java %systemName%\src\main\java\com\mybank\bkcommon\collector\%systemName%\model\HelloWorld.java
copy project-template\HelloWorldCollector.java %systemName%\src\main\java\com\mybank\bkcommon\collector\%systemName%\collector\HelloWorldCollector.java
copy project-template\pom-template.xml %systemName%\pom.xml
copy project-template\integration.xml %systemName%\src\main\resources\META-INF\spring\integration.xml
copy project-template\QuickStarter-template.java %systemName%\src\test\java\com\mybank\bkcommon\collector\%systemName%\QuickStarter.java
copy project-template\integration-test.xml %systemName%\src\test\resources\integration-test.xml
copy project-template\spring-template.xml %systemName%\src\main\resources\META-INF\spring\%systemName%.xml
copy project-template\log4j-template.xml %systemName%\src\test\resources\log4j.xml
copy project-template\log4j-main-template.xml %systemName%\src\main\resources\log4j.xml
setlocal Enabledelayedexpansion
call:changePath %systemName%\src\test\java\com\mybank\bkcommon\collector\%systemName%\QuickStarter.java
call:changePath %systemName%\pom.xml
call:changePath %systemName%\src\test\resources\integration-test.xml
call:changePath %systemName%\src\main\resources\META-INF\spring\%systemName%.xml
call:changePath %systemName%\src\main\java\com\mybank\bkcommon\collector\%systemName%\model\HelloWorld.java
call:changePath %systemName%\src\main\java\com\mybank\bkcommon\collector\%systemName%\collector\HelloWorldCollector.java
call:changePath %systemName%\src\main\resources\log4j.xml
endlocal
echo "Create Titan Module %systemName% Finish"
pause

:changePath
set pacStr=${package_name}
set proStr=${project_name}
set targetStr=%systemName%
for /f "tokens=* delims=��" %%i in (%1) do (
set var=%%i
set var=!var:%pacStr%=%targetStr%!
set var=!var:%proStr%=%targetStr%!
echo !var!>>$
)
move $ %1
goto:eof
57 changes: 57 additions & 0 deletions bin/create-project.sh
@@ -0,0 +1,57 @@
name=$1

if [ -z "$name" ]; then
echo "need name"
exit 2
fi

URL="https://private-alipayobjects.alipay.com/alipay-rmsdeploy-image/rmsportal/xJXQkCxicEVnAvkHWXgI.gz"
installer_file="project-template.tar.gz"

function download {
echo "Downloading Titan project template: $URL"
curl -# $URL > $installer_file || exit
}

function unzip {
echo "unzip $installer_file"
tar -zxvf $installer_file
}

function createProject
{
mkdir -p $name/src/main
mkdir -p $name/src/main/java/com/mybank/bkcommon/collector/$name
mkdir -p $name/src/main/java/com/mybank/bkcommon/collector/$name/collector
mkdir -p $name/src/main/java/com/mybank/bkcommon/collector/$name/model
mkdir -p $name/src/main/resources/META-INF/spring
mkdir -p $name/src/main/resources/view

mkdir -p $name/src/test
mkdir -p $name/src/test/java/com/mybank/bkcommon/collector/$name/util
mkdir -p $name/src/test/resources/

cp project-template/helloworld.vm $name/src/main/resources/view/helloworld.vm
cp project-template/HelloWorld.java $name/src/main/java/com/mybank/bkcommon/collector/$name/model/HelloWorld.java
cp project-template/HelloWorldCollector.java $name/src/main/java/com/mybank/bkcommon/collector/$name/collector/HelloWorldCollector.java
cp project-template/pom-template.xml $name/pom.xml
cp project-template/integration.xml $name/src/main/resources/META-INF/spring/integration.xml
cp project-template/QuickStarter-template.java $name/src/test/java/com/mybank/bkcommon/collector/$name/QuickStarter.java
cp project-template/integration-test.xml $name/src/test/resources/integration-test.xml
cp project-template/spring-template.xml $name/src/main/resources/META-INF/spring/$name.xml
cp project-template/log4j-template.xml $name/src/test/resources/log4j.xml
cp project-template/log4j-main-template.xml $name/src/main/resources/log4j.xml

sed -i '' 's/${package_name}/'$name'/g' $name/src/test/java/com/mybank/bkcommon/collector/$name/QuickStarter.java
sed -i '' 's/${project_name}/'$name'/g' $name/pom.xml
sed -i '' 's/${project_name}/'$name'/g' $name/src/test/resources/integration-test.xml
sed -i '' 's/${project_name}/'$name'/g' $name/src/main/resources/META-INF/spring/$name.xml
sed -i '' 's/${package_name}/'$name'/g' $name/src/main/java/com/mybank/bkcommon/collector/$name/model/HelloWorld.java
sed -i '' 's/${package_name}/'$name'/g' $name/src/main/java/com/mybank/bkcommon/collector/$name/collector/HelloWorldCollector.java
sed -i '' 's/${project_name}/'$name'/g' $name/src/main/resources/log4j.xml
echo "Create Titan Module $name Finish"
}

download
unzip
createProject
Binary file added bin/template/project-template.tar
Binary file not shown.
84 changes: 42 additions & 42 deletions jarslink-api/pom.xml
Expand Up @@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.alipay.jarslink</groupId>
<artifactId>jarslink-api</artifactId>
<version>1.6.1.20180301</version>
<version>1.7.0.20180401</version>
<name>Alipay JarsLink API</name>
<url>https://github.com/alibaba/jarslink</url>
<packaging>jar</packaging>
Expand Down Expand Up @@ -51,22 +51,12 @@
</licenses>

<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
Expand Down Expand Up @@ -105,37 +95,10 @@
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- maven -->
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.7</version>
<extensions>true</extensions>
<configuration>
<serverId>ossrh</serverId>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>

<!-- GPG -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>

<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
Expand Down Expand Up @@ -177,8 +140,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
Expand Down Expand Up @@ -265,6 +228,7 @@
</plugin>
</plugins>
</build>

<distributionManagement>
<snapshotRepository>
<id>ossrh</id>
Expand All @@ -276,7 +240,43 @@
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</distributionManagement>

<profiles>
<profile>
<!--deploy profile-->
<id>deploy</id>
<build>
<plugins>
<!-- maven -->
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.7</version>
<extensions>true</extensions>
<configuration>
<serverId>ossrh</serverId>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>

<!-- GPG -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
@@ -0,0 +1,19 @@
package com.alipay.jarslink.api;

import org.springframework.context.ConfigurableApplicationContext;

/**
* 加载模块时在创建完模块的spring-context后刷新spring-context前调用,用于做一些拦截处理
*
* @author joe
* @version 2018.04.04 10:54
*/
public interface ApplicationContextAware extends JarslinkAware{
/**
* 加载模块时在创建完模块的spring-context后刷新spring-context前调用
*
* @param context 当前加载的模块对应的configurableApplicationContext
* @param moduleConfig 当前加载的模块对应的配置
*/
void setConfigurableApplicationContext(ConfigurableApplicationContext context, ModuleConfig moduleConfig);
}
@@ -0,0 +1,19 @@
package com.alipay.jarslink.api;

import org.springframework.context.ConfigurableApplicationContext;

/**
* 加载模块时在创建完模块的spring-context并且刷新spring-context后调用,用于做一些拦截处理
*
* @author joe
* @version 2018.04.04 10:53
*/
public interface ApplicationContextPostProcessor extends JarslinkPostProcessor {
/**
* 加载模块时在创建完模块的spring-context并且刷新spring-context后调用
*
* @param context 当前加载的模块对应的configurableApplicationContext
* @param moduleConfig 当前加载的模块对应的配置
*/
void setConfigurableApplicationContext(ConfigurableApplicationContext context, ModuleConfig moduleConfig);
}
@@ -0,0 +1,10 @@
package com.alipay.jarslink.api;

/**
* 所有Aware的顶级接口
*
* @author joe
* @version 2018.04.04 11:05
*/
public interface JarslinkAware {
}
@@ -0,0 +1,10 @@
package com.alipay.jarslink.api;

/**
* 所有PostProcessor的顶级接口
*
* @author joe
* @version 2018.04.04 11:06
*/
public interface JarslinkPostProcessor {
}
@@ -0,0 +1,16 @@
package com.alipay.jarslink.api;

/**
* 在加载模块前调用
*
* @author joe
* @version 2018.04.04 10:59
*/
public interface ModuleAware extends JarslinkAware {
/**
* 加载模块前调用
*
* @param moduleConfig 模块配置
*/
void setModuleConfig(ModuleConfig moduleConfig);
}
Expand Up @@ -17,6 +17,7 @@
*/
package com.alipay.jarslink.api;

import com.google.common.base.Function;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import org.apache.commons.lang3.builder.EqualsBuilder;
Expand All @@ -28,7 +29,6 @@
import java.util.Map;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArraySet;
import java.util.stream.Collectors;

import static com.google.common.base.Preconditions.checkNotNull;

Expand Down Expand Up @@ -62,7 +62,7 @@ public class ModuleConfig extends ToStringObject {
* <p>
* <strong>xml中的bean不能依赖注解bean,注解bean可以依赖xml定义的bean</strong>
*/
private Set<String> scanPackages = new CopyOnWriteArraySet<>();
private Set<String> scanPackages = new CopyOnWriteArraySet<String>();

/**
* 模块的版本,如1.0.0.20120609 版本变化会触发模块重新部署
Expand Down Expand Up @@ -102,7 +102,13 @@ public List<URL> getModuleUrl() {

public List<String> getModuleUrlPath() {
List<String> moduleUrls = Lists.newArrayList();
moduleUrls.addAll(moduleUrl.stream().map(URL::toString).collect(Collectors.toList()));
List<String> list = Lists.transform(moduleUrl, new Function<URL, String>() {
@Override
public String apply(URL input) {
return input.toString();
}
});
moduleUrls.addAll(list);
return moduleUrls;
}

Expand Down