You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2016/02/01 18:52:36 UTC

[18/51] [abbrv] [partial] brooklyn-ui git commit: move subdir from incubator up a level as it is promoted to its own repo (first non-incubator commit!)

http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/18b073a9/src/main/license/README.md
----------------------------------------------------------------------
diff --git a/src/main/license/README.md b/src/main/license/README.md
new file mode 100644
index 0000000..2714c67
--- /dev/null
+++ b/src/main/license/README.md
@@ -0,0 +1,7 @@
+
+This directory contains files to generate the custom license for this project.
+The files/ subdir contains the artifacts which are included in the JAR, some
+autogenerated by the dist/licensing scripts.
+
+See usage/dist/licensing/README.md for more information.
+

http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/18b073a9/src/main/license/files/DISCLAIMER
----------------------------------------------------------------------
diff --git a/src/main/license/files/DISCLAIMER b/src/main/license/files/DISCLAIMER
new file mode 100644
index 0000000..9e6119b
--- /dev/null
+++ b/src/main/license/files/DISCLAIMER
@@ -0,0 +1,8 @@
+
+Apache Brooklyn is an effort undergoing incubation at The Apache Software Foundation (ASF), 
+sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until 
+a further review indicates that the infrastructure, communications, and decision making process 
+have stabilized in a manner consistent with other successful ASF projects. While incubation 
+status is not necessarily a reflection of the completeness or stability of the code, it does 
+indicate that the project has yet to be fully endorsed by the ASF.
+

http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/18b073a9/src/main/license/files/LICENSE
----------------------------------------------------------------------
diff --git a/src/main/license/files/LICENSE b/src/main/license/files/LICENSE
new file mode 100644
index 0000000..58c78f1
--- /dev/null
+++ b/src/main/license/files/LICENSE
@@ -0,0 +1,440 @@
+
+This software is distributed under the Apache License, version 2.0. See (1) below.
+This software is copyright (c) The Apache Software Foundation and contributors.
+
+Contents:
+
+  (1) This software license: Apache License, version 2.0
+  (2) Notices for bundled software
+  (3) Licenses for bundled software
+
+
+---------------------------------------------------
+
+(1) This software license: Apache License, version 2.0
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+
+---------------------------------------------------
+
+(2) Notices for bundled software
+
+This project includes the software: async.js
+  Available at: https://github.com/p15martin/google-maps-hello-world/blob/master/js/libs/async.js
+  Developed by: Miller Medeiros (https://github.com/millermedeiros/)
+  Version used: 0.1.1
+  Used under the following license: The MIT License (http://opensource.org/licenses/MIT)
+  Copyright (c) Miller Medeiros (2011)
+
+This project includes the software: backbone.js
+  Available at: http://backbonejs.org
+  Developed by: DocumentCloud Inc. (http://www.documentcloud.org/)
+  Version used: 1.0.0
+  Used under the following license: The MIT License (http://opensource.org/licenses/MIT)
+  Copyright (c) Jeremy Ashkenas, DocumentCloud Inc. (2010-2013)
+
+This project includes the software: bootstrap.js
+  Available at: http://twitter.github.com/bootstrap/javascript.html#transitions
+  Version used: 2.0.4
+  Used under the following license: Apache License, version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)
+  Copyright (c) Twitter, Inc. (2012)
+
+This project includes the software: handlebars.js
+  Available at: https://github.com/wycats/handlebars.js
+  Developed by: Yehuda Katz (https://github.com/wycats/)
+  Inclusive of: handlebars*.js
+  Version used: 1.0-rc1
+  Used under the following license: The MIT License (http://opensource.org/licenses/MIT)
+  Copyright (c) Yehuda Katz (2012)
+
+This project includes the software: jQuery JavaScript Library
+  Available at: http://jquery.com/
+  Developed by: The jQuery Foundation (http://jquery.org/)
+  Inclusive of: jquery.js
+  Version used: 1.7.2
+  Used under the following license: The MIT License (http://opensource.org/licenses/MIT)
+  Copyright (c) John Resig (2005-2011)
+  Includes code fragments from sizzle.js:
+    Copyright (c) The Dojo Foundation
+    Available at http://sizzlejs.com
+    Used under the MIT license
+
+This project includes the software: jQuery BBQ: Back Button & Query Library
+  Available at: http://benalman.com/projects/jquery-bbq-plugin/
+  Developed by: "Cowboy" Ben Alman (http://benalman.com/)
+  Inclusive of: jquery.ba-bbq*.js
+  Version used: 1.2.1
+  Used under the following license: The MIT License (http://opensource.org/licenses/MIT)
+  Copyright (c) "Cowboy" Ben Alman (2010)"
+
+This project includes the software: DataTables Table plug-in for jQuery
+  Available at: http://www.datatables.net/
+  Developed by: SpryMedia Ltd (http://sprymedia.co.uk/)
+  Inclusive of: jquery.dataTables.{js,css}
+  Version used: 1.9.4
+  Used under the following license: The BSD 3-Clause (New BSD) License (http://opensource.org/licenses/BSD-3-Clause)
+  Copyright (c) Allan Jardine (2008-2012)
+
+This project includes the software: jQuery Form Plugin
+  Available at: https://github.com/malsup/form
+  Developed by: Mike Alsup (http://malsup.com/)
+  Inclusive of: jquery.form.js
+  Version used: 3.09
+  Used under the following license: The MIT License (http://opensource.org/licenses/MIT)
+  Copyright (c) M. Alsup (2006-2013)
+
+This project includes the software: jQuery Wiggle
+  Available at: https://github.com/jordanthomas/jquery-wiggle
+  Inclusive of: jquery.wiggle.min.js
+  Version used: swagger-ui:1.0.1
+  Used under the following license: The MIT License (http://opensource.org/licenses/MIT)
+  Copyright (c) WonderGroup and Jordan Thomas (2010)
+  Previously online at http://labs.wondergroup.com/demos/mini-ui/index.html.
+  The version included here is from the Swagger UI distribution.
+
+This project includes the software: js-uri
+  Available at: http://code.google.com/p/js-uri/
+  Developed by: js-uri contributors (https://code.google.com/js-uri)
+  Inclusive of: URI.js
+  Version used: 0.1
+  Used under the following license: The BSD 3-Clause (New BSD) License (http://opensource.org/licenses/BSD-3-Clause)
+  Copyright (c) js-uri contributors (2013)
+
+This project includes the software: js-yaml.js
+  Available at: https://github.com/nodeca/
+  Developed by: Vitaly Puzrin (https://github.com/nodeca/)
+  Version used: 3.2.7
+  Used under the following license: The MIT License (http://opensource.org/licenses/MIT)
+  Copyright (c) Vitaly Puzrin (2011-2015)
+
+This project includes the software: marked.js
+  Available at: https://github.com/chjj/marked
+  Developed by: Christopher Jeffrey (https://github.com/chjj)
+  Version used: 0.3.1
+  Used under the following license: The MIT License (http://opensource.org/licenses/MIT)
+  Copyright (c) Christopher Jeffrey (2011-2014)
+
+This project includes the software: moment.js
+  Available at: http://momentjs.com
+  Developed by: Tim Wood (http://momentjs.com)
+  Version used: 2.1.0
+  Used under the following license: The MIT License (http://opensource.org/licenses/MIT)
+  Copyright (c) Tim Wood, Iskren Chernev, Moment.js contributors (2011-2014)
+
+This project includes the software: RequireJS
+  Available at: http://requirejs.org/
+  Developed by: The Dojo Foundation (http://dojofoundation.org/)
+  Inclusive of: require.js, text.js
+  Version used: 2.0.6
+  Used under the following license: The MIT License (http://opensource.org/licenses/MIT)
+  Copyright (c) The Dojo Foundation (2010-2012)
+
+This project includes the software: RequireJS (r.js maven plugin)
+  Available at: http://github.com/jrburke/requirejs
+  Developed by: The Dojo Foundation (http://dojofoundation.org/)
+  Inclusive of: r.js
+  Version used: 2.1.6
+  Used under the following license: The MIT License (http://opensource.org/licenses/MIT)
+  Copyright (c) The Dojo Foundation (2009-2013)
+  Includes code fragments for source-map and other functionality:
+    Copyright (c) The Mozilla Foundation and contributors (2011)
+    Used under the BSD 2-Clause license.
+  Includes code fragments for parse-js and other functionality:
+    Copyright (c) Mihai Bazon (2010, 2012)
+    Used under the BSD 2-Clause license.
+  Includes code fragments for uglifyjs/consolidator:
+    Copyright (c) Robert Gust-Bardon (2012)
+    Used under the BSD 2-Clause license.
+  Includes code fragments for the esprima parser:
+    Copyright (c):
+      Ariya Hidayat (2011, 2012)
+      Mathias Bynens (2012)
+      Joost-Wim Boekesteijn (2012)
+      Kris Kowal (2012)
+      Yusuke Suzuki (2012)
+      Arpad Borsos (2012)
+    Used under the BSD 2-Clause license.
+
+This project includes the software: Swagger UI
+  Available at: https://github.com/swagger-api/swagger-ui
+  Inclusive of: swagger*.{js,css,html}
+  Version used: 2.1.4
+  Used under the following license: Apache License, version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)
+  Copyright (c) SmartBear Software (2011-2015)
+
+This project includes the software: underscore.js
+  Available at: http://underscorejs.org
+  Developed by: DocumentCloud Inc. (http://www.documentcloud.org/)
+  Inclusive of: underscore*.{js,map}
+  Version used: 1.4.4
+  Used under the following license: The MIT License (http://opensource.org/licenses/MIT)
+  Copyright (c) Jeremy Ashkenas, DocumentCloud Inc. (2009-2013)
+
+This project includes the software: ZeroClipboard
+  Available at: http://zeroclipboard.org/
+  Developed by: ZeroClipboard contributors (https://github.com/zeroclipboard)
+  Inclusive of: ZeroClipboard.*
+  Version used: 1.3.1
+  Used under the following license: The MIT License (http://opensource.org/licenses/MIT)
+  Copyright (c) Jon Rohan, James M. Greene (2014)
+
+
+---------------------------------------------------
+
+(3) Licenses for bundled software
+
+Contents:
+
+  The BSD 2-Clause License
+  The BSD 3-Clause License ("New BSD")
+  The MIT License ("MIT")
+
+
+The BSD 2-Clause License
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+  
+  1. Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+  
+  2. Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+  
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  
+
+The BSD 3-Clause License ("New BSD")
+
+  Redistribution and use in source and binary forms, with or without modification,
+  are permitted provided that the following conditions are met:
+  
+  1. Redistributions of source code must retain the above copyright notice, 
+  this list of conditions and the following disclaimer.
+  
+  2. Redistributions in binary form must reproduce the above copyright notice, 
+  this list of conditions and the following disclaimer in the documentation 
+  and/or other materials provided with the distribution.
+  
+  3. Neither the name of the copyright holder nor the names of its contributors 
+  may be used to endorse or promote products derived from this software without 
+  specific prior written permission.
+  
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
+  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
+  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
+  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
+  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
+  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
+  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
+  POSSIBILITY OF SUCH DAMAGE.
+  
+
+The MIT License ("MIT")
+
+  Permission is hereby granted, free of charge, to any person obtaining a copy
+  of this software and associated documentation files (the "Software"), to deal
+  in the Software without restriction, including without limitation the rights
+  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+  copies of the Software, and to permit persons to whom the Software is
+  furnished to do so, subject to the following conditions:
+  
+  The above copyright notice and this permission notice shall be included in
+  all copies or substantial portions of the Software.
+  
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+  THE SOFTWARE.
+  
+

http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/18b073a9/src/main/license/files/NOTICE
----------------------------------------------------------------------
diff --git a/src/main/license/files/NOTICE b/src/main/license/files/NOTICE
new file mode 100644
index 0000000..f790f13
--- /dev/null
+++ b/src/main/license/files/NOTICE
@@ -0,0 +1,5 @@
+Apache Brooklyn
+Copyright 2014-2015 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).

http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/18b073a9/src/main/license/source-inclusions.yaml
----------------------------------------------------------------------
diff --git a/src/main/license/source-inclusions.yaml b/src/main/license/source-inclusions.yaml
new file mode 100644
index 0000000..8c1945c
--- /dev/null
+++ b/src/main/license/source-inclusions.yaml
@@ -0,0 +1,42 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+#
+
+# extras file for org.heneveld.license-audit-maven-plugin
+# listing projects from which *source* files are included
+
+- id: jquery-core:1.7.2
+- id: swagger-ui:2.1.4
+# we use other versions of the above in other projs
+
+- id: jquery.wiggle.min.js
+- id: require.js
+- id: require.js/r.js
+- id: backbone.js
+- id: bootstrap.js
+- id: underscore.js
+- id: async.js
+- id: handlebars.js
+- id: jquery.ba-bbq.js
+- id: moment.js
+- id: ZeroClipboard
+- id: jquery.dataTables
+- id: js-uri
+- id: js-yaml.js
+- id: jquery.form.js
+- id: marked.js

http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/18b073a9/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..02e7fcc
--- /dev/null
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,24 @@
+<!DOCTYPE web-app PUBLIC
+ "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd" >
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you 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.
+-->
+<web-app>
+  <display-name>Brooklyn</display-name>
+</web-app>

http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/18b073a9/src/main/webapp/assets/css/base.css
----------------------------------------------------------------------
diff --git a/src/main/webapp/assets/css/base.css b/src/main/webapp/assets/css/base.css
new file mode 100644
index 0000000..a80f35b
--- /dev/null
+++ b/src/main/webapp/assets/css/base.css
@@ -0,0 +1,1488 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+*/
+/* landing page */
+.logo {
+    float: left;
+}
+
+.menubar-top {
+    display: inline-block;
+    vertical-align: bottom;
+    float: right;
+    text-align: right;
+    padding-top: 30px;
+    padding-right: 60px;
+}
+
+#main-content {
+    position: relative;
+}
+
+#application-content {
+    margin-top: 40px;
+    margin-bottom: 40px;
+}
+.add-app .modal-body {
+    padding: 0;
+}
+.add-app .modal-header{
+    border-bottom: 0;
+}
+.add-app .modal-footer {
+    min-height: 20px;
+}
+
+.add-app .tab-content-scroller {
+    overflow: auto !important;
+}
+#application-content div#details {
+    margin-left: 8px !important;
+}
+#application-content .deploy,
+#application-content .preview {
+    padding: 15px;
+}
+#application-content .tab-content {
+    /* easier to scroll in the main window; but if we wanted to prevent it, we could with this */
+    /* max-height: 720px; */
+    overflow: auto;
+}
+
+#modal-container .tab-content {
+    max-height: 300px;
+    overflow: auto;
+}
+
+#application-content .template-lozenge {
+    cursor: hand; cursor: pointer;
+}
+#application-content div.template-lozenge.frame {
+    display: inline-block;
+    border: 3px solid #EEE;
+    border-radius: 4px;
+    width: 212px;
+    overflow: auto;
+    margin: 4px;
+    padding: 3px;
+    clear: right;
+    float: left;   
+}
+#application-content div.template-lozenge div.icon {
+    margin: 2px 8px 2px 2px;
+}
+#application-content div.template-lozenge div.icon img {
+    max-width: 50px;
+    max-height: 50px;
+    margin-top: 15px;
+}
+#application-content .template-lozenge.frame:hover {
+    border: 3px solid #CCC;
+}
+#application-content .template-lozenge.frame.selected {
+    border: 3px solid #793;
+}
+#application-content .template-lozenge .icon {
+    float: left;
+}
+#application-content .template-lozenge .blurb {
+    overflow-y: auto;
+    height: 80px;
+}
+#application-content .template-lozenge .title {
+    font-weight: 700;
+    font-size: 90%;
+}
+#application-content .template-lozenge .description {
+    font-size: 85%;
+}
+#preview_step {
+    margin-left: 18px;
+}
+#application-content .sensor-value,
+#application-content .config-value {
+    font-weight: 700;
+    max-width: 500px;
+    max-height: 40px;
+    white-space: nowrap;
+    overflow-x: hidden;
+    overflow-y: auto;
+}
+div#create-step-template-entries {
+    width: 472px;
+    margin-left: auto;
+    margin-right: auto;
+    padding-top: 12px;
+    padding-bottom: 36px;
+}
+div#catalog-applications-throbber {
+    margin-top: 100px;
+    text-align: center;
+}
+div#catalog-applications-empty {
+    margin-top: 100px;
+    text-align: center;
+}
+/* menu bar */
+.navbar .nav>li {
+    display: block;
+    float: left;
+    list-style: none;
+    margin: 15px 5px 0px 5px;
+}
+
+.navbar .nav>li>a:hover {
+    background-color: #A8B8B0;
+    foreground-color: #261;
+    color: #261;
+    text-decoration: none;
+    text-shadow: 0 0px 0;
+}
+
+.navbar .nav>li>a {
+    background-color: #261;
+    color: #F0F4E8;
+    padding: 5px 7px 0px 7px;
+    -webkit-border-radius: 5px 5px 0 0;
+    -moz-border-radius: 5px 5px 0 0;
+    border-radius: 5px 5px 0 0;
+    line-height: 19px;
+    text-decoration: none;
+    text-shadow: 0 0px 0;
+}
+.navbar .nav > li > a.active {
+    background-color: #492;
+}
+
+ul.dropdown-menu {
+    text-align: left;
+}
+
+.navbar .dropdown-menu li > a:hover, .dropdown-menu .active > a, .dropdown-menu .active > a:hover {
+    background-color: #58AA33; /* that seems necessary to result in the color we want, viz ~ 77AA3E; */
+}
+
+/* tabs eg catalog page */
+.nav-tabs>li,.nav-pills>li {
+    float: left;
+    margin: 0px 1px -1px 1px;
+}
+
+.nav-tabs {
+    border-bottom: 1px solid #DDD;
+    padding-left: 8px;
+    padding-right: 8px;
+    height: 35px;
+}
+
+.nav-tabs>li>a {
+    padding-top: 5px;
+    padding-bottom: 3px;
+    line-height: 18px;
+    border: 1px solid transparent;
+    -webkit-border-radius: 5px 5px 0 0;
+    -moz-border-radius: 5px 5px 0 0;
+    border-radius: 5px 5px 0 0;
+}
+
+li.text-filter input {
+    width: 10em;
+    margin-top: 3px;
+    /* taken from datatables_filter input */    
+    background-image: url("../img/magnifying-glass-right-icon.png");
+    background-size:12px 12px;
+    background-repeat: no-repeat;
+    background-position: 8px 5px;
+    font-size: 85%;
+    padding: 1px 4px 1px 24px;
+    margin-bottom: 2px;
+    -webkit-border-radius: 1em;
+    -moz-border-radius: 1em;
+    border-radius: 1em;
+}
+
+/* bootstrap overrides */
+a {
+    color: #382;
+}
+a:hover {
+    color: #65AA34;
+}
+code {
+    color: #273;
+}
+/* buttons (override bootstrap) */
+.btn-info {
+  background-color: #90C858;
+  *background-color: #609040;
+  background-image: -ms-linear-gradient(top, #90C858, #609040);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#90C858), to(#609040));
+  background-image: -webkit-linear-gradient(top, #90C858, #609040);
+  background-image: -o-linear-gradient(top, #90C858, #609040);
+  background-image: -moz-linear-gradient(top, #90C858, #609040);
+  background-image: linear-gradient(top, #90C858, #609040);
+  background-repeat: repeat-x;
+  border-color: #609040 #609040 #609040;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#90C858', endColorstr='#609040', GradientType=0);
+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);
+}
+
+.btn-info:hover,
+.btn-info:active,
+.btn-info.active,
+.btn-info.disabled,
+.btn-info[disabled] {
+  background-color: #609040;
+  *background-color: #508030;
+}
+
+.btn-info:active,
+.btn-info.active {
+  background-color: #508030 \9;
+}
+
+/* unchanged from bootstrap
+.btn-inverse {
+  background-color: #414141;
+  *background-color: #222222;
+  background-image: -ms-linear-gradient(top, #555555, #222222);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222));
+  background-image: -webkit-linear-gradient(top, #555555, #222222);
+  background-image: -o-linear-gradient(top, #555555, #222222);
+  background-image: -moz-linear-gradient(top, #555555, #222222);
+  background-image: linear-gradient(top, #555555, #222222);
+  background-repeat: repeat-x;
+  border-color: #222222 #222222 #000000;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0);
+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);
+}
+
+.btn-inverse:hover,
+.btn-inverse:active,
+.btn-inverse.active,
+.btn-inverse.disabled,
+.btn-inverse[disabled] {
+  background-color: #222222;
+  *background-color: #151515;
+}
+
+.btn-inverse:active,
+.btn-inverse.active {
+  background-color: #080808 \9;
+}
+*/
+
+textarea:focus,input[type="text"]:focus,input[type="password"]:focus,
+input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,
+input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,
+input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,
+input[type="color"]:focus,.uneditable-input:focus {
+    border-color: rgba(120, 180, 70, 0.8);
+    outline: 0;
+    outline: thin dotted 9;
+    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px
+        rgba(120, 180, 70, 0.6);
+    -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px
+        rgba(120, 180, 70, 0.6);
+    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px
+        rgba(120, 180, 70, 0.6);
+}
+
+/* home page squares */
+
+/* HOME BODY */
+#application-content {
+    background-color: #e8e8e8 !important;
+    padding-top: 30px !important;
+}
+
+.home-first-row {
+    padding: 0px;
+}
+
+.home-summaries-row {
+    text-align: center;
+    margin: 0px 0px 30px 0px;
+}
+
+.roundedSummary {
+    float: left;
+    border: 1px solid #d4d4d4;
+    -webkit-border-radius: 15px;
+    -moz-border-radius: 15px;
+    border-radius: 15px;
+    background-color: #f7f6e8;
+    margin: 10px 15px 0px 0px;
+    padding: 20px 20px;
+    width: 264px;
+    height: 160px;
+    line-height: 1.2;
+    font-size: 140%;
+    display: inline-block;
+    text-align: left;
+    background: #f9f9f9 url(../images/roundedSummary-background.png) top
+        repeat-x !important;
+}
+
+.roundedSummary:last-child {
+    margin-right: 0px;
+}
+
+.roundedSummary:before { /* makes the summary vertically centered */
+    content: '';
+    display: inline-block;
+    height: 100%;
+    vertical-align: middle;
+    margin-right: 0px !important;
+    /* 
+    margin-right: -0.25em; 
+    adjusts for horiz spacing */
+}
+
+.roundedSummaryText {
+    display: inline-block;
+    vertical-align: middle;
+}
+
+.addApplication {
+    border: 1px solid #a1cb8c !important;
+    color: #505050 !important;
+    background: url(../images/addApplication-plus.png) no-repeat !important;
+    padding: 10px 0px 0px 74px !important;
+    width: 298px !important;
+    height: 201px !important;
+    margin-right: 0;
+}
+
+.addApplication:hover {
+    border: 1px solid #58a82e !important;
+    color: #58a82e !important;
+    background: url(../images/addApplication-plus-hover.png) no-repeat
+        !important;
+}
+
+.home-summaries-row {
+    padding: 0px 0px 0px 0px !important;
+    margin: 0px !important;
+}
+
+.big {
+    font-size: 180%;
+}
+
+.home-second-row {
+    background-color: #dddddd !important;
+    padding: 24px 0px 30px 0px !important;
+    border-top: 1px solid #efefef;
+    margin: 30px 0px 0px 0px;
+}
+
+.home-widgets-row {
+    text-align: center;
+}
+
+.map-container {
+    -webkit-border-radius: 13px 13px 13px 13px;
+    -moz-border-radius: 13px 13px 13px 13px;
+    border-radius: 13px 13px 13px 13px;
+    background-color: #f7f7f7;
+    border: 1px solid #d4d4d4;
+    padding: 13px !important;
+    width: 440px;
+    margin: 10px 0px 0px 13px !important;
+    display: inline-block;
+    text-align: left;
+    vertical-align: top;
+    margin: 0px 20px;
+}
+.circles-map {
+    height: 350px;
+    border : 2px solid #909490;
+    -webkit-border-radius: 2px 2px 2px 2px;
+    -moz-border-radius: 2px 2px 2px 2px;
+    border-radius: 2px 2px 2px 2px;
+}
+.circles-map-message:before { /* makes the message vertically centered */
+    content: '';
+    display: inline-block;
+    height: 100%;
+    vertical-align: middle;
+    margin-right: -0.25em; /* adjusts for horiz spacing */
+}
+.circles-map-message {
+    display: inline-block;
+    width: 100%;
+    height: 100%;
+    color: #888;
+    text-align: center;
+    vertical-align: middle;
+}
+#applications-table-body a {
+    color: inherit;
+}
+.apps-summary-container {
+    width: 440px;
+    display: inline-block;
+    text-align: left;
+    vertical-align: top;
+    display: inline-block;
+    margin: 10px -6px 0px 24px;
+    text-align: left;
+    vertical-align: top;
+}
+#new-application-resource {
+    text-align: right;
+}
+
+#reload-brooklyn-properties-resource {
+	text-align: right;
+}
+
+#clear-ha-node-records-resource {
+    text-align: right;
+}
+
+/* general pages */
+.sidebar_at_right {
+    border-right: 4px solid #BBB;
+}
+
+.sidebar_at_left {
+    border-left: 4px solid #BBB;
+    margin-left: -4px !important;
+    padding-left: 24px;
+}
+
+.nav-tabs {
+    margin-bottom: 0px;
+}
+.tab-content-scroller {
+    height: auto;
+    overflow: auto;
+}
+.tab-content {
+    padding: 12px 18px 18px 18px;
+    border-right: 1px solid #DDD;
+    border-left: 1px solid #DDD;
+    min-height: 300px;
+}
+
+.navbar_top {
+    background-color: #D0D8D0;
+    padding: 8px 12px 12px 12px;
+    -webkit-border-radius: 4px 4px 0 0;
+    -moz-border-radius: 4px 4px 0 0;
+    border-radius: 4px 4px 0 0;
+}
+.navbar_main_wrapper {
+    background-color: #F0F4F0;
+    -webkit-border-radius: 0 0 4px 4px;
+    -moz-border-radius: 0 0 4px 4px;
+    border-radius: 0 0 4px 4px;
+}
+.navbar_main {
+    overflow-x: auto;
+    margin: 0;
+    white-space: nowrap;
+}
+
+/* traditional tree-style (clickable + icons) tree-list */
+#tree-list {
+}
+ol.tree {
+    padding: 0;
+}
+#tree-list li input + ol {
+    background: url(../img/toggle-small-expand.png) 40px 5px no-repeat;
+    margin: -1.963em 0 0 -40px; !important;
+    padding: 1.563em 0 0 62px; !important;
+}
+#tree-list li input:checked + ol {
+    background: url(../img/toggle-small.png) 40px 5px no-repeat;
+}
+#tree-list li input + ol > li {
+    padding-left: 1px;
+/*    margin: 0; */
+}
+#tree-list span.leaf {
+    margin-left: 17px !important;
+}
+#tree-list li.application {
+    margin-top: 6px !important;
+}
+#tree-list li input + ol {
+    height: auto;
+}
+.navbar_main_wrapper.treelist {
+    padding: 12px 6px 4px 6px;
+}
+.navbar_main.treelist {
+    padding: 0px 8px 6px 2px;
+}
+
+.label-message {
+    background-color: #DDD;
+    -webkit-border-radius: 2px 2px 2px 2px;
+    -moz-border-radius: 2px 2px 2px 2px;
+    border-radius: 2px 2px 2px 2px;
+    padding: 4px 0px 4px 0px;
+    margin-bottom: 4px;
+    font-weight: bold;
+} 
+.label-important {
+    display: inline;
+    padding: 4px;
+    color: #F0F0F0;
+    font-weight: bold;
+    -webkit-border-radius: 2px 2px 2px 2px;
+    -moz-border-radius: 2px 2px 2px 2px;
+    border-radius: 2px 2px 2px 2px;
+}
+.label-important.full-width {
+    display: block;
+    text-align: center;
+}
+
+/** apps / entity explorer page */
+.apps-tree-toolbar {
+    text-align: right;
+}
+.entity_tree_node, .entity_tree_node a {
+    color: #182018;
+}
+.handy {
+    cursor: hand; cursor: pointer;
+}
+.entity_tree_node:hover {
+    cursor: hand; cursor: pointer;
+}
+.entity_tree_node a:hover {
+    color: #54932b !important;
+    text-decoration: none;
+}
+.entity_tree_node_wrapper.active .entity_tree_node {
+    font-weight: bold;
+}
+.entity_tree_node_wrapper .indirection-icon {
+    opacity: 0.7;
+    margin-left: -5px;
+}
+.tree-box.indirect > .entity_tree_node_wrapper a {
+    font-style: italic !important;
+    color: #666;
+}
+
+#tree label {
+/* remove the folder, and align with + - icons */
+background: none;
+padding-left: 16px;
+line-height: 18px;
+}
+.cssninja ol.tree {
+    padding: 0;
+    width: auto;
+}
+
+/* new lozenge-style tree-list */
+.navbar_main_wrapper .treeloz {
+    padding: 12px 0px 20px 0px;
+}
+.navbar_main .treeloz {
+    padding: 0px 0px 0px 0px;
+}
+.lozenge-app-tree-wrapper {
+    min-width: 100%;
+    min-height: 240px;
+    padding-bottom: 60px; /* for popup menu */
+    margin-top: -2px;
+    position: relative; 
+    float: left;
+}
+.entity_tree_node_wrapper {
+    position: relative;
+}
+.tree-box {
+    border: 1px solid #AAA;
+    border-right: 0px;
+    margin-top: 3px;
+    padding-top: 2px;
+    background-color: #EAECEA;
+}
+.tree-box.outer {
+    margin-left: 12px;
+    margin-right: 0px;
+    margin-bottom: 14px;
+    -webkit-border-radius: 4px 0 0 4px !important;
+    -moz-border-radius: 4px 0 0 4px !important;
+    border-radius: 4px 0 0 4px  !important;
+    padding-left: 4px;
+    padding-bottom: 4px;
+}
+.tree-box.inner {
+    margin-bottom: 2px;
+    border: 1px solid #BBB;
+    border-right: 0px;
+    -webkit-border-radius: 3px 0 0 3px !important;
+    -moz-border-radius: 3px 0 0 3px !important;
+    border-radius: 3px 0 0 3px  !important;
+    padding-left: 6px;
+    padding-bottom: 2px;
+    margin-left: 3px;
+}
+.tree-box.inner.depth-first {
+    margin-left: 8px;
+}
+.tree-box.inner.depth-odd {
+    background-color: #D8DAD8;
+}
+.tree-box.inner.depth-even {
+    background-color: #EAECEA;
+}
+.tree-node {
+    position: relative;
+    padding-top: 2px;
+    padding-bottom: 1px;
+    padding-right: 8px;
+}
+.light-popup {
+    display: none;
+    position: relative;
+    top: 12px;
+    float: left;
+    z-index: 1;
+}
+.toggler-icon .light-popup {
+    padding-top: 4px;
+}
+.light-popup-body {
+    padding: 3px 0px;
+    background-color: #606060;
+    color: #CDC;
+    font-weight: 300;
+    font-size: 85%;
+    line-height: 14px;
+    border: 1px dotted #CDC;
+    -webkit-border-radius: 2px 2px 2px 2px !important;
+    -moz-border-radius: 2px 2px 2px 2px !important;
+    border-radius: 2px 2px 2px 2px !important;
+}
+.light-popup-menu-item {
+    color: #D0D4D0;
+}
+.light-popup-menu-item.tr-default {
+    color: #E0E4E0;
+}
+.light-popup-menu-item {
+    padding: 1px 8px 1px 6px;
+}
+.light-popup-menu-item:hover {
+    background-color: #58AA33;
+    color: #000;
+}
+.light-popup-menu-item.zeroclipboard-is-hover {
+    background-color: #58AA33;
+    color: #000;
+}
+
+.app-summary .inforow > div { display: inline-block; }
+.app-summary .inforow .info-name-value { white-space: nowrap; }
+.app-summary .inforow .info-name-value > div { display: inline-block; }
+.app-summary .inforow .info-name-value .name { font-weight: 700; width: 120px; padding-right: 12px; }
+.app-summary .additional-info-on-problem { color: #D01; }
+.app-summary .additional-info-on-problem a { color: #563; }
+a.open-tab { cursor: hand; cursor: pointer; }
+
+table.dataTable tbody td.row-expansion {
+    background: #D8E4D0;
+}
+table.dataTable.activity-table tbody td.row-expansion {
+    background: #FFFFFF;
+}
+
+#activities-table-group div.for-activity-textarea {
+    /* correct for textarea width oddity */
+    margin-right: 10px;
+    margin-top: 6px;
+}
+#activities-table-group div.for-activity-textarea textarea {
+    margin-bottom: 0px;
+    border-color: #BBB;
+}
+#activities-root .toolbar-row i {
+    background-image: url("../img/glyphicons-halflings.png");
+    width: 18px;
+}
+#activities-root .toolbar-row i.active {
+    background-image: url("../img/glyphicons-halflings-bright-green.png");
+}
+#activities-root .toolbar-row {
+    padding-top: 1px;
+}
+#activities-root .toolbar-row i:hover,
+#activities-root .toolbar-row i.active:hover {
+    background-image: url("../img/glyphicons-halflings-dark-green.png");
+}
+table.dataTable td.row-expansion {
+    padding-top: 0px;
+}
+.opened-row-details {
+    display: block;
+    font-size: 90%;
+    
+    border-top: dotted whiteSmoke 1px;
+    margin-top: 0px;
+    padding-top: 2px;
+    
+    margin-left: -6px;
+    margin-right: -6px;
+    padding-left: 6px;
+    padding-right: 6px;
+    
+    margin-bottom: 4px;
+    padding-bottom: 6px;
+    border-right: dotted gray 1px;
+    border-bottom: dotted gray 1px;
+    border-left: dotted gray 1px;
+    border-bottom-left-radius: 8px;
+    border-bottom-right-radius: 8px;
+    
+    background: #D8E0D4;
+}
+
+/* effector modal dialog */
+#params td {
+    vertical-align: middle;
+}
+#params input {
+    margin-bottom: 0px;
+}
+
+table.dataTable tr.odd td.sorting_1 {
+background-color: #F9F9F9;
+}
+table.dataTable tr.even td.sorting_1 {
+background-color: #FFFFFF;
+}
+table.dataTable tr.odd {
+background-color: #F9F9F9;
+}
+table.dataTable tr.even {
+background-color: #FFFFFF;
+}
+table.dataTable tbody tr.selected,
+table.dataTable tr.odd.selected td.sorting_1,
+table.dataTable tr.even.selected td.sorting_1 {
+    background: #B8C8B0;
+}
+table.nonDatatables tr:hover,
+table.nonDatatables tr.odd:hover,
+table.nonDatatables tr.even:hover,
+table.nonDatatables tr.zeroclipboard-is-hover,
+table.nonDatatables tr.even.zeroclipboard-is-hover,
+table.nonDatatables tr.odd.zeroclipboard-is-hover,
+table.dataTable tr:hover:not(.selected),
+table.dataTable tr.odd:hover:not(.selected),
+table.dataTable tr.even:hover:not(.selected),
+table.dataTable tr.zeroclipboard-is-hover:not(.selected),
+table.dataTable tr.odd.zeroclipboard-is-hover:not(.selected),
+table.dataTable tr.even.zeroclipboard-is-hover:not(.selected),
+table.nonDatatables tr:hover td,
+table.nonDatatables tr.odd:hover td,
+table.nonDatatables tr.even:hover td,
+table.dataTable tr:hover:not(.selected) td:not(.row-expansion),
+table.dataTable tr:hover:not(.selected) td.sorting_1:not(.row-expansion),
+table.dataTable tr.odd:hover:not(.selected) td:not(.row-expansion),
+table.dataTable tr.even:hover:not(.selected) td:not(.row-expansion) {
+    background-color: #E0E4E0;
+}
+table.dataTable tbody tr.selected:hover,
+table.dataTable tr.odd.selected td.sorting_1:hover,
+table.dataTable tr.even.selected td.sorting_1:hover {
+    background: #98B890;
+}
+
+table.dataTable.activity-table tbody tr.activity-row,
+table.nonDatatables#policies-table tbody tr.policy-row {
+    cursor: hand; cursor: pointer;
+}
+
+table.dataTable thead th {
+text-align: left;
+background-color: #E0E4E0;
+line-height: 24px;
+font-size: 110%;
+}
+table.dataTable {
+margin: 0;
+border-width: 2px 0px 2px 0px;
+border-style: solid;
+border-color: black;
+background-color: #fff;
+overflow: scroll;
+/* background-color: #fff;
+ border-top-width: 1px; */
+}
+.bottom {
+    vertical-align: bottom;
+}
+.smallpadside {
+    margin-left: 0.25em;
+    margin-right: 0.25em;
+}
+.table-scroll-wrapper {
+    width: 100%;
+    overflow: auto;
+    background-color: #ececec;
+    border-style: solid;
+    border-color: #e8e8e8;
+    border-width: 1px 1px 1px 1px;
+    border-bottom-left-radius: 7px;
+    border-bottom-right-radius: 7px;
+}
+.table-scroll-wrapper .dataTables_filter {
+    float: left;
+    padding-left: 6px;
+}
+.table-scroll-wrapper .dataTables_filter label {
+    margin-bottom: 5px;
+    margin-top: 4px;
+}
+.dataTables_wrapper .brook-db-top-toolbar {
+    font-size: 85%;
+    float: right;
+    padding-right: 6px;
+    padding-top: 7px;
+}
+.dataTables_wrapper .brook-db-bot-toolbar {
+    font-size: 85%;
+    float: right;
+    padding-right: 6px;
+    padding-left: 5px;
+    padding-top: 5px;
+}
+
+.dataTables_info {
+    padding-top: 5px;
+    padding-left: 8px;
+    padding-bottom: 8px;
+    font-size: 85%;
+    width: auto;
+    align: center;
+    clear: none;
+}
+.dataTables_paginate {
+    font-size: 85%;
+    float: right;
+    margin-top: 6px;
+    margin-bottom: 3px;
+    padding-top: 1px;
+    padding-right: 4px;
+    height: 18px;
+    line-height: 18px;
+}
+.paging_full_numbers a.paginate_active {
+     background-color: #A8B8B0;
+}
+.dataTables_length {
+    float: left;
+    padding-left: 1em;
+    padding-top: 5px;
+}
+.dataTables_length label {
+    font-size: 85%;
+}
+.dataTables_length select {
+    height: auto;
+    font-size: 85%;
+    margin-bottom: 0px;
+    width: 45px;
+}
+.dataTables_paginate.paging_full_numbers a.paginate_button, 
+.dataTables_paginate.paging_full_numbers a.paginate_active {
+-webkit-border-radius: 0px;
+-moz-border-radius: 0px;
+border-radius: 0px;
+padding: 2px 5px;
+margin: 0;
+}
+.dataTables_filter input {
+    background-image: url("../img/magnifying-glass-right-icon.png");
+    /* url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJ5JREFUeNpi+P//PwMQMANxERCfAeI/UBrEZwbJQ9WAFR0A4u1AbAnEbFB6O1ScGaawGoi3wHQiYyBYDZKHKbwHxLo4FOqC5GEKf4Ksw6EQ5IyfIDYTkPEUiNUZsAOQ+F9GRkYJEKcFiDficSOIcRjE4QTiY0C8DuRbqAJLKP8/FP9kQArHUiA+jySJjA8w4LAS5KZd0MAHhaccQIABALsMiBZy4YLtAAAAAElFTkSuQmCC); */
+    background-size:12px 12px;
+    background-repeat: no-repeat;
+    background-position: 8px 5px;
+    width: 12em;
+    font-size: 85%;
+    padding: 1px 4px 1px 24px;
+    margin-bottom: 1px;
+    border-color: #888C88;
+    /*
+    -webkit-border-radius: 1em;
+    -moz-border-radius: 1em;
+    border-radius: 1em;
+    */
+    -webkit-border-radius: 10px;
+    -moz-border-radius: 10px;
+    border-radius: 10px;
+}
+/* nonDatatables environments want to look a bit like our datatables environment */
+table.nonDatatables {
+    border-bottom: 1px solid gray;
+}
+table.nonDatatables thead {
+    border-bottom: 1px solid black;
+}
+table.nonDatatables thead th {
+    background: #ffffff;
+    padding: 3px 18px 3px 5px;
+}
+table.table.nonDatatables tbody > tr:first-child > td {
+    /* need both bottom of head, and top of body, to support empty table and override non-empty row top border */
+    border-top: 1px black solid;
+}
+table.table.nonDatatables tbody tr.selected,
+table.table.nonDatatables tbody tr.selected td {
+    background: #AC8;
+}
+/* we keep the thin gray line between rows for manual tables,
+   subtle difference but seems nice */
+div.for-empty-table {
+    width: 100%;
+    float: left;
+    background-color: #F9F9F9;
+    font-style: italic;
+    padding: 8px 0px;
+    text-align: center;
+    margin-top: -18px;
+    border-bottom: 1px solid gray;
+}
+
+/* add entity modal */
+.editable-entity-group {
+    margin-bottom: 2px;
+    border: 1px solid #E5E5E5;
+    -webkit-border-radius: 4px;
+    -moz-border-radius: 4px;
+    border-radius: 4px;
+}
+.editable-entity-heading {
+    padding: 2px 6px 2px 6px;
+    border-bottom: 1px solid #E5E5E5;
+    margin-bottom: -1px;
+    overflow: hidden;
+    -webkit-border-radius: 4px;
+    -moz-border-radius: 4px;
+    border-radius: 4px;
+    background-color: #F9F9F9;
+    line-height: 30px;
+}
+.editable-entity-heading:hover {
+    background-color: #F0F4F0;
+}
+.editable-entity-body {
+    border-top: 1px solid #E5E5E5;
+    margin-top: -1px;
+    padding: 7px 6px 2px 6px;
+    overflow: hidden;
+    -webkit-border-radius: 4px;
+    -moz-border-radius: 4px;
+    border-radius: 4px;
+}
+
+#app-locations select {
+    min-height: 22px;
+}
+#app-locations #selector-container {
+    margin-bottom: 4px;
+}
+div.application-name-label {
+    margin-bottom: 4px;
+}
+table.config-table {
+    margin-bottom: 6px;
+    margin-left: 2px;
+}
+.app-add-wizard-config-entry input {
+    margin: 3px 0 2px 0;    
+    height: 12px;
+    vertical-align: middle;
+}
+.app-add-wizard-config-entry input {
+    height: 14px;
+}
+tr.app-add-wizard-config-entry:nth-child(odd) {
+    background-color: #f8f8f8;
+}
+tr.app-add-wizard-config-entry:nth-child(even) {
+}
+tr.app-add-wizard-config-entry {
+    height: 20px;
+}
+.app-add-wizard-config-entry {
+    margin-bottom: 9px;
+    margin-top: 2px;
+}
+.app-add-wizard-config-entry button {
+    margin-left: 8px;
+}
+.app-add-wizard-create-entity-label-newline {
+    padding-left: 2px;
+    padding-bottom: 3px;    
+}
+.app-add-wizard-create-entity-label {
+    width: 4em;
+    float: left;
+    padding-top: 3px;
+}
+.app-add-wizard-create-entity-input {
+    width: 300px;
+}
+#add-app-entity {
+    float: right;
+}
+/* help page */
+#help-page p, #help-page ul {
+    margin-top: 8px;
+}
+.help-logo-right {
+    padding-left: 1.5em;
+    padding-top: 1.5em;
+    float: right;
+}
+.help-logo-right img {
+    border: 3px solid #6C6C6C;
+    border-radius: 2px;
+}
+.control-group {
+    margin-top: 6px;
+    margin-bottom: 9px;
+}
+.control-group .deploy-label {
+    font-weight: 700;
+}
+.deploy .control-group {
+    margin-bottom: 18px;
+}
+.deploy input#application-name {
+    /** margin supplied by control group */
+    margin-bottom: 0px;
+}
+
+#application-explorer div#summary textarea {
+    width: 100%;
+    cursor: auto;
+    margin-bottom: 2px;
+}
+
+/* catalog */
+.accordion-head {
+    -webkit-border-radius: 5px;
+    -moz-border-radius: 5px;
+    border-radius: 5px;
+    padding: 4px 10px 4px 8px;
+    font-weight: bold;
+    background-color: #F4F6F4;
+}
+.accordion-head.active {
+    background-color: #F8FAF8;
+}
+.accordion-body {
+    border-top: 1px dashed lightgray;
+    padding: 8px 8px 12px 8px;
+    overflow: auto;
+    max-height: 400px;
+    background-color: white;
+    border-bottom-left-radius: 5px;
+    border-bottom-right-radius: 5px;
+}
+.catalog-details .accordion-body {
+    padding: 0;
+}
+.accordion-head:hover {
+    background-color: #E0E4E0;
+    cursor: hand; cursor: pointer;
+}
+.catalog-accordion-wrapper {
+    margin-bottom: 6px;
+    background-color: #F0F0F0;
+    border-radius: 5px;
+}
+.catalog-accordion-wrapper .accordion-nav-row {
+    white-space: pre;
+    word-wrap: normal;
+}
+.accordion-item {
+    -webkit-border-radius: 5px;
+    -moz-border-radius: 5px;
+    border-radius: 5px;
+    margin-top: -1px;
+    border: 1px solid lightgray;
+}
+.accordion-nav-row:hover {
+    text-decoration: underline;
+    cursor: hand; cursor: pointer;
+}
+.accordion-nav-row.active {
+    font-weight: bold;
+}
+.accordion-nav-child {
+    padding-left: 15px;
+    color: lightgray;
+}
+.accordion-nav-child.active {
+    color: #505050;
+}
+.catalog-details {
+    padding-left: 16px;
+    padding-right: 25px;
+    padding-top: 8px;
+    padding-bottom: 8px;
+}
+.catalog-details h3 {
+    margin-bottom: 8px;
+}
+.catalog-details textarea {
+    width: 100%;
+    cursor: auto;
+}
+.catalog-details#details-empty {
+    padding-top: 60px;
+    padding-bottom: 180px;
+    text-align: center;
+}
+.catalog-save-error {
+    background-color: #f2dede;
+    /* margin matches bootstrap input margin-bottom. */
+    margin: 9px 0 0 0;
+    padding: 7px;
+    border-radius: 3px;
+}
+.catalog-error-message {
+    white-space: pre-wrap;
+}
+
+.float-right {
+    float: right;
+}
+
+/* swagger */
+
+.swagger-ui-container{
+    margin-bottom: 3em;
+}
+
+.swagger-ui-wrap {
+    max-width: 960px;
+    margin-left: auto;
+    margin-right: auto;
+    margin-bottom: 6em;
+}
+
+.icon-btn {
+    cursor: pointer;
+}
+
+#message-bar {
+    min-height: 30px;
+    text-align: center;
+    padding-top: 10px;
+}
+
+.message-success {
+    color: #89BF04;
+}
+
+.message-fail {
+    color: #cc0000;
+}
+
+.code-textarea {
+    width: 100%;
+    height: 8em;
+    margin-right: 4px;
+    font-family: Consolas, Lucida Console, Monaco, monospace;
+    font-size: 8.5pt;
+    line-height: 11pt;
+    white-space: pre;
+    word-wrap: normal;
+    overflow-x: scroll;
+    overflow-y: scroll;
+}
+
+/** groovy script */
+#groovy-ui-container .hide {
+    display: none !important;
+}
+#groovy-ui-container .throbber {
+    padding-top: 8px;
+}
+#groovy-ui-container .input textarea {
+    height: 16em;
+}
+#groovy-ui-container .toggler-region {
+    margin-top: 0.5em;
+    margin-bottom: 1em;
+}
+#groovy-ui-container .groovy-scripting-text {
+    margin-top: 0.5em;
+}
+#groovy-ui-container div.submit {
+   float: right;
+}
+
+#groovy-ui-container .input {
+    width: 48%;
+}
+#groovy-ui-container div.submit {
+    text-align: right;
+}
+
+#groovy-ui-container .output {
+    width: 48%;
+    float: right;
+}
+.toggler-header {
+    cursor: hand; cursor: pointer;
+    margin-bottom: 3px;
+}
+.toggler-icon {
+    float: right;
+}
+.user-hidden .toggler-icon {
+}
+
+/** trick for making textareas with width 100% line up (silly width 100% excludes padding) */
+div.for-textarea {
+    padding-left: 0.8em;
+    padding-right: 0.4em;
+}
+div.for-textarea > textarea {
+    padding-left: 0.3em;
+    padding-right: 0.3em;
+    margin-left: -0.6em;
+}
+#groovy-ui-container p {
+    margin-top: 4px;
+}
+#groovy-ui-container a {
+    color: inherit;
+}
+#groovy-ui-container a:hover {
+    text-decoration: underline;
+    cursor: hand; cursor: pointer;
+}
+
+/** input type="file" should be display:none with hand-rolled nicer looking widgets used instead
+    (the native ones can't be much modified, and are notoriously ugly; but line-height 0 at least makes them line up) */
+input[type="file"] {
+    line-height: 0;
+    width: 300px;
+}
+
+input.error {
+    border-color: #b94a48;
+}
+
+#policy-config-table {
+    table-layout: fixed;
+}
+
+#policy-config-table td.policy-config-name {
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+
+#policy-config-table td.policy-config-value {
+    overflow-wrap: break-word;
+    word-wrap: break-word;
+}
+
+#policy-config,
+.has-no-policies {
+    margin-bottom: 9px;
+}
+
+.padded-div {
+    padding: 0.5em 1.2em;
+}
+
+/* this is used in activities, for when we slide in a panel e.g. for sub-table */
+.slide-panel-group {
+    width: 569px;
+}
+.slide-panel {
+    position: relative;
+    width: 569px;
+    margin-right: -569px;
+    float: left;
+}
+.subpanel-header-row {
+    color: black;
+    background-color: #B0B8B0;
+    padding-top: 12px;
+    padding-bottom: 12px;
+    margin-bottom: 24px;
+    padding-left: 12px;
+    vertical-align: top;
+    font-weight: 700;
+    font-size: 120%;
+}
+
+.toggler-header {
+    background-color: #D8DCD8;
+    padding: 2px 6px 2px 6px;
+}
+.activity-detail-panel .subpanel-header-row {
+    margin-bottom: 12px;
+}
+.activity-detail-panel .toggler-region {
+    margin-bottom: 12px;
+}
+.activity-detail-panel .toggler-region .activity-details-section {
+    margin: 4px 6px 0px 6px;
+}
+.activity-detail-panel .activity-details-section.activity-description, 
+.activity-detail-panel .activity-details-section.activity-status {
+    margin-bottom: 12px;
+}
+.activity-detail-panel .activity-label {
+    display: inline-block;
+    width: 100px;
+}
+.activity-detail-panel .toggler-region.tasks-submitted .table-scroll-wrapper,
+.activity-detail-panel .toggler-region.tasks-children .table-scroll-wrapper {
+    margin-bottom: 18px;
+}
+
+.activity-detail-results .result-literal {
+    font-style: italic;
+}
+.activity-detail-results div.result-literal {
+    margin-top: 12px;
+}
+.activity-detail-results div.result-literal br {
+    line-height: 24px;
+}
+
+.activity-tag-giftlabel {
+    background-color: #E0E4E0;
+    padding: 2px 4px 2px 4px;
+    margin-bottom: 4px;
+    margin-right: 5px;
+    -webkit-border-radius: 3px 3px 3px 3px !important;
+    -moz-border-radius: 3px 3px 3px 3px !important;
+    border-radius: 3px 3px 3px 3px !important;
+    display: inline-block;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    -o-text-overflow: ellipsis;
+    max-width: 250px;
+}
+.activity-tag-giftlabel:hover {
+    max-width: 100%;
+    white-space: normal;
+}
+
+/* hover menu at left, as used in sensors view */
+.floatGroup .floatLeft {
+	display:none;
+	width: 18px;
+	margin-left: -18px;
+	margin-top: -16px;
+	position: absolute;
+	overflow: visible;
+}
+.floatGroup .floatDown {
+	display:none;
+ 	position: absolute;
+ 	margin-top: -2px;
+	overflow: visible;
+}
+.floatGroup .floatDown .light-popup {
+	display: block;
+    position: absolute;
+    top: auto;
+    z-index: 1;
+}
+
+.ha-standby-overlay {
+    position: absolute;
+    top: 8px;
+    bottom: 0;
+    left: 0;
+    right: 0;
+}
+
+/* Setting opacity in ha-standby-overlay would also apply it to all of
+the element's children, who probably want to control their opacity separately. */
+.overlay-with-opacity {
+    opacity: 0.9;
+    background-color: white;
+}
+
+.overlay-content {
+    position: absolute;
+    top: 100px;
+    left: 50%;
+    width: 400px;
+    /* margin-left = width / 2 */
+    margin: 0 0 0 -200px;
+    padding: 20px;
+    background-color: #ff938c;
+    border: 7px solid #2d2d2d;
+    border-radius: 10px;
+    color: black;
+}
+
+.capitalized {
+    text-transform: capitalize;
+}
+
+.config-key-input-pair {
+    /* matches Bootstrap */
+    margin-bottom: 9px;
+}
+
+textarea.param-value {
+    height: 18px;
+    overflow: auto;
+}
+
+#catalog-details-accordion {
+    margin-top: 12px;
+}
+
+/* For secret things */
+.secret-info span.value {
+    display: none;
+}
+.secret-info.secret-revealed span.value {
+    display: inherit;
+}
+.secret-info.secret-revealed span.secret-indicator {
+    display: none;
+}
+
+.secret-indicator {
+    /* blur */
+    color: transparent;
+    text-shadow: 0 0 5px rgba(0,0,0,0.5);
+}