diff --git a/automatic_updates_extensions/src/Form/UpdateReady.php b/automatic_updates_extensions/src/Form/UpdateReady.php
index 4503724ab00473144aad25b7f130f03427e0804c..f24ec48d3f01287a14685769ebc152c9dde5ac15 100644
--- a/automatic_updates_extensions/src/Form/UpdateReady.php
+++ b/automatic_updates_extensions/src/Form/UpdateReady.php
@@ -5,7 +5,9 @@ declare(strict_types = 1);
 namespace Drupal\automatic_updates_extensions\Form;
 
 use Drupal\automatic_updates\Form\UpdateFormBase;
+use Drupal\package_manager\ComposerInspector;
 use Drupal\package_manager\Exception\StageFailureMarkerException;
+use Drupal\package_manager\PathLocator;
 use Drupal\package_manager\ProjectInfo;
 use Drupal\package_manager\ValidationResult;
 use Drupal\automatic_updates_extensions\BatchProcessor;
@@ -32,41 +34,6 @@ use Symfony\Component\EventDispatcher\EventDispatcherInterface;
  */
 final class UpdateReady extends UpdateFormBase {
 
-  /**
-   * The updater service.
-   *
-   * @var \Drupal\automatic_updates_extensions\ExtensionUpdater
-   */
-  protected $updater;
-
-  /**
-   * The state service.
-   *
-   * @var \Drupal\Core\State\StateInterface
-   */
-  protected $state;
-
-  /**
-   * The module list service.
-   *
-   * @var \Drupal\Core\Extension\ModuleExtensionList
-   */
-  protected $moduleList;
-
-  /**
-   * The renderer service.
-   *
-   * @var \Drupal\Core\Render\RendererInterface
-   */
-  protected $renderer;
-
-  /**
-   * The event dispatcher.
-   *
-   * @var \Symfony\Component\EventDispatcher\EventDispatcherInterface
-   */
-  protected $eventDispatcher;
-
   /**
    * Constructs a new UpdateReady object.
    *
@@ -76,20 +43,28 @@ final class UpdateReady extends UpdateFormBase {
    *   The messenger service.
    * @param \Drupal\Core\State\StateInterface $state
    *   The state service.
-   * @param \Drupal\Core\Extension\ModuleExtensionList $module_list
+   * @param \Drupal\Core\Extension\ModuleExtensionList $moduleList
    *   The module list service.
    * @param \Drupal\Core\Render\RendererInterface $renderer
    *   The renderer service.
-   * @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $event_dispatcher
+   * @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $eventDispatcher
    *   Event dispatcher service.
+   * @param \Drupal\package_manager\ComposerInspector $composerInspector
+   *   The Composer inspector service.
+   * @param \Drupal\package_manager\PathLocator $pathLocator
+   *   The path locator service.
    */
-  public function __construct(ExtensionUpdater $updater, MessengerInterface $messenger, StateInterface $state, ModuleExtensionList $module_list, RendererInterface $renderer, EventDispatcherInterface $event_dispatcher) {
-    $this->updater = $updater;
+  public function __construct(
+    private ExtensionUpdater $updater,
+    MessengerInterface $messenger,
+    private StateInterface $state,
+    private ModuleExtensionList $moduleList,
+    private RendererInterface $renderer,
+    private EventDispatcherInterface $eventDispatcher,
+    private ComposerInspector $composerInspector,
+    private PathLocator $pathLocator,
+  ) {
     $this->setMessenger($messenger);
-    $this->state = $state;
-    $this->moduleList = $module_list;
-    $this->renderer = $renderer;
-    $this->eventDispatcher = $event_dispatcher;
   }
 
   /**
@@ -109,7 +84,9 @@ final class UpdateReady extends UpdateFormBase {
       $container->get('state'),
       $container->get('extension.list.module'),
       $container->get('renderer'),
-      $container->get('event_dispatcher')
+      $container->get('event_dispatcher'),
+      $container->get('package_manager.composer_inspector'),
+      $container->get('package_manager.path_locator')
     );
   }
 
@@ -231,9 +208,9 @@ final class UpdateReady extends UpdateFormBase {
    */
   private function showUpdates(): array {
     // Get packages that were updated in the stage directory.
-    $active = $this->updater->getActiveComposer();
-    $staged = $this->updater->getStageComposer();
-    $updated_packages = $staged->getPackagesWithDifferentVersionsIn($active);
+    $installed_packages = $this->composerInspector->getInstalledPackagesList($this->pathLocator->getProjectRoot());
+    $staged_packages = $this->composerInspector->getInstalledPackagesList($this->updater->getStageDirectory());
+    $updated_packages = $staged_packages->getPackagesWithDifferentVersionsIn($installed_packages);
 
     // Build a list of package names that were updated by user request.
     $updated_by_request = [];
@@ -241,7 +218,6 @@ final class UpdateReady extends UpdateFormBase {
       $updated_by_request = array_merge($updated_by_request, array_keys($group));
     }
 
-    $installed_packages = $active->getInstalledPackages();
     $updated_by_request_info = [];
     $updated_project_info = [];
     $supported_package_types = ['drupal-module', 'drupal-theme'];
@@ -250,17 +226,17 @@ final class UpdateReady extends UpdateFormBase {
     // updated.
     foreach ($updated_packages as $name => $updated_package) {
       // Ignore anything that isn't a module or a theme.
-      if (!in_array($updated_package->getType(), $supported_package_types, TRUE)) {
+      if (!in_array($updated_package->type, $supported_package_types, TRUE)) {
         continue;
       }
       $updated_project_info[$name] = [
-        'title' => $this->getProjectTitle($updated_package->getName()),
-        'installed_version' => $installed_packages[$name]->getPrettyVersion(),
-        'updated_version' => $updated_package->getPrettyVersion(),
+        'title' => $this->getProjectTitle($updated_package->name),
+        'installed_version' => $installed_packages[$updated_package->name]->version,
+        'updated_version' => $updated_package->version,
       ];
     }
 
-    foreach (array_keys($updated_packages) as $name) {
+    foreach ($updated_packages as $name => $updated_package) {
       // Sort the updated packages into two groups: the ones that were updated
       // at the request of the user, and the ones that got updated anyway
       // (probably due to Composer's dependency resolution).