1 package com
.google
.appengine
.tools
.development
;
3 import com
.google
.appengine
.tools
.development
.ApplicationConfigurationManager
.ServerConfigurationHandle
;
4 import com
.google
.apphosting
.utils
.config
.AppEngineConfigException
;
5 import com
.google
.apphosting
.utils
.config
.AppEngineWebXml
;
6 import com
.google
.common
.collect
.ImmutableList
;
13 * {@link Server} implementation for manual servers.
15 public class ManualServer
extends AbstractServer
{
16 ManualServer(ServerConfigurationHandle serverConfigurationHandle
, String serverInfo
,
17 String address
, Map
<String
, Object
> containerConfigProperties
, DevAppServerImpl devAppServer
,
18 AppEngineWebXml appEngineWebXml
) {
19 super(serverConfigurationHandle
, serverInfo
, null, address
,
20 containerConfigProperties
, devAppServer
, makeInstanceHolders(serverConfigurationHandle
,
24 private static List
<InstanceHolder
> makeInstanceHolders(
25 ServerConfigurationHandle serverConfigurationHandle
, AppEngineWebXml appEngineWebXml
) {
26 String instancesString
= appEngineWebXml
.getManualScaling().getInstances();
27 int instances
= instancesString
== null ?
0 : Integer
.parseInt(instancesString
);
29 throw new AppEngineConfigException("Invalid instances " + instances
+ " in file "
30 + serverConfigurationHandle
.getModule().getAppEngineWebXmlFile());
33 ImmutableList
.Builder
<InstanceHolder
> listBuilder
= ImmutableList
.builder();
34 for (int ix
= LocalEnvironment
.MAIN_INSTANCE
; ix
< instances
; ix
++) {
35 listBuilder
.add(new InstanceHolder(ContainerUtils
.loadContainer(), ix
));
37 return listBuilder
.build();
41 public LocalServerEnvironment
doConfigure(
42 ServerConfigurationHandle serverConfigurationHandle
, String serverInfo
,
43 File externalResourceDir
, String address
, Map
<String
, Object
> containerConfigProperties
,
44 DevAppServerImpl devAppServer
) throws Exception
{
45 LocalServerEnvironment result
= null;
46 for (InstanceHolder instanceHolder
: getInstanceHolders()) {
47 int port
= DevAppServerPortPropertyHelper
.getPort(getServerName(),
48 instanceHolder
.getInstance(), devAppServer
.getServiceProperties());
49 LocalServerEnvironment thisEnvironment
= instanceHolder
.getContainerService().configure(
50 serverInfo
, address
, port
, serverConfigurationHandle
, externalResourceDir
,
51 containerConfigProperties
, instanceHolder
.getInstance(), devAppServer
);
53 result
= thisEnvironment
;