# 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: error

## 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: 

## 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: 
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: 

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

Description: 
parameter: baseFolder: JEB installation folder
return: 
throws: 

## 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>`


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


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


## 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`


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

Description: Internal method reserved for debug builds.
parameter: throwable: 

