org.apache.maven.dotnet.executable
Interface NetExecutableFactory

All Known Implementing Classes:
NetExecutableFactoryImpl

public interface NetExecutableFactory

Provides services to obtain executables. This interface is intended to be used by AbstractMojo implementations to obtain the appropriate executable or compiler.

Author:
Shane Isbell

Field Summary
static java.lang.String ROLE
          Role used to register component implementations with the container.
 
Method Summary
 CompilerExecutable getCompilerExecutableFor(CompilerRequirement compilerRequirement, CompilerConfig compilerConfig, org.apache.maven.project.MavenProject project, java.io.File assemblyPath)
          Returns an executable for compiling .NET applications.
 NetExecutable getJavaExecutableFromRepository(VendorInfo vendorInfo, java.util.List<java.lang.String> commands)
           
 NetExecutable getNetExecutableFor(java.lang.String vendor, java.lang.String frameworkVersion, java.lang.String profile, java.util.List<java.lang.String> commands, java.io.File netHome)
          Returns an executable that matches the vendor, framework version and profile.
 NetExecutable getNetExecutableFromRepository(java.lang.String groupId, java.lang.String artifactId, VendorInfo vendorInfo, java.io.File localRepository, java.util.List<java.lang.String> commands, boolean isIsolatedAppDomain)
          Returns an executable that resides within a maven repository.
 NetExecutable getPluginLoaderFor(java.lang.String groupId, java.lang.String artifactId, VendorInfo vendorInfo, java.lang.String localRepository, java.io.File parameterFile, java.lang.String mojoName)
          Returns a plugin loader for loading and executing a .NET plugin.
 

Field Detail

ROLE

static final java.lang.String ROLE
Role used to register component implementations with the container.

Method Detail

getNetExecutableFor

NetExecutable getNetExecutableFor(java.lang.String vendor,
                                  java.lang.String frameworkVersion,
                                  java.lang.String profile,
                                  java.util.List<java.lang.String> commands,
                                  java.io.File netHome)
                                  throws PlatformUnsupportedException
Returns an executable that matches the vendor, framework version and profile. These are typically framework-vendor executables.

Parameters:
vendor - the vendor of the executable
frameworkVersion - the version of the .NET framework that the executable works under
profile - the profile of the executable plugin. This is used to differentiate an executable that matches the same platform and framework version.
commands - the user-defined command options to use with the executable
netHome - the install root of the .NET framework
Returns:
the executable that matches the vendor, framework version and profile
Throws:
PlatformUnsupportedException - if no executable is found

getNetExecutableFromRepository

NetExecutable getNetExecutableFromRepository(java.lang.String groupId,
                                             java.lang.String artifactId,
                                             VendorInfo vendorInfo,
                                             java.io.File localRepository,
                                             java.util.List<java.lang.String> commands,
                                             boolean isIsolatedAppDomain)
                                             throws PlatformUnsupportedException
Returns an executable that resides within a maven repository. These are typically user-implemented executables.

Parameters:
groupId - the group ID of the executable artifact (as specified within the maven repo)
artifactId - the artifact ID of the executable artifact (as specified within the maven repo)
vendorInfo - the additional vendor information used to decide how to execute the net executable
localRepository - the local maven repository where the executable resides.
isIsolatedAppDomain - the executable can load up assemblies into an isolated application domain. This should be set to true if the application needs to load up assemblies into another app domain and to remotly invoke methods on classes in the other app domain, otherwise it should be set to false.
Returns:
the executable that resides within a maven repository.
Throws:
PlatformUnsupportedException - if no executable is found

getJavaExecutableFromRepository

NetExecutable getJavaExecutableFromRepository(VendorInfo vendorInfo,
                                              java.util.List<java.lang.String> commands)
                                              throws PlatformUnsupportedException
Parameters:
vendorInfo -
commands -
Returns:
Throws:
PlatformUnsupportedException

getCompilerExecutableFor

CompilerExecutable getCompilerExecutableFor(CompilerRequirement compilerRequirement,
                                            CompilerConfig compilerConfig,
                                            org.apache.maven.project.MavenProject project,
                                            java.io.File assemblyPath)
                                            throws PlatformUnsupportedException
Returns an executable for compiling .NET applications.

Parameters:
compilerRequirement - the requirements for the compiler
compilerConfig - the configuration for the compiler
project - the maven project
assemblyPath - an optional parameter for replacing the system assemblies
Returns:
the executable for compiling .NET applications
Throws:
PlatformUnsupportedException - if no executable is found

getPluginLoaderFor

NetExecutable getPluginLoaderFor(java.lang.String groupId,
                                 java.lang.String artifactId,
                                 VendorInfo vendorInfo,
                                 java.lang.String localRepository,
                                 java.io.File parameterFile,
                                 java.lang.String mojoName)
                                 throws PlatformUnsupportedException
Returns a plugin loader for loading and executing a .NET plugin.

Parameters:
groupId - the group ID of the executable artifact (as specified within the maven repo)
artifactId - the artifact ID of the executable artifact (as specified within the maven repo)
vendorInfo - the additional vendor information used to decide how to execute the net executable
localRepository - the local maven repository where the executable resides.
parameterFile - the file containing parameter information to inject into the .NET plugin
mojoName - the name of the .NET Mojo implementation
Returns:
the plugin loader for executing a .NET plugin
Throws:
PlatformUnsupportedException - if no executable is found


Copyright © 2007 NMaven. All Rights Reserved.