| Index: impl/prod/module.go
 | 
| diff --git a/impl/prod/module.go b/impl/prod/module.go
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..a2680be71db0fdd3f0a1a0058d0620bb167c98b2
 | 
| --- /dev/null
 | 
| +++ b/impl/prod/module.go
 | 
| @@ -0,0 +1,51 @@
 | 
| +// Copyright 2016 The Chromium Authors. All rights reserved.
 | 
| +// Use of this source code is governed by a BSD-style license that can be
 | 
| +// found in the LICENSE file.
 | 
| +
 | 
| +package prod
 | 
| +
 | 
| +import (
 | 
| +	"github.com/luci/gae/service/module"
 | 
| +	"golang.org/x/net/context"
 | 
| +	aeModule "google.golang.org/appengine/module"
 | 
| +)
 | 
| +
 | 
| +// useModule adds a Module implementation to context.
 | 
| +func useModule(usrCtx context.Context) context.Context {
 | 
| +	return module.SetFactory(usrCtx, func(ci context.Context) module.Interface {
 | 
| +		return modImpl{ci, AEContext(ci)}
 | 
| +	})
 | 
| +}
 | 
| +
 | 
| +type modImpl struct {
 | 
| +	usrCtx context.Context
 | 
| +	aeCtx  context.Context
 | 
| +}
 | 
| +
 | 
| +func (m modImpl) List() ([]string, error) {
 | 
| +	return aeModule.List(m.aeCtx)
 | 
| +}
 | 
| +
 | 
| +func (m modImpl) NumInstances(module, version string) (int, error) {
 | 
| +	return aeModule.NumInstances(m.aeCtx, module, version)
 | 
| +}
 | 
| +
 | 
| +func (m modImpl) SetNumInstances(module, version string, instances int) error {
 | 
| +	return aeModule.SetNumInstances(m.aeCtx, module, version, instances)
 | 
| +}
 | 
| +
 | 
| +func (m modImpl) Versions(module string) ([]string, error) {
 | 
| +	return aeModule.Versions(m.aeCtx, module)
 | 
| +}
 | 
| +
 | 
| +func (m modImpl) DefaultVersion(module string) (string, error) {
 | 
| +	return aeModule.DefaultVersion(m.aeCtx, module)
 | 
| +}
 | 
| +
 | 
| +func (m modImpl) Start(module, version string) error {
 | 
| +	return aeModule.Start(m.aeCtx, module, version)
 | 
| +}
 | 
| +
 | 
| +func (m modImpl) Stop(module, version string) error {
 | 
| +	return aeModule.Stop(m.aeCtx, module, version)
 | 
| +}
 | 
| 
 |