Class ProjectLauncher
- java.lang.Object
-
- aQute.bnd.osgi.Domain
-
- aQute.bnd.osgi.Processor
-
- aQute.bnd.build.ProjectLauncher
-
- All Implemented Interfaces:
Constants,Registry,Report,Reporter,java.io.Closeable,java.lang.AutoCloseable,java.lang.Iterable<java.lang.String>
- Direct Known Subclasses:
JUnitLauncher
public abstract class ProjectLauncher extends Processor
A Project Launcher is a base class to be extended by launchers. Launchers are JARs that launch a framework and install a number of bundles and then run the framework. A launcher jar must specify a Launcher-Class manifest header. This class is instantiated and cast to a LauncherPlugin. This plug in is then asked to provide a ProjectLauncher. This project launcher is then used by the project to run the code. Launchers must extend this class.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classProjectLauncher.LiveCodingstatic interfaceProjectLauncher.NotificationListenerstatic classProjectLauncher.NotificationType-
Nested classes/interfaces inherited from class aQute.bnd.osgi.Processor
Processor.CL, Processor.FileLine
-
Nested classes/interfaces inherited from interface aQute.service.reporter.Report
Report.Location
-
Nested classes/interfaces inherited from interface aQute.service.reporter.Reporter
Reporter.SetLocation
-
-
Field Summary
Fields Modifier and Type Field Description static intACTIVATOR_ERRORprivate java.util.List<java.lang.String>activatorsprivate java.util.Collection<java.lang.String>agentsprotected BuilderInstructionsbuilderInstrsstatic intCANCELEDprivate java.util.List<java.lang.String>classpathprivate java.io.Filecwdstatic intDUPLICATE_BUNDLEstatic java.lang.StringEMBEDDED_ACTIVATORprotected java.lang.Appendableerrstatic intERRORprivate intframework(package private) static java.util.regex.PatternIGNORElaunch a framework internally.protected java.io.InputStreaminprivate Commandjavaprivate booleankeepprotected LauncherInstructionslauncherInstrsprivate java.util.Set<ProjectLauncher.NotificationListener>listeners(package private) static org.slf4j.Loggerloggerstatic intNONEstatic intOKprivate java.util.List<java.lang.Runnable>onUpdateprotected java.lang.Appendableoutprivate Projectprojectstatic intRESOLVE_ERRORprivate java.util.List<java.lang.String>runbundlesprivate booleanrunframeworkrestartprivate java.util.List<java.lang.String>runprogramargsprivate java.util.Map<java.lang.String,java.lang.String>runpropertiesprivate Parametersrunsystemcapabilitiesprivate Parametersrunsystempackagesprivate java.util.List<java.lang.String>runvmstatic intSERVICESstatic intSTOPPEDprivate java.io.FilestorageDirstatic intTIMEDOUTprivate longtimeoutprivate booleantracestatic intUPDATE_NEEDEDstatic intWARNING-
Fields inherited from class aQute.bnd.osgi.Processor
LIST_SPLITTER, log
-
Fields inherited from interface aQute.bnd.osgi.Constants
ACCESS_ATTRIBUTE, AUGMENT, AUGMENT_CAPABILITY_DIRECTIVE, AUGMENT_RANGE_ATTRIBUTE, AUGMENT_REQUIREMENT_DIRECTIVE, AUTOMATIC_MODULE_NAME, BASELINE, BASELINEREPO, BLUEPRINT_TIMEOUT_ATTRIBUTE, BLUEPRINT_WAIT_FOR_DEPENDENCIES_ATTRIBUTE, BND_ADDXMLTOTEST, BND_LASTMODIFIED, BNDDRIVER, BNDDRIVER_ANT, BNDDRIVER_BND, BNDDRIVER_ECLIPSE, BNDDRIVER_GRADLE, BNDDRIVER_GRADLE_NATIVE, BNDDRIVER_INTELLIJ, BNDDRIVER_MAVEN, BNDDRIVER_OSMORC, BNDDRIVER_SBT, BSN_SOURCE_SUFFIX, BUILDERIGNORE, BUILDFILES, BUILDPACKAGES, BUILDPATH, BUILDREPO, BUMPPOLICY, BUNDLE_ACTIVATIONPOLICY, BUNDLE_ACTIVATOR, BUNDLE_BLUEPRINT, BUNDLE_CATEGORY, BUNDLE_CLASSPATH, BUNDLE_CONTACTADDRESS, BUNDLE_CONTRIBUTORS, BUNDLE_COPYRIGHT, BUNDLE_DESCRIPTION, BUNDLE_DEVELOPERS, BUNDLE_DOCURL, BUNDLE_ICON, BUNDLE_LICENSE, BUNDLE_LOCALIZATION, BUNDLE_MANIFESTVERSION, BUNDLE_NAME, BUNDLE_NATIVECODE, BUNDLE_REQUIREDEXECUTIONENVIRONMENT, BUNDLE_SCM, BUNDLE_SPECIFIC_HEADERS, BUNDLE_SYMBOLIC_NAME_ATTRIBUTE, BUNDLE_SYMBOLICNAME, BUNDLE_UPDATELOCATION, BUNDLE_VENDOR, BUNDLE_VERSION, BUNDLE_VERSION_ATTRIBUTE, BUNDLEANNOTATIONS, CACHEDIR, CARDINALITY_DIRECTIVE, CDIANNOTATIONS, CHECK, CLASS_ATTRIBUTE, CLASSPATH, COMMAND_DIRECTIVE, COMPILER_SOURCE, COMPILER_TARGET, COMPONENT_ACTIVATE, COMPONENT_CONFIGURATION_POLICY, COMPONENT_DEACTIVATE, COMPONENT_DESCRIPTORS, COMPONENT_DESIGNATE, COMPONENT_DESIGNATEFACTORY, COMPONENT_DYNAMIC, COMPONENT_ENABLED, COMPONENT_FACTORY, COMPONENT_GREEDY, COMPONENT_IMMEDIATE, COMPONENT_IMPLEMENTATION, COMPONENT_MODIFIED, COMPONENT_MULTIPLE, COMPONENT_NAME, COMPONENT_NAMESPACE, COMPONENT_OPTIONAL, COMPONENT_PROPERTIES, COMPONENT_PROVIDE, COMPONENT_SERVICEFACTORY, COMPONENT_VERSION, componentDirectives, COMPRESSION, CONDITIONAL_PACKAGE, CONDITIONALPACKAGE, CONDUIT, CONNECTION_SETTINGS, CONSUMER_POLICY, CONTRACT, CREATED_BY, CURRENT_BUNDLESYMBOLICNAME, CURRENT_BUNDLEVERSION, CURRENT_PACKAGE, CURRENT_USES, CURRENT_VERSION, DEBUG, DEFAULT_BAR_EXTENSION, DEFAULT_BND_EXTENSION, DEFAULT_BNDRUN_EXTENSION, DEFAULT_CHARSET, DEFAULT_DO_NOT_COPY, DEFAULT_JAR_EXTENSION, DEFAULT_LAUNCHER_BSN, DEFAULT_PREPROCESSS_MATCHERS, DEFAULT_PROP_BIN_DIR, DEFAULT_PROP_SRC_DIR, DEFAULT_PROP_TARGET_DIR, DEFAULT_PROP_TESTBIN_DIR, DEFAULT_PROP_TESTSRC_DIR, DEFAULT_TESTER_BSN, DEFINE_CONTRACT, DEPENDSON, DEPLOY, DEPLOYREPO, DESCRIPTION_ATTRIBUTE, DIFFIGNORE, DIFFPACKAGES, DIGESTS, directives, DISTRO, DONOTCOPY, DSANNOTATIONS, DSANNOTATIONS_OPTIONS, DUPLICATE_MARKER, DYNAMICIMPORT_PACKAGE, EE_ATTRIBUTE, EEPROFILE, EEPROFILE_AUTO_ATTRIBUTE, EFFECTIVE_DIRECTIVE, EMBEDDED_REPO, EMPTY, EMPTY_HEADER, EXCLUDE_DIRECTIVE, EXECUTABLE, EXPERIMENTS, EXPORT, EXPORT_APIGUARDIAN, EXPORT_BSN, EXPORT_CONTENTS, EXPORT_NAME, EXPORT_PACKAGE, EXPORT_SERVICE, EXPORT_TYPE, EXPORT_VERSION, EXPORTS_ATTRIBUTE, EXPORTTYPE, EXTENSION, EXTENSION_DIRECTIVE, FAIL_OK, FILTER_DIRECTIVE, FIXUPMESSAGES, FIXUPMESSAGES_IS_DIRECTIVE, FIXUPMESSAGES_IS_ERROR, FIXUPMESSAGES_IS_IGNORE, FIXUPMESSAGES_IS_WARNING, FIXUPMESSAGES_REPLACE_DIRECTIVE, FIXUPMESSAGES_RESTRICT_DIRECTIVE, FRAGMENT_ATTACHMENT_DIRECTIVE, FRAGMENT_HOST, FROM_DIRECTIVE, GENERATE, GESTALT, GESTALT_BATCH, GESTALT_CI, GESTALT_INTERACTIVE, GESTALT_OFFLINE, GESTALT_SHELL, GROUPID, headers, IDENTITY_INITIAL_RESOURCE, IDENTITY_SYSTEM_RESOURCE, IGNORE_ATTRIBUTE, IGNORE_PACKAGE, IGNORE_STANDALONE, IMPORT_DIRECTIVE, IMPORT_PACKAGE, IMPORT_PRIVATE, IMPORT_REFERENCE, IMPORT_SERVICE, importDirectives, INCLUDE, INCLUDE_DIRECTIVE, INCLUDE_RESOURCE, INCLUDEPACKAGE, INCLUDERESOURCE, INIT, INTERNAL_BUNDLESYMBOLICNAME_DIRECTIVE, INTERNAL_BUNDLEVERSION_DIRECTIVE, INTERNAL_EXPORT_TO_MODULES_DIRECTIVE, INTERNAL_EXPORTED_DIRECTIVE, INTERNAL_MODULE_VERSION_DIRECTIVE, INTERNAL_OPEN_TO_MODULES_DIRECTIVE, INTERNAL_SOURCE_DIRECTIVE, INVALIDFILENAMES, JAVA, JAVA_DEBUG, JAVAAGENT, JAVAC, JAVAC_ENCODING, JAVAC_PROFILE, JAVAC_SOURCE, JAVAC_TARGET, JIDENTIFIER, JPMS_MODULE_INFO, JPMS_MODULE_INFO_OPTIONS, KEYSTORE_LOCATION_DIRECTIVE, KEYSTORE_PASSWORD_DIRECTIVE, KEYSTORE_PROVIDER_DIRECTIVE, LANGUAGE_ATTRIBUTE, LAUNCH_ACTIVATION_EAGER, LAUNCH_ACTIVATORS, LAUNCH_RUNBUNDLES_ATTRS, LAUNCH_STARTLEVEL_DEFAULT, LAUNCH_TRACE, LAUNCHER_PLUGIN, LIB_DIRECTIVE, LINK_ATTRIBUTE, LITERAL_ATTRIBUTE, MAIN_CLASS, MAKE, MANDATORY_DIRECTIVE, MANIFEST, MANIFEST_NAME, MAVEN_DEPENDENCIES, MAVEN_RELEASE, MAVEN_SCOPE, META_PERSISTENCE, METAPACKAGES, METATYPE, METATYPE_ANNOTATIONS, METATYPE_ANNOTATIONS_OPTIONS, MIME_TYPE_BUNDLE, MIME_TYPE_JAR, MODULE_INFO_CLASS, MODULES_ATTRIBUTE, NAME_ATTRIBUTE, NAMESECTION, NAMESPACE_STEM, NO_IMPORT_DIRECTIVE, NOANNOTATIONS, NOBUILDINCACHE, NOBUNDLES, NOCLASSFORNAME, NODEFAULTVERSION, NOEE, NOEXTRAHEADERS, NOIMPORTJAVA, NOJUNIT, NOJUNITOSGI, NOMANIFEST, NOT_A_BUNDLE_S, NOUSES, OPTIONAL, options, OSGI_SYNTAX_HEADERS, OSNAME_ATTRIBUTE, OSVERSION_ATTRIBUTE, OUTPUT, OUTPUTMASK, PACKAGE, PACKAGEINFOTYPE, PATH_DIRECTIVE, PEDANTIC, PLUGIN, PLUGINPATH, PLUGINPATH_SHA1_ATTR, PLUGINPATH_URL_ATTR, POM, PREPROCESSMATCHERS, PRESENCE_DIRECTIVE, PRIVATE_DIRECTIVE, PRIVATE_PACKAGE, PRIVATEPACKAGE, PROCESSOR_ATTRIBUTE, PROFILE, PROVIDE_CAPABILITY, PROVIDE_DIRECTIVE, PROVIDER_POLICY, PROVIDER_TYPE_DIRECTIVE, RELEASEREPO, REMOTEWORKSPACE, REMOVE_ATTRIBUTE_DIRECTIVE, REMOVEHEADERS, REPORTNEWER, REPOSITORIES, REPRODUCIBLE, REQUIRE_BND, REQUIRE_BUNDLE, REQUIRE_CAPABILITY, RESOLUTION, RESOLUTION_DIRECTIVE, RESOLUTION_DYNAMIC, RESOLVE, RESOURCEONLY, RUNBLACKLIST, RUNBUILDS, RUNBUNDLES, RUNBUNDLES_STARTLEVEL_ATTRIBUTE, RUNEE, RUNENV, RUNFRAMEWORK, RUNFRAMEWORK_NONE, RUNFRAMEWORK_SERVICES, RUNFRAMEWORKRESTART, RUNFW, RUNJDB, RUNKEEP, RUNNOREFERENCES, RUNOPTIONS, RUNOPTIONS_EAGER, RUNPATH, RUNPATH_LAUNCHER_DIRECTIVE, RUNPATH_MAIN_DIRECTIVE, RUNPROGRAMARGS, RUNPROPERTIES, RUNPROVIDEDCAPABILITIES, RUNREMOTE, RUNREPOS, RUNREQUIRE, RUNREQUIRES, RUNSTARTLEVEL, RUNSTARTLEVEL_BEGIN, RUNSTARTLEVEL_ORDER, RUNSTARTLEVEL_STEP, RUNSTORAGE, RUNSYSTEMCAPABILITIES, RUNSYSTEMPACKAGES, RUNTIMEOUT, RUNTRACE, RUNVM, SAVEMANIFEST, SELECTION_FILTER_ATTRIBUTE, SERVICE_COMPONENT, SERVICELOADER_NAMESPACE, SERVICELOADER_REGISTER_DIRECTIVE, SET_COMPONENT_DIRECTIVES, SET_COMPONENT_DIRECTIVES_1_1, SET_COMPONENT_DIRECTIVES_1_2, SIGN, SIGN_PASSWORD_DIRECTIVE, SIGNATURE_TEST, SINGLETON_DIRECTIVE, SIZE_ATTRIBUTE, SNAPSHOT, SOURCEPATH, SOURCES, SPECIFICATION_VERSION, SPLIT_PACKAGE_DIRECTIVE, STALECHECK, STANDALONE, STATIC_ATTRIBUTE, STRICT, SUB, SUBSTITUTE_ATTRIBUTE, SYSTEMPROPERTIES, TESTCASES, TESTCONTINUOUS, TESTER, TESTER_PLUGIN, TESTPACKAGES, TESTPATH, TESTREPORT, TESTSOURCES, TESTSUITES, TESTUNRESOLVED, TOOL, TRANSITIVE_ATTRIBUTE, TSTAMP, UNDERTEST, UPTO, USES_DIRECTIVE, USES_USES, VALID_PROPERTY_TYPES, VERBOSE, VERSION_ATTR_HASH, VERSION_ATTR_LATEST, VERSION_ATTR_PROJECT, VERSION_ATTR_SNAPSHOT, VERSION_ATTRIBUTE, VERSION_FILTER, VISIBILITY_DIRECTIVE, WAB, WABLIB, WORKINGSET, WORKINGSET_MEMBER
-
-
Constructor Summary
Constructors Constructor Description ProjectLauncher(Project project)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description booleanaddActivator(java.lang.String e)voidaddClasspath(Container container)protected voidaddClasspath(Container container, java.util.List<java.lang.String> pathlist)protected voidaddClasspath(java.util.Collection<Container> path)voidaddDefault(java.lang.String defaultSpec)Add the specification for a set of bundles the runpath if it does not already is included.voidaddRunBundle(java.lang.String path)voidaddRunProgramArgs(java.lang.String arg)voidaddRunVM(java.lang.String arg)voidcalculatedProperties(java.util.Map<java.lang.String,java.lang.String> properties)Utility to calculate the final framework properties from settingsvoidcancel()voidcleanup()Is called after the process exists.Jarexecutable()Create a self executable.java.util.Collection<java.lang.String>getActivators()java.util.Collection<java.lang.String>getArguments()Deprecated.java.util.Collection<java.lang.String>getClasspath()java.io.FilegetCwd()java.lang.StringgetJavaExecutable(java.lang.String java)abstract java.lang.StringgetMainTypeName()java.util.Set<ProjectLauncher.NotificationListener>getNotificationListeners()ProjectgetProject()java.util.Collection<java.lang.String>getRunBundles()java.util.Map<java.lang.String,java.lang.String>getRunEnv()private intgetRunframework(java.lang.String property)intgetRunFramework()Either NONE or SERVICES to indicate how the remote end launches.java.lang.StringgetRunJdb()java.util.List<java.lang.String>getRunpath()java.util.Collection<java.lang.String>getRunProgramArgs()java.util.Map<java.lang.String,java.lang.String>getRunProperties()java.util.List<? extends RunSession>getRunSessions()Get the run sessions.java.util.Collection<java.lang.String>getRunVM()java.io.FilegetStorageDir()java.lang.StringgetSystemCapabilities()ParametersgetSystemCapabilitiesParameters()java.util.Map<java.lang.String,? extends java.util.Map<java.lang.String,java.lang.String>>getSystemPackages()longgetTimeout()booleangetTrace()protected intinvoke(java.lang.Class<?> main, java.lang.String[] args)booleanisKeep()booleanisRunFrameworkRestart()intlaunch()ProjectLauncher.LiveCodingliveCoding(java.util.concurrent.Executor executor, java.util.concurrent.ScheduledExecutorService scheduledExecutor)voidonUpdate(java.lang.Runnable update)voidprepare()Should be called when all the changes to the launchers are set.voidregisterForNotifications(ProjectLauncher.NotificationListener listener)protected voidreportResult(int result)voidsetCwd(java.io.File cwd)voidsetKeep(boolean keep)voidsetRunFramework(int n)voidsetStreams(java.lang.Appendable out, java.lang.Appendable err)Set the stderr and stdout streams for the output process.voidsetTimeout(long timeout, java.util.concurrent.TimeUnit unit)voidsetTrace(boolean level)private voidsetupStartlevels(java.util.Map<java.lang.String,java.lang.String> properties)Calculate the start level properties.intstart(java.lang.ClassLoader parent)voidupdate()protected voidupdateFromProject()Collect all the aspect from the project and set the local fields from them.protected voidvalidate()Validate some settingsvoidwrite(java.lang.String text)Write text to the debugged process as if it came from stdin.-
Methods inherited from class aQute.bnd.osgi.Processor
_basedir, _fileuri, _findfile, _frange, _native_capability, _propertiesdir, _propertiesname, _random, _thisfile, _uri, addBasicPlugin, addClose, addExtensions, addIncluded, addProperties, addProperties, append, appendPath, begin, beginHandleErrors, check, clear, close, concat, customize, decorated, decorated, doAttrbutes, doIncludeFile, doIncludeFile, endHandleErrors, error, error, exception, exists, findHeader, findHeader, findHeader, forceRefresh, formatArrays, get, get, getBase, getBaseURI, getChecksum, getClass, getDuration, getErrors, getExecutor, getFile, getFile, getFlattenedProperties, getFlattenedProperties, getHeader, getHeader, getHeader, getHeader, getIncluded, getInfo, getInfo, getInstructions, getJarFromName, getLine, getLoader, getLocation, getLogger, getMacroDomains, getManifestAsProperties, getMergedParameters, getParameters, getParent, getPlugin, getPlugins, getPlugins, getProfile, getPromiseFactory, getProperties, getPropertiesFile, getProperty, getProperty, getProperty, getPropertyKeys, getReplacer, getScheduledExecutor, getSelfAndAncestors, getSettings, getTop, getUnexpandedProperty, getUnprocessedProperty, getWarnings, is, isDuplicate, isExceptions, isFailOk, isInteractive, isMissingPlugin, isOk, isPedantic, isPerfect, isTrace, isTrue, iterator, join, join, join, join, join, join, keySet, lastModified, loadPlugins, loadProperties, makePrintable, merge, mergeLocalProperties, mergeProperties, mergeProperties, mergeProperties, mergeProperties, newHashMap, newList, newList, newMap, newMap, newSet, newSet, normalize, normalize, parseHeader, parseHeader, printClause, printClauses, printClauses, printExceptionSummary, printStackTrace, progress, progress, propertiesChanged, quote, read, refresh, removeBasicPlugin, removeClose, removeDuplicateMarker, replaceAll, replaceExtension, report, report, set, setBase, setExceptions, setFileMustExist, setForceLocal, setLocation, setParent, setPedantic, setProperties, setProperties, setProperties, setProperties, setProperty, setTypeSpecificPlugins, signal, since, split, split, split, spliterator, system, system, toFullHeaderPattern, toString, trace, unsetProperty, updateModified, use, warning
-
Methods inherited from class aQute.bnd.osgi.Domain
copyFrom, domain, domain, domain, domain, domain, domain, domain, getBundleActivator, getBundleCategory, getBundleClasspath, getBundleClassPath, getBundleContactAddress, getBundleCopyright, getBundleDescription, getBundleDocURL, getBundleName, getBundleNative, getBundleRequiredExecutionEnvironment, getBundleSymbolicName, getBundleVendor, getBundleVersion, getDynamicImportPackage, getExportContents, getExportPackage, getFragmentHost, getIcon, getImportPackage, getIncludeResource, getParameters, getParameters, getParameters, getParameters, getPrivatePackage, getProvideCapability, getRequireBundle, getRequireCapability, getRunblacklist, getRunee, isSources, normalizeKey, setAugment, setBundleActivator, setBundleClasspath, setBundleRequiredExecutionEnvironment, setBundleSymbolicName, setBundleVersion, setBundleVersion, setConditionalPackage, setExportContents, setExportPackage, setFailOk, setImportPackage, setIncludePackage, setIncludeResource, setPrivatePackage, setRunblacklist, setRunee, setRunfw, setRunRequires, setSources, setTranslation, translate, translate
-
-
-
-
Field Detail
-
EMBEDDED_ACTIVATOR
public static final java.lang.String EMBEDDED_ACTIVATOR
- See Also:
- Constant Field Values
-
logger
static final org.slf4j.Logger logger
-
project
private final Project project
-
onUpdate
private final java.util.List<java.lang.Runnable> onUpdate
-
timeout
private long timeout
-
classpath
private final java.util.List<java.lang.String> classpath
-
runbundles
private java.util.List<java.lang.String> runbundles
-
runvm
private final java.util.List<java.lang.String> runvm
-
runprogramargs
private final java.util.List<java.lang.String> runprogramargs
-
runframeworkrestart
private boolean runframeworkrestart
-
runproperties
private java.util.Map<java.lang.String,java.lang.String> runproperties
-
java
private Command java
-
runsystempackages
private Parameters runsystempackages
-
runsystemcapabilities
private Parameters runsystemcapabilities
-
activators
private final java.util.List<java.lang.String> activators
-
storageDir
private java.io.File storageDir
-
builderInstrs
protected BuilderInstructions builderInstrs
-
launcherInstrs
protected LauncherInstructions launcherInstrs
-
trace
private boolean trace
-
keep
private boolean keep
-
framework
private int framework
-
cwd
private java.io.File cwd
-
agents
private java.util.Collection<java.lang.String> agents
-
listeners
private java.util.Set<ProjectLauncher.NotificationListener> listeners
-
out
protected java.lang.Appendable out
-
err
protected java.lang.Appendable err
-
in
protected java.io.InputStream in
-
SERVICES
public static final int SERVICES
- See Also:
- Constant Field Values
-
NONE
public static final int NONE
- See Also:
- Constant Field Values
-
OK
public static final int OK
- See Also:
- Constant Field Values
-
WARNING
public static final int WARNING
- See Also:
- Constant Field Values
-
ERROR
public static final int ERROR
- See Also:
- Constant Field Values
-
TIMEDOUT
public static final int TIMEDOUT
- See Also:
- Constant Field Values
-
UPDATE_NEEDED
public static final int UPDATE_NEEDED
- See Also:
- Constant Field Values
-
CANCELED
public static final int CANCELED
- See Also:
- Constant Field Values
-
DUPLICATE_BUNDLE
public static final int DUPLICATE_BUNDLE
- See Also:
- Constant Field Values
-
RESOLVE_ERROR
public static final int RESOLVE_ERROR
- See Also:
- Constant Field Values
-
ACTIVATOR_ERROR
public static final int ACTIVATOR_ERROR
- See Also:
- Constant Field Values
-
STOPPED
public static final int STOPPED
- See Also:
- Constant Field Values
-
IGNORE
static final java.util.regex.Pattern IGNORE
launch a framework internally. I.e. do not start a separate process.
-
-
Constructor Detail
-
ProjectLauncher
public ProjectLauncher(Project project) throws java.lang.Exception
- Throws:
java.lang.Exception
-
-
Method Detail
-
validate
protected void validate()
Validate some settings
-
updateFromProject
protected void updateFromProject() throws java.lang.ExceptionCollect all the aspect from the project and set the local fields from them. Should be called after constructor has been called.- Throws:
java.lang.Exception
-
getRunframework
private int getRunframework(java.lang.String property)
-
addClasspath
public void addClasspath(Container container) throws java.lang.Exception
- Throws:
java.lang.Exception
-
addClasspath
protected void addClasspath(Container container, java.util.List<java.lang.String> pathlist) throws java.lang.Exception
- Throws:
java.lang.Exception
-
addClasspath
protected void addClasspath(java.util.Collection<Container> path) throws java.lang.Exception
- Throws:
java.lang.Exception
-
addRunBundle
public void addRunBundle(java.lang.String path)
-
getRunBundles
public java.util.Collection<java.lang.String> getRunBundles()
-
addRunVM
public void addRunVM(java.lang.String arg)
-
addRunProgramArgs
public void addRunProgramArgs(java.lang.String arg)
-
getRunpath
public java.util.List<java.lang.String> getRunpath()
-
getClasspath
public java.util.Collection<java.lang.String> getClasspath()
-
getRunVM
public java.util.Collection<java.lang.String> getRunVM()
-
getArguments
@Deprecated public java.util.Collection<java.lang.String> getArguments()
Deprecated.
-
getRunProgramArgs
public java.util.Collection<java.lang.String> getRunProgramArgs()
-
getRunProperties
public java.util.Map<java.lang.String,java.lang.String> getRunProperties()
-
getStorageDir
public java.io.File getStorageDir()
-
getMainTypeName
public abstract java.lang.String getMainTypeName()
-
update
public void update() throws java.lang.Exception- Throws:
java.lang.Exception
-
onUpdate
public void onUpdate(java.lang.Runnable update)
-
getJavaExecutable
public java.lang.String getJavaExecutable(java.lang.String java)
- Overrides:
getJavaExecutablein classProcessor
-
launch
public int launch() throws java.lang.Exception- Throws:
java.lang.Exception
-
start
public int start(java.lang.ClassLoader parent) throws java.lang.Exception- Throws:
java.lang.Exception
-
invoke
protected int invoke(java.lang.Class<?> main, java.lang.String[] args) throws java.lang.Exception- Throws:
java.lang.Exception
-
cleanup
public void cleanup()
Is called after the process exists. Can you be used to cleanup the properties file.
-
reportResult
protected void reportResult(int result)
-
setTimeout
public void setTimeout(long timeout, java.util.concurrent.TimeUnit unit)
-
getTimeout
public long getTimeout()
-
cancel
public void cancel() throws java.lang.Exception- Throws:
java.lang.Exception
-
getSystemPackages
public java.util.Map<java.lang.String,? extends java.util.Map<java.lang.String,java.lang.String>> getSystemPackages()
-
getSystemCapabilities
public java.lang.String getSystemCapabilities()
-
getSystemCapabilitiesParameters
public Parameters getSystemCapabilitiesParameters()
-
setKeep
public void setKeep(boolean keep)
-
isKeep
public boolean isKeep()
-
getTrace
public boolean getTrace()
-
prepare
public void prepare() throws java.lang.ExceptionShould be called when all the changes to the launchers are set. Will calculate whatever is necessary for the launcher.- Throws:
java.lang.Exception
-
getProject
public Project getProject()
-
addActivator
public boolean addActivator(java.lang.String e)
-
getActivators
public java.util.Collection<java.lang.String> getActivators()
-
getRunFramework
public int getRunFramework()
Either NONE or SERVICES to indicate how the remote end launches. NONE means it should not use the classpath to run a framework. This likely requires some dummy framework support. SERVICES means it should load the framework from the claspath.
-
setRunFramework
public void setRunFramework(int n)
-
addDefault
public void addDefault(java.lang.String defaultSpec) throws java.lang.ExceptionAdd the specification for a set of bundles the runpath if it does not already is included. This can be used by subclasses to ensure the proper jars are on the classpath.- Parameters:
defaultSpec- The default spec for default jars- Throws:
java.lang.Exception
-
executable
public Jar executable() throws java.lang.Exception
Create a self executable.- Throws:
java.lang.Exception
-
getCwd
public java.io.File getCwd()
-
setCwd
public void setCwd(java.io.File cwd)
-
getRunJdb
public java.lang.String getRunJdb()
-
getRunEnv
public java.util.Map<java.lang.String,java.lang.String> getRunEnv()
-
registerForNotifications
public void registerForNotifications(ProjectLauncher.NotificationListener listener)
-
getNotificationListeners
public java.util.Set<ProjectLauncher.NotificationListener> getNotificationListeners()
-
setStreams
public void setStreams(java.lang.Appendable out, java.lang.Appendable err)Set the stderr and stdout streams for the output process. The debugged process must append its output (i.e. write operation in the process under debug) to the given appendables.- Parameters:
out- std outerr- std err
-
write
public void write(java.lang.String text) throws java.lang.ExceptionWrite text to the debugged process as if it came from stdin.- Parameters:
text- the text to write- Throws:
java.lang.Exception
-
getRunSessions
public java.util.List<? extends RunSession> getRunSessions() throws java.lang.Exception
Get the run sessions. If this return null, then launch on this object should be used, otherwise each returned object provides a remote session.- Throws:
java.lang.Exception
-
calculatedProperties
public void calculatedProperties(java.util.Map<java.lang.String,java.lang.String> properties) throws java.lang.ExceptionUtility to calculate the final framework properties from settings- Throws:
java.lang.Exception
-
setupStartlevels
private void setupStartlevels(java.util.Map<java.lang.String,java.lang.String> properties) throws java.lang.Exception, java.io.IOExceptionCalculate the start level properties. This code is matched to the aQute.lib classStartLevelRuntimeHandlerthat handles the runtime details.The -runbundles instruction can carry a `startlevel` attribute. If any bundle has this start level attribute we control the startlevel process. If no bundle has this attribute, then the start level handling is not doing anything. The remaining section assumes that there is at least 1 bundle with a set startlevel attribute.
The
StartLevelRuntimeHandler.LAUNCH_STARTLEVEL_DEFAULTis then set to the maximum startlevel + 1. This signals that theStartLevelRuntimeHandlerclass handles the runtime aspects.The
Constants.RUNSTARTLEVEL_BEGINcontrols the beginning start level of the framework after the framework itself is started. The user can set this or else it is set to the maxmum startlevel+2.During runtime, the handler must be created with
StartLevelRuntimeHandler.create(aQute.lib.startlevel.Trace, Map)before the framework is created since it may change the properties. I.e. the properties given to theFrameworkFactorymust be the same object as given to the create method. One thing is that it will set theConstants.RUNSTARTLEVEL_BEGINto ensure that all bundles are installed at level 1.After the framework is created, the runtime handler
StartLevelRuntimeHandler.beforeStart(org.osgi.framework.launch.Framework)must be called. This will prepare that bundles will get their proper start level when installed.After the set of bundles is installed, the
StartLevelRuntimeHandler.afterStart()is called to raise the start level to the desired level. Either the setConstants.RUNSTARTLEVEL_BEGINor the maximum level + 2.- Throws:
java.lang.Exceptionjava.io.IOException
-
liveCoding
public ProjectLauncher.LiveCoding liveCoding(java.util.concurrent.Executor executor, java.util.concurrent.ScheduledExecutorService scheduledExecutor) throws java.lang.Exception
- Throws:
java.lang.Exception
-
isRunFrameworkRestart
public boolean isRunFrameworkRestart()
-
-