Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
package aQute.bnd.build;
import java.io.Closeable;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
import aQute.bnd.build.api.BuildInfo;
import aQute.bnd.build.api.OnWorkspace;
import aQute.bnd.osgi.Processor;
import aQute.bnd.service.RepositoryPlugin;
import aQute.lib.collections.MultiMap;
import aQute.lib.concurrent.serial.SerialExecutor;
/**
* Implements the event bus for the workspace, projects and repositories. It can
* create {@link OnWorkspace} objects that client can use to get events. Clients
* can close and this will clean up. The class is private to the workspace.
*/
class WorkspaceNotifier implements Closeable {
final MultiMap ons = new MultiMap<>();
final Map last = new HashMap<>();
final Object lock = new Object();
final Workspace workspace;
final List events = new ArrayList<>();
final SerialExecutor serial = new SerialExecutor(Processor.getExecutor());
int revision = 1000;
boolean closed;
volatile boolean mute = true;
class Receipt {
final ET type;
final Consumer