/** * Maps a named servlet to a particular path or extension. If the named servlet is unregistered, * it will be added and subsequently mapped. * * <p>Note that the order of resolution to handle a request is: * * <p>exact mapped servlet (eg /catalog) prefix mapped servlets (eg /foo/bar/*) extension mapped * servlets (eg *jsp) default servlet */ public void addServletMapping(String path, String servletName) throws TomcatException { if (mappings.get(path) != null) { log("Removing duplicate " + path + " -> " + mappings.get(path)); mappings.remove(path); Container ct = (Container) containers.get(path); removeContainer(ct); } ServletWrapper sw = (ServletWrapper) servlets.get(servletName); if (sw == null) { // Workaround for frequent "bug" in web.xmls // Declare a default mapping log("Mapping with unregistered servlet " + servletName); sw = addServlet(servletName, servletName); } if ("/".equals(path)) defaultServlet = sw; mappings.put(path, sw); Container map = new Container(); map.setContext(this); map.setHandler(sw); map.setPath(path); contextM.addContainer(map); containers.put(path, map); }
/** * Removes the specified account from the list of accounts that this provider factory is handling. * If the specified accountID is unknown to the ProtocolProviderFactory, the call has no effect * and false is returned. This method is persistent in nature and once called the account * corresponding to the specified ID will not be loaded during future runs of the project. * * @param accountID the ID of the account to remove. * @return true if an account with the specified ID existed and was removed and false otherwise. */ public boolean uninstallAccount(AccountID accountID) { // Unregister the protocol provider. ServiceReference serRef = getProviderForAccount(accountID); boolean wasAccountExisting = false; // If the protocol provider service is registered, first unregister the // service. if (serRef != null) { BundleContext bundleContext = getBundleContext(); ProtocolProviderService protocolProvider = (ProtocolProviderService) bundleContext.getService(serRef); try { protocolProvider.unregister(); } catch (OperationFailedException ex) { logger.error( "Failed to unregister protocol provider for account: " + accountID + " caused by: " + ex); } } ServiceRegistration registration; synchronized (registeredAccounts) { registration = registeredAccounts.remove(accountID); } // first remove the stored account so when PP is unregistered we can // distinguish between deleted or just disabled account wasAccountExisting = removeStoredAccount(accountID); if (registration != null) { // Kill the service. registration.unregister(); } return wasAccountExisting; }
/** * Unloads the account corresponding to the given <tt>accountID</tt>. Unregisters the * corresponding protocol provider, but keeps the account in contrast to the uninstallAccount * method. * * @param accountID the account identifier * @return true if an account with the specified ID existed and was unloaded and false otherwise. */ public boolean unloadAccount(AccountID accountID) { // Unregister the protocol provider. ServiceReference serRef = getProviderForAccount(accountID); if (serRef == null) { return false; } BundleContext bundleContext = getBundleContext(); ProtocolProviderService protocolProvider = (ProtocolProviderService) bundleContext.getService(serRef); try { protocolProvider.unregister(); } catch (OperationFailedException ex) { logger.error( "Failed to unregister protocol provider for account : " + accountID + " caused by: " + ex); } ServiceRegistration registration; synchronized (registeredAccounts) { registration = registeredAccounts.remove(accountID); } if (registration == null) { return false; } // Kill the service. registration.unregister(); return true; }
/** Purge image with the given resourcename from the cache. */ public void purgeImage(String imgfile) { if (loadedimages.containsKey(imgfile)) loadedimages.remove(imgfile); }
/** Remove the servlet with a specific name */ public void removeServletByName(String servletName) throws TomcatException { servlets.remove(servletName); }
public void removeContainer(Container ct) { containers.remove(ct.getPath()); }
public void removeAttribute(String name) { attributes.remove(name); }
/** * Sets the TabularData to the AaplicationTable * * @param data The TabularData to be set to the AaplicationTable */ public void setAlarmTable(TabularData data) throws Exception { AgentException ae = null; for (Enumeration e = data.enumerate(); e.hasMoreElements(); ) { Object[] index = (Object[]) e.nextElement(); CompositeData comp = data.getRow(index); if (table != null) entry = (AlarmEntry) Utilities.getEntryFromCompositeData(table, comp, indexNames, instrClassName); else if (vec != null) entry = (AlarmEntry) Utilities.getEntryFromCompositeData(vec, comp, indexNames, instrClassName); if (comp.getOperationType().equals(CompositeData.CREATED)) { // create new entry if (entry != null) throw new AgentException("Row already exist", CommonUtils.ROWCREATIONFAILED); // no i18n entry = new AlarmEntry(); if (table != null) table.put(index, entry); else if (vec != null) vec.addElement(entry); for (Enumeration ce = comp.enumerate(); ce.hasMoreElements(); ) { String key = (String) ce.nextElement(); try { Utilities.setField(entry, instrClassName, key, comp.getDataItem(key)); } catch (AgentException aexp) { ae = aexp; } } } else if (comp.getOperationType().equals(CompositeData.DELETED)) { if (table != null) { for (Enumeration en = table.keys(); en.hasMoreElements(); ) { Object keyObject = en.nextElement(); if (entry.equals(table.get(keyObject))) table.remove(keyObject); } } else if (vec != null) if (!vec.removeElement(entry)) throw new AgentException("Invalid Index", CommonUtils.INVALIDINDEX); // no i18n data.deleteRow(index); } else if (comp.getOperationType().equals(CompositeData.MODIFIED)) { for (Enumeration ce = comp.enumerate(); ce.hasMoreElements(); ) { String key = (String) ce.nextElement(); if (!comp.isModified(key)) continue; try { Utilities.setField(entry, instrClassName, key, comp.getDataItem(key)); } catch (AgentException aexp) { ae = aexp; } } } comp.setOperationType(CompositeData.NOCHANGES); } if (ae != null) throw ae; }