You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by fm...@apache.org on 2007/09/20 14:44:54 UTC

svn commit: r577722 - in /felix/trunk/jmood: ./ pom.xml src/main/java/org/apache/felix/jmood/compendium/ConfigAdminManager.java src/test/java/org/apache/felix/jmood/FelixLauncher.java

Author: fmeschbe
Date: Thu Sep 20 05:44:54 2007
New Revision: 577722

URL: http://svn.apache.org/viewvc?rev=577722&view=rev
Log:
- Some Formatting of Pom
- Use (released) Bundle plugin for bundling
- Use released framework and osgi-core libraries
- small fix to ConfigAdminManager to compile on Java 1.4
- Add MX4J dependencies for compiling on Java 1.4

Modified:
    felix/trunk/jmood/   (props changed)
    felix/trunk/jmood/pom.xml
    felix/trunk/jmood/src/main/java/org/apache/felix/jmood/compendium/ConfigAdminManager.java
    felix/trunk/jmood/src/test/java/org/apache/felix/jmood/FelixLauncher.java

Propchange: felix/trunk/jmood/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Thu Sep 20 05:44:54 2007
@@ -0,0 +1,4 @@
+.settings
+target
+.classpath
+.project

Modified: felix/trunk/jmood/pom.xml
URL: http://svn.apache.org/viewvc/felix/trunk/jmood/pom.xml?rev=577722&r1=577721&r2=577722&view=diff
==============================================================================
--- felix/trunk/jmood/pom.xml (original)
+++ felix/trunk/jmood/pom.xml Thu Sep 20 05:44:54 2007
@@ -1,92 +1,105 @@
-<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">
+<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">
     <parent>
-    <groupId>org.apache.felix</groupId>
-    <artifactId>felix</artifactId>
-    <version>1.1.0-SNAPSHOT</version>
-    <relativePath>../pom/pom.xml</relativePath>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  <packaging>osgi-bundle</packaging>
-  <name>JMood JMX Management Agent</name>
-  <version>0.9.0-SNAPSHOT</version>
-  <artifactId>${groupId}.jmood</artifactId>
-  <dependencies>
-    <dependency>
-      <groupId>${pom.groupId}</groupId>
-      <artifactId>org.apache.felix.framework</artifactId>
-      <version>0.9.0-SNAPSHOT</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>${pom.groupId}</groupId>
-      <artifactId>org.osgi.core</artifactId>
-      <version>1.1.0-SNAPSHOT</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>${pom.groupId}</groupId>
-      <artifactId>org.osgi.compendium</artifactId>
-      <version>0.9.0-SNAPSHOT</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8.1</version>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-  <build>
-    <resources>
-      <resource>
-        <directory>src/main/resources</directory>
-        <filtering>true</filtering>
-      </resource>
-    </resources>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.felix.plugins</groupId>
-        <artifactId>maven-osgi-plugin</artifactId>
-        <version>0.9.0-SNAPSHOT</version>
-        <extensions>true</extensions>
-        <configuration>
-          <osgiManifest >
-            <bundleName>${name}</bundleName>
-            <bundleActivator>${artifactId}.Activator</bundleActivator>
-            <bundleDescription>JMood management agent</bundleDescription>
-            <bundleSymbolicName>${artifactId}</bundleSymbolicName>
-            <exportPackage>
-            <!-- TODO -->
-            </exportPackage>
-            <!--Automatic resolution includes not available, unused, mx4j stuff-->
- 			<importPackage>
-			org.osgi.framework, org.osgi.util.tracker, org.osgi.service.log, org.osgi.service.packageadmin, org.osgi.service.startlevel, org.osgi.service.permissionadmin, org.osgi.service.useradmin, org.osgi.service.cm, javax.management, javax.management.remote
-			</importPackage>
-          </osgiManifest>
-        </configuration>
-      </plugin>
-     <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-surefire-plugin</artifactId>
-      <configuration>
-      <!--
-      Current tests are (unfinished) integration tests, and need 
-      to have the bundle available, so there's a chicken-egg problem there. Temporal workaround: omit tests in pom
-      -->
-      
-        <skip>true</skip>
-      </configuration>
-    </plugin>
-      
-    </plugins>
-  </build>
-  <reporting>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-project-info-reports-plugin</artifactId>
-      </plugin>
-    </plugins>
-  </reporting>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>felix</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom/pom.xml</relativePath>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <packaging>bundle</packaging>
+    <name>JMood JMX Management Agent</name>
+    <version>0.9.0-SNAPSHOT</version>
+    <artifactId>${groupId}.jmood</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>${pom.groupId}</groupId>
+            <artifactId>org.apache.felix.framework</artifactId>
+            <version>1.0.0</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>${pom.groupId}</groupId>
+            <artifactId>org.osgi.core</artifactId>
+            <version>1.0.0</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>${pom.groupId}</groupId>
+            <artifactId>org.osgi.compendium</artifactId>
+            <version>0.9.0-SNAPSHOT</version>
+            <scope>provided</scope>
+        </dependency>
+        
+        <!-- Building on Java prior to Java 5 requires these -->
+        <dependency>
+            <groupId>mx4j</groupId>
+            <artifactId>mx4j</artifactId>
+            <version>3.0.1</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>mx4j</groupId>
+            <artifactId>mx4j-remote</artifactId>
+            <version>3.0.1</version>
+            <scope>provided</scope>
+        </dependency>
+        
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>3.8.1</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+    <build>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+                <filtering>true</filtering>
+            </resource>
+        </resources>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <version>1.0.0</version>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Bundle-Activator>
+                            org.apache.felix.jmood.Activator
+                        </Bundle-Activator>
+                        <Private-Package>
+                            org.apache.felix.jmood.*
+                        </Private-Package>
+                    </instructions>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <!--
+                        Current tests are (unfinished) integration tests, and need 
+                        to have the bundle available, so there's a chicken-egg problem there. Temporal workaround: omit tests in pom
+                    -->
+
+                    <skip>true</skip>
+                </configuration>
+            </plugin>
+
+        </plugins>
+    </build>
+    <reporting>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>
+                    maven-project-info-reports-plugin
+                </artifactId>
+            </plugin>
+        </plugins>
+    </reporting>
 </project>

Modified: felix/trunk/jmood/src/main/java/org/apache/felix/jmood/compendium/ConfigAdminManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/jmood/src/main/java/org/apache/felix/jmood/compendium/ConfigAdminManager.java?rev=577722&r1=577721&r2=577722&view=diff
==============================================================================
--- felix/trunk/jmood/src/main/java/org/apache/felix/jmood/compendium/ConfigAdminManager.java (original)
+++ felix/trunk/jmood/src/main/java/org/apache/felix/jmood/compendium/ConfigAdminManager.java Thu Sep 20 05:44:54 2007
@@ -109,7 +109,7 @@
         //FIXME this should not be invoked
         //if created, the configuration is attached to the management agent's location
 		ac.debug("ConfigAdmin, getting config for pid: "+pid);
-		if (pid.contains(":")) throw new IllegalArgumentException("pid not compliant with jmx. Please remove ':' from the pid");
+		if (pid.indexOf(':') >= 0) throw new IllegalArgumentException("pid not compliant with jmx. Please remove ':' from the pid");
 		ConfigurationAdmin cad=ac.getConfigurationAdmin();
 		if (cad != null) {
 			Configuration config = cad.getConfiguration(pid);
@@ -129,7 +129,7 @@
 	public String getConfiguration(String pid, String location)
 		throws Exception {
 		//":" is reserved in objectnames, as a work around we do not permit pids containing it
-			if (pid.contains(":")) throw new IllegalArgumentException("pid not compliant with jmx. Please remove ':' from the pid");
+			if (pid.indexOf(':') >= 0) throw new IllegalArgumentException("pid not compliant with jmx. Please remove ':' from the pid");
 			ConfigurationAdmin cad=ac.getConfigurationAdmin();
 		if (cad != null) {
 			Configuration config = cad.getConfiguration(pid, location);

Modified: felix/trunk/jmood/src/test/java/org/apache/felix/jmood/FelixLauncher.java
URL: http://svn.apache.org/viewvc/felix/trunk/jmood/src/test/java/org/apache/felix/jmood/FelixLauncher.java?rev=577722&r1=577721&r2=577722&view=diff
==============================================================================
--- felix/trunk/jmood/src/test/java/org/apache/felix/jmood/FelixLauncher.java (original)
+++ felix/trunk/jmood/src/test/java/org/apache/felix/jmood/FelixLauncher.java Thu Sep 20 05:44:54 2007
@@ -16,26 +16,20 @@
  */
 package org.apache.felix.jmood;
 
-import java.io.BufferedReader;
 import java.io.File;
 import java.io.IOException;
-import java.io.InputStreamReader;
-import java.net.URL;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.logging.Logger;
-
-import javax.management.MBeanServerConnection;
 
 import org.apache.felix.framework.Felix;
-import org.apache.felix.framework.util.MutablePropertyResolver;
-import org.apache.felix.framework.util.MutablePropertyResolverImpl;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleException;
 import org.osgi.framework.Constants;
 public class FelixLauncher {
 
-    private MutablePropertyResolver props;
+    private Map props;
 	private Felix framework;
 	private List bundles;
 	private List packages;
@@ -47,12 +41,10 @@
 		clearCache(cacheDir);
     	cacheDir.mkdir();
         
-        framework = new Felix();
-		Map m=new HashMap();
 		bundles=new ArrayList();
 		packages=new ArrayList();
 
-        props = new MutablePropertyResolverImpl(m);
+        props = new HashMap();
         props.put("felix.cache.profiledir", cacheDir.getAbsolutePath());
 
     }
@@ -64,7 +56,7 @@
 		if(!packages.contains(packageName))
 		packages.add(packageName);
 	}
-	public void start(){
+	public void start() throws BundleException {
 		StringBuffer autostart=new StringBuffer();
 		for (int i=0; i<bundles.size(); i++){
 			String bundle=(String)bundles.get(i);
@@ -81,12 +73,13 @@
 		
         props.put(Constants.FRAMEWORK_SYSTEMPACKAGES, spkg.toString());
 
-        framework.start(props,null);
+        framework = new Felix(props, null);
+        framework.start();
 	}
 	public void blockingStart() throws Exception{
 		this.start();
         int to=0;
-        while(framework.getStatus()!=Felix.RUNNING_STATUS) {
+        while(framework.getState()!=Bundle.ACTIVE) {
             Thread.sleep(10);
             to++;
             if(to>100) throw new Exception("timeout");
@@ -94,7 +87,8 @@
 
 	}
 	public void shutdown(){
-		framework.shutdown();
+		framework.stopAndWait();
+		framework = null;
 		clearCache(cacheDir);
 	}