So far I don't know any...
> 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
>>>>
>>>>
>>>>
>>
>>