Implement command to discover commissionable devices (#23729)

diff --git a/examples/java-matter-controller/java/src/com/matter/controller/commands/discover/DiscoverCommissionablesCommand.java b/examples/java-matter-controller/java/src/com/matter/controller/commands/discover/DiscoverCommissionablesCommand.java
index dd6de25..9970b7b 100644
--- a/examples/java-matter-controller/java/src/com/matter/controller/commands/discover/DiscoverCommissionablesCommand.java
+++ b/examples/java-matter-controller/java/src/com/matter/controller/commands/discover/DiscoverCommissionablesCommand.java
@@ -19,15 +19,46 @@
 package com.matter.controller.commands.discover;
 
 import chip.devicecontroller.ChipDeviceController;
+import chip.devicecontroller.DiscoveredDevice;
 import com.matter.controller.commands.common.CredentialsIssuer;
 import com.matter.controller.commands.common.MatterCommand;
 
 public final class DiscoverCommissionablesCommand extends MatterCommand {
+  private static final int MAX_DISCOVERED_DEVICES = 10;
+
   public DiscoverCommissionablesCommand(
       ChipDeviceController controller, CredentialsIssuer credsIssuer) {
     super(controller, "commissionables", credsIssuer);
   }
 
   @Override
-  protected final void runCommand() {}
+  protected final void runCommand() {
+    currentCommissioner().discoverCommissionableNodes();
+
+    // Pause for 7 seconds
+    try {
+      Thread.sleep(7000);
+    } catch (InterruptedException e) {
+      throw new RuntimeException(e);
+    }
+
+    getDiscoveredDevice();
+  }
+
+  private final void getDiscoveredDevice() {
+    // Log at most MAX_DISCOVERED_DEVICES discovered devices
+    for (int i = 0; i < MAX_DISCOVERED_DEVICES; i++) {
+      DiscoveredDevice device = currentCommissioner().getDiscoveredDevice(i);
+      if (device == null) {
+        break;
+      }
+
+      logDevice(device);
+    }
+  }
+
+  private final void logDevice(DiscoveredDevice device) {
+    System.out.format("\tDiscriminator: %ld", device.discriminator);
+    System.out.format("\tIP Address : %s", device.ipAddress);
+  }
 }