# Class: com.pnfsoftware.jeb.core.JebCoreService

Service class used to create or retrieve a reference to the JEB core context. The core context provides verified access to the engines. 

 Typically, it is the responsibility of client implementations \(eg, the official RCP client\), not plugins, to instantiate the core and a single engines context.

## Constructor: JebCoreService


## Static Method: getConfiguration
- parameter: `file`, type: `java.io.File`
- parameter: `createIfNotExist`, type: `boolean`
- parameter: `saveChanges`, type: `boolean`
- return type: `com.pnfsoftware.jeb.core.properties.IConfiguration`

Description: Create a configuration object for a JEB configuration file, such as `jeb-engines.cfg`.
parameter: file: a JEB configuration file
parameter: createIfNotExist: create a new configuration file if it does not exist already
parameter: saveChanges: if true, changes made to the configuration file will be saved to disk;            else, the changes will not be recorded
return: the configuration object, set up for reading and writing
throws: if the configuration file cannot be created or loaded

## Static Method: getDefaultEnginesContext
- return type: `com.pnfsoftware.jeb.core.IEnginesContext`

Description: Convenience method used to retrieve the primary \(default\) engines context managed by an initialized JEB core back\-end.
return: the default engines context, or null if no engines context is available

## Static Method: getExistingInstance
- return type: `com.pnfsoftware.jeb.core.ICoreContext`

Description: Retrieve an existing core context \(= JEB back\-end\) if one exists. If none exist, null is returned.
return: the unique JEB context or null if none was created

## Static Method: getInstance
- return type: `com.pnfsoftware.jeb.core.ICoreContext`

Description: Retrieve an instance of the previously instantiated core.
return: the unique JEB context
throws: on error

## Static Method: getInstance
- parameter: `licenseKey`, type: `java.lang.String`
- return type: `com.pnfsoftware.jeb.core.ICoreContext`

Description: Retrieve or create an instance of a core.
parameter: licenseKey: a valid JEB license key
return: the unique JEB context
throws: on error

## Static Method: getInstance
- parameter: `licenseKey`, type: `java.lang.String`
- parameter: `options`, type: `com.pnfsoftware.jeb.core.CoreOptions`
- return type: `com.pnfsoftware.jeb.core.ICoreContext`

Description: Retrieve or create an instance of a core.
parameter: licenseKey: a valid JEB license key
parameter: options: optional core options
return: the unique JEB context
throws: on error

## Static Method: getInstance
- parameter: `baseFolder`, type: `java.io.File`
- parameter: `options`, type: `com.pnfsoftware.jeb.core.CoreOptions`
- return type: `com.pnfsoftware.jeb.core.ICoreContext`

Description: Retrieve or create a core instance using a JEB installation folder.
parameter: baseFolder: JEB installation folder
parameter: options: optional core options; if one is provided, its base folder attribute must            match the provided `baseFolder` parameter
return: the unique JEB context
throws: on core initialization error

## Static Method: getInstance
- parameter: `baseFolder`, type: `java.io.File`
- return type: `com.pnfsoftware.jeb.core.ICoreContext`

Description: Retrieve or create a core instance using a JEB installation folder.
parameter: baseFolder: JEB installation folder
return: the unique JEB context
throws: on core initialization error

## Static Method: notifyExceptionToClient
- parameter: `throwable`, type: `java.lang.Throwable`
- parameter: `flags`, type: `int`
- parameter: `extradata`, type: `java.util.Map<java.lang.String,java.lang.Object>`
- parameter: `unit`, type: `com.pnfsoftware.jeb.core.units.IUnit`

Description: Convenience method to "forward" \(via an event\) a throwable to the client for processing. The client may decide to ignore, display, or further process \(eg, report or log\) the exception.
parameter: throwable: an error or exception
parameter: flags: internal flags
parameter: extradata: optional
parameter: unit: optional unit object from which the exception originated

## Static Method: notifyExceptionToClient
- parameter: `throwable`, type: `java.lang.Throwable`

Description: 
parameter: throwable: an error or exception

## Static Method: notifySilentExceptionToClient
- parameter: `throwable`, type: `java.lang.Throwable`

Description: 
parameter: throwable: an error or exception

## Static Method: notifySilentExceptionToClient
- parameter: `throwable`, type: `java.lang.Throwable`
- parameter: `unit`, type: `com.pnfsoftware.jeb.core.units.IUnit`

Description: 
parameter: throwable: an error or exception
parameter: unit: optional unit object from which the exception originated

## Static Method: notifySilentExceptionToClient
- parameter: `throwable`, type: `java.lang.Throwable`
- parameter: `extradata`, type: `java.util.Map<java.lang.String,java.lang.Object>`

Description: 
parameter: throwable: an error or exception
parameter: extradata: optional

## Static Method: notifyTelemetryToClient
- parameter: `eventName`, type: `java.lang.String`
- parameter: `properties`, type: `java.util.Map<java.lang.String,java.lang.String>`

Description: Forward a telemetry notification to the client.
parameter: eventName: telemetry event name
parameter: properties: optional event properties

## Static Method: notifyTelemetryToClient
- parameter: `eventName`, type: `java.lang.String`

Description: Forward a telemetry notification with no properties to the client.
parameter: eventName: telemetry event name

## Static Method: notifyTelemetryToClient
- parameter: `eventName`, type: `java.lang.String`
- parameter: `key0`, type: `java.lang.String`
- parameter: `value0`, type: `java.lang.String`

Description: Forward a telemetry notification with a single property to the client.
parameter: eventName: telemetry event name
parameter: key0: property name
parameter: value0: property value

## Static Method: notifyTelemetryToClient
- parameter: `eventName`, type: `java.lang.String`
- parameter: `key0`, type: `java.lang.String`
- parameter: `value0`, type: `java.lang.String`
- parameter: `key1`, type: `java.lang.String`
- parameter: `value1`, type: `java.lang.String`

Description: Forward a telemetry notification with two properties to the client.
parameter: eventName: telemetry event name
parameter: key0: first property name
parameter: value0: first property value
parameter: key1: second property name
parameter: value1: second property value

## Static Method: silentExcept
- parameter: `throwable`, type: `java.lang.Throwable`

Description: Internal method reserved for debug builds.
parameter: throwable: exception to rethrow in debug builds or report silently in release builds

