Search in sources :

Example 51 with Persister

use of org.simpleframework.xml.core.Persister in project syncany by syncany.

the class TransferSettingsTest method testDeserializeCorrectClass.

@Test
public void testDeserializeCorrectClass() throws Exception {
    Serializer serializer = new Persister();
    InitOperationOptions initOperationOptions = TestConfigUtil.createTestInitOperationOptions("syncanytest");
    // Always LocalTransferSettings
    serializer.write(initOperationOptions.getConfigTO(), tmpFile);
    ConfigTO confRestored = ConfigTO.load(tmpFile);
    assertEquals(LocalTransferSettings.class, confRestored.getTransferSettings().getClass());
    // Tear down
    FileUtils.deleteDirectory(initOperationOptions.getLocalDir());
    FileUtils.deleteDirectory(((LocalTransferSettings) initOperationOptions.getConfigTO().getTransferSettings()).getPath());
}
Also used : InitOperationOptions(org.syncany.operations.init.InitOperationOptions) Persister(org.simpleframework.xml.core.Persister) ConfigTO(org.syncany.config.to.ConfigTO) Serializer(org.simpleframework.xml.Serializer) Test(org.junit.Test)

Example 52 with Persister

use of org.simpleframework.xml.core.Persister in project syncany by syncany.

the class UploadInterruptedTest method testUnreliableUpload_Test4_1_FailsAtSecondMultiChunkUpload.

@Test
public void testUnreliableUpload_Test4_1_FailsAtSecondMultiChunkUpload() throws Exception {
    /*
		 * This test fails when trying to upload the second multichunk, but succeeds on retry
		 *
		 * 1. upload(action-up-987, actions/action-up-987)
		 * 2. upload(transaction-123, transactions/transaction-123)
		 * 3. upload(multichunk-1, temp-1)
		 * 4. upload(multichunk-2, temp-2) <<< FAILS HERE
		 * 5. upload(database-123, temp-3) 6. move(temp-1, multichunks/multichunk-1)
		 * 7. move(temp-2, multichunks/multichunk-2)
		 * 8. move(temp-3, databases/database-123)
		 */
    // Setup
    UnreliableLocalTransferSettings testConnection = TestConfigUtil.createTestUnreliableLocalConnection(Arrays.asList(new String[] { "rel=[456].+upload.+multichunk" }));
    TestClient clientA = new TestClient("A", testConnection);
    // << larger than one multichunk!
    clientA.createNewFile("A-original", 5 * 1024 * 1024);
    boolean upFailed = false;
    try {
        clientA.up();
    } catch (StorageException e) {
        upFailed = true;
        logger.log(Level.INFO, e.getMessage());
    }
    assertTrue(upFailed);
    assertEquals(0, new File(testConnection.getPath() + "/databases/").listFiles().length);
    assertEquals(0, new File(testConnection.getPath() + "/multichunks/").listFiles().length);
    assertEquals(1, new File(testConnection.getPath() + "/actions/").listFiles().length);
    assertEquals(1, new File(testConnection.getPath() + "/transactions/").listFiles().length);
    File[] tempFiles = new File(testConnection.getPath() + "/temporary/").listFiles();
    assertEquals(1, tempFiles.length);
    // 1 MC with 1 MB, 1 with 4 MB; must be larger than 500 KB
    assertTrue(tempFiles[0].length() > 500 * 1024);
    File transactionFile = new File(testConnection.getPath() + "/transactions/").listFiles()[0];
    TransactionTO transactionTO = new Persister().read(TransactionTO.class, transactionFile);
    assertEquals(3, transactionTO.getActions().size());
    assertTrue(transactionTO.getActions().get(0).getRemoteFile().getName().contains("multichunk-"));
    assertTrue(transactionTO.getActions().get(1).getRemoteFile().getName().contains("multichunk-"));
    assertTrue(transactionTO.getActions().get(2).getRemoteFile().getName().contains("database-"));
    // 2. Second try succeeds and must clean up the transactions
    clientA.up();
    assertEquals(1, new File(testConnection.getPath() + "/databases/").listFiles().length);
    assertEquals(2, new File(testConnection.getPath() + "/multichunks/").listFiles().length);
    assertEquals(0, new File(testConnection.getPath() + "/actions/").listFiles().length);
    assertEquals(0, new File(testConnection.getPath() + "/transactions/").listFiles().length);
    assertEquals(0, new File(testConnection.getPath() + "/temporary/").listFiles().length);
    // Tear down
    clientA.deleteTestData();
}
Also used : UnreliableLocalTransferSettings(org.syncany.plugins.unreliable_local.UnreliableLocalTransferSettings) TestClient(org.syncany.tests.util.TestClient) Persister(org.simpleframework.xml.core.Persister) StorageException(org.syncany.plugins.transfer.StorageException) File(java.io.File) MultichunkRemoteFile(org.syncany.plugins.transfer.files.MultichunkRemoteFile) TransactionTO(org.syncany.plugins.transfer.to.TransactionTO) Test(org.junit.Test)

Example 53 with Persister

use of org.simpleframework.xml.core.Persister in project syncany by syncany.

the class PluginOperation method getRemotePluginInfo.

private PluginInfo getRemotePluginInfo(String pluginId) throws Exception {
    String remoteListStr = getRemoteListStr(pluginId);
    PluginListResponse pluginListResponse = new Persister().read(PluginListResponse.class, remoteListStr);
    if (pluginListResponse.getPlugins().size() > 0) {
        return pluginListResponse.getPlugins().get(0);
    } else {
        return null;
    }
}
Also used : Persister(org.simpleframework.xml.core.Persister)

Example 54 with Persister

use of org.simpleframework.xml.core.Persister in project syncany by syncany.

the class UpdateOperation method executeCheck.

private UpdateOperationResult executeCheck() throws Exception {
    Version localAppVersion = Version.valueOf(Client.getApplicationVersion());
    String appInfoResponseStr = getAppInfoResponseStr();
    AppInfoResponse appInfoResponse = new Persister().read(AppInfoResponse.class, appInfoResponseStr);
    ArrayList<AppInfo> appInfoList = appInfoResponse.getAppInfoList();
    if (appInfoList.size() > 0) {
        AppInfo remoteAppInfo = appInfoList.get(0);
        Version remoteAppVersion = Version.valueOf(remoteAppInfo.getAppVersion());
        boolean newVersionAvailable = remoteAppVersion.greaterThan(localAppVersion);
        result.setResultCode(UpdateResultCode.OK);
        result.setAppInfo(remoteAppInfo);
        result.setNewVersionAvailable(newVersionAvailable);
        return result;
    } else {
        result.setResultCode(UpdateResultCode.NOK);
        return result;
    }
}
Also used : Version(com.github.zafarkhaja.semver.Version) Persister(org.simpleframework.xml.core.Persister)

Example 55 with Persister

use of org.simpleframework.xml.core.Persister in project openmeetings by apache.

the class BackupExport method exportRoomGroup.

/*
	 * ##################### Backup Room Groups
	 */
private void exportRoomGroup(ZipOutputStream zos, ProgressHolder progressHolder) throws Exception {
    Registry registry = new Registry();
    Strategy strategy = new RegistryStrategy(registry);
    Serializer serializer = new Persister(strategy);
    registry.bind(Group.class, GroupConverter.class);
    registry.bind(Room.class, RoomConverter.class);
    writeList(serializer, zos, "rooms_organisation.xml", "room_organisations", roomDao.getGroups());
    progressHolder.setProgress(17);
}
Also used : RegistryStrategy(org.simpleframework.xml.convert.RegistryStrategy) Strategy(org.simpleframework.xml.strategy.Strategy) RegistryStrategy(org.simpleframework.xml.convert.RegistryStrategy) Registry(org.simpleframework.xml.convert.Registry) Persister(org.simpleframework.xml.core.Persister) Serializer(org.simpleframework.xml.Serializer)

Aggregations

Persister (org.simpleframework.xml.core.Persister)187 Serializer (org.simpleframework.xml.Serializer)149 StringWriter (java.io.StringWriter)74 Writer (java.io.Writer)62 Registry (org.simpleframework.xml.convert.Registry)30 RegistryStrategy (org.simpleframework.xml.convert.RegistryStrategy)30 Strategy (org.simpleframework.xml.strategy.Strategy)30 AnnotationStrategy (org.simpleframework.xml.convert.AnnotationStrategy)20 File (java.io.File)19 Test (org.junit.Test)14 IOException (java.io.IOException)13 Format (org.simpleframework.xml.stream.Format)11 StorageException (org.syncany.plugins.transfer.StorageException)8 Style (org.simpleframework.xml.stream.Style)7 RegistryMatcher (org.simpleframework.xml.transform.RegistryMatcher)6 ByteArrayOutputStream (java.io.ByteArrayOutputStream)5 SimpleDateFormat (java.text.SimpleDateFormat)5 ArrayList (java.util.ArrayList)5 CamelCaseStyle (org.simpleframework.xml.stream.CamelCaseStyle)5 ConfigTO (org.syncany.config.to.ConfigTO)5