new File(PrivilegedFileHelper.getCanonicalPath(getBackupConfig().getBackupDir()) + File.separator
+ configName);
if (!PrivilegedFileHelper.exists(configFile))
{
throw new RepositoryRestoreExeption("The backup set is not contains original repository configuration : "
+ PrivilegedFileHelper.getCanonicalPath(getBackupConfig().getBackupDir()));
}
IBindingFactory factory;
try
{
factory = SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<IBindingFactory>()
{
public IBindingFactory run() throws Exception
{
return BindingDirectory.getFactory(RepositoryServiceConfiguration.class);
}
});
}
catch (PrivilegedActionException pae)
{
Throwable cause = pae.getCause();
if (cause instanceof JiBXException)
{
throw (JiBXException)cause;
}
else if (cause instanceof RuntimeException)
{
throw (RuntimeException)cause;
}
else
{
throw new RuntimeException(cause);
}
}
IUnmarshallingContext uctx = factory.createUnmarshallingContext();
RepositoryServiceConfiguration conf =
(RepositoryServiceConfiguration) uctx.unmarshalDocument(PrivilegedFileHelper
.fileInputStream(configFile), null);
if (conf.getRepositoryConfigurations().size() != 1)
{
throw new RepositoryRestoreExeption(
"The oririginal configuration should be contains only one repository entry :"
+ PrivilegedFileHelper.getCanonicalPath(configFile));
}
if (!conf.getRepositoryConfiguration(getBackupConfig().getRepository()).getName().equals(
getBackupConfig().getRepository()))
{
throw new RepositoryRestoreExeption(
"The oririginal configuration should be contains only one repository entry with name \""
+ getBackupConfig().getRepository() + "\" :"
+ PrivilegedFileHelper.getCanonicalPath(configFile));
}