Skip to content

Commit

Permalink
Merge 7bead3a into bd8b72a
Browse files Browse the repository at this point in the history
  • Loading branch information
JoeKerouac committed Apr 12, 2018
2 parents bd8b72a + 7bead3a commit 653c350
Show file tree
Hide file tree
Showing 46 changed files with 1,810 additions and 110 deletions.
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

0 comments on commit 653c350

Please sign in to comment.