-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain.java
More file actions
129 lines (112 loc) · 4.85 KB
/
Copy pathMain.java
File metadata and controls
129 lines (112 loc) · 4.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
package org.example;
import Model.MyModel;
import com.google.gson.Gson;
import org.apache.commons.collections4.Transformer;
import org.apache.commons.collections4.functors.InvokerTransformer;
import org.apache.commons.collections4.map.LazyMap;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilder;
import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory;
import com.google.common.io.Files;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.apache.commons.net.ftp.FTPClient;
import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
public class Main {
static Logger logger = Logger.getLogger(String.valueOf(Main.class));
public static void main(String[] args) {
logger.info("Application started with dependencies!");
System.out.println("Hello, World!");
processFileName("myFile.txt");
useStringUtils(" test ");
fileUploadExample();
FileOperations fo = new FileOperations();
fo.fewMore();
useGuava();
useJackson();
useCommonsNet();
Transformer<String, String> transformer = new InvokerTransformer<>(
"toString",
new Class[]{},
new Object[]{}
);
Map<String, String> lazyMap = LazyMap.lazyMap(new HashMap<String, String>(), transformer);
lazyMap.put("key", "value");
try {
System.out.println("Server is running. Press Ctrl+C to stop.");
Thread.currentThread().join(); // Keeps the main thread alive
} catch (InterruptedException e) {
logger.warning("Server interrupted: " + e.getMessage());
}
}
public void performComplexOperations() {
Gson gson = new Gson();
String jsonBad = "{\"dateField\":\"invalid-date-format\"}"; // Test serialization issues
try {
MyModel myModel = gson.fromJson(jsonBad, MyModel.class); // Considering breaking changes in handling of dates
} catch (Exception e) {
logger.info("Error in processing due to compatibility");
}
ConfigurationBuilder<?> builder = ConfigurationBuilderFactory.newConfigurationBuilder();
builder.add(builder.newRootLogger(Level.ERROR)); // Reflect how configurations may fail across major upgrades
}
public static void processFileName(String name) {
System.out.println("Processing file: " + StringUtils.strip(name));
}
public static void useStringUtils(String text) {
System.out.println("Stripped string: '" + StringUtils.strip(text) + "'");
}
public static void fileUploadExample() {
DiskFileItemFactory factory = new DiskFileItemFactory();
File tempDir = new File(System.getProperty("java.io.tmpdir"));
factory.setRepository(tempDir);
// We are not actually processing a request here, just instantiating
System.out.println("File upload factory created.");
}
public static void useGuava() {
try {
File tempFile = File.createTempFile("demo", ".tmp");
System.out.println("Using Guava for temp file operations");
byte[] content = "Demo content".getBytes();
Files.write(content, tempFile);
System.out.println("Guava file operations completed");
} catch (Exception e) {
System.out.println("Guava operation failed: " + e.getMessage());
}
}
public static void useJackson() {
ObjectMapper mapper = new ObjectMapper();
String jsonInput = "{\"name\":\"test\",\"value\":\"demo\"}";
try {
Object result = mapper.readValue(jsonInput, Object.class);
System.out.println("Jackson deserialization completed: " + result);
} catch (JsonProcessingException e) {
System.out.println("Jackson processing failed: " + e.getMessage());
}
}
public static void useCommonsNet() {
FTPClient ftpClient = new FTPClient();
System.out.println("FTP Client initialized with vulnerable Commons Net version");
try {
ftpClient.connect("demo.server.com", 21);
} catch (Exception e) {
System.out.println("FTP connection demo completed (expected to fail): " + e.getMessage());
} finally {
try {
if (ftpClient.isConnected()) {
ftpClient.disconnect();
}
} catch (Exception e) {
// Ignore cleanup errors in demo
}
}
}
}