mirror of
https://github.com/hs-web/hsweb-framework.git
synced 2026-06-01 10:21:26 +08:00
优化结构
This commit is contained in:
@@ -6,17 +6,18 @@
|
||||
<artifactId>hsweb-system-file</artifactId>
|
||||
<groupId>org.hswebframework.web</groupId>
|
||||
<version>3.0.0-RC-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>hsweb-system-file-entity</artifactId>
|
||||
<description>文件服务api</description>
|
||||
<artifactId>hsweb-system-file-api</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.hswebframework.web</groupId>
|
||||
<artifactId>hsweb-commons-entity</artifactId>
|
||||
<artifactId>hsweb-commons-service-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
@@ -1,27 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>hsweb-system-file-dao</artifactId>
|
||||
<groupId>org.hswebframework.web</groupId>
|
||||
<version>3.0.0-RC-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>hsweb-system-file-dao-api</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.hswebframework.web</groupId>
|
||||
<artifactId>hsweb-system-file-entity</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hswebframework.web</groupId>
|
||||
<artifactId>hsweb-commons-dao-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
@@ -1,26 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>hsweb-system-file-dao</artifactId>
|
||||
<groupId>org.hswebframework.web</groupId>
|
||||
<version>3.0.0-RC-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>hsweb-system-file-dao-mybatis</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.hswebframework.web</groupId>
|
||||
<artifactId>hsweb-system-file-dao-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hswebframework.web</groupId>
|
||||
<artifactId>hsweb-commons-dao-mybatis</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
@@ -1,18 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>hsweb-system-file</artifactId>
|
||||
<groupId>org.hswebframework.web</groupId>
|
||||
<version>3.0.0-RC-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>hsweb-system-file-dao</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<modules>
|
||||
<module>hsweb-system-file-dao-api</module>
|
||||
<module>hsweb-system-file-dao-mybatis</module>
|
||||
</modules>
|
||||
</project>
|
||||
@@ -3,13 +3,15 @@
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>hsweb-system-file-service</artifactId>
|
||||
<artifactId>hsweb-system-file</artifactId>
|
||||
<groupId>org.hswebframework.web</groupId>
|
||||
<version>3.0.0-RC-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>hsweb-system-file-service-simple</artifactId>
|
||||
<artifactId>hsweb-system-file-local</artifactId>
|
||||
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
@@ -19,7 +21,7 @@
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hswebframework.web</groupId>
|
||||
<artifactId>hsweb-system-file-service-api</artifactId>
|
||||
<artifactId>hsweb-system-file-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@@ -28,5 +30,10 @@
|
||||
<version>0.2.0</version>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hswebframework.web</groupId>
|
||||
<artifactId>hsweb-commons-dao-mybatis</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
@@ -3,18 +3,21 @@
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>hsweb-system-file-service</artifactId>
|
||||
<artifactId>hsweb-system-file</artifactId>
|
||||
<groupId>org.hswebframework.web</groupId>
|
||||
<version>3.0.0-RC-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>hsweb-system-file-service-oauth2</artifactId>
|
||||
<artifactId>hsweb-system-file-oauth2</artifactId>
|
||||
|
||||
<description>基于hsweb oauth2的文件服务,通过oauth2调用远程文件服务.</description>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.hswebframework.web</groupId>
|
||||
<artifactId>hsweb-system-file-service-api</artifactId>
|
||||
<artifactId>hsweb-system-file-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@@ -1,26 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>hsweb-system-file-service</artifactId>
|
||||
<groupId>org.hswebframework.web</groupId>
|
||||
<version>3.0.0-RC-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>hsweb-system-file-service-api</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.hswebframework.web</groupId>
|
||||
<artifactId>hsweb-commons-service-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hswebframework.web</groupId>
|
||||
<artifactId>hsweb-system-file-dao-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
@@ -1,109 +0,0 @@
|
||||
package org.hswebframework.web.service.file.oauth2;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.hswebframework.web.authorization.oauth2.client.request.OAuth2Request;
|
||||
import org.hswebframework.web.authorization.oauth2.client.request.TokenExpiredCallBack;
|
||||
import org.hswebframework.web.authorization.oauth2.client.response.OAuth2Response;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Function;
|
||||
|
||||
@Slf4j
|
||||
public class MockOAuth2Request implements OAuth2Request {
|
||||
|
||||
private Function<String, OAuth2Response> responseGetter;
|
||||
|
||||
public MockOAuth2Request(Function<String, OAuth2Response> responseGetter) {
|
||||
this.responseGetter = responseGetter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OAuth2Request onRefreshTokenExpired(TokenExpiredCallBack refreshTokenExpiredCallBack) {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OAuth2Request onTokenExpired(TokenExpiredCallBack callback) {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OAuth2Request param(String name, Object value) {
|
||||
log.info("set param :{}={}", name, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OAuth2Request params(Map<String, String> params) {
|
||||
log.info("set params :{}", params);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OAuth2Response upload(String name, InputStream inputStream) {
|
||||
return responseGetter.apply("post");
|
||||
}
|
||||
|
||||
@Override
|
||||
public OAuth2Response upload(String name, InputStream inputStream, String fileName) {
|
||||
return responseGetter.apply("post");
|
||||
}
|
||||
|
||||
@Override
|
||||
public OAuth2Request requestBody(String value) {
|
||||
log.info("set request body :{}", value);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OAuth2Request header(String name, String value) {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OAuth2Request cookie(String cookie) {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OAuth2Request contentType(String contentType) {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OAuth2Request accept(String accept) {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OAuth2Request timeout(long millisecond, Consumer<OAuth2Request> timeoutCallBack) {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OAuth2Response get() {
|
||||
return responseGetter.apply("get");
|
||||
}
|
||||
|
||||
@Override
|
||||
public OAuth2Response put() {
|
||||
return responseGetter.apply("put");
|
||||
}
|
||||
|
||||
@Override
|
||||
public OAuth2Response post() {
|
||||
return responseGetter.apply("post");
|
||||
}
|
||||
|
||||
@Override
|
||||
public OAuth2Response delete() {
|
||||
return responseGetter.apply("delete");
|
||||
}
|
||||
|
||||
@Override
|
||||
public OAuth2Response patch() {
|
||||
return responseGetter.apply("patch");
|
||||
}
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
package org.hswebframework.web.service.file.oauth2;
|
||||
|
||||
import org.hswebframework.web.authorization.oauth2.client.request.ResponseConvertHandler;
|
||||
import org.hswebframework.web.authorization.oauth2.client.response.OAuth2Response;
|
||||
import org.hswebframework.web.authorization.oauth2.client.response.ResponseConvert;
|
||||
import org.hswebframework.web.authorization.oauth2.client.simple.provider.HswebResponseConvertSupport;
|
||||
import org.hswebframework.web.authorization.simple.builder.SimpleAuthenticationBuilderFactory;
|
||||
import org.hswebframework.web.authorization.simple.builder.SimpleDataAccessConfigBuilderFactory;
|
||||
import org.hswebframework.web.oauth2.core.ErrorType;
|
||||
import org.springframework.util.StreamUtils;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.List;
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
public class MockOAuth2Response implements OAuth2Response {
|
||||
|
||||
private InputStream result;
|
||||
|
||||
private ResponseConvertHandler handler = new HswebResponseConvertSupport(new SimpleAuthenticationBuilderFactory(new SimpleDataAccessConfigBuilderFactory()));
|
||||
|
||||
@Override
|
||||
public InputStream asStream() {
|
||||
return result;
|
||||
}
|
||||
|
||||
public MockOAuth2Response(InputStream result) {
|
||||
this.result = result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String asString() {
|
||||
return new String(asBytes());
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] asBytes() {
|
||||
try {
|
||||
return StreamUtils.copyToByteArray(result);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T as(ResponseConvert<T> convert) {
|
||||
return convert.convert(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T as(Class<T> type) {
|
||||
return handler.convert(this, type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> List<T> asList(Class<T> type) {
|
||||
return handler.convertList(this, type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int status() {
|
||||
return 200;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OAuth2Response onError(BiConsumer<OAuth2Response, ErrorType> onError) {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -1,111 +0,0 @@
|
||||
package org.hswebframework.web.service.file.oauth2;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import org.hswebframework.web.authorization.oauth2.client.OAuth2RequestService;
|
||||
import org.hswebframework.web.authorization.oauth2.client.OAuth2SessionBuilder;
|
||||
import org.hswebframework.web.authorization.oauth2.client.request.OAuth2Request;
|
||||
import org.hswebframework.web.authorization.oauth2.client.request.OAuth2Session;
|
||||
import org.hswebframework.web.commons.entity.PagerResult;
|
||||
import org.hswebframework.web.controller.message.ResponseMessage;
|
||||
import org.hswebframework.web.entity.file.FileInfoEntity;
|
||||
import org.hswebframework.web.entity.file.SimpleFileInfoEntity;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.runners.MockitoJUnitRunner;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Arrays;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
/**
|
||||
* @author zhouhao
|
||||
* @since
|
||||
*/
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class OAuth2FileServiceTest {
|
||||
|
||||
@InjectMocks
|
||||
private OAuth2FileService fileService = new OAuth2FileService();
|
||||
|
||||
@Mock
|
||||
private OAuth2RequestService auth2RequestService;
|
||||
|
||||
@Mock
|
||||
private OAuth2Session oAuth2Session;
|
||||
|
||||
@Before
|
||||
public void init() {
|
||||
when(oAuth2Session.request("file/download/test")).thenReturn(
|
||||
createFixedResponseRequest(
|
||||
whenRequest("get", new ByteArrayInputStream("test".getBytes())))
|
||||
);
|
||||
|
||||
when(oAuth2Session.request("file/upload")).thenReturn(
|
||||
createFixedResponseRequest(
|
||||
whenRequest("post", ResponseMessage.ok(SimpleFileInfoEntity.builder()
|
||||
.md5("test")
|
||||
.build()).toString()))
|
||||
);
|
||||
|
||||
when(oAuth2Session.request("file/upload-static")).thenReturn(
|
||||
createFixedResponseRequest(
|
||||
whenRequest("post", ResponseMessage.ok("http://file-server/upload/test.png").toString())));
|
||||
OAuth2SessionBuilder builder = mock(OAuth2SessionBuilder.class);
|
||||
when(builder.byClientCredentials()).thenReturn(oAuth2Session);
|
||||
|
||||
when(auth2RequestService.create(anyString())).thenReturn(builder);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void uploadTest() throws IOException {
|
||||
String staticFile = fileService.saveStaticFile(new ByteArrayInputStream("test".getBytes()), "test");
|
||||
Assert.assertEquals(staticFile, "http://file-server/upload/test.png");
|
||||
FileInfoEntity entity = fileService.saveFile(new ByteArrayInputStream("test".getBytes()), "test", "text/plain", "admin");
|
||||
Assert.assertNotNull(entity);
|
||||
Assert.assertEquals(entity.getMd5(), "test");
|
||||
}
|
||||
|
||||
interface OAuth2MethodRequest {
|
||||
String getMethod();
|
||||
|
||||
InputStream getResponse();
|
||||
}
|
||||
|
||||
public OAuth2MethodRequest whenRequest(String method, String json) {
|
||||
return whenRequest(method, new ByteArrayInputStream(json.getBytes()));
|
||||
}
|
||||
|
||||
public OAuth2MethodRequest whenRequest(String method, InputStream stream) {
|
||||
return new OAuth2MethodRequest() {
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return method;
|
||||
}
|
||||
|
||||
@Override
|
||||
public InputStream getResponse() {
|
||||
return stream;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private OAuth2Request createFixedResponseRequest(OAuth2MethodRequest... requests) {
|
||||
return new MockOAuth2Request((method) -> {
|
||||
for (OAuth2MethodRequest request : requests) {
|
||||
if (request.getMethod().equals(method)) {
|
||||
return new MockOAuth2Response(request.getResponse());
|
||||
}
|
||||
}
|
||||
return new MockOAuth2Response(new ByteArrayInputStream(ResponseMessage.error(404, "not found").toString().getBytes()));
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>hsweb-system-file</artifactId>
|
||||
<groupId>org.hswebframework.web</groupId>
|
||||
<version>3.0.0-RC-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>hsweb-system-file-service</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<modules>
|
||||
<module>hsweb-system-file-service-api</module>
|
||||
<module>hsweb-system-file-service-simple</module>
|
||||
<module>hsweb-system-file-service-oauth2</module>
|
||||
</modules>
|
||||
|
||||
|
||||
</project>
|
||||
@@ -31,20 +31,19 @@
|
||||
|
||||
<dependency>
|
||||
<groupId>org.hswebframework.web</groupId>
|
||||
<artifactId>hsweb-system-file-service-simple</artifactId>
|
||||
<artifactId>hsweb-system-file-local</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>org.hswebframework.web</groupId>
|
||||
<artifactId>hsweb-system-file-dao-mybatis</artifactId>
|
||||
<artifactId>hsweb-system-file-web</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>org.hswebframework.web</groupId>
|
||||
<artifactId>hsweb-system-file-controller</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
|
||||
@@ -9,8 +9,9 @@
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>hsweb-system-file-controller</artifactId>
|
||||
<artifactId>hsweb-system-file-web</artifactId>
|
||||
|
||||
<description>通过SpringMvc实现文件上传,秒传等功能</description>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
@@ -20,7 +21,7 @@
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hswebframework.web</groupId>
|
||||
<artifactId>hsweb-system-file-service-api</artifactId>
|
||||
<artifactId>hsweb-system-file-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@@ -12,11 +12,11 @@
|
||||
<artifactId>hsweb-system-file</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<modules>
|
||||
<module>hsweb-system-file-service</module>
|
||||
<module>hsweb-system-file-controller</module>
|
||||
<module>hsweb-system-file-dao</module>
|
||||
<module>hsweb-system-file-entity</module>
|
||||
<module>hsweb-system-file-starter</module>
|
||||
<module>hsweb-system-file-api</module>
|
||||
<module>hsweb-system-file-local</module>
|
||||
<module>hsweb-system-file-web</module>
|
||||
<module>hsweb-system-file-oauth2</module>
|
||||
</modules>
|
||||
|
||||
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>hsweb-system</artifactId>
|
||||
<groupId>org.hswebframework.web</groupId>
|
||||
<version>3.0.0-RC-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>hsweb-system-monitor</artifactId>
|
||||
|
||||
|
||||
</project>
|
||||
Reference in New Issue
Block a user