diff --git a/bundles/org.openhab.core/src/main/java/org/openhab/core/items/ManagedItemProvider.java b/bundles/org.openhab.core/src/main/java/org/openhab/core/items/ManagedItemProvider.java index 2e4cb0b42f..c905638eb6 100644 --- a/bundles/org.openhab.core/src/main/java/org/openhab/core/items/ManagedItemProvider.java +++ b/bundles/org.openhab.core/src/main/java/org/openhab/core/items/ManagedItemProvider.java @@ -22,7 +22,6 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.CopyOnWriteArrayList; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; @@ -74,12 +73,14 @@ public class ManagedItemProvider extends AbstractManagedProvider itemFactories = new CopyOnWriteArrayList<>(); + private final ItemBuilderFactory itemBuilderFactory; private final Map failedToCreate = new ConcurrentHashMap<>(); @Activate - public ManagedItemProvider(final @Reference StorageService storageService) { + public ManagedItemProvider(final @Reference StorageService storageService, + final @Reference ItemBuilderFactory itemBuilderFactory) { super(storageService); + this.itemBuilderFactory = itemBuilderFactory; } /** @@ -118,16 +119,13 @@ public class ManagedItemProvider extends AbstractManagedProvider> iterator = failedToCreate.entrySet().iterator(); @@ -153,9 +149,9 @@ public class ManagedItemProvider extends AbstractManagedProvider groupNames = persistedItem.groupNames; if (groupNames != null) { for (String groupName : groupNames) { diff --git a/itests/org.openhab.core.tests/src/main/java/org/openhab/core/items/ItemRegistryImplTest.java b/itests/org.openhab.core.tests/src/main/java/org/openhab/core/items/ItemRegistryImplTest.java index 325ed064bc..e85662aae0 100644 --- a/itests/org.openhab.core.tests/src/main/java/org/openhab/core/items/ItemRegistryImplTest.java +++ b/itests/org.openhab.core.tests/src/main/java/org/openhab/core/items/ItemRegistryImplTest.java @@ -35,6 +35,7 @@ import org.mockito.Mock; import org.openhab.core.common.registry.RegistryChangeListener; import org.openhab.core.events.EventPublisher; import org.openhab.core.i18n.UnitProvider; +import org.openhab.core.internal.items.ItemBuilderFactoryImpl; import org.openhab.core.internal.items.ItemRegistryImpl; import org.openhab.core.items.events.ItemAddedEvent; import org.openhab.core.items.events.ItemRemovedEvent; @@ -93,11 +94,8 @@ public class ItemRegistryImplTest extends JavaTest { cameraItem4.addTag(CAMERA_TAG_UPPERCASE); // setup ManageItemProvider with necessary dependencies: - itemProvider = new ManagedItemProvider(new VolatileStorageService()) { - { - addItemFactory(coreItemFactory); - } - }; + itemProvider = new ManagedItemProvider(new VolatileStorageService(), + new ItemBuilderFactoryImpl(new CoreItemFactory())); itemProvider.add(new SwitchItem(ITEM_NAME)); itemProvider.add(cameraItem1);