1 package com
.google
.appengine
.tools
.development
;
3 import com
.google
.appengine
.tools
.development
.ApplicationConfigurationManager
.ServerConfigurationHandle
;
4 import com
.google
.common
.collect
.ImmutableList
;
11 * {@link Server} implementation for automatic servers.
13 class AutomaticServer
extends AbstractServer
{
14 private final int devAppServerPort
;
17 * @param devAppServerPort port from the DevAppServerImple constructor for
18 * the primary container and 0 otherwise.
20 AutomaticServer(ServerConfigurationHandle serverConfigurationHandle
,
21 String serverInfo
, File externalResourceDir
, String address
, int devAppServerPort
,
22 Map
<String
, Object
> containerConfigProperties
, DevAppServerImpl devAppServer
) {
23 super(serverConfigurationHandle
, serverInfo
, externalResourceDir
, address
,
24 containerConfigProperties
, devAppServer
, makeInstanceHolders());
25 this.devAppServerPort
= devAppServerPort
;
28 private static List
<InstanceHolder
> makeInstanceHolders() {
29 return ImmutableList
.of(new InstanceHolder(ContainerUtils
.loadContainer(),
30 LocalEnvironment
.MAIN_INSTANCE
));
34 public LocalServerEnvironment
doConfigure(
35 ServerConfigurationHandle serverConfigurationHandle
, String serverInfo
,
36 File externalResourceDir
, String address
, Map
<String
, Object
> containerConfigProperties
,
37 DevAppServerImpl devAppServer
) throws Exception
{
38 int port
= devAppServerPort
;
40 port
= DevAppServerPortPropertyHelper
.getPort(getServerName(),
41 devAppServer
.getServiceProperties());
43 return getInstanceHolders().get(0).getContainerService().configure(serverInfo
, address
, port
,
44 serverConfigurationHandle
, externalResourceDir
, containerConfigProperties
,
45 LocalEnvironment
.MAIN_INSTANCE
, devAppServer
);