Hey Achim,
Take a look on this code:

@PaxWicketBean NMR : nmr = null

The problem is field injection with Scala and scala constructors. With Scala 
all not initialized fields (without default value) needs to be set in 
constructor. Because I haven't got any reference in constructor I've set nmr to 
null as below. When I use nmr reference in constructor I simply have 
NullPointerException with first usage of nmr. That's definitely is not a 
PaxWicket issue, but problem with Scala authors assumption. You can turn back 
to scala simply uncomment fragments in pom.xml.

Best regards,
Lukasz

> What should I do to reproduce this problem? I'm curious if it is osgi,
> pax-wicket or something else that scala does not work here?
> 
> On Fri, Aug 26, 2011 at 17:17, <[email protected]> wrote:
> 
>> Author: ldywicki
>> Date: Fri Aug 26 15:17:36 2011
>> New Revision: 1162137
>> 
>> URL: http://svn.apache.org/viewvc?rev=1162137&view=rev
>> Log:
>> Dummy ServiceMix plugin which shows NMR endpoints. Tried to do same with
>> scala, without luck.
>> 
>> Added:
>>   karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/
>>   karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/pom.xml
>>   karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/
>>   karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/
>>   karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/java/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/java/org/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/java/org/apache/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/java/org/apache/karaf/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/java/org/apache/karaf/webconsole/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/ServiceMixPage.java
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/navigation/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/navigation/ServiceMixConsoleTab.java
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/resources/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/resources/OSGI-INF/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/resources/OSGI-INF/blueprint/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/resources/OSGI-INF/blueprint/servicemix.xml
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/resources/org/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/resources/org/apache/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/resources/org/apache/karaf/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/resources/org/apache/karaf/webconsole/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/resources/org/apache/karaf/webconsole/servicemix/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/resources/org/apache/karaf/webconsole/servicemix/internal/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/resources/org/apache/karaf/webconsole/servicemix/internal/ServiceMixPage.html
>>   karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/scala/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/scala/org/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/scala/org/apache/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/scala/org/apache/karaf/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/scala/org/apache/karaf/webconsole/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/scala/org/apache/karaf/webconsole/servicemix/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/scala/org/apache/karaf/webconsole/servicemix/internal/
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/scala/org/apache/karaf/webconsole/servicemix/internal/ServiceMixPage.scala
>> 
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/scala/org/apache/karaf/webconsole/servicemix/internal/ServiceMixWidgetProvider.scala
>> Modified:
>>   karaf/sandbox/pieber/karaf-webconsole/trunk/pom.xml
>> 
>> Modified: karaf/sandbox/pieber/karaf-webconsole/trunk/pom.xml
>> URL:
>> http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/pom.xml?rev=1162137&r1=1162136&r2=1162137&view=diff
>> 
>> ==============================================================================
>> --- karaf/sandbox/pieber/karaf-webconsole/trunk/pom.xml (original)
>> +++ karaf/sandbox/pieber/karaf-webconsole/trunk/pom.xml Fri Aug 26 15:17:36
>> 2011
>> @@ -32,6 +32,7 @@
>>        <log4j.version>1.2.14</log4j.version>
>>        <ops4j.paxwicket.version>0.8.0-SNAPSHOT</ops4j.paxwicket.version>
>>        <karaf.version>2.2.2</karaf.version>
>> +        <nmr.version>1.4.0</nmr.version>
>>    </properties>
>> 
>>    <modules>
>> @@ -40,6 +41,7 @@
>>        <module>blueprint</module>
>>        <module>karaf</module>
>>        <module>features</module>
>> +        <module>servicemix</module>
>> 
>>        <module>examples</module>
>>        <module>manual</module>
>> 
>> Added: karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/pom.xml
>> URL:
>> http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/pom.xml?rev=1162137&view=auto
>> 
>> ==============================================================================
>> --- karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/pom.xml (added)
>> +++ karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/pom.xml Fri Aug
>> 26 15:17:36 2011
>> @@ -0,0 +1,100 @@
>> +<?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.
>> +-->
>> +<project xmlns="http://maven.apache.org/POM/4.0.0"; xmlns:xsi="
>> http://www.w3.org/2001/XMLSchema-instance";
>> +    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
>> http://maven.apache.org/maven-v4_0_0.xsd";>
>> +    <modelVersion>4.0.0</modelVersion>
>> +
>> +    <parent>
>> +        <groupId>org.apache.karaf</groupId>
>> +        <artifactId>webconsole</artifactId>
>> +        <version>1.0.0-SNAPSHOT</version>
>> +    </parent>
>> +
>> +    <groupId>org.apache.karaf.webconsole</groupId>
>> +    <artifactId>org.apache.karaf.webconsole.servicemix</artifactId>
>> +    <packaging>bundle</packaging>
>> +    <name>Apache Karaf :: Karaf Webconsole Prototype :: ServiceMix
>> extension</name>
>> +    <version>1.0.0-SNAPSHOT</version>
>> +
>> +    <dependencies>
>> +        <dependency>
>> +            <groupId>org.apache.karaf.webconsole</groupId>
>> +            <artifactId>org.apache.karaf.webconsole.core</artifactId>
>> +            <version>${project.version}</version>
>> +        </dependency>
>> +
>> +        <dependency>
>> +            <groupId>org.apache.servicemix.nmr</groupId>
>> +            <artifactId>org.apache.servicemix.nmr.api</artifactId>
>> +            <version>${nmr.version}</version>
>> +        </dependency>
>> +
>> +        <!--
>> +        <dependency>
>> +            <groupId>org.scala-lang</groupId>
>> +            <artifactId>scala-library</artifactId>
>> +            <version>2.9.0</version>
>> +        </dependency>
>> +        -->
>> +
>> +    </dependencies>
>> +
>> +    <build>
>> +        <!--
>> +        <sourceDirectory>src/main/scala</sourceDirectory>
>> +        -->
>> +        <plugins>
>> +            <!--
>> +            <plugin>
>> +                <groupId>org.scala-tools</groupId>
>> +                <artifactId>maven-scala-plugin</artifactId>
>> +                <version>2.15.2</version>
>> +                <executions>
>> +                    <execution>
>> +                        <goals>
>> +                            <goal>compile</goal>
>> +                            <goal>testCompile</goal>
>> +                        </goals>
>> +                    </execution>
>> +                </executions>
>> +            </plugin>
>> +            -->
>> +            <plugin>
>> +                <groupId>org.apache.felix</groupId>
>> +                <artifactId>maven-bundle-plugin</artifactId>
>> +                <version>2.3.5</version>
>> +                <extensions>true</extensions>
>> +                <configuration>
>> +                    <instructions>
>> +
>> <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
>> +                        <Import-Package>
>> +                            !org.apache.karaf.webconsole.servicemix*,
>> +                            *,
>> +                            <!-- transient dependencies -->
>> +                            org.ops4j.pax.wicket.api,
>> +                            org.ops4j.pax.wicket.util,
>> +                            org.ops4j.pax.wicket.util.proxy,
>> +                            <!-- karaf -->
>> +                            org.apache.servicemix.nmr.api
>> +                        </Import-Package>
>> +                    </instructions>
>> +                </configuration>
>> +            </plugin>
>> +        </plugins>
>> +    </build>
>> +</project>
>> 
>> Added:
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/ServiceMixPage.java
>> URL:
>> http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/ServiceMixPage.java?rev=1162137&view=auto
>> 
>> ==============================================================================
>> ---
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/ServiceMixPage.java
>> (added)
>> +++
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/ServiceMixPage.java
>> Fri Aug 26 15:17:36 2011
>> @@ -0,0 +1,64 @@
>> +package org.apache.karaf.webconsole.servicemix.internal;
>> +
>> +import java.util.ArrayList;
>> +import java.util.Iterator;
>> +import java.util.List;
>> +import java.util.Map;
>> +
>> +import org.apache.karaf.webconsole.core.BasePage;
>> +import org.apache.karaf.webconsole.core.table.OrdinalColumn;
>> +import org.apache.karaf.webconsole.core.table.PropertyColumnExt;
>> +import org.apache.servicemix.nmr.api.Endpoint;
>> +import org.apache.servicemix.nmr.api.EndpointRegistry;
>> +import org.apache.servicemix.nmr.api.NMR;
>> +import
>> org.apache.wicket.extensions.markup.html.repeater.data.table.DefaultDataTable;
>> +import
>> org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
>> +import
>> org.apache.wicket.extensions.markup.html.repeater.data.table.ISortableDataProvider;
>> +import
>> org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
>> +import org.apache.wicket.model.IModel;
>> +import org.apache.wicket.model.Model;
>> +import org.ops4j.pax.wicket.api.PaxWicketBean;
>> +
>> +public class ServiceMixPage extends BasePage {
>> +
>> +    @PaxWicketBean(name = "nmr")
>> +    private NMR nmr;
>> +
>> +    public ServiceMixPage() {
>> +        IColumn[] columns = new IColumn[] {
>> +            new OrdinalColumn<Map<String, Object>>(),
>> +            new PropertyColumnExt<Map<String, Object>>("Name",
>> Endpoint.NAME),
>> +            new PropertyColumnExt<Map<String, Object>>("Version",
>> Endpoint.VERSION),
>> +            new PropertyColumnExt<Map<String, Object>>("Endpoint Name",
>> Endpoint.ENDPOINT_NAME),
>> +            new PropertyColumnExt<Map<String, Object>>("Interface",
>> Endpoint.INTERFACE_NAME),
>> +            new PropertyColumnExt<Map<String, Object>>("Service name",
>> Endpoint.SERVICE_NAME),
>> +            new PropertyColumnExt<Map<String, Object>>("Sync?",
>> Endpoint.CHANNEL_SYNC_DELIVERY),
>> +            new PropertyColumnExt<Map<String, Object>>("Untargetable?",
>> Endpoint.UNTARGETABLE),
>> +            new PropertyColumnExt<Map<String, Object>>("Wsdl url",
>> Endpoint.WSDL_URL)
>> +        };
>> +
>> +        ISortableDataProvider<Map<String, Object>> provider = new
>> SortableDataProvider<Map<String, Object>>() {
>> +
>> +            public Iterator<? extends Map<String, Object>> iterator(int
>> first, int count) {
>> +                List<Map<String, Object>> props = new
>> ArrayList<Map<String,Object>>();
>> +
>> +                EndpointRegistry endpointRegistry =
>> nmr.getEndpointRegistry();
>> +                for (Endpoint endpoint : endpointRegistry.getServices()) {
>> +                    props.add((Map<String, Object>)
>> endpointRegistry.getProperties(endpoint));
>> +                }
>> +
>> +                return props.subList(first, count).iterator();
>> +            }
>> +
>> +            public int size() {
>> +                return nmr.getEndpointRegistry().getServices().size();
>> +            }
>> +
>> +            public IModel<Map<String, Object>> model(Map<String, Object>
>> object) {
>> +                return Model.ofMap(object);
>> +            }
>> +        };
>> +
>> +        add(new DefaultDataTable<Map<String, Object>>("endpoints",
>> columns, provider, 20));
>> +    }
>> +}
>> 
>> Added:
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/navigation/ServiceMixConsoleTab.java
>> URL:
>> http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/navigation/ServiceMixConsoleTab.java?rev=1162137&view=auto
>> 
>> ==============================================================================
>> ---
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/navigation/ServiceMixConsoleTab.java
>> (added)
>> +++
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/navigation/ServiceMixConsoleTab.java
>> Fri Aug 26 15:17:36 2011
>> @@ -0,0 +1,26 @@
>> +package org.apache.karaf.webconsole.servicemix.internal.navigation;
>> +
>> +import java.util.Collections;
>> +import java.util.Map;
>> +
>> +import org.apache.karaf.webconsole.core.navigation.ConsoleTab;
>> +import org.apache.karaf.webconsole.servicemix.internal.ServiceMixPage;
>> +import org.apache.wicket.Page;
>> +
>> +public class ServiceMixConsoleTab implements ConsoleTab {
>> +
>> +    public Map<String, Class<? extends Page>> getItems() {
>> +        return Collections.emptyMap();
>> +    }
>> +
>> +    public String getLabel() {
>> +        return "servicemix";
>> +    }
>> +
>> +    public Class<? extends Page> getModuleHomePage() {
>> +        return ServiceMixPage.class;
>> +    }
>> +
>> +
>> +
>> +}
>> 
>> Added:
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/resources/OSGI-INF/blueprint/servicemix.xml
>> URL:
>> http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/resources/OSGI-INF/blueprint/servicemix.xml?rev=1162137&view=auto
>> 
>> ==============================================================================
>> ---
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/resources/OSGI-INF/blueprint/servicemix.xml
>> (added)
>> +++
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/resources/OSGI-INF/blueprint/servicemix.xml
>> Fri Aug 26 15:17:36 2011
>> @@ -0,0 +1,38 @@
>> +<?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.
>> +-->
>> +<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";>
>> +
>> +    <service
>> interface="org.apache.karaf.webconsole.core.navigation.ConsoleTab">
>> +        <bean
>> class="org.apache.karaf.webconsole.servicemix.internal.navigation.ServiceMixConsoleTab"
>> />
>> +    </service>
>> +
>> +    <reference id="nmr" interface="org.apache.servicemix.nmr.api.NMR"/>
>> +
>> +    <!--
>> +    <service ref="widgetProvider"
>> interface="org.apache.karaf.webconsole.core.widget.WidgetProvider">
>> +        <service-properties>
>> +            <entry key="intention" value="dashboard" />
>> +        </service-properties>
>> +    </service>
>> +
>> +    <bean id="widgetProvider"
>> class="org.apache.karaf.webconsole.servicemix.internal.widget.ServiceMixWidgetProvider">
>> +        <argument ref="featuresService" />
>> +    </bean>
>> +    -->
>> +
>> +</blueprint>
>> 
>> Added:
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/resources/org/apache/karaf/webconsole/servicemix/internal/ServiceMixPage.html
>> URL:
>> http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/resources/org/apache/karaf/webconsole/servicemix/internal/ServiceMixPage.html?rev=1162137&view=auto
>> 
>> ==============================================================================
>> ---
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/resources/org/apache/karaf/webconsole/servicemix/internal/ServiceMixPage.html
>> (added)
>> +++
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/resources/org/apache/karaf/webconsole/servicemix/internal/ServiceMixPage.html
>> Fri Aug 26 15:17:36 2011
>> @@ -0,0 +1,32 @@
>> +<?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:extend>
>> +        <h1>ServiceMix page</h1>
>> +
>> +        <table wicket:id="endpoints" class="dataview" />
>> +    </wicket:extend>
>> +
>> +</body>
>> +</html>
>> \ No newline at end of file
>> 
>> Added:
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/scala/org/apache/karaf/webconsole/servicemix/internal/ServiceMixPage.scala
>> URL:
>> http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/scala/org/apache/karaf/webconsole/servicemix/internal/ServiceMixPage.scala?rev=1162137&view=auto
>> 
>> ==============================================================================
>> ---
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/scala/org/apache/karaf/webconsole/servicemix/internal/ServiceMixPage.scala
>> (added)
>> +++
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/scala/org/apache/karaf/webconsole/servicemix/internal/ServiceMixPage.scala
>> Fri Aug 26 15:17:36 2011
>> @@ -0,0 +1,50 @@
>> +package org.apache.karaf.webconsole.servicemix.internal
>> +
>> +import org.apache.karaf.webconsole.core.BasePage
>> +import org.apache.karaf.webconsole.core.table.{PropertyColumnExt,
>> OrdinalColumn}
>> +import org.apache.servicemix.nmr.api.{NMR, Endpoint}
>> +import org.ops4j.pax.wicket.api.PaxWicketBean
>> +import
>> org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider
>> +import java.util._
>> +import collection.JavaConversions._
>> +import org.apache.wicket.model.{Model}
>> +import
>> org.apache.wicket.extensions.markup.html.repeater.data.table.{IColumn,
>> DefaultDataTable}
>> +import collection.mutable.{ListBuffer}
>> +import org.apache.wicket.PageParameters
>> +
>> +class ServiceMixPage extends BasePage {
>> +
>> +  @PaxWicketBean private val nmr : NMR = _
>> +
>> +  val columns = Array[IColumn[Map[String, Any]]](
>> +    new OrdinalColumn[Map[String, Any]](),
>> +    new PropertyColumnExt[Map[String, Any]]("Name", Endpoint.NAME),
>> +    new PropertyColumnExt[Map[String, Any]]("Version", Endpoint.VERSION),
>> +    new PropertyColumnExt[Map[String, Any]]("Endpoint Name",
>> Endpoint.ENDPOINT_NAME),
>> +    new PropertyColumnExt[Map[String, Any]]("Interface",
>> Endpoint.INTERFACE_NAME),
>> +    new PropertyColumnExt[Map[String, Any]]("Service name",
>> Endpoint.SERVICE_NAME),
>> +    new PropertyColumnExt[Map[String, Any]]("Sync?",
>> Endpoint.CHANNEL_SYNC_DELIVERY),
>> +    new PropertyColumnExt[Map[String, Any]]("Untargetable?",
>> Endpoint.UNTARGETABLE),
>> +    new PropertyColumnExt[Map[String, Any]]("Wsdl url", Endpoint.WSDL_URL)
>> +  )
>> +
>> +  val provider = new SortableDataProvider[Map[String, Any]]() {
>> +    override def model(properties : Map[String, Any]) =
>> Model.ofMap(properties)
>> +
>> +    override def size() = nmr.getEndpointRegistry.getServices.size
>> +
>> +    override def iterator(first: Int, count: Int) = {
>> +      val endpoints = nmr.getEndpointRegistry.getServices
>> +
>> +      val b = new ListBuffer[Map[String, Any]]
>> +      for (endpoint <- endpoints) {
>> +
>> b.add(nmr.getEndpointRegistry.getProperties(endpoint).asInstanceOf[Map[String,
>> Any]])
>> +      }
>> +
>> +      b.slice(first, first + count).iterator
>> +    }
>> +  }
>> +
>> +  add(new DefaultDataTable[Map[String, Any]]("endpoints", columns,
>> provider, 20));
>> +
>> +}
>> 
>> Added:
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/scala/org/apache/karaf/webconsole/servicemix/internal/ServiceMixWidgetProvider.scala
>> URL:
>> http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/scala/org/apache/karaf/webconsole/servicemix/internal/ServiceMixWidgetProvider.scala?rev=1162137&view=auto
>> 
>> ==============================================================================
>> ---
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/scala/org/apache/karaf/webconsole/servicemix/internal/ServiceMixWidgetProvider.scala
>> (added)
>> +++
>> karaf/sandbox/pieber/karaf-webconsole/trunk/servicemix/src/main/scala/org/apache/karaf/webconsole/servicemix/internal/ServiceMixWidgetProvider.scala
>> Fri Aug 26 15:17:36 2011
>> @@ -0,0 +1,17 @@
>> +package org.apache.karaf.webconsole.servicemix.internal
>> +/*
>> +import org.apache.karaf.webconsole.core.navigation.ConsoleTab
>> +import java.util._
>> +import org.apache.wicket.Page
>> +
>> +object ServiceMixWidgetProvider extends ConsoleTab {
>> +
>> +  def getLabel() = "servicemix"
>> +
>> +  def getModuleHomePage() : Class[Page] = classOf[ServiceMixPage]
>> +
>> +  def getItems() : Map[String, Class[Page]] = {
>> +    return new HashMap[String, Class[Page]]();
>> +  }
>> +
>> +}*/
>> \ No newline at end of file
>> 
>> 
>> 

Reply via email to