/******************************************************************************* * Copyright (c) 2010-2014 SAP AG and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * SAP AG - initial API and implementation *******************************************************************************/ package org.eclipse.skalli.core.issues; import org.apache.commons.lang.StringUtils; import org.eclipse.skalli.services.extension.DataMigrationBase; import org.eclipse.skalli.services.extension.MigrationException; import org.eclipse.skalli.services.extension.MigrationUtils; import org.eclipse.skalli.services.issues.Issues; import org.eclipse.skalli.services.issues.IssuesService; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; public class IssuesDataMigration19 extends DataMigrationBase { public IssuesDataMigration19() { super(Issues.class, 19); } /** * Changes from model version 18->19: * <ol> * <li>renamed root element org.eclipse.skalli.model.ext.Issues to "issues"</li> * <li>renamed root element org.eclipse.skalli.model.ext.Issue to "issue"</li> * </ol> */ @SuppressWarnings("nls") @Override public void migrate(Document doc) throws MigrationException { MigrationUtils.renameTag(doc, doc.getDocumentElement(), "entity-issues"); MigrationUtils.renameAllTags(doc, "org.eclipse.skalli.model.ext.Issue", "issue"); MigrationUtils.removeAllTags(doc, "extension"); NodeList nodes = doc.getElementsByTagName("issuer"); for (int i=0; i<nodes.getLength(); ++i) { Element elem = (Element) nodes.item(i); elem.setTextContent(IssuesService.class.getName()); } Element staleElem = MigrationUtils.getChild(doc.getDocumentElement(), "stale"); if (staleElem == null) { staleElem = doc.createElement("stale"); doc.getDocumentElement().appendChild(staleElem); } staleElem.setTextContent("true"); } // before the "grand" refactoring, Group was in package org.eclipse.skalli.common! @SuppressWarnings("nls") @Override public boolean handlesType(String entityClassName) { return super.handlesType(entityClassName) || StringUtils.equals(entityClassName, "org.eclipse.skalli.model.ext.Issues"); } }