Revision 1431 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/packageutils/impl/DefaultPackageManager.java
DefaultPackageManager.java | ||
---|---|---|
24 | 24 |
package org.gvsig.tools.packageutils.impl; |
25 | 25 |
|
26 | 26 |
import java.io.File; |
27 |
import java.io.FileInputStream; |
|
27 | 28 |
import java.io.IOException; |
28 | 29 |
import java.io.InputStream; |
29 | 30 |
import java.io.OutputStream; |
31 |
import java.util.Properties; |
|
32 |
import org.apache.commons.io.IOUtils; |
|
33 |
import org.apache.commons.lang3.StringUtils; |
|
30 | 34 |
|
31 | 35 |
import org.gvsig.tools.exception.BaseException; |
32 | 36 |
import org.gvsig.tools.packageutils.Dependencies; |
... | ... | |
36 | 40 |
import org.gvsig.tools.packageutils.Version; |
37 | 41 |
|
38 | 42 |
public class DefaultPackageManager implements PackageManager { |
43 |
private String operatingSystemName; |
|
44 |
private String operatingSystemFamily; |
|
45 |
private String operatingSystemVersion; |
|
39 | 46 |
|
40 | 47 |
@Override |
41 | 48 |
public Version createVersion() { |
... | ... | |
94 | 101 |
return new DefaultDependencies(); |
95 | 102 |
} |
96 | 103 |
|
104 |
private void loadOperatingSystemInfo() { |
|
105 |
String osname = System.getProperty("os.name"); |
|
106 |
String osversion = System.getProperty("os.version"); |
|
107 |
if (osname.toLowerCase().startsWith("linux")) { |
|
108 |
this.operatingSystemFamily = OS.LINUX; |
|
109 |
FileInputStream fis = null; |
|
110 |
try { |
|
111 |
Properties p = new Properties(); |
|
112 |
fis = new FileInputStream("/etc/os-release"); |
|
113 |
p.load(fis); |
|
114 |
this.operatingSystemName = p.getProperty("ID", null); |
|
115 |
this.operatingSystemVersion = p.getProperty("VERSION_ID", null); |
|
116 |
|
|
117 |
this.operatingSystemName = StringUtils.removeEnd(this.operatingSystemName,"\""); |
|
118 |
this.operatingSystemName = StringUtils.removeStart(this.operatingSystemName,"\""); |
|
119 |
this.operatingSystemName = StringUtils.trimToNull(this.operatingSystemName); |
|
120 |
this.operatingSystemVersion = StringUtils.removeEnd(this.operatingSystemVersion,"\""); |
|
121 |
this.operatingSystemVersion = StringUtils.removeStart(this.operatingSystemVersion,"\""); |
|
122 |
this.operatingSystemVersion = StringUtils.trimToNull(this.operatingSystemVersion); |
|
123 |
} catch(Exception ex) { |
|
124 |
|
|
125 |
} finally { |
|
126 |
IOUtils.closeQuietly(fis); |
|
127 |
} |
|
128 |
|
|
129 |
} else if (osname.toLowerCase().startsWith("window")) { |
|
130 |
this.operatingSystemFamily = OS.WINDOWS; |
|
131 |
String s = osname.replace(" ", ""); |
|
132 |
s = s.replace("_", ""); |
|
133 |
s = s.replace("-", ""); |
|
134 |
this.operatingSystemName = s; |
|
135 |
this.operatingSystemVersion = osversion; |
|
136 |
|
|
137 |
} else { |
|
138 |
String s = osname.replace(" ", ""); |
|
139 |
s = s.replace("_", ""); |
|
140 |
s = s.replace("-", ""); |
|
141 |
this.operatingSystemFamily = s; |
|
142 |
this.operatingSystemName = null; |
|
143 |
this.operatingSystemVersion = osversion; |
|
144 |
} |
|
145 |
} |
|
146 |
|
|
97 | 147 |
@Override |
98 | 148 |
public String getOperatingSystem() { |
99 |
String osname = System.getProperty("os.name"); |
|
100 |
if (osname.toLowerCase().startsWith("linux")) { |
|
101 |
return OS.LINUX; |
|
102 |
} |
|
103 |
if (osname.toLowerCase().startsWith("window")) { |
|
104 |
return OS.WINDOWS; |
|
105 |
} |
|
106 |
return osname; |
|
107 |
} |
|
149 |
if( this.operatingSystemFamily == null ) { |
|
150 |
loadOperatingSystemInfo(); |
|
151 |
} |
|
152 |
StringBuilder builder = new StringBuilder(); |
|
153 |
builder.append(this.operatingSystemFamily); |
|
154 |
if( this.operatingSystemName!=null ) { |
|
155 |
builder.append("_"); |
|
156 |
builder.append(this.operatingSystemName); |
|
157 |
if( this.operatingSystemVersion!=null ) { |
|
158 |
builder.append("_"); |
|
159 |
builder.append(this.operatingSystemVersion); |
|
160 |
} |
|
161 |
} |
|
162 |
return builder.toString(); |
|
163 |
} |
|
164 |
|
|
165 |
@Override |
|
166 |
public String getOperatingSystemFamily() { |
|
167 |
if( this.operatingSystemFamily == null ) { |
|
168 |
loadOperatingSystemInfo(); |
|
169 |
} |
|
170 |
return this.operatingSystemFamily; |
|
171 |
} |
|
172 |
|
|
173 |
@Override |
|
174 |
public String getOperatingSystemName() { |
|
175 |
if( this.operatingSystemFamily == null ) { |
|
176 |
loadOperatingSystemInfo(); |
|
177 |
} |
|
178 |
return this.operatingSystemName; |
|
179 |
} |
|
108 | 180 |
|
109 | 181 |
@Override |
182 |
public String getOperatingSystemVersion() { |
|
183 |
if( this.operatingSystemFamily == null ) { |
|
184 |
loadOperatingSystemInfo(); |
|
185 |
} |
|
186 |
return this.operatingSystemVersion; |
|
187 |
} |
|
188 |
|
|
189 |
@Override |
|
110 | 190 |
public String getArchitecture() { |
111 | 191 |
String osarch = System.getProperty("os.arch"); |
112 | 192 |
if (osarch.toLowerCase().startsWith("i386")) { |
113 | 193 |
return ARCH.X86; |
114 | 194 |
} |
195 |
if (osarch.toLowerCase().startsWith("i686")) { |
|
196 |
return ARCH.X86; |
|
197 |
} |
|
198 |
if (osarch.toLowerCase().startsWith("x86_64")) { |
|
199 |
return ARCH.X86_64; |
|
200 |
} |
|
115 | 201 |
if (osarch.toLowerCase().startsWith("x86")) { |
116 | 202 |
return ARCH.X86; |
117 | 203 |
} |
118 | 204 |
if (osarch.toLowerCase().startsWith("amd64")) { |
119 | 205 |
return ARCH.X86_64; |
120 | 206 |
} |
121 |
return osarch; } |
|
207 |
return osarch; |
|
208 |
} |
|
122 | 209 |
|
123 | 210 |
@Override |
124 | 211 |
public void writePacakgeInfo(PackageInfo packageInfo, File file) |
Also available in: Unified diff