1 87 package org.codehaus.loom.components.extensions; 88 89 import java.io.File ; 90 import java.util.ArrayList ; 91 92 import org.codehaus.loom.components.extensions.pkgmgr.ExtensionManager; 93 import org.codehaus.loom.components.extensions.pkgmgr.OptionalPackage; 94 import org.codehaus.spice.salt.i18n.ResourceManager; 95 import org.codehaus.spice.salt.i18n.Resources; 96 import org.codehaus.dna.Active; 97 import org.codehaus.dna.Configurable; 98 import org.codehaus.dna.Configuration; 99 import org.codehaus.dna.ConfigurationException; 100 import org.codehaus.dna.LogEnabled; 101 import org.codehaus.dna.Logger; 102 103 109 public class DefaultExtensionManager 110 extends org.codehaus.loom.components.extensions.pkgmgr.impl.DefaultExtensionManager 111 implements LogEnabled, Configurable, Active, ExtensionManager 112 { 113 private final static Resources REZ = 114 ResourceManager.getPackageResources( DefaultExtensionManager.class ); 115 116 private Logger m_logger; 117 private File m_extDir; 118 119 public void enableLogging( final Logger logger ) 120 { 121 m_logger = logger; 122 } 123 124 public void configure( Configuration configuration ) 125 throws ConfigurationException 126 { 127 final String extDir = 128 configuration.getChild( "extensions-dir" ).getValue(); 129 m_extDir = new File ( extDir ); 130 } 131 132 public void initialize() 133 throws Exception 134 { 135 setPath( new File []{m_extDir} ); 136 rescanPath(); 137 } 138 139 public void dispose() 140 { 141 clearCache(); 142 } 143 144 151 public File [] getPaths() 152 { 153 return super.getPaths(); 154 } 155 156 164 public void rescanPath() 165 { 166 super.scanPath(); 167 168 if( m_logger.isDebugEnabled() ) 170 { 171 final ArrayList list = new ArrayList (); 172 final OptionalPackage[] optionalPackages = getAllOptionalPackages(); 173 for( int i = 0; i < optionalPackages.length; i++ ) 174 { 175 list.add( optionalPackages[ i ].getFile() ); 176 } 177 178 final String message = 179 REZ.format( "extension.packages.notice", list ); 180 m_logger.debug( message ); 181 } 182 } 183 184 protected void debug( final String message ) 185 { 186 m_logger.debug( message ); 187 } 188 } 189 | Popular Tags |