Skip to content

Commit 08b72d4

Browse files
author
lorenzo
committed
code
1 parent a2ff1a4 commit 08b72d4

File tree

8 files changed

+64
-59
lines changed

8 files changed

+64
-59
lines changed

src/main/java/com/reedelk/file/component/FileDelete.java

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55
import com.reedelk.runtime.api.annotation.*;
66
import com.reedelk.runtime.api.component.ProcessorSync;
77
import com.reedelk.runtime.api.flow.FlowContext;
8-
import com.reedelk.runtime.api.message.DefaultMessageAttributes;
98
import com.reedelk.runtime.api.message.Message;
10-
import com.reedelk.runtime.api.message.MessageAttributes;
119
import com.reedelk.runtime.api.message.MessageBuilder;
1210
import com.reedelk.runtime.api.script.ScriptEngineService;
1311
import com.reedelk.runtime.api.script.dynamicvalue.DynamicString;
@@ -22,8 +20,8 @@
2220
import java.util.Map;
2321
import java.util.Optional;
2422

23+
import static com.reedelk.file.internal.commons.Messages.FileDelete.ERROR_FILE_DELETE;
2524
import static com.reedelk.runtime.api.commons.ConfigurationPreconditions.requireNotNull;
26-
import static java.lang.String.format;
2725

2826
@ModuleComponent("File Delete")
2927
@Description("Deletes a file from the file system with the given File name. " +
@@ -51,23 +49,22 @@ public Message apply(FlowContext flowContext, Message message) {
5149
return service.evaluate(fileName, flowContext, message).flatMap(evaluatedFileNameToRemove -> {
5250
try {
5351
Files.delete(Paths.get(evaluatedFileNameToRemove));
54-
} catch (Exception error) {
55-
String errorMessage = format("The file could not be deleted: %s", error.getMessage());
56-
throw new FileDeleteException(errorMessage, error);
52+
} catch (Exception exception) {
53+
String errorMessage = ERROR_FILE_DELETE.format(exception.getMessage());
54+
throw new FileDeleteException(errorMessage, exception);
5755
}
5856

5957
Map<String, Serializable> attributesMap = new HashMap<>();
6058
FileDeleteAttribute.FILE_NAME.set(attributesMap, evaluatedFileNameToRemove);
61-
MessageAttributes attributes = new DefaultMessageAttributes(FileDelete.class, attributesMap);
6259

63-
Message outMessage = MessageBuilder.get()
60+
Message outMessage = MessageBuilder.get(FileDelete.class)
61+
.attributes(attributesMap)
6462
.empty()
65-
.attributes(attributes)
6663
.build();
6764

6865
return Optional.of(outMessage);
6966

70-
}).orElse(MessageBuilder.get().empty().build());
67+
}).orElse(MessageBuilder.get(FileDelete.class).empty().build());
7168
}
7269

7370
public void setFileName(DynamicString fileName) {

src/main/java/com/reedelk/file/component/FileExists.java

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,22 @@
55
import com.reedelk.runtime.api.commons.DynamicValueUtils;
66
import com.reedelk.runtime.api.component.ProcessorSync;
77
import com.reedelk.runtime.api.flow.FlowContext;
8-
import com.reedelk.runtime.api.message.DefaultMessageAttributes;
98
import com.reedelk.runtime.api.message.Message;
10-
import com.reedelk.runtime.api.message.MessageAttributes;
119
import com.reedelk.runtime.api.message.MessageBuilder;
1210
import com.reedelk.runtime.api.script.ScriptEngineService;
1311
import com.reedelk.runtime.api.script.dynamicvalue.DynamicString;
1412
import org.osgi.service.component.annotations.Component;
1513
import org.osgi.service.component.annotations.Reference;
1614
import org.osgi.service.component.annotations.ServiceScope;
1715

16+
import java.io.Serializable;
1817
import java.nio.file.Files;
1918
import java.nio.file.Path;
2019
import java.nio.file.Paths;
20+
import java.util.Map;
2121
import java.util.Optional;
2222

23-
import static com.reedelk.file.internal.commons.Messages.FileReadComponent.FILE_NAME_ERROR;
23+
import static com.reedelk.file.internal.commons.Messages.FileRead.FILE_NAME_ERROR;
2424
import static com.reedelk.file.internal.read.FileReadAttribute.FILE_NAME;
2525
import static com.reedelk.file.internal.read.FileReadAttribute.TIMESTAMP;
2626
import static com.reedelk.runtime.api.commons.ImmutableMap.of;
@@ -79,10 +79,10 @@ public Message apply(FlowContext flowContext, Message message) {
7979
return message;
8080

8181
} else {
82-
MessageAttributes attributes = new DefaultMessageAttributes(FileExists.class,
83-
of(FILE_NAME, path.toString(), TIMESTAMP, System.currentTimeMillis()));
82+
Map<String, Serializable> attributes =
83+
of(FILE_NAME, path.toString(), TIMESTAMP, System.currentTimeMillis());
8484

85-
return MessageBuilder.get()
85+
return MessageBuilder.get(FileExists.class)
8686
.attributes(attributes)
8787
.withJavaObject(exists)
8888
.build();
@@ -91,26 +91,14 @@ public Message apply(FlowContext flowContext, Message message) {
9191
}).orElseThrow(() -> new NotValidFileException(FILE_NAME_ERROR.format(fileName.toString())));
9292
}
9393

94-
public DynamicString getFileName() {
95-
return fileName;
96-
}
97-
9894
public void setFileName(DynamicString fileName) {
9995
this.fileName = fileName;
10096
}
10197

102-
public String getBasePath() {
103-
return basePath;
104-
}
105-
10698
public void setBasePath(String basePath) {
10799
this.basePath = basePath;
108100
}
109101

110-
public DynamicString getTarget() {
111-
return target;
112-
}
113-
114102
public void setTarget(DynamicString target) {
115103
this.target = target;
116104
}

src/main/java/com/reedelk/file/component/FileRead.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@
66
import com.reedelk.runtime.api.annotation.*;
77
import com.reedelk.runtime.api.component.ProcessorSync;
88
import com.reedelk.runtime.api.flow.FlowContext;
9-
import com.reedelk.runtime.api.message.DefaultMessageAttributes;
109
import com.reedelk.runtime.api.message.Message;
11-
import com.reedelk.runtime.api.message.MessageAttributes;
1210
import com.reedelk.runtime.api.message.MessageBuilder;
1311
import com.reedelk.runtime.api.message.content.MimeType;
1412
import com.reedelk.runtime.api.script.ScriptEngineService;
@@ -18,11 +16,13 @@
1816
import org.osgi.service.component.annotations.ServiceScope;
1917
import org.reactivestreams.Publisher;
2018

19+
import java.io.Serializable;
2120
import java.nio.file.Path;
2221
import java.nio.file.Paths;
22+
import java.util.Map;
2323
import java.util.Optional;
2424

25-
import static com.reedelk.file.internal.commons.Messages.FileReadComponent.FILE_NAME_ERROR;
25+
import static com.reedelk.file.internal.commons.Messages.FileRead.FILE_NAME_ERROR;
2626
import static com.reedelk.file.internal.read.FileReadAttribute.FILE_NAME;
2727
import static com.reedelk.file.internal.read.FileReadAttribute.TIMESTAMP;
2828
import static com.reedelk.runtime.api.commons.ImmutableMap.of;
@@ -103,14 +103,14 @@ public Message apply(FlowContext flowContext, Message message) {
103103

104104
ReadConfigurationDecorator config = new ReadConfigurationDecorator(configuration);
105105

106-
MessageAttributes attributes = new DefaultMessageAttributes(FileRead.class,
107-
of(FILE_NAME, path.toString(), TIMESTAMP, System.currentTimeMillis()));
106+
Map<String, Serializable> attributes =
107+
of(FILE_NAME, path.toString(), TIMESTAMP, System.currentTimeMillis());
108108

109109
Publisher<byte[]> data = strategy.read(path, config);
110110

111-
return MessageBuilder.get()
112-
.attributes(attributes)
111+
return MessageBuilder.get(FileRead.class)
113112
.withBinary(data, actualMimeType)
113+
.attributes(attributes)
114114
.build();
115115

116116
}).orElseThrow(() -> new NotValidFileException(FILE_NAME_ERROR.format(fileName.toString())));
@@ -120,6 +120,10 @@ public void setConfiguration(FileReadConfiguration configuration) {
120120
this.configuration = configuration;
121121
}
122122

123+
public void setAutoMimeType(boolean autoMimeType) {
124+
this.autoMimeType = autoMimeType;
125+
}
126+
123127
public void setFileName(DynamicString fileName) {
124128
this.fileName = fileName;
125129
}
@@ -128,15 +132,11 @@ public void setBasePath(String basePath) {
128132
this.basePath = basePath;
129133
}
130134

131-
public void setMode(ReadMode mode) {
132-
this.mode = mode;
133-
}
134-
135-
public void setAutoMimeType(boolean autoMimeType) {
136-
this.autoMimeType = autoMimeType;
137-
}
138-
139135
public void setMimeType(String mimeType) {
140136
this.mimeType = mimeType;
141137
}
138+
139+
public void setMode(ReadMode mode) {
140+
this.mode = mode;
141+
}
142142
}

src/main/java/com/reedelk/file/component/FileWrite.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
import java.nio.file.Paths;
2424
import java.util.Optional;
2525

26-
import static com.reedelk.file.internal.commons.Messages.FileWriteComponent.ERROR_FILE_WRITE;
27-
import static com.reedelk.file.internal.commons.Messages.FileWriteComponent.ERROR_FILE_WRITE_WITH_PATH;
26+
import static com.reedelk.file.internal.commons.Messages.FileWrite.ERROR_FILE_WRITE;
27+
import static com.reedelk.file.internal.commons.Messages.FileWrite.ERROR_FILE_WRITE_WITH_PATH;
2828
import static com.reedelk.runtime.api.commons.StackTraceUtils.rootCauseMessageOf;
2929
import static com.reedelk.runtime.api.commons.StringUtils.isBlank;
3030

src/main/java/com/reedelk/file/internal/commons/FileChannelProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import java.nio.file.Path;
1111
import java.util.function.Supplier;
1212

13-
import static com.reedelk.file.internal.commons.Messages.FileReadComponent.FILE_LOCK_ERROR;
13+
import static com.reedelk.file.internal.commons.Messages.FileRead.FILE_LOCK_ERROR;
1414
import static com.reedelk.runtime.api.commons.StackTraceUtils.rootCauseMessageOf;
1515

1616
public class FileChannelProvider {

src/main/java/com/reedelk/file/internal/commons/Messages.java

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ public class Messages {
77
private Messages() {
88
}
99

10-
public enum FileReadComponent implements FormattedMessage {
10+
public enum FileRead implements FormattedMessage {
1111

1212
FILE_NAME_ERROR("Could not evaluate file with with name=[%s]"),
1313
FILE_IS_DIRECTORY("Could not read file=[%s]: is a directory"),
@@ -16,7 +16,7 @@ public enum FileReadComponent implements FormattedMessage {
1616

1717
private String message;
1818

19-
FileReadComponent(String message) {
19+
FileRead(String message) {
2020
this.message = message;
2121
}
2222

@@ -26,7 +26,7 @@ public String template() {
2626
}
2727
}
2828

29-
public enum FileWriteComponent implements FormattedMessage {
29+
public enum FileWrite implements FormattedMessage {
3030

3131
ERROR_FILE_NOT_FOUND("Could not find file=[%s]. Check that all the directories in the path exist already or enable the option 'Create directories' in the File Write component"),
3232
ERROR_FILE_WRITE_ALREADY_EXISTS("Could not write file=[%s]: the file already exists"),
@@ -35,7 +35,23 @@ public enum FileWriteComponent implements FormattedMessage {
3535

3636
private String message;
3737

38-
FileWriteComponent(String message) {
38+
FileWrite(String message) {
39+
this.message = message;
40+
}
41+
42+
@Override
43+
public String template() {
44+
return message;
45+
}
46+
}
47+
48+
public enum FileDelete implements FormattedMessage {
49+
50+
ERROR_FILE_DELETE("The file could not be deleted, cause=[%s].");
51+
52+
private String message;
53+
54+
FileDelete(String message) {
3955
this.message = message;
4056
}
4157

src/main/java/com/reedelk/file/internal/read/ReadStrategyStream.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
import java.nio.file.OpenOption;
1717
import java.nio.file.Path;
1818

19-
import static com.reedelk.file.internal.commons.Messages.FileReadComponent.FILE_IS_DIRECTORY;
20-
import static com.reedelk.file.internal.commons.Messages.FileReadComponent.FILE_READ_ERROR;
19+
import static com.reedelk.file.internal.commons.Messages.FileRead.FILE_IS_DIRECTORY;
20+
import static com.reedelk.file.internal.commons.Messages.FileRead.FILE_READ_ERROR;
2121
import static com.reedelk.file.internal.commons.Messages.Misc.FILE_LOCK_MAX_RETRY_ERROR;
2222
import static com.reedelk.file.internal.commons.Messages.Misc.FILE_NOT_FOUND;
2323
import static com.reedelk.runtime.api.commons.StackTraceUtils.rootCauseMessageOf;

src/main/java/com/reedelk/file/internal/write/Writer.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
11
package com.reedelk.file.internal.write;
22

3+
import com.reedelk.file.component.FileWrite;
34
import com.reedelk.file.internal.commons.CloseableUtils;
45
import com.reedelk.file.internal.commons.FileChannelProvider;
5-
import com.reedelk.file.component.FileWrite;
66
import com.reedelk.file.internal.exception.FileWriteException;
77
import com.reedelk.file.internal.exception.MaxRetriesExceeded;
88
import com.reedelk.file.internal.exception.NotValidFileException;
99
import com.reedelk.runtime.api.component.OnResult;
1010
import com.reedelk.runtime.api.flow.FlowContext;
11-
import com.reedelk.runtime.api.message.DefaultMessageAttributes;
1211
import com.reedelk.runtime.api.message.Message;
13-
import com.reedelk.runtime.api.message.MessageAttributes;
1412
import com.reedelk.runtime.api.message.MessageBuilder;
1513
import com.reedelk.runtime.api.message.content.TypedPublisher;
1614
import reactor.core.Exceptions;
1715
import reactor.core.publisher.Flux;
1816
import reactor.core.scheduler.Schedulers;
1917

18+
import java.io.Serializable;
2019
import java.nio.ByteBuffer;
2120
import java.nio.channels.FileChannel;
2221
import java.nio.file.FileAlreadyExistsException;
2322
import java.nio.file.NoSuchFileException;
2423
import java.nio.file.Path;
24+
import java.util.Map;
2525

26-
import static com.reedelk.file.internal.commons.Messages.FileWriteComponent.*;
26+
import static com.reedelk.file.internal.commons.Messages.FileWrite.*;
2727
import static com.reedelk.file.internal.commons.Messages.Misc.FILE_LOCK_MAX_RETRY_ERROR;
2828
import static com.reedelk.file.internal.write.FileWriteAttribute.FILE_NAME;
2929
import static com.reedelk.file.internal.write.FileWriteAttribute.TIMESTAMP;
@@ -114,9 +114,13 @@ public void write(WriteConfiguration config, FlowContext flowContext, OnResult c
114114
}).doOnSuccess(initial -> {
115115

116116
// On success build the message and invoke the callback.
117-
MessageAttributes attributes = new DefaultMessageAttributes(FileWrite.class,
118-
of(FILE_NAME, path.toString(), TIMESTAMP, System.currentTimeMillis()));
119-
Message outMessage = MessageBuilder.get().attributes(attributes).empty().build();
117+
Map<String, Serializable> attributes =
118+
of(FILE_NAME, path.toString(), TIMESTAMP, System.currentTimeMillis());
119+
120+
Message outMessage = MessageBuilder.get(FileWrite.class)
121+
.attributes(attributes)
122+
.empty()
123+
.build();
120124

121125
callback.onResult(flowContext, outMessage);
122126

0 commit comments

Comments
 (0)