}
protected Map getSynchronizationParams(Date date) {
- Map<String, Object> params = newHashMap();
- params.put("date", new Timestamp(date.getTime()));
- return params;
+ return getSynchronizationParams(date, Collections.<String, String>emptyMap());
+ }
+
+ protected Map getSynchronizationParams(Date date, Map<String, String> params) {
+ Map<String, Object> finalParams = newHashMap();
+ finalParams.put("date", new Timestamp(date.getTime()));
+ return finalParams;
}
@Override
public void synchronizeAfter(final DbSession session, Date date) {
+ this.synchronizeAfter(session, date, Collections.<String, String>emptyMap());
+ }
+
+ @Override
+ public void synchronizeAfter(final DbSession session, Date date, Map<String, String> params) {
try {
DbSynchronizationHandler handler = getSynchronizationResultHandler(session);
- session.select(getSynchronizeStatementFQN(), getSynchronizationParams(date), handler);
+ session.select(getSynchronizeStatementFQN(), getSynchronizationParams(date, params), handler);
handler.enqueueCollected();
} catch (Exception e) {
throw new IllegalStateException(e);
import org.sonar.core.persistence.Dto;
import javax.annotation.CheckForNull;
+
import java.io.Serializable;
import java.util.Collection;
import java.util.Date;
+import java.util.Map;
public interface Dao<DTO extends Dto<KEY>, KEY extends Serializable> extends ServerComponent {
void synchronizeAfter(DbSession session, Date date);
+ void synchronizeAfter(DbSession session, Date date, Map<String, String> params);
+
}
public class IssueAuthorizationDao extends BaseDao<IssueAuthorizationMapper, IssueAuthorizationDto, String> implements DaoComponent {
+ public static final String PROJECT_KEY = "project";
+
public IssueAuthorizationDao() {
this(System2.INSTANCE);
}
}
@Override
- protected Map getSynchronizationParams(Date date) {
- Map<String, Object> params = super.getSynchronizationParams(date);
- params.put("permission", UserRole.USER);
- params.put("anyone", DefaultGroups.ANYONE);
- return params;
+ protected Map getSynchronizationParams(Date date, Map<String, String> params) {
+ Map<String, Object> finalParams = super.getSynchronizationParams(date, params);
+ finalParams.put("permission", UserRole.USER);
+ finalParams.put("anyone", DefaultGroups.ANYONE);
+ finalParams.put(PROJECT_KEY, params.get(PROJECT_KEY));
+ return finalParams;
}
@Override