Class PayaraMicroImpl

  • All Implemented Interfaces:
    PayaraMicroBoot

    public class PayaraMicroImpl
    extends Object
    implements PayaraMicroBoot
    Main class for Bootstrapping Payara Micro Edition This class is used from applications to create a full JavaEE runtime environment and deploy war files. This class is used to configure and bootstrap a Payara Micro Runtime.
    Author:
    steve
    • Method Detail

      • main

        public static void main​(String[] args)
                         throws Exception
        Runs a Payara Micro server used via java -jar payara-micro.jar
        Parameters:
        args - Command line arguments for PayaraMicro Usage: --help to see all the options
        --help Shows this message and exits\n
        Throws:
        BootstrapException - If there is a problem booting the server
        Exception
      • getInstance

        public static PayaraMicroImpl getInstance()
        Obtains the static singleton instance of the Payara Micro Server. If it does not exist it will be create.
        Returns:
        The singleton instance
      • bootstrap

        public static PayaraMicroRuntime bootstrap()
                                            throws BootstrapException
        Bootstraps the PayaraMicroRuntime with all defaults and no additional configuration. Functionally equivalent to PayaraMicro.getInstance().bootstrap();
        Returns:
        Throws:
        BootstrapException
      • getInstance

        public static PayaraMicroImpl getInstance​(boolean create)
        Parameters:
        create - If false the instance won't be created if it has not been initialised
        Returns:
        null if no instance exists and create is false. Otherwise returns the singleton instance
      • getClusterMulticastGroup

        public String getClusterMulticastGroup()
        Gets the cluster group
        Specified by:
        getClusterMulticastGroup in interface PayaraMicroBoot
        Returns:
        The Multicast Group that will beused for the Hazelcast clustering
      • setClusterMulticastGroup

        public PayaraMicroImpl setClusterMulticastGroup​(String hzMulticastGroup)
        Sets the cluster group used for Payara Micro clustering used for cluster communications and discovery. Each Payara Micro cluster should have different values for the MulticastGroup
        Specified by:
        setClusterMulticastGroup in interface PayaraMicroBoot
        Parameters:
        hzMulticastGroup - String representation of the multicast group
        Returns:
      • setLogoFile

        public PayaraMicroImpl setLogoFile​(String filePath)
        Sets the path to the logo file printed at boot. This can be on the classpath of the server or an absolute URL
        Specified by:
        setLogoFile in interface PayaraMicroBoot
        Parameters:
        filePath -
        Returns:
      • setPrintLogo

        public PayaraMicroImpl setPrintLogo​(boolean generate)
        Set whether the logo should be generated on boot
        Specified by:
        setPrintLogo in interface PayaraMicroBoot
        Parameters:
        generate -
        Returns:
      • setAccessLogInterval

        public PayaraMicroBoot setAccessLogInterval​(int interval)
        Set user defined interval for the access log
        Parameters:
        interval -
        Returns:
      • getClusterPort

        public int getClusterPort()
        Gets the cluster multicast port used for cluster communications
        Specified by:
        getClusterPort in interface PayaraMicroBoot
        Returns:
        The configured cluster port
      • setClusterPort

        public PayaraMicroImpl setClusterPort​(int hzPort)
        Sets the multicast group used for Payara Micro clustering used for cluster communication and discovery. Each Payara Micro cluster should have different values for the cluster port
        Specified by:
        setClusterPort in interface PayaraMicroBoot
        Parameters:
        hzPort - The port number
        Returns:
      • getClusterStartPort

        public int getClusterStartPort()
        Gets the instance listen port number used by clustering. This number will be incremented automatically if the port is unavailable due to another instance running on the same host,
        Specified by:
        getClusterStartPort in interface PayaraMicroBoot
        Returns:
        The start port number
      • setClusterStartPort

        public PayaraMicroImpl setClusterStartPort​(int hzStartPort)
        Sets the start port number for the Payara Micro to listen on for cluster communications.
        Specified by:
        setClusterStartPort in interface PayaraMicroBoot
        Parameters:
        hzStartPort - Start port number
        Returns:
      • getHttpPort

        public int getHttpPort()
        The configured port Payara Micro will use for HTTP requests.
        Specified by:
        getHttpPort in interface PayaraMicroBoot
        Returns:
        The HTTP port
      • setHttpPort

        public PayaraMicroImpl setHttpPort​(int httpPort)
        Sets the port used for HTTP requests
        Specified by:
        setHttpPort in interface PayaraMicroBoot
        Parameters:
        httpPort - The port number
        Returns:
      • getSslPort

        public int getSslPort()
        The configured port for HTTPS requests
        Specified by:
        getSslPort in interface PayaraMicroBoot
        Returns:
        The HTTPS port
      • setSslPort

        public PayaraMicroImpl setSslPort​(int sslPort)
        Sets the configured port for HTTPS requests. If this is not set HTTPS is disabled
        Specified by:
        setSslPort in interface PayaraMicroBoot
        Parameters:
        sslPort - The HTTPS port
        Returns:
      • setSslCert

        public PayaraMicroImpl setSslCert​(String alias)
        Set the certificate alias in the keystore to use for the server cert
        Specified by:
        setSslCert in interface PayaraMicroBoot
        Parameters:
        alias - name of the certificate in the keystore
        Returns:
      • getInstanceName

        public String getInstanceName()
        Gets the logical name for this PayaraMicro Server within the server cluster
        Specified by:
        getInstanceName in interface PayaraMicroBoot
        Returns:
        The configured instance name
      • setInstanceName

        public PayaraMicroImpl setInstanceName​(String instanceName)
        Sets the logical instance name for this PayaraMicro server within the server cluster If this is not set a name is generated
        Specified by:
        setInstanceName in interface PayaraMicroBoot
        Parameters:
        instanceName - The logical server name
        Returns:
      • getDeploymentDir

        public File getDeploymentDir()
        A directory which will be scanned for archives to deploy
        Specified by:
        getDeploymentDir in interface PayaraMicroBoot
        Returns:
      • setDeploymentDir

        public PayaraMicroImpl setDeploymentDir​(File deploymentRoot)
        Sets a directory to scan for archives to deploy on boot. This directory is not monitored while running for changes. Therefore archives in this directory will NOT be redeployed during runtime.
        Specified by:
        setDeploymentDir in interface PayaraMicroBoot
        Parameters:
        deploymentRoot - File path to the directory
        Returns:
      • getAlternateDomainXML

        public File getAlternateDomainXML()
        The path to an alternative domain.xml for PayaraMicro to use at boot
        Specified by:
        getAlternateDomainXML in interface PayaraMicroBoot
        Returns:
        The path to the domain.xml
      • setApplicationDomainXML

        public PayaraMicroImpl setApplicationDomainXML​(String domainXml)
        Sets an application specific domain.xml file that is embedded on the classpath of your application.
        Specified by:
        setApplicationDomainXML in interface PayaraMicroBoot
        Parameters:
        domainXml - This is a resource string for your domain.xml
        Returns:
      • setAlternateDomainXML

        public PayaraMicroImpl setAlternateDomainXML​(File alternateDomainXML)
        Sets the path to a domain.xml file PayaraMicro should use to boot. If this is not set PayaraMicro will use an appropriate domain.xml from within its jar file
        Specified by:
        setAlternateDomainXML in interface PayaraMicroBoot
        Parameters:
        alternateDomainXML -
        Returns:
      • addDeployment

        public PayaraMicroImpl addDeployment​(String pathToWar)
        Adds an archive to the list of archives to be deployed at boot. These archives are not monitored for changes during running so are not redeployed without restarting the server
        Specified by:
        addDeployment in interface PayaraMicroBoot
        Parameters:
        pathToWar - File path to the deployment archive
        Returns:
      • addDeploymentFile

        public PayaraMicroImpl addDeploymentFile​(File file)
        Adds an archive to the list of archives to be deployed at boot. These archives are not monitored for changes during running so are not redeployed without restarting the server
        Specified by:
        addDeploymentFile in interface PayaraMicroBoot
        Parameters:
        file - File path to the deployment archive
        Returns:
      • addRepoUrl

        public PayaraMicroImpl addRepoUrl​(String... URLs)
        Adds a Maven repository to the list of repositories to search for artifacts in
        Specified by:
        addRepoUrl in interface PayaraMicroBoot
        Parameters:
        URLs - URL to Maven repository
        Returns:
      • isNoCluster

        public boolean isNoCluster()
        Indicated whether clustering is enabled
        Specified by:
        isNoCluster in interface PayaraMicroBoot
        Returns:
      • setNoCluster

        public PayaraMicroImpl setNoCluster​(boolean noCluster)
        Enables or disables clustering before bootstrap
        Specified by:
        setNoCluster in interface PayaraMicroBoot
        Parameters:
        noCluster - set to true to disable clustering
        Returns:
      • isLite

        public boolean isLite()
        Indicates whether this is a lite cluster member which means it stores no cluster data although it participates fully in the cluster.
        Specified by:
        isLite in interface PayaraMicroBoot
        Returns:
      • setLite

        public PayaraMicroImpl setLite​(boolean liteMember)
        Sets the lite status of this cluster member. If true the Payara Micro is a lite cluster member which means it stores no cluster data.
        Specified by:
        setLite in interface PayaraMicroBoot
        Parameters:
        liteMember - set to true to set as a lite cluster member with no data storage
        Returns:
      • getMaxHttpThreads

        public int getMaxHttpThreads()
        The maximum threads in the HTTP(S) threadpool processing HTTP(S) requests. Setting this will determine how many concurrent HTTP requests can be processed. The default value is 200. This value is shared by both HTTP and HTTP(S) requests.
        Specified by:
        getMaxHttpThreads in interface PayaraMicroBoot
        Returns:
      • setMaxHttpThreads

        public PayaraMicroImpl setMaxHttpThreads​(int maxHttpThreads)
        The maximum threads in the HTTP(S) threadpool processing HTTP(S) requests. Setting this will determine how many concurrent HTTP requests can be processed. The default value is 200
        Specified by:
        setMaxHttpThreads in interface PayaraMicroBoot
        Parameters:
        maxHttpThreads - Maximum threads in the HTTP(S) threadpool
        Returns:
      • getMinHttpThreads

        public int getMinHttpThreads()
        The minimum number of threads in the HTTP(S) threadpool Default value is 10
        Specified by:
        getMinHttpThreads in interface PayaraMicroBoot
        Returns:
        The minimum threads to be created in the threadpool
      • setMinHttpThreads

        public PayaraMicroImpl setMinHttpThreads​(int minHttpThreads)
        The minimum number of threads in the HTTP(S) threadpool Default value is 10
        Specified by:
        setMinHttpThreads in interface PayaraMicroBoot
        Parameters:
        minHttpThreads -
        Returns:
      • getRootDir

        public File getRootDir()
        The File path to a directory that PayaraMicro should use for storing its configuration files
        Specified by:
        getRootDir in interface PayaraMicroBoot
        Returns:
      • setRootDir

        public PayaraMicroImpl setRootDir​(File rootDir)
        Sets the File path to a directory PayaraMicro should use to install its configuration files. If this is set the PayaraMicro configuration files will be stored in the directory and persist across server restarts. If this is not set the configuration files are created in a temporary location and not persisted across server restarts.
        Specified by:
        setRootDir in interface PayaraMicroBoot
        Parameters:
        rootDir - Path to a valid directory
        Returns:
        Returns the PayaraMicro instance
      • getHttpAutoBind

        public boolean getHttpAutoBind()
        Indicates whether autobinding of the HTTP port is enabled
        Specified by:
        getHttpAutoBind in interface PayaraMicroBoot
        Returns:
      • setHttpAutoBind

        public PayaraMicroImpl setHttpAutoBind​(boolean httpAutoBind)
        Enables or disables autobinding of the HTTP port
        Specified by:
        setHttpAutoBind in interface PayaraMicroBoot
        Parameters:
        httpAutoBind - The true or false value to enable or disable HTTP autobinding
        Returns:
      • getSslAutoBind

        public boolean getSslAutoBind()
        Indicates whether autobinding of the HTTPS port is enabled
        Specified by:
        getSslAutoBind in interface PayaraMicroBoot
        Returns:
      • setSslAutoBind

        public PayaraMicroImpl setSslAutoBind​(boolean sslAutoBind)
        Enables or disables autobinding of the HTTPS port
        Specified by:
        setSslAutoBind in interface PayaraMicroBoot
        Parameters:
        sslAutoBind - The true or false value to enable or disable HTTPS autobinding
        Returns:
      • getAutoBindRange

        public int getAutoBindRange()
        Gets the maximum number of ports to check if free for autobinding purposes
        Specified by:
        getAutoBindRange in interface PayaraMicroBoot
        Returns:
        The number of ports to check if free
      • setAutoBindRange

        public PayaraMicroImpl setAutoBindRange​(int autoBindRange)
        Sets the maximum number of ports to check if free for autobinding purposes
        Specified by:
        setAutoBindRange in interface PayaraMicroBoot
        Parameters:
        autoBindRange - The maximum number of ports to increment the port value by
        Returns:
      • getHzClusterName

        public String getHzClusterName()
        Gets the name of the Hazelcast cluster group. Clusters with different names do not interact
        Specified by:
        getHzClusterName in interface PayaraMicroBoot
        Returns:
        The current Cluster Name
      • setHzClusterName

        public PayaraMicroImpl setHzClusterName​(String hzClusterName)
        Sets the name of the Hazelcast cluster group
        Specified by:
        setHzClusterName in interface PayaraMicroBoot
        Parameters:
        hzClusterName - The name of the hazelcast cluster
        Returns:
      • getInstanceGroup

        public String getInstanceGroup()
        Gets the name of the instance group
        Specified by:
        getInstanceGroup in interface PayaraMicroBoot
        Returns:
        The name of the instance group
      • setPreBootHandler

        public PayaraMicroBoot setPreBootHandler​(Consumer<AdminCommandRunner> handler)
        Description copied from interface: PayaraMicroBoot
        Register a handler for executing admin commands at pre-boot time. Handler will be called with reference to AdminCommandRunner before instance starts. It offers way of changing domain configuration by means of running command set. The commands will be only executed on the instance that is booted. Only single handler can be registered.
        Specified by:
        setPreBootHandler in interface PayaraMicroBoot
        Returns:
      • setPostBootHandler

        public PayaraMicroBoot setPostBootHandler​(Consumer<AdminCommandRunner> handler)
        Description copied from interface: PayaraMicroBoot
        Register a handler for executing admin commands at post-boot time. Handler will be called with reference to AdminCommandRunner after all services start, but before deployment starts. All commands available over asadmin command are valid in this phase. The commands will be only executed on the instance starting up, not in any cluster it may have formed. Only single handler can be registered
        Specified by:
        setPostBootHandler in interface PayaraMicroBoot
        Returns: