Browse Source

Increase Manager startup parameters -home

tags/1.1.0
shaozhuguang 5 years ago
parent
commit
f44405a7db
15 changed files with 169 additions and 55 deletions
  1. +3
    -3
      source/deployment/deployment-peer/pom.xml
  2. +16
    -4
      source/deployment/deployment-peer/src/main/resources/assembly.xml
  3. +3
    -3
      source/deployment/deployment-peer/src/main/resources/scripts/manager-shutdown.sh
  4. +0
    -9
      source/deployment/deployment-peer/src/main/resources/scripts/manager-start.sh
  5. +9
    -0
      source/deployment/deployment-peer/src/main/resources/scripts/manager-startup.sh
  6. +29
    -1
      source/manager/manager-booter/pom.xml
  7. +84
    -5
      source/manager/manager-booter/src/main/java/com/jd/blockchain/ump/UmpBooter.java
  8. +10
    -0
      source/manager/manager-booter/src/main/resources/META-INF/MANIFEST.MF
  9. +0
    -9
      source/manager/manager-booter/src/main/resources/scripts/jump-start.sh
  10. +0
    -16
      source/manager/manager-booter/src/main/resources/scripts/jump-stop.sh
  11. +3
    -1
      source/manager/manager-model/src/main/java/com/jd/blockchain/ump/model/PartiNode.java
  12. +3
    -1
      source/manager/manager-model/src/main/java/com/jd/blockchain/ump/model/config/LedgerInitConfig.java
  13. +7
    -1
      source/manager/manager-service/src/main/java/com/jd/blockchain/ump/service/SecurityServiceHandler.java
  14. +1
    -1
      source/manager/manager-service/src/main/resources/security.config
  15. +1
    -1
      source/manager/manager-web/src/main/java/com/jd/blockchain/ump/web/UmpConfiguration.java

+ 3
- 3
source/deployment/deployment-peer/pom.xml View File

@@ -25,11 +25,11 @@
<artifactId>runtime-modular-booter</artifactId> <artifactId>runtime-modular-booter</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<!--<dependency>
<dependency>
<groupId>com.jd.blockchain</groupId> <groupId>com.jd.blockchain</groupId>
<artifactId>ump-booter</artifactId>
<artifactId>manager-booter</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency>-->
</dependency>
<dependency> <dependency>
<groupId>com.jd.blockchain</groupId> <groupId>com.jd.blockchain</groupId>
<artifactId>storage-composite</artifactId> <artifactId>storage-composite</artifactId>


+ 16
- 4
source/deployment/deployment-peer/src/main/resources/assembly.xml View File

@@ -39,6 +39,18 @@
<include>com.jd.blockchain:deployment-peer</include> <include>com.jd.blockchain:deployment-peer</include>
</includes> </includes>
</dependencySet> </dependencySet>
<dependencySet>
<unpack>false</unpack>
<useProjectArtifact>true</useProjectArtifact>
<outputDirectory>manager</outputDirectory>
<includes>
<include>com.jd.blockchain:manager-booter</include>
<include>com.jd.blockchain:manager-model</include>
<include>com.jd.blockchain:manager-service</include>
<include>com.jd.blockchain:manager-web</include>
<include>com.jd.blockchain:ump-explorer</include>
</includes>
</dependencySet>
<dependencySet> <dependencySet>
<unpack>false</unpack> <unpack>false</unpack>
<useProjectArtifact>true</useProjectArtifact> <useProjectArtifact>true</useProjectArtifact>
@@ -53,11 +65,11 @@
<exclude>com.jd.blockchain:runtime-modular-booter</exclude> <exclude>com.jd.blockchain:runtime-modular-booter</exclude>
<exclude>com.jd.blockchain:peer</exclude> <exclude>com.jd.blockchain:peer</exclude>
<exclude>com.jd.blockchain:deployment-peer</exclude> <exclude>com.jd.blockchain:deployment-peer</exclude>
<exclude>com.jd.blockchain:ump-booter</exclude>
<exclude>com.jd.blockchain:manager-booter</exclude>
<exclude>com.jd.blockchain:manager-model</exclude>
<exclude>com.jd.blockchain:manager-service</exclude>
<exclude>com.jd.blockchain:manager-web</exclude>
<exclude>com.jd.blockchain:ump-explorer</exclude> <exclude>com.jd.blockchain:ump-explorer</exclude>
<exclude>com.jd.blockchain:ump-model</exclude>
<exclude>com.jd.blockchain:ump-service</exclude>
<exclude>com.jd.blockchain:ump-web</exclude>
</excludes> </excludes>
</dependencySet> </dependencySet>




source/deployment/deployment-peer/src/main/resources/scripts/manager-stop.sh → source/deployment/deployment-peer/src/main/resources/scripts/manager-shutdown.sh View File

@@ -4,13 +4,13 @@
BOOT_HOME=$(cd `dirname $0`;cd ../; pwd) BOOT_HOME=$(cd `dirname $0`;cd ../; pwd)


#获取进程PID #获取进程PID
PID=`ps -ef | grep $BOOT_HOME/ext/ump-booter | grep -v grep | awk '{print $2}'`
PID=`ps -ef | grep $BOOT_HOME/manager/manager-booter | grep -v grep | awk '{print $2}'`


#通过Kill命令将进程杀死 #通过Kill命令将进程杀死
if [ -z "$PID" ]; then if [ -z "$PID" ]; then
echo "Unable to find UMP PID. stop aborted."
echo "Unable to find JDChain Manager PID. stop aborted."
else else
echo "Start to kill PID = $PID ..." echo "Start to kill PID = $PID ..."
kill -9 $PID kill -9 $PID
echo "Unified Management Platform has been stopped ..."
echo "JDChain Manager has been stopped ..."
fi fi

+ 0
- 9
source/deployment/deployment-peer/src/main/resources/scripts/manager-start.sh View File

@@ -1,9 +0,0 @@
#!/bin/bash

HOME=$(cd `dirname $0`;cd ../; pwd)
UMP=$(ls $HOME/ext | grep ump-booter-)
if [ ! -n "UMP" ]; then
echo "Unified Management Platform Is Null !!!"
else
nohup java -jar -server -Djump.log=$HOME $HOME/ext/$UMP -p 8000 $* >$HOME/bin/jump.out 2>&1 &
fi

+ 9
- 0
source/deployment/deployment-peer/src/main/resources/scripts/manager-startup.sh View File

@@ -0,0 +1,9 @@
#!/bin/bash

HOME=$(cd `dirname $0`;cd ../; pwd)
UMP=$(ls $HOME/manager | grep manager-booter-)
if [ ! -n "UMP" ]; then
echo "JDChain Manager Is Null !!!"
else
nohup java -jar -server -Djump.log=$HOME $HOME/manager/$UMP -home $HOME -p 8000 $* >$HOME/bin/jump.out 2>&1 &
fi

+ 29
- 1
source/manager/manager-booter/pom.xml View File

@@ -82,6 +82,34 @@
</dependencies> </dependencies>


<build> <build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
<manifest>
<mainClass>com.jd.blockchain.ump.UmpBooter</mainClass>
<addClasspath>false</addClasspath>
<useUniqueVersions>false</useUniqueVersions>
</manifest>
</archive>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>

<!--<build>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
@@ -128,5 +156,5 @@
</resource> </resource>
</resources> </resources>


</build>
</build>-->
</project> </project>

+ 84
- 5
source/manager/manager-booter/src/main/java/com/jd/blockchain/ump/UmpBooter.java View File

@@ -1,11 +1,15 @@
package com.jd.blockchain.ump; package com.jd.blockchain.ump;


import com.jd.blockchain.ump.web.RetrievalConfigListener; import com.jd.blockchain.ump.web.RetrievalConfigListener;
import com.jd.blockchain.ump.web.UmpConfiguration;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;


import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Properties; import java.util.Properties;
@@ -13,11 +17,13 @@ import java.util.Properties;


public class UmpBooter { public class UmpBooter {


private static final String ARG_HOME = "-home";

private static final String ARG_PORT = "-p"; private static final String ARG_PORT = "-p";


private static final String ARG_HOST = "-h"; private static final String ARG_HOST = "-h";


private static final String CONFIG = "BOOT-INF" + File.separator + "classes" + File.separator + "config.properties";
private static final String CONFIG = "/config.properties";


private static final String CONFIG_APPLICATION = "BOOT-INF" + File.separator + "classes" + File.separator + "application.properties"; private static final String CONFIG_APPLICATION = "BOOT-INF" + File.separator + "classes" + File.separator + "application.properties";


@@ -33,9 +39,20 @@ public class UmpBooter {


private static final String CONFIG_PROP_DB_URL_DEFAULT = "rocksdb://#project#/jumpdb"; private static final String CONFIG_PROP_DB_URL_DEFAULT = "rocksdb://#project#/jumpdb";


private static String HOME_DIR = null;

public static void main(String[] args) { public static void main(String[] args) {
startServer(server(args));
System.out.println("Unified Management Platform Server Start SUCCESS !!!");
try {
// 设置相关参数
Server server = server(args);
// 加载libs/manager下的jar包
loadJars();
// 启动Server
startServer(server);
System.out.println("Unified Management Platform Server Start SUCCESS !!!");
} catch (Exception e) {
System.err.println(e);
}
} }


private static void startServer(Server server) { private static void startServer(Server server) {
@@ -66,9 +83,12 @@ public class UmpBooter {
springApplication.run(args); springApplication.run(args);
} }


private static Server server(String[] args) {
private static Server server(String[] args) throws Exception {
Server defaultServer = serverFromConfig(); Server defaultServer = serverFromConfig();
if (args == null || args.length == 0) { if (args == null || args.length == 0) {

// 获取当前Class所在路径
HOME_DIR = UmpBooter.class.getResource("").toURI().getPath();
return defaultServer; return defaultServer;
} }
String host = null; String host = null;
@@ -82,6 +102,8 @@ public class UmpBooter {
host = args[i + 1]; host = args[i + 1];
} else if (arg.equals(ARG_PORT)) { } else if (arg.equals(ARG_PORT)) {
port = Integer.parseInt(args[i + 1]); port = Integer.parseInt(args[i + 1]);
} else if (arg.equals(ARG_HOME)) {
HOME_DIR = args[i + 1];
} }
} }


@@ -98,7 +120,7 @@ public class UmpBooter {


private static Server serverFromConfig() { private static Server serverFromConfig() {
try { try {
InputStream inputStream = UmpBooter.class.getResourceAsStream(File.separator + CONFIG);
InputStream inputStream = UmpBooter.class.getResourceAsStream(CONFIG);
if (inputStream == null) { if (inputStream == null) {
System.err.println("InputStream is NULL !!!"); System.err.println("InputStream is NULL !!!");
} }
@@ -114,6 +136,55 @@ public class UmpBooter {
} }
} }


private static void loadJars() {
// 获取两个路径下所有的正确的Jar包
URL[] libsJars = totalURLs();

URLClassLoader libClassLoader = new URLClassLoader(libsJars, UmpBooter.class.getClassLoader());

Thread.currentThread().setContextClassLoader(libClassLoader);
}

public static URL[] totalURLs() {
List<URL> totalURLs = new ArrayList<>();
totalURLs.addAll(libsPathURLs());
totalURLs.addAll(managerPathURLs());
URL[] totalURLArray = new URL[totalURLs.size()];
return totalURLs.toArray(totalURLArray);
}

public static List<URL> libsPathURLs() {
try {
File libsDir = new File(HOME_DIR + File.separator + "libs");
File[] jars = libsDir.listFiles(f -> f.getName().endsWith(".jar") && f.isFile() && !f.getName().contains("-booter-"));
List<URL> libsPathURLs = new ArrayList<>();
if (jars != null && jars.length > 0) {
for (int i = 0; i < jars.length; i++) {
libsPathURLs.add(jars[i].toURI().toURL());
}
}
return libsPathURLs;
} catch (MalformedURLException e) {
throw new IllegalStateException(e.getMessage(), e);
}
}

public static List<URL> managerPathURLs() {
try {
File managerDir = new File(HOME_DIR + File.separator + "manager");
File[] jars = managerDir.listFiles(f -> f.getName().endsWith(".jar") && f.isFile());
List<URL> managerPathURLs = new ArrayList<>();
if (jars != null && jars.length > 0) {
for (int i = 0; i < jars.length; i++) {
managerPathURLs.add(jars[i].toURI().toURL());
}
}
return managerPathURLs;
} catch (MalformedURLException e) {
throw new IllegalStateException(e.getMessage(), e);
}
}

private static class Server { private static class Server {


private String host; private String host;
@@ -143,5 +214,13 @@ public class UmpBooter {
public void setPort(int port) { public void setPort(int port) {
this.port = port; this.port = port;
} }

public String getDbUrl() {
return dbUrl;
}

public void setDbUrl(String dbUrl) {
this.dbUrl = dbUrl;
}
} }
} }

+ 10
- 0
source/manager/manager-booter/src/main/resources/META-INF/MANIFEST.MF View File

@@ -0,0 +1,10 @@
Manifest-Version: 1.0
Created-By: 1.8.0
Built-By: shaozhuguang@jd.com
Extension-Name: JDChain
Specification-Title: JDChain
Specification-Vendor: JD Software Foundation
Implementation-Vendor: JD Software Foundation
Implementation-URL: http://ledger.jd.com
Build-Jdk: 1.8.0


+ 0
- 9
source/manager/manager-booter/src/main/resources/scripts/jump-start.sh View File

@@ -1,9 +0,0 @@
#!/bin/bash

HOME=$(cd `dirname $0`;cd ../; pwd)
UMP=$(ls $HOME/ext | grep ump-booter-)
if [ ! -n "UMP" ]; then
echo "Unified Management Platform Is Null !!!"
else
nohup java -jar -server -Djump.log=$HOME $HOME/ext/$UMP $* >$HOME/bin/jump.out 2>&1 &
fi

+ 0
- 16
source/manager/manager-booter/src/main/resources/scripts/jump-stop.sh View File

@@ -1,16 +0,0 @@
#!/bin/bash

#启动Home路径
BOOT_HOME=$(cd `dirname $0`;cd ../; pwd)

#获取进程PID
PID=`ps -ef | grep $BOOT_HOME/ext/ump-booter | grep -v grep | awk '{print $2}'`

#通过Kill命令将进程杀死
if [ -z "$PID" ]; then
echo "Unable to find UMP PID. stop aborted."
else
echo "Start to kill PID = $PID ..."
kill -9 $PID
echo "Unified Management Platform has been stopped ..."
fi

+ 3
- 1
source/manager/manager-model/src/main/java/com/jd/blockchain/ump/model/PartiNode.java View File

@@ -25,7 +25,9 @@ public class PartiNode {


configCharList.add(formatConfig(UmpConstant.PARTINODE_PUBKEY_FORMAT, pubKey)); configCharList.add(formatConfig(UmpConstant.PARTINODE_PUBKEY_FORMAT, pubKey));


configCharList.addAll(partiRoleConfigs);
if (partiRoleConfigs != null && !partiRoleConfigs.isEmpty()) {
configCharList.addAll(partiRoleConfigs);
}


configCharList.add(formatConfig(UmpConstant.PARTINODE_INIT_HOST_FORMAT, initHost)); configCharList.add(formatConfig(UmpConstant.PARTINODE_INIT_HOST_FORMAT, initHost));




+ 3
- 1
source/manager/manager-model/src/main/java/com/jd/blockchain/ump/model/config/LedgerInitConfig.java View File

@@ -61,7 +61,9 @@ public class LedgerInitConfig {


configChars.add(toConfigChars(UmpConstant.PARTINODE_COUNT, partiNodes.size())); configChars.add(toConfigChars(UmpConstant.PARTINODE_COUNT, partiNodes.size()));


configChars.addAll(securityConfigs);
if (securityConfigs != null && !securityConfigs.isEmpty()) {
configChars.addAll(securityConfigs);
}


for (PartiNode partiNode : partiNodes) { for (PartiNode partiNode : partiNodes) {
configChars.addAll(partiNode.toConfigChars(this.partiRolesConfigs)); configChars.addAll(partiNode.toConfigChars(this.partiRolesConfigs));


+ 7
- 1
source/manager/manager-service/src/main/java/com/jd/blockchain/ump/service/SecurityServiceHandler.java View File

@@ -1,6 +1,8 @@
package com.jd.blockchain.ump.service; package com.jd.blockchain.ump.service;


import com.jd.blockchain.ump.model.UmpConstant; import com.jd.blockchain.ump.model.UmpConstant;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;


import java.io.File; import java.io.File;
@@ -12,6 +14,8 @@ import java.util.Properties;
@Service @Service
public class SecurityServiceHandler implements SecurityService { public class SecurityServiceHandler implements SecurityService {


private static final Logger LOGGER = LoggerFactory.getLogger(SecurityServiceHandler.class);

static final String SECURITY_FILE = "security.config"; static final String SECURITY_FILE = "security.config";


private List<String> securityConfigs = new ArrayList<>(); private List<String> securityConfigs = new ArrayList<>();
@@ -34,6 +38,7 @@ public class SecurityServiceHandler implements SecurityService {


@Override @Override
public void init() { public void init() {

try { try {
// 读取配置文件中的内容 // 读取配置文件中的内容
InputStream currentFileInputStream = SecurityServiceHandler.class.getResourceAsStream( InputStream currentFileInputStream = SecurityServiceHandler.class.getResourceAsStream(
@@ -78,7 +83,8 @@ public class SecurityServiceHandler implements SecurityService {
participantRoleConfigs.add(propBuild(UmpConstant.SECURITY_PARTI_ROLES_POLICY, partiRolesPolicyValue)); participantRoleConfigs.add(propBuild(UmpConstant.SECURITY_PARTI_ROLES_POLICY, partiRolesPolicyValue));


} else { } else {
throw new IllegalStateException("Can not find Properties from security.config");
// 打印日志即可
LOGGER.error("Can not find Properties from {}", SECURITY_FILE);
} }
} }




+ 1
- 1
source/manager/manager-service/src/main/resources/security.config View File

@@ -1,4 +1,4 @@
security.roles=DEFAULT, ADMIN, MANAGER, GUEST
#security.roles=DEFAULT, ADMIN, MANAGER, GUEST


security.role.DEFAULT.ledger-privileges=REGISTER_USER, REGISTER_DATA_ACCOUNT security.role.DEFAULT.ledger-privileges=REGISTER_USER, REGISTER_DATA_ACCOUNT




source/manager/manager-booter/src/main/java/com/jd/blockchain/ump/UmpConfiguration.java → source/manager/manager-web/src/main/java/com/jd/blockchain/ump/web/UmpConfiguration.java View File

@@ -1,4 +1,4 @@
package com.jd.blockchain.ump;
package com.jd.blockchain.ump.web;




import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;

Loading…
Cancel
Save