Skip to content

Commit

Permalink
#13469 fixes for the multi lang support
Browse files Browse the repository at this point in the history
  • Loading branch information
Jonathan authored and Jonathan committed Feb 16, 2018
1 parent ad4eea3 commit 1555a21
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 10 deletions.
17 changes: 13 additions & 4 deletions dotCMS/src/main/java/com/dotmarketing/db/DbConnectionFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,9 @@

import net.sourceforge.jtds.jdbc.ConnectionJDBC2;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.sql.SQLIntegrityConstraintViolationException;
import java.sql.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
Expand Down Expand Up @@ -69,6 +67,17 @@ public static void setAutoCommit(final boolean autoCommit) {
}
} // setAutoCommit.

/**
* Returns the current date (now) depending of the right type for the current database type.
* @return Date
*/
public static Date now() {

return MSSQL.equals(getDBType())?
new java.sql.Date(System.currentTimeMillis()):
new Timestamp(System.currentTimeMillis());
}

public enum DataBaseType {
POSTGRES, MySQL, MSSQL, ORACLE, H2;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

package com.dotmarketing.startup.runonce;

import com.dotcms.business.CloseDBIfOpened;
import com.dotcms.concurrent.DotConcurrentFactory;
import com.dotcms.concurrent.DotSubmitter;
import com.dotcms.util.ConversionUtils;
Expand Down Expand Up @@ -44,9 +45,10 @@ public class Task04330WorkflowTaskAddLanguageIdColumn extends AbstractJDBCStartu
protected static final int SELECT_MAX_ROWS = Config.getIntProperty("task.4330.selectmaxrows", 25);
protected static final int MAX_BATCH_SIZE = Config.getIntProperty("task.4330.maxbatchsize", 100);
protected static final String SELECT_CONTENTLET_LANGS_INFO_SQL = "select lang from contentlet_version_info where identifier=?";
protected static final String INSERT_WORKFLOW_TASK_SQL = "insert into (id, create_date, mode_date, created_by, assigned_to, status, webasset, language_id) values (?,?,?,?,?,?,?,?)";
protected static final String INSERT_WORKFLOW_TASK_SQL = "insert into workflow_task(id, title, creation_date, mod_date, created_by, assigned_to, status, webasset, language_id) values (?,?,?,?,?,?,?,?,?)";

protected static final long DEFAULT_LANGUAGE_ID = 1L;
protected static final String SELECT_WORKFLOW_TASK_SQL = "select id, assigned_to, title, status, webasset from workflow_task";
protected final DotSubmitter submitter = DotConcurrentFactory.getInstance().getSubmitter(DotConcurrentFactory.DOT_SYSTEM_THREAD_POOL);


Expand Down Expand Up @@ -187,14 +189,14 @@ private void addWorkflowTaskLanguageIdFK() {

private void updateAllWorkflowTaskToDefaultLanguage() throws DotDataException {

Logger.debug(this, "Running upgrade Task04330WorkflowTaskAddLanguageIdColumn");
Logger.info(this, "Running upgrade Task04330WorkflowTaskAddLanguageIdColumn");

int selectStartRow = 0;
final List<WorkflowTask> workflowTasks = new ArrayList<>();
final List<Future<WorkflowTaskResult>> futures =
new ArrayList<>();
List<Map<String, Object>> workflowTaskList = new DotConnect()
.setSQL("select id, assigned_to, title, status, webasset from workflow_task")
.setSQL(SELECT_WORKFLOW_TASK_SQL)
.setStartRow(selectStartRow)
.setMaxRows(SELECT_MAX_ROWS)
.loadResults();
Expand Down Expand Up @@ -224,12 +226,14 @@ private void updateAllWorkflowTaskToDefaultLanguage() throws DotDataException {
selectStartRow += SELECT_MAX_ROWS;
workflowTaskList =
(List<Map<String, Object>>)new DotConnect()
.setSQL("select id, assigned_to, title, status, webasset from workflow_task")
.setSQL(SELECT_WORKFLOW_TASK_SQL)
.setStartRow(selectStartRow)
.setMaxRows (SELECT_MAX_ROWS)
.loadResults();
futures.clear();
}

this.doBatch (workflowTasks, true);
}

private void doBatch(final List<WorkflowTask> workflowTasks) {
Expand All @@ -249,11 +253,12 @@ private void doBatch(final List<WorkflowTask> workflowTasks, final boolean force

if (workflowTask.isUpdate()) {

paramsInsert.add(new Params(workflowTask.getLanguageId(),
paramsUpdate.add(new Params(workflowTask.getLanguageId(),
workflowTask.getId()
));
} else {
paramsUpdate.add(new Params(workflowTask.getId(),
paramsInsert.add(new Params(workflowTask.getId(),
workflowTask.getTitle(),
DbConnectionFactory.now(),
DbConnectionFactory.now(),
SYSTEM_USER_ID,
Expand Down Expand Up @@ -311,6 +316,7 @@ private void runTask(final List<Future<WorkflowTaskResult>> futures,
futures.add(submitter.submit(()-> this.runWorkflowTask (workflowTaskMap)));
}

@CloseDBIfOpened
private WorkflowTaskResult runWorkflowTask(final Map<String, Object> workflowTaskMap) {

final String id = (String)workflowTaskMap.get("id");
Expand Down

0 comments on commit 1555a21

Please sign in to comment.