Browse Source

Fake tools.jar as an optional package

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271204 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Donald 23 years ago
parent
commit
a1e045b36e
1 changed files with 51 additions and 0 deletions
  1. +51
    -0
      proposal/myrmidon/src/java/org/apache/myrmidon/components/extensions/DefaultExtensionManager.java

+ 51
- 0
proposal/myrmidon/src/java/org/apache/myrmidon/components/extensions/DefaultExtensionManager.java View File

@@ -9,6 +9,10 @@ package org.apache.myrmidon.components.extensions;

import java.io.File;
import org.apache.avalon.excalibur.extension.DefaultPackageRepository;
import org.apache.avalon.excalibur.extension.Extension;
import org.apache.avalon.excalibur.extension.OptionalPackage;
import org.apache.avalon.excalibur.i18n.ResourceManager;
import org.apache.avalon.excalibur.i18n.Resources;
import org.apache.avalon.excalibur.util.StringUtil;
import org.apache.avalon.framework.activity.Disposable;
import org.apache.avalon.framework.activity.Initializable;
@@ -29,6 +33,11 @@ public class DefaultExtensionManager
extends DefaultPackageRepository
implements LogEnabled, Parameterizable, Initializable, Disposable, ExtensionManager
{
private static final Resources REZ =
ResourceManager.getPackageResources( DefaultExtensionManager.class );

private static final String TOOLS_JAR = File.separator + "lib" + File.separator + "tools.jar";

private Logger m_logger;

private String m_path;
@@ -65,6 +74,13 @@ public class DefaultExtensionManager
setPath( dirs );

scanPath();

final Extension extension = createToolsExtension();
final File jar = getToolsJar();
final Extension[] available = new Extension[]{extension};
final Extension[] required = new Extension[ 0 ];
final OptionalPackage toolsPackage = new OptionalPackage( jar, available, required );
cacheOptionalPackage( toolsPackage );
}

public void dispose()
@@ -76,4 +92,39 @@ public class DefaultExtensionManager
{
m_logger.debug( message );
}

private File getToolsJar()
throws Exception
{
final String javaHome = System.getProperty( "java.home" );
String jdkHome;
if( javaHome.endsWith( "jre" ) )
{
jdkHome = javaHome.substring( 0, javaHome.length() - 4 );
}
else
{
jdkHome = javaHome;
}

final File tools = new File( jdkHome + TOOLS_JAR );
if( !tools.exists() )
{
final String message = REZ.getString( "extension.missing-tools.error" );
throw new Exception( message );
}

return tools;
}

private Extension createToolsExtension()
{
return new Extension( "com.sun.tools",
"1.0",
"com.sun",
"1.0",
"com.sun",
"com.sun",
null );
}
}

Loading…
Cancel
Save