Skip to content

Martini Runtime Functions

The MartiniFunctions class provides a suite of functions designed for managing Martini packages and endpoints through code. These functions allow for various operations such as:

  • Creation, import, update, and deletion of packages.
  • Manipulation of package states.
  • Retrieval of package details, including package.xml and dependencies.
  • Creation, update, deletion, and validation of endpoints.

Contextual Note

These functions are primarily intended for use within the Martini platform context. They interact closely with Martini's built-in data models and core functionalities.

Managing Packages Programmatically

The MartiniFunctions class includes several methods for handling Martini packages. One of the key methods is savePackage, which is used to create or modify a package.

savePackage

The savePackage function is utilized for either creating a new package or updating an existing one within Martini.

Usage

1
Martini.savePackage(MartiniPackage martiniPackage);

Parameters

The function takes the following parameter:

Name Index Type Description
martiniPackage 0 io.toro.martini.package.Package The package to be created or updated.

importPackage

The importPackage methods in the MartiniPackage class are designed to facilitate the importing of one or more existing packages into a Martini instance. These packages are imported from a ZIP archive, and there are two primary variations of the importPackage method to accommodate different sources of the package archive.

Usage

Martini provides two overloaded methods for importing packages:

1. Import from an InputStream:

1
MartiniPackage.importPackage(InputStream inputStream, PackageState stateOnCreate, boolean resolveParent, boolean replaceExisting);

2. Import from a Path:

1
MartiniPackage.importPackage(Path path, PackageState stateOnCreate, boolean resolveParent, boolean replaceExisting);

Parameters

The functions take the following parameters:

Name Index Type Description
inputStream 0 java.io.InputStream An InputStream representing the package ZIP stream.
path 0 java.nio.file.Path A Path object representing the location of the package ZIP file.
stateOnCreate 1 io.toro.martini.package.PackageState Specifies the state of the newly imported package(s). Valid states are UNLOADED, LOADED, and STARTED.
resolveParent 2 java.lang.Boolean If true and the stateOnCreate is either STARTED or LOADED, Martini will also start any parent packages. An exception is thrown if parent packages are not in the proper state.
replaceExisting 3 java.lang.Boolean If set to true, this will replace any existing package(s), unloading and removing them before importing the new package(s).

Return Value

The function returns the following:

Property Type Description
martiniPackages io.toro.martini.package.Package A collection of the imported packages

getPackageXml

The getPackageXml function in the Martini platform is designed to retrieve the XML content of a specific package's package.xml file. This function is particularly useful for examining package configurations and dependencies.

Usage

To get the XML content of a package's descriptor file, use the getPackageXml method:

1
String xmlContent = Martini.getPackageXml(String packageName);

Parameters

This function requires the following parameter:

Name Type Description
packageName java.lang.String The name of the package for which the package descriptor is needed.

Return Value

The function returns the XML content of the specified package's package.xml file:

Name Type Description
output java.lang.String The XML content of the package's package.xml file.

getChildPackages

The getChildPackages function in Martini is used to retrieve a list of packages that are dependent on a specified package. This is useful for understanding package dependencies and relationships within the Martini environment.

Usage

To obtain the list of child packages or dependents of a given package, use the getChildPackages method:

1
Package[] childPackages = Martini.getChildPackages(String packageName);

Parameters

This function requires the following parameter:

Name Index Type Description
packageName 0 java.lang.String The name of the package for which dependent packages are sought.

Return Value

The function returns an array of Package objects, representing the dependent packages:

Name Type Description
martiniPackages io.toro.martini.package.Package[] An array of packages that depend on the specified package.

getParentPackages

The getParentPackages function in the Martini platform is designed to identify the list of packages that a specific Martini package depends on. This function is essential for understanding the dependency hierarchy and package relationships within Martini.

Usage

To retrieve the list of parent packages or dependencies of a given package, use the getParentPackages method:

1
Package[] parentPackages = Martini.getParentPackages(String packageName);

Parameters

This function takes the following parameter:

Name Type Description
packageName java.lang.String The name of the package for which the parent packages are sought.

Return Value

The function returns an array of Package objects, representing the packages on which the specified package depends:

Property Type Description
martiniPackages io.toro.martini.package.Package[] An array of packages that the specified package depends on.

getPackage

The getPackage function in the Martini platform is utilized to retrieve a specific package by its name. This function is key for accessing package details programmatically.

Usage

To obtain a Martini package by its name, use the getPackage method:

1
Package martiniPackage = Martini.getPackage(String packageName);

Parameters

This function requires the following parameter:

Name Type Description
packageName java.lang.String The name of the package to retrieve.

Return Value

The function returns a Package object representing the requested package:

Name Type Description
martiniPackage io.toro.martini.package.Package The package retrieved, represented as a data model.

getPackages

The getPackages function in Martini is designed to provide a comprehensive list of all the currently installed Martini packages within a given Martini instance. This function is particularly useful for obtaining a global view of the package landscape in your environment.

Usage

To retrieve all installed Martini packages, use the getPackages method:

1
Package[] martiniPackages = Martini.getPackages();

Return Value

The function returns an array of Package objects, each representing an installed Martini package:

Name Type Description
martiniPackages io.toro.martini.package.Package[] An array containing all the Martini packages in the instance.

startPackage

The startPackage function in the Martini platform is used to start a specified package by its name. This function is essential for initiating package operations within Martini.

Usage

To start a package within Martini, use the startPackage method:

1
Martini.startPackage(String packageName);

Parameters

The function requires the following parameter:

Name Type Description
packageName java.lang.String The name of the package to be started.

stopPackage

The stopPackage function in the Martini platform is designed to stop a specified package by its name. This function is crucial for managing package operations, particularly when needing to halt a package's activities within Martini.

Usage

To stop a package within Martini, use the stopPackage method:

1
Martini.stopPackage(String packageName);

Parameters

The function requires the following parameter:

Name Type Description
packageName java.lang.String The name of the package to be stopped.

unloadPackage

The unloadPackage function in the Martini platform allows for unloading a specified package by its name. Additionally, it offers the option to determine the unloading of dependent packages.

Usage

To unload a package within Martini, use the unloadPackage method:

1
Martini.unloadPackage(String packageName, Boolean resolveChild);

Parameters

The function requires the following parameters:

Name Index Type Description
packageName 0 java.lang.String The name of the package to be unloaded.
resolveChild 1 java.lang.Boolean Flag to determine whether dependent packages should be unloaded.

loadPackage

The loadPackage function in the Martini platform is utilized to load a package by its name. It also provides the option to control the loading of the package's dependencies.

Usage

To load a package in Martini, use the loadPackage method:

1
Martini.loadPackage(String packageName, Boolean resolveParent);

Parameters

This function requires the following parameters:

Name Index Type Description
packageName 0 java.lang.String The name of the package to be loaded.
resolveParent 1 java.lang.Boolean Flag to determine whether package dependencies should be loaded.

deletePackage

The deletePackage function in the Martini platform enables the deletion of packages by name. This function is crucial for managing the lifecycle of packages within Martini.

Usage

To delete a package in Martini, use the deletePackage method:

1
Martini.deletePackage(String packageName);

Parameters

This function requires the following parameter:

Name Index Type Description
packageName 0 java.lang.String The name of the package to be deleted.

Precondition for Deletion

Before a package can be deleted, it must be unloaded. Attempting to delete a loaded package will result in an exception. Use the Martini.unloadPackage(String, Boolean) function to unload the package first.

Managing Endpoints Programmatically

The following functions are included in the MartiniFunctions extension class for managing Martini endpoints:

  • [Function names and descriptions specific to endpoint management]

deleteEndpoint

The deleteEndpoint function in the Martini platform is designed to delete a specific endpoint by name. This function is essential for managing the lifecycle of endpoints within Martini applications.

Usage

To delete an endpoint in Martini, use the deleteEndpoint method:

1
Martini.deleteEndpoint(String packageName, String endpointName);

Parameters

This function requires the following parameters:

Name Index Type Description
packageName 0 java.lang.String The name of the package that owns the endpoint to be deleted.
endpointName 1 java.lang.String The name of the endpoint to delete.

Precondition for Deletion

Before an endpoint can be deleted, it must be stopped. Attempting to delete a running endpoint will result in an exception. Ensure the endpoint is not active before proceeding with deletion.

disableEndpoint

The disableEndpoint function in the Martini platform is used to disable a specified endpoint by name. This function is vital for managing endpoint activity and availability within Martini applications.

Usage

To disable an endpoint in Martini, use the disableEndpoint method:

1
Martini.disableEndpoint(String packageName, String endpointName);

Parameters

This function requires the following parameters:

Name Index Type Description
packageName 0 java.lang.String The name of the package that owns the endpoint to be disabled.
endpointName 1 java.lang.String The name of the endpoint to disable.

enableEndpoint

The enableEndpoint function in the Martini platform is utilized to enable a specific endpoint by its name. This function is essential for managing the operational state of endpoints within Martini applications.

Usage

To enable an endpoint in Martini, use the enableEndpoint method:

1
Martini.enableEndpoint(String packageName, String endpointName);

Parameters

This function requires the following parameters:

Name Index Type Description
packageName 0 java.lang.String The name of the package that owns the endpoint to be enabled.
endpointName 1 java.lang.String The name of the endpoint to enable.

saveEndpoint

The saveEndpoint function in the Martini platform is designed to create a new endpoint or modify an existing one within a specified package. This function is crucial for the dynamic management of endpoints in Martini applications.

Usage

To create or edit an endpoint in Martini, use the saveEndpoint method:

1
Martini.saveEndpoint(String packageName, Endpoint endpoint);

Parameters

This function requires the following parameters:

Name Type Description
packageName java.lang.String The name of the package that owns the endpoint.
endpoint io.toro.martini.package.Endpoint The endpoint object to be created or updated.

stopEndpoint

The stopEndpoint function in the Martini platform is used to stop a specific endpoint by name. This function is essential for managing the activity and availability of endpoints within Martini applications.

Usage

To stop an endpoint in Martini, use the stopEndpoint method:

1
Martini.stopEndpoint(String packageName, String endpointName);

Parameters

The function requires the following parameters:

Name Index Type Description
packageName 0 java.lang.String The name of the package that owns the endpoint to be stopped.
endpointName 1 java.lang.String The name of the endpoint to stop.

validateEndpoint

The validateEndpoint function in the Martini platform is used to verify the validity of a specified endpoint. This function plays a crucial role in ensuring the integrity and proper configuration of endpoints within Martini applications.

Usage

To validate an endpoint in Martini, use the validateEndpoint method:

1
boolean isValid = Martini.validateEndpoint(String packageName, Endpoint endpoint);

Parameters

This function requires the following parameters:

Name Type Description
packageName java.lang.String The name of the package that owns the endpoint.
endpoint io.toro.martini.package.Endpoint The endpoint object to be validated.

Function Behavior

  • Return Value: The function returns true if the endpoint is valid.
  • Exception Handling: If the endpoint is not valid, the function throws an exception. This helps in identifying issues with endpoint configurations.