Outsch; in that case it is a little bit more complicated. Doing this:
"@PaxWicketBean NMR : nmr = null" is the same as that :
"@PaxWicketBean(name="NMR") NMR nmr = null" in Java? Because that line is
not allowed by the way wicket injects properties. Since the super-class (and
therefore the component-injector) is called BEFORE the fields are set with
the values you overwrite the bean with null :-( this is rather a general
Wicket problem... I assume there isn't any workaround for this in Scala?

Kind regards,
Andreas

2011/8/30 Łukasz Dywicki <[email protected]>

> 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