Merged HEAD-BUG-FIX (4.3/Cloud) to HEAD (4.3/Cloud)

58756: Merged V4.2-BUG-FIX (4.2.1) to HEAD-BUG-FIX (Cloud/4.3)
      58733: Merged DEV to V4.2-BUG-FIX (4.2.1)
         58696: MNT-9111 : MS SQL Server 2008 R2 where user's default schema is not 'dbo', schema validator fails on subsequent restarts and application fails startup
         Fixed SchemaBootstrap to use the required schema from db.schema.name property if set.
         58712: MNT-9111 : MS SQL Server 2008 R2 where user's default schema is not 'dbo', schema validator fails on subsequent restarts and application fails startup
         Corrected the fix from r58696.
         Added the db.schema.name to repository.properties.
         Corrected property handling.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@62030 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Alan Davis
2014-02-12 00:08:16 +00:00
parent 14a5cdfddb
commit e3762b0173
7 changed files with 75 additions and 24 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2005-2011 Alfresco Software Limited.
* Copyright (C) 2005-2013 Alfresco Software Limited.
*
* This file is part of Alfresco
*
@@ -41,7 +41,8 @@ public class DbToXML
private ApplicationContext context;
private File outputFile;
private String namePrefix = "alf_";
private String dbSchemaName;
/**
* Constructor. Uses a default name prefix of 'alf_' during the export.
*/
@@ -61,12 +62,22 @@ public class DbToXML
this(context, outputFile);
this.namePrefix = namePrefix;
}
/**
* Set an optional default schema name
*
* @param dbSchemaName
*/
public void setDbSchemaName(String dbSchemaName)
{
this.dbSchemaName = dbSchemaName;
}
public void execute()
{
ExportDb exporter = new ExportDb(context);
exporter.setNamePrefix(namePrefix);
exporter.setDbSchemaName(dbSchemaName);
exporter.execute();
Schema schema = exporter.getSchema();
// Write to a string buffer and then write the results to a file

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2005-2011 Alfresco Software Limited.
* Copyright (C) 2005-2013 Alfresco Software Limited.
*
* This file is part of Alfresco
*
@@ -70,6 +70,9 @@ public class ExportDb
/** Only top-level tables starting with namePrefix will be exported, set to empty string for all objects */
private String namePrefix = "alf_";
/** Default schema name to use */
private String dbSchemaName;
private final static Log log = LogFactory.getLog(ExportDb.class);
@@ -390,6 +393,11 @@ public class ExportDb
*/
private String getSchemaName(final DatabaseMetaData dbmd) throws SQLException
{
if (this.dbSchemaName != null)
{
return this.dbSchemaName;
}
String schemaName = null;
final ResultSet schemas = dbmd.getSchemas();
while (schemas.next())
@@ -512,4 +520,14 @@ public class ExportDb
{
this.namePrefix = namePrefix;
}
/**
* Set the default schema name
*
* @param dbSchemaName the default schema name
*/
public void setDbSchemaName(String dbSchemaName)
{
this.dbSchemaName = dbSchemaName;
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2005-2012 Alfresco Software Limited.
* Copyright (C) 2005-2013 Alfresco Software Limited.
*
* This file is part of Alfresco
*
@@ -47,6 +47,7 @@ public class MultiFileDumper
private final DbToXMLFactory dbToXMLFactory;
private final static String fileNameSuffix = ".xml";
public final static String[] DEFAULT_PREFIXES = new String[] { "alf_", "avm_", "jbpm_", "act_" };
private String defaultSchemaName;
/**
@@ -56,8 +57,9 @@ public class MultiFileDumper
* @param directory
* @param fileNameTemplate
* @param dbToXMLFactory
* @param defaultSchemaName
*/
public MultiFileDumper(String[] dbPrefixes, File directory, String fileNameTemplate, DbToXMLFactory dbToXMLFactory)
public MultiFileDumper(String[] dbPrefixes, File directory, String fileNameTemplate, DbToXMLFactory dbToXMLFactory, String defaultSchemaName)
{
ParameterCheck.mandatory("dbPrefixes", dbPrefixes);
ParameterCheck.mandatory("directory", directory);
@@ -72,6 +74,7 @@ public class MultiFileDumper
this.directory = directory;
this.fileNameTemplate = fileNameTemplate;
this.dbToXMLFactory = dbToXMLFactory;
this.defaultSchemaName = defaultSchemaName;
}
@@ -82,10 +85,11 @@ public class MultiFileDumper
* @param directory
* @param fileNameTemplate
* @param dbToXMLFactory
* @param defaultSchemaName can be null
*/
public MultiFileDumper(File directory, String fileNameTemplate, DbToXMLFactory dbToXMLFactory)
public MultiFileDumper(File directory, String fileNameTemplate, DbToXMLFactory dbToXMLFactory, String defaultSchemaName)
{
this(DEFAULT_PREFIXES, directory, fileNameTemplate, dbToXMLFactory);
this(DEFAULT_PREFIXES, directory, fileNameTemplate, dbToXMLFactory, defaultSchemaName);
}
@@ -99,6 +103,7 @@ public class MultiFileDumper
File outputFile = TempFileProvider.createTempFile(fileNamePrefix, fileNameSuffix, directory);
files.add(outputFile);
DbToXML dbToXML = dbToXMLFactory.create(outputFile, dbPrefix);
dbToXML.setDbSchemaName(defaultSchemaName);
dbToXML.execute();
}