11package ru .qatools .gridrouter .utils ;
22
3+ import org .apache .commons .io .FileUtils ;
34import org .apache .commons .lang3 .SerializationUtils ;
45import ru .qatools .gridrouter .config .Browsers ;
56
67import javax .xml .bind .JAXB ;
78import java .io .File ;
9+ import java .io .IOException ;
10+ import java .io .StringWriter ;
811
912import static java .lang .ClassLoader .getSystemResource ;
1013import static ru .qatools .gridrouter .utils .GridRouterRule .USER_1 ;
@@ -20,11 +23,11 @@ private QuotaUtils() {
2023 public static final String QUOTA_FILE_PATTERN
2124 = getSystemResource ("quota/" + USER_1 + ".xml" ).getPath ().replace (USER_1 , "%s" );
2225
23- public static void replacePortInQuotaFile (String user , int port ) {
26+ public static void replacePortInQuotaFile (String user , int port ) throws IOException {
2427 copyQuotaFile (user , user , port );
2528 }
2629
27- public static void copyQuotaFile (String srcUser , String dstUser , int withHubPort ) {
30+ public static void copyQuotaFile (String srcUser , String dstUser , int withHubPort ) throws IOException {
2831 Browsers browsers = getQuotaFor (srcUser );
2932 setPort (browsers , withHubPort );
3033 writeQuotaFor (dstUser , browsers );
@@ -36,8 +39,11 @@ public static Browsers getQuotaFor(String user) {
3639 return SerializationUtils .clone (browsersOriginal );
3740 }
3841
39- public static void writeQuotaFor (String user , Browsers browsers ) {
40- JAXB .marshal (browsers , getQuotaFile (user ));
42+ public static void writeQuotaFor (String user , Browsers browsers ) throws IOException {
43+ //workaround to write the whole file at once
44+ StringWriter xml = new StringWriter ();
45+ JAXB .marshal (browsers , xml );
46+ FileUtils .write (getQuotaFile (user ), xml .toString ());
4147 }
4248
4349 public static File getQuotaFile (String user ) {
0 commit comments