Skip to content
This repository has been archived by the owner on Oct 5, 2022. It is now read-only.

Fabric8 Service Phases

tdiesler edited this page Sep 29, 2014 · 9 revisions

This is work in progress


Dependencies, both functional and logical, are modelled through services.

  • Functional dependency: Service A accesses a reference of service B
  • Logic dependency: Service A can only do its work when some other work has been done

The completion of a piece of work can also be modelled as a services. This allows others to create a dependency on it.

Phases

During bootstrap and later when creating a fabric we go through a number of phases Fabric8. Currently these services activate when fabric8 is bootstrapped.

Phase Initialised

Services that access system/container configuration become available. These are stable services that do not deactivate until container shutdown

io.fabric8.service.ComponentConfigurer
io.fabric8.service.PermitManagerImpl
io.fabric8.runtime.container.karaf.KarafPropertiesService
io.fabric8.jaas.FabricJaasRealm
io.fabric8.extender.listener.FabricBlueprintBundleListener
io.fabric8.extender.listener.FabricSpringApplicationListener

Phase Configured

Configuration that is dynamically created during bootstrap becomes available. This is the first phase that can deactivate again because of configuration change

io.fabric8.zookeeper.bootstrap.BootstrapConfiguration
io.fabric8.boot.BootstrapCompleteService
io.fabric8.runtime.container.karaf.KarafContainerRegistration

Phase System Ready

Data storage systems (i.e. Git, Zookeeper) become available.

io.fabric8.internal.ProfileBuildersImpl
io.fabric8.internal.ProfileManagerImpl
io.fabric8.service.ProfilePropertyPointerResolver
io.fabric8.service.VersionPropertyPointerResolver
io.fabric8.core.mxbean.MXBeansProvider
io.fabric8.service.PortPlaceholderResolver
io.fabric8.git.internal.GitProxyRegistrationHandler
io.fabric8.zookeeper.curator.CuratorACLManager
io.fabric8.zookeeper.bootstrap.ZooKeeperServerFactory
io.fabric8.git.internal.FabricGitServiceImpl
io.fabric8.zookeeper.curator.ManagedCuratorFramework
io.fabric8.internal.ZooKeeperClusterBootstrapImpl
io.fabric8.core.jmx.ClusterBootstrapManager
io.fabric8.git.internal.GitMasterListener
io.fabric8.service.ZookeeperPortService
io.fabric8.jolokia.FabricJolokia
io.fabric8.service.ZkDataStoreImpl
io.fabric8.git.internal.GitDataStoreImpl
io.fabric8.internal.ProfileServiceImpl
io.fabric8.service.ChecksumPlaceholderResolver
io.fabric8.service.ContainerPlaceholderResolver
io.fabric8.service.EncryptedPropertyResolver
io.fabric8.service.EnvPlaceholderResolver
io.fabric8.service.ZookeeperPlaceholderResolver
io.fabric8.git.http.GitHttpServerRegistrationHandler

Phase Fabric Created

Services that become available when the fabric is created.

io.fabric8.redirect.RedirectRegistration
io.fabric8.service.FabricServiceImpl
io.fabric8.features.FabricFeaturesServiceImpl
io.fabric8.service.FabricMBeanRegistrationListener
io.fabric8.internal.ZooKeeperClusterServiceImpl
io.fabric8.core.jmx.ClusterServiceManager
io.fabric8.service.child.ChildContainerProvider
io.fabric8.service.FabricCompleteService
io.fabric8.configadmin.FabricConfigAdminBridge
io.fabric8.cxf.registry.FabricCxfRegistrationHandler
io.fabric8.jolokia.FabricJolokia
io.fabric8.deployer.ProjectDeployerImpl
io.fabric8.groovy.GroovyPlaceholderResolver
io.fabric8.container.process.ProcessControllerFactoryService
io.fabric8.tooling.archetype.ArchetypeServiceImpl
io.fabric8.maven.impl.MavenProxyRegistrationHandler
io.fabric8.web.FabricWebRegistrationHandler