Merge branch 'master' into akka
# Conflicts: # pom.xml
This commit is contained in:
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.baeldung.string;
|
||||
package com.baeldung.algorithms.string;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.baeldung.string;
|
||||
package com.baeldung.algorithms.string;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import java.util.HashSet;
|
||||
@@ -33,6 +33,11 @@
|
||||
<artifactId>jgrapht-core</artifactId>
|
||||
<version>${org.jgrapht.core.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jgrapht</groupId>
|
||||
<artifactId>jgrapht-ext</artifactId>
|
||||
<version>${org.jgrapht.ext.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>pl.allegro.finance</groupId>
|
||||
<artifactId>tradukisto</artifactId>
|
||||
@@ -83,6 +88,7 @@
|
||||
<commons-math3.version>3.6.1</commons-math3.version>
|
||||
<tradukisto.version>1.0.1</tradukisto.version>
|
||||
<org.jgrapht.core.version>1.0.1</org.jgrapht.core.version>
|
||||
<org.jgrapht.ext.version>1.0.1</org.jgrapht.ext.version>
|
||||
<org.assertj.core.version>3.9.0</org.assertj.core.version>
|
||||
<commons-codec.version>1.11</commons-codec.version>
|
||||
</properties>
|
||||
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
package com.baeldung.jgrapht;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import java.awt.Color;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import javax.imageio.ImageIO;
|
||||
import org.jgrapht.ext.JGraphXAdapter;
|
||||
import org.jgrapht.graph.DefaultDirectedGraph;
|
||||
import org.jgrapht.graph.DefaultEdge;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import com.mxgraph.layout.mxCircleLayout;
|
||||
import com.mxgraph.layout.mxIGraphLayout;
|
||||
import com.mxgraph.util.mxCellRenderer;
|
||||
|
||||
public class GraphImageGenerationUnitTest {
|
||||
static DefaultDirectedGraph<String, DefaultEdge> g;
|
||||
|
||||
@Before
|
||||
public void createGraph() throws IOException {
|
||||
File imgFile = new File("src/test/resources/graph.png");
|
||||
imgFile.createNewFile();
|
||||
g = new DefaultDirectedGraph<String, DefaultEdge>(DefaultEdge.class);
|
||||
String x1 = "x1";
|
||||
String x2 = "x2";
|
||||
String x3 = "x3";
|
||||
g.addVertex(x1);
|
||||
g.addVertex(x2);
|
||||
g.addVertex(x3);
|
||||
g.addEdge(x1, x2);
|
||||
g.addEdge(x2, x3);
|
||||
g.addEdge(x3, x1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenAdaptedGraph_whenWriteBufferedImage_ThenFileShouldExist() throws IOException {
|
||||
JGraphXAdapter<String, DefaultEdge> graphAdapter = new JGraphXAdapter<String, DefaultEdge>(g);
|
||||
mxIGraphLayout layout = new mxCircleLayout(graphAdapter);
|
||||
layout.execute(graphAdapter.getDefaultParent());
|
||||
File imgFile = new File("src/test/resources/graph.png");
|
||||
BufferedImage image = mxCellRenderer.createBufferedImage(graphAdapter, null, 2, Color.WHITE, true, null);
|
||||
ImageIO.write(image, "PNG", imgFile);
|
||||
assertTrue(imgFile.exists());
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 9.1 KiB |
@@ -34,7 +34,7 @@ public class MergeSort {
|
||||
|
||||
while (i < left && j < right) {
|
||||
|
||||
if (l[i] < r[j])
|
||||
if (l[i] <= r[j])
|
||||
a[k++] = l[i++];
|
||||
else
|
||||
a[k++] = r[j++];
|
||||
|
||||
Executable
+12
@@ -0,0 +1,12 @@
|
||||
#!/usr/local/bin/java --source 11
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class Addition
|
||||
{
|
||||
public static void main(String[] args) {
|
||||
System.out.println(Arrays.stream(args)
|
||||
.mapToInt(Integer::parseInt)
|
||||
.sum());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.baeldung.interfaces.multiinheritance;
|
||||
|
||||
public abstract interface Fly{
|
||||
void fly();
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.baeldung.interfaces.multiinheritance;
|
||||
|
||||
public interface Transform {
|
||||
void transform();
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.baeldung.interfaces.multiinheritance;
|
||||
|
||||
public class Vehicle implements Fly, Transform {
|
||||
@Override
|
||||
public void fly() {
|
||||
System.out.println("I can Fly!!");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transform() {
|
||||
System.out.println("I can Transform!!");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.baeldung.interfaces.polymorphysim;
|
||||
|
||||
public class Circle implements Shape {
|
||||
|
||||
private double radius;
|
||||
|
||||
public Circle(double radius){
|
||||
this.radius = radius;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String name() {
|
||||
return "Circle";
|
||||
}
|
||||
|
||||
@Override
|
||||
public double area() {
|
||||
return Math.PI * (radius * radius);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.baeldung.interfaces.polymorphysim;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class DisplayShape {
|
||||
|
||||
private ArrayList<Shape> shapes;
|
||||
|
||||
public DisplayShape() {
|
||||
shapes = new ArrayList<>();
|
||||
}
|
||||
|
||||
public void add(Shape shape) {
|
||||
shapes.add(shape);
|
||||
}
|
||||
|
||||
public void display() {
|
||||
for (Shape shape : shapes) {
|
||||
System.out.println(shape.name() + " area: " + shape.area());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.baeldung.interfaces.polymorphysim;
|
||||
|
||||
public class MainPolymorphic {
|
||||
public static void main(String[] args){
|
||||
|
||||
Shape circleShape = new Circle(2);
|
||||
Shape squareShape = new Square(2);
|
||||
|
||||
DisplayShape displayShape = new DisplayShape();
|
||||
displayShape.add(circleShape);
|
||||
displayShape.add(squareShape);
|
||||
|
||||
displayShape.display();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.baeldung.interfaces.polymorphysim;
|
||||
|
||||
public interface Shape {
|
||||
public abstract String name();
|
||||
public abstract double area();
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.baeldung.interfaces.polymorphysim;
|
||||
|
||||
public class Square implements Shape {
|
||||
|
||||
private double width;
|
||||
|
||||
public Square(double width) {
|
||||
this.width = width;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String name() {
|
||||
return "Square";
|
||||
}
|
||||
|
||||
@Override
|
||||
public double area() {
|
||||
return width * width;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.baeldung.interfaces;
|
||||
|
||||
import com.baeldung.interfaces.polymorphysim.Circle;
|
||||
import com.baeldung.interfaces.polymorphysim.Shape;
|
||||
import com.baeldung.interfaces.polymorphysim.Square;
|
||||
import org.assertj.core.api.Assertions;
|
||||
import org.junit.Test;
|
||||
|
||||
public class PolymorphysimUnitTest {
|
||||
|
||||
@Test
|
||||
public void whenInterfacePointsToCircle_CircleAreaMethodisBeingCalled(){
|
||||
double expectedArea = 12.566370614359172;
|
||||
Shape circle = new Circle(2);
|
||||
double actualArea = circle.area();
|
||||
Assertions.assertThat(actualArea).isEqualTo(expectedArea);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenInterfacePointsToSquare_SquareAreaMethodisBeingCalled(){
|
||||
double expectedArea = 4;
|
||||
Shape square = new Square(2);
|
||||
double actualArea = square.area();
|
||||
Assertions.assertThat(actualArea).isEqualTo(expectedArea);
|
||||
}
|
||||
}
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
package com.baeldung.list.multidimensional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class ArrayListOfArrayList {
|
||||
|
||||
public static void main(String args[]) {
|
||||
|
||||
int vertex = 5;
|
||||
ArrayList<ArrayList<Integer>> graph = new ArrayList<>(vertex);
|
||||
|
||||
//Initializing each element of ArrayList with ArrayList
|
||||
for(int i=0; i< vertex; i++) {
|
||||
graph.add(new ArrayList<Integer>());
|
||||
}
|
||||
|
||||
//We can add any number of columns to each row
|
||||
graph.get(0).add(1);
|
||||
graph.get(0).add(5);
|
||||
graph.get(1).add(0);
|
||||
graph.get(1).add(2);
|
||||
graph.get(2).add(1);
|
||||
graph.get(2).add(3);
|
||||
graph.get(3).add(2);
|
||||
graph.get(3).add(4);
|
||||
graph.get(4).add(3);
|
||||
graph.get(4).add(5);
|
||||
|
||||
//Printing all the edges
|
||||
for(int i=0; i<vertex; i++) {
|
||||
for(int j=0; j<graph.get(i).size(); j++) {
|
||||
System.out.println("Edge between vertex "+i+"and "+graph.get(i).get(j));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
package com.baeldung.list.multidimensional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class ThreeDimensionalArrayList {
|
||||
|
||||
public static void main(String args[]) {
|
||||
|
||||
int x_axis_length = 2;
|
||||
int y_axis_length = 2;
|
||||
int z_axis_length = 2;
|
||||
ArrayList< ArrayList< ArrayList<String> > > space = new ArrayList<>(x_axis_length);
|
||||
|
||||
//Initializing each element of ArrayList with ArrayList< ArrayList<String> >
|
||||
for(int i=0; i< x_axis_length; i++) {
|
||||
space.add(new ArrayList< ArrayList<String> >(y_axis_length));
|
||||
for(int j =0; j< y_axis_length; j++) {
|
||||
space.get(i).add(new ArrayList<String>(z_axis_length));
|
||||
}
|
||||
}
|
||||
|
||||
//Set Red color for points (0,0,0) and (0,0,1)
|
||||
space.get(0).get(0).add("Red");
|
||||
space.get(0).get(0).add("Red");
|
||||
//Set Blue color for points (0,1,0) and (0,1,1)
|
||||
space.get(0).get(1).add("Blue");
|
||||
space.get(0).get(1).add("Blue");
|
||||
//Set Green color for points (1,0,0) and (1,0,1)
|
||||
space.get(1).get(0).add("Green");
|
||||
space.get(1).get(0).add("Green");
|
||||
//Set Yellow color for points (1,1,0) and (1,1,1)
|
||||
space.get(1).get(1).add("Yellow");
|
||||
space.get(1).get(1).add("Yellow");
|
||||
|
||||
//Printing colors for all the points
|
||||
for(int i=0; i<x_axis_length; i++) {
|
||||
for(int j=0; j<y_axis_length; j++) {
|
||||
for(int k=0; k<z_axis_length; k++) {
|
||||
System.out.println("Color of point ("+i+","+j+","+k+") is :"+space.get(i).get(j).get(k));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -26,7 +26,6 @@
|
||||
- [ExecutorService - Waiting for Threads to Finish](http://www.baeldung.com/java-executor-wait-for-threads)
|
||||
- [wait and notify() Methods in Java](http://www.baeldung.com/java-wait-notify)
|
||||
- [Priority-based Job Scheduling in Java](http://www.baeldung.com/java-priority-job-schedule)
|
||||
- [A Custom Spring SecurityConfigurer](http://www.baeldung.com/spring-security-custom-configurer)
|
||||
- [Life Cycle of a Thread in Java](http://www.baeldung.com/java-thread-lifecycle)
|
||||
- [Runnable vs. Callable in Java](http://www.baeldung.com/java-runnable-callable)
|
||||
- [Brief Introduction to Java Thread.yield()](https://www.baeldung.com/java-thread-yield)
|
||||
|
||||
@@ -45,6 +45,7 @@ public class FileDownload {
|
||||
FileOutputStream fileOutputStream = new FileOutputStream(localFilename); FileChannel fileChannel = fileOutputStream.getChannel()) {
|
||||
|
||||
fileChannel.transferFrom(readableByteChannel, 0, Long.MAX_VALUE);
|
||||
fileOutputStream.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.baeldung.packages;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
import com.baeldung.packages.domain.TodoItem;
|
||||
|
||||
public class TodoApp {
|
||||
|
||||
public static void main(String[] args) {
|
||||
TodoList todoList = new TodoList();
|
||||
for (int i = 0; i < 3; i++) {
|
||||
TodoItem item = new TodoItem();
|
||||
item.setId(Long.valueOf((long)i));
|
||||
item.setDescription("Todo item " + (i + 1));
|
||||
item.setDueDate(LocalDate.now().plusDays((long)(i + 1)));
|
||||
todoList.addTodoItem(item);
|
||||
}
|
||||
|
||||
todoList.getTodoItems().forEach((TodoItem todoItem) -> System.out.println(todoItem.toString()));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.baeldung.packages;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.baeldung.packages.domain.TodoItem;
|
||||
|
||||
public class TodoList {
|
||||
private List<TodoItem> todoItems;
|
||||
|
||||
public void addTodoItem(TodoItem todoItem) {
|
||||
if (todoItems == null) {
|
||||
todoItems = new ArrayList<TodoItem>();
|
||||
}
|
||||
|
||||
todoItems.add(todoItem);
|
||||
}
|
||||
|
||||
public List<TodoItem> getTodoItems() {
|
||||
return todoItems;
|
||||
}
|
||||
|
||||
public void setTodoItems(List<TodoItem> todoItems) {
|
||||
this.todoItems = todoItems;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.baeldung.packages.domain;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
public class TodoItem {
|
||||
private Long id;
|
||||
private String description;
|
||||
private LocalDate dueDate;
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public LocalDate getDueDate() {
|
||||
return dueDate;
|
||||
}
|
||||
|
||||
public void setDueDate(LocalDate dueDate) {
|
||||
this.dueDate = dueDate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TodoItem [id=" + id + ", description=" + description + ", dueDate=" + dueDate + "]";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.baeldung.packages;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import com.baeldung.packages.domain.TodoItem;
|
||||
|
||||
public class PackagesUnitTest {
|
||||
|
||||
@Test
|
||||
public void whenTodoItemAdded_ThenSizeIncreases() {
|
||||
TodoItem todoItem = new TodoItem();
|
||||
todoItem.setId(1L);
|
||||
todoItem.setDescription("Test the Todo List");
|
||||
todoItem.setDueDate(LocalDate.now());
|
||||
TodoList todoList = new TodoList();
|
||||
todoList.addTodoItem(todoItem);
|
||||
assertEquals(1, todoList.getTodoItems().size());
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,7 @@
|
||||
=========
|
||||
|
||||
## Core Java Net
|
||||
## Core Java Networking
|
||||
|
||||
### Relevant Articles
|
||||
|
||||
- [Connecting Through Proxy Servers in Core Java](https://www.baeldung.com/java-connect-via-proxy-server)
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.baeldung.basicsyntax;
|
||||
|
||||
public class SimpleAddition {
|
||||
|
||||
public static void main(String[] args) {
|
||||
int a = 10;
|
||||
int b = 5;
|
||||
double c = a + b;
|
||||
System.out.println( a + " + " + b + " = " + c);
|
||||
}
|
||||
}
|
||||
@@ -72,6 +72,17 @@
|
||||
<artifactId>injekt-core</artifactId>
|
||||
<version>1.16.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>uy.kohesive.kovert</groupId>
|
||||
<artifactId>kovert-vertx</artifactId>
|
||||
<version>[1.5.0,1.6.0)</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>nl.komponents.kovenant</groupId>
|
||||
<artifactId>kovenant</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<properties>
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.baeldung.inline.classes
|
||||
|
||||
interface Drawable {
|
||||
fun draw()
|
||||
}
|
||||
|
||||
inline class CircleRadius(private val circleRadius : Double) : Drawable {
|
||||
val diameterOfCircle get() = 2 * circleRadius
|
||||
fun areaOfCircle() = 3.14 * circleRadius * circleRadius
|
||||
|
||||
override fun draw() {
|
||||
println("Draw my circle")
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package com.baeldung.inline.classes
|
||||
|
||||
inline class InlineDoubleWrapper(val doubleValue : Double)
|
||||
@@ -0,0 +1,73 @@
|
||||
package com.baeldung.kovert
|
||||
|
||||
import io.vertx.ext.web.Router
|
||||
import io.vertx.ext.web.RoutingContext
|
||||
import nl.komponents.kovenant.functional.bind
|
||||
import org.kodein.di.Kodein
|
||||
import org.kodein.di.conf.global
|
||||
import org.slf4j.Logger
|
||||
import org.slf4j.LoggerFactory
|
||||
import uy.klutter.config.typesafe.ClassResourceConfig
|
||||
import uy.klutter.config.typesafe.ReferenceConfig
|
||||
import uy.klutter.config.typesafe.kodein.importConfig
|
||||
import uy.klutter.config.typesafe.loadConfig
|
||||
import uy.klutter.vertx.kodein.KodeinVertx
|
||||
import uy.kohesive.kovert.core.HttpVerb
|
||||
import uy.kohesive.kovert.core.Location
|
||||
import uy.kohesive.kovert.core.Verb
|
||||
import uy.kohesive.kovert.core.VerbAlias
|
||||
import uy.kohesive.kovert.vertx.bindController
|
||||
import uy.kohesive.kovert.vertx.boot.KodeinKovertVertx
|
||||
import uy.kohesive.kovert.vertx.boot.KovertVerticle
|
||||
import uy.kohesive.kovert.vertx.boot.KovertVerticleModule
|
||||
import uy.kohesive.kovert.vertx.boot.KovertVertx
|
||||
|
||||
|
||||
class AnnotatedServer {
|
||||
companion object {
|
||||
private val LOG: Logger = LoggerFactory.getLogger(AnnotatedServer::class.java)
|
||||
|
||||
@JvmStatic
|
||||
fun main(args: Array<String>) {
|
||||
AnnotatedServer().start()
|
||||
}
|
||||
}
|
||||
|
||||
@VerbAlias("show", HttpVerb.GET)
|
||||
class AnnotatedController {
|
||||
fun RoutingContext.showStringById(id: String) = id
|
||||
|
||||
@Verb(HttpVerb.GET)
|
||||
@Location("/ping/:id")
|
||||
fun RoutingContext.ping(id: String) = id
|
||||
}
|
||||
|
||||
fun start() {
|
||||
Kodein.global.addImport(Kodein.Module {
|
||||
importConfig(loadConfig(ClassResourceConfig("/kovert.conf", AnnotatedServer::class.java), ReferenceConfig())) {
|
||||
import("kovert.vertx", KodeinKovertVertx.configModule)
|
||||
import("kovert.server", KovertVerticleModule.configModule)
|
||||
}
|
||||
|
||||
// includes jackson ObjectMapper to match compatibility with Vertx, app logging via Vertx facade to Slf4j
|
||||
import(KodeinVertx.moduleWithLoggingToSlf4j)
|
||||
// Kovert boot
|
||||
import(KodeinKovertVertx.module)
|
||||
import(KovertVerticleModule.module)
|
||||
})
|
||||
|
||||
val initControllers = fun Router.() {
|
||||
bindController(AnnotatedController(), "api")
|
||||
}
|
||||
|
||||
// startup asynchronously...
|
||||
KovertVertx.start() bind { vertx ->
|
||||
KovertVerticle.deploy(vertx, routerInit = initControllers)
|
||||
} success { deploymentId ->
|
||||
LOG.warn("Deployment complete.")
|
||||
} fail { error ->
|
||||
LOG.error("Deployment failed!", error)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user