]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - org/argeo/osgi/boot/OsgiBootUtils.java
2 * Copyright (C) 2007-2012 Argeo GmbH
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package org
.argeo
.osgi
.boot
;
18 import java
.text
.DateFormat
;
19 import java
.text
.SimpleDateFormat
;
20 import java
.util
.ArrayList
;
21 import java
.util
.Date
;
22 import java
.util
.List
;
23 import java
.util
.StringTokenizer
;
25 import org
.osgi
.framework
.Bundle
;
27 /** Utilities, mostly related to logging. */
28 public class OsgiBootUtils
{
29 /** ISO8601 (as per log4j) and difference to UTC */
30 private static DateFormat dateFormat
= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS Z");
32 public static void info(Object obj
) {
33 System
.out
.println("# OSGiBOOT # " + dateFormat
.format(new Date()) + " # " + obj
);
36 public static void debug(Object obj
) {
37 System
.out
.println("# OSGiBOOT DBG # " + dateFormat
.format(new Date()) + " # " + obj
);
40 public static void warn(Object obj
) {
41 System
.out
.println("# OSGiBOOT WARN # " + dateFormat
.format(new Date()) + " # " + obj
);
44 public static void error(Object obj
, Throwable e
) {
45 System
.err
.println("# OSGiBOOT ERR # " + dateFormat
.format(new Date()) + " # " + obj
);
51 * Gets a property value
53 * @return null when defaultValue is ""
55 public static String
getProperty(String name
, String defaultValue
) {
57 if (defaultValue
!= null)
58 value
= System
.getProperty(name
, defaultValue
);
60 value
= System
.getProperty(name
);
62 if (value
== null || value
.equals(""))
68 public static String
getProperty(String name
) {
69 return getProperty(name
, null);
72 public static String
stateAsString(int state
) {
74 case Bundle
.UNINSTALLED
:
76 case Bundle
.INSTALLED
:
87 return Integer
.toString(state
);
92 * @return ==0: versions are identical, <0: tested version is newer, >0:
93 * currentVersion is newer.
95 public static int compareVersions(String currentVersion
, String testedVersion
) {
96 List
<String
> cToks
= new ArrayList
<String
>();
97 StringTokenizer cSt
= new StringTokenizer(currentVersion
, ".");
98 while (cSt
.hasMoreTokens())
99 cToks
.add(cSt
.nextToken());
100 List
<String
> tToks
= new ArrayList
<String
>();
101 StringTokenizer tSt
= new StringTokenizer(currentVersion
, ".");
102 while (tSt
.hasMoreTokens())
103 tToks
.add(tSt
.nextToken());
106 comp
: for (int i
= 0; i
< cToks
.size(); i
++) {
107 if (tToks
.size() <= i
) {
108 // equals until then, tested shorter
113 String c
= (String
) cToks
.get(i
);
114 String t
= (String
) tToks
.get(i
);
117 int cInt
= Integer
.parseInt(c
);
118 int tInt
= Integer
.parseInt(t
);
122 comp
= (cInt
- tInt
);
125 } catch (NumberFormatException e
) {
129 comp
= c
.compareTo(t
);
135 if (comp
== 0 && tToks
.size() > cToks
.size()) {
136 // equals until then, current shorter