Skip to content

Commit add8e43

Browse files
authored
Merge pull request eugenp#5 from eugenp/master
merge latest changes
2 parents 858ce0e + 565a116 commit add8e43

File tree

709 files changed

+9761
-4058
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

709 files changed

+9761
-4058
lines changed

algorithms/src/main/java/com/baeldung/algorithms/mcts/montecarlo/State.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ void addScore(double score) {
8787
void randomPlay() {
8888
List<Position> availablePositions = this.board.getEmptyPositions();
8989
int totalPossibilities = availablePositions.size();
90-
int selectRandom = (int) (Math.random() * ((totalPossibilities - 1) + 1));
90+
int selectRandom = (int) (Math.random() * totalPossibilities);
9191
this.board.performMove(this.playerNo, availablePositions.get(selectRandom));
9292
}
9393

algorithms/src/main/java/com/baeldung/algorithms/mcts/tree/Node.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public void setChildArray(List<Node> childArray) {
6565

6666
public Node getRandomChildNode() {
6767
int noOfPossibleMoves = this.childArray.size();
68-
int selectRandom = (int) (Math.random() * ((noOfPossibleMoves - 1) + 1));
68+
int selectRandom = (int) (Math.random() * noOfPossibleMoves);
6969
return this.childArray.get(selectRandom);
7070
}
7171

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.baeldung.algorithms.string;
2+
3+
public class EnglishAlphabetLetters {
4+
5+
public static boolean checkStringForAllTheLetters(String input) {
6+
boolean[] visited = new boolean[26];
7+
8+
int index = 0;
9+
10+
for (int id = 0; id < input.length(); id++) {
11+
if ('a' <= input.charAt(id) && input.charAt(id) <= 'z') {
12+
index = input.charAt(id) - 'a';
13+
} else if ('A' <= input.charAt(id) && input.charAt(id) <= 'Z') {
14+
index = input.charAt(id) - 'A';
15+
}
16+
visited[index] = true;
17+
}
18+
19+
for (int id = 0; id < 26; id++) {
20+
if (!visited[id]) {
21+
return false;
22+
}
23+
}
24+
return true;
25+
}
26+
27+
public static boolean checkStringForAllLetterUsingStream(String input) {
28+
long c = input.toLowerCase().chars().filter(ch -> ch >= 'a' && ch <= 'z').distinct().count();
29+
return c == 26;
30+
}
31+
32+
public static void main(String[] args) {
33+
checkStringForAllLetterUsingStream("intit");
34+
}
35+
}

algorithms/src/test/java/algorithms/AntColonyOptimizationLongRunningUnitTest.java renamed to algorithms/src/test/java/com/baeldung/algorithms/AntColonyOptimizationLongRunningUnitTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package algorithms;
1+
package com.baeldung.algorithms;
22

33
import org.junit.Assert;
44
import org.junit.Test;

algorithms/src/test/java/algorithms/BinaryGeneticAlgorithmLongRunningUnitTest.java renamed to algorithms/src/test/java/com/baeldung/algorithms/BinaryGeneticAlgorithmLongRunningUnitTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package algorithms;
1+
package com.baeldung.algorithms;
22

33
import org.junit.Assert;
44
import org.junit.Test;

algorithms/src/test/java/algorithms/DijkstraAlgorithmLongRunningUnitTest.java renamed to algorithms/src/test/java/com/baeldung/algorithms/DijkstraAlgorithmLongRunningUnitTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package algorithms;
1+
package com.baeldung.algorithms;
22

33
import org.junit.Test;
44

algorithms/src/test/java/algorithms/HillClimbingAlgorithmUnitTest.java renamed to algorithms/src/test/java/com/baeldung/algorithms/HillClimbingAlgorithmUnitTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package algorithms;
1+
package com.baeldung.algorithms;
22

33
import com.baeldung.algorithms.hillclimbing.HillClimbing;
44
import com.baeldung.algorithms.hillclimbing.State;

algorithms/src/test/java/algorithms/MiddleElementLookupUnitTest.java renamed to algorithms/src/test/java/com/baeldung/algorithms/MiddleElementLookupUnitTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package algorithms;
1+
package com.baeldung.algorithms;
22

33
import com.baeldung.algorithms.middleelementlookup.MiddleElementLookup;
44
import com.baeldung.algorithms.middleelementlookup.Node;

algorithms/src/test/java/algorithms/RtFiniteStateMachineLongRunningUnitTest.java renamed to algorithms/src/test/java/com/baeldung/algorithms/RtFiniteStateMachineLongRunningUnitTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package algorithms;
1+
package com.baeldung.algorithms;
22

33
import com.baeldung.algorithms.automata.*;
44
import org.junit.Test;

algorithms/src/test/java/algorithms/SimulatedAnnealingLongRunningUnitTest.java renamed to algorithms/src/test/java/com/baeldung/algorithms/SimulatedAnnealingLongRunningUnitTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package algorithms;
1+
package com.baeldung.algorithms;
22

33
import org.junit.Assert;
44
import org.junit.Test;

algorithms/src/test/java/algorithms/StringSearchAlgorithmsUnitTest.java renamed to algorithms/src/test/java/com/baeldung/algorithms/StringSearchAlgorithmsUnitTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package algorithms;
1+
package com.baeldung.algorithms;
22

33

44
import org.junit.Assert;

algorithms/src/test/java/algorithms/binarysearch/BinarySearchUnitTest.java renamed to algorithms/src/test/java/com/baeldung/algorithms/binarysearch/BinarySearchUnitTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package algorithms.binarysearch;
1+
package com.baeldung.algorithms.binarysearch;
22

33
import java.util.Arrays;
44
import java.util.List;

algorithms/src/test/java/algorithms/mcts/MCTSUnitTest.java renamed to algorithms/src/test/java/com/baeldung/algorithms/mcts/MCTSUnitTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package algorithms.mcts;
1+
package com.baeldung.algorithms.mcts;
22

33
import static org.junit.Assert.assertEquals;
44
import static org.junit.Assert.assertTrue;

algorithms/src/test/java/algorithms/minimax/MinimaxUnitTest.java renamed to algorithms/src/test/java/com/baeldung/algorithms/minimax/MinimaxUnitTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package algorithms.minimax;
1+
package com.baeldung.algorithms.minimax;
22

33
import org.junit.Before;
44
import org.junit.Test;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.baeldung.algorithms.string;
2+
3+
import org.junit.jupiter.api.Assertions;
4+
import org.junit.jupiter.api.Test;
5+
6+
public class EnglishAlphabetLettersUnitTest {
7+
8+
@Test
9+
void givenString_whenContainsAllCharacter_thenTrue() {
10+
String input = "Farmer jack realized that big yellow quilts were expensive";
11+
Assertions.assertTrue(EnglishAlphabetLetters.checkStringForAllTheLetters(input));
12+
}
13+
14+
@Test
15+
void givenString_whenContainsAllCharacter_thenUsingStreamExpectTrue() {
16+
String input = "Farmer jack realized that big yellow quilts were expensive";
17+
Assertions.assertTrue(EnglishAlphabetLetters.checkStringForAllLetterUsingStream(input));
18+
}
19+
20+
}

apache-avro/src/main/java/com/baeldung/avro/util/serealization/AvroDeSerealizer.java

+23-15
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,37 @@
55
import org.apache.avro.io.Decoder;
66
import org.apache.avro.io.DecoderFactory;
77
import org.apache.avro.specific.SpecificDatumReader;
8+
import org.slf4j.Logger;
9+
import org.slf4j.LoggerFactory;
810

911
import java.io.IOException;
1012

1113
public class AvroDeSerealizer {
1214

13-
public AvroHttpRequest deSerealizeAvroHttpRequestJSON(byte[] data){
14-
DatumReader<AvroHttpRequest> reader = new SpecificDatumReader<>(AvroHttpRequest.class);
15-
Decoder decoder = null;
16-
try {
17-
decoder = DecoderFactory.get().jsonDecoder(AvroHttpRequest.getClassSchema(), new String(data));
18-
return reader.read(null, decoder);
19-
} catch (IOException e) {
15+
private static Logger logger = LoggerFactory.getLogger(AvroDeSerealizer.class);
16+
17+
public AvroHttpRequest deSerealizeAvroHttpRequestJSON(byte[] data) {
18+
DatumReader<AvroHttpRequest> reader = new SpecificDatumReader<>(AvroHttpRequest.class);
19+
Decoder decoder = null;
20+
try {
21+
decoder = DecoderFactory.get()
22+
.jsonDecoder(AvroHttpRequest.getClassSchema(), new String(data));
23+
return reader.read(null, decoder);
24+
} catch (IOException e) {
25+
logger.error("Deserialization error" + e.getMessage());
26+
}
2027
return null;
2128
}
22-
}
2329

24-
public AvroHttpRequest deSerealizeAvroHttpRequestBinary(byte[] data){
25-
DatumReader<AvroHttpRequest> employeeReader = new SpecificDatumReader<>(AvroHttpRequest.class);
26-
Decoder decoder = DecoderFactory.get().binaryDecoder(data, null);
27-
try {
28-
return employeeReader.read(null, decoder);
29-
} catch (IOException e) {
30+
public AvroHttpRequest deSerealizeAvroHttpRequestBinary(byte[] data) {
31+
DatumReader<AvroHttpRequest> employeeReader = new SpecificDatumReader<>(AvroHttpRequest.class);
32+
Decoder decoder = DecoderFactory.get()
33+
.binaryDecoder(data, null);
34+
try {
35+
return employeeReader.read(null, decoder);
36+
} catch (IOException e) {
37+
logger.error("Deserialization error" + e.getMessage());
38+
}
3039
return null;
3140
}
3241
}
33-
}

apache-avro/src/main/java/com/baeldung/avro/util/serealization/AvroSerealizer.java

+34-28
Original file line numberDiff line numberDiff line change
@@ -3,42 +3,48 @@
33
import com.baeldung.avro.util.model.AvroHttpRequest;
44
import org.apache.avro.io.*;
55
import org.apache.avro.specific.SpecificDatumWriter;
6+
import org.slf4j.Logger;
7+
import org.slf4j.LoggerFactory;
68

79
import java.io.ByteArrayOutputStream;
810
import java.io.IOException;
911

1012
public class AvroSerealizer {
1113

12-
public byte[] serealizeAvroHttpRequestJSON(AvroHttpRequest request){
13-
DatumWriter<AvroHttpRequest> writer = new SpecificDatumWriter<>(AvroHttpRequest.class);
14-
byte[] data = new byte[0];
15-
ByteArrayOutputStream stream = new ByteArrayOutputStream();
16-
Encoder jsonEncoder = null;
17-
try {
18-
jsonEncoder = EncoderFactory.get().jsonEncoder(AvroHttpRequest.getClassSchema(), stream);
19-
writer.write(request, jsonEncoder);
20-
jsonEncoder.flush();
21-
data = stream.toByteArray();
22-
} catch (IOException e) {
23-
data =null;
24-
}
25-
return data;
26-
}
14+
private static final Logger logger = LoggerFactory.getLogger(AvroSerealizer.class);
2715

28-
public byte[] serealizeAvroHttpRequestBinary(AvroHttpRequest request){
29-
DatumWriter<AvroHttpRequest> writer = new SpecificDatumWriter<>(AvroHttpRequest.class);
30-
byte[] data = new byte[0];
31-
ByteArrayOutputStream stream = new ByteArrayOutputStream();
32-
Encoder jsonEncoder = EncoderFactory.get().binaryEncoder(stream,null);
33-
try {
34-
writer.write(request, jsonEncoder);
35-
jsonEncoder.flush();
36-
data = stream.toByteArray();
37-
} catch (IOException e) {
38-
data = null;
16+
public byte[] serealizeAvroHttpRequestJSON(AvroHttpRequest request) {
17+
DatumWriter<AvroHttpRequest> writer = new SpecificDatumWriter<>(AvroHttpRequest.class);
18+
byte[] data = new byte[0];
19+
ByteArrayOutputStream stream = new ByteArrayOutputStream();
20+
Encoder jsonEncoder = null;
21+
try {
22+
jsonEncoder = EncoderFactory.get()
23+
.jsonEncoder(AvroHttpRequest.getClassSchema(), stream);
24+
writer.write(request, jsonEncoder);
25+
jsonEncoder.flush();
26+
data = stream.toByteArray();
27+
} catch (IOException e) {
28+
logger.error("Serialization error " + e.getMessage());
29+
}
30+
return data;
3931
}
4032

41-
return data;
42-
}
33+
public byte[] serealizeAvroHttpRequestBinary(AvroHttpRequest request) {
34+
DatumWriter<AvroHttpRequest> writer = new SpecificDatumWriter<>(AvroHttpRequest.class);
35+
byte[] data = new byte[0];
36+
ByteArrayOutputStream stream = new ByteArrayOutputStream();
37+
Encoder jsonEncoder = EncoderFactory.get()
38+
.binaryEncoder(stream, null);
39+
try {
40+
writer.write(request, jsonEncoder);
41+
jsonEncoder.flush();
42+
data = stream.toByteArray();
43+
} catch (IOException e) {
44+
logger.error("Serialization error " + e.getMessage());
45+
}
46+
47+
return data;
48+
}
4349

4450
}

apache-avro/src/test/java/com/baeldung/avro/util/serealization/AvroSerealizerDeSerealizerTest.java

+39-31
Original file line numberDiff line numberDiff line change
@@ -24,52 +24,60 @@ public void setUp() throws Exception {
2424
serealizer = new AvroSerealizer();
2525
deSerealizer = new AvroDeSerealizer();
2626

27-
ClientIdentifier clientIdentifier = ClientIdentifier.newBuilder().
28-
setHostName("localhost").setIpAddress("255.255.255.0").build();
27+
ClientIdentifier clientIdentifier = ClientIdentifier.newBuilder()
28+
.setHostName("localhost")
29+
.setIpAddress("255.255.255.0")
30+
.build();
2931

3032
List<CharSequence> employees = new ArrayList();
3133
employees.add("James");
3234
employees.add("Alice");
3335
employees.add("David");
3436
employees.add("Han");
3537

36-
request = AvroHttpRequest.newBuilder().setRequestTime(01l)
37-
.setActive(Active.YES).setClientIdentifier(clientIdentifier)
38-
.setEmployeeNames(employees).build();
38+
request = AvroHttpRequest.newBuilder()
39+
.setRequestTime(01l)
40+
.setActive(Active.YES)
41+
.setClientIdentifier(clientIdentifier)
42+
.setEmployeeNames(employees)
43+
.build();
3944
}
4045

4146
@After
4247
public void tearDown() throws Exception {
4348
}
4449

45-
@Test
46-
public void WhenSerialized_UsingJSONEncoder_ObjectGetsSerialized(){
47-
byte[] data = serealizer.serealizeAvroHttpRequestJSON(request);
48-
assertTrue(Objects.nonNull(data));
49-
assertTrue(data.length > 0);
50-
}
50+
@Test
51+
public void WhenSerializedUsingJSONEncoder_thenObjectGetsSerialized() {
52+
byte[] data = serealizer.serealizeAvroHttpRequestJSON(request);
53+
assertTrue(Objects.nonNull(data));
54+
assertTrue(data.length > 0);
55+
}
5156

52-
@Test
53-
public void WhenSerialized_UsingBinaryEncoder_ObjectGetsSerialized(){
54-
byte[] data = serealizer.serealizeAvroHttpRequestBinary(request);
55-
assertTrue(Objects.nonNull(data));
56-
assertTrue(data.length > 0);
57-
}
57+
@Test
58+
public void WhenSerializedUsingBinaryEncoder_thenObjectGetsSerialized() {
59+
byte[] data = serealizer.serealizeAvroHttpRequestBinary(request);
60+
assertTrue(Objects.nonNull(data));
61+
assertTrue(data.length > 0);
62+
}
5863

59-
@Test
60-
public void WhenDeserialize_UsingJSONDecoder_ActualAndExpectedObjectsAreEqual(){
61-
byte[] data = serealizer.serealizeAvroHttpRequestJSON(request);
62-
AvroHttpRequest actualRequest = deSerealizer.deSerealizeAvroHttpRequestJSON(data);
63-
assertEquals(actualRequest,request);
64-
assertTrue(actualRequest.getRequestTime().equals(request.getRequestTime()));
65-
}
64+
@Test
65+
public void WhenDeserializeUsingJSONDecoder_thenActualAndExpectedObjectsAreEqual() {
66+
byte[] data = serealizer.serealizeAvroHttpRequestJSON(request);
67+
AvroHttpRequest actualRequest = deSerealizer.deSerealizeAvroHttpRequestJSON(data);
68+
assertEquals(actualRequest, request);
69+
assertTrue(actualRequest.getRequestTime()
70+
.equals(request.getRequestTime()));
71+
}
6672

67-
@Test
68-
public void WhenDeserialize_UsingBinaryecoder_ActualAndExpectedObjectsAreEqual(){
69-
byte[] data = serealizer.serealizeAvroHttpRequestBinary(request);
70-
AvroHttpRequest actualRequest = deSerealizer.deSerealizeAvroHttpRequestBinary(data);
71-
assertEquals(actualRequest,request);
72-
assertTrue(actualRequest.getRequestTime().equals(request.getRequestTime()));
73-
}
73+
@Test
74+
public void WhenDeserializeUsingBinaryecoder_thenActualAndExpectedObjectsAreEqual() {
75+
byte[] data = serealizer.serealizeAvroHttpRequestBinary(request);
76+
AvroHttpRequest actualRequest = deSerealizer.deSerealizeAvroHttpRequestBinary(data);
77+
assertEquals(actualRequest, request);
78+
assertTrue(actualRequest.getRequestTime()
79+
.equals(request.getRequestTime()));
80+
}
81+
7482
}
7583

apache-fop/src/main/resources/logback.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<configuration>
33
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
44
<encoder>
5-
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
5+
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
66
</pattern>
77
</encoder>
88
</appender>

apache-thrift/pom.xml

+2
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
<plugin>
4040
<groupId>org.codehaus.mojo</groupId>
4141
<artifactId>build-helper-maven-plugin</artifactId>
42+
<version>${build-helper-maven-plugin.version}</version>
4243
<executions>
4344
<execution>
4445
<phase>generate-sources</phase>
@@ -60,6 +61,7 @@
6061
<thrift.version>0.10.0</thrift.version>
6162
<maven-thrift.version>0.1.11</maven-thrift.version>
6263
<org.slf4j.slf4j-simple.version>1.7.12</org.slf4j.slf4j-simple.version>
64+
<build-helper-maven-plugin.version>3.0.0</build-helper-maven-plugin.version>
6365
</properties>
6466

6567
</project>

apache-velocity/src/main/resources/logback.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<configuration>
33
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
44
<encoder>
5-
<pattern>web - %date [%thread] %-5level %logger{36} - %message%n
5+
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
66
</pattern>
77
</encoder>
88
</appender>

0 commit comments

Comments
 (0)