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