public static Kernel startJanusWithModuleType(Class<? extends Module> platformModule, Class<? extends Agent> agentCls, Object... params)
			throws Exception {
		Class<? extends Module> startupModule = platformModule;
		if (startupModule == null) {
			startupModule = JanusConfig.getSystemPropertyAsClass(Module.class, JanusConfig.INJECTION_MODULE_NAME,
					JanusConfig.INJECTION_MODULE_NAME_VALUE);
		}
		assert startupModule != null : "No platform injection module"; //$NON-NLS-1$
		return startJanusWithModule(startupModule.newInstance(), agentCls, params);
	}
public static Kernel startJanusWithModuleType ( Class < ? extends Module > platformModule , Class < ? extends Agent > agentCls , Object ... params ) throws Exception { Class < ? extends Module > startupModule = platformModule ; if ( startupModule == null ) { startupModule = JanusConfig . getSystemPropertyAsClass ( Module . class , JanusConfig . INJECTION_MODULE_NAME , JanusConfig . INJECTION_MODULE_NAME_VALUE ) ; } assert startupModule != null : "No platform injection module" ; return startJanusWithModule ( startupModule . newInstance ( ) , agentCls , params ) ; }
Launch the Janus kernel and the first agent in the kernel.

<p>Thus function does not parse the command line. See {@link #main(String[])} for the command line management. When this
function is called, it is assumed that all the system's properties are correctly set.

<p>The platformModule parameter permits to specify the injection module to use. The injection module is in change of
creating/injecting all the components of the platform. The default injection module is retreived from the system property
with the name stored in {@link JanusConfig#INJECTION_MODULE_NAME}. The default type for the injection module is stored in
the constant {@link JanusConfig#INJECTION_MODULE_NAME_VALUE}.

<p>The function {@link #getBootAgentIdentifier()} permits to retreive the identifier of the launched agent.

@param platformModule type of the injection module to use for initializing the platform, if <code>null</code> the default
module will be used.
@param agentCls type of the first agent to launch.
@param params parameters to pass to the agent as its initliazation parameters.
@return the kernel that was launched.
@throws Exception - if it is impossible to start the platform.
@since 0.5
@see #main(String[])
@see #getBootAgentIdentifier()