X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.cms%2Fsrc%2Forg%2Fargeo%2Fslc%2Fcms%2Fdeploy%2Fosgi%2FOsgiCmsDeployment.java;fp=org.argeo.slc.cms%2Fsrc%2Forg%2Fargeo%2Fslc%2Fcms%2Fdeploy%2Fosgi%2FOsgiCmsDeployment.java;h=0000000000000000000000000000000000000000;hb=67ac344052752622d4bd3e59c4f88c2bc9f6d3b6;hp=1c472e70fd8491c5e95a2a24e79c986369843712;hpb=82fcb6324dc57a36a8c9c4f4b0e564a1f4ef97de;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.cms/src/org/argeo/slc/cms/deploy/osgi/OsgiCmsDeployment.java b/org.argeo.slc.cms/src/org/argeo/slc/cms/deploy/osgi/OsgiCmsDeployment.java deleted file mode 100644 index 1c472e70f..000000000 --- a/org.argeo.slc.cms/src/org/argeo/slc/cms/deploy/osgi/OsgiCmsDeployment.java +++ /dev/null @@ -1,228 +0,0 @@ -package org.argeo.slc.cms.deploy.osgi; - -import java.io.IOException; -import java.lang.System.Logger; -import java.lang.System.Logger.Level; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.StringJoiner; -import java.util.TreeMap; - -import org.argeo.api.a2.A2Source; -import org.argeo.api.a2.FsA2Source; -import org.argeo.api.init.InitConstants; -import org.argeo.api.init.RuntimeContext; -import org.argeo.cms.CmsDeployProperty; -import org.argeo.init.osgi.OsgiRuntimeContext; -import org.argeo.slc.WellKnownConstants; -import org.argeo.slc.build.Distribution; -import org.argeo.slc.cms.deploy.CmsDeployedSystem; -import org.argeo.slc.cms.deploy.CmsDeploymentData; -import org.argeo.slc.cms.deploy.CmsTargetData; -import org.argeo.slc.cms.deploy.SimpleCmsDeploymentData; -import org.argeo.slc.cms.distribution.A2Distribution; -import org.argeo.slc.deploy.DeployedSystem; -import org.argeo.slc.deploy.Deployment; -import org.argeo.slc.deploy.DeploymentData; -import org.argeo.slc.deploy.TargetData; - -/** The process of deploying an OSGi based Argeo CMS system. */ -public class OsgiCmsDeployment implements Deployment { - private final static Logger logger = System.getLogger(OsgiCmsDeployment.class.getName()); - - private A2Distribution distribution; - private CmsTargetData targetData; - private CmsDeploymentData deploymentData; - - private CmsDeployedSystem deployedSystem; - - private OsgiRuntimeContext runtimeContext; - - @Override - public void run() { - try { - Map config = new TreeMap<>(); - - // sources - StringJoiner sourcesProperty = new StringJoiner(","); - for (A2Source a2Source : distribution.getA2Sources()) { - sourcesProperty.add(a2Source.getUri().toString()); - } - config.put(InitConstants.PROP_ARGEO_OSGI_SOURCES, sourcesProperty.toString()); - - // target - config.put(WellKnownConstants.OSGI_INSTANCE_AREA, - targetData.getInstanceData().toRealPath().toUri().toString()); - - if (targetData.getHost() != null) { - config.put(CmsDeployProperty.HOST.getProperty(), targetData.getHost().toString()); - } - - if (targetData.getHttpPort() != null) { - config.put(CmsDeployProperty.HTTP_PORT.getProperty(), targetData.getHttpPort().toString()); - } - - Path configurationArea = Files.createTempDirectory("slc-cms-test"); - config.put(WellKnownConstants.OSGI_CONFIGURATION_AREA, configurationArea.toUri().toString()); - - // modules activation - for (int startLevel = 0; startLevel <= 6; startLevel++) { - List modules = deploymentData.getModulesToActivate(startLevel); - if (modules.size() != 0) { - String startProperty = String.join(",", modules); - config.put(InitConstants.PROP_ARGEO_OSGI_START + "." + startLevel, startProperty); - } - } - - config.put("org.eclipse.equinox.http.jetty.autostart", "false"); - config.put("org.osgi.framework.system.packages.extra", - "sun.security.util,sun.security.internal.spec,sun.security.provider,com.sun.net.httpserver,com.sun.jndi.ldap,com.sun.jndi.ldap.sasl,com.sun.jndi.dns,com.sun.security.jgss,com.sun.nio.file,com.sun.nio.sctp"); - config.put("eclipse.ignoreApp", "true"); - config.put("osgi.noShutdown", "true"); - config.put("osgi.clean", "true"); - config.put("osgi.framework.useSystemProperties", "false"); - - config.put("argeo.directory", "dc=example,dc=com.ldif"); - - if (targetData instanceof OsgiCmsTargetData osgiCmsTargetData - && osgiCmsTargetData.getTelnetPort() != null) { - String hostStr = ""; - if (targetData.getHost() != null) { - hostStr = targetData.getHost().toString() + ":"; - } - config.put("osgi.console", hostStr + osgiCmsTargetData.getTelnetPort().toString()); - } - - // initialise - for (String key : config.keySet()) { -// System.out.println(key + "=" + config.get(key)); - logger.log(Level.TRACE, () -> key + "=" + config.get(key)); - } - - // FIXME use runtime manager - runtimeContext = new OsgiRuntimeContext(config); - runtimeContext.run(); - -// deployedSystem = new OsgiCmsDeployedSystem(runtimeContext.getFramework().getBundleContext(), distribution, -// targetData, deploymentData); - - } catch (Exception e) { - throw new IllegalStateException("Cannot run OSGi deployment", e); - } - - } - - @Override - public DeployedSystem getDeployedSystem() { - return deployedSystem; - } - - @Override - public void setTargetData(TargetData targetData) { - this.targetData = (CmsTargetData) targetData; - } - - @Override - public void setDeploymentData(DeploymentData deploymentData) { - this.deploymentData = (CmsDeploymentData) deploymentData; - } - - @Override - public void setDistribution(Distribution distribution) { - this.distribution = (A2Distribution) distribution; - } - - public OsgiRuntimeContext getRuntimeContext() { - return runtimeContext; - } - - public static void main(String[] args) { - RuntimeContext runtimeContext = test(); - try { - runtimeContext.waitForStop(0); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - - public static RuntimeContext test() { - try { - Path userHome = Paths.get(System.getProperty("user.home")); - - // distribution - Path a2Base = userHome.resolve("dev/git/unstable/output/a2"); - A2Distribution distribution = new A2Distribution(); - Map xOr = new HashMap<>(); - xOr.put("osgi", "equinox"); - xOr.put("swt", "rap"); - xOr.put("log", "syslogger"); - xOr.put("crypto", "fips"); - distribution.getA2Sources().add(new FsA2Source(a2Base, xOr, true, null, null)); - - // target data - Path instanceData = userHome.resolve("dev/git/unstable/argeo-slc/sdk/exec/cms-deployment/data"); - Files.createDirectories(instanceData); - OsgiCmsTargetData targetData = new OsgiCmsTargetData(instanceData, "host1", 7070, 2323); - - // deployment data - SimpleCmsDeploymentData deploymentData = new SimpleCmsDeploymentData(); - deploymentData.getModulesToActivate(2).add("org.eclipse.equinox.http.servlet"); - deploymentData.getModulesToActivate(2).add("org.apache.felix.scr"); - deploymentData.getModulesToActivate(2).add("org.eclipse.rap.rwt.osgi"); - deploymentData.getModulesToActivate(2).add("org.eclipse.equinox.console"); - - deploymentData.getModulesToActivate(3).add("org.argeo.cms"); - deploymentData.getModulesToActivate(3).add("org.argeo.cms.ee"); - deploymentData.getModulesToActivate(3).add("org.argeo.cms.lib.sshd"); - deploymentData.getModulesToActivate(3).add("org.argeo.cms.lib.equinox"); - deploymentData.getModulesToActivate(3).add("org.argeo.cms.lib.jetty"); - deploymentData.getModulesToActivate(3).add("org.argeo.cms.swt.rap"); - - deploymentData.getModulesToActivate(4).add("org.argeo.cms.jcr"); - deploymentData.getModulesToActivate(4).add("org.argeo.app.profile.acr.fs"); - - deploymentData.getModulesToActivate(5).add("org.argeo.app.core"); - deploymentData.getModulesToActivate(5).add("org.argeo.app.ui"); - deploymentData.getModulesToActivate(5).add("org.argeo.app.theme.default"); - deploymentData.getModulesToActivate(5).add("org.argeo.app.jcr"); - - deploymentData.getModulesToActivate(5).add("org.example.suite.theme"); - deploymentData.getModulesToActivate(5).add("org.example.suite.core"); - deploymentData.getModulesToActivate(5).add("org.example.suite.ui"); - deploymentData.getModulesToActivate(5).add("org.example.suite.ui.rap"); - - OsgiCmsDeployment deployment = new OsgiCmsDeployment(); - deployment.setDistribution(distribution); - deployment.setTargetData(targetData); - deployment.setDeploymentData(deploymentData); - deployment.run(); - - boolean multiple = true; - if (multiple) { - // wait a bit -// Thread.sleep(5000); - - Path instanceData2 = userHome.resolve("dev/git/unstable/argeo-slc/sdk/exec/cms-deployment2/data"); - Files.createDirectories(instanceData2); - OsgiCmsTargetData targetData2 = new OsgiCmsTargetData(instanceData2, "host2", 7070, 2323); - - OsgiCmsDeployment deployment2 = new OsgiCmsDeployment(); - deployment2.setDistribution(distribution); - deployment2.setTargetData(targetData2); - deployment2.setDeploymentData(deploymentData); - deployment2.run(); - } - - return deployment.getRuntimeContext(); - } catch (IOException e) { - e.printStackTrace(); - System.exit(1); - return null; - } - } - -}