Return-Path: Delivered-To: apmail-felix-commits-archive@www.apache.org Received: (qmail 7824 invoked from network); 8 Jul 2007 20:44:31 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 8 Jul 2007 20:44:31 -0000 Received: (qmail 1113 invoked by uid 500); 8 Jul 2007 20:44:33 -0000 Delivered-To: apmail-felix-commits-archive@felix.apache.org Received: (qmail 1092 invoked by uid 500); 8 Jul 2007 20:44:33 -0000 Mailing-List: contact commits-help@felix.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@felix.apache.org Delivered-To: mailing list commits@felix.apache.org Received: (qmail 1083 invoked by uid 99); 8 Jul 2007 20:44:33 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 08 Jul 2007 13:44:33 -0700 X-ASF-Spam-Status: No, hits=-99.5 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 08 Jul 2007 13:44:28 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 5B8661A981A; Sun, 8 Jul 2007 13:44:08 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r554436 - in /felix/sandbox/donsez/monitor.sample.memorymonitorjob: ./ doc/ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/felix/ src/main/java/org/apache/felix/monitor/ src/main/java/org... Date: Sun, 08 Jul 2007 20:44:08 -0000 To: commits@felix.apache.org From: donsez@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070708204408.5B8661A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: donsez Date: Sun Jul 8 13:44:07 2007 New Revision: 554436 URL: http://svn.apache.org/viewvc?view=rev&rev=554436 Log: creation of the monitor.sample.memorymonitorjob bundle, a sample of a Monitor Job Added: felix/sandbox/donsez/monitor.sample.memorymonitorjob/ felix/sandbox/donsez/monitor.sample.memorymonitorjob/doc/ felix/sandbox/donsez/monitor.sample.memorymonitorjob/doc/readme.html (with props) felix/sandbox/donsez/monitor.sample.memorymonitorjob/pom.xml (with props) felix/sandbox/donsez/monitor.sample.memorymonitorjob/src/ felix/sandbox/donsez/monitor.sample.memorymonitorjob/src/main/ felix/sandbox/donsez/monitor.sample.memorymonitorjob/src/main/java/ felix/sandbox/donsez/monitor.sample.memorymonitorjob/src/main/java/org/ felix/sandbox/donsez/monitor.sample.memorymonitorjob/src/main/java/org/apache/ felix/sandbox/donsez/monitor.sample.memorymonitorjob/src/main/java/org/apache/felix/ felix/sandbox/donsez/monitor.sample.memorymonitorjob/src/main/java/org/apache/felix/monitor/ felix/sandbox/donsez/monitor.sample.memorymonitorjob/src/main/java/org/apache/felix/monitor/sample/ felix/sandbox/donsez/monitor.sample.memorymonitorjob/src/main/java/org/apache/felix/monitor/sample/memorymonitorjob/ felix/sandbox/donsez/monitor.sample.memorymonitorjob/src/main/java/org/apache/felix/monitor/sample/memorymonitorjob/MemoryMonitorJob.java (with props) Added: felix/sandbox/donsez/monitor.sample.memorymonitorjob/doc/readme.html URL: http://svn.apache.org/viewvc/felix/sandbox/donsez/monitor.sample.memorymonitorjob/doc/readme.html?view=auto&rev=554436 ============================================================================== --- felix/sandbox/donsez/monitor.sample.memorymonitorjob/doc/readme.html (added) +++ felix/sandbox/donsez/monitor.sample.memorymonitorjob/doc/readme.html Sun Jul 8 13:44:07 2007 @@ -0,0 +1,56 @@ + + + + + Memory Monitor Job + + +

Memory Monitor Job

+ +

Description
+This bundle provides a sample of a monitoring job (Chapter 119 Monitor Admin Service Specification Version 1.0) +

+ + + +

Contributor(s)
+Apache Felix Project Team +

+ +

License
+ASL2 +

+ +

Services
+

    +
  • org.osgi.service.event.EventHandler
  • +
+

+ + +

Provisions
+None +

+ +

Documentation
+

+

+ + +

TODOLIST
+TODO +

+ +
    +
+

+ + + + Propchange: felix/sandbox/donsez/monitor.sample.memorymonitorjob/doc/readme.html ------------------------------------------------------------------------------ svn:eol-style = native Added: felix/sandbox/donsez/monitor.sample.memorymonitorjob/pom.xml URL: http://svn.apache.org/viewvc/felix/sandbox/donsez/monitor.sample.memorymonitorjob/pom.xml?view=auto&rev=554436 ============================================================================== --- felix/sandbox/donsez/monitor.sample.memorymonitorjob/pom.xml (added) +++ felix/sandbox/donsez/monitor.sample.memorymonitorjob/pom.xml Sun Jul 8 13:44:07 2007 @@ -0,0 +1,108 @@ + + + + + http://www.apache.org/~donsez/dev/osgi/ + provides a simple monitoring job. + + + + org.apache.felix + felix + 0.9.0-incubator-SNAPSHOT + + + 4.0.0 + bundle + Apache Felix Monitor Admin Sample : Memory Monitor Job + org.apache.felix.monitor.sample.memorymonitorjob + ${description} + + + + ${pom.groupId} + org.osgi.core + ${pom.version} + + + ${pom.groupId} + org.osgi.compendium + ${pom.version} + + + ${pom.groupId} + org.apache.felix.monitor + ${pom.version} + + + + + + org.apache.felix + maven-bundle-plugin + true + + + + + + + org.osgi.service.event.EventHandler + + + ${pom.artifactId}.* + * + + ${pom.artifactId}.MemoryMonitorJob + + + + + + + + + + + + Propchange: felix/sandbox/donsez/monitor.sample.memorymonitorjob/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Added: felix/sandbox/donsez/monitor.sample.memorymonitorjob/src/main/java/org/apache/felix/monitor/sample/memorymonitorjob/MemoryMonitorJob.java URL: http://svn.apache.org/viewvc/felix/sandbox/donsez/monitor.sample.memorymonitorjob/src/main/java/org/apache/felix/monitor/sample/memorymonitorjob/MemoryMonitorJob.java?view=auto&rev=554436 ============================================================================== --- felix/sandbox/donsez/monitor.sample.memorymonitorjob/src/main/java/org/apache/felix/monitor/sample/memorymonitorjob/MemoryMonitorJob.java (added) +++ felix/sandbox/donsez/monitor.sample.memorymonitorjob/src/main/java/org/apache/felix/monitor/sample/memorymonitorjob/MemoryMonitorJob.java Sun Jul 8 13:44:07 2007 @@ -0,0 +1,100 @@ +/* + * 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. + */ +package org.apache.felix.monitor.sample.memorymonitorjob; + +import java.util.Dictionary; +import java.util.Hashtable; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.service.event.Event; +import org.osgi.service.event.EventConstants; +import org.osgi.service.event.EventHandler; +import org.osgi.service.monitor.MonitorAdmin; +import org.osgi.service.monitor.MonitoringJob; +import org.osgi.util.tracker.ServiceTracker; + +/** + * This example is inspired from the 119.4.4.1 Example Monitoring Job. + * For example, a bundle is interested in working with periodic samples of the + * com.acme.foo/memory.free Status Variable. It should therefore register an + * Event Handler with the correct topic and a filter on its Event Handler service. + * It then starts a monitoring job that is stopped in the BundleActivator + * stop method. + * @author Felix Project Team + * + */ +public class MemoryMonitorJob implements BundleActivator, EventHandler { + + private static final String SERVICE_PID = "java.lang.runtime"; + + private static final String MEMORY_FREE_VARIABLE_NAME = "memory.free"; + private static final String MEMORY_TOTAL_VARIABLE_NAME = "memory.total"; + + private MonitoringJob job; + private ServiceTracker serviceTracker; + + /** + * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext context) throws Exception { + + String monListenerId="org.apache.felix.monitor.sample.memorymonitorjob#"+context.getBundle().getBundleId(); + + serviceTracker=new ServiceTracker(context,MonitorAdmin.class.getName(),null); + serviceTracker.open(); + + Dictionary properties = new Hashtable(); + properties.put(EventConstants.EVENT_TOPIC, new String[]{"org/osgi/service/monitor"}); + properties.put(EventConstants.EVENT_FILTER, + "(mon.listener.id="+monListenerId+")"); + context.registerService(EventHandler.class.getName(), this, properties); + MonitorAdmin monitorAdmin=(MonitorAdmin) serviceTracker.getService(); + if(monitorAdmin==null) + throw new IllegalStateException("could not start if no MonitorAdmin service is available"); + + job = monitorAdmin.startScheduledJob( + monListenerId, // listener.id + new String[] { + SERVICE_PID + "/" + MEMORY_FREE_VARIABLE_NAME, + SERVICE_PID + "/" + MEMORY_TOTAL_VARIABLE_NAME + }, + 20, // seconds + 0 // Forever + ); + } + + /** + * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext context) throws Exception { + job.stop(); + serviceTracker.close(); + } + + /** + * @see org.osgi.service.event.EventHandler#handleEvent(org.osgi.service.event.Event) + */ + public void handleEvent(Event event) { + String pid = (String) event.getProperty("mon.monitorable.pid"); + String name = (String) event.getProperty("mon.statusvariable.name"); + Object value = event.getProperty("mon.statusvariable.value"); + System.out.println("StatusVariable "+pid+"/" + name + "=" + value); + } +} Propchange: felix/sandbox/donsez/monitor.sample.memorymonitorjob/src/main/java/org/apache/felix/monitor/sample/memorymonitorjob/MemoryMonitorJob.java ------------------------------------------------------------------------------ svn:eol-style = native