Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/main/java/org/javademos/init/Java15.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import org.javademos.java15.jep360.SealedClassesDemo;
import org.javademos.java15.jep371.HiddenClassesDemo;
import org.javademos.java15.jep372.NashornRemovalDemo;
import org.javademos.java15.jep373.DatagramSocketDemo15;
import org.javademos.java15.jep375.InstanceofPatternMatchingSecondPreview;
import org.javademos.java15.jep381.SolarisSparcRemovalDemo;
import org.javademos.java15.jep383.ForeignMemoryAccessDemo;
Expand All @@ -29,6 +30,8 @@ public static ArrayList<IDemo> getDemos() {
java15DemoPool.add(new HiddenClassesDemo());
// JEP 372
java15DemoPool.add(new NashornRemovalDemo());
// JEP 373
java15DemoPool.add(new DatagramSocketDemo15());
// JEP 375
java15DemoPool.add(new InstanceofPatternMatchingSecondPreview());
// JEP 381
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package org.javademos.java15.jep373;

import org.javademos.commons.IDemo;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

/// Demo for JDK 15 feature JEP 373 - Reimplement the Legacy DatagramSocket API.
///
/// This JEP modernized the implementation of the legacy DatagramSocket
/// and DatagramSocketImpl APIs without changing their behavior.
/// The reimplementation uses java.nio infrastructure under the hood,
/// improving maintainability and performance.
///
/// JEP link:
/// - [JEP 373 - Reimplement the Legacy DatagramSocket API](https://openjdk.org/jeps/373)
///
///
/// @author sayiamarora
public class DatagramSocketDemo15 implements IDemo {

@Override
public void demo() {
info(373);

try (DatagramSocket socket = new DatagramSocket()) {
String message = "Hello from JEP 373!";
byte[] buffer = message.getBytes();

InetAddress address = InetAddress.getLocalHost();
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, address, 9999);
socket.send(packet);

System.out.println("Datagram sent successfully using reimplemented API!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
8 changes: 8 additions & 0 deletions src/main/resources/JDK15Info.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,14 @@
"link": false,
"code": false
},
{
"jep": 373,
"jdk": 15,
"name": "JEP 373 - Reimplement the Legacy DatagramSocket API",
"dscr": "Modern reimplementation of DatagramSocket and DatagramSocketImpl using java.nio for improved maintainability and performance.",
"link": false,
"code": true
},
{
"jep": 375,
"jdk": 15,
Expand Down