Package org.platformlayer.service.app.ops

Source Code of org.platformlayer.service.app.ops.AppController$JettyChildServer

package org.platformlayer.service.app.ops;

import java.util.List;

import javax.inject.Inject;

import org.platformlayer.core.model.PlatformLayerKey;
import org.platformlayer.core.model.Tag;
import org.platformlayer.ops.Bound;
import org.platformlayer.ops.Handler;
import org.platformlayer.ops.OpsException;
import org.platformlayer.ops.UniqueTag;
import org.platformlayer.ops.firewall.Transport;
import org.platformlayer.ops.http.HttpManager;
import org.platformlayer.ops.http.HttpManager.SslMode;
import org.platformlayer.ops.networks.HasPorts;
import org.platformlayer.ops.tree.OpsTreeBase;
import org.platformlayer.ops.tree.OwnedItem;
import org.platformlayer.service.app.model.App;
import org.platformlayer.service.jetty.model.JettyContext;
import org.platformlayer.service.jetty.model.JettyService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.google.common.collect.Lists;

public class AppController extends OpsTreeBase implements HasPorts {
  private static final Logger log = LoggerFactory.getLogger(AppController.class);

  @Bound
  App model;

  @Inject
  HttpManager loadBalancing;

  @Handler
  public void handler() {
  }

  public static class JettyChildServer extends OwnedItem<JettyService> {
    @Bound
    App model;

    @Override
    protected JettyService buildItemTemplate() throws OpsException {
      Tag parentTag = Tag.buildParentTag(model.getKey());

      JettyService server = new JettyService();

      server.getTags().addAll(Tag.HOST_POLICY.filter(model.getTags()));

      server.transport = Transport.Ipv6;

      // server.dnsName = model.dnsName;
      server.contexts = Lists.newArrayList();

      JettyContext context = new JettyContext();
      context.id = null;
      context.source = model.source;
      context.links = model.links;

      server.contexts.add(context);

      Tag uniqueTag = UniqueTag.build(model);
      server.getTags().add(uniqueTag);
      server.getTags().add(parentTag);

      server.key = PlatformLayerKey.fromId(model.getId());

      return server;
    }
  }

  @Override
  protected void addChildren() throws OpsException {
    addChild(JettyChildServer.class);

    loadBalancing.addHttpSite(this, model, model.dnsName, null, SslMode.Terminate);
  }

  @Override
  public List<Integer> getPorts() {
    List<Integer> ports = Lists.newArrayList();
    ports.add(8080);
    return ports;
  }

}
TOP

Related Classes of org.platformlayer.service.app.ops.AppController$JettyChildServer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.