/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.util.Properties;
public class MavenWrapperDownloader {
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
private static final String DEFAULT_DOWNLOAD_URL =
"https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
/**
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
* use instead of the default one.
*/
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
".mvn/wrapper/maven-wrapper.properties";
/**
* Path where the maven-wrapper.jar will be saved to.
*/
private static final String MAVEN_WRAPPER_JAR_PATH =
".mvn/wrapper/maven-wrapper.jar";
/**
* Name of the property which should be used to override the default download url for the wrapper.
*/
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
public static void main(String args[]) {
System.out.println("- Downloader started");
File baseDirectory = new File(args[0]);
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
// If the maven-wrapper.properties exists, read it and check if it contains a custom
// wrapperUrl parameter.
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if(mavenWrapperPropertyFile.exists()) {
FileInputStream mavenWrapperPropertyFileInputStream = null;
try {
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
Properties mavenWrapperProperties = new Properties();
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
} catch (IOException e) {
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
} finally {
try {
if(mavenWrapperPropertyFileInputStream != null) {
mavenWrapperPropertyFileInputStream.close();
}
} catch (IOException e) {
// Ignore ...
}
}
}
System.out.println("- Downloading from: : " + url);
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
if(!outputFile.getParentFile().exists()) {
if(!outputFile.getParentFile().mkdirs()) {
System.out.println(
"- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
}
}
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
try {
downloadFileFromURL(url, outputFile);
System.out.println("Done");
System.exit(0);
} catch (Throwable e) {
System.out.println("- Error downloading");
e.printStackTrace();
System.exit(1);
}
}
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
URL website = new URL(urlString);
ReadableByteChannel rbc;
rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(destination);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
SpringBoot 服务调用异常重试补偿处理
共76个文件
java:19个
class:17个
prefs:8个
1星 需积分: 47 13 下载量 176 浏览量
2019-08-30
13:44:41
上传
评论
收藏 164KB ZIP 举报
温馨提示
1. 启动Demo01和Demo02项目 2. 请求 地址:127.0.0.1:8080/demo01/send/post 报文:{"sleepNum":5} 3. 测试目的 demo02 超时 demo02 无法访问 重试机制 超时、无法访问执行补偿操作 ----------------------------- 操作1. 传入的参数为demo02的sleep时间, demo01的请求超时时间为1秒, 这时候demo01出现超时异常, 直接进入补偿处理 操作2. 停止demo02, 请求demo01,出现网络异常, demo01会执行三次重试后在进行补偿处理
资源推荐
资源详情
资源评论
收起资源包目录
demo.zip (76个子文件)
demo
demo02
.project 683B
mvnw.cmd 6KB
HELP.md 886B
mvnw 9KB
src
test
java
com
example
demo
Demo02ApplicationTests.java 333B
main
resources
application.properties 17B
logback-spring.xml 10KB
templates
static
java
com
example
demo
service
ReceiveService.java 1KB
controller
ReceiveController.java 2KB
core
MyBaseException.java 2KB
SystemErrorEnum.java 1KB
util
SendBean.java 484B
bean
HelloSendBean.java 492B
HelloReceiveBean.java 873B
Demo02Application.java 379B
target
classes
application.properties 17B
com
example
demo
service
ReceiveService.class 2KB
controller
ReceiveController.class 2KB
core
MyBaseException.class 1KB
SystemErrorEnum.class 2KB
util
SendBean.class 817B
Demo02Application.class 796B
bean
HelloSendBean.class 549B
HelloReceiveBean.class 1KB
META-INF
MANIFEST.MF 159B
maven
com.example
demo02
pom.properties 212B
pom.xml 3KB
logback-spring.xml 10KB
test-classes
com
example
demo
Demo02ApplicationTests.class 628B
.settings
org.eclipse.m2e.core.prefs 93B
org.eclipse.jdt.core.prefs 485B
org.springframework.ide.eclipse.prefs 63B
org.eclipse.core.resources.prefs 150B
.mvn
wrapper
MavenWrapperDownloader.java 5KB
maven-wrapper.jar 47KB
maven-wrapper.properties 116B
pom.xml 3KB
.classpath 1KB
.gitignore 333B
demo01
.project 683B
mvnw.cmd 6KB
HELP.md 886B
mvnw 9KB
src
test
java
com
example
demo
Demo01ApplicationTests.java 333B
main
resources
application.properties 16B
logback-spring.xml 10KB
templates
static
java
com
example
demo
service
HelloSendService.java 4KB
Demo01Application.java 563B
controller
HelloSendController.java 2KB
core
MyBaseException.java 2KB
SystemErrorEnum.java 1KB
bean
HelloSendBean.java 492B
HelloReceiveBean.java 874B
target
classes
application.properties 16B
com
example
demo
service
HelloSendService.class 4KB
Demo01Application.class 1KB
controller
HelloSendController.class 2KB
core
MyBaseException.class 1KB
SystemErrorEnum.class 2KB
bean
HelloSendBean.class 549B
HelloReceiveBean.class 1KB
META-INF
MANIFEST.MF 159B
maven
com.example
demo01
pom.properties 212B
pom.xml 3KB
logback-spring.xml 10KB
test-classes
com
example
demo
Demo01ApplicationTests.class 628B
.settings
org.eclipse.m2e.core.prefs 93B
org.eclipse.jdt.core.prefs 485B
org.springframework.ide.eclipse.prefs 63B
org.eclipse.core.resources.prefs 150B
.mvn
wrapper
MavenWrapperDownloader.java 5KB
maven-wrapper.jar 47KB
maven-wrapper.properties 116B
pom.xml 3KB
.classpath 1KB
.gitignore 333B
共 76 条
- 1
资源评论
- Hui忆里的疯狂、2020-04-27哪里有重试机制了?????
tianzt
- 粉丝: 0
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功