You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@karaf.apache.org by Andreas Pieber <an...@gmail.com> on 2011/08/30 05:39:57 UTC

Re: svn commit: r1162137 - in /karaf/sandbox/pieber/karaf-webconsole/trunk: ./ servicemix/ servicemix/src/ servicemix/src/main/ servicemix/src/main/java/ servicemix/src/main/java/org/ servicemix/src/main/java/org/apache/ servicemix/src/main/java/org/

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, <ld...@apache.org> 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
>
>
>

Re: svn commit: r1162137 - in /karaf/sandbox/pieber/karaf-webconsole/trunk: ./ servicemix/ servicemix/src/ servicemix/src/main/ servicemix/src/main/java/ servicemix/src/main/java/org/ servicemix/src/main/java/org/apache/ servicemix/src/main/java/org/

Posted by Łukasz Dywicki <lu...@code-house.org>.
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 <lu...@code-house.org>
> 
>> 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, <ld...@apache.org> 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
>>>> 
>>>> 
>>>> 
>> 
>> 


Re: svn commit: r1162137 - in /karaf/sandbox/pieber/karaf-webconsole/trunk: ./ servicemix/ servicemix/src/ servicemix/src/main/ servicemix/src/main/java/ servicemix/src/main/java/org/ servicemix/src/main/java/org/apache/ servicemix/src/main/java/org/

Posted by Andreas Pieber <an...@gmail.com>.
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 <lu...@code-house.org>

> 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, <ld...@apache.org> 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
> >>
> >>
> >>
>
>

Re: svn commit: r1162137 - in /karaf/sandbox/pieber/karaf-webconsole/trunk: ./ servicemix/ servicemix/src/ servicemix/src/main/ servicemix/src/main/java/ servicemix/src/main/java/org/ servicemix/src/main/java/org/apache/ servicemix/src/main/java/org/

Posted by Łukasz Dywicki <lu...@code-house.org>.
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, <ld...@apache.org> 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
>> 
>> 
>>