java/code/src/com/redhat/rhn/common/db/datasource/xml/Task_queries.xml | 158
+++----
java/code/src/com/redhat/rhn/frontend/dto/PackageCapabilityDto.java | 87
++++
java/code/src/com/redhat/rhn/frontend/dto/PackageChangelogDto.java | 89
++++
java/code/src/com/redhat/rhn/manager/task/TaskManager.java | 32
+
java/code/src/com/redhat/rhn/taskomatic/task/repomd/DebPackageWriter.java | 56
+-
java/code/src/com/redhat/rhn/taskomatic/task/repomd/FilelistsXmlWriter.java | 18
java/code/src/com/redhat/rhn/taskomatic/task/repomd/OtherXmlWriter.java | 21
-
java/code/src/com/redhat/rhn/taskomatic/task/repomd/PackageCapabilityIterator.java | 202
----------
java/code/src/com/redhat/rhn/taskomatic/task/repomd/PrimaryXmlWriter.java | 91
+---
java/code/src/com/redhat/rhn/taskomatic/task/repomd/RepomdWriter.java | 6
java/code/src/com/redhat/rhn/taskomatic/task/repomd/RpmRepositoryWriter.java | 12
java/code/src/com/redhat/rhn/taskomatic/task/repomd/UpdateInfoWriter.java | 21
-
12 files changed, 376 insertions(+), 417 deletions(-)
New commits:
commit a5e6dad5668f09a998b497d5d61ce44df5690509
Author: Stephen Herr <sherr(a)redhat.com>
Date: Thu Dec 6 16:07:35 2012 -0500
883546 - reworking how repodata xml gets built to avoid "snapshot too old"
errors
diff --git a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Task_queries.xml
b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Task_queries.xml
index fa1de80..c73ad00 100644
--- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Task_queries.xml
+++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Task_queries.xml
@@ -602,126 +602,92 @@ where rhnChannelErrata.errata_id = rhnErrataPackage.errata_id
</query>
</mode>
-<mode name="repomdgenerator_capability_files">
- <query params="channel_id">
- SELECT chpkg.package_id, pkgcap.id, pkgcap.name, pkgcap.version
- FROM rhnPackageFile pkgf, rhnPackageCapability pkgcap,
- rhnChannelPackage chpkg left join rhnPackageRepodata prd ON prd.package_id =
chpkg.package_id
- WHERE
- chpkg.package_id = pkgf.package_id
- AND pkgf.capability_id = pkgcap.id
- AND chpkg.channel_id = :channel_id
- AND prd.primary_xml is null
- ORDER BY pkgf.package_id
+<mode name="repomdgenerator_capability_files"
+ class="com.redhat.rhn.frontend.dto.PackageCapabilityDto">
+ <query params="package_id">
+ SELECT pkgcap.id, pkgcap.name, pkgcap.version
+ FROM rhnPackageFile pkgf, rhnPackageCapability pkgcap
+ WHERE pkgf.capability_id = pkgcap.id
+ AND pkgf.package_id = :package_id
</query>
</mode>
-<mode name="repomdgenerator_capability_provides">
- <query params="channel_id">
- SELECT chpkg.package_id, pkgcap.id, pkgcap.name, pkgcap.version, pkgp.sense
- FROM rhnPackageProvides pkgp, rhnPackageCapability pkgcap,
- rhnChannelPackage chpkg left join rhnPackageRepodata prd ON prd.package_id =
chpkg.package_id
- WHERE
- chpkg.package_id = pkgp.package_id
- AND pkgp.capability_id = pkgcap.id
- AND chpkg.channel_id = :channel_id
- AND prd.primary_xml is null
- ORDER BY pkgp.package_id
+<mode name="repomdgenerator_capability_provides"
+ class="com.redhat.rhn.frontend.dto.PackageCapabilityDto">
+ <query params="package_id">
+ SELECT pkgcap.id, pkgcap.name, pkgcap.version, pkgp.sense
+ FROM rhnPackageProvides pkgp, rhnPackageCapability pkgcap
+ WHERE pkgp.capability_id = pkgcap.id
+ AND pkgp.package_id = :package_id
</query>
</mode>
-<mode name="repomdgenerator_capability_requires">
- <query params="channel_id">
- SELECT chpkg.package_id, pkgcap.id, pkgcap.name, pkgcap.version, pkgp.sense
- FROM rhnPackageRequires pkgp, rhnPackageCapability pkgcap,
- rhnChannelPackage chpkg left join rhnPackageRepodata prd ON prd.package_id =
chpkg.package_id
- WHERE
- chpkg.package_id = pkgp.package_id
- AND pkgp.capability_id = pkgcap.id
- AND chpkg.channel_id = :channel_id
- AND prd.primary_xml is null
- ORDER BY pkgp.package_id
+<mode name="repomdgenerator_capability_requires"
+ class="com.redhat.rhn.frontend.dto.PackageCapabilityDto">
+ <query params="package_id">
+ SELECT pkgcap.id, pkgcap.name, pkgcap.version, pkgp.sense
+ FROM rhnPackageRequires pkgp, rhnPackageCapability pkgcap
+ WHERE pkgp.capability_id = pkgcap.id
+ AND pkgp.package_id = :package_id
</query>
</mode>
-<mode name="repomdgenerator_capability_conflicts">
- <query params="channel_id">
- SELECT chpkg.package_id, pkgcap.id, pkgcap.name, pkgcap.version, pkgp.sense
- FROM rhnPackageConflicts pkgp, rhnPackageCapability pkgcap,
- rhnChannelPackage chpkg left join rhnPackageRepodata prd ON prd.package_id =
chpkg.package_id
- WHERE
- chpkg.package_id = pkgp.package_id
- AND pkgp.capability_id = pkgcap.id
- AND chpkg.channel_id = :channel_id
- AND prd.primary_xml is null
- ORDER BY pkgp.package_id
+<mode name="repomdgenerator_capability_conflicts"
+ class="com.redhat.rhn.frontend.dto.PackageCapabilityDto">
+ <query params="package_id">
+ SELECT pkgcap.id, pkgcap.name, pkgcap.version, pkgp.sense
+ FROM rhnPackageConflicts pkgp, rhnPackageCapability pkgcap
+ WHERE pkgp.capability_id = pkgcap.id
+ AND pkgp.package_id = :package_id
</query>
</mode>
-<mode name="repomdgenerator_capability_obsoletes">
- <query params="channel_id">
- SELECT chpkg.package_id, pkgcap.id, pkgcap.name, pkgcap.version, pkgp.sense
- FROM rhnPackageObsoletes pkgp, rhnPackageCapability pkgcap,
- rhnChannelPackage chpkg left join rhnPackageRepodata prd ON prd.package_id =
chpkg.package_id
- WHERE
- chpkg.package_id = pkgp.package_id
- AND pkgp.capability_id = pkgcap.id
- AND chpkg.channel_id = :channel_id
- AND prd.primary_xml is null
- ORDER BY pkgp.package_id
+<mode name="repomdgenerator_capability_obsoletes"
+ class="com.redhat.rhn.frontend.dto.PackageCapabilityDto">
+ <query params="package_id">
+ SELECT pkgcap.id, pkgcap.name, pkgcap.version, pkgp.sense
+ FROM rhnPackageObsoletes pkgp, rhnPackageCapability pkgcap
+ WHERE pkgp.capability_id = pkgcap.id
+ AND pkgp.package_id = :package_id
</query>
</mode>
-<mode name="repomdgenerator_capability_recommends">
- <query params="channel_id">
- SELECT chpkg.package_id, pkgcap.id, pkgcap.name, pkgcap.version, pkgp.sense
- FROM rhnPackageRecommends pkgp, rhnPackageCapability pkgcap,
- rhnChannelPackage chpkg left join rhnPackageRepodata prd ON prd.package_id =
chpkg.package_id
- WHERE
- chpkg.package_id = pkgp.package_id
- AND pkgp.capability_id = pkgcap.id
- AND chpkg.channel_id = :channel_id
- AND prd.primary_xml is null
- ORDER BY pkgp.package_id
+<mode name="repomdgenerator_capability_recommends"
+ class="com.redhat.rhn.frontend.dto.PackageCapabilityDto">
+ <query params="package_id">
+ SELECT pkgcap.id, pkgcap.name, pkgcap.version, pkgp.sense
+ FROM rhnPackageRecommends pkgp, rhnPackageCapability pkgcap
+ WHERE pkgp.capability_id = pkgcap.id
+ AND pkgp.package_id = :package_id
</query>
</mode>
-<mode name="repomdgenerator_capability_suggests">
- <query params="channel_id">
- SELECT chpkg.package_id, pkgcap.id, pkgcap.name, pkgcap.version, pkgp.sense
- FROM rhnPackageSuggests pkgp, rhnPackageCapability pkgcap,
- rhnChannelPackage chpkg left join rhnPackageRepodata prd ON prd.package_id =
chpkg.package_id
- WHERE
- chpkg.package_id = pkgp.package_id
- AND pkgp.capability_id = pkgcap.id
- AND chpkg.channel_id = :channel_id
- AND prd.primary_xml is null
- ORDER BY pkgp.package_id
+<mode name="repomdgenerator_capability_suggests"
+ class="com.redhat.rhn.frontend.dto.PackageCapabilityDto">
+ <query params="package_id">
+ SELECT pkgcap.id, pkgcap.name, pkgcap.version, pkgp.sense
+ FROM rhnPackageSuggests pkgp, rhnPackageCapability pkgcap
+ WHERE pkgp.capability_id = pkgcap.id
+ AND pkgp.package_id = :package_id
</query>
</mode>
-<mode name="repomdgenerator_capability_supplements">
- <query params="channel_id">
- SELECT chpkg.package_id, pkgcap.id, pkgcap.name, pkgcap.version, pkgp.sense
- FROM rhnPackageSupplements pkgp, rhnPackageCapability pkgcap,
- rhnChannelPackage chpkg left join rhnPackageRepodata prd ON prd.package_id =
chpkg.package_id
- WHERE
- chpkg.package_id = pkgp.package_id
- AND pkgp.capability_id = pkgcap.id
- AND chpkg.channel_id = :channel_id
- AND prd.primary_xml is null
- ORDER BY pkgp.package_id
+<mode name="repomdgenerator_capability_supplements"
+ class="com.redhat.rhn.frontend.dto.PackageCapabilityDto">
+ <query params="package_id">
+ SELECT pkgcap.id, pkgcap.name, pkgcap.version, pkgp.sense
+ FROM rhnPackageSupplements pkgp, rhnPackageCapability pkgcap
+ WHERE pkgp.capability_id = pkgcap.id
+ AND pkgp.package_id = :package_id
</query>
</mode>
-<mode name="repomdgenerator_package_changelog">
- <query params="channel_id">
- SELECT chpkg.package_id, pkglog.time, pkglog.name as author, pkglog.text
- FROM rhnPackageChangeLog pkglog, rhnChannelPackage chpkg
- WHERE
- chpkg.package_id = pkglog.package_id
- AND chpkg.channel_id = :channel_id
- ORDER BY pkglog.package_id
+<mode name="repomdgenerator_package_changelog"
+ class="com.redhat.rhn.frontend.dto.PackageChangelogDto">
+ <query params="package_id">
+ SELECT pkglog.time, pkglog.name as author, pkglog.text
+ FROM rhnPackageChangeLog pkglog
+ WHERE pkglog.package_id = :package_id
</query>
</mode>
diff --git a/java/code/src/com/redhat/rhn/frontend/dto/PackageCapabilityDto.java
b/java/code/src/com/redhat/rhn/frontend/dto/PackageCapabilityDto.java
new file mode 100644
index 0000000..2d3c4dc
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/frontend/dto/PackageCapabilityDto.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright (c) 2009--2011 Red Hat, Inc.
+ *
+ * This software is licensed to you under the GNU General Public License,
+ * version 2 (GPLv2). There is NO WARRANTY for this software, express or
+ * implied, including the implied warranties of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
+ * along with this software; if not, see
+ *
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
+ *
+ * Red Hat trademarks are not licensed under GPLv2. No permission is
+ * granted to use or replicate Red Hat trademarks that are incorporated
+ * in this software or its documentation.
+ */
+package com.redhat.rhn.frontend.dto;
+
+/**
+ * PackageCapabilityDto
+ * @version $Rev$
+ *
+ * DTO for a specific set of package capability data returned from some data source
+ * package queries.
+ */
+public class PackageCapabilityDto extends BaseDto {
+
+ private Long id;
+ private String name;
+ private String version;
+ private Long sense;
+
+
+ /**
+ * @return the id
+ */
+ public Long getId() {
+ return id;
+ }
+
+ /**
+ * @param idIn the id to set
+ */
+ public void setId(Long idIn) {
+ this.id = idIn;
+ }
+
+ /**
+ * @return the name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * @param nameIn the name to set
+ */
+ public void setName(String nameIn) {
+ this.name = nameIn;
+ }
+
+ /**
+ * @return the version
+ */
+ public String getVersion() {
+ return version;
+ }
+
+ /**
+ * @param versionIn the version to set
+ */
+ public void setVersion(String versionIn) {
+ this.version = versionIn;
+ }
+
+ /**
+ * @return the sense
+ */
+ public Long getSense() {
+ return sense;
+ }
+
+ /**
+ * @param senseIn the release to set
+ */
+ public void setSense(Long senseIn) {
+ this.sense = senseIn;
+ }
+}
diff --git a/java/code/src/com/redhat/rhn/frontend/dto/PackageChangelogDto.java
b/java/code/src/com/redhat/rhn/frontend/dto/PackageChangelogDto.java
new file mode 100644
index 0000000..d6a478b
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/frontend/dto/PackageChangelogDto.java
@@ -0,0 +1,89 @@
+/**
+ * Copyright (c) 2009--2011 Red Hat, Inc.
+ *
+ * This software is licensed to you under the GNU General Public License,
+ * version 2 (GPLv2). There is NO WARRANTY for this software, express or
+ * implied, including the implied warranties of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
+ * along with this software; if not, see
+ *
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
+ *
+ * Red Hat trademarks are not licensed under GPLv2. No permission is
+ * granted to use or replicate Red Hat trademarks that are incorporated
+ * in this software or its documentation.
+ */
+package com.redhat.rhn.frontend.dto;
+
+import java.sql.Timestamp;
+
+/**
+ * PackageChangelogDto
+ * @version $Rev$
+ *
+ * DTO for a specific set of package capability data returned from some data source
+ * package queries.
+ */
+public class PackageChangelogDto extends BaseDto {
+
+ private Long id;
+ private String author;
+ private String text;
+ private Timestamp time;
+
+
+ /**
+ * @return the id
+ */
+ public Long getId() {
+ return id;
+ }
+
+ /**
+ * @param idIn the id to set
+ */
+ public void setId(Long idIn) {
+ this.id = idIn;
+ }
+
+ /**
+ * @return the author
+ */
+ public String getAuthor() {
+ return author;
+ }
+
+ /**
+ * @param authorIn the author to set
+ */
+ public void setAuthor(String authorIn) {
+ this.author = authorIn;
+ }
+
+ /**
+ * @return the text
+ */
+ public String getText() {
+ return text;
+ }
+
+ /**
+ * @param textIn the text to set
+ */
+ public void setText(String textIn) {
+ this.text = textIn;
+ }
+
+ /**
+ * @return the time
+ */
+ public Timestamp getTime() {
+ return time;
+ }
+
+ /**
+ * @param timeIn the time to set
+ */
+ public void setTime(Timestamp timeIn) {
+ this.time = timeIn;
+ }
+}
diff --git a/java/code/src/com/redhat/rhn/manager/task/TaskManager.java
b/java/code/src/com/redhat/rhn/manager/task/TaskManager.java
index 75f7d98..f1d94b5 100644
--- a/java/code/src/com/redhat/rhn/manager/task/TaskManager.java
+++ b/java/code/src/com/redhat/rhn/manager/task/TaskManager.java
@@ -18,6 +18,8 @@ import com.redhat.rhn.common.db.datasource.DataResult;
import com.redhat.rhn.common.db.datasource.ModeFactory;
import com.redhat.rhn.common.db.datasource.SelectMode;
import com.redhat.rhn.domain.channel.Channel;
+import com.redhat.rhn.frontend.dto.PackageCapabilityDto;
+import com.redhat.rhn.frontend.dto.PackageChangelogDto;
import com.redhat.rhn.frontend.dto.PackageDto;
import com.redhat.rhn.taskomatic.task.TaskConstants;
@@ -45,12 +47,40 @@ public class TaskManager {
public static Collection<PackageDto> getChannelPackageDtos(Channel channel) {
SelectMode m = ModeFactory.getMode(TaskConstants.MODE_NAME,
TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CHANNEL_PACKAGES);
- Map params = new HashMap();
+ Map<String, Object> params = new HashMap<String, Object>();
params.put("channel_id", channel.getId());
return m.execute(params);
}
/**
+ * Get capabilities of a certain type for a package
+ * @param packageId the package's id
+ * @param query the query to execute
+ * @return a collection of capabilities
+ */
+ public static Collection<PackageCapabilityDto> getPackageCapabilityDtos(
+ Long packageId, String query) {
+ SelectMode m = ModeFactory.getMode(TaskConstants.MODE_NAME, query);
+ Map<String, Object> params = new HashMap<String, Object>();
+ params.put("package_id", packageId);
+ return m.execute(params);
+ }
+
+ /**
+ * Get changelog entries for a particular package
+ * @param packageId the package's id
+ * @return a collection of changelogs
+ */
+ public static Collection<PackageChangelogDto> getPackageChangelogDtos(
+ Long packageId) {
+ SelectMode m = ModeFactory.getMode(TaskConstants.MODE_NAME,
+ TaskConstants.TASK_QUERY_REPOMD_GENERATOR_PACKAGE_CHANGELOG);
+ Map<String, Object> params = new HashMap<String, Object>();
+ params.put("package_id", packageId);
+ return m.execute(params);
+ }
+
+ /**
* Return task status info
* @return task status info
*/
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/repomd/DebPackageWriter.java
b/java/code/src/com/redhat/rhn/taskomatic/task/repomd/DebPackageWriter.java
index e177eec..08fafb4 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/repomd/DebPackageWriter.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/repomd/DebPackageWriter.java
@@ -15,7 +15,9 @@
package com.redhat.rhn.taskomatic.task.repomd;
import com.redhat.rhn.domain.channel.Channel;
+import com.redhat.rhn.frontend.dto.PackageCapabilityDto;
import com.redhat.rhn.frontend.dto.PackageDto;
+import com.redhat.rhn.manager.task.TaskManager;
import com.redhat.rhn.taskomatic.task.TaskConstants;
import org.apache.log4j.Logger;
@@ -26,6 +28,7 @@ import java.io.IOException;
import java.io.File;
import java.io.FileWriter;
import java.io.BufferedWriter;
+import java.util.Collection;
import java.util.zip.GZIPOutputStream;
/**
@@ -38,10 +41,6 @@ public class DebPackageWriter {
private static Logger log = Logger.getLogger(DebPackageWriter.class);
private String filenamePackages = "";
private String channelLabel = "";
- private PackageCapabilityIterator providesIterator;
- private PackageCapabilityIterator requiresIterator;
- private PackageCapabilityIterator conflictsIterator;
- private PackageCapabilityIterator obsoletesIterator;
/**
*
@@ -58,19 +57,6 @@ public class DebPackageWriter {
f.delete();
}
f.createNewFile();
-
- providesIterator = new PackageCapabilityIterator(
- channel,
- TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_PROVIDES);
- requiresIterator = new PackageCapabilityIterator(
- channel,
- TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_REQUIRES);
- conflictsIterator = new PackageCapabilityIterator(
- channel,
- TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_CONFLICTS);
- obsoletesIterator = new PackageCapabilityIterator(
- channel,
- TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_OBSOLETES);
}
catch (Exception e) {
log.debug("Create file Packages failed " + e.toString());
@@ -112,14 +98,22 @@ public class DebPackageWriter {
out.newLine();
// dependencies
- addPackageDepData(out, providesIterator,
- pkgDto.getId().longValue(), "Provides");
- addPackageDepData(out, requiresIterator,
- pkgDto.getId().longValue(), "Depends");
- addPackageDepData(out, conflictsIterator, pkgDto.getId()
- .longValue(), "Conflicts");
- addPackageDepData(out, obsoletesIterator, pkgDto.getId()
- .longValue(), "Replaces");
+ addPackageDepData(
+ out,
+ TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_PROVIDES,
+ pkgDto.getId(), "Provides");
+ addPackageDepData(
+ out,
+ TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_REQUIRES,
+ pkgDto.getId(), "Depends");
+ addPackageDepData(
+ out,
+ TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_CONFLICTS,
+ pkgDto.getId(), "Conflicts");
+ addPackageDepData(
+ out,
+ TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_OBSOLETES,
+ pkgDto.getId(), "Replaces");
out.write("Filename: XMLRPC/GET-REQ/" + channelLabel +
"/getPackage/" +
pkgDto.getName() + "-" + pkgDto.getVersion() +
"-" +
@@ -187,11 +181,13 @@ public class DebPackageWriter {
* @param dep
* dependency info
*/
- private void addPackageDepData(BufferedWriter out,
- PackageCapabilityIterator pkgCapIter, long pkgId, String dep) {
+ private void addPackageDepData(BufferedWriter out, String query,
+ Long pkgId, String dep) {
int count = 0;
+ Collection<PackageCapabilityDto> capabilities = TaskManager
+ .getPackageCapabilityDtos(pkgId, query);
try {
- while (pkgCapIter.hasNextForPackage(pkgId)) {
+ for (PackageCapabilityDto capability : capabilities) {
if (count == 0) {
out.write(dep + ": ");
}
@@ -199,8 +195,8 @@ public class DebPackageWriter {
out.write(", ");
}
count++;
- String name = pkgCapIter.getString("name");
- String version = pkgCapIter.getString("version");
+ String name = capability.getName();
+ String version = capability.getVersion();
out.write(name);
if (version != null && !version.isEmpty()) {
out.write(" (" + version + ")");
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/repomd/FilelistsXmlWriter.java
b/java/code/src/com/redhat/rhn/taskomatic/task/repomd/FilelistsXmlWriter.java
index 0f07702..6ac62c9 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/repomd/FilelistsXmlWriter.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/repomd/FilelistsXmlWriter.java
@@ -17,6 +17,7 @@ package com.redhat.rhn.taskomatic.task.repomd;
import com.redhat.rhn.common.conf.ConfigDefaults;
import com.redhat.rhn.domain.channel.Channel;
+import com.redhat.rhn.frontend.dto.PackageCapabilityDto;
import com.redhat.rhn.frontend.dto.PackageDto;
import com.redhat.rhn.manager.rhnpackage.PackageManager;
import com.redhat.rhn.manager.task.TaskManager;
@@ -28,6 +29,7 @@ import org.xml.sax.SAXException;
import java.io.ByteArrayOutputStream;
import java.io.OutputStream;
import java.io.Writer;
+import java.util.Collection;
/**
*
@@ -36,8 +38,6 @@ import java.io.Writer;
*/
public class FilelistsXmlWriter extends RepomdWriter {
- private PackageCapabilityIterator filelistIterator;
-
/**
*
* @param writer The writer object for filelist xml
@@ -84,8 +84,6 @@ public class FilelistsXmlWriter extends RepomdWriter {
* @param channel channel info
*/
public void begin(Channel channel) {
- filelistIterator = new PackageCapabilityIterator(channel,
- TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_FILES);
SimpleAttributesImpl attr = new SimpleAttributesImpl();
attr.addAttribute("xmlns",
"http://linux.duke.edu/metadata/filelists");
attr.addAttribute("packages",
Integer.toString(channel.getPackageCount()));
@@ -140,10 +138,14 @@ public class FilelistsXmlWriter extends RepomdWriter {
*/
private void addPackageFiles(PackageDto pkgDto,
SimpleContentHandler localHandler) throws SAXException {
- long pkgId = pkgDto.getId().longValue();
- while (filelistIterator.hasNextForPackage(pkgId)) {
- localHandler.addElementWithCharacters("file", sanitize(pkgId,
- filelistIterator.getString("name")));
+ Long pkgId = pkgDto.getId();
+ Collection<PackageCapabilityDto> files = TaskManager
+ .getPackageCapabilityDtos(
+ pkgId,
+ TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_FILES);
+ for (PackageCapabilityDto file : files) {
+ localHandler.addElementWithCharacters("file",
+ sanitize(pkgId, file.getName()));
}
}
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/repomd/OtherXmlWriter.java
b/java/code/src/com/redhat/rhn/taskomatic/task/repomd/OtherXmlWriter.java
index c39a11a..49ad7ee 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/repomd/OtherXmlWriter.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/repomd/OtherXmlWriter.java
@@ -17,11 +17,10 @@ package com.redhat.rhn.taskomatic.task.repomd;
import com.redhat.rhn.common.conf.ConfigDefaults;
import com.redhat.rhn.common.translation.SqlExceptionTranslator;
import com.redhat.rhn.domain.channel.Channel;
+import com.redhat.rhn.frontend.dto.PackageChangelogDto;
import com.redhat.rhn.frontend.dto.PackageDto;
import com.redhat.rhn.manager.rhnpackage.PackageManager;
import com.redhat.rhn.manager.task.TaskManager;
-import com.redhat.rhn.taskomatic.task.TaskConstants;
-
import org.apache.commons.lang.StringUtils;
import org.xml.sax.SAXException;
@@ -29,6 +28,7 @@ import java.io.ByteArrayOutputStream;
import java.io.OutputStream;
import java.io.Writer;
import java.sql.SQLException;
+import java.util.Collection;
/**
*
@@ -37,7 +37,6 @@ import java.sql.SQLException;
*/
public class OtherXmlWriter extends RepomdWriter {
- private PackageCapabilityIterator changeLogIterator;
/**
*
* @param writer The writer object for other.xml
@@ -70,8 +69,6 @@ public class OtherXmlWriter extends RepomdWriter {
* @param channel channel info
*/
public void begin(Channel channel) {
- changeLogIterator = new PackageCapabilityIterator(channel,
- TaskConstants.TASK_QUERY_REPOMD_GENERATOR_PACKAGE_CHANGELOG);
SimpleAttributesImpl attr = new SimpleAttributesImpl();
attr.addAttribute("xmlns",
"http://linux.duke.edu/metadata/other");
attr.addAttribute("packages",
Integer.toString(channel.getPackageCount()));
@@ -143,14 +140,16 @@ public class OtherXmlWriter extends RepomdWriter {
private void addPackageChangelog(PackageDto pkgDto,
SimpleContentHandler tmpHandler) throws SAXException, SQLException {
- long pkgId = pkgDto.getId().longValue();
- while (changeLogIterator.hasNextForPackage(pkgId)) {
- String author = changeLogIterator.getString("author");
- String text = changeLogIterator.getString("text");
+ Long pkgId = pkgDto.getId();
+ Collection<PackageChangelogDto> changelogEntries = TaskManager
+ .getPackageChangelogDtos(pkgId);
+ for (PackageChangelogDto changelogEntry : changelogEntries) {
+ String author = changelogEntry.getAuthor();
+ String text = changelogEntry.getText();
SimpleAttributesImpl attr = new SimpleAttributesImpl();
attr.addAttribute("author", sanitize(pkgId, author));
- attr.addAttribute("date", Long.toString(changeLogIterator.getDate(
- "time").getTime() / 1000));
+ attr.addAttribute("date",
+ Long.toString(changelogEntry.getTime().getTime() / 1000));
tmpHandler.startElement("changelog", attr);
tmpHandler.addCharacters(sanitize(pkgId, text));
tmpHandler.endElement("changelog");
diff --git
a/java/code/src/com/redhat/rhn/taskomatic/task/repomd/PackageCapabilityIterator.java
b/java/code/src/com/redhat/rhn/taskomatic/task/repomd/PackageCapabilityIterator.java
deleted file mode 100644
index cd717c4..0000000
--- a/java/code/src/com/redhat/rhn/taskomatic/task/repomd/PackageCapabilityIterator.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/**
- * Copyright (c) 2009--2012 Red Hat, Inc.
- *
- * This software is licensed to you under the GNU General Public License,
- * version 2 (GPLv2). There is NO WARRANTY for this software, express or
- * implied, including the implied warranties of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
- * along with this software; if not, see
- *
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
- *
- * Red Hat trademarks are not licensed under GPLv2. No permission is
- * granted to use or replicate Red Hat trademarks that are incorporated
- * in this software or its documentation.
- */
-package com.redhat.rhn.taskomatic.task.repomd;
-
-import com.redhat.rhn.common.db.NamedPreparedStatement;
-import com.redhat.rhn.common.db.datasource.ModeFactory;
-import com.redhat.rhn.common.db.datasource.SelectMode;
-import com.redhat.rhn.common.hibernate.HibernateFactory;
-import com.redhat.rhn.domain.channel.Channel;
-import com.redhat.rhn.taskomatic.task.TaskConstants;
-
-import org.apache.log4j.Logger;
-
-import java.math.BigDecimal;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.ResultSetMetaData;
-import java.sql.SQLException;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- *
- * @version $Rev $
- *
- */
-public class PackageCapabilityIterator {
-
- private static Logger log = Logger
- .getLogger(PackageCapabilityIterator.class);
- private static final String PACKAGE_ID = "package_id";
-
- private String queryName;
- private ResultSet rs;
- private ResultSetMetaData rsmd;
- private Map row;
- private boolean goBack;
- private boolean hasMoreRows;
-
- /**
- *
- * @param ch channel
- * @param queryNameIn query name
- */
- public PackageCapabilityIterator(Channel ch, String queryNameIn) {
- queryName = queryNameIn;
- // The following usage of SelectMode is only to fetch the named query
- // from the .xml
- // file and to replace the bind parameters. We will execute the query
- // through raw
- // JDBC since we don't want to keep few million rows of data in memory.
- SelectMode modeIn = ModeFactory.getMode(TaskConstants.MODE_NAME,
- queryName);
- String query = NamedPreparedStatement.replaceBindParams(modeIn.getQuery()
- .getOrigQuery(), new HashMap());
-
- row = new HashMap();
- goBack = false;
- hasMoreRows = true;
- try {
- PreparedStatement ps = HibernateFactory.getSession().connection()
- .prepareStatement(query);
- ps.setLong(1, ch.getId());
- ps.setFetchSize(200);
- rs = ps.executeQuery();
- rsmd = rs.getMetaData();
- }
- catch (SQLException sqle) {
- log.error("SQLexception", sqle);
- }
- }
-
- /**
- *
- * @param pkgId package Id
- * @return Returns the next pkg in the sequence
- */
- public boolean hasNextForPackage(long pkgId) {
- if (!next()) {
- return false;
- }
- long current = getPkgId();
- if (current == pkgId) {
- // We're still on the requested package
- return true;
- }
- if (current > pkgId) {
- // We've past the package boundary, and have already fetched one row
- // from the next package. Please put it back.
- goBack = true;
- return false;
- }
- // At this point we know that we still haven't reached our package.
- // Perform a seek() to the point where our package starts.
- while (current < pkgId) {
- if (!next()) {
- return false;
- }
- current = getPkgId();
- }
- // If no rows can be found for the requested package, return false.
- return current == pkgId;
- }
-
- /**
- *
- * @param key as string
- * @return key as string
- */
- public String getString(String key) {
- return (String) row.get(key.toLowerCase());
- }
-
- /**
- *
- * @param key key as string
- * @return key as bigDecimal number
- */
- public BigDecimal getNumber(String key) {
- return (BigDecimal) row.get(key.toLowerCase());
- }
-
- /**
- *
- * @param key key as string
- * @return key as date
- * @throws SQLException sql exception
- */
- public Date getDate(String key) throws SQLException {
- return rs.getTimestamp(key.toLowerCase());
- }
-
- /**
- *
- * @return package Id
- */
- private long getPkgId() {
- return Long.valueOf(row.get(PACKAGE_ID).toString());
- }
-
- /**
- *
- * @return next element in the row
- */
- private boolean next() {
- if (!hasMoreRows) {
- return false;
- }
- if (goBack) {
- goBack = false;
- return true;
- }
- hasMoreRows = false;
- try {
- hasMoreRows = rs.next();
- }
- catch (SQLException sqle) {
- log.error("SQLexception", sqle);
- }
- if (hasMoreRows) {
- storeRow();
- }
- else {
- // in case iterator has no rows at all, row.get(PACKAGE_ID) would
- // return null,
- // so we can't use getPkgId()
- log.debug("End of resultset for " + queryName + ", " +
- "last package seen: " + row.get(PACKAGE_ID));
- }
- return hasMoreRows;
- }
-
- /**
- * stores the elements to the row object
- */
- private void storeRow() {
- try {
- for (int i = 1; i <= rsmd.getColumnCount(); i++) {
- Object obj = rs.getObject(i);
- String column = rsmd.getColumnName(i);
- row.put(column.toLowerCase(), obj);
- }
- }
- catch (SQLException sqle) {
- log.error("SQLexception", sqle);
- }
- }
-
-}
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/repomd/PrimaryXmlWriter.java
b/java/code/src/com/redhat/rhn/taskomatic/task/repomd/PrimaryXmlWriter.java
index ac20ec8..512520b 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/repomd/PrimaryXmlWriter.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/repomd/PrimaryXmlWriter.java
@@ -17,6 +17,7 @@ package com.redhat.rhn.taskomatic.task.repomd;
import com.redhat.rhn.common.conf.ConfigDefaults;
import com.redhat.rhn.domain.channel.Channel;
+import com.redhat.rhn.frontend.dto.PackageCapabilityDto;
import com.redhat.rhn.frontend.dto.PackageDto;
import com.redhat.rhn.manager.rhnpackage.PackageManager;
import com.redhat.rhn.manager.task.TaskManager;
@@ -27,6 +28,7 @@ import org.xml.sax.SAXException;
import java.io.ByteArrayOutputStream;
import java.io.Writer;
+import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
@@ -37,14 +39,6 @@ import java.util.Map;
*/
public class PrimaryXmlWriter extends RepomdWriter {
- private PackageCapabilityIterator filesIterator;
- private PackageCapabilityIterator providesIterator;
- private PackageCapabilityIterator requiresIterator;
- private PackageCapabilityIterator conflictsIterator;
- private PackageCapabilityIterator obsoletesIterator;
- private PackageCapabilityIterator recommendsIterator;
- private PackageCapabilityIterator suggestsIterator;
- private PackageCapabilityIterator supplementsIterator;
/**
*
* @param writer The writer object for primary xml
@@ -89,22 +83,6 @@ public class PrimaryXmlWriter extends RepomdWriter {
* @param channel channel data
*/
public void begin(Channel channel) {
- filesIterator = new PackageCapabilityIterator(channel,
- TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_FILES);
- providesIterator = new PackageCapabilityIterator(channel,
- TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_PROVIDES);
- requiresIterator = new PackageCapabilityIterator(channel,
- TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_REQUIRES);
- conflictsIterator = new PackageCapabilityIterator(channel,
- TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_CONFLICTS);
- obsoletesIterator = new PackageCapabilityIterator(channel,
- TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_OBSOLETES);
- recommendsIterator = new PackageCapabilityIterator(channel,
- TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_RECOMMENDS);
- suggestsIterator = new PackageCapabilityIterator(channel,
- TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_SUGGESTS);
- supplementsIterator = new PackageCapabilityIterator(channel,
- TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_SUPPLEMENTS);
SimpleAttributesImpl attr = new SimpleAttributesImpl();
attr.addAttribute("xmlns",
"http://linux.duke.edu/metadata/common");
attr.addAttribute("xmlns:rpm",
"http://linux.duke.edu/metadata/rpm");
@@ -264,21 +242,28 @@ public class PrimaryXmlWriter extends RepomdWriter {
*/
private void addPackagePrcoData(PackageDto pkgDto,
SimpleContentHandler localHandler) throws SAXException {
- addPackageDepData(providesIterator, pkgDto.getId().longValue(),
- "provides", localHandler);
- addPackageDepData(requiresIterator, pkgDto.getId().longValue(),
- "requires", localHandler);
- addPackageDepData(conflictsIterator, pkgDto.getId().longValue(),
- "conflicts", localHandler);
- addPackageDepData(obsoletesIterator, pkgDto.getId().longValue(),
- "obsoletes", localHandler);
- addPackageDepData(recommendsIterator, pkgDto.getId().longValue(),
- "recommends", localHandler);
- addPackageDepData(suggestsIterator, pkgDto.getId().longValue(),
- "suggests", localHandler);
- addPackageDepData(supplementsIterator, pkgDto.getId().longValue(),
- "supplements", localHandler);
- }
+ addPackageDepData(
+ TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_PROVIDES,
+ pkgDto.getId(), "provides", localHandler);
+ addPackageDepData(
+ TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_REQUIRES,
+ pkgDto.getId(), "requires", localHandler);
+ addPackageDepData(
+ TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_CONFLICTS,
+ pkgDto.getId(), "conflicts", localHandler);
+ addPackageDepData(
+ TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_OBSOLETES,
+ pkgDto.getId(), "obsoletes", localHandler);
+ addPackageDepData(
+ TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_RECOMMENDS,
+ pkgDto.getId(), "recommends", localHandler);
+ addPackageDepData(
+ TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_SUGGESTS,
+ pkgDto.getId(), "suggests", localHandler);
+ addPackageDepData(
+ TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_SUPPLEMENTS,
+ pkgDto.getId(), "supplements", localHandler);
+ }
/**
*
@@ -287,21 +272,21 @@ public class PrimaryXmlWriter extends RepomdWriter {
* @param dep dependency info
* @throws SAXException sax exception
*/
- private void addPackageDepData(PackageCapabilityIterator pkgCapIter, long pkgId,
- String dep, SimpleContentHandler localHandler) throws SAXException {
+ private void addPackageDepData(String query, Long pkgId,
+ String dep, SimpleContentHandler localHandler) throws SAXException {
+ Collection<PackageCapabilityDto> capabilities = TaskManager
+ .getPackageCapabilityDtos(pkgId, query);
localHandler.startElement("rpm:" + dep);
- while (pkgCapIter.hasNextForPackage(pkgId)) {
+ for (PackageCapabilityDto capability : capabilities) {
SimpleAttributesImpl attr = new SimpleAttributesImpl();
- attr.addAttribute("name", sanitize(pkgId, pkgCapIter
- .getString("name")));
+ attr.addAttribute("name", sanitize(pkgId, capability.getName()));
Map<String, String> evrMap = parseEvr(sanitize(pkgId,
- pkgCapIter
- .getString("version")));
+ capability.getVersion()));
if (evrMap.get("epoch") != null || evrMap.get("version")
!= null ||
evrMap.get("release") != null) {
- attr.addAttribute("flags", getSenseAsString(pkgCapIter
- .getNumber("sense").longValue()));
+ attr.addAttribute("flags",
+ getSenseAsString(capability.getSense()));
}
if (evrMap.get("epoch") != null) {
@@ -330,7 +315,7 @@ public class PrimaryXmlWriter extends RepomdWriter {
* @return package evr object
*/
private static Map<String, String> parseEvr(String evr) {
- Map map = new HashMap<String, String>();
+ Map<String, String> map = new HashMap<String, String>();
map.put("epoch", null);
map.put("version", null);
map.put("release", null);
@@ -368,8 +353,12 @@ public class PrimaryXmlWriter extends RepomdWriter {
private void addEssentialPackageFiles(long pkgId,
SimpleContentHandler hndlr) throws SAXException {
String regex = ".*bin/.*|^/etc/.*|^/usr/lib.sendmail$";
- while (filesIterator.hasNextForPackage(pkgId)) {
- String path = sanitize(pkgId, filesIterator.getString("name"));
+ Collection<PackageCapabilityDto> files = TaskManager
+ .getPackageCapabilityDtos(
+ pkgId,
+ TaskConstants.TASK_QUERY_REPOMD_GENERATOR_CAPABILITY_FILES);
+ for (PackageCapabilityDto file : files) {
+ String path = sanitize(pkgId, file.getName());
if (path.matches(regex)) {
hndlr.addElementWithCharacters("file", path);
}
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/repomd/RepomdWriter.java
b/java/code/src/com/redhat/rhn/taskomatic/task/repomd/RepomdWriter.java
index cc8f7c3..f05894f 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/repomd/RepomdWriter.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/repomd/RepomdWriter.java
@@ -42,8 +42,8 @@ public abstract class RepomdWriter {
static {
CONTROL_CHARS =
"\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008" +
- "\u000B\u000C\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015"
+
-
"\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F";
+ "\u000B\u000C\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015"
+
+
"\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F";
CONTROL_CHARS_REPLACEMENT = StringUtils.repeat(" ",
CONTROL_CHARS.length());
}
@@ -146,7 +146,7 @@ public abstract class RepomdWriter {
* @param pkgId package id
* @param input char input
*/
- protected static String sanitize(long pkgId, String input) {
+ protected static String sanitize(Long pkgId, String input) {
if (StringUtils.containsNone(input, CONTROL_CHARS)) {
return input;
}
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/repomd/RpmRepositoryWriter.java
b/java/code/src/com/redhat/rhn/taskomatic/task/repomd/RpmRepositoryWriter.java
index 99236cf..5cd9c9d 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/repomd/RpmRepositoryWriter.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/repomd/RpmRepositoryWriter.java
@@ -40,10 +40,10 @@ import com.redhat.rhn.manager.rhnpackage.PackageManager;
import com.redhat.rhn.manager.task.TaskManager;
/**
-*
-* @version $Rev $
-*
-*/
+ *
+ * @version $Rev $
+ *
+ */
public class RpmRepositoryWriter extends RepositoryWriter {
private static final String PRIMARY_FILE = "primary.xml.gz.new";
@@ -91,7 +91,7 @@ public class RpmRepositoryWriter extends RepositoryWriter {
PackageManager.createRepoEntrys(channel.getId());
String prefix = mountPoint + File.separator + pathPrefix +
- File.separator + channel.getLabel() + File.separator;
+ File.separator + channel.getLabel() + File.separator;
// we closed the session, so we need to reload the object
channel = (Channel) HibernateFactory.getSession().get(channel.getClass(),
@@ -116,7 +116,7 @@ public class RpmRepositoryWriter extends RepositoryWriter {
String checksumAlgo = this.checksumtype;
if (checksumAlgo.toUpperCase().startsWith("SHA")) {
checksumAlgo = this.checksumtype.substring(0, 3) + "-" +
- this.checksumtype.substring(3);
+ this.checksumtype.substring(3);
}
// translate sha1 to sha for xml repo files
String checksumLabel = this.checksumtype;
diff --git a/java/code/src/com/redhat/rhn/taskomatic/task/repomd/UpdateInfoWriter.java
b/java/code/src/com/redhat/rhn/taskomatic/task/repomd/UpdateInfoWriter.java
index 37ed314..53edf80 100644
--- a/java/code/src/com/redhat/rhn/taskomatic/task/repomd/UpdateInfoWriter.java
+++ b/java/code/src/com/redhat/rhn/taskomatic/task/repomd/UpdateInfoWriter.java
@@ -104,7 +104,7 @@ public class UpdateInfoWriter extends RepomdWriter {
* @throws SAXException
*/
private void addErratum(Errata erratum, Channel channel)
- throws SAXException {
+ throws SAXException {
SimpleAttributesImpl attr = new SimpleAttributesImpl();
attr.addAttribute("from", erratum.getErrataFrom());
attr.addAttribute("status", "final");
@@ -112,9 +112,11 @@ public class UpdateInfoWriter extends RepomdWriter {
attr.addAttribute("version", Long.toString(erratum.getAdvisoryRel()));
handler.startElement("update", attr);
- handler.addElementWithCharacters("id", sanitize(0, erratum
+ handler.addElementWithCharacters("id",
+ sanitize(0L, erratum
.getAdvisoryName()));
- handler.addElementWithCharacters("title", sanitize(0, erratum
+ handler.addElementWithCharacters("title",
+ sanitize(0L, erratum
.getSynopsis()));
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -129,7 +131,8 @@ public class UpdateInfoWriter extends RepomdWriter {
handler.startElement("updated", attr);
handler.endElement("updated");
- handler.addElementWithCharacters("description", sanitize(0, erratum
+ handler.addElementWithCharacters("description",
+ sanitize(0L, erratum
.getDescription()));
addErratumReferences(erratum);
@@ -145,7 +148,7 @@ public class UpdateInfoWriter extends RepomdWriter {
* @throws SAXException
*/
private void addErratumPkgList(Errata erratum, Channel channel)
- throws SAXException {
+ throws SAXException {
handler.startElement("pkglist");
SimpleAttributesImpl attr = new SimpleAttributesImpl();
@@ -190,7 +193,7 @@ public class UpdateInfoWriter extends RepomdWriter {
attr.clear();
attr.addAttribute("type",
- sanitize(pkgId, pkg.getChecksum().getChecksumType().getLabel()));
+ sanitize(pkgId,
pkg.getChecksum().getChecksumType().getLabel()));
handler.startElement("sum", attr);
handler.addCharacters(sanitize(pkgId, pkg.getChecksum().getChecksum()));
handler.endElement("sum");
@@ -223,8 +226,8 @@ public class UpdateInfoWriter extends RepomdWriter {
}
else {
attr.addAttribute("href",
-
"http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=" +
- bug.getId());
+ "http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id="
+
+ bug.getId());
}
attr.addAttribute("id", Long.toString(bug.getId()));
attr.addAttribute("type", "bugzilla");
@@ -242,7 +245,7 @@ public class UpdateInfoWriter extends RepomdWriter {
SimpleAttributesImpl attr = new SimpleAttributesImpl();
attr.addAttribute("href",
"http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=" +
cve);
- attr.addAttribute("id", sanitize(0, cve.getName()));
+ attr.addAttribute("id", sanitize(0L, cve.getName()));
attr.addAttribute("type", "cve");
handler.startElement("reference", attr);
handler.endElement("reference");