diff --git a/main.js b/main.js
new file mode 100644
index 0000000000..2bf5f4b597
--- /dev/null
+++ b/main.js
@@ -0,0 +1,48 @@
+/*****************************************************************************
+ * Open MCT Web, Copyright (c) 2014-2015, United States Government
+ * as represented by the Administrator of the National Aeronautics and Space
+ * Administration. All rights reserved.
+ *
+ * Open MCT Web is licensed under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ * Open MCT Web includes source code licensed under additional open source
+ * licenses. See the Open Source Licenses file (LICENSES.md) included with
+ * this source code distribution or the Licensing information page available
+ * at runtime from the About dialog for additional information.
+ *****************************************************************************/
+/*global define, window, requirejs*/
+
+requirejs.config({
+ "paths": {
+ "bundleRegistry": "./src/bundleRegistry",
+ "angular": "./platform/framework/lib/angular.min",
+ "angular-route": "./platform/framework/lib/angular-route.min"
+ },
+ "shim": {
+ "angular": {
+ "exports": "angular"
+ },
+ "angular-route": {
+ "deps": [ "angular" ]
+ }
+ }
+});
+
+define([
+ './platform/framework/src/Main',
+ 'bundleRegistry',
+ "angular",
+ "angular-route"
+], function (Main, bundleRegistry, angular) {
+ 'use strict';
+ new Main(angular).run(bundleRegistry);
+});
\ No newline at end of file
diff --git a/platform/framework/src/Main.js b/platform/framework/src/Main.js
index ecee20479a..c5a1968308 100644
--- a/platform/framework/src/Main.js
+++ b/platform/framework/src/Main.js
@@ -41,36 +41,41 @@ define(
[
'require',
'../lib/es6-promise-2.0.0.min',
- '../lib/angular.min',
- '../lib/angular-route.min',
'./FrameworkLayer'
],
function (
require,
es6promise,
- angular,
- angularRoute,
FrameworkLayer
) {
"use strict";
- // Get a reference to Angular's injector, so we can get $http and $log
- // services, which are useful to the framework layer.
- var injector = angular.injector(['ng']);
-
- // Look up log level from query string
- function logLevel() {
- var match = /[?&]log=([a-z]+)/.exec(window.location.search);
- return match ? match[1] : "";
+ function Main(angular) {
+ this.angular = angular;
}
- // Polyfill Promise, in case browser does not natively provide Promise
- window.Promise = window.Promise || es6promise.Promise;
+ Main.prototype.run = function () {
+ // Get a reference to Angular's injector, so we can get $http and $log
+ // services, which are useful to the framework layer.
+ var angular = this.angular,
+ injector = angular.injector(['ng']);
- // Reconfigure base url, since bundle paths will all be relative
- // to the root now.
- requirejs.config({ "baseUrl": "" });
- injector.instantiate(['$http', '$log', FrameworkLayer])
- .initializeApplication(angular, logLevel());
+ // Look up log level from query string
+ function logLevel() {
+ var match = /[?&]log=([a-z]+)/.exec(window.location.search);
+ return match ? match[1] : "";
+ }
+
+ // Polyfill Promise, in case browser does not natively provide Promise
+ window.Promise = window.Promise || es6promise.Promise;
+
+ // Reconfigure base url, since bundle paths will all be relative
+ // to the root now.
+ requirejs.config({"baseUrl": ""});
+ injector.instantiate(['$http', '$log', FrameworkLayer])
+ .initializeApplication(angular, logLevel());
+ };
+
+ return Main;
}
);
diff --git a/src/bundleRegistry.js b/src/bundleRegistry.js
new file mode 100644
index 0000000000..b5cbffb853
--- /dev/null
+++ b/src/bundleRegistry.js
@@ -0,0 +1,26 @@
+/*****************************************************************************
+ * Open MCT Web, Copyright (c) 2014-2015, United States Government
+ * as represented by the Administrator of the National Aeronautics and Space
+ * Administration. All rights reserved.
+ *
+ * Open MCT Web is licensed under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ * Open MCT Web includes source code licensed under additional open source
+ * licenses. See the Open Source Licenses file (LICENSES.md) included with
+ * this source code distribution or the Licensing information page available
+ * at runtime from the About dialog for additional information.
+ *****************************************************************************/
+/*global define, window, requirejs*/
+
+define(function () {
+ return {};
+});
\ No newline at end of file