You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by dj...@apache.org on 2011/12/03 02:35:52 UTC
svn commit: r1209819 - in /karaf/trunk:
assemblies/features/framework/src/main/filtered-resources/resources/etc/
main/ main/src/main/java/org/apache/karaf/info/
main/src/main/java/org/apache/karaf/main/
main/src/main/java/org/apache/karaf/main/util/
Author: djencks
Date: Sat Dec 3 01:35:52 2011
New Revision: 1209819
URL: http://svn.apache.org/viewvc?rev=1209819&view=rev
Log:
KARAF-1069 ServerInfo service allowing osgi-friendly access to server location and startup args
Added:
karaf/trunk/main/src/main/java/org/apache/karaf/info/
karaf/trunk/main/src/main/java/org/apache/karaf/info/ServerInfo.java (with props)
karaf/trunk/main/src/main/java/org/apache/karaf/main/util/ServerInfoImpl.java (with props)
Modified:
karaf/trunk/assemblies/features/framework/src/main/filtered-resources/resources/etc/config.properties
karaf/trunk/main/pom.xml
karaf/trunk/main/src/main/java/org/apache/karaf/main/Main.java
Modified: karaf/trunk/assemblies/features/framework/src/main/filtered-resources/resources/etc/config.properties
URL: http://svn.apache.org/viewvc/karaf/trunk/assemblies/features/framework/src/main/filtered-resources/resources/etc/config.properties?rev=1209819&r1=1209818&r2=1209819&view=diff
==============================================================================
--- karaf/trunk/assemblies/features/framework/src/main/filtered-resources/resources/etc/config.properties (original)
+++ karaf/trunk/assemblies/features/framework/src/main/filtered-resources/resources/etc/config.properties Sat Dec 3 01:35:52 2011
@@ -60,6 +60,7 @@ org.osgi.framework.system.packages= \
org.osgi.util.tracker;uses:="org.osgi.framework";version="1.5", \
org.apache.karaf.jaas.boot;version="${karaf.osgi.version}", \
org.apache.karaf.version;version="${karaf.osgi.version}", \
+ org.apache.karaf.info;version="${karaf.osgi.version}", \
${jre-${java.specification.version}}
# Extra packages appended after standard packages
Modified: karaf/trunk/main/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/main/pom.xml?rev=1209819&r1=1209818&r2=1209819&view=diff
==============================================================================
--- karaf/trunk/main/pom.xml (original)
+++ karaf/trunk/main/pom.xml Sat Dec 3 01:35:52 2011
@@ -99,7 +99,9 @@
<Main-Class>org.apache.karaf.main.Main</Main-Class>
<Bundle-Name>Apache Karaf</Bundle-Name>
<Bundle-Description>OSGi R4 framework.</Bundle-Description>
- <Export-Package />
+ <Export-Package>
+ org.apache.karaf.info
+ </Export-Package>
<!--
<Private-Package>
org.apache.felix.*;-split-package:=merge-first,
Added: karaf/trunk/main/src/main/java/org/apache/karaf/info/ServerInfo.java
URL: http://svn.apache.org/viewvc/karaf/trunk/main/src/main/java/org/apache/karaf/info/ServerInfo.java?rev=1209819&view=auto
==============================================================================
--- karaf/trunk/main/src/main/java/org/apache/karaf/info/ServerInfo.java (added)
+++ karaf/trunk/main/src/main/java/org/apache/karaf/info/ServerInfo.java Sat Dec 3 01:35:52 2011
@@ -0,0 +1,54 @@
+/*
+ * 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.karaf.info;
+
+import java.io.File;
+import java.net.URI;
+
+/**
+ * @version $Rev:$ $Date:$
+ */
+public interface ServerInfo {
+
+ File getHomeDirectory();
+
+ String resolveHomePath(final String filename);
+
+ File resolveHome(final String filename);
+
+ URI resolveHome(final URI uri);
+
+
+ File getBaseDirectory();
+
+ String resolveBasePath(final String filename);
+
+ File resolveBase(final String filename);
+
+ URI resolveBase(final URI uri);
+
+
+ File getDataDirectory();
+
+ File getInstancesDirectory();
+
+ String[] getArgs();
+}
Propchange: karaf/trunk/main/src/main/java/org/apache/karaf/info/ServerInfo.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: karaf/trunk/main/src/main/java/org/apache/karaf/info/ServerInfo.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: karaf/trunk/main/src/main/java/org/apache/karaf/info/ServerInfo.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: karaf/trunk/main/src/main/java/org/apache/karaf/main/Main.java
URL: http://svn.apache.org/viewvc/karaf/trunk/main/src/main/java/org/apache/karaf/main/Main.java?rev=1209819&r1=1209818&r2=1209819&view=diff
==============================================================================
--- karaf/trunk/main/src/main/java/org/apache/karaf/main/Main.java (original)
+++ karaf/trunk/main/src/main/java/org/apache/karaf/main/Main.java Sat Dec 3 01:35:52 2011
@@ -54,9 +54,11 @@ import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.apache.karaf.info.ServerInfo;
import org.apache.karaf.main.lock.Lock;
import org.apache.karaf.main.lock.SimpleFileLock;
import org.apache.karaf.main.util.BootstrapLogManager;
+import org.apache.karaf.main.util.ServerInfoImpl;
import org.apache.karaf.main.util.StringMap;
import org.apache.karaf.main.util.Utils;
import org.osgi.framework.Bundle;
@@ -289,6 +291,10 @@ public class Main {
loadStartupProperties(configProps);
processAutoProperties(framework.getBundleContext());
framework.start();
+
+ ServerInfo serverInfo = new ServerInfoImpl(args, karafBase, karafData, karafHome, karafInstances);
+ framework.getBundleContext().registerService(ServerInfo.class, serverInfo, null);
+
// Start custom activators
startKarafActivators(classLoader);
// Start lock monitor
Added: karaf/trunk/main/src/main/java/org/apache/karaf/main/util/ServerInfoImpl.java
URL: http://svn.apache.org/viewvc/karaf/trunk/main/src/main/java/org/apache/karaf/main/util/ServerInfoImpl.java?rev=1209819&view=auto
==============================================================================
--- karaf/trunk/main/src/main/java/org/apache/karaf/main/util/ServerInfoImpl.java (added)
+++ karaf/trunk/main/src/main/java/org/apache/karaf/main/util/ServerInfoImpl.java Sat Dec 3 01:35:52 2011
@@ -0,0 +1,110 @@
+/*
+ * 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.karaf.main.util;
+
+import java.io.File;
+import java.net.URI;
+
+import org.apache.karaf.info.ServerInfo;
+
+/**
+ * @version $Rev:$ $Date:$
+ */
+public class ServerInfoImpl implements ServerInfo {
+
+ private final File base;
+ private final File home;
+ private final File data;
+ private final File instances;
+ private final String[] args;
+
+ public ServerInfoImpl(String[] args, File base, File data, File home, File instances) {
+ this.args = args;
+ this.base = base;
+ this.data = data;
+ this.home = home;
+ this.instances = instances;
+ }
+
+ @Override
+ public File getHomeDirectory() {
+ return home;
+ }
+
+ @Override
+ public String resolveHomePath(String filename) {
+ return resolveWithBase(home, filename).getAbsolutePath();
+ }
+
+ @Override
+ public File resolveHome(String filename) {
+ return resolveWithBase(home, filename);
+ }
+
+ @Override
+ public URI resolveHome(URI uri) {
+ return home.toURI().resolve(uri);
+ }
+
+ @Override
+ public File getBaseDirectory() {
+ return base;
+ }
+
+ @Override
+ public String resolveBasePath(String filename) {
+ return resolveWithBase(base, filename).getAbsolutePath();
+ }
+
+ @Override
+ public File resolveBase(String filename) {
+ return resolveWithBase(base, filename);
+ }
+
+ @Override
+ public URI resolveBase(URI uri) {
+ return base.toURI().resolve(uri);
+ }
+
+ @Override
+ public File getDataDirectory() {
+ return data;
+ }
+
+ @Override
+ public File getInstancesDirectory() {
+ return instances;
+ }
+
+ @Override
+ public String[] getArgs() {
+ return args.clone();
+ }
+
+ private File resolveWithBase(File baseDir, String filename) {
+ File file = new File(filename);
+ if (file.isAbsolute()) {
+ return file;
+ }
+ return new File(baseDir, filename);
+ }
+
+}
Propchange: karaf/trunk/main/src/main/java/org/apache/karaf/main/util/ServerInfoImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: karaf/trunk/main/src/main/java/org/apache/karaf/main/util/ServerInfoImpl.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: karaf/trunk/main/src/main/java/org/apache/karaf/main/util/ServerInfoImpl.java
------------------------------------------------------------------------------
svn:mime-type = text/plain