2121import com .qlangtech .tis .annotation .Public ;
2222import com .qlangtech .tis .config .ParamsConfig ;
2323import com .qlangtech .tis .config .Utils ;
24- import com .qlangtech .tis .config .authtoken .*;
24+ import com .qlangtech .tis .config .authtoken .IKerberosUserToken ;
25+ import com .qlangtech .tis .config .authtoken .IOffUserToken ;
26+ import com .qlangtech .tis .config .authtoken .IUserNamePasswordUserToken ;
27+ import com .qlangtech .tis .config .authtoken .IUserTokenVisitor ;
28+ import com .qlangtech .tis .config .authtoken .UserToken ;
2529import com .qlangtech .tis .config .kerberos .IKerberos ;
2630import com .qlangtech .tis .extension .Descriptor ;
2731import com .qlangtech .tis .extension .TISExtension ;
3236import com .qlangtech .tis .lang .TisException ;
3337import com .qlangtech .tis .manage .common .TisUTF8 ;
3438import com .qlangtech .tis .offline .FileSystemFactory ;
39+ import com .qlangtech .tis .plugin .IEndTypeGetter ;
3540import com .qlangtech .tis .plugin .annotation .FormField ;
3641import com .qlangtech .tis .plugin .annotation .FormFieldType ;
3742import com .qlangtech .tis .plugin .annotation .Validator ;
4146import org .apache .commons .collections .CollectionUtils ;
4247import org .apache .commons .lang .StringUtils ;
4348import org .apache .hadoop .conf .Configuration ;
44- import org .apache .hadoop .fs .*;
49+ import org .apache .hadoop .fs .CommonConfigurationKeysPublic ;
50+ import org .apache .hadoop .fs .FSDataOutputStream ;
51+ import org .apache .hadoop .fs .FileSystem ;
52+ import org .apache .hadoop .fs .FilterFileSystem ;
53+ import org .apache .hadoop .fs .Path ;
4554import org .apache .hadoop .fs .permission .FsPermission ;
4655import org .apache .hadoop .hdfs .DFSConfigKeys ;
4756import org .apache .hadoop .security .SecurityInfo ;
5564import java .io .File ;
5665import java .io .IOException ;
5766import java .io .InputStream ;
58- import java .util .*;
67+ import java .util .ArrayList ;
68+ import java .util .HashMap ;
69+ import java .util .List ;
70+ import java .util .Map ;
71+ import java .util .Objects ;
72+ import java .util .ServiceLoader ;
5973import java .util .function .Consumer ;
6074import java .util .function .Supplier ;
6175import java .util .stream .Collectors ;
@@ -94,7 +108,7 @@ public class HdfsFileSystemFactory extends FileSystemFactory implements ITISFile
94108 @ FormField (ordinal = 10 , type = FormFieldType .TEXTAREA , validate = {Validator .require })
95109 public String hdfsSiteContent ;
96110
97- private ITISFileSystem fileSystem ;
111+ private transient ITISFileSystem fileSystem ;
98112
99113 @ Override
100114 public String identityValue () {
@@ -161,7 +175,7 @@ public ITISFileSystem visit(IKerberosUserToken token) {
161175 }
162176 SecurityUtil .setSecurityInfoProviders (sinfos .toArray (new SecurityInfo [sinfos .size ()]));
163177 cfg .set (DFSConfigKeys .DFS_NAMENODE_KERBEROS_PRINCIPAL_KEY , token .getKerberosCfg ().getPrincipal ());
164- return setConfiguration (token .getKerberosCfg (), fsFactory .getClass (), cfg , () -> create () );
178+ return setConfiguration (token .getKerberosCfg (), fsFactory .getClass (), cfg , this :: create );
165179 }
166180
167181 private final ITISFileSystem create () {
@@ -398,7 +412,7 @@ public void close() throws IOException {
398412
399413
400414 @ TISExtension (ordinal = 0 )
401- public static class DefaultDescriptor extends Descriptor <FileSystemFactory > {
415+ public static class DefaultDescriptor extends Descriptor <FileSystemFactory > implements IEndTypeGetter {
402416 public DefaultDescriptor () {
403417 super ();
404418 this .registerSelectOptions (IKerberos .IDENTITY , () -> ParamsConfig .getItems (IKerberos .IDENTITY ));
@@ -409,6 +423,10 @@ public String getDisplayName() {
409423 return "HDFS" ;
410424 }
411425
426+ @ Override
427+ public EndType getEndType () {
428+ return EndType .HDFS ;
429+ }
412430
413431 public boolean validateHdfsSiteContent (IFieldErrorHandler msgHandler
414432 , Context context , String fieldName , String value ) {
0 commit comments