@Override protected void loadModuleDefs(Map<ModuleId, ModuleDefinition> moduleDefs, List<URI> libraries) throws IOException { if (cache.isCacheInvalidated()) { super.loadModuleDefs(moduleDefs, libraries); } } }
@Override public synchronized boolean addListener(RepositoryChangeListener listener) { final boolean returnValue = super.addListener(listener); if (returnValue && timer==null) { initializeSubDirectories(); timer = new Timer("hk2-repo-listener-"+ this.getName(), isTimerThreadDaemon); timer.schedule(new TimerTask() { long lastModified = repository.lastModified(); public void run() { synchronized(this) { if (lastModified<repository.lastModified()) { lastModified = repository.lastModified(); // something has changed, look into this... directoryChanged(); } } } }, intervalInMs, intervalInMs); timer.purge(); } return returnValue; }
protected void loadModuleDefs(Map<ModuleId, ModuleDefinition> moduleDefs, List<URI> libraries) throws IOException { if (!repository.exists()) { throw new FileNotFoundException(repository.getAbsolutePath()); } try { File[] files = repository.listFiles(); for (File aFile : files) { if (aFile.getName().endsWith(".jar") && !isDisabled(aFile)) { ModuleDefinition moduleDef = loadJar(aFile); if (moduleDef!=null) { moduleDefs.put(AbstractFactory.getInstance().createModuleId(moduleDef), moduleDef); } else { libraries.add(aFile.toURI()); } } } } catch (IOException e) { IOException x = new IOException("Failed to load modules from " + repository); x.initCause(e); throw x; } }
loadModuleDefs(newModuleDefs, libraries); } catch(IOException ioe) { if (find(def.getName(), def.getVersion())==null) { add(def); for (RepositoryChangeListener listener : listeners) { listener.moduleAdded(def); for (ModuleDefinition def : findAll()) { if (!newModuleDefs.containsKey(AbstractFactory.getInstance().createModuleId(def))) { remove(def); for (RepositoryChangeListener listener : listeners) { listener.moduleRemoved(def); for (URI location : libraries) { if (!originalLibraries.contains(location)) { addLibrary(location); for (RepositoryChangeListener listener : listeners) { listener.added(location); for (URI originalLocation : copy) { if (!libraries.contains(originalLocation)) { removeLibrary(originalLocation); for (RepositoryChangeListener listener : listeners) { listener.removed(originalLocation);
loadModuleDefs(newModuleDefs, libraries); } catch(IOException ioe) { if (find(def.getName(), def.getVersion())==null) { add(def); for (RepositoryChangeListener listener : listeners) { listener.moduleAdded(def); for (ModuleDefinition def : findAll()) { if (!newModuleDefs.containsKey(AbstractFactory.getInstance().createModuleId(def))) { remove(def); for (RepositoryChangeListener listener : listeners) { listener.moduleRemoved(def); for (URI location : libraries) { if (!originalLibraries.contains(location)) { addLibrary(location); for (RepositoryChangeListener listener : listeners) { listener.added(location); for (URI originalLocation : copy) { if (!libraries.contains(originalLocation)) { removeLibrary(originalLocation); for (RepositoryChangeListener listener : listeners) { listener.removed(originalLocation);
protected void loadModuleDefs(Map<ModuleId, ModuleDefinition> moduleDefs, List<URI> libraries) throws IOException { if (!repository.exists()) { throw new FileNotFoundException(repository.getAbsolutePath()); } try { File[] files = repository.listFiles(); for (File aFile : files) { if (aFile.getName().endsWith(".jar") && !isDisabled(aFile)) { ModuleDefinition moduleDef = loadJar(aFile); if (moduleDef!=null) { moduleDefs.put(AbstractFactory.getInstance().createModuleId(moduleDef), moduleDef); } else { libraries.add(aFile.toURI()); } } } } catch (IOException e) { IOException x = new IOException("Failed to load modules from " + repository); x.initCause(e); throw x; } }
@Override public synchronized boolean addListener(RepositoryChangeListener listener) { final boolean returnValue = super.addListener(listener); if (returnValue && timer==null) { initializeSubDirectories(); timer = new Timer("hk2-repo-listener-"+ this.getName(), isTimerThreadDaemon); timer.schedule(new TimerTask() { long lastModified = repository.lastModified(); public void run() { synchronized(this) { if (lastModified<repository.lastModified()) { lastModified = repository.lastModified(); // something has changed, look into this... directoryChanged(); } } } }, intervalInMs, intervalInMs); timer.purge(); } return returnValue; }