/** * Returns the mutex which protectes the access to this ConfigFileManager. * * @return the mutex; never null. */ public Mutex mutex() { return ProjectManager.mutex(); }
@Override public void setActiveBrowser(final WebBrowser browser) throws IllegalArgumentException, IOException { ProjectManager.mutex().writeAccess(new Runnable() { public void run() { AntProjectHelper helper = project.getAntProjectHelper(); EditableProperties privateProps = helper.getProperties(AntProjectHelper.PRIVATE_PROPERTIES_PATH); privateProps.put(WebProjectProperties.SELECTED_BROWSER, browser.getId()); helper.putProperties(AntProjectHelper.PRIVATE_PROPERTIES_PATH, privateProps); } }); pcs.firePropertyChange(PROP_BROWSER_ACTIVE, null, null); }
public String getProperty(final String prop) { return ProjectManager.mutex().readAccess(new Mutex.Action<String>() { public String run() { if (defs == null) { return null; } return defs.get(prop); } }); }
private void readPrivateProperties () { ProjectManager.mutex().readAccess(new Runnable() { public void run () { appArgs = project.getUpdateHelper().getProperties(AntProjectHelper.PRIVATE_PROPERTIES_PATH).getProperty(J2SEProjectProperties.APPLICATION_ARGS); workDir = project.getUpdateHelper().getProperties(AntProjectHelper.PRIVATE_PROPERTIES_PATH).getProperty(J2SEProjectProperties.RUN_WORK_DIR); } }); }
public void run() throws IOException { ProjectManager.mutex().writeAccess(new Runnable() { public void run() { updateProject(); } }); } });
/** * Check whether this project is currently modified including modifications * to <code>project.xml</code>. * Access from GeneratedFilesHelper. */ boolean isProjectXmlModified() { assert ProjectManager.mutex().isReadAccess() || ProjectManager.mutex().isWriteAccess(); return modifiedMetadataPaths.contains(PROJECT_XML_PATH); }
private void resetIgnoredFolders() { ProjectManager.mutex().readAccess(new Mutex.Action<Void>() { @Override public Void run() { synchronized (ignoredFoldersLock) { ignoredFolders = null; } return null; } }); }
private String doLoad(final String name) { return ProjectManager.mutex().readAccess(new Mutex.Action<String>() { @Override public String run() { Element configurationFragment = getConfigurationFragment(); if (configurationFragment == null) { return null; } return getNode(configurationFragment, name).getTextContent(); } }); }
private FolderHolder getNodeFolders() { return ProjectManager.mutex().readAccess(new Mutex.Action<FolderHolder>() { public FolderHolder run() { FileObject webDocBaseDir = getFileObject(WebProjectProperties.WEB_DOCBASE_DIR); FileObject webInf = getFileObject(WebProjectProperties.WEBINF_DIR); return new FolderHolder(webDocBaseDir, webInf); } }); }
public Map<String,String> getProperties() { return ProjectManager.mutex().readAccess(new Mutex.Action<Map<String,String>>() { public Map<String,String> run() { return defs; } }); }
public void run() throws IOException { ProjectManager.mutex().writeAccess(new Runnable() { public void run() { updateProject(); } }); } });
@Override public void propertyChange(PropertyChangeEvent evt) { String prop = evt.getPropertyName(); if (prop != null && !propertyNames.contains(evt.getPropertyName())) { // Not interesting to us. return; } // Coalesce changes; can come in fast after huge CP changes (#47910): if (!dirty.getAndSet(true)) { ProjectManager.mutex().postReadRequest(this); } }
public void upgrade() { ProjectManager.mutex().writeAccess(new Runnable() { @Override public void run() { upgradeProjectProperties(); } }); }
public void run() throws IOException { ProjectManager.mutex().writeAccess(new Runnable() { public void run() { updateProject(); } }); } });
private String doLoad(final String name) { return ProjectManager.mutex().readAccess(new Mutex.Action<String>() { @Override public String run() { Element configurationFragment = getConfigurationFragment(); if (configurationFragment == null) { return null; } return getNode(configurationFragment, name).getTextContent(); } }); }
/** * Store <references> to project.xml (i.e. to memory and mark project modified). */ private void storeReferences(Element references) { assert ProjectManager.mutex().isWriteAccess(); assert references != null && references.getLocalName().equals(REFS_NAME) && (REFS_NS.equals(references.getNamespaceURI()) || REFS_NS2.equals(references.getNamespaceURI())); aux.putConfigurationFragment(references, true); }
/** * Mark this project as being modified without actually changing anything in it. * Should only be called from {@link ProjectGenerator#createProject}. */ void markModified() { assert ProjectManager.mutex().isWriteAccess(); state.markModified(); // To make sure projectXmlSaved is called: synchronized (modifiedMetadataPaths) { modifiedMetadataPaths.add(PROJECT_XML_PATH); } }
/** * Load <references> from project.xml. * @return can return null if there are no references stored yet */ private Element loadReferences() { assert ProjectManager.mutex().isReadAccess() || ProjectManager.mutex().isWriteAccess(); Element references = aux.getConfigurationFragment(REFS_NAME, REFS_NS2, true); if (references == null) { references = aux.getConfigurationFragment(REFS_NAME, REFS_NS, true); } return references; }
/** * Call when explicitly modifying some piece of metadata. */ private void modifying(String path) { assert ProjectManager.mutex().isWriteAccess(); state.markModified(); synchronized (modifiedMetadataPaths) { modifiedMetadataPaths.add(path); } fireChange(path, true); }
/** * Mark this project as being modified without actually changing anything in it. * Should only be called from {@link ProjectGenerator#createProject}. */ public void markModified() { assert ProjectManager.mutex().isWriteAccess(); state.markModified(); // To make sure projectXmlSaved is called: addModifiedMetadataPath(PROJECT_XML_PATH); }