diff options
Diffstat (limited to 'src/main/java/org/openslx/virtualization/configuration')
5 files changed, 24 insertions, 8 deletions
diff --git a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemu.java b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemu.java index 7082e27..45b4f1f 100644 --- a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemu.java +++ b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemu.java @@ -115,7 +115,7 @@ public class VirtualizationConfigurationQemu extends VirtualizationConfiguration try { // read and parse Libvirt domain XML configuration document - this.vmConfig = new Domain( new String( vmContent ) ); + this.vmConfig = new Domain( new String( vmContent, StandardCharsets.UTF_8 ) ); } catch ( LibvirtXmlDocumentException | LibvirtXmlSerializationException | LibvirtXmlValidationException e ) { throw new VirtualizationConfigurationException( e.getLocalizedMessage() ); } @@ -239,7 +239,7 @@ public class VirtualizationConfigurationQemu extends VirtualizationConfiguration @Override public boolean addEmptyHddTemplate() { - return this.addHddTemplate( new String(), null, null ); + return this.addHddTemplate( "", null, null ); } @Override diff --git a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemuUtils.java b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemuUtils.java index 1befdc4..7b1b9bb 100644 --- a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemuUtils.java +++ b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemuUtils.java @@ -114,7 +114,7 @@ public class VirtualizationConfigurationQemuUtils private static String createAlphabeticalDeviceName( String devicePrefix, int deviceNumber ) { if ( deviceNumber < 0 || deviceNumber >= ( 'z' - 'a' ) ) { - String errorMsg = new String( "Device number is out of range to be able to create a valid device name." ); + String errorMsg = "Device number is out of range to be able to create a valid device name."; throw new IllegalArgumentException( errorMsg ); } diff --git a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualboxFileFormat.java b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualboxFileFormat.java index b4cb7c3..af7c54c 100644 --- a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualboxFileFormat.java +++ b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualboxFileFormat.java @@ -44,7 +44,7 @@ public class VirtualizationConfigurationVirtualboxFileFormat private static final Logger LOGGER = LogManager.getLogger( VirtualizationConfigurationVirtualboxFileFormat.class ); // key information set during initial parsing of the XML file - private String osName = new String(); + private String osName = ""; private ArrayList<HardDisk> hddsArray = new ArrayList<HardDisk>(); // XPath and DOM parsing related members diff --git a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVmwareFileFormat.java b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVmwareFileFormat.java index 134ff30..356a034 100644 --- a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVmwareFileFormat.java +++ b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVmwareFileFormat.java @@ -117,12 +117,22 @@ public class VirtualizationConfigurationVmwareFileFormat public static BufferedReader getVmxReader( byte[] vmxContent, int length ) throws IOException { Charset cs = getCharset( vmxContent, length ); + if ( cs == null ) + cs = StandardCharsets.UTF_8; // YES BECAUSE THIS IS NOT VMX AND EVERYTHING IS SHIT return new BufferedReader( new InputStreamReader( new ByteArrayInputStream( vmxContent, 0, length ), cs ) ); } + /** + * Get charset of config. Returns null if input doesn't look like a vmx file. + * @param vmxContent + * @param length + * @return + */ public static Charset getCharset( byte[] vmxContent, int length ) { String csName = detectCharset( new ByteArrayInputStream( vmxContent, 0, length ) ); + if ( csName == null ) + return null; Charset cs = null; try { cs = Charset.forName( csName ); @@ -146,8 +156,9 @@ public class VirtualizationConfigurationVmwareFileFormat return ret; } - public static String detectCharset( InputStream is ) + private static String detectCharset( InputStream is ) { + boolean isVmware = false; try { BufferedReader csDetectReader = new BufferedReader( new InputStreamReader( is, StandardCharsets.ISO_8859_1 ) ); String line; @@ -158,10 +169,15 @@ public class VirtualizationConfigurationVmwareFileFormat if ( entry.key.equals( ".encoding" ) || entry.key.equals( "encoding" ) ) { return entry.value; } + if ( entry.key.equals( "virtualHW.version" ) || entry.key.equals( "memsize" ) || entry.key.equals( "displayName") ) { + isVmware = true; + } } } catch ( Exception e ) { LOGGER.warn( "Could not detect charset, fallback to latin1", e ); } + if ( !isVmware ) + return null; // Dumb fallback return "ISO-8859-1"; } diff --git a/src/main/java/org/openslx/virtualization/configuration/transformation/TransformationManager.java b/src/main/java/org/openslx/virtualization/configuration/transformation/TransformationManager.java index 6bb5faa..18d7e43 100644 --- a/src/main/java/org/openslx/virtualization/configuration/transformation/TransformationManager.java +++ b/src/main/java/org/openslx/virtualization/configuration/transformation/TransformationManager.java @@ -122,8 +122,8 @@ public class TransformationManager<T, R> try { transformation.apply( this.config, this.args ); } catch ( TransformationException e ) { - final String errorMsg = new String( - "Error in configuration filter '" + transformation.getName() + "': " + e.getLocalizedMessage() ); + final String errorMsg = + "Error in configuration filter '" + transformation.getName() + "': " + e.getLocalizedMessage(); throw new TransformationException( errorMsg ); } } @@ -136,7 +136,7 @@ public class TransformationManager<T, R> */ private String showTransformations() { - String transformationSummary = new String(); + String transformationSummary = ""; final int maxFilterNumCharacters = ( this.transformations.size() + 1 ) / 10; for ( int i = 0; i < this.transformations.size(); i++ ) { |