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 > >> > >> > >> > >
