<?xml version="1.0" encoding="UTF-8"?>
<!--
   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.
-->
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Karaf WebConsole</title>
</head>
<body>

    <wicket:panel>
        <div class="grid_3 widget">
            <h3>Karaf Features</h3>
            <p>
                You have <span wicket:id="featuresCount">10</span> features.
                <span wicket:id="installedCount">10</span> installed and
                <span wicket:id="uninstalledCount">10</span> waiting for installation.
            </p>

            <p>
                <a wicket:id="featuresLink">Go to feature management</a>
                <a wicket:id="repositoriesLink">Go to repository management</a>
            </p>
        </div>
    </wicket:panel>

</body>
</html>