Skip to content

Commit c0eb2e6

Browse files
committed
serverless function
1 parent f1856c2 commit c0eb2e6

28 files changed

+1091
-162
lines changed

common/src/main/java/com/robin/core/fileaccess/fs/FileSystemAccessorFactory.java

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.robin.core.fileaccess.fs;
22

33
import com.robin.core.base.exception.MissingConfigException;
4+
import com.robin.core.base.util.Const;
45
import com.robin.core.fileaccess.meta.DataCollectionMeta;
56
import lombok.NonNull;
67
import org.springframework.util.ObjectUtils;
@@ -21,7 +22,27 @@ public static AbstractFileSystemAccessor getResourceAccessorByType(@NonNull Stri
2122
try {
2223
Class<? extends IFileSystemAccessor> clazz = accessorMap.get(resType);
2324
if (!ObjectUtils.isEmpty(clazz)) {
24-
accessor = (AbstractFileSystemAccessor) clazz.getConstructor().newInstance();
25+
if(LocalFileSystemAccessor.class.isAssignableFrom(clazz)){
26+
accessor=LocalFileSystemAccessor.getInstance();
27+
}else {
28+
accessor = (AbstractFileSystemAccessor) clazz.getConstructor().newInstance();
29+
}
30+
}
31+
} catch (Exception ex) {
32+
throw new MissingConfigException(ex);
33+
}
34+
return accessor;
35+
}
36+
public static AbstractFileSystemAccessor getResourceAccessorByType(@NonNull Const.FILESYSTEM fsType) throws MissingConfigException {
37+
AbstractFileSystemAccessor accessor = null;
38+
try {
39+
Class<? extends IFileSystemAccessor> clazz = accessorMap.get(fsType.getValue());
40+
if (!ObjectUtils.isEmpty(clazz)) {
41+
if(LocalFileSystemAccessor.class.isAssignableFrom(clazz)){
42+
accessor=LocalFileSystemAccessor.getInstance();
43+
}else {
44+
accessor = (AbstractFileSystemAccessor) clazz.getConstructor().newInstance();
45+
}
2546
}
2647
} catch (Exception ex) {
2748
throw new MissingConfigException(ex);
@@ -47,10 +68,30 @@ public static AbstractFileSystemAccessor getResourceAccessorByType(@NonNull Stri
4768
}
4869
return accessor;
4970
}
71+
public static AbstractFileSystemAccessor getResourceAccessorByType(@NonNull Const.FILESYSTEM resType, @NonNull DataCollectionMeta colmeta) throws MissingConfigException {
72+
AbstractFileSystemAccessor accessor = null;
73+
try {
74+
Class<? extends IFileSystemAccessor> clazz = accessorMap.get(resType.getValue());
75+
if (!ObjectUtils.isEmpty(clazz)) {
76+
if(LocalFileSystemAccessor.class.isAssignableFrom(clazz)){
77+
return LocalFileSystemAccessor.getInstance();
78+
}else {
79+
accessor = (AbstractFileSystemAccessor) clazz.getConstructor().newInstance();
80+
if (!ObjectUtils.isEmpty(colmeta)) {
81+
accessor.init(colmeta);
82+
}
83+
}
84+
}
85+
} catch (Exception ex) {
86+
throw new MissingConfigException(ex);
87+
}
88+
return accessor;
89+
}
5090

5191
private static void discoverAccessor(Map<String, Class<? extends IFileSystemAccessor>> accessorMap) {
5292
ServiceLoader.load(IFileSystemAccessor.class).iterator().forEachRemaining(i -> {
5393
accessorMap.put(i.getIdentifier(), i.getClass());
5494
});
95+
accessorMap.put(Const.FILESYSTEM.LOCAL.getValue(), LocalFileSystemAccessor.class);
5596
}
5697
}
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
com.robin.core.fileaccess.fs.ApacheVfsFileSystemAccessor
2-
com.robin.core.fileaccess.fs.LocalFileSystemAccessor
1+
com.robin.core.fileaccess.fs.ApacheVfsFileSystemAccessor

core/src/main/java/com/robin/core/base/annotation/ServerlessFunction.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@
1111
String value() default "";
1212
String initFunc() default "";
1313
String initParam() default "";
14+
String method() default "";
1415
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.robin.core.base.annotation;
2+
3+
import java.lang.annotation.ElementType;
4+
import java.lang.annotation.Retention;
5+
import java.lang.annotation.RetentionPolicy;
6+
import java.lang.annotation.Target;
7+
8+
@Target(ElementType.PARAMETER)
9+
@Retention(RetentionPolicy.RUNTIME)
10+
public @interface ServerlessMethodParam {
11+
String value() default "";
12+
}

core/src/main/java/com/robin/core/base/service/AbstractMybatisService.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,20 @@ public boolean deleteByIds(List<P> ids) {
149149
@Override
150150
@Transactional(rollbackFor = RuntimeException.class)
151151
public boolean deleteByField(SFunction<T,?> queryField,Const.OPERATOR operator,Object... value) {
152+
QueryWrapper<T> queryWrapper = QueryWrapperUtils.getWrapper(queryField, operator, value);
153+
try{
154+
/*queryWrapper.eq(statusColumn,Const.VALID);
155+
T vo=voType.getDeclaredConstructor().newInstance();
156+
getStatusMethod.bindTo(vo).invoke(Const.INVALID);*/
157+
158+
return this.remove(queryWrapper);
159+
}catch (Throwable ex){
160+
throw new ServiceException(ex.getMessage());
161+
}
162+
}
163+
@Override
164+
@Transactional(rollbackFor = RuntimeException.class)
165+
public boolean deleteLogicByField(SFunction<T,?> queryField,Const.OPERATOR operator,Object... value) {
152166
QueryWrapper<T> queryWrapper = QueryWrapperUtils.getWrapper(queryField, operator, value);
153167
try{
154168
queryWrapper.eq(statusColumn,Const.VALID);
@@ -172,6 +186,7 @@ public boolean deleteByLogic(List<P> ids, SFunction<T,?> logicField){
172186

173187

174188

189+
175190
@Override
176191
public List<T> selectByField(String columName, Object value) {
177192
QueryWrapper<T> queryWrapper = new QueryWrapper<>();

core/src/main/java/com/robin/core/base/service/IMybatisBaseService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ public interface IMybatisBaseService<T extends BaseObject,P extends Serializable
5353
List<P> parseId(String ids) throws ServiceException;
5454
boolean deleteByIds(List<P> ids);
5555
boolean deleteByField(SFunction<T,?> queryField,Const.OPERATOR oper,Object... value);
56+
boolean deleteLogicByField(SFunction<T,?> queryField,Const.OPERATOR oper,Object... value);
5657
boolean updateModelById(T entity);
5758
void queryBySelectId(PageQuery<Map<String,Object>> query) throws ServiceException;
5859
List<Map<String, Object>> queryBySql(String sqlstr, Object... objects) throws ServiceException;

core/src/main/java/com/robin/core/base/util/Const.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -401,6 +401,7 @@ public enum FILESYSTEM{
401401
QINIU("qiniu"),
402402
BAIDU_BOS("bos"),
403403
HUAWEI_OBS("obs"),
404+
GOOGLECLOUD("gcs"),
404405
MINIO("minio");
405406
private String value;
406407
FILESYSTEM(String value){

etl/src/main/java/com/robin/etl/step/inbound/FsInboundComponent.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ protected void init(StatefulJobContext context, StepContext stepContext) {
2828
fileStorageType=context.getJobParam().get(EtlConstant.FILESTORAGETYPE).toString();
2929
accessor= FileSystemAccessorFactory.getResourceAccessorByType(fileStorageType);
3030
if (accessor == null) {
31-
accessor= CloudStorageFileSystemAccessorFactory.getAccessorByIdentifier(context.getInputMeta(),fileStorageType);
31+
accessor= CloudStorageFileSystemAccessorFactory.getAccessorByIdentifier(fileStorageType, context.getInputMeta());
3232
}
3333
}
3434

hadooptool/src/main/java/com/robin/comm/fileaccess/fs/BOSFileSystemAccessor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public class BOSFileSystemAccessor extends AbstractCloudStorageFileSystemAccesso
2727
private String securityAccessKey;
2828
private BosClient client;
2929

30-
private BOSFileSystemAccessor(){
30+
public BOSFileSystemAccessor(){
3131
this.identifier= Const.FILESYSTEM.BAIDU_BOS.getValue();
3232
}
3333

hadooptool/src/main/java/com/robin/comm/fileaccess/fs/COSFileSystemAccessor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public class COSFileSystemAccessor extends AbstractCloudStorageFileSystemAccesso
4040
private HttpProtocol protocol=HttpProtocol.http;
4141
private String securityKey;
4242
private String accessKey;
43-
private COSFileSystemAccessor(){
43+
public COSFileSystemAccessor(){
4444
this.identifier= Const.FILESYSTEM.TENCENT.getValue();
4545
}
4646

0 commit comments

Comments
 (0)