Changeset 6595
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/src/docbook/developer/extensions.xml
r6443 r6595 335 335 new values in the extension's <sgmltag class="starttag">about</sgmltag> 336 336 tag. 337 </para> 338 </tip> 339 340 <tip> 341 <title>Start out in disabled state</title> 342 343 <para> 344 The <sgmltag class="starttag">about</sgmltag> tag can be used to specify 345 that an extension should start out in disabled state. This can be useful 346 if there are multiple variants of an extension or if some extensions 347 are considered "advanced mode" and only should be enabled after some 348 serious thinking. To use this feature, simply set <code><about disabled="1"></code> 349 in the XML file. 337 350 </para> 338 351 </tip> -
trunk/src/core/net/sf/basedb/util/extensions/manager/processor/RegisterExtensionsProcessor.java
r6444 r6595 28 28 import java.util.List; 29 29 30 import net.sf.basedb.core.plugin.About; 30 31 import net.sf.basedb.util.FileUtil; 32 import net.sf.basedb.util.Values; 33 import net.sf.basedb.util.extensions.ExtendedAbout; 31 34 import net.sf.basedb.util.extensions.Extension; 32 35 import net.sf.basedb.util.extensions.ExtensionPoint; … … 40 43 import net.sf.basedb.util.extensions.manager.ProcessResults; 41 44 import net.sf.basedb.util.extensions.manager.ExtensionsFile.WriteableExtensionsFile; 45 import net.sf.basedb.util.extensions.manager.Settings; 42 46 import net.sf.basedb.util.extensions.manager.filter.ValidAndNewOrModifiedFilter; 43 47 import net.sf.basedb.util.extensions.xml.XmlLoader; … … 339 343 { 340 344 wFile.open(); 341 int num = registerExtensions(data, registry, forceUpdate || xtFile.wasModified());345 int num = registerExtensions(data, manager, forceUpdate || xtFile.wasModified()); 342 346 if (num > 0 && results != null) 343 347 { … … 444 448 } 445 449 446 private int registerExtensions(FileData data, Registry registry, boolean forceUpdate)450 private int registerExtensions(FileData data, ExtensionsManager manager, boolean forceUpdateOrModified) 447 451 throws IOException 448 452 { 449 453 int numRegistered = 0; 454 Registry registry = manager.getRegistry(); 455 Settings settings = manager.getSettings(); 450 456 for (Extension<?> ext : data.extensions) 451 457 { 452 if (forceUpdate || !registry.extensionIsRegistered(ext.getId())) 458 boolean isNew = !registry.extensionIsRegistered(ext.getId()); 459 if (forceUpdateOrModified || isNew) 453 460 { 454 461 log.debug("Registering extension: " + ext); … … 459 466 registry.registerExtension(ext, data.writeableFile.getExtensionsFile().getClassLoader()); 460 467 numRegistered++; 468 // Check disabled="*" attribute for new extensions 469 // isNew==true also at server startup, so we must also check 'forceUpdate' 470 // since it is set when installing (forceUpdateOrModified is also set for modified files) 471 if (isNew && forceUpdate) 472 { 473 // Check if disabled="1" is set in <about> 474 About about = ext.getAbout(); 475 if (about instanceof ExtendedAbout) 476 { 477 boolean disable = Values.getBoolean(((ExtendedAbout)ext.getAbout()).getAttribute("disabled")); 478 settings.enableExtension(ext.getId(), !disable); 479 } 480 } 461 481 } 462 482 }
Note: See TracChangeset
for help on using the changeset viewer.