Skip to content

Commit

Permalink
Remove RegistryHook (#4568)
Browse files Browse the repository at this point in the history
Remove RegistryHook which is not longer used. Remove related methods
from ItemRegistry and ItemUiRegistry.

Signed-off-by: Holger Friedrich <[email protected]>
  • Loading branch information
holgerfriedrich authored Jan 26, 2025
1 parent ce37425 commit 7548f26
Show file tree
Hide file tree
Showing 5 changed files with 1 addition and 109 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@
import org.openhab.core.items.ItemNotFoundException;
import org.openhab.core.items.ItemNotUniqueException;
import org.openhab.core.items.ItemRegistry;
import org.openhab.core.items.RegistryHook;
import org.openhab.core.library.items.CallItem;
import org.openhab.core.library.items.ColorItem;
import org.openhab.core.library.items.ContactItem;
Expand Down Expand Up @@ -1428,16 +1427,6 @@ public Item add(Item element) {
return itemRegistry.remove(itemName, recursive);
}

@Override
public void addRegistryHook(RegistryHook<Item> hook) {
itemRegistry.addRegistryHook(hook);
}

@Override
public void removeRegistryHook(RegistryHook<Item> hook) {
itemRegistry.removeRegistryHook(hook);
}

@Override
public @Nullable String getUnitForWidget(Widget w) {
String itemName = w.getItem();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;

import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
Expand All @@ -36,7 +35,6 @@
import org.openhab.core.items.Metadata;
import org.openhab.core.items.MetadataAwareItem;
import org.openhab.core.items.MetadataRegistry;
import org.openhab.core.items.RegistryHook;
import org.openhab.core.items.events.ItemEventFactory;
import org.openhab.core.service.CommandDescriptionService;
import org.openhab.core.service.ReadyService;
Expand Down Expand Up @@ -68,7 +66,6 @@ public class ItemRegistryImpl extends AbstractRegistry<Item, String, ItemProvide

private final Logger logger = LoggerFactory.getLogger(ItemRegistryImpl.class);

private final List<RegistryHook<Item>> registryHooks = new CopyOnWriteArrayList<>();
private @Nullable StateDescriptionService stateDescriptionService;
private @Nullable CommandDescriptionService commandDescriptionService;
private final MetadataRegistry metadataRegistry;
Expand Down Expand Up @@ -388,57 +385,16 @@ protected void notifyListenersAboutUpdatedElement(Item oldElement, Item element)
super.notifyListenersAboutUpdatedElement(oldElement, element);
}

@Override
public void added(Provider<Item> provider, Item element) {
for (RegistryHook<Item> registryHook : registryHooks) {
registryHook.beforeAdding(element);
}
super.added(provider, element);
}

@Override
protected void addProvider(Provider<Item> provider) {
for (Item element : provider.getAll()) {
for (RegistryHook<Item> registryHook : registryHooks) {
registryHook.beforeAdding(element);
}
}
super.addProvider(provider);
}

@Override
public void removed(Provider<Item> provider, Item element) {
super.removed(provider, element);
for (RegistryHook<Item> registryHook : registryHooks) {
registryHook.afterRemoving(element);
}
if (provider instanceof ManagedItemProvider) {
// remove our metadata for that item
logger.debug("Item {} was removed, trying to clean up corresponding metadata", element.getUID());
metadataRegistry.removeItemMetadata(element.getName());
}
}

@Override
protected void removeProvider(Provider<Item> provider) {
super.removeProvider(provider);
for (Item element : provider.getAll()) {
for (RegistryHook<Item> registryHook : registryHooks) {
registryHook.afterRemoving(element);
}
}
}

@Override
public void addRegistryHook(RegistryHook<Item> hook) {
registryHooks.add(hook);
}

@Override
public void removeRegistryHook(RegistryHook<Item> hook) {
registryHooks.remove(hook);
}

@Reference(cardinality = ReferenceCardinality.OPTIONAL, policy = ReferencePolicy.DYNAMIC)
public void setStateDescriptionService(StateDescriptionService stateDescriptionService) {
this.stateDescriptionService = stateDescriptionService;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,18 +105,4 @@ public interface ItemRegistry extends Registry<Item, String> {
*/
@Nullable
Item remove(String itemName, boolean recursive);

/**
* Add a hook to be informed before adding/after removing items.
*
* @param hook
*/
void addRegistryHook(RegistryHook<Item> hook);

/**
* Remove the hook again.
*
* @param hook
*/
void removeRegistryHook(RegistryHook<Item> hook);
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,6 @@ public void afterEach() throws Exception {

@Test
public void testIntegrationWithGenericItemProvider() throws Exception {
Thread.sleep(2500); // Wait for the ChannelItemProvider to join the game

Collection<Thing> things = thingRegistry.getAll();
assertThat(things.size(), is(0));

Expand Down Expand Up @@ -133,7 +131,7 @@ public void testIntegrationWithGenericItemProvider() throws Exception {

// Now add the model again
modelRepository.addOrRefreshModel(ITEMS_TESTMODEL_NAME, new ByteArrayInputStream(itemsModel.getBytes()));
assertThat(itemRegistry.getItems().size(), is(2)); // -> ensure ChannelItemProvider cleans up properly
assertThat(itemRegistry.getItems().size(), is(2)); // -> ensure proper clean-up
assertThat(itemChannelLinkRegistry.getAll().size(), is(1));
}

Expand Down

0 comments on commit 7548f26

Please sign in to comment.