[rhq] Branch 'stefan/backingcontent' - modules/plugins
by snegrea
modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/TomcatWarComponentTest.java | 28 +++++-----
1 file changed, 14 insertions(+), 14 deletions(-)
New commits:
commit 37727ec12bb9d3c290cfbecb1d7c14457b9f32c5
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Tue Feb 7 16:39:14 2012 -0600
[BZ 761593] Unit test updates after changes to the SHA256 computation algorithm for exploded deployments.
diff --git a/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/TomcatWarComponentTest.java b/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/TomcatWarComponentTest.java
index f7a395b..79ad510 100644
--- a/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/TomcatWarComponentTest.java
+++ b/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/TomcatWarComponentTest.java
@@ -49,22 +49,22 @@ import org.rhq.core.util.MessageDigestGenerator;
import org.rhq.core.util.ZipUtil;
public class TomcatWarComponentTest {
-
+
@Test
public void testDiscoverZippedDeployment() throws Exception {
//create the object under test as a partial mock because only one
//public method will be tested, while the rest will be mocked.
TomcatWarComponent objectUnderTest = mock(TomcatWarComponent.class);
-
+
//tell the method story as it happens: mock dependencies and configure
//those dependencies to get the method under test to completion.
File fileUsedInTest = new File(this.getClass().getResource("/sampleWithManifest.war").getFile());
-
+
@SuppressWarnings("unchecked")
ResourceContext<TomcatVHostComponent> mockResourceContext = mock(ResourceContext.class);
when(objectUnderTest.getResourceContext()).thenReturn(mockResourceContext);
Configuration mockConfiguration = mock(Configuration.class);
- when(mockResourceContext.getPluginConfiguration()).thenReturn(mockConfiguration);
+ when(mockResourceContext.getPluginConfiguration()).thenReturn(mockConfiguration);
when(mockConfiguration.getSimpleValue(eq("filename"), isNull(String.class))).thenReturn(
fileUsedInTest.getAbsolutePath());
@@ -85,10 +85,10 @@ public class TomcatWarComponentTest {
if (actualResourcePackageDetails.getInstallationTimestamp() > System.currentTimeMillis()) {
Assert.fail("Timestamp is not in the past.");
}
-
+
MessageDigestGenerator digest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
String expectedSha256 = digest.calcDigestString(fileUsedInTest);
-
+
Assert.assertEquals(actualResourcePackageDetails.getSHA256(), expectedSha256);
Assert.assertEquals(actualResourcePackageDetails.getDisplayVersion(), null);
@@ -105,14 +105,14 @@ public class TomcatWarComponentTest {
String[] testArchiveFiles = new String[] { "/sampleWithManifest.war", "/sampleWithoutManifest.war",
"/sampleWithImplementation.war", "/sampleWithSpecification.war",
"/sampleWithSpecificationImplementation.war" };
-
+
Map<String, String> expectedSha256 = new HashMap<String, String>();
- expectedSha256.put(testArchiveFiles[0], "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
- expectedSha256.put(testArchiveFiles[1], "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
- expectedSha256.put(testArchiveFiles[2], "c72750a8952fcd50ee3e9dce8766a75aecdc57f4b654eca5787d3fa12dc78a55");
- expectedSha256.put(testArchiveFiles[3], "968382bcd2f7550c2785a622c24671feaed4cca033bd9fe17665d9d66d8d3646");
- expectedSha256.put(testArchiveFiles[4], "a96d9a054ead08575c11a79ec51ac0174da5ab02d213c008d248b6a59da6dc53");
-
+ expectedSha256.put(testArchiveFiles[0], "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f");
+ expectedSha256.put(testArchiveFiles[1], "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b");
+ expectedSha256.put(testArchiveFiles[2], "eebb2c1c171af85fff62ae290206bb792c3d4c5becf58fa677b156f808cf3fe5");
+ expectedSha256.put(testArchiveFiles[3], "3b2bf1cc3981413454ab4c62b9cad58e81609c3271d39aacbbfd8814585f9d65");
+ expectedSha256.put(testArchiveFiles[4], "98c945496e198f75f2653ccf2b9fd9d12c20cd26e2ad13146dcb53f8b8a567fc");
+
Map<String, String> expectedDisplayVersion = new HashMap<String, String>();
expectedDisplayVersion.put(testArchiveFiles[0], null);
expectedDisplayVersion.put(testArchiveFiles[1], null);
@@ -183,7 +183,7 @@ public class TomcatWarComponentTest {
deleteRecursive(deploymentFolderUsedInTest);
}
}
-
+
@Test
public void testDiscoverNoFileOnDisk() throws Exception {
//create the object under test as a partial mock because only one
12 years, 4 months
[rhq] 3 commits - modules/plugins
by snegrea
modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/FileContentDelegate.java | 17 +++++++++-
modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/FileContentDelegateTest.java | 17 ++++------
modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java | 17 +++++++++-
modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/FileContentDelegateTest.java | 9 ++---
modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java | 17 +++++++++-
modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/FileContentDelegateTest.java | 8 ++--
6 files changed, 64 insertions(+), 21 deletions(-)
New commits:
commit 74baba517d2755b524e112df9fafd5b7d7ac2ddd
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Tue Feb 7 15:51:51 2012 -0600
[BZ 767393] SHA256 computation is now identical irrespective of default operating system implementation for list files & sorting.
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/FileContentDelegate.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/FileContentDelegate.java
index 915374a..46c6522 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/FileContentDelegate.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/FileContentDelegate.java
@@ -29,6 +29,8 @@ import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.util.Arrays;
+import java.util.Comparator;
import java.util.Set;
import java.util.Stack;
import java.util.jar.Attributes;
@@ -264,7 +266,20 @@ public class FileContentDelegate {
Stack<File> unvisitedFolders = new Stack<File>();
unvisitedFolders.add(deploymentDirectory);
while (!unvisitedFolders.empty()) {
- for (File file : unvisitedFolders.pop().listFiles()) {
+ File[] files = unvisitedFolders.pop().listFiles();
+ Arrays.sort(files, new Comparator<File>() {
+ public int compare(File f1, File f2) {
+ try {
+ return f1.getCanonicalPath().compareTo(f2.getCanonicalPath());
+ } catch (IOException e) {
+ //do nothing if the sort fails at this point
+ }
+
+ return 0;
+ }
+ });
+
+ for (File file : files) {
if (file.isDirectory()) {
unvisitedFolders.add(file);
} else {
diff --git a/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/FileContentDelegateTest.java b/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/FileContentDelegateTest.java
index 0434ec0..69d5760 100644
--- a/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/FileContentDelegateTest.java
+++ b/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/FileContentDelegateTest.java
@@ -69,8 +69,8 @@ public class FileContentDelegateTest {
String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
- Assert.assertEquals(actualShaReturned, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
+ Assert.assertEquals(actualSha256Attribute, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f");
+ Assert.assertEquals(actualShaReturned, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f");
//cleanup resources created for this test
deleteRecursive(deploymentDirectory);
@@ -104,8 +104,8 @@ public class FileContentDelegateTest {
String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
- Assert.assertEquals(actualShaReturned, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
+ Assert.assertEquals(actualSha256Attribute, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f");
+ Assert.assertEquals(actualShaReturned, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f");
deleteRecursive(deploymentDirectory);
}
@@ -142,8 +142,8 @@ public class FileContentDelegateTest {
String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
- Assert.assertEquals(actualShaReturned, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
+ Assert.assertEquals(actualSha256Attribute, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b");
+ Assert.assertEquals(actualShaReturned, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b");
deleteRecursive(deploymentDirectory);
}
@@ -175,8 +175,8 @@ public class FileContentDelegateTest {
String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
- Assert.assertEquals(actualShaReturned, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
+ Assert.assertEquals(actualSha256Attribute, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b");
+ Assert.assertEquals(actualShaReturned, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b");
//cleanup resources created for this test
deleteRecursive(deploymentDirectory);
@@ -212,7 +212,6 @@ public class FileContentDelegateTest {
Assert.assertTrue(deploymentDirectory.isDirectory(), "Deployment directory is no longer a directory!!");
Assert.assertFalse(deploymentFile.isDirectory(), "Deployment was exploded when it should not have been.");
-
MessageDigestGenerator digest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
String expectedSHA256 = digest.calcDigestString(sampleWithoutManifestWar);
String actualSHA256OfDeployment = digest.calcDigestString(deploymentFile);
commit 33fa19623d9129416051cbb3be6857e290572f9c
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Tue Feb 7 15:51:22 2012 -0600
[BZ 767247] SHA256 computation is now identical irrespective of default operating system implementation for list files & sorting.
diff --git a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java
index 499d5a5..f82b5ec 100644
--- a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java
+++ b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java
@@ -29,6 +29,8 @@ import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.util.Arrays;
+import java.util.Comparator;
import java.util.Set;
import java.util.Stack;
import java.util.jar.Attributes;
@@ -249,7 +251,20 @@ public class FileContentDelegate {
Stack<File> unvisitedFolders = new Stack<File>();
unvisitedFolders.add(deploymentDirectory);
while (!unvisitedFolders.empty()) {
- for (File file : unvisitedFolders.pop().listFiles()) {
+ File[] files = unvisitedFolders.pop().listFiles();
+ Arrays.sort(files, new Comparator<File>() {
+ public int compare(File f1, File f2) {
+ try {
+ return f1.getCanonicalPath().compareTo(f2.getCanonicalPath());
+ } catch (IOException e) {
+ //do nothing if the sort fails at this point
+ }
+
+ return 0;
+ }
+ });
+
+ for (File file : files) {
if (file.isDirectory()) {
unvisitedFolders.add(file);
} else {
diff --git a/modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/FileContentDelegateTest.java b/modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/FileContentDelegateTest.java
index b3e7b93..6e9e355 100644
--- a/modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/FileContentDelegateTest.java
+++ b/modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/FileContentDelegateTest.java
@@ -107,8 +107,8 @@ public class FileContentDelegateTest {
String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
- Assert.assertEquals(actualShaReturned, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
+ Assert.assertEquals(actualSha256Attribute, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f");
+ Assert.assertEquals(actualShaReturned, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f");
deleteRecursive(deploymentDirectory);
}
@@ -181,8 +181,8 @@ public class FileContentDelegateTest {
String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
- Assert.assertEquals(actualShaReturned, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
+ Assert.assertEquals(actualSha256Attribute, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b");
+ Assert.assertEquals(actualShaReturned, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b");
//cleanup resources created for this test
deleteRecursive(deploymentDirectory);
@@ -218,7 +218,6 @@ public class FileContentDelegateTest {
Assert.assertTrue(deploymentDirectory.isDirectory(), "Deployment directory is no longer a directory!!");
Assert.assertFalse(deploymentFile.isDirectory(), "Deployment was exploded when it should not have been.");
-
MessageDigestGenerator digest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
String expectedSHA256 = digest.calcDigestString(sampleWithoutManifestWar);
String actualSHA256OfDeployment = digest.calcDigestString(deploymentFile);
commit 9c318d42bbc4f80305afb1fa0e351b38bdbd80ba
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Tue Feb 7 15:49:12 2012 -0600
[BZ 761593] SHA256 computation is now identical irrespective of default operating system implementation for list files & sorting.
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java
index 6f914db..a4a5560 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java
@@ -29,6 +29,8 @@ import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.util.Arrays;
+import java.util.Comparator;
import java.util.Set;
import java.util.Stack;
import java.util.jar.Attributes;
@@ -213,7 +215,20 @@ public class FileContentDelegate {
Stack<File> unvisitedFolders = new Stack<File>();
unvisitedFolders.add(deploymentDirectory);
while (!unvisitedFolders.empty()) {
- for (File file : unvisitedFolders.pop().listFiles()) {
+ File[] files = unvisitedFolders.pop().listFiles();
+ Arrays.sort(files, new Comparator<File>() {
+ public int compare(File f1, File f2) {
+ try {
+ return f1.getCanonicalPath().compareTo(f2.getCanonicalPath());
+ } catch (IOException e) {
+ //do nothing if the sort fails at this point
+ }
+
+ return 0;
+ }
+ });
+
+ for (File file : files) {
if (file.isDirectory()) {
unvisitedFolders.add(file);
} else {
diff --git a/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/FileContentDelegateTest.java b/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/FileContentDelegateTest.java
index 9a2dc49..0536c35 100644
--- a/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/FileContentDelegateTest.java
+++ b/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/FileContentDelegateTest.java
@@ -98,8 +98,8 @@ public class FileContentDelegateTest {
String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
- Assert.assertEquals(actualShaReturned, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
+ Assert.assertEquals(actualSha256Attribute, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f");
+ Assert.assertEquals(actualShaReturned, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f");
deleteRecursive(deploymentDirectory);
}
@@ -167,8 +167,8 @@ public class FileContentDelegateTest {
String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
- Assert.assertEquals(actualShaReturned, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
+ Assert.assertEquals(actualSha256Attribute, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b");
+ Assert.assertEquals(actualShaReturned, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b");
//cleanup resources created for this test
deleteRecursive(deploymentDirectory);
12 years, 4 months
[rhq] Branch 'stefan/backingcontent' - 3 commits - modules/plugins
by snegrea
modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/FileContentDelegate.java | 17 +++++++++-
modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/FileContentDelegateTest.java | 17 ++++------
modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java | 17 +++++++++-
modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/FileContentDelegateTest.java | 9 ++---
modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java | 17 +++++++++-
modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/FileContentDelegateTest.java | 8 ++--
6 files changed, 64 insertions(+), 21 deletions(-)
New commits:
commit d763dff0c06d80f15e6cee06daa884453039ece4
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Tue Feb 7 15:51:51 2012 -0600
[BZ 767393] SHA256 computation is now identical irrespective of default operating system implementation for list files & sorting.
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/FileContentDelegate.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/FileContentDelegate.java
index 915374a..46c6522 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/FileContentDelegate.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/FileContentDelegate.java
@@ -29,6 +29,8 @@ import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.util.Arrays;
+import java.util.Comparator;
import java.util.Set;
import java.util.Stack;
import java.util.jar.Attributes;
@@ -264,7 +266,20 @@ public class FileContentDelegate {
Stack<File> unvisitedFolders = new Stack<File>();
unvisitedFolders.add(deploymentDirectory);
while (!unvisitedFolders.empty()) {
- for (File file : unvisitedFolders.pop().listFiles()) {
+ File[] files = unvisitedFolders.pop().listFiles();
+ Arrays.sort(files, new Comparator<File>() {
+ public int compare(File f1, File f2) {
+ try {
+ return f1.getCanonicalPath().compareTo(f2.getCanonicalPath());
+ } catch (IOException e) {
+ //do nothing if the sort fails at this point
+ }
+
+ return 0;
+ }
+ });
+
+ for (File file : files) {
if (file.isDirectory()) {
unvisitedFolders.add(file);
} else {
diff --git a/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/FileContentDelegateTest.java b/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/FileContentDelegateTest.java
index 0434ec0..69d5760 100644
--- a/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/FileContentDelegateTest.java
+++ b/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/FileContentDelegateTest.java
@@ -69,8 +69,8 @@ public class FileContentDelegateTest {
String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
- Assert.assertEquals(actualShaReturned, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
+ Assert.assertEquals(actualSha256Attribute, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f");
+ Assert.assertEquals(actualShaReturned, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f");
//cleanup resources created for this test
deleteRecursive(deploymentDirectory);
@@ -104,8 +104,8 @@ public class FileContentDelegateTest {
String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
- Assert.assertEquals(actualShaReturned, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
+ Assert.assertEquals(actualSha256Attribute, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f");
+ Assert.assertEquals(actualShaReturned, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f");
deleteRecursive(deploymentDirectory);
}
@@ -142,8 +142,8 @@ public class FileContentDelegateTest {
String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
- Assert.assertEquals(actualShaReturned, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
+ Assert.assertEquals(actualSha256Attribute, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b");
+ Assert.assertEquals(actualShaReturned, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b");
deleteRecursive(deploymentDirectory);
}
@@ -175,8 +175,8 @@ public class FileContentDelegateTest {
String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
- Assert.assertEquals(actualShaReturned, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
+ Assert.assertEquals(actualSha256Attribute, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b");
+ Assert.assertEquals(actualShaReturned, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b");
//cleanup resources created for this test
deleteRecursive(deploymentDirectory);
@@ -212,7 +212,6 @@ public class FileContentDelegateTest {
Assert.assertTrue(deploymentDirectory.isDirectory(), "Deployment directory is no longer a directory!!");
Assert.assertFalse(deploymentFile.isDirectory(), "Deployment was exploded when it should not have been.");
-
MessageDigestGenerator digest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
String expectedSHA256 = digest.calcDigestString(sampleWithoutManifestWar);
String actualSHA256OfDeployment = digest.calcDigestString(deploymentFile);
commit fd43affcde7dc631a71002b5d2e0979a7db5d6e1
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Tue Feb 7 15:51:22 2012 -0600
[BZ 767247] SHA256 computation is now identical irrespective of default operating system implementation for list files & sorting.
diff --git a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java
index 499d5a5..f82b5ec 100644
--- a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java
+++ b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java
@@ -29,6 +29,8 @@ import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.util.Arrays;
+import java.util.Comparator;
import java.util.Set;
import java.util.Stack;
import java.util.jar.Attributes;
@@ -249,7 +251,20 @@ public class FileContentDelegate {
Stack<File> unvisitedFolders = new Stack<File>();
unvisitedFolders.add(deploymentDirectory);
while (!unvisitedFolders.empty()) {
- for (File file : unvisitedFolders.pop().listFiles()) {
+ File[] files = unvisitedFolders.pop().listFiles();
+ Arrays.sort(files, new Comparator<File>() {
+ public int compare(File f1, File f2) {
+ try {
+ return f1.getCanonicalPath().compareTo(f2.getCanonicalPath());
+ } catch (IOException e) {
+ //do nothing if the sort fails at this point
+ }
+
+ return 0;
+ }
+ });
+
+ for (File file : files) {
if (file.isDirectory()) {
unvisitedFolders.add(file);
} else {
diff --git a/modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/FileContentDelegateTest.java b/modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/FileContentDelegateTest.java
index b3e7b93..6e9e355 100644
--- a/modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/FileContentDelegateTest.java
+++ b/modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/FileContentDelegateTest.java
@@ -107,8 +107,8 @@ public class FileContentDelegateTest {
String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
- Assert.assertEquals(actualShaReturned, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
+ Assert.assertEquals(actualSha256Attribute, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f");
+ Assert.assertEquals(actualShaReturned, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f");
deleteRecursive(deploymentDirectory);
}
@@ -181,8 +181,8 @@ public class FileContentDelegateTest {
String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
- Assert.assertEquals(actualShaReturned, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
+ Assert.assertEquals(actualSha256Attribute, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b");
+ Assert.assertEquals(actualShaReturned, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b");
//cleanup resources created for this test
deleteRecursive(deploymentDirectory);
@@ -218,7 +218,6 @@ public class FileContentDelegateTest {
Assert.assertTrue(deploymentDirectory.isDirectory(), "Deployment directory is no longer a directory!!");
Assert.assertFalse(deploymentFile.isDirectory(), "Deployment was exploded when it should not have been.");
-
MessageDigestGenerator digest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
String expectedSHA256 = digest.calcDigestString(sampleWithoutManifestWar);
String actualSHA256OfDeployment = digest.calcDigestString(deploymentFile);
commit 408a35f00c360bdaa0fd0597efff78d62e91a7d9
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Tue Feb 7 15:49:12 2012 -0600
[BZ 761593] SHA256 computation is now identical irrespective of default operating system implementation for list files & sorting.
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java
index 6f914db..a4a5560 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java
@@ -29,6 +29,8 @@ import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.util.Arrays;
+import java.util.Comparator;
import java.util.Set;
import java.util.Stack;
import java.util.jar.Attributes;
@@ -213,7 +215,20 @@ public class FileContentDelegate {
Stack<File> unvisitedFolders = new Stack<File>();
unvisitedFolders.add(deploymentDirectory);
while (!unvisitedFolders.empty()) {
- for (File file : unvisitedFolders.pop().listFiles()) {
+ File[] files = unvisitedFolders.pop().listFiles();
+ Arrays.sort(files, new Comparator<File>() {
+ public int compare(File f1, File f2) {
+ try {
+ return f1.getCanonicalPath().compareTo(f2.getCanonicalPath());
+ } catch (IOException e) {
+ //do nothing if the sort fails at this point
+ }
+
+ return 0;
+ }
+ });
+
+ for (File file : files) {
if (file.isDirectory()) {
unvisitedFolders.add(file);
} else {
diff --git a/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/FileContentDelegateTest.java b/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/FileContentDelegateTest.java
index 9a2dc49..0536c35 100644
--- a/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/FileContentDelegateTest.java
+++ b/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/FileContentDelegateTest.java
@@ -98,8 +98,8 @@ public class FileContentDelegateTest {
String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
- Assert.assertEquals(actualShaReturned, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
+ Assert.assertEquals(actualSha256Attribute, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f");
+ Assert.assertEquals(actualShaReturned, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f");
deleteRecursive(deploymentDirectory);
}
@@ -167,8 +167,8 @@ public class FileContentDelegateTest {
String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
- Assert.assertEquals(actualShaReturned, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
+ Assert.assertEquals(actualSha256Attribute, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b");
+ Assert.assertEquals(actualShaReturned, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b");
//cleanup resources created for this test
deleteRecursive(deploymentDirectory);
12 years, 4 months
[rhq] Branch 'rc/jon3.0.1.GA' - modules/cli-tests modules/common modules/core modules/enterprise modules/helpers modules/integration-tests modules/plugins modules/pom.xml modules/test-utils pom.xml
by rhqci
modules/cli-tests/pom.xml | 2 +-
modules/common/ant-bundle/pom.xml | 2 +-
modules/common/drift/pom.xml | 2 +-
modules/common/filetemplate-bundle/pom.xml | 2 +-
modules/common/jboss-as/pom.xml | 2 +-
modules/common/pom.xml | 2 +-
modules/core/client-api/pom.xml | 2 +-
modules/core/comm-api/pom.xml | 2 +-
modules/core/dbutils/pom.xml | 2 +-
modules/core/domain/pom.xml | 2 +-
modules/core/gui/pom.xml | 2 +-
modules/core/native-system/pom.xml | 2 +-
modules/core/plugin-api/pom.xml | 2 +-
modules/core/plugin-container/pom.xml | 2 +-
modules/core/plugin-validator/pom.xml | 2 +-
modules/core/pom.xml | 2 +-
modules/core/util/pom.xml | 2 +-
modules/enterprise/agent/pom.xml | 2 +-
modules/enterprise/agentupdate/pom.xml | 2 +-
modules/enterprise/binding/pom.xml | 4 ++--
modules/enterprise/comm/pom.xml | 2 +-
modules/enterprise/gui/base-perspective-jar/pom.xml | 2 +-
modules/enterprise/gui/base-perspective-war/pom.xml | 2 +-
modules/enterprise/gui/content_http-war/pom.xml | 2 +-
modules/enterprise/gui/coregui/pom.xml | 2 +-
modules/enterprise/gui/installer-war/pom.xml | 2 +-
modules/enterprise/gui/pom.xml | 2 +-
modules/enterprise/gui/portal-war/pom.xml | 2 +-
modules/enterprise/gui/rest-war/pom.xml | 2 +-
modules/enterprise/pom.xml | 2 +-
modules/enterprise/remoting/cli/pom.xml | 2 +-
modules/enterprise/remoting/client-api/pom.xml | 2 +-
modules/enterprise/remoting/client-deps/pom.xml | 2 +-
modules/enterprise/remoting/pom.xml | 2 +-
modules/enterprise/remoting/webservices/pom.xml | 2 +-
modules/enterprise/server/client-api/pom.xml | 4 ++--
modules/enterprise/server/container-lib/pom.xml | 2 +-
modules/enterprise/server/container/pom.xml | 2 +-
modules/enterprise/server/ear/pom.xml | 2 +-
modules/enterprise/server/itests/pom.xml | 2 +-
modules/enterprise/server/jar/pom.xml | 2 +-
modules/enterprise/server/plugins/alert-cli/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-email/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-irc/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-log4j/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-microblog/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-mobicents/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-operations/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-roles/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-snmp/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-subject/pom.xml | 4 ++--
modules/enterprise/server/plugins/ant-bundle/pom.xml | 2 +-
modules/enterprise/server/plugins/cobbler/pom.xml | 4 ++--
modules/enterprise/server/plugins/disk/pom.xml | 2 +-
modules/enterprise/server/plugins/drift-rhq/pom.xml | 2 +-
modules/enterprise/server/plugins/filetemplate-bundle/pom.xml | 2 +-
modules/enterprise/server/plugins/groovy-script/pom.xml | 4 ++--
modules/enterprise/server/plugins/jboss-software/pom.xml | 2 +-
modules/enterprise/server/plugins/packagetype-cli/pom.xml | 4 ++--
modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml | 2 +-
modules/enterprise/server/plugins/perspectives/core/pom.xml | 2 +-
modules/enterprise/server/plugins/pom.xml | 2 +-
modules/enterprise/server/plugins/rhnhosted/pom.xml | 2 +-
modules/enterprise/server/plugins/url/pom.xml | 2 +-
modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml | 2 +-
modules/enterprise/server/plugins/yum/pom.xml | 2 +-
modules/enterprise/server/pom.xml | 2 +-
modules/enterprise/server/safe-invoker/pom.xml | 2 +-
modules/enterprise/server/sars/agent-sar/pom.xml | 2 +-
modules/enterprise/server/sars/pom.xml | 2 +-
modules/enterprise/server/xml-schemas/pom.xml | 2 +-
modules/helpers/bundleGen/pom.xml | 4 ++--
modules/helpers/perftest-support/pom.xml | 4 ++--
modules/helpers/pom.xml | 2 +-
modules/helpers/rtfilter/pom.xml | 2 +-
modules/integration-tests/apache-plugin-test/pom.xml | 2 +-
modules/integration-tests/jboss-as-7-plugin-test/pom.xml | 2 +-
modules/integration-tests/jndi-access/jndi-access-test/pom.xml | 2 +-
modules/integration-tests/jndi-access/pom.xml | 2 +-
modules/integration-tests/jndi-access/remote-server/pom.xml | 2 +-
modules/integration-tests/pom.xml | 2 +-
modules/plugins/aliases/pom.xml | 2 +-
modules/plugins/ant-bundle/pom.xml | 2 +-
modules/plugins/apache/pom.xml | 2 +-
modules/plugins/augeas/pom.xml | 2 +-
modules/plugins/byteman/pom.xml | 2 +-
modules/plugins/cobbler/pom.xml | 2 +-
modules/plugins/cron/pom.xml | 2 +-
modules/plugins/database/pom.xml | 2 +-
modules/plugins/filetemplate-bundle/pom.xml | 2 +-
modules/plugins/grub/pom.xml | 2 +-
modules/plugins/hadoop/pom.xml | 2 +-
modules/plugins/hibernate/pom.xml | 2 +-
modules/plugins/hosts/pom.xml | 2 +-
modules/plugins/hudson/pom.xml | 4 ++--
modules/plugins/iis/pom.xml | 2 +-
modules/plugins/irc/pom.xml | 2 +-
modules/plugins/jboss-as-5/pom.xml | 2 +-
modules/plugins/jboss-as-7/pom.xml | 2 +-
modules/plugins/jboss-as/pom.xml | 2 +-
modules/plugins/jboss-cache-v3/pom.xml | 2 +-
modules/plugins/jboss-cache/pom.xml | 2 +-
modules/plugins/jmx/pom.xml | 2 +-
modules/plugins/kickstart/pom.xml | 2 +-
modules/plugins/mod-cluster/pom.xml | 2 +-
modules/plugins/mysql/pom.xml | 2 +-
modules/plugins/netservices/pom.xml | 2 +-
modules/plugins/oracle/pom.xml | 2 +-
modules/plugins/pattern-generator/pom.xml | 2 +-
modules/plugins/perftest/pom.xml | 2 +-
modules/plugins/platform/pom.xml | 2 +-
modules/plugins/pom.xml | 2 +-
modules/plugins/postfix/pom.xml | 2 +-
modules/plugins/postgres/pom.xml | 2 +-
modules/plugins/rhq-agent/pom.xml | 2 +-
modules/plugins/rhq-server/pom.xml | 2 +-
modules/plugins/samba/pom.xml | 2 +-
modules/plugins/script/pom.xml | 2 +-
modules/plugins/script2/pom.xml | 2 +-
modules/plugins/snmptrapd/pom.xml | 2 +-
modules/plugins/sshd/pom.xml | 2 +-
modules/plugins/sudoers/pom.xml | 2 +-
modules/plugins/tomcat/pom.xml | 2 +-
modules/plugins/twitter/pom.xml | 2 +-
modules/plugins/validate-all-plugins/pom.xml | 2 +-
modules/plugins/virt/pom.xml | 2 +-
modules/pom.xml | 2 +-
modules/test-utils/pom.xml | 2 +-
pom.xml | 2 +-
129 files changed, 147 insertions(+), 147 deletions(-)
New commits:
commit fada3694d79eaf71903ee7b09ca6cf84673bfa23
Author: Hudson <jboss-qa-internal(a)redhat.com>
Date: Tue Feb 7 13:44:36 2012 -0500
development RHQ_4.2.0.JON.3.0.2-SNAPSHOT
diff --git a/modules/cli-tests/pom.xml b/modules/cli-tests/pom.xml
index 3167d39..0991c91 100644
--- a/modules/cli-tests/pom.xml
+++ b/modules/cli-tests/pom.xml
@@ -8,7 +8,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index 1e93560..1370a4c 100644
--- a/modules/common/ant-bundle/pom.xml
+++ b/modules/common/ant-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/drift/pom.xml b/modules/common/drift/pom.xml
index 198d9bc..c41be24 100644
--- a/modules/common/drift/pom.xml
+++ b/modules/common/drift/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<artifactId>rhq-common-drift</artifactId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index 972a5a2..0c28ff6 100644
--- a/modules/common/filetemplate-bundle/pom.xml
+++ b/modules/common/filetemplate-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<artifactId>rhq-filetemplate-bundle-common</artifactId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 91f9d94..1b56b75 100644
--- a/modules/common/jboss-as/pom.xml
+++ b/modules/common/jboss-as/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<artifactId>rhq-jboss-as-common</artifactId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index 262a9f7..5388ea4 100644
--- a/modules/common/pom.xml
+++ b/modules/common/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index 2f2f2b3..a228e4f 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index 5442ad3..e834756 100644
--- a/modules/core/comm-api/pom.xml
+++ b/modules/core/comm-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index dbeb7ef..83a5f8d 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index ed95c9c..88e0649 100644
--- a/modules/core/domain/pom.xml
+++ b/modules/core/domain/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<artifactId>rhq-core-domain</artifactId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index 848940f..3be4240 100644
--- a/modules/core/gui/pom.xml
+++ b/modules/core/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index c741bd1..a693dbe 100644
--- a/modules/core/native-system/pom.xml
+++ b/modules/core/native-system/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index 1c16c09..56fd6e6 100644
--- a/modules/core/plugin-api/pom.xml
+++ b/modules/core/plugin-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index a8475ca..352de5e 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<artifactId>rhq-core-plugin-container</artifactId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index 1ce1e2c..81685e7 100644
--- a/modules/core/plugin-validator/pom.xml
+++ b/modules/core/plugin-validator/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index 4aa616d..33d49ed 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index eaa3727..3e6ae6e 100644
--- a/modules/core/util/pom.xml
+++ b/modules/core/util/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<artifactId>rhq-core-util</artifactId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index 93a6f6b..2978ebb 100644
--- a/modules/enterprise/agent/pom.xml
+++ b/modules/enterprise/agent/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index 24c2281..f845ef7 100644
--- a/modules/enterprise/agentupdate/pom.xml
+++ b/modules/enterprise/agentupdate/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/binding/pom.xml b/modules/enterprise/binding/pom.xml
index dca4aae..488c94f 100644
--- a/modules/enterprise/binding/pom.xml
+++ b/modules/enterprise/binding/pom.xml
@@ -3,10 +3,10 @@
<parent>
<artifactId>rhq-enterprise-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<artifactId>rhq-script-bindings</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Script Bindings</name>
<description>Abstraction of different facilities and default configurations for script bindings</description>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index be3e3a8..37fab92 100644
--- a/modules/enterprise/comm/pom.xml
+++ b/modules/enterprise/comm/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index 7db2560..32b7c7c 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index a2ad386..114b7d1 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index f1af689..9ffc883 100644
--- a/modules/enterprise/gui/content_http-war/pom.xml
+++ b/modules/enterprise/gui/content_http-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-gui-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index b202e1f..15ebbec 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index 3d1c787..2811c07 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index 5def783..1c4c70c 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -8,7 +8,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index d840e09..79ea577 100644
--- a/modules/enterprise/gui/portal-war/pom.xml
+++ b/modules/enterprise/gui/portal-war/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/rest-war/pom.xml b/modules/enterprise/gui/rest-war/pom.xml
index dc59c86..c8b2614 100644
--- a/modules/enterprise/gui/rest-war/pom.xml
+++ b/modules/enterprise/gui/rest-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index 638f32c..f83b2e6 100644
--- a/modules/enterprise/pom.xml
+++ b/modules/enterprise/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index 57135c2..e2db1d4 100644
--- a/modules/enterprise/remoting/cli/pom.xml
+++ b/modules/enterprise/remoting/cli/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index ebb80cc..4c9f8c2 100644
--- a/modules/enterprise/remoting/client-api/pom.xml
+++ b/modules/enterprise/remoting/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/client-deps/pom.xml b/modules/enterprise/remoting/client-deps/pom.xml
index 5db71e7..5afc82a 100644
--- a/modules/enterprise/remoting/client-deps/pom.xml
+++ b/modules/enterprise/remoting/client-deps/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index a9be89d..4cd7b22 100644
--- a/modules/enterprise/remoting/pom.xml
+++ b/modules/enterprise/remoting/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index 049e375..47bfa9d 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/client-api/pom.xml b/modules/enterprise/server/client-api/pom.xml
index dbba668..8a25f9d 100644
--- a/modules/enterprise/server/client-api/pom.xml
+++ b/modules/enterprise/server/client-api/pom.xml
@@ -5,13 +5,13 @@
<parent>
<artifactId>rhq-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-server-client-api</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server Client API</name>
<description>The implementation of the client API when accessing the server locally</description>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index 3ca78dc..d93e4bb 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index 70427bf..c0f0d63 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index 8f44df2..9deb192 100644
--- a/modules/enterprise/server/ear/pom.xml
+++ b/modules/enterprise/server/ear/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/itests/pom.xml b/modules/enterprise/server/itests/pom.xml
index 69c1143..63cdc98 100644
--- a/modules/enterprise/server/itests/pom.xml
+++ b/modules/enterprise/server/itests/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 3acbcbd..60da801 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/plugins/alert-cli/pom.xml b/modules/enterprise/server/plugins/alert-cli/pom.xml
index 84f1702..e7b916b 100644
--- a/modules/enterprise/server/plugins/alert-cli/pom.xml
+++ b/modules/enterprise/server/plugins/alert-cli/pom.xml
@@ -3,11 +3,11 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>alert-cli</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server CLI Script Alert Plugin</name>
<description>An alert sender able to execute an arbitrary CLI script as a response to an alert</description>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index aa5328b..2a51a08 100644
--- a/modules/enterprise/server/plugins/alert-email/pom.xml
+++ b/modules/enterprise/server/plugins/alert-email/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.server</groupId>
<artifactId>alert-email</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server Email Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-irc/pom.xml b/modules/enterprise/server/plugins/alert-irc/pom.xml
index 878c288..87dcc35 100644
--- a/modules/enterprise/server/plugins/alert-irc/pom.xml
+++ b/modules/enterprise/server/plugins/alert-irc/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-irc</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server IRC Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-log4j/pom.xml b/modules/enterprise/server/plugins/alert-log4j/pom.xml
index c22ce1a..186aee8 100644
--- a/modules/enterprise/server/plugins/alert-log4j/pom.xml
+++ b/modules/enterprise/server/plugins/alert-log4j/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-log4j</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server Log4J Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index 452d62a..13c4903 100644
--- a/modules/enterprise/server/plugins/alert-microblog/pom.xml
+++ b/modules/enterprise/server/plugins/alert-microblog/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-microblog</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server Microblog Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-mobicents/pom.xml b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
index a30f495..a76e6c2 100644
--- a/modules/enterprise/server/plugins/alert-mobicents/pom.xml
+++ b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-mobicents</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server Mobicents Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-operations/pom.xml b/modules/enterprise/server/plugins/alert-operations/pom.xml
index 6ffab76..e5c89a7 100644
--- a/modules/enterprise/server/plugins/alert-operations/pom.xml
+++ b/modules/enterprise/server/plugins/alert-operations/pom.xml
@@ -2,14 +2,14 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-operations</artifactId>
<packaging>jar</packaging>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server Opertions Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-roles/pom.xml b/modules/enterprise/server/plugins/alert-roles/pom.xml
index 69f4c4b..ddc59eb 100644
--- a/modules/enterprise/server/plugins/alert-roles/pom.xml
+++ b/modules/enterprise/server/plugins/alert-roles/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-roles</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server Roles Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-snmp/pom.xml b/modules/enterprise/server/plugins/alert-snmp/pom.xml
index 9ccda53..6fb795a 100644
--- a/modules/enterprise/server/plugins/alert-snmp/pom.xml
+++ b/modules/enterprise/server/plugins/alert-snmp/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-snmp</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server SNMP Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-subject/pom.xml b/modules/enterprise/server/plugins/alert-subject/pom.xml
index b1b56d0..3f706ad 100644
--- a/modules/enterprise/server/plugins/alert-subject/pom.xml
+++ b/modules/enterprise/server/plugins/alert-subject/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-subject</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server Subject Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 6a7d56d..253c731 100644
--- a/modules/enterprise/server/plugins/ant-bundle/pom.xml
+++ b/modules/enterprise/server/plugins/ant-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/cobbler/pom.xml b/modules/enterprise/server/plugins/cobbler/pom.xml
index 1282542..13c443a 100644
--- a/modules/enterprise/server/plugins/cobbler/pom.xml
+++ b/modules/enterprise/server/plugins/cobbler/pom.xml
@@ -4,14 +4,14 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>rhq-serverplugin-cobbler</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server Cobbler Plugin</name>
diff --git a/modules/enterprise/server/plugins/disk/pom.xml b/modules/enterprise/server/plugins/disk/pom.xml
index 5815d72..5cdd385 100644
--- a/modules/enterprise/server/plugins/disk/pom.xml
+++ b/modules/enterprise/server/plugins/disk/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/drift-rhq/pom.xml b/modules/enterprise/server/plugins/drift-rhq/pom.xml
index 47f753e..38e5268 100644
--- a/modules/enterprise/server/plugins/drift-rhq/pom.xml
+++ b/modules/enterprise/server/plugins/drift-rhq/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/filetemplate-bundle/pom.xml b/modules/enterprise/server/plugins/filetemplate-bundle/pom.xml
index cc629bf..a9a3f5a 100644
--- a/modules/enterprise/server/plugins/filetemplate-bundle/pom.xml
+++ b/modules/enterprise/server/plugins/filetemplate-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/groovy-script/pom.xml b/modules/enterprise/server/plugins/groovy-script/pom.xml
index 5f5509f..f440701 100644
--- a/modules/enterprise/server/plugins/groovy-script/pom.xml
+++ b/modules/enterprise/server/plugins/groovy-script/pom.xml
@@ -4,14 +4,14 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>groovy-script-server-plugin</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server Groovy Script Plugin</name>
diff --git a/modules/enterprise/server/plugins/jboss-software/pom.xml b/modules/enterprise/server/plugins/jboss-software/pom.xml
index 733c73e..96044a9 100644
--- a/modules/enterprise/server/plugins/jboss-software/pom.xml
+++ b/modules/enterprise/server/plugins/jboss-software/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/packagetype-cli/pom.xml b/modules/enterprise/server/plugins/packagetype-cli/pom.xml
index 57ec9b0..43d061c 100644
--- a/modules/enterprise/server/plugins/packagetype-cli/pom.xml
+++ b/modules/enterprise/server/plugins/packagetype-cli/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>packagetype-cli</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server CLI Package Type Plugin</name>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index 492c91c..ada1b7e 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index 253d03f..d7d85bf 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index 364d1c5..4ba3acb 100644
--- a/modules/enterprise/server/plugins/pom.xml
+++ b/modules/enterprise/server/plugins/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index 2c0a623..c9a0f90 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index f67dc29..6e0b704 100644
--- a/modules/enterprise/server/plugins/url/pom.xml
+++ b/modules/enterprise/server/plugins/url/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml b/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml
index 999bb39..0f8c56f 100644
--- a/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml
+++ b/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/yum/pom.xml b/modules/enterprise/server/plugins/yum/pom.xml
index b67cfb7..8977b4f 100644
--- a/modules/enterprise/server/plugins/yum/pom.xml
+++ b/modules/enterprise/server/plugins/yum/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/pom.xml b/modules/enterprise/server/pom.xml
index ca72b35..ab1c7ee 100644
--- a/modules/enterprise/server/pom.xml
+++ b/modules/enterprise/server/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index 872737a..2acd0dc 100644
--- a/modules/enterprise/server/safe-invoker/pom.xml
+++ b/modules/enterprise/server/safe-invoker/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index 1837a58..42c1dbe 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index fb0b291..d1d6a37 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index c7d0dce..5805b93 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/helpers/bundleGen/pom.xml b/modules/helpers/bundleGen/pom.xml
index 9902ea8..b042173 100644
--- a/modules/helpers/bundleGen/pom.xml
+++ b/modules/helpers/bundleGen/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-helpers</artifactId>
<groupId>org.rhq.helpers</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.helpers</groupId>
<artifactId>bundleGen</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<build>
<plugins>
diff --git a/modules/helpers/perftest-support/pom.xml b/modules/helpers/perftest-support/pom.xml
index c5aeb57..62fca8f 100644
--- a/modules/helpers/perftest-support/pom.xml
+++ b/modules/helpers/perftest-support/pom.xml
@@ -3,11 +3,11 @@
<parent>
<artifactId>rhq-helpers</artifactId>
<groupId>org.rhq.helpers</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>perftest-support</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>Performance Testing Support</name>
<description>To support performance testing, this is a basic tool to support extracting and later reimporting of
data from/to a database.
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index 0261e21..29dc323 100644
--- a/modules/helpers/pom.xml
+++ b/modules/helpers/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index c9bf1ce..85495c7 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/integration-tests/apache-plugin-test/pom.xml b/modules/integration-tests/apache-plugin-test/pom.xml
index 3cdb7de..84b13c6 100644
--- a/modules/integration-tests/apache-plugin-test/pom.xml
+++ b/modules/integration-tests/apache-plugin-test/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-integration-tests</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/integration-tests/jboss-as-7-plugin-test/pom.xml b/modules/integration-tests/jboss-as-7-plugin-test/pom.xml
index 26957d6..29c867e 100644
--- a/modules/integration-tests/jboss-as-7-plugin-test/pom.xml
+++ b/modules/integration-tests/jboss-as-7-plugin-test/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-integration-tests</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/integration-tests/jndi-access/jndi-access-test/pom.xml b/modules/integration-tests/jndi-access/jndi-access-test/pom.xml
index 704d2d1..838ec22 100644
--- a/modules/integration-tests/jndi-access/jndi-access-test/pom.xml
+++ b/modules/integration-tests/jndi-access/jndi-access-test/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>jndi-access-test-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/integration-tests/jndi-access/pom.xml b/modules/integration-tests/jndi-access/pom.xml
index 740a56f..000ca44 100644
--- a/modules/integration-tests/jndi-access/pom.xml
+++ b/modules/integration-tests/jndi-access/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-integration-tests</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/integration-tests/jndi-access/remote-server/pom.xml b/modules/integration-tests/jndi-access/remote-server/pom.xml
index 7d9f485..246f1b6 100644
--- a/modules/integration-tests/jndi-access/remote-server/pom.xml
+++ b/modules/integration-tests/jndi-access/remote-server/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>jndi-access-test-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/integration-tests/pom.xml b/modules/integration-tests/pom.xml
index eb342cf..4a259d2 100644
--- a/modules/integration-tests/pom.xml
+++ b/modules/integration-tests/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index 488cf6b..7465cf4 100644
--- a/modules/plugins/aliases/pom.xml
+++ b/modules/plugins/aliases/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index 0344994..0561ce1 100644
--- a/modules/plugins/ant-bundle/pom.xml
+++ b/modules/plugins/ant-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index 6c3464e..a97dbf6 100644
--- a/modules/plugins/apache/pom.xml
+++ b/modules/plugins/apache/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index a11d7ae..97d456c 100644
--- a/modules/plugins/augeas/pom.xml
+++ b/modules/plugins/augeas/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/byteman/pom.xml b/modules/plugins/byteman/pom.xml
index 0518035..930d7ca 100644
--- a/modules/plugins/byteman/pom.xml
+++ b/modules/plugins/byteman/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index b19fc30..e39760b 100644
--- a/modules/plugins/cobbler/pom.xml
+++ b/modules/plugins/cobbler/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index 4c61b27..ea3c6c9 100644
--- a/modules/plugins/cron/pom.xml
+++ b/modules/plugins/cron/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index 35b0bd9..4a8de83 100644
--- a/modules/plugins/database/pom.xml
+++ b/modules/plugins/database/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index 057ac66..6d1a653 100644
--- a/modules/plugins/filetemplate-bundle/pom.xml
+++ b/modules/plugins/filetemplate-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index 8c46656..3337fb8 100644
--- a/modules/plugins/grub/pom.xml
+++ b/modules/plugins/grub/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hadoop/pom.xml b/modules/plugins/hadoop/pom.xml
index b1c024a..0c9dc76 100644
--- a/modules/plugins/hadoop/pom.xml
+++ b/modules/plugins/hadoop/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index d487017..33c5cdd 100644
--- a/modules/plugins/hibernate/pom.xml
+++ b/modules/plugins/hibernate/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<!-- Bypass the jopr-plugins-parent which can not have children. It must build after the plugins in order to execute integration tests on them. -->
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index 9a967d1..5d72e0a 100644
--- a/modules/plugins/hosts/pom.xml
+++ b/modules/plugins/hosts/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index bd67dd4..6717151 100644
--- a/modules/plugins/hudson/pom.xml
+++ b/modules/plugins/hudson/pom.xml
@@ -6,12 +6,12 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-hudson-plugin</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<packaging>jar</packaging>
<name>RHQ Hudson Plugin</name>
diff --git a/modules/plugins/iis/pom.xml b/modules/plugins/iis/pom.xml
index 930af72..a3ea5b3 100644
--- a/modules/plugins/iis/pom.xml
+++ b/modules/plugins/iis/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/irc/pom.xml b/modules/plugins/irc/pom.xml
index 4bd81f0..aac7c8d 100644
--- a/modules/plugins/irc/pom.xml
+++ b/modules/plugins/irc/pom.xml
@@ -5,7 +5,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/jboss-as-5/pom.xml b/modules/plugins/jboss-as-5/pom.xml
index 0fff9eb..8b459d5 100644
--- a/modules/plugins/jboss-as-5/pom.xml
+++ b/modules/plugins/jboss-as-5/pom.xml
@@ -9,7 +9,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as-7/pom.xml b/modules/plugins/jboss-as-7/pom.xml
index 04f2c6d..f326dce 100644
--- a/modules/plugins/jboss-as-7/pom.xml
+++ b/modules/plugins/jboss-as-7/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index 3035090..95dbd68 100644
--- a/modules/plugins/jboss-as/pom.xml
+++ b/modules/plugins/jboss-as/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-cache-v3/pom.xml b/modules/plugins/jboss-cache-v3/pom.xml
index 3a1120c..acfa6b6 100644
--- a/modules/plugins/jboss-cache-v3/pom.xml
+++ b/modules/plugins/jboss-cache-v3/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-cache/pom.xml b/modules/plugins/jboss-cache/pom.xml
index dc08ac6..bc443af 100644
--- a/modules/plugins/jboss-cache/pom.xml
+++ b/modules/plugins/jboss-cache/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index 56bdd06..6bfcb71 100644
--- a/modules/plugins/jmx/pom.xml
+++ b/modules/plugins/jmx/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/kickstart/pom.xml b/modules/plugins/kickstart/pom.xml
index ee74e39..30a12a2 100644
--- a/modules/plugins/kickstart/pom.xml
+++ b/modules/plugins/kickstart/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mod-cluster/pom.xml b/modules/plugins/mod-cluster/pom.xml
index 8dfbf66..3bb008e 100644
--- a/modules/plugins/mod-cluster/pom.xml
+++ b/modules/plugins/mod-cluster/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index 5fddda4..5558690 100644
--- a/modules/plugins/mysql/pom.xml
+++ b/modules/plugins/mysql/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 9e1965c..89e3fc3 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index 46abf88..0a77271 100644
--- a/modules/plugins/oracle/pom.xml
+++ b/modules/plugins/oracle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pattern-generator/pom.xml b/modules/plugins/pattern-generator/pom.xml
index 6935ffb..9c622f1 100644
--- a/modules/plugins/pattern-generator/pom.xml
+++ b/modules/plugins/pattern-generator/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index 549daf1..acf1fab 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index 05c6699..e960632 100644
--- a/modules/plugins/platform/pom.xml
+++ b/modules/plugins/platform/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index 96fe70d..966a2c1 100644
--- a/modules/plugins/pom.xml
+++ b/modules/plugins/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 54ac7dc..4ba47d5 100644
--- a/modules/plugins/postfix/pom.xml
+++ b/modules/plugins/postfix/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index c0b4e13..3bd88e7 100644
--- a/modules/plugins/postgres/pom.xml
+++ b/modules/plugins/postgres/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index 032969c..b3770b9 100644
--- a/modules/plugins/rhq-agent/pom.xml
+++ b/modules/plugins/rhq-agent/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index 7673396..a6002a9 100644
--- a/modules/plugins/rhq-server/pom.xml
+++ b/modules/plugins/rhq-server/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index 2add38e..be54b7e 100644
--- a/modules/plugins/samba/pom.xml
+++ b/modules/plugins/samba/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index 9116f34..cc7178f 100644
--- a/modules/plugins/script/pom.xml
+++ b/modules/plugins/script/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script2/pom.xml b/modules/plugins/script2/pom.xml
index 03323d1..a569592 100644
--- a/modules/plugins/script2/pom.xml
+++ b/modules/plugins/script2/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index c02a3a2..8f1f2b6 100644
--- a/modules/plugins/snmptrapd/pom.xml
+++ b/modules/plugins/snmptrapd/pom.xml
@@ -2,7 +2,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index 58001eb..919dc76 100644
--- a/modules/plugins/sshd/pom.xml
+++ b/modules/plugins/sshd/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index fc4cc67..749b647 100644
--- a/modules/plugins/sudoers/pom.xml
+++ b/modules/plugins/sudoers/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 287e029..d4c6ba5 100644
--- a/modules/plugins/tomcat/pom.xml
+++ b/modules/plugins/tomcat/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index 0fcd691..5a92cac 100644
--- a/modules/plugins/twitter/pom.xml
+++ b/modules/plugins/twitter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/validate-all-plugins/pom.xml b/modules/plugins/validate-all-plugins/pom.xml
index 60aabe3..c390e24 100644
--- a/modules/plugins/validate-all-plugins/pom.xml
+++ b/modules/plugins/validate-all-plugins/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/virt/pom.xml b/modules/plugins/virt/pom.xml
index 8f21c6f..13ac351 100644
--- a/modules/plugins/virt/pom.xml
+++ b/modules/plugins/virt/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index ec51642..f790d7f 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index 5f60d61..74705ea 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -7,7 +7,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<artifactId>test-utils</artifactId>
diff --git a/pom.xml b/pom.xml
index 3f99eff..774564f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<packaging>pom</packaging>
<name>RHQ</name>
12 years, 4 months
[rhq] Branch 'refs/tags/RHQ_4_2_0_JON_3_0_1_GA' - 23 commits - modules/common modules/core modules/enterprise modules/integration-tests modules/plugins
by rhqci
modules/common/ant-bundle/src/test/java/org/rhq/bundle/ant/AntLauncherTest.java | 25
modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftClient.java | 3
modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftDetector.java | 151 +-
modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftFilesSender.java | 119 +-
modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftManager.java | 82 -
modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java | 287 ++---
modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ResourceContainer.java | 4
modules/core/plugin-container/src/main/java/org/rhq/core/pc/upgrade/ResourceUpgradeDelegate.java | 2
modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java | 123 +-
modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftManagerTest.java | 53
modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTest.java | 10
modules/core/util/src/main/java/org/rhq/core/util/file/FileUtil.java | 72 +
modules/core/util/src/main/java/org/rhq/core/util/updater/Deployer.java | 135 ++
modules/core/util/src/test/java/org/rhq/core/util/file/FileUtilTest.java | 98 +
modules/core/util/src/test/java/org/rhq/core/util/updater/DeployerTest.java | 49
modules/core/util/src/test/java/org/rhq/core/util/updater/SimpleDeployerTest.java | 77 +
modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java | 119 +-
modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/i18n/AgentI18NResourceKeys.java | 9
modules/enterprise/binding/pom.xml | 2
modules/enterprise/binding/src/main/java/org/rhq/bindings/SandboxedScriptEngine.java | 3
modules/enterprise/binding/src/main/java/org/rhq/bindings/ScriptEngineFactory.java | 60 +
modules/enterprise/binding/src/main/java/org/rhq/bindings/StandardScriptPermissions.java | 6
modules/enterprise/binding/src/test/java/org/rhq/bindings/ScriptEngineTest.java | 9
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftCarouselView.java | 17
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/ha/ViewAgentUIBean.java | 8
modules/enterprise/remoting/cli/pom.xml | 5
modules/enterprise/server/client-api/pom.xml | 67 -
modules/enterprise/server/client-api/src/main/java/org/rhq/enterprise/client/LocalClientProxy.java | 20
modules/enterprise/server/container-lib/pom.xml | 6
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/AccessCheckingInitialContextFactoryBuilder.java | 252 ++++
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/AllowRhqServerInternalsAccessPermission.java | 36
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/DecoratingInitialContextFactory.java | 110 ++
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingContextDecorator.java | 264 ++++
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingContextDecoratorSetContext.java | 75 +
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingDirContextDecorator.java | 187 +++
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingEventContextDecorator.java | 69 +
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingEventDirContextDecorator.java | 96 +
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingLdapContextDecorator.java | 85 +
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/ContextDecorator.java | 33
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecorator.java | 222 ++++
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecoratorHelper.java | 76 +
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecoratorSetContext.java | 71 +
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringDirContextDecorator.java | 185 +++
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringEventContextDecorator.java | 81 +
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringEventDirContextDecorator.java | 104 +
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringLdapContextDecorator.java | 94 +
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/mbean/AccessCheckingInitialContextFactoryBuilderInstaller.java | 45
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/mbean/AccessCheckingInitialContextFactoryBuilderInstallerMBean.java | 32
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratingInvocationHandler.java | 55 +
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratorPicker.java | 195 +++
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratorSetContext.java | 59 +
modules/enterprise/server/container-lib/src/test/java/org/rhq/jndi/context/DecoratingInvocationHandlerTest.java | 145 ++
modules/enterprise/server/container-lib/src/test/java/org/rhq/jndi/context/DecoratorPickerTest.java | 180 +++
modules/enterprise/server/container/src/main/resources/jbossas/server/default/conf/jboss-service.xml | 7
modules/enterprise/server/itests/pom.xml | 50
modules/enterprise/server/itests/src/test/java/org/rhq/enterprise/client/security/test/JndiAccessTest.java | 196 +++
modules/enterprise/server/itests/src/test/java/org/rhq/enterprise/server/drift/DriftServerTest.java | 19
modules/enterprise/server/itests/src/test/resources/embedded-jboss-beans.xml | 10
modules/enterprise/server/itests/src/test/resources/security.policy | 10
modules/enterprise/server/jar/pom.xml | 7
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java | 36
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java | 80 +
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftTemplateManagerBean.java | 40
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/bundle/BundleManagerBeanTest.java | 30
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/cloud/FailoverListManagerBeanTest.java | 14
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java | 58 -
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentManagerBeanTest.java | 19
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java | 538 ++++++++++
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java | 22
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/drift/DriftManagerBeanTest.java | 11
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java | 128 +-
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncContentProviderTest.java | 112 +-
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncRepoTest.java | 107 +
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/group/test/LdapGroupManagerBeanTest.java | 28
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/ContentMetadataManagerBeanTest.java | 137 --
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/EventMetadataManagerBeanTest.java | 75 -
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataBeanTest.java | 35
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdatePluginMetadataTestBase.java | 37
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceFactoryManagerBeanTest.java | 22
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/scheduler/jobs/DataPurgeJobTest.java | 35
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SynchronizationManagerBeanTest.java | 214 +--
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/system/SystemManagerBeanTest.java | 55 -
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java | 53
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/LargeGroupTestBase.java | 12
modules/enterprise/server/jar/src/test/resources/embedded-jboss-beans.xml | 10
modules/enterprise/server/plugins/alert-cli/src/main/java/org/rhq/enterprise/server/plugins/alertCli/CliSender.java | 9
modules/enterprise/server/pom.xml | 2
modules/integration-tests/jndi-access/jndi-access-test/pom.xml | 315 +++++
modules/integration-tests/jndi-access/jndi-access-test/src/test/java/org/rhq/jndi/test/JndiAccessTest.java | 190 +++
modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/hibernate.properties | 26
modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/log4j.xml | 78 +
modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/security.policy | 10
modules/integration-tests/jndi-access/pom.xml | 21
modules/integration-tests/jndi-access/remote-server/pom.xml | 72 +
modules/integration-tests/jndi-access/remote-server/src/main/java/org/rhq/jndi/test/Server.java | 79 +
modules/integration-tests/jndi-access/remote-server/src/main/resources/jndi.properties | 2
modules/integration-tests/jndi-access/remote-server/src/main/resources/log4j.properties | 5
modules/integration-tests/pom.xml | 4
modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java | 152 ++
modules/plugins/ant-bundle/src/test/resources/test-bundle-manage-root-dir.xml | 16
modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerComponent.java | 1
101 files changed, 6356 insertions(+), 1205 deletions(-)
New commits:
commit 9a303a0aec72fe5694c6cd82a602993a5159d445
Author: Hudson <jboss-qa-internal(a)redhat.com>
Date: Tue Feb 7 13:43:23 2012 -0500
tag RHQ_4_2_0_JON_3_0_1_GA
diff --git a/modules/cli-tests/pom.xml b/modules/cli-tests/pom.xml
index 0991c91..3167d39 100644
--- a/modules/cli-tests/pom.xml
+++ b/modules/cli-tests/pom.xml
@@ -8,7 +8,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index 1370a4c..1e93560 100644
--- a/modules/common/ant-bundle/pom.xml
+++ b/modules/common/ant-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/drift/pom.xml b/modules/common/drift/pom.xml
index c41be24..198d9bc 100644
--- a/modules/common/drift/pom.xml
+++ b/modules/common/drift/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<artifactId>rhq-common-drift</artifactId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index 0c28ff6..972a5a2 100644
--- a/modules/common/filetemplate-bundle/pom.xml
+++ b/modules/common/filetemplate-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<artifactId>rhq-filetemplate-bundle-common</artifactId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 1b56b75..91f9d94 100644
--- a/modules/common/jboss-as/pom.xml
+++ b/modules/common/jboss-as/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<artifactId>rhq-jboss-as-common</artifactId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index 5388ea4..262a9f7 100644
--- a/modules/common/pom.xml
+++ b/modules/common/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index a228e4f..2f2f2b3 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index e834756..5442ad3 100644
--- a/modules/core/comm-api/pom.xml
+++ b/modules/core/comm-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 83a5f8d..dbeb7ef 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index 88e0649..ed95c9c 100644
--- a/modules/core/domain/pom.xml
+++ b/modules/core/domain/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<artifactId>rhq-core-domain</artifactId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index 3be4240..848940f 100644
--- a/modules/core/gui/pom.xml
+++ b/modules/core/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index a693dbe..c741bd1 100644
--- a/modules/core/native-system/pom.xml
+++ b/modules/core/native-system/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index 56fd6e6..1c16c09 100644
--- a/modules/core/plugin-api/pom.xml
+++ b/modules/core/plugin-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index 352de5e..a8475ca 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<artifactId>rhq-core-plugin-container</artifactId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index 81685e7..1ce1e2c 100644
--- a/modules/core/plugin-validator/pom.xml
+++ b/modules/core/plugin-validator/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index 33d49ed..4aa616d 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index 3e6ae6e..eaa3727 100644
--- a/modules/core/util/pom.xml
+++ b/modules/core/util/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<artifactId>rhq-core-util</artifactId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index 2978ebb..93a6f6b 100644
--- a/modules/enterprise/agent/pom.xml
+++ b/modules/enterprise/agent/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index f845ef7..24c2281 100644
--- a/modules/enterprise/agentupdate/pom.xml
+++ b/modules/enterprise/agentupdate/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/binding/pom.xml b/modules/enterprise/binding/pom.xml
index 488c94f..dca4aae 100644
--- a/modules/enterprise/binding/pom.xml
+++ b/modules/enterprise/binding/pom.xml
@@ -3,10 +3,10 @@
<parent>
<artifactId>rhq-enterprise-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<artifactId>rhq-script-bindings</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Script Bindings</name>
<description>Abstraction of different facilities and default configurations for script bindings</description>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index 37fab92..be3e3a8 100644
--- a/modules/enterprise/comm/pom.xml
+++ b/modules/enterprise/comm/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index 32b7c7c..7db2560 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index 114b7d1..a2ad386 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index 9ffc883..f1af689 100644
--- a/modules/enterprise/gui/content_http-war/pom.xml
+++ b/modules/enterprise/gui/content_http-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-gui-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index 15ebbec..b202e1f 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index 2811c07..3d1c787 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index 1c4c70c..5def783 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -8,7 +8,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index 79ea577..d840e09 100644
--- a/modules/enterprise/gui/portal-war/pom.xml
+++ b/modules/enterprise/gui/portal-war/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/rest-war/pom.xml b/modules/enterprise/gui/rest-war/pom.xml
index c8b2614..dc59c86 100644
--- a/modules/enterprise/gui/rest-war/pom.xml
+++ b/modules/enterprise/gui/rest-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index f83b2e6..638f32c 100644
--- a/modules/enterprise/pom.xml
+++ b/modules/enterprise/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index e2db1d4..57135c2 100644
--- a/modules/enterprise/remoting/cli/pom.xml
+++ b/modules/enterprise/remoting/cli/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index 4c9f8c2..ebb80cc 100644
--- a/modules/enterprise/remoting/client-api/pom.xml
+++ b/modules/enterprise/remoting/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/client-deps/pom.xml b/modules/enterprise/remoting/client-deps/pom.xml
index 5afc82a..5db71e7 100644
--- a/modules/enterprise/remoting/client-deps/pom.xml
+++ b/modules/enterprise/remoting/client-deps/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index 4cd7b22..a9be89d 100644
--- a/modules/enterprise/remoting/pom.xml
+++ b/modules/enterprise/remoting/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index 47bfa9d..049e375 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/client-api/pom.xml b/modules/enterprise/server/client-api/pom.xml
index 8a25f9d..dbba668 100644
--- a/modules/enterprise/server/client-api/pom.xml
+++ b/modules/enterprise/server/client-api/pom.xml
@@ -5,13 +5,13 @@
<parent>
<artifactId>rhq-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-server-client-api</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server Client API</name>
<description>The implementation of the client API when accessing the server locally</description>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index d93e4bb..3ca78dc 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index c0f0d63..70427bf 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index 9deb192..8f44df2 100644
--- a/modules/enterprise/server/ear/pom.xml
+++ b/modules/enterprise/server/ear/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/itests/pom.xml b/modules/enterprise/server/itests/pom.xml
index 63cdc98..69c1143 100644
--- a/modules/enterprise/server/itests/pom.xml
+++ b/modules/enterprise/server/itests/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 60da801..3acbcbd 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/plugins/alert-cli/pom.xml b/modules/enterprise/server/plugins/alert-cli/pom.xml
index e7b916b..84f1702 100644
--- a/modules/enterprise/server/plugins/alert-cli/pom.xml
+++ b/modules/enterprise/server/plugins/alert-cli/pom.xml
@@ -3,11 +3,11 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>alert-cli</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server CLI Script Alert Plugin</name>
<description>An alert sender able to execute an arbitrary CLI script as a response to an alert</description>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index 2a51a08..aa5328b 100644
--- a/modules/enterprise/server/plugins/alert-email/pom.xml
+++ b/modules/enterprise/server/plugins/alert-email/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.server</groupId>
<artifactId>alert-email</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server Email Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-irc/pom.xml b/modules/enterprise/server/plugins/alert-irc/pom.xml
index 87dcc35..878c288 100644
--- a/modules/enterprise/server/plugins/alert-irc/pom.xml
+++ b/modules/enterprise/server/plugins/alert-irc/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-irc</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server IRC Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-log4j/pom.xml b/modules/enterprise/server/plugins/alert-log4j/pom.xml
index 186aee8..c22ce1a 100644
--- a/modules/enterprise/server/plugins/alert-log4j/pom.xml
+++ b/modules/enterprise/server/plugins/alert-log4j/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-log4j</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server Log4J Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index 13c4903..452d62a 100644
--- a/modules/enterprise/server/plugins/alert-microblog/pom.xml
+++ b/modules/enterprise/server/plugins/alert-microblog/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-microblog</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server Microblog Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-mobicents/pom.xml b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
index a76e6c2..a30f495 100644
--- a/modules/enterprise/server/plugins/alert-mobicents/pom.xml
+++ b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-mobicents</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server Mobicents Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-operations/pom.xml b/modules/enterprise/server/plugins/alert-operations/pom.xml
index e5c89a7..6ffab76 100644
--- a/modules/enterprise/server/plugins/alert-operations/pom.xml
+++ b/modules/enterprise/server/plugins/alert-operations/pom.xml
@@ -2,14 +2,14 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-operations</artifactId>
<packaging>jar</packaging>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server Opertions Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-roles/pom.xml b/modules/enterprise/server/plugins/alert-roles/pom.xml
index ddc59eb..69f4c4b 100644
--- a/modules/enterprise/server/plugins/alert-roles/pom.xml
+++ b/modules/enterprise/server/plugins/alert-roles/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-roles</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server Roles Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-snmp/pom.xml b/modules/enterprise/server/plugins/alert-snmp/pom.xml
index 6fb795a..9ccda53 100644
--- a/modules/enterprise/server/plugins/alert-snmp/pom.xml
+++ b/modules/enterprise/server/plugins/alert-snmp/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-snmp</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server SNMP Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-subject/pom.xml b/modules/enterprise/server/plugins/alert-subject/pom.xml
index 3f706ad..b1b56d0 100644
--- a/modules/enterprise/server/plugins/alert-subject/pom.xml
+++ b/modules/enterprise/server/plugins/alert-subject/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-subject</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server Subject Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 253c731..6a7d56d 100644
--- a/modules/enterprise/server/plugins/ant-bundle/pom.xml
+++ b/modules/enterprise/server/plugins/ant-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/cobbler/pom.xml b/modules/enterprise/server/plugins/cobbler/pom.xml
index 13c443a..1282542 100644
--- a/modules/enterprise/server/plugins/cobbler/pom.xml
+++ b/modules/enterprise/server/plugins/cobbler/pom.xml
@@ -4,14 +4,14 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>rhq-serverplugin-cobbler</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server Cobbler Plugin</name>
diff --git a/modules/enterprise/server/plugins/disk/pom.xml b/modules/enterprise/server/plugins/disk/pom.xml
index 5cdd385..5815d72 100644
--- a/modules/enterprise/server/plugins/disk/pom.xml
+++ b/modules/enterprise/server/plugins/disk/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/drift-rhq/pom.xml b/modules/enterprise/server/plugins/drift-rhq/pom.xml
index 38e5268..47f753e 100644
--- a/modules/enterprise/server/plugins/drift-rhq/pom.xml
+++ b/modules/enterprise/server/plugins/drift-rhq/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/filetemplate-bundle/pom.xml b/modules/enterprise/server/plugins/filetemplate-bundle/pom.xml
index a9a3f5a..cc629bf 100644
--- a/modules/enterprise/server/plugins/filetemplate-bundle/pom.xml
+++ b/modules/enterprise/server/plugins/filetemplate-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/groovy-script/pom.xml b/modules/enterprise/server/plugins/groovy-script/pom.xml
index f440701..5f5509f 100644
--- a/modules/enterprise/server/plugins/groovy-script/pom.xml
+++ b/modules/enterprise/server/plugins/groovy-script/pom.xml
@@ -4,14 +4,14 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>groovy-script-server-plugin</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server Groovy Script Plugin</name>
diff --git a/modules/enterprise/server/plugins/jboss-software/pom.xml b/modules/enterprise/server/plugins/jboss-software/pom.xml
index 96044a9..733c73e 100644
--- a/modules/enterprise/server/plugins/jboss-software/pom.xml
+++ b/modules/enterprise/server/plugins/jboss-software/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/packagetype-cli/pom.xml b/modules/enterprise/server/plugins/packagetype-cli/pom.xml
index 43d061c..57ec9b0 100644
--- a/modules/enterprise/server/plugins/packagetype-cli/pom.xml
+++ b/modules/enterprise/server/plugins/packagetype-cli/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>packagetype-cli</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server CLI Package Type Plugin</name>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index ada1b7e..492c91c 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index d7d85bf..253d03f 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index 4ba3acb..364d1c5 100644
--- a/modules/enterprise/server/plugins/pom.xml
+++ b/modules/enterprise/server/plugins/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index c9a0f90..2c0a623 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index 6e0b704..f67dc29 100644
--- a/modules/enterprise/server/plugins/url/pom.xml
+++ b/modules/enterprise/server/plugins/url/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml b/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml
index 0f8c56f..999bb39 100644
--- a/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml
+++ b/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/yum/pom.xml b/modules/enterprise/server/plugins/yum/pom.xml
index 8977b4f..b67cfb7 100644
--- a/modules/enterprise/server/plugins/yum/pom.xml
+++ b/modules/enterprise/server/plugins/yum/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/pom.xml b/modules/enterprise/server/pom.xml
index ab1c7ee..ca72b35 100644
--- a/modules/enterprise/server/pom.xml
+++ b/modules/enterprise/server/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index 2acd0dc..872737a 100644
--- a/modules/enterprise/server/safe-invoker/pom.xml
+++ b/modules/enterprise/server/safe-invoker/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index 42c1dbe..1837a58 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index d1d6a37..fb0b291 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index 5805b93..c7d0dce 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/helpers/bundleGen/pom.xml b/modules/helpers/bundleGen/pom.xml
index b042173..9902ea8 100644
--- a/modules/helpers/bundleGen/pom.xml
+++ b/modules/helpers/bundleGen/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-helpers</artifactId>
<groupId>org.rhq.helpers</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.helpers</groupId>
<artifactId>bundleGen</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<build>
<plugins>
diff --git a/modules/helpers/perftest-support/pom.xml b/modules/helpers/perftest-support/pom.xml
index 62fca8f..c5aeb57 100644
--- a/modules/helpers/perftest-support/pom.xml
+++ b/modules/helpers/perftest-support/pom.xml
@@ -3,11 +3,11 @@
<parent>
<artifactId>rhq-helpers</artifactId>
<groupId>org.rhq.helpers</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>perftest-support</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>Performance Testing Support</name>
<description>To support performance testing, this is a basic tool to support extracting and later reimporting of
data from/to a database.
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index 29dc323..0261e21 100644
--- a/modules/helpers/pom.xml
+++ b/modules/helpers/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index 85495c7..c9bf1ce 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/integration-tests/apache-plugin-test/pom.xml b/modules/integration-tests/apache-plugin-test/pom.xml
index 84b13c6..3cdb7de 100644
--- a/modules/integration-tests/apache-plugin-test/pom.xml
+++ b/modules/integration-tests/apache-plugin-test/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-integration-tests</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/integration-tests/jboss-as-7-plugin-test/pom.xml b/modules/integration-tests/jboss-as-7-plugin-test/pom.xml
index 29c867e..26957d6 100644
--- a/modules/integration-tests/jboss-as-7-plugin-test/pom.xml
+++ b/modules/integration-tests/jboss-as-7-plugin-test/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-integration-tests</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/integration-tests/jndi-access/jndi-access-test/pom.xml b/modules/integration-tests/jndi-access/jndi-access-test/pom.xml
index 1991e0e..704d2d1 100644
--- a/modules/integration-tests/jndi-access/jndi-access-test/pom.xml
+++ b/modules/integration-tests/jndi-access/jndi-access-test/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>jndi-access-test-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.3.0-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/integration-tests/jndi-access/pom.xml b/modules/integration-tests/jndi-access/pom.xml
index 6e9c673..740a56f 100644
--- a/modules/integration-tests/jndi-access/pom.xml
+++ b/modules/integration-tests/jndi-access/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-integration-tests</artifactId>
<groupId>org.rhq</groupId>
- <version>4.3.0-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/integration-tests/jndi-access/remote-server/pom.xml b/modules/integration-tests/jndi-access/remote-server/pom.xml
index 9046e6f..7d9f485 100644
--- a/modules/integration-tests/jndi-access/remote-server/pom.xml
+++ b/modules/integration-tests/jndi-access/remote-server/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>jndi-access-test-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.3.0-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/integration-tests/pom.xml b/modules/integration-tests/pom.xml
index 4a259d2..eb342cf 100644
--- a/modules/integration-tests/pom.xml
+++ b/modules/integration-tests/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index 7465cf4..488cf6b 100644
--- a/modules/plugins/aliases/pom.xml
+++ b/modules/plugins/aliases/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index 0561ce1..0344994 100644
--- a/modules/plugins/ant-bundle/pom.xml
+++ b/modules/plugins/ant-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index a97dbf6..6c3464e 100644
--- a/modules/plugins/apache/pom.xml
+++ b/modules/plugins/apache/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 97d456c..a11d7ae 100644
--- a/modules/plugins/augeas/pom.xml
+++ b/modules/plugins/augeas/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/byteman/pom.xml b/modules/plugins/byteman/pom.xml
index 930d7ca..0518035 100644
--- a/modules/plugins/byteman/pom.xml
+++ b/modules/plugins/byteman/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index e39760b..b19fc30 100644
--- a/modules/plugins/cobbler/pom.xml
+++ b/modules/plugins/cobbler/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index ea3c6c9..4c61b27 100644
--- a/modules/plugins/cron/pom.xml
+++ b/modules/plugins/cron/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index 4a8de83..35b0bd9 100644
--- a/modules/plugins/database/pom.xml
+++ b/modules/plugins/database/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index 6d1a653..057ac66 100644
--- a/modules/plugins/filetemplate-bundle/pom.xml
+++ b/modules/plugins/filetemplate-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index 3337fb8..8c46656 100644
--- a/modules/plugins/grub/pom.xml
+++ b/modules/plugins/grub/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hadoop/pom.xml b/modules/plugins/hadoop/pom.xml
index 0c9dc76..b1c024a 100644
--- a/modules/plugins/hadoop/pom.xml
+++ b/modules/plugins/hadoop/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index 33c5cdd..d487017 100644
--- a/modules/plugins/hibernate/pom.xml
+++ b/modules/plugins/hibernate/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<!-- Bypass the jopr-plugins-parent which can not have children. It must build after the plugins in order to execute integration tests on them. -->
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index 5d72e0a..9a967d1 100644
--- a/modules/plugins/hosts/pom.xml
+++ b/modules/plugins/hosts/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index 6717151..bd67dd4 100644
--- a/modules/plugins/hudson/pom.xml
+++ b/modules/plugins/hudson/pom.xml
@@ -6,12 +6,12 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-hudson-plugin</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<packaging>jar</packaging>
<name>RHQ Hudson Plugin</name>
diff --git a/modules/plugins/iis/pom.xml b/modules/plugins/iis/pom.xml
index a3ea5b3..930af72 100644
--- a/modules/plugins/iis/pom.xml
+++ b/modules/plugins/iis/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/irc/pom.xml b/modules/plugins/irc/pom.xml
index aac7c8d..4bd81f0 100644
--- a/modules/plugins/irc/pom.xml
+++ b/modules/plugins/irc/pom.xml
@@ -5,7 +5,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/jboss-as-5/pom.xml b/modules/plugins/jboss-as-5/pom.xml
index 8b459d5..0fff9eb 100644
--- a/modules/plugins/jboss-as-5/pom.xml
+++ b/modules/plugins/jboss-as-5/pom.xml
@@ -9,7 +9,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as-7/pom.xml b/modules/plugins/jboss-as-7/pom.xml
index f326dce..04f2c6d 100644
--- a/modules/plugins/jboss-as-7/pom.xml
+++ b/modules/plugins/jboss-as-7/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index 95dbd68..3035090 100644
--- a/modules/plugins/jboss-as/pom.xml
+++ b/modules/plugins/jboss-as/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-cache-v3/pom.xml b/modules/plugins/jboss-cache-v3/pom.xml
index acfa6b6..3a1120c 100644
--- a/modules/plugins/jboss-cache-v3/pom.xml
+++ b/modules/plugins/jboss-cache-v3/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-cache/pom.xml b/modules/plugins/jboss-cache/pom.xml
index bc443af..dc08ac6 100644
--- a/modules/plugins/jboss-cache/pom.xml
+++ b/modules/plugins/jboss-cache/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index 6bfcb71..56bdd06 100644
--- a/modules/plugins/jmx/pom.xml
+++ b/modules/plugins/jmx/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/kickstart/pom.xml b/modules/plugins/kickstart/pom.xml
index 30a12a2..ee74e39 100644
--- a/modules/plugins/kickstart/pom.xml
+++ b/modules/plugins/kickstart/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mod-cluster/pom.xml b/modules/plugins/mod-cluster/pom.xml
index 3bb008e..8dfbf66 100644
--- a/modules/plugins/mod-cluster/pom.xml
+++ b/modules/plugins/mod-cluster/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index 5558690..5fddda4 100644
--- a/modules/plugins/mysql/pom.xml
+++ b/modules/plugins/mysql/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 89e3fc3..9e1965c 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index 0a77271..46abf88 100644
--- a/modules/plugins/oracle/pom.xml
+++ b/modules/plugins/oracle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pattern-generator/pom.xml b/modules/plugins/pattern-generator/pom.xml
index 9c622f1..6935ffb 100644
--- a/modules/plugins/pattern-generator/pom.xml
+++ b/modules/plugins/pattern-generator/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index acf1fab..549daf1 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index e960632..05c6699 100644
--- a/modules/plugins/platform/pom.xml
+++ b/modules/plugins/platform/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index 966a2c1..96fe70d 100644
--- a/modules/plugins/pom.xml
+++ b/modules/plugins/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 4ba47d5..54ac7dc 100644
--- a/modules/plugins/postfix/pom.xml
+++ b/modules/plugins/postfix/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index 3bd88e7..c0b4e13 100644
--- a/modules/plugins/postgres/pom.xml
+++ b/modules/plugins/postgres/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index b3770b9..032969c 100644
--- a/modules/plugins/rhq-agent/pom.xml
+++ b/modules/plugins/rhq-agent/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index a6002a9..7673396 100644
--- a/modules/plugins/rhq-server/pom.xml
+++ b/modules/plugins/rhq-server/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index be54b7e..2add38e 100644
--- a/modules/plugins/samba/pom.xml
+++ b/modules/plugins/samba/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index cc7178f..9116f34 100644
--- a/modules/plugins/script/pom.xml
+++ b/modules/plugins/script/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script2/pom.xml b/modules/plugins/script2/pom.xml
index a569592..03323d1 100644
--- a/modules/plugins/script2/pom.xml
+++ b/modules/plugins/script2/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index 8f1f2b6..c02a3a2 100644
--- a/modules/plugins/snmptrapd/pom.xml
+++ b/modules/plugins/snmptrapd/pom.xml
@@ -2,7 +2,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index 919dc76..58001eb 100644
--- a/modules/plugins/sshd/pom.xml
+++ b/modules/plugins/sshd/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index 749b647..fc4cc67 100644
--- a/modules/plugins/sudoers/pom.xml
+++ b/modules/plugins/sudoers/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index d4c6ba5..287e029 100644
--- a/modules/plugins/tomcat/pom.xml
+++ b/modules/plugins/tomcat/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index 5a92cac..0fcd691 100644
--- a/modules/plugins/twitter/pom.xml
+++ b/modules/plugins/twitter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/validate-all-plugins/pom.xml b/modules/plugins/validate-all-plugins/pom.xml
index c390e24..60aabe3 100644
--- a/modules/plugins/validate-all-plugins/pom.xml
+++ b/modules/plugins/validate-all-plugins/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/virt/pom.xml b/modules/plugins/virt/pom.xml
index 13ac351..8f21c6f 100644
--- a/modules/plugins/virt/pom.xml
+++ b/modules/plugins/virt/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index f790d7f..ec51642 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index 74705ea..5f60d61 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -7,7 +7,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<artifactId>test-utils</artifactId>
diff --git a/pom.xml b/pom.xml
index 774564f..3f99eff 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<packaging>pom</packaging>
<name>RHQ</name>
commit 3ec3b0ea25fef3942d26ca83182c855947a956c6
Merge: 9c40d8d 6f5ed95
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Tue Feb 7 10:56:02 2012 -0500
Merge branch 'release/jon3.0.x' into rc/jon3.0.1.GA
commit 6f5ed9501dd2661c32466c344f3d37d7ad33ad7f
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Tue Feb 7 10:00:22 2012 -0500
[BZ 772095] fixing permissions for extracted CLI directory.
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index 8ed89b5..c8221a5 100644
--- a/modules/enterprise/remoting/cli/pom.xml
+++ b/modules/enterprise/remoting/cli/pom.xml
@@ -185,6 +185,11 @@
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
+ <archiverConfig>
+ <!-- permissions for archiver configuration are in decimal (not octal) -->
+ <!-- 493 (decimal) = 755 (octal)-->
+ <defaultDirectoryMode>493</defaultDirectoryMode>
+ </archiverConfig>
<descriptors>
<descriptor>src/main/scripts/rhq-client.assembly.xml</descriptor>
</descriptors>
commit 1c7b0aefd0060c2daf15cb95512704934c7ee1af
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Mon Feb 6 22:58:54 2012 +0100
Merging the secured JNDI access from master to release/jon3.0.x.
This is a cherry-pick of commits:
3bf2fbfd118d30e2c0c9b616ff12ba7bc9e9492c
94b7a562f4efb9e4d9922e090ceca49deef5c1fd
cb78bd893aa614d0fcc5760f2a25a73175fe6c2e
from master into release/jon3.0.x
diff --git a/modules/enterprise/binding/pom.xml b/modules/enterprise/binding/pom.xml
index 59cb2f0..cc1544f 100644
--- a/modules/enterprise/binding/pom.xml
+++ b/modules/enterprise/binding/pom.xml
@@ -208,6 +208,8 @@
<!-- <argLine>-Xdebug -Xnoagent -Djava.compiler=NONE
-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y</argLine> -->
<argLine>-Djava.security.manager -Djava.security.policy==${project.build.testOutputDirectory}/allow-all.policy</argLine>
+ <!-- This is important, because some of the tests try to exit the JVM. -->
+ <failIfNoTests>true</failIfNoTests>
</configuration>
</plugin>
diff --git a/modules/enterprise/binding/src/main/java/org/rhq/bindings/SandboxedScriptEngine.java b/modules/enterprise/binding/src/main/java/org/rhq/bindings/SandboxedScriptEngine.java
index 7b34c6d..f994f09 100644
--- a/modules/enterprise/binding/src/main/java/org/rhq/bindings/SandboxedScriptEngine.java
+++ b/modules/enterprise/binding/src/main/java/org/rhq/bindings/SandboxedScriptEngine.java
@@ -40,6 +40,9 @@ import javax.script.ScriptEngineFactory;
import javax.script.ScriptException;
/**
+ * <b>DO NOT USE THIS CLASS DIRECTLY!!!!</b> Use {@link org.rhq.bindings.ScriptEngineFactory#getSecuredScriptEngine(String, org.rhq.bindings.util.PackageFinder, StandardBindings, PermissionCollection)}
+ * method instead for a reliably secured script engine.
+ * <p>
* This is a decorator class for any other {@link ScriptEngine} implementation
* that runs any of the eval methods with the defined set of {@link Permission}s.
* <p>
diff --git a/modules/enterprise/binding/src/main/java/org/rhq/bindings/ScriptEngineFactory.java b/modules/enterprise/binding/src/main/java/org/rhq/bindings/ScriptEngineFactory.java
index 168d2fb..5834922 100644
--- a/modules/enterprise/binding/src/main/java/org/rhq/bindings/ScriptEngineFactory.java
+++ b/modules/enterprise/binding/src/main/java/org/rhq/bindings/ScriptEngineFactory.java
@@ -25,6 +25,15 @@ import java.beans.Introspector;
import java.beans.MethodDescriptor;
import java.io.IOException;
import java.lang.reflect.Method;
+import java.net.URL;
+import java.security.AccessControlContext;
+import java.security.AccessController;
+import java.security.CodeSource;
+import java.security.PermissionCollection;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
+import java.security.ProtectionDomain;
+import java.security.cert.Certificate;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
@@ -79,7 +88,7 @@ public class ScriptEngineFactory {
public static ScriptEngine getScriptEngine(String language, PackageFinder packageFinder, StandardBindings bindings)
throws ScriptException, IOException {
ScriptEngineInitializer initializer = getInitializer(language);
-
+
if (initializer == null) {
return null;
}
@@ -92,6 +101,55 @@ public class ScriptEngineFactory {
return engine;
}
+
+ /**
+ * This method is similar to the {@link #getScriptEngine(String, PackageFinder, StandardBindings)} method
+ * but additionally applies a security wrapper on the returned script engine so that the scripts execute
+ * with the provided java permissions.
+ *
+ * @see #getScriptEngine(String, PackageFinder, StandardBindings)
+ */
+ public static ScriptEngine getSecuredScriptEngine(final String language, final PackageFinder packageFinder, final StandardBindings bindings, final PermissionCollection permissions) throws ScriptException, IOException {
+ CodeSource src = new CodeSource(new URL("http://rhq-project.org/scripting"), (Certificate[]) null);
+ ProtectionDomain scriptDomain = new ProtectionDomain(src, permissions);
+ AccessControlContext ctx = new AccessControlContext(new ProtectionDomain[] { scriptDomain });
+ try {
+ return AccessController.doPrivileged(new PrivilegedExceptionAction<ScriptEngine>() {
+ @Override
+ public ScriptEngine run() throws Exception {
+ //This might seem a bit excessive but is necessary due to the
+ //change in security handling in the rhino script engine
+ //that occured in Java6u27 (due to a CVE desribed here:
+ //https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2011-3544)
+
+ //In Java 6u26 and earlier, it was enough to wrap a script engine
+ //in the sandbox and everything would work.
+
+ //Java 6u27 introduced new behavior where the rhino script engine
+ //remembers the access control context with which it has been
+ //constructed and combines that with the callers protection domain
+ //when a script is executed. Because this class has all perms and
+ //all the code in RHQ that called ScriptEngine.eval* also
+ //had all perms, the scripts would never be sandboxed even if the call
+ //was pushed through the SandboxedScriptEngine.
+
+ //This means that the below wrapping is necessary for the security
+ //to work in java6 pre u27 while the surrounding privileged block
+ //is necessary for the security to be applied in java6 u27 and later.
+ return new SandboxedScriptEngine(getScriptEngine(language, packageFinder, bindings), permissions);
+ }
+ }, ctx);
+ } catch (PrivilegedActionException e) {
+ Throwable cause = e.getCause();
+ if (cause instanceof IOException) {
+ throw (IOException) cause;
+ } else if (cause instanceof ScriptException) {
+ throw (ScriptException) cause;
+ } else {
+ throw new ScriptException(e);
+ }
+ }
+ }
/**
* Injects the values provided in the bindings into the {@link ScriptContext#ENGINE_SCOPE engine scope}
diff --git a/modules/enterprise/binding/src/main/java/org/rhq/bindings/StandardScriptPermissions.java b/modules/enterprise/binding/src/main/java/org/rhq/bindings/StandardScriptPermissions.java
index 894c953..5822d44 100644
--- a/modules/enterprise/binding/src/main/java/org/rhq/bindings/StandardScriptPermissions.java
+++ b/modules/enterprise/binding/src/main/java/org/rhq/bindings/StandardScriptPermissions.java
@@ -20,6 +20,7 @@
package org.rhq.bindings;
import java.io.FilePermission;
+import java.io.SerializablePermission;
import java.lang.reflect.ReflectPermission;
import java.net.SocketPermission;
import java.security.Permission;
@@ -83,6 +84,11 @@ public class StandardScriptPermissions extends PermissionCollection {
add(new PropertyPermission("*", "read"));
add(new ReflectPermission("suppressAccessChecks"));
+
+ //these 2 are required for server-side scripts to be able to
+ //invoke remote EJBs.
+ add(new SerializablePermission("enableSubclassImplementation"));
+ add(new RuntimePermission("reflectionFactoryAccess"));
}
public void add(Permission permission) {
diff --git a/modules/enterprise/binding/src/test/java/org/rhq/bindings/ScriptEngineTest.java b/modules/enterprise/binding/src/test/java/org/rhq/bindings/ScriptEngineTest.java
index 69874e4..15184c1 100644
--- a/modules/enterprise/binding/src/test/java/org/rhq/bindings/ScriptEngineTest.java
+++ b/modules/enterprise/binding/src/test/java/org/rhq/bindings/ScriptEngineTest.java
@@ -40,6 +40,7 @@ import org.rhq.bindings.util.PackageFinder;
*
* @author Lukas Krejci
*/
+@Test
public class ScriptEngineTest {
private static StandardBindings EMPTY_BINDINGS = new StandardBindings(new PrintWriter(System.out), new FakeRhqFacade());
@@ -52,9 +53,7 @@ public class ScriptEngineTest {
@Test
public void testSandbox() throws ScriptException, IOException {
- ScriptEngine engine = getScriptEngine();
-
- SandboxedScriptEngine sandbox = new SandboxedScriptEngine(engine, new StandardScriptPermissions());
+ ScriptEngine sandbox = getSecuredScriptEngine();
try {
sandbox.eval("java.lang.System.exit(1);");
@@ -90,6 +89,10 @@ public class ScriptEngineTest {
return ScriptEngineFactory.getScriptEngine("JavaScript", new PackageFinder(Collections.<File>emptyList()), EMPTY_BINDINGS);
}
+ private ScriptEngine getSecuredScriptEngine() throws ScriptException, IOException {
+ return ScriptEngineFactory.getSecuredScriptEngine("JavaScript", new PackageFinder(Collections.<File>emptyList()), EMPTY_BINDINGS, new StandardScriptPermissions());
+ }
+
private void assertSecurityExceptionPresent(Throwable t) {
boolean ok = false;
while (t != null) {
diff --git a/modules/enterprise/server/client-api/pom.xml b/modules/enterprise/server/client-api/pom.xml
index 0ec74f9..370eee5 100644
--- a/modules/enterprise/server/client-api/pom.xml
+++ b/modules/enterprise/server/client-api/pom.xml
@@ -15,47 +15,32 @@
<name>RHQ Enterprise Server Client API</name>
<description>The implementation of the client API when accessing the server locally</description>
- <properties>
- <persistence-api.version>1.0</persistence-api.version>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.rhq</groupId>
- <artifactId>rhq-script-bindings</artifactId>
- <version>${project.version}</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>javax.persistence</groupId>
- <artifactId>persistence-api</artifactId>
- <version>${persistence-api.version}</version>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>hibernate-annotations</groupId>
- <artifactId>hibernate-annotations</artifactId>
- <!-- NOTE: The version is defined in the root POM's dependencyManagement
- section. -->
- <scope>provided</scope>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
-
- <plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <excludedGroups>${rhq.testng.excludedGroups}</excludedGroups>
- <!-- <argLine>-Xdebug -Xnoagent -Djava.compiler=NONE
- -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y</argLine> -->
- </configuration>
- </plugin>
-
- </plugins>
- </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-container-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-enterprise-server</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-script-bindings</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.persistence</groupId>
+ <artifactId>persistence-api</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
<profiles>
diff --git a/modules/enterprise/server/client-api/src/main/java/org/rhq/enterprise/client/LocalClientProxy.java b/modules/enterprise/server/client-api/src/main/java/org/rhq/enterprise/client/LocalClientProxy.java
index 5f3ff90..e9f1e4d 100644
--- a/modules/enterprise/server/client-api/src/main/java/org/rhq/enterprise/client/LocalClientProxy.java
+++ b/modules/enterprise/server/client-api/src/main/java/org/rhq/enterprise/client/LocalClientProxy.java
@@ -20,6 +20,8 @@
package org.rhq.enterprise.client;
import java.lang.reflect.Method;
+import java.security.AccessController;
+import java.security.PrivilegedExceptionAction;
import java.util.Arrays;
import org.apache.commons.logging.Log;
@@ -54,11 +56,21 @@ public class LocalClientProxy extends AbstractRhqFacadeProxy<LocalClient> {
}
}
- protected Object doInvoke(Object proxy, Method originalMethod, java.lang.Class<?>[] argTypes, Object[] args) throws Throwable {
+ protected Object doInvoke(Object proxy, Method originalMethod, java.lang.Class<?>[] argTypes, final Object[] args) throws Throwable {
try {
- Method realMethod = localSLSB.getClass().getMethod(originalMethod.getName(), argTypes);
-
- return realMethod.invoke(localSLSB, args);
+ final Method realMethod = localSLSB.getClass().getMethod(originalMethod.getName(), argTypes);
+
+ //run this through the privileged block to elevate the privs of the script
+ //the scripts don't have the AllowEjbAccessPermission but this code has
+ //all perms (or at least all perms assigned to it by the current context,
+ //which at the time of writing is defined by the rhq-server.policy file
+ //which gives all code all permissions).
+ return AccessController.doPrivileged(new PrivilegedExceptionAction<Object>() {
+ @Override
+ public Object run() throws Exception {
+ return realMethod.invoke(localSLSB, args);
+ }
+ });
} catch (NoSuchMethodException e) {
throw new IllegalArgumentException("Method [" + originalMethod + "] does not have a desimplified counterpart with arguments " + Arrays.asList(argTypes) + ".", e);
}
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index 07a7d9b..391aef4 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -48,6 +48,12 @@
<scope>provided</scope> <!-- by JBossAS -->
</dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jnpserver</artifactId>
+ <version>4.2.2.GA</version>
+ <scope>provided</scope>
+ </dependency>
</dependencies>
<profiles>
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/AccessCheckingInitialContextFactoryBuilder.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/AccessCheckingInitialContextFactoryBuilder.java
new file mode 100644
index 0000000..9abe13c
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/AccessCheckingInitialContextFactoryBuilder.java
@@ -0,0 +1,252 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2011 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi;
+
+import java.net.InetAddress;
+import java.net.NetworkInterface;
+import java.net.SocketException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.UnknownHostException;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.Set;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.naming.directory.DirContext;
+import javax.naming.event.EventContext;
+import javax.naming.event.EventDirContext;
+import javax.naming.ldap.LdapContext;
+import javax.naming.spi.InitialContextFactory;
+import javax.naming.spi.InitialContextFactoryBuilder;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jnp.interfaces.NamingContextFactory;
+
+import org.rhq.jndi.context.AccessCheckingContextDecorator;
+import org.rhq.jndi.context.AccessCheckingContextDecoratorSetContext;
+import org.rhq.jndi.context.ContextDecorator;
+import org.rhq.jndi.context.URLPreferringContextDecoratorSetContext;
+import org.rhq.jndi.util.DecoratorPicker;
+
+/**
+ * This initial context factory builder is installed early on during the RHQ server startup
+ * and is later on used for obtaining the {@link Context}s for all JNDI lookups in the
+ * RHQ server.
+ * <p>
+ * We use a custom initial context factory builder to prevent the potential malicious 3rd party
+ * code (like CLI alert scripts) from supplying custom environment variables to {@link InitialContext}
+ * that would modify the JNDI lookup to skip our security access checks.
+ * <p>
+ * By using a builder we effectively take control of the initial context creation process
+ * and are free to ignore whatever the script is trying to supply.
+ * <p>
+ * This builder makes sure to install the RHQ server's security access checks to whatever
+ * initial context that is configured by the standard environment variables
+ * ({@link Context#INITIAL_CONTEXT_FACTORY}, etc.)
+ * <p>
+ * This class is heavily inspired by the implementation of a similar builder in JBoss AS 7.
+ *
+ * @see AllowRhqServerInternalsAccessPermission
+ *
+ * @author Lukas Krejci
+ */
+public class AccessCheckingInitialContextFactoryBuilder implements InitialContextFactoryBuilder {
+ private static final Log LOG = LogFactory.getLog(AccessCheckingInitialContextFactoryBuilder.class);
+
+ /**
+ * The list of JNDI name schemes that should be checked for security permissions
+ * (in addition to the names with no scheme).
+ *
+ * @see AccessCheckingContextDecorator
+ */
+ private static final String[] CHECKED_SCHEMES = { "java" };
+
+ private static final Set<Class<? extends Context>> SUPPORTED_CONTEXT_INTERFACES;
+
+ static {
+ SUPPORTED_CONTEXT_INTERFACES = new HashSet<Class<? extends Context>>();
+ SUPPORTED_CONTEXT_INTERFACES.add(Context.class);
+ SUPPORTED_CONTEXT_INTERFACES.add(DirContext.class);
+ SUPPORTED_CONTEXT_INTERFACES.add(EventContext.class);
+ SUPPORTED_CONTEXT_INTERFACES.add(EventDirContext.class);
+ SUPPORTED_CONTEXT_INTERFACES.add(LdapContext.class);
+ }
+
+ private static final Set<InetAddress> SERVER_BIND_IPS;
+ static {
+ SERVER_BIND_IPS = new HashSet<InetAddress>();
+
+ try {
+ String bindingAddressString = System.getProperty("jboss.bind.address");
+ InetAddress bindingAddress = InetAddress.getByName(bindingAddressString);
+
+ if (bindingAddress.isAnyLocalAddress()) {
+ Enumeration<NetworkInterface> ifaces = NetworkInterface.getNetworkInterfaces();
+ while (ifaces.hasMoreElements()) {
+ NetworkInterface iface = ifaces.nextElement();
+ SERVER_BIND_IPS.addAll(Collections.list(iface.getInetAddresses()));
+ }
+ } else {
+ SERVER_BIND_IPS.add(bindingAddress);
+ }
+ } catch (SocketException e) {
+ LOG.error("Could not obtain the list of local IPs", e);
+ } catch (UnknownHostException e) {
+ LOG.error("Failed to get the binding address of the RHQ server.", e);
+ }
+ }
+
+ private static final int JNP_PORT = Integer.parseInt(System.getProperty("rhq.server.startup.namingservice.port",
+ "2099"));
+
+ /**
+ * This is the default initial context factory that is returned when no other is
+ * configured using the environment variables.
+ * <p>
+ * It uses {@link NamingContextFactory} as the underlying mechanism - the same
+ * as the default configuration in JBoss 4.
+ */
+ private static final InitialContextFactory DEFAULT_FACTORY = new InitialContextFactory() {
+ public Context getInitialContext(Hashtable<?, ?> environment) throws NamingException {
+ return createSecureWrapper(new NamingContextFactory(), environment).getInitialContext(environment);
+ }
+ };
+
+ /**
+ * Create a InitialContext factory. If the environment does not override the factory class it will use the
+ * default context factory.
+ *
+ * @param environment The environment
+ * @return An initial context factory
+ * @throws NamingException If an error occurs loading the factory class.
+ */
+ public InitialContextFactory createInitialContextFactory(Hashtable<?, ?> environment) throws NamingException {
+ final String factoryClassName = (String) environment.get(Context.INITIAL_CONTEXT_FACTORY);
+ if (factoryClassName == null) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("No " + Context.INITIAL_CONTEXT_FACTORY + " set. Using the default factory.");
+ }
+ return DEFAULT_FACTORY;
+ }
+ final ClassLoader classLoader = getContextClassLoader();
+ try {
+ final Class<?> factoryClass = Class.forName(factoryClassName, true, classLoader);
+ InitialContextFactory configuredFactory = (InitialContextFactory) factoryClass.newInstance();
+ return createSecureWrapper(configuredFactory, environment);
+ } catch (Exception e) {
+ throw new NamingException("Failed instantiate InitialContextFactory " + factoryClassName
+ + " from classloader " + classLoader);
+ }
+ }
+
+ private ClassLoader getContextClassLoader() {
+ return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+ public ClassLoader run() {
+ return Thread.currentThread().getContextClassLoader();
+ }
+ });
+ }
+
+ private static InitialContextFactory
+ createSecureWrapper(InitialContextFactory factory, Hashtable<?, ?> environment) {
+ String providerUrl = (String) environment.get(Context.PROVIDER_URL);
+
+ if (providerUrl == null) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Wrapping " + factory + " of class " + factory.getClass() + " in an access checking wrapper. No provider URL detected.");
+ }
+ return getAccessCheckingFactory(factory);
+ } else {
+ try {
+ URI uri = new URI(providerUrl);
+ InetAddress providerHost = InetAddress.getByName(uri.getHost());
+
+ //check if we are accessing the RHQ server through some remoting
+ //interface.
+ if (uri.getPort() == JNP_PORT && SERVER_BIND_IPS.contains(providerHost)) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Wrapping " + factory + " of class " + factory.getClass() + " in an access checking wrapper. The provider URL points to this server.");
+ }
+ return getAccessCheckingFactory(factory);
+ } else {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Wrapping " + factory + " of class " + factory.getClass() + " in an URL preferring wrapper to enable remote connections.");
+ }
+ return getURLPreferringFactory(factory);
+ }
+ } catch (URISyntaxException e) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("The " + Context.PROVIDER_URL
+ + " is not a valid URI. Falling back to using the access checking wrapper for the factory "
+ + factory + " of class " + factory.getClass() + ".", e);
+ }
+ return getAccessCheckingFactory(factory);
+ } catch (UnknownHostException e) {
+ //let the factory deal with the unknown host...
+ //this most probably shouldn't be secured because localhost addresses
+ //should be resolvable.
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("The " + Context.PROVIDER_URL
+ + " is not resolvable. Falling back to using the URL preferring wrapper for the factory "
+ + factory + " of class " + factory.getClass() + ".", e);
+ }
+ return getURLPreferringFactory(factory);
+ }
+ }
+ }
+
+ private static InitialContextFactory getAccessCheckingFactory(InitialContextFactory original) {
+ ArrayList<DecoratorPicker<Context, ContextDecorator>> pickers = new ArrayList<DecoratorPicker<Context,ContextDecorator>>();
+ pickers.add(getURLPreferringDecoratorPicker());
+ pickers.add(getAccessCheckingDecoratorPicker());
+
+ return new DecoratingInitialContextFactory(original, pickers);
+ }
+
+ private static InitialContextFactory getURLPreferringFactory(InitialContextFactory original) {
+ ArrayList<DecoratorPicker<Context, ContextDecorator>> pickers = new ArrayList<DecoratorPicker<Context,ContextDecorator>>();
+ pickers.add(getURLPreferringDecoratorPicker());
+
+ return new DecoratingInitialContextFactory(original, pickers);
+ }
+
+ private static DecoratorPicker<Context, ContextDecorator> getAccessCheckingDecoratorPicker() {
+ DecoratorPicker<Context, ContextDecorator> ret = new DecoratorPicker<Context, ContextDecorator>();
+ ret.setContext(new AccessCheckingContextDecoratorSetContext(SUPPORTED_CONTEXT_INTERFACES, CHECKED_SCHEMES));
+
+ return ret;
+ }
+
+ private static DecoratorPicker<Context, ContextDecorator> getURLPreferringDecoratorPicker() {
+ DecoratorPicker<Context, ContextDecorator> ret = new DecoratorPicker<Context, ContextDecorator>();
+ ret.setContext(new URLPreferringContextDecoratorSetContext(SUPPORTED_CONTEXT_INTERFACES));
+
+ return ret;
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/AllowRhqServerInternalsAccessPermission.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/AllowRhqServerInternalsAccessPermission.java
new file mode 100644
index 0000000..aa807d6
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/AllowRhqServerInternalsAccessPermission.java
@@ -0,0 +1,36 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2011 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi;
+
+import java.security.BasicPermission;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class AllowRhqServerInternalsAccessPermission extends BasicPermission {
+
+ private static final long serialVersionUID = 1L;
+
+ public AllowRhqServerInternalsAccessPermission() {
+ super("org.rhq.allow.server.internals.access");
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/DecoratingInitialContextFactory.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/DecoratingInitialContextFactory.java
new file mode 100644
index 0000000..e0f1d84
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/DecoratingInitialContextFactory.java
@@ -0,0 +1,110 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi;
+
+import java.lang.reflect.Proxy;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Set;
+
+import javax.naming.Context;
+import javax.naming.NamingException;
+import javax.naming.spi.InitialContextFactory;
+
+import org.rhq.jndi.context.ContextDecorator;
+import org.rhq.jndi.util.DecoratorPicker;
+import org.rhq.jndi.util.DecoratingInvocationHandler;
+
+/**
+ * This class implements an initial context factory that decorates the contexts
+ * returned from a "wrapped" initial factory passed to this class in the constructor.
+ * <p>
+ * The contexts returned from the wrapped initial factory are hidden behind a proxy
+ * that implements the intersection of interfaces from the <code>supportedContextInterfaces</code>
+ * constructor parameter and the actual interfaces the wrapped context implements.
+ * <p>
+ * The proxy method calls are handled using the {@link DecoratingInvocationHandler} which is initialized
+ * with the list of {@link DecoratorPicker pickers} that are used to intercept the method
+ * calls on the wrapped context.
+ *
+ * @see DecoratorPicker
+ * @see DecoratingInvocationHandler
+ *
+ * @author Lukas Krejci
+ */
+public class DecoratingInitialContextFactory implements InitialContextFactory {
+
+ List<DecoratorPicker<Context, ContextDecorator>> pickers;
+ private InitialContextFactory factory;
+ private Set<Class<? extends Context>> supportedContextInterfaces;
+
+ public DecoratingInitialContextFactory(InitialContextFactory factory, List<DecoratorPicker<Context, ContextDecorator>> decoratorPickers) {
+ this.factory = factory;
+ this.pickers = decoratorPickers;
+ this.supportedContextInterfaces = new HashSet<Class<? extends Context>>();
+ for(DecoratorPicker<Context, ContextDecorator> picker : pickers) {
+ supportedContextInterfaces.addAll(picker.getContext().getSupportedInterfaces());
+ }
+ }
+
+ public Context getInitialContext(Hashtable<?, ?> environment) throws NamingException {
+ Context ctx = factory.getInitialContext(environment);
+
+ Set<Class<?>> implementedIfaces = getAllImplementedInterfaces(ctx.getClass());
+ Class<?>[] ii = new Class<?>[implementedIfaces.size()];
+ implementedIfaces.toArray(ii);
+
+ return (Context) Proxy.newProxyInstance(ctx.getClass().getClassLoader(), ii, new DecoratingInvocationHandler<Context, ContextDecorator>(pickers, ctx));
+ }
+
+ private Set<Class<?>> getAllImplementedInterfaces(Class<?> cls) {
+ HashSet<Class<?>> ret = new HashSet<Class<?>>();
+ getAllImplementedInterfaces(cls, ret);
+
+ ret.retainAll(supportedContextInterfaces);
+
+ return ret;
+ }
+
+ private static void getAllImplementedInterfaces(Class<?> cls, Set<Class<?>> output) {
+ Class<?>[] ifaces = cls.getInterfaces();
+
+ for (Class<?> iface : Arrays.asList(ifaces)) {
+ output.add(iface);
+ getAllImplementedInterfaces(iface, output);
+ }
+
+ if (cls.getSuperclass() != null) {
+ getAllImplementedInterfaces(cls.getSuperclass(), output);
+ }
+ }
+
+ @Override
+ public int hashCode() {
+ return factory.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ return factory.equals(o);
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingContextDecorator.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingContextDecorator.java
new file mode 100644
index 0000000..8970b0a
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingContextDecorator.java
@@ -0,0 +1,264 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2011 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import java.io.Serializable;
+import java.util.Arrays;
+import java.util.Hashtable;
+import java.util.List;
+
+import javax.naming.Binding;
+import javax.naming.Context;
+import javax.naming.Name;
+import javax.naming.NameClassPair;
+import javax.naming.NameParser;
+import javax.naming.NamingEnumeration;
+import javax.naming.NamingException;
+
+import org.rhq.jndi.AllowRhqServerInternalsAccessPermission;
+
+/**
+ * This is the "meat" of the RHQ's secured JNDI access. This {@link Context} decorator
+ * applied security checks in each method (lookups, (un)bindings, etc).
+ * <p>
+ * The security check consists of checking if the current callstack has the {@link AllowRhqServerInternalsAccessPermission}.
+ * <p>
+ * This decorator applies the security check on any JNDI name without a scheme and
+ * on any name that has a scheme listed in the {@link #checkedSchemes} list supplied
+ * in the constructor.
+ *
+ * @author Lukas Krejci
+ */
+public class AccessCheckingContextDecorator implements Context, ContextDecorator, Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private static final AllowRhqServerInternalsAccessPermission PERM = new AllowRhqServerInternalsAccessPermission();
+ private Context original;
+ private List<String> checkedSchemes;
+
+ public AccessCheckingContextDecorator(String... checkedSchemes) {
+ this.checkedSchemes = Arrays.asList(checkedSchemes);
+ }
+
+ public AccessCheckingContextDecorator(Context original, String... checkedSchemes) {
+ this.original = original;
+ this.checkedSchemes = Arrays.asList(checkedSchemes);
+ }
+
+ public void init(Context ctx) {
+ this.original = ctx;
+ }
+
+ protected Context getOriginal() {
+ return original;
+ }
+
+ protected static void check() {
+ SecurityManager sm = System.getSecurityManager();
+ if (sm != null) sm.checkPermission(PERM);
+ }
+
+ private void checkScheme(String scheme) {
+ if (scheme == null || checkedSchemes.contains(scheme)) {
+ check();
+ }
+ }
+
+ protected void check(String name) {
+ checkScheme(getURLScheme(name));
+ }
+
+ protected void check(Name name) {
+ if (name.size() == 0) {
+ check();
+ } else {
+ String first = name.get(0);
+ checkScheme(getURLScheme(first));
+ }
+ }
+
+ public Object lookup(Name name) throws NamingException {
+ check(name);
+ return original.lookup(name);
+ }
+
+ public Object lookup(String name) throws NamingException {
+ check(name);
+ return original.lookup(name);
+ }
+
+ public void bind(Name name, Object obj) throws NamingException {
+ check(name);
+ original.bind(name, obj);
+ }
+
+ public void bind(String name, Object obj) throws NamingException {
+ check(name);
+ original.bind(name, obj);
+ }
+
+ public void rebind(Name name, Object obj) throws NamingException {
+ check(name);
+ original.rebind(name, obj);
+ }
+
+ public void rebind(String name, Object obj) throws NamingException {
+ check(name);
+ original.rebind(name, obj);
+ }
+
+ public void unbind(Name name) throws NamingException {
+ check(name);
+ original.unbind(name);
+ }
+
+ public void unbind(String name) throws NamingException {
+ check(name);
+ original.unbind(name);
+ }
+
+ public void rename(Name oldName, Name newName) throws NamingException {
+ check(oldName);
+ check(newName);
+ original.rename(oldName, newName);
+ }
+
+ public void rename(String oldName, String newName) throws NamingException {
+ check(oldName);
+ check(newName);
+ original.rename(oldName, newName);
+ }
+
+ public NamingEnumeration<NameClassPair> list(Name name) throws NamingException {
+ check(name);
+ return original.list(name);
+ }
+
+ public NamingEnumeration<NameClassPair> list(String name) throws NamingException {
+ check(name);
+ return original.list(name);
+ }
+
+ public NamingEnumeration<Binding> listBindings(Name name) throws NamingException {
+ check(name);
+ return original.listBindings(name);
+ }
+
+ public NamingEnumeration<Binding> listBindings(String name) throws NamingException {
+ check(name);
+ return original.listBindings(name);
+ }
+
+ public void destroySubcontext(Name name) throws NamingException {
+ check(name);
+ original.destroySubcontext(name);
+ }
+
+ public void destroySubcontext(String name) throws NamingException {
+ check(name);
+ original.destroySubcontext(name);
+ }
+
+ public Context createSubcontext(Name name) throws NamingException {
+ check(name);
+ return original.createSubcontext(name);
+ }
+
+ public Context createSubcontext(String name) throws NamingException {
+ check(name);
+ return original.createSubcontext(name);
+ }
+
+ public Object lookupLink(Name name) throws NamingException {
+ check(name);
+ return original.lookupLink(name);
+ }
+
+ public Object lookupLink(String name) throws NamingException {
+ check(name);
+ return original.lookupLink(name);
+ }
+
+ public NameParser getNameParser(Name name) throws NamingException {
+ check(name);
+ return original.getNameParser(name);
+ }
+
+ public NameParser getNameParser(String name) throws NamingException {
+ check(name);
+ return original.getNameParser(name);
+ }
+
+ public Name composeName(Name name, Name prefix) throws NamingException {
+ check(name);
+ return original.composeName(name, prefix);
+ }
+
+ public String composeName(String name, String prefix) throws NamingException {
+ check(name);
+ return original.composeName(name, prefix);
+ }
+
+ public Object addToEnvironment(String propName, Object propVal) throws NamingException {
+ check();
+ return original.addToEnvironment(propName, propVal);
+ }
+
+ public Object removeFromEnvironment(String propName) throws NamingException {
+ check();
+ return original.removeFromEnvironment(propName);
+ }
+
+ public Hashtable<?, ?> getEnvironment() throws NamingException {
+ check();
+ return original.getEnvironment();
+ }
+
+ public void close() throws NamingException {
+ check();
+ original.close();
+ }
+
+ public String getNameInNamespace() throws NamingException {
+ check();
+ return original.getNameInNamespace();
+ }
+
+ //copied from InitialContext
+ private static String getURLScheme(String str) {
+ int colon_posn = str.indexOf(':');
+ int slash_posn = str.indexOf('/');
+
+ if (colon_posn > 0 && (slash_posn == -1 || colon_posn < slash_posn))
+ return str.substring(0, colon_posn);
+ return null;
+ }
+
+ @Override
+ public int hashCode() {
+ return getOriginal() == null ? super.hashCode() : getOriginal().hashCode();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ return getOriginal() == null ? super.equals(o) : getOriginal().equals(o);
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingContextDecoratorSetContext.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingContextDecoratorSetContext.java
new file mode 100644
index 0000000..284fd0c
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingContextDecoratorSetContext.java
@@ -0,0 +1,75 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import java.lang.reflect.Constructor;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.naming.Context;
+
+import org.rhq.jndi.util.DecoratorSetContext;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class AccessCheckingContextDecoratorSetContext implements DecoratorSetContext<Context, ContextDecorator> {
+
+ private static final Set<Class<? extends ContextDecorator>> DECORATOR_CLASSES;
+ static {
+ HashSet<Class<? extends ContextDecorator>> tmp = new HashSet<Class<? extends ContextDecorator>>();
+ tmp.add(AccessCheckingContextDecorator.class);
+ tmp.add(AccessCheckingDirContextDecorator.class);
+ tmp.add(AccessCheckingEventContextDecorator.class);
+ tmp.add(AccessCheckingEventDirContextDecorator.class);
+ tmp.add(AccessCheckingLdapContextDecorator.class);
+
+ DECORATOR_CLASSES = Collections.unmodifiableSet(tmp);
+ }
+
+ private Set<Class<? extends Context>> supportedInterfaces;
+ private String[] checkedSchemes;
+
+ public AccessCheckingContextDecoratorSetContext(Set<Class<? extends Context>> supportedInterfaces, String... checkedSchemes) {
+ this.supportedInterfaces = supportedInterfaces;
+ this.checkedSchemes = checkedSchemes;
+ }
+
+ public ContextDecorator instantiate(Class<? extends ContextDecorator> decoratorClass) throws Exception {
+ Constructor<? extends ContextDecorator> ctor = decoratorClass.getConstructor(String[].class);
+
+ return ctor.newInstance((Object)checkedSchemes);
+ }
+
+ public Set<Class<? extends Context>> getSupportedInterfaces() {
+ return supportedInterfaces;
+ }
+
+ public Set<Class<? extends ContextDecorator>> getDecoratorClasses() {
+ return DECORATOR_CLASSES;
+ }
+
+ public void init(ContextDecorator decorator, Context object) throws Exception {
+ decorator.init(object);
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingDirContextDecorator.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingDirContextDecorator.java
new file mode 100644
index 0000000..1614180
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingDirContextDecorator.java
@@ -0,0 +1,187 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import javax.naming.Name;
+import javax.naming.NamingEnumeration;
+import javax.naming.NamingException;
+import javax.naming.directory.Attributes;
+import javax.naming.directory.DirContext;
+import javax.naming.directory.ModificationItem;
+import javax.naming.directory.SearchControls;
+import javax.naming.directory.SearchResult;
+
+/**
+ * A decorator of {@link DirContext}.
+ *
+ * @author Lukas Krejci
+ */
+public class AccessCheckingDirContextDecorator extends AccessCheckingContextDecorator implements DirContext {
+
+ private static final long serialVersionUID = 1L;
+
+ public AccessCheckingDirContextDecorator(String... checkedSchemes) {
+ super(checkedSchemes);
+ }
+
+ public AccessCheckingDirContextDecorator(DirContext original, String... checkedSchemes) {
+ super(original, checkedSchemes);
+ }
+
+ @Override
+ protected DirContext getOriginal() {
+ return (DirContext) super.getOriginal();
+ }
+
+ public Attributes getAttributes(Name name) throws NamingException {
+ check(name);
+ return getOriginal().getAttributes(name);
+ }
+
+ public Attributes getAttributes(String name) throws NamingException {
+ check(name);
+ return getOriginal().getAttributes(name);
+ }
+
+ public Attributes getAttributes(Name name, String[] attrIds) throws NamingException {
+ check(name);
+ return getOriginal().getAttributes(name, attrIds);
+ }
+
+ public Attributes getAttributes(String name, String[] attrIds) throws NamingException {
+ check(name);
+ return getOriginal().getAttributes(name, attrIds);
+ }
+
+ public void modifyAttributes(Name name, int mod_op, Attributes attrs) throws NamingException {
+ check(name);
+ getOriginal().modifyAttributes(name, mod_op, attrs);
+ }
+
+ public void modifyAttributes(String name, int mod_op, Attributes attrs) throws NamingException {
+ check(name);
+ getOriginal().modifyAttributes(name, mod_op, attrs);
+ }
+
+ public void modifyAttributes(Name name, ModificationItem[] mods) throws NamingException {
+ check(name);
+ getOriginal().modifyAttributes(name, mods);
+ }
+
+ public void modifyAttributes(String name, ModificationItem[] mods) throws NamingException {
+ check(name);
+ getOriginal().modifyAttributes(name, mods);
+ }
+
+ public void bind(Name name, Object obj, Attributes attrs) throws NamingException {
+ check(name);
+ getOriginal().bind(name, obj, attrs);
+ }
+
+ public void bind(String name, Object obj, Attributes attrs) throws NamingException {
+ check(name);
+ getOriginal().bind(name, obj, attrs);
+ }
+
+ public void rebind(Name name, Object obj, Attributes attrs) throws NamingException {
+ check(name);
+ getOriginal().rebind(name, obj, attrs);
+ }
+
+ public void rebind(String name, Object obj, Attributes attrs) throws NamingException {
+ check(name);
+ getOriginal().rebind(name, obj, attrs);
+ }
+
+ public DirContext createSubcontext(Name name, Attributes attrs) throws NamingException {
+ check(name);
+ return getOriginal().createSubcontext(name, attrs);
+ }
+
+ public DirContext createSubcontext(String name, Attributes attrs) throws NamingException {
+ check(name);
+ return getOriginal().createSubcontext(name, attrs);
+ }
+
+ public DirContext getSchema(Name name) throws NamingException {
+ check(name);
+ return getOriginal().getSchema(name);
+ }
+
+ public DirContext getSchema(String name) throws NamingException {
+ check(name);
+ return getOriginal().getSchema(name);
+ }
+
+ public DirContext getSchemaClassDefinition(Name name) throws NamingException {
+ check(name);
+ return getOriginal().getSchemaClassDefinition(name);
+ }
+
+ public DirContext getSchemaClassDefinition(String name) throws NamingException {
+ check(name);
+ return getOriginal().getSchema(name);
+ }
+
+ public NamingEnumeration<SearchResult>
+ search(Name name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException {
+ check(name);
+ return getOriginal().search(name, matchingAttributes, attributesToReturn);
+ }
+
+ public NamingEnumeration<SearchResult> search(String name, Attributes matchingAttributes,
+ String[] attributesToReturn) throws NamingException {
+ check(name);
+ return getOriginal().search(name, matchingAttributes, attributesToReturn);
+ }
+
+ public NamingEnumeration<SearchResult> search(Name name, Attributes matchingAttributes) throws NamingException {
+ check(name);
+ return getOriginal().search(name, matchingAttributes);
+ }
+
+ public NamingEnumeration<SearchResult> search(String name, Attributes matchingAttributes) throws NamingException {
+ check(name);
+ return getOriginal().search(name, matchingAttributes);
+ }
+
+ public NamingEnumeration<SearchResult> search(Name name, String filter, SearchControls cons) throws NamingException {
+ check(name);
+ return getOriginal().search(name, filter, cons);
+ }
+
+ public NamingEnumeration<SearchResult> search(String name, String filter, SearchControls cons)
+ throws NamingException {
+ check(name);
+ return getOriginal().search(name, filter, cons);
+ }
+
+ public NamingEnumeration<SearchResult>
+ search(Name name, String filterExpr, Object[] filterArgs, SearchControls cons) throws NamingException {
+ check(name);
+ return getOriginal().search(name, filterExpr, filterArgs, cons);
+ }
+
+ public NamingEnumeration<SearchResult> search(String name, String filterExpr, Object[] filterArgs,
+ SearchControls cons) throws NamingException {
+ check(name);
+ return getOriginal().search(name, filterExpr, filterArgs, cons);
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingEventContextDecorator.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingEventContextDecorator.java
new file mode 100644
index 0000000..67a9527
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingEventContextDecorator.java
@@ -0,0 +1,69 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import javax.naming.Name;
+import javax.naming.NamingException;
+import javax.naming.event.EventContext;
+import javax.naming.event.NamingListener;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class AccessCheckingEventContextDecorator extends AccessCheckingContextDecorator implements EventContext {
+
+ private static final long serialVersionUID = 1L;
+
+ public AccessCheckingEventContextDecorator(String... checkedSchemes) {
+ super(checkedSchemes);
+ }
+
+ public AccessCheckingEventContextDecorator(EventContext original, String... checkedSchemes) {
+ super(original, checkedSchemes);
+ }
+
+ @Override
+ protected EventContext getOriginal() {
+ return (EventContext) super.getOriginal();
+ }
+
+ public void addNamingListener(Name target, int scope, NamingListener l) throws NamingException {
+ check(target);
+ getOriginal().addNamingListener(target, scope, l);
+ }
+
+ public void addNamingListener(String target, int scope, NamingListener l) throws NamingException {
+ check(target);
+ getOriginal().addNamingListener(target, scope, l);
+ }
+
+ public void removeNamingListener(NamingListener l) throws NamingException {
+ check();
+ getOriginal().removeNamingListener(l);
+ }
+
+ public boolean targetMustExist() throws NamingException {
+ check();
+ return getOriginal().targetMustExist();
+ }
+
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingEventDirContextDecorator.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingEventDirContextDecorator.java
new file mode 100644
index 0000000..ed7a848
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingEventDirContextDecorator.java
@@ -0,0 +1,96 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import javax.naming.Name;
+import javax.naming.NamingException;
+import javax.naming.directory.SearchControls;
+import javax.naming.event.EventDirContext;
+import javax.naming.event.NamingListener;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class AccessCheckingEventDirContextDecorator extends AccessCheckingDirContextDecorator implements
+ EventDirContext {
+
+ private static final long serialVersionUID = 1L;
+
+ public AccessCheckingEventDirContextDecorator(String... checkedSchemes) {
+ super(checkedSchemes);
+ }
+
+ public AccessCheckingEventDirContextDecorator(EventDirContext original, String... checkedSchemes) {
+ super(original, checkedSchemes);
+ }
+
+ @Override
+ protected EventDirContext getOriginal() {
+ return (EventDirContext) super.getOriginal();
+ }
+
+ public void addNamingListener(Name target, int scope, NamingListener l) throws NamingException {
+ check(target);
+ getOriginal().addNamingListener(target, scope, l);
+ }
+
+ public void addNamingListener(String target, int scope, NamingListener l) throws NamingException {
+ check(target);
+ getOriginal().addNamingListener(target, scope, l);
+ }
+
+ public void removeNamingListener(NamingListener l) throws NamingException {
+ check();
+ getOriginal().removeNamingListener(l);
+ }
+
+ public boolean targetMustExist() throws NamingException {
+ check();
+ return getOriginal().targetMustExist();
+ }
+
+ public void addNamingListener(Name target, String filter, SearchControls ctls, NamingListener l)
+ throws NamingException {
+ check(target);
+ getOriginal().addNamingListener(target, filter, ctls, l);
+ }
+
+ public void addNamingListener(String target, String filter, SearchControls ctls, NamingListener l)
+ throws NamingException {
+ check(target);
+ getOriginal().addNamingListener(target, filter, ctls, l);
+ }
+
+ public void
+ addNamingListener(Name target, String filter, Object[] filterArgs, SearchControls ctls, NamingListener l)
+ throws NamingException {
+ check(target);
+ getOriginal().addNamingListener(target, filter, filterArgs, ctls, l);
+ }
+
+ public void addNamingListener(String target, String filter, Object[] filterArgs, SearchControls ctls,
+ NamingListener l) throws NamingException {
+ check(target);
+ getOriginal().addNamingListener(target, filter, filterArgs, ctls, l);
+ }
+
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingLdapContextDecorator.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingLdapContextDecorator.java
new file mode 100644
index 0000000..e361db8
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingLdapContextDecorator.java
@@ -0,0 +1,85 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import javax.naming.NamingException;
+import javax.naming.ldap.Control;
+import javax.naming.ldap.ExtendedRequest;
+import javax.naming.ldap.ExtendedResponse;
+import javax.naming.ldap.LdapContext;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class AccessCheckingLdapContextDecorator extends AccessCheckingDirContextDecorator implements LdapContext {
+
+ private static final long serialVersionUID = 1L;
+
+ public AccessCheckingLdapContextDecorator(String... checkedSchemes) {
+ super(checkedSchemes);
+ }
+
+ public AccessCheckingLdapContextDecorator(LdapContext original, String... checkedSchemes) {
+ super(original, checkedSchemes);
+ }
+
+ @Override
+ protected LdapContext getOriginal() {
+ return (LdapContext) super.getOriginal();
+ }
+
+ public ExtendedResponse extendedOperation(ExtendedRequest request) throws NamingException {
+ check();
+ return getOriginal().extendedOperation(request);
+ }
+
+ public LdapContext newInstance(Control[] requestControls) throws NamingException {
+ check();
+ return getOriginal().newInstance(requestControls);
+ }
+
+ public void reconnect(Control[] connCtls) throws NamingException {
+ check();
+ getOriginal().reconnect(connCtls);
+ }
+
+ public Control[] getConnectControls() throws NamingException {
+ check();
+ return getOriginal().getConnectControls();
+ }
+
+ public void setRequestControls(Control[] requestControls) throws NamingException {
+ check();
+ getOriginal().setRequestControls(requestControls);
+ }
+
+ public Control[] getRequestControls() throws NamingException {
+ check();
+ return getOriginal().getRequestControls();
+ }
+
+ public Control[] getResponseControls() throws NamingException {
+ check();
+ return getOriginal().getResponseControls();
+ }
+
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/ContextDecorator.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/ContextDecorator.java
new file mode 100644
index 0000000..5755ebd
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/ContextDecorator.java
@@ -0,0 +1,33 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import javax.naming.Context;
+import javax.naming.NamingException;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public interface ContextDecorator extends Context {
+
+ void init(Context context) throws NamingException;
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecorator.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecorator.java
new file mode 100644
index 0000000..3f3a95d
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecorator.java
@@ -0,0 +1,222 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2011 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import java.io.Serializable;
+import java.util.Hashtable;
+
+import javax.naming.Binding;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.Name;
+import javax.naming.NameClassPair;
+import javax.naming.NameParser;
+import javax.naming.NamingEnumeration;
+import javax.naming.NamingException;
+
+import org.rhq.jndi.AccessCheckingInitialContextFactoryBuilder;
+
+/**
+ * This is a wrapper class around another {@link Context} implementation that
+ * prefers to use an URL context for some operation if the JNDI name contains
+ * a scheme rather than the original. This is the behavior of {@link InitialContext}
+ * which we need to restore in the contexts created by the {@link AccessCheckingInitialContextFactoryBuilder}
+ * (which an {@link InitialContext} uses exclusively if the builder is set).
+ * <p>
+ * This is important because RHQ server has its own initial context factory
+ * builder that creates factories that in turn create contexts. If the default
+ * {@link InitialContext} implementation was used, we'd never be able to lookup
+ * scheme-based names because the default implementation of the {@link InitialContext}
+ * always uses the default context of the builder if one is installed no matter
+ * the scheme in the name.
+ * <p>
+ * The {@link AccessCheckingInitialContextFactoryBuilder} wraps the context returned
+ * by the factory in an instance of this class and thus is restoring the original
+ * intended behavior of the {@link InitialContext}. It looks at the name being looked
+ * up (bound or whatever) and prefers to use the URL context factories if the name
+ * contains the scheme (as does the {@link InitialContext} if no builder is installed).
+ * If the name doesn't contain a scheme, the provided default context factory is used to
+ * look up the name.
+ *
+ * @author Lukas Krejci
+ */
+public class URLPreferringContextDecorator implements Context, ContextDecorator, Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private Context original;
+
+ public URLPreferringContextDecorator() {
+
+ }
+
+ public URLPreferringContextDecorator(Context ctx) {
+ original = ctx;
+ }
+
+ public void init(Context context) {
+ original = context;
+ }
+
+ protected Context getOriginal() throws NamingException {
+ return original;
+ }
+
+ protected Context getURLOrDefaultInitCtx(Name name) throws NamingException {
+ @SuppressWarnings("unchecked")
+ Context urlContext = URLPreferringContextDecoratorHelper.getURLContext(name, (Hashtable<Object, Object>) getEnvironment());
+ return urlContext == null ? getOriginal() : urlContext;
+ }
+
+ protected Context getURLOrDefaultInitCtx(String name) throws NamingException {
+ @SuppressWarnings("unchecked")
+ Context urlContext = URLPreferringContextDecoratorHelper.getURLContext(name, (Hashtable<Object, Object>) getEnvironment());
+ return urlContext == null ? getOriginal() : urlContext;
+ }
+
+ public Object lookup(Name name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).lookup(name);
+ }
+
+ public Object lookup(String name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).lookup(name);
+ }
+
+ public void bind(Name name, Object obj) throws NamingException {
+ getURLOrDefaultInitCtx(name).bind(name, obj);
+ }
+
+ public void bind(String name, Object obj) throws NamingException {
+ getURLOrDefaultInitCtx(name).bind(name, obj);
+ }
+
+ public void rebind(Name name, Object obj) throws NamingException {
+ getURLOrDefaultInitCtx(name).rebind(name, obj);
+ }
+
+ public void rebind(String name, Object obj) throws NamingException {
+ getURLOrDefaultInitCtx(name).rebind(name, obj);
+ }
+
+ public void unbind(Name name) throws NamingException {
+ getURLOrDefaultInitCtx(name).unbind(name);
+ }
+
+ public void unbind(String name) throws NamingException {
+ getURLOrDefaultInitCtx(name).unbind(name);
+ }
+
+ public void rename(Name oldName, Name newName) throws NamingException {
+ getURLOrDefaultInitCtx(oldName).rename(oldName, newName);
+ }
+
+ public void rename(String oldName, String newName) throws NamingException {
+ getURLOrDefaultInitCtx(oldName).rename(oldName, newName);
+ }
+
+ public NamingEnumeration<NameClassPair> list(Name name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).list(name);
+ }
+
+ public NamingEnumeration<NameClassPair> list(String name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).list(name);
+ }
+
+ public NamingEnumeration<Binding> listBindings(Name name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).listBindings(name);
+ }
+
+ public NamingEnumeration<Binding> listBindings(String name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).listBindings(name);
+ }
+
+ public void destroySubcontext(Name name) throws NamingException {
+ getURLOrDefaultInitCtx(name).destroySubcontext(name);
+ }
+
+ public void destroySubcontext(String name) throws NamingException {
+ getURLOrDefaultInitCtx(name).destroySubcontext(name);
+ }
+
+ public Context createSubcontext(Name name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).createSubcontext(name);
+ }
+
+ public Context createSubcontext(String name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).createSubcontext(name);
+ }
+
+ public Object lookupLink(Name name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).lookupLink(name);
+ }
+
+ public Object lookupLink(String name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).lookupLink(name);
+ }
+
+ public NameParser getNameParser(Name name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).getNameParser(name);
+ }
+
+ public NameParser getNameParser(String name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).getNameParser(name);
+ }
+
+ public Name composeName(Name name, Name prefix) throws NamingException {
+ return getOriginal().composeName(name, prefix);
+ }
+
+ public String composeName(String name, String prefix) throws NamingException {
+ return getOriginal().composeName(name, prefix);
+ }
+
+ public Object addToEnvironment(String propName, Object propVal) throws NamingException {
+ return getOriginal().addToEnvironment(propName, propVal);
+ }
+
+ public Object removeFromEnvironment(String propName) throws NamingException {
+ return getOriginal().removeFromEnvironment(propName);
+ }
+
+ public Hashtable<?, ?> getEnvironment() throws NamingException {
+ return getOriginal().getEnvironment();
+ }
+
+ public void close() throws NamingException {
+ if (getOriginal() != null) {
+ getOriginal().close();
+ original = null;
+ }
+ }
+
+ public String getNameInNamespace() throws NamingException {
+ return getOriginal().getNameInNamespace();
+ }
+
+ @Override
+ public int hashCode() {
+ return original == null ? super.hashCode() : original.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ return original == null ? super.equals(o) : original.equals(o);
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecoratorHelper.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecoratorHelper.java
new file mode 100644
index 0000000..6e7debc
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecoratorHelper.java
@@ -0,0 +1,76 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import java.util.Hashtable;
+
+import javax.naming.Context;
+import javax.naming.Name;
+import javax.naming.NamingException;
+import javax.naming.spi.NamingManager;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class URLPreferringContextDecoratorHelper {
+
+ private URLPreferringContextDecoratorHelper() {
+
+ }
+
+ public static Context getURLContext(String name, Hashtable<Object, Object> env) throws NamingException {
+ String scheme = getURLScheme(name);
+ if (scheme != null) {
+ Context ctx = NamingManager.getURLContext(scheme, env);
+ if (ctx != null) {
+ return ctx;
+ }
+ }
+
+ return null;
+ }
+
+ public static Context getURLContext(Name name, Hashtable<Object, Object> env) throws NamingException {
+ if (name.size() > 0) {
+ String first = name.get(0);
+ String scheme = getURLScheme(first);
+ if (scheme != null) {
+ Context ctx = NamingManager.getURLContext(scheme, env);
+ if (ctx != null) {
+ return ctx;
+ }
+ }
+ }
+
+ return null;
+ }
+
+ //copied from InitialContext
+ private static String getURLScheme(String str) {
+ int colon_posn = str.indexOf(':');
+ int slash_posn = str.indexOf('/');
+
+ if (colon_posn > 0 && (slash_posn == -1 || colon_posn < slash_posn))
+ return str.substring(0, colon_posn);
+ return null;
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecoratorSetContext.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecoratorSetContext.java
new file mode 100644
index 0000000..828cd74
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecoratorSetContext.java
@@ -0,0 +1,71 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.naming.Context;
+
+import org.rhq.jndi.util.DecoratorSetContext;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class URLPreferringContextDecoratorSetContext implements DecoratorSetContext<Context, ContextDecorator> {
+
+ private static final Set<Class<? extends ContextDecorator>> DECORATOR_CLASSES;
+ static {
+ HashSet<Class<? extends ContextDecorator>> tmp = new HashSet<Class<? extends ContextDecorator>>();
+ tmp.add(URLPreferringContextDecorator.class);
+ tmp.add(URLPreferringDirContextDecorator.class);
+ tmp.add(URLPreferringEventContextDecorator.class);
+ tmp.add(URLPreferringEventDirContextDecorator.class);
+ tmp.add(URLPreferringLdapContextDecorator.class);
+
+ DECORATOR_CLASSES = Collections.unmodifiableSet(tmp);
+ }
+
+ private Set<Class<? extends Context>> supportedInterfaces;
+
+ public URLPreferringContextDecoratorSetContext(Set<Class<? extends Context>> supportedInterfaces) {
+ this.supportedInterfaces = supportedInterfaces;
+ }
+
+ public Set<Class<? extends Context>> getSupportedInterfaces() {
+ return supportedInterfaces;
+ }
+
+ public Set<Class<? extends ContextDecorator>> getDecoratorClasses() {
+ return DECORATOR_CLASSES;
+ }
+
+ public ContextDecorator instantiate(Class<? extends ContextDecorator> decoratorClass) throws Exception {
+ return decoratorClass.newInstance();
+ }
+
+ public void init(ContextDecorator decorator, Context object) throws Exception {
+ decorator.init(object);
+ }
+
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringDirContextDecorator.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringDirContextDecorator.java
new file mode 100644
index 0000000..6a49942
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringDirContextDecorator.java
@@ -0,0 +1,185 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import javax.naming.Context;
+import javax.naming.Name;
+import javax.naming.NamingEnumeration;
+import javax.naming.NamingException;
+import javax.naming.NoInitialContextException;
+import javax.naming.NotContextException;
+import javax.naming.directory.Attributes;
+import javax.naming.directory.DirContext;
+import javax.naming.directory.ModificationItem;
+import javax.naming.directory.SearchControls;
+import javax.naming.directory.SearchResult;
+
+/**
+ * Akin to {@link URLPreferringContextDecorator} this class implements the similar logic
+ * for {@link DirContext}s.
+ *
+ * @author Lukas Krejci
+ */
+public class URLPreferringDirContextDecorator extends URLPreferringContextDecorator implements DirContext {
+
+ private static final long serialVersionUID = 1L;
+
+ public URLPreferringDirContextDecorator() {
+ super(null);
+ }
+
+ public URLPreferringDirContextDecorator(DirContext ctx) {
+ super(ctx);
+ }
+
+ protected DirContext checkAndCast(Context ctx) throws NamingException {
+ if (!(ctx instanceof DirContext)) {
+ if (ctx == null) {
+ throw new NoInitialContextException();
+ } else {
+ throw new NotContextException(
+ "Not an instance of DirContext");
+ }
+ }
+
+ return (DirContext) ctx;
+ }
+
+ @Override
+ protected DirContext getURLOrDefaultInitCtx(Name name) throws NamingException {
+ Context ctx = super.getURLOrDefaultInitCtx(name);
+ return checkAndCast(ctx);
+ }
+
+ @Override
+ protected DirContext getURLOrDefaultInitCtx(String name) throws NamingException {
+ Context ctx = super.getURLOrDefaultInitCtx(name);
+ return checkAndCast(ctx);
+ }
+
+ public Attributes getAttributes(Name name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).getAttributes(name);
+ }
+
+ public Attributes getAttributes(String name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).getAttributes(name);
+ }
+
+ public Attributes getAttributes(Name name, String[] attrIds) throws NamingException {
+ return getURLOrDefaultInitCtx(name).getAttributes(name, attrIds);
+ }
+
+ public Attributes getAttributes(String name, String[] attrIds) throws NamingException {
+ return getURLOrDefaultInitCtx(name).getAttributes(name, attrIds);
+ }
+
+ public void modifyAttributes(Name name, int mod_op, Attributes attrs) throws NamingException {
+ getURLOrDefaultInitCtx(name).modifyAttributes(name, mod_op, attrs);
+ }
+
+ public void modifyAttributes(String name, int mod_op, Attributes attrs) throws NamingException {
+ getURLOrDefaultInitCtx(name).modifyAttributes(name, mod_op, attrs);
+ }
+
+ public void modifyAttributes(Name name, ModificationItem[] mods) throws NamingException {
+ getURLOrDefaultInitCtx(name).modifyAttributes(name, mods);
+ }
+
+ public void modifyAttributes(String name, ModificationItem[] mods) throws NamingException {
+ getURLOrDefaultInitCtx(name).modifyAttributes(name, mods);
+ }
+
+ public void bind(Name name, Object obj, Attributes attrs) throws NamingException {
+ getURLOrDefaultInitCtx(name).bind(name, obj, attrs);
+ }
+
+ public void bind(String name, Object obj, Attributes attrs) throws NamingException {
+ getURLOrDefaultInitCtx(name).bind(name, obj, attrs);
+ }
+
+ public void rebind(Name name, Object obj, Attributes attrs) throws NamingException {
+ getURLOrDefaultInitCtx(name).rebind(name, obj, attrs);
+ }
+
+ public void rebind(String name, Object obj, Attributes attrs) throws NamingException {
+ getURLOrDefaultInitCtx(name).rebind(name, obj, attrs);
+ }
+
+ public DirContext createSubcontext(Name name, Attributes attrs) throws NamingException {
+ return getURLOrDefaultInitCtx(name).createSubcontext(name, attrs);
+ }
+
+ public DirContext createSubcontext(String name, Attributes attrs) throws NamingException {
+ return getURLOrDefaultInitCtx(name).createSubcontext(name, attrs);
+ }
+
+ public DirContext getSchema(Name name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).getSchema(name);
+ }
+
+ public DirContext getSchema(String name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).getSchema(name);
+ }
+
+ public DirContext getSchemaClassDefinition(Name name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).getSchemaClassDefinition(name);
+ }
+
+ public DirContext getSchemaClassDefinition(String name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).getSchemaClassDefinition(name);
+ }
+
+ public NamingEnumeration<SearchResult>
+ search(Name name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException {
+ return getURLOrDefaultInitCtx(name).search(name, matchingAttributes, attributesToReturn);
+ }
+
+ public NamingEnumeration<SearchResult> search(String name, Attributes matchingAttributes,
+ String[] attributesToReturn) throws NamingException {
+ return getURLOrDefaultInitCtx(name).search(name, matchingAttributes, attributesToReturn);
+ }
+
+ public NamingEnumeration<SearchResult> search(Name name, Attributes matchingAttributes) throws NamingException {
+ return getURLOrDefaultInitCtx(name).search(name, matchingAttributes);
+ }
+
+ public NamingEnumeration<SearchResult> search(String name, Attributes matchingAttributes) throws NamingException {
+ return getURLOrDefaultInitCtx(name).search(name, matchingAttributes);
+ }
+
+ public NamingEnumeration<SearchResult> search(Name name, String filter, SearchControls cons) throws NamingException {
+ return getURLOrDefaultInitCtx(name).search(name, filter, cons);
+ }
+
+ public NamingEnumeration<SearchResult> search(String name, String filter, SearchControls cons)
+ throws NamingException {
+ return getURLOrDefaultInitCtx(name).search(name, filter, cons);
+ }
+
+ public NamingEnumeration<SearchResult>
+ search(Name name, String filterExpr, Object[] filterArgs, SearchControls cons) throws NamingException {
+ return getURLOrDefaultInitCtx(name).search(name, filterExpr, filterArgs, cons);
+ }
+
+ public NamingEnumeration<SearchResult> search(String name, String filterExpr, Object[] filterArgs,
+ SearchControls cons) throws NamingException {
+ return getURLOrDefaultInitCtx(name).search(name, filterExpr, filterArgs, cons);
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringEventContextDecorator.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringEventContextDecorator.java
new file mode 100644
index 0000000..e3298a0
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringEventContextDecorator.java
@@ -0,0 +1,81 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import javax.naming.Context;
+import javax.naming.Name;
+import javax.naming.NamingException;
+import javax.naming.NoInitialContextException;
+import javax.naming.NotContextException;
+import javax.naming.event.EventContext;
+import javax.naming.event.NamingListener;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class URLPreferringEventContextDecorator extends URLPreferringContextDecorator implements EventContext {
+
+ private static final long serialVersionUID = 1L;
+
+ public URLPreferringEventContextDecorator() {
+ super(null);
+ }
+
+ public URLPreferringEventContextDecorator(EventContext ctx) {
+ super(ctx);
+ }
+
+ protected EventContext checkAndCast(Context ctx) throws NamingException {
+ if (!(ctx instanceof EventContext)) {
+ if (ctx == null) {
+ throw new NoInitialContextException();
+ } else {
+ throw new NotContextException(
+ "Not an instance of EventContext");
+ }
+ }
+
+ return (EventContext) ctx;
+ }
+
+ @Override
+ protected EventContext getOriginal() throws NamingException {
+ return checkAndCast(super.getOriginal());
+ }
+
+ public void addNamingListener(Name target, int scope, NamingListener l) throws NamingException {
+ getOriginal().addNamingListener(target, scope, l);
+ }
+
+ public void addNamingListener(String target, int scope, NamingListener l) throws NamingException {
+ getOriginal().addNamingListener(target, scope, l);
+ }
+
+ public void removeNamingListener(NamingListener l) throws NamingException {
+ getOriginal().removeNamingListener(l);
+ }
+
+ public boolean targetMustExist() throws NamingException {
+ return getOriginal().targetMustExist();
+ }
+
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringEventDirContextDecorator.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringEventDirContextDecorator.java
new file mode 100644
index 0000000..4925297
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringEventDirContextDecorator.java
@@ -0,0 +1,104 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import javax.naming.Context;
+import javax.naming.Name;
+import javax.naming.NamingException;
+import javax.naming.NoInitialContextException;
+import javax.naming.NotContextException;
+import javax.naming.directory.SearchControls;
+import javax.naming.event.EventDirContext;
+import javax.naming.event.NamingListener;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class URLPreferringEventDirContextDecorator extends URLPreferringDirContextDecorator implements EventDirContext {
+
+ private static final long serialVersionUID = 1L;
+
+ public URLPreferringEventDirContextDecorator() {
+ super(null);
+ }
+
+ public URLPreferringEventDirContextDecorator(EventDirContext ctx) {
+ super(ctx);
+ }
+
+ @Override
+ protected EventDirContext checkAndCast(Context ctx) throws NamingException {
+ if (!(ctx instanceof EventDirContext)) {
+ if (ctx == null) {
+ throw new NoInitialContextException();
+ } else {
+ throw new NotContextException(
+ "Not an instance of EventDirContext");
+ }
+ }
+
+ return (EventDirContext) ctx;
+ }
+
+ @Override
+ protected EventDirContext getOriginal() throws NamingException {
+ return checkAndCast(super.getOriginal());
+ }
+
+ public void addNamingListener(Name target, int scope, NamingListener l) throws NamingException {
+ getOriginal().addNamingListener(target, scope, l);
+ }
+
+ public void addNamingListener(String target, int scope, NamingListener l) throws NamingException {
+ getOriginal().addNamingListener(target, scope, l);
+ }
+
+ public void removeNamingListener(NamingListener l) throws NamingException {
+ getOriginal().removeNamingListener(l);
+ }
+
+ public boolean targetMustExist() throws NamingException {
+ return getOriginal().targetMustExist();
+ }
+
+ public void addNamingListener(Name target, String filter, SearchControls ctls, NamingListener l)
+ throws NamingException {
+ getOriginal().addNamingListener(target, filter, ctls, l);
+ }
+
+ public void addNamingListener(String target, String filter, SearchControls ctls, NamingListener l)
+ throws NamingException {
+ getOriginal().addNamingListener(target, filter, ctls, l);
+ }
+
+ public void
+ addNamingListener(Name target, String filter, Object[] filterArgs, SearchControls ctls, NamingListener l)
+ throws NamingException {
+ getOriginal().addNamingListener(target, filter, filterArgs, ctls, l);
+ }
+
+ public void addNamingListener(String target, String filter, Object[] filterArgs, SearchControls ctls,
+ NamingListener l) throws NamingException {
+ getOriginal().addNamingListener(target, filter, filterArgs, ctls, l);
+ }
+
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringLdapContextDecorator.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringLdapContextDecorator.java
new file mode 100644
index 0000000..c74df39
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringLdapContextDecorator.java
@@ -0,0 +1,94 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import javax.naming.Context;
+import javax.naming.NamingException;
+import javax.naming.NoInitialContextException;
+import javax.naming.NotContextException;
+import javax.naming.ldap.Control;
+import javax.naming.ldap.ExtendedRequest;
+import javax.naming.ldap.ExtendedResponse;
+import javax.naming.ldap.LdapContext;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class URLPreferringLdapContextDecorator extends URLPreferringDirContextDecorator implements LdapContext {
+
+ private static final long serialVersionUID = 1L;
+
+ public URLPreferringLdapContextDecorator() {
+ super(null);
+ }
+
+ public URLPreferringLdapContextDecorator(LdapContext original) {
+ super(original);
+ }
+
+ @Override
+ protected LdapContext checkAndCast(Context ctx) throws NamingException {
+ if (!(ctx instanceof LdapContext)) {
+ if (ctx == null) {
+ throw new NoInitialContextException();
+ } else {
+ throw new NotContextException("Not an instance of LdapContext");
+ }
+ }
+
+ return (LdapContext) ctx;
+ }
+
+ @Override
+ protected LdapContext getOriginal() throws NamingException {
+ return checkAndCast(super.getOriginal());
+ }
+
+ public ExtendedResponse extendedOperation(ExtendedRequest request) throws NamingException {
+ return getOriginal().extendedOperation(request);
+ }
+
+ public LdapContext newInstance(Control[] requestControls) throws NamingException {
+ return new URLPreferringLdapContextDecorator(getOriginal().newInstance(requestControls));
+ }
+
+ public void reconnect(Control[] connCtls) throws NamingException {
+ getOriginal().reconnect(connCtls);
+ }
+
+ public Control[] getConnectControls() throws NamingException {
+ return getOriginal().getConnectControls();
+ }
+
+ public void setRequestControls(Control[] requestControls) throws NamingException {
+ getOriginal().setRequestControls(requestControls);
+ }
+
+ public Control[] getRequestControls() throws NamingException {
+ return getOriginal().getRequestControls();
+ }
+
+ public Control[] getResponseControls() throws NamingException {
+ return getOriginal().getResponseControls();
+ }
+
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/mbean/AccessCheckingInitialContextFactoryBuilderInstaller.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/mbean/AccessCheckingInitialContextFactoryBuilderInstaller.java
new file mode 100644
index 0000000..a1ccb4f
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/mbean/AccessCheckingInitialContextFactoryBuilderInstaller.java
@@ -0,0 +1,45 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2011 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.mbean;
+
+import javax.naming.spi.NamingManager;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import org.rhq.jndi.AccessCheckingInitialContextFactoryBuilder;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class AccessCheckingInitialContextFactoryBuilderInstaller implements AccessCheckingInitialContextFactoryBuilderInstallerMBean {
+ private static final Log LOG = LogFactory.getLog(AccessCheckingInitialContextFactoryBuilderInstaller.class);
+
+ public void start() throws Exception {
+ LOG.info("Installing RHQ's access permission checking initial context factory builder");
+
+ NamingManager.setInitialContextFactoryBuilder(new AccessCheckingInitialContextFactoryBuilder());
+ }
+
+ public void stop() throws Exception {
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/mbean/AccessCheckingInitialContextFactoryBuilderInstallerMBean.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/mbean/AccessCheckingInitialContextFactoryBuilderInstallerMBean.java
new file mode 100644
index 0000000..87d19ab
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/mbean/AccessCheckingInitialContextFactoryBuilderInstallerMBean.java
@@ -0,0 +1,32 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2011 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.mbean;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public interface AccessCheckingInitialContextFactoryBuilderInstallerMBean {
+
+ void start() throws Exception;
+
+ void stop() throws Exception;
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratingInvocationHandler.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratingInvocationHandler.java
new file mode 100644
index 0000000..1bfa7ac
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratingInvocationHandler.java
@@ -0,0 +1,55 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.util;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.List;
+
+public class DecoratingInvocationHandler<Type, Decorator extends Type> implements InvocationHandler {
+
+ private final List<DecoratorPicker<Type, Decorator>> pickers;
+ private Type object;
+
+ public DecoratingInvocationHandler(List<DecoratorPicker<Type, Decorator>> pickers, Type object) {
+ this.pickers = pickers;
+ this.object = object;
+ }
+
+ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+ Type target = object;
+ Class<?> methodClass = method.getDeclaringClass();
+
+ for(DecoratorPicker<Type, Decorator> picker : pickers) {
+ target = picker.decorate(target, methodClass);
+ }
+
+ try {
+ return method.invoke(target, args);
+ } catch (InvocationTargetException e) {
+ if (e.getCause() != null) {
+ throw e.getCause();
+ } else {
+ throw e;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratorPicker.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratorPicker.java
new file mode 100644
index 0000000..017d29f
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratorPicker.java
@@ -0,0 +1,195 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.util;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Given as set of decorators extending given type, this class can pick
+ * the most appropriate set of decorators for a class or a method call.
+ * <p>
+ * To configure the decorator, one has to provide a {@link DecoratorSetContext} that
+ * is then used to obtain the list of
+ * {@link DecoratorSetContext#getSupportedInterfaces() supported interfaces}, which are
+ * all the interfaces that should be used for decorator resolution (i.e. all other interfaces
+ * that a class might implement are ignored during decorator resolution), the list of
+ * {@link DecoratorSetContext#getDecoratorClasses() decorator classes}, which is a list
+ * of decorators the picker can choose from and is also used to instantiate and initialize
+ * the decorators.
+ *
+ * @author Lukas Krejci
+ */
+public class DecoratorPicker<Type, Decorator extends Type> {
+
+ private DecoratorSetContext<Type, Decorator> context;
+
+ public DecoratorSetContext<Type, Decorator> getContext() {
+ return context;
+ }
+
+ public void setContext(DecoratorSetContext<Type, Decorator> decoratorSetContext) {
+ this.context = decoratorSetContext;
+ }
+
+ /**
+ * Returns a set of decorators applicable for given method. The set is established based
+ * on the declaring class of the method.
+ *
+ * @param method the method to inspect
+ * @return the set of decorators that can be used to wrap a method call
+ * @throws Exception
+ */
+ public Set<Decorator> getDecoratorsForMethod(Method method) throws Exception {
+ return getDecoratorsForClass_Private(method.getDeclaringClass());
+ }
+
+ /**
+ * Returns a set of decorators that can be used on instances of given class.
+ * @param cls the class to inspect
+ * @return
+ * @throws Exception
+ */
+ public Set<Decorator> getDecoratorsForClass(Class<? extends Type> cls) throws Exception {
+ return getDecoratorsForClass_Private(cls);
+ }
+
+ /**
+ * This method first establishes the set of decorators to use based on the class of the supplied
+ * object and then chains the decorators (in arbitrary order) with the supplied object at the
+ * "root" of the chain.
+ * <p>
+ * If a method is then called on the returned object, the methods of all the decorators are called
+ * in chain (each supposedly calling the next) and finally, at the end of the chain, the method on
+ * the original object (the one supplied to this method) is called.
+ * <p>
+ * Note that the above is only an intended behavior and actually depends on the implementation of
+ * the decorators that are resposinble for the chaining. Each decorator is initialized
+ * (@{link {@link DecoratorSetContext#init(Object, Object)} which should set it up for such chaining.
+ *
+ * @param object
+ * @return
+ * @throws Exception
+ */
+ public Type decorate(Type object) throws Exception {
+ Set<Decorator> decs = getDecoratorsForClass_Private(object.getClass());
+ Type ret = object;
+ for(Decorator d : decs) {
+ context.init(d, ret);
+ ret = d;
+ }
+
+ return ret;
+ }
+
+ /**
+ * Similar to {@link #decorate(Object)} but instead of the class of the object itself,
+ * uses the significantSuperClass as the basis for the decorator resolution.
+ * <p>
+ * This is important, because if the object implements two mutually incompatible sub-interfaces of <code>Type</code>,
+ * the chained decorators might fail to execute a method later on if the decorator depends on the upper part
+ * of the chain to implement certain sub-interface of <code>Type</code>.
+ *
+ * @param object the object to wrap in decorators
+ * @param significantSuperClass the class to base the decorator resolution on
+ * @return
+ * @throws Exception
+ */
+ public Type decorate(Type object, Class<?> significantSuperClass) throws Exception {
+ Set<Decorator> decs = getDecoratorsForClass_Private(significantSuperClass);
+ Type ret = object;
+ for(Decorator d : decs) {
+ context.init(d, ret);
+ ret = d;
+ }
+
+ return ret;
+ }
+
+ private Set<Decorator> getDecoratorsForClass_Private(Class<?> cls) throws Exception {
+ Set<Class<? extends Type>> ifaces = getNearestApplicableInterfaces(cls);
+
+ HashSet<Decorator> ret = new HashSet<Decorator>();
+
+ for (Class<? extends Type> iface : ifaces) {
+ for (Class<? extends Decorator> decClass : getMatch(iface)) {
+ ret.add(context.instantiate(decClass));
+ }
+ }
+
+ return ret;
+ }
+
+ private Set<Class<? extends Type>> getNearestApplicableInterfaces(Class<?> cls) {
+ List<Class<? extends Type>> ifaces = new ArrayList<Class<? extends Type>>(getAllApplicableInterfaces(cls));
+
+ //now compact the set to only contain the most concrete interfaces
+
+ Iterator<Class<? extends Type>> it = ifaces.iterator();
+ while (it.hasNext()) {
+ Class<? extends Type> c = it.next();
+
+ for (int i = 0; i < ifaces.size(); ++i) {
+ Class<? extends Type> nextC = ifaces.get(i);
+ if (!c.equals(nextC) && c.isAssignableFrom(nextC)) {
+ it.remove();
+ break;
+ }
+ }
+ }
+
+ return new HashSet<Class<? extends Type>>(ifaces);
+ }
+
+ private Set<Class<? extends Type>> getAllApplicableInterfaces(Class<?> cls) {
+ Set<Class<? extends Type>> ifaces = new HashSet<Class<? extends Type>>();
+
+ for (Class<? extends Type> iface : context.getSupportedInterfaces()) {
+ if (iface.isAssignableFrom(cls)) {
+ ifaces.add(iface);
+ }
+ }
+
+ if (ifaces.isEmpty()) {
+ throw new IllegalArgumentException("Class " + cls
+ + " doesn't implement any of the applicable interfaces. Cannot find decorators for it.");
+ }
+
+ return ifaces;
+ }
+
+ private Set<Class<? extends Decorator>> getMatch(Class<?> targetIface) {
+
+ Set<Class<? extends Decorator>> ret = new HashSet<Class<? extends Decorator>>();
+
+ for (Class<? extends Decorator> cls : context.getDecoratorClasses()) {
+ if (Arrays.asList(cls.getInterfaces()).contains(targetIface)) {
+ ret.add(cls);
+ }
+ }
+
+ return ret;
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratorSetContext.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratorSetContext.java
new file mode 100644
index 0000000..d7b1676
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratorSetContext.java
@@ -0,0 +1,59 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.util;
+
+import java.util.Set;
+
+/**
+ * Implementations of this interface provide a context to the {@link DecoratorPicker}.
+ *
+ * @author Lukas Krejci
+ */
+public interface DecoratorSetContext<Type, Decorator> {
+
+ /**
+ * @return the set of interfaces that the decorators are able support.
+ * Usually this should be just a union of all interfaces the decorators implement
+ * but can be trimmed down.
+ */
+ Set<Class<? extends Type>> getSupportedInterfaces();
+
+ /**
+ * @return the set of all decorator classes in this set
+ */
+ Set<Class<? extends Decorator>> getDecoratorClasses();
+
+ /**
+ * Instantiates a new decorator of given class.
+ * @param decoratorClass
+ * @return
+ * @throws Exception
+ */
+ Decorator instantiate(Class<? extends Decorator> decoratorClass) throws Exception;
+
+ /**
+ * Initializes the decorator to decorate given object.
+ *
+ * @param decorator
+ * @param object
+ * @throws Exception on error
+ */
+ void init(Decorator decorator, Type object) throws Exception;
+}
diff --git a/modules/enterprise/server/container-lib/src/test/java/org/rhq/jndi/context/DecoratingInvocationHandlerTest.java b/modules/enterprise/server/container-lib/src/test/java/org/rhq/jndi/context/DecoratingInvocationHandlerTest.java
new file mode 100644
index 0000000..45ba114
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/test/java/org/rhq/jndi/context/DecoratingInvocationHandlerTest.java
@@ -0,0 +1,145 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.Properties;
+import java.util.Set;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.Name;
+import javax.naming.NamingException;
+import javax.naming.directory.DirContext;
+import javax.naming.event.EventContext;
+import javax.naming.event.NamingListener;
+import javax.naming.spi.InitialContextFactory;
+import javax.naming.spi.NamingManager;
+
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import org.rhq.jndi.AccessCheckingInitialContextFactoryBuilder;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+@Test
+public class DecoratingInvocationHandlerTest {
+ private static final Set<String> INVOKED_METHODS = new HashSet<String>();
+
+ private static final InvocationHandler NOTE_TAKING_HANDLER = new InvocationHandler() {
+
+ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+ INVOKED_METHODS.add(method.getName());
+
+ if ("hashCode".equals(method.getName())) {
+ return 0;
+ } else if ("equals".equals(method.getName())) {
+ return false;
+ }
+
+ return null;
+ }
+ };
+
+ private static Class<?>[] CONTEXT_INTERFACES;
+
+ public static class Factory implements InitialContextFactory {
+ public Context getInitialContext(Hashtable<?, ?> environment)
+ throws NamingException {
+
+ return (Context) Proxy.newProxyInstance(DecoratingInvocationHandlerTest.class.getClassLoader(), CONTEXT_INTERFACES, NOTE_TAKING_HANDLER);
+ }
+ }
+
+ private static class DummyInitialEventContext extends InitialContext implements EventContext {
+
+ /**
+ * @param environment
+ * @throws NamingException
+ */
+ public DummyInitialEventContext(Hashtable<?, ?> environment) throws NamingException {
+ super(environment);
+ }
+
+ public void addNamingListener(Name target, int scope, NamingListener l) throws NamingException {
+ ((EventContext)getURLOrDefaultInitCtx(target)).addNamingListener(target, scope, l);
+ }
+
+ public void addNamingListener(String target, int scope, NamingListener l) throws NamingException {
+ ((EventContext)getURLOrDefaultInitCtx(target)).addNamingListener(target, scope, l);
+ }
+
+ public void removeNamingListener(NamingListener l) throws NamingException {
+ ((EventContext)getDefaultInitCtx()).removeNamingListener(l);
+ }
+
+ public boolean targetMustExist() throws NamingException {
+ return ((EventContext)getDefaultInitCtx()).targetMustExist();
+ }
+
+
+ }
+
+ @BeforeClass
+ public void setBuilder() throws Exception {
+ NamingManager.setInitialContextFactoryBuilder(new AccessCheckingInitialContextFactoryBuilder());
+ }
+
+ public void testSimpleDispatch() throws Exception {
+ INVOKED_METHODS.clear();
+ Properties env = new Properties();
+ env.put(Context.INITIAL_CONTEXT_FACTORY, Factory.class.getName());
+
+ CONTEXT_INTERFACES = new Class<?>[] { Context.class };
+
+ InitialContext ctx = new InitialContext(env);
+
+ ctx.lookup("asdf");
+
+ assert INVOKED_METHODS.contains("lookup") : "The lookup doesn't seem to have propagated to the actual context to be used.";
+ }
+
+ public void testMultiInterfaceDispatch() throws Exception {
+ INVOKED_METHODS.clear();
+ Properties env = new Properties();
+ env.put(Context.INITIAL_CONTEXT_FACTORY, Factory.class.getName());
+
+ CONTEXT_INTERFACES = new Class<?>[] { EventContext.class, DirContext.class };
+
+ InitialContext ctx = new InitialContext(env);
+
+ ctx.lookup("asdf");
+
+ DummyInitialEventContext ectx = new DummyInitialEventContext(env);
+
+ ectx.addNamingListener("hodiny", 0, null);
+
+ assert INVOKED_METHODS.contains("lookup") : "The lookup doesn't seem to have propagated to the actual context to be used.";
+ assert INVOKED_METHODS.contains("addNamingListener") : "The addNamingListener doesn't seem to have propagated to the actual context to be used.";
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/test/java/org/rhq/jndi/context/DecoratorPickerTest.java b/modules/enterprise/server/container-lib/src/test/java/org/rhq/jndi/context/DecoratorPickerTest.java
new file mode 100644
index 0000000..e2d7429
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/test/java/org/rhq/jndi/context/DecoratorPickerTest.java
@@ -0,0 +1,180 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.naming.Context;
+import javax.naming.directory.DirContext;
+import javax.naming.event.EventContext;
+import javax.naming.ldap.LdapContext;
+
+import org.testng.annotations.Test;
+
+import org.rhq.jndi.util.DecoratorPicker;
+import org.rhq.jndi.util.DecoratorSetContext;
+
+/**
+ * @author Lukas Krejci
+ */
+@Test
+public class DecoratorPickerTest {
+
+ private static final InvocationHandler DUMMY_HANDLER = new InvocationHandler() {
+
+ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+ if ("hashCode".equals(method.getName())) {
+ return 0;
+ } else if ("equals".equals(method.getName())) {
+ return false;
+ }
+
+ return null;
+ }
+ };
+
+ private static final Class<?> TEST_OBJECT_CLASS1 = createProxyClass(Context.class);
+ private static final Class<?> TEST_OBJECT_CLASS2 = createProxyClass(DirContext.class);
+ private static final Class<?> TEST_OBJECT_CLASS3 = createProxyClass(LdapContext.class);
+ private static final Class<?> TEST_OBJECT_CLASS4 = createProxyClass(LdapContext.class, EventContext.class);
+ private static final Class<?> DECORATOR_CLASS1 = createProxyClass(Context.class);
+ private static final Class<?> DECORATOR_CLASS2 = createProxyClass(EventContext.class);
+ private static final Class<?> DECORATOR_CLASS3 = createProxyClass(LdapContext.class);
+ private static final Class<?> DECORATOR_CLASS4 = createProxyClass(DirContext.class);
+
+ public void testSimpleDecoratorIdentifiedByClass() throws Exception {
+ DecoratorPicker<Object, Object> picker = createTestPicker();
+
+ Set<Object> contextDecorators = picker.getDecoratorsForClass(TEST_OBJECT_CLASS1);
+ assertEquals(contextDecorators.size(), 1, "Expected exactly one decorator for Context class");
+ assertEquals(contextDecorators.iterator().next().getClass().getInterfaces()[0], Context.class);
+ }
+
+ public void testSuperClassDecoratorHasPrecedenceOverSubClassDecorator() throws Exception {
+ DecoratorPicker<Object, Object> picker = createTestPicker();
+
+ //this tests that the LdapContext isn't returned even though it subclasses the DirContext
+ Set<Object> contextDecorators = picker.getDecoratorsForClass(TEST_OBJECT_CLASS2);
+ assertEquals(contextDecorators.size(), 1, "Expected exactly one decorator for DirContext class");
+ assertEquals(contextDecorators.iterator().next().getClass().getInterfaces()[0], DirContext.class);
+ }
+
+ public void testSubClassDecoratorCorrectlyIdentified() throws Exception {
+ DecoratorPicker<Object, Object> picker = createTestPicker();
+
+ Set<Object> contextDecorators = picker.getDecoratorsForClass(TEST_OBJECT_CLASS3);
+ assertEquals(contextDecorators.size(), 1, "Expected exactly one decorator for LdapContext class");
+ assertEquals(contextDecorators.iterator().next().getClass().getInterfaces()[0], LdapContext.class);
+ }
+
+ public void testMultipleDecoratorsDetectable() throws Exception {
+ DecoratorPicker<Object, Object> picker = createTestPicker();
+
+ Set<Object> decorators = picker.getDecoratorsForClass(TEST_OBJECT_CLASS4);
+ assertEquals(decorators.size(), 2,
+ "Exactly 2 decorators should have been found for a class implementing 2 interfaces.");
+
+ boolean ldapContextDecoratorFound = false;
+ boolean eventContextDecoratorFound = false;
+
+ for (Object d : decorators) {
+ if (LdapContext.class.isAssignableFrom(d.getClass())) {
+ ldapContextDecoratorFound = true;
+ continue; //just to make sure that somehow the decorator doesn't implement both
+ }
+ if (EventContext.class.isAssignableFrom(d.getClass())) {
+ eventContextDecoratorFound = true;
+ }
+ }
+
+ assertTrue(ldapContextDecoratorFound && eventContextDecoratorFound,
+ "The found decorators don't implement the desired interfaces.");
+ }
+
+ public void testDecoratorsIdentifiedByMethod() throws Exception {
+ DecoratorPicker<Object, Object> picker = createTestPicker();
+
+ Set<Object> decorators =
+ picker.getDecoratorsForMethod(LdapContext.class.getMethod("getConnectControls", (Class<?>[]) null));
+ assertEquals(decorators.size(), 1,
+ "Expected exactly one decorator for method 'getConnectControls()' from LdapContext class");
+ assertEquals(decorators.iterator().next().getClass().getInterfaces()[0], LdapContext.class);
+ }
+
+ public void testMethodFromSubclassMatchesSubclassDecorator() throws Exception {
+ DecoratorPicker<Object, Object> picker = createTestPicker();
+
+ //this is a method from the DirContext but we're asking for it from a class
+ //that implements also an LdapContext
+ //The LdapContext decorator also inherits from the DirContext decorator
+ //(by the virtue of LdapContext interface inheriting from the DirContext)
+ //The picker should therefore match the LdapContext decorator because its
+ //the "closest" one to the actual class.
+ Set<Object> decorators =
+ picker.getDecoratorsForMethod(TEST_OBJECT_CLASS3.getMethod("getSchemaClassDefinition",
+ new Class<?>[] { String.class }));
+ assertEquals(decorators.size(), 1,
+ "Expected exactly one decorator for method 'getSchemaClassDefinition(String)' from LdapContext class");
+ assertEquals(decorators.iterator().next().getClass().getInterfaces()[0], LdapContext.class);
+ }
+
+ private static Class<?> createProxyClass(Class<?>... ifaces) {
+ return Proxy.getProxyClass(DecoratorPickerTest.class.getClassLoader(), ifaces);
+ }
+
+ private static DecoratorPicker<Object, Object> createTestPicker() {
+ DecoratorPicker<Object, Object> picker = new DecoratorPicker<Object, Object>();
+
+ DecoratorSetContext<Object, Object> decSet = new DecoratorSetContext<Object, Object>() {
+
+ public Object instantiate(Class<? extends Object> decoratorClass) throws Exception {
+ Constructor<? extends Object> ctor = decoratorClass.getConstructor(InvocationHandler.class);
+ return ctor.newInstance(DUMMY_HANDLER);
+ }
+
+ public void init(Object decorator, Object object) throws Exception {
+ }
+
+ @SuppressWarnings("unchecked")
+ public Set<Class<? extends Object>> getSupportedInterfaces() {
+ return new HashSet<Class<? extends Object>>(Arrays.asList(Context.class, EventContext.class,
+ LdapContext.class, DirContext.class));
+ }
+
+ @SuppressWarnings("unchecked")
+ public Set<Class<? extends Object>> getDecoratorClasses() {
+ return new HashSet<Class<? extends Object>>(Arrays.asList(DECORATOR_CLASS1, DECORATOR_CLASS2, DECORATOR_CLASS3, DECORATOR_CLASS4));
+ }
+ };
+
+ picker.setContext(decSet);
+
+ return picker;
+ }
+}
diff --git a/modules/enterprise/server/container/src/main/resources/jbossas/server/default/conf/jboss-service.xml b/modules/enterprise/server/container/src/main/resources/jbossas/server/default/conf/jboss-service.xml
index 859b552..f231f15 100644
--- a/modules/enterprise/server/container/src/main/resources/jbossas/server/default/conf/jboss-service.xml
+++ b/modules/enterprise/server/container/src/main/resources/jbossas/server/default/conf/jboss-service.xml
@@ -225,6 +225,13 @@
<!-- JNDI -->
<!-- ==================================================================== -->
+ <!-- This installs a custom initial context factory builder into the JVM
+ that will ensure that all the default InitialContexts are going to check
+ for the permission to access the RHQ internals. -->
+ <mbean code="org.rhq.jndi.mbean.AccessCheckingInitialContextFactoryBuilderInstaller"
+ name="org.rhq:service=AccessCheckingInitialContextFactoryBuilderInstaller">
+ </mbean>
+
<!-- A simple mbean wrapper around the jndi Naming object. This
only handles an in memory instance. The NamingService uses this
as the JNDI store and exposes it remotely.
diff --git a/modules/enterprise/server/itests/pom.xml b/modules/enterprise/server/itests/pom.xml
index 817c02c..b95ab65 100644
--- a/modules/enterprise/server/itests/pom.xml
+++ b/modules/enterprise/server/itests/pom.xml
@@ -56,6 +56,13 @@
<dependency>
<groupId>org.rhq</groupId>
+ <artifactId>rhq-container-lib</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server</artifactId>
<version>${project.version}</version>
<scope>test</scope>
@@ -78,6 +85,32 @@
</dependency>
<dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-script-bindings</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-enterprise-server</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-server-client-api</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-enterprise-server</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
<groupId>org.rhq.helpers</groupId>
<artifactId>perftest-support</artifactId>
<version>${project.version}</version>
@@ -258,6 +291,23 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <!-- Everything but the web service tests, this is the standard test execution -->
+ <configuration>
+ <excludedGroups>${rhq.testng.excludedGroups}</excludedGroups>
+ <groups>${rhq.testng.includedGroups}</groups>
+ <systemPropertyVariables>
+ <embeddedDeployment>true</embeddedDeployment>
+ <deploymentDirectory>target/test-classes</deploymentDirectory>
+ </systemPropertyVariables>
+ <argLine>-Djava.security.manager -Djava.security.policy==${basedir}/target/test-classes/security.policy</argLine>
+ <additionalClasspathElements>
+ <!-- The below is required for tests to run against Oracle. -->
+ <additionalClasspathElement>${settings.localRepository}/com/oracle/ojdbc5/${ojdbc5.version}/ojdbc5-${ojdbc5.version}.jar</additionalClasspathElement>
+ </additionalClasspathElements>
+ </configuration>
+ </plugin>
</plugins>
</build>
</project>
diff --git a/modules/enterprise/server/itests/src/test/java/org/rhq/enterprise/client/security/test/JndiAccessTest.java b/modules/enterprise/server/itests/src/test/java/org/rhq/enterprise/client/security/test/JndiAccessTest.java
new file mode 100644
index 0000000..af90701
--- /dev/null
+++ b/modules/enterprise/server/itests/src/test/java/org/rhq/enterprise/client/security/test/JndiAccessTest.java
@@ -0,0 +1,196 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2011 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.client.security.test;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.SerializablePermission;
+import java.security.PermissionCollection;
+import java.util.Collections;
+
+import javax.script.ScriptEngine;
+import javax.script.ScriptException;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import org.rhq.bindings.SandboxedScriptEngine;
+import org.rhq.bindings.ScriptEngineFactory;
+import org.rhq.bindings.StandardBindings;
+import org.rhq.bindings.StandardScriptPermissions;
+import org.rhq.bindings.util.PackageFinder;
+import org.rhq.core.domain.auth.Subject;
+import org.rhq.enterprise.client.LocalClient;
+import org.rhq.enterprise.server.test.AbstractEJB3Test;
+import org.rhq.enterprise.server.util.LookupUtil;
+import org.rhq.jndi.AllowRhqServerInternalsAccessPermission;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+@Test
+public class JndiAccessTest extends AbstractEJB3Test {
+
+ public void testEjbsAccessibleThroughPrivilegedCode() {
+ LookupUtil.getSubjectManager().getOverlord();
+ }
+
+ public void testEjbsAccessibleThroughLocalClient() throws ScriptException, IOException {
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+
+ ScriptEngine engine = getEngine(overlord);
+
+ engine.eval("SubjectManager.getSubjectByName('rhqadmin');");
+ }
+
+ public void testLocalEjbsInaccessibleThroughJndiLookup() throws ScriptException, IOException {
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+
+ ScriptEngine engine = getEngine(overlord);
+
+ try {
+ engine.eval(""
+ + "var ctx = new javax.naming.InitialContext();\n"
+ + "var subjectManager = ctx.lookup('SubjectManagerBean/local');\n"
+ + "subjectManager.getOverlord();");
+
+ Assert.fail("The script shouldn't have been able to call local SLSB method.");
+ } catch (ScriptException e) {
+ checkIsDesiredSecurityException(e);
+ }
+ }
+
+ public void testRemoteEjbsInaccessibleThroughJndiLookup() throws ScriptException, IOException {
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+
+ ScriptEngine engine = getEngine(overlord);
+
+ try {
+ engine.eval(""
+ + "var ctx = new javax.naming.InitialContext();\n"
+ + "var subjectManager = ctx.lookup('SubjectManagerBean/remote');\n"
+ + "subjectManager.getSubjectByName('rhqadmin');");
+
+ Assert.fail("The script shouldn't have been able to call remote SLSB method directly.");
+ } catch (ScriptException e) {
+ checkIsDesiredSecurityException(e);
+ }
+ }
+
+ public void testScriptCantUseSessionManagerMethods() throws Exception {
+
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+
+ final ScriptEngine engine = getEngine(overlord);
+
+ class G {
+ private String sessionManager = ""
+ + "org.rhq.enterprise.server.auth.SessionManager.getInstance().";
+
+ public void testInvoke(String methodCall) throws ScriptException {
+ String code = sessionManager + methodCall;
+
+ try {
+ engine.eval(code);
+ Assert.fail("The script shouldn't have been able to call a method on a SessionManager: " + methodCall);
+ } catch (ScriptException e) {
+ checkIsDesiredSecurityException(e);
+ }
+ }
+ };
+ G manager = new G();
+
+ manager.testInvoke("getlastAccess(0);");
+ manager.testInvoke("getOverlord()");
+ manager.testInvoke("getSubject(2);");
+ manager.testInvoke("invalidate(0);");
+ manager.testInvoke("invalidate(\"\");");
+ manager.testInvoke("put(new org.rhq.core.domain.auth.Subject());");
+ manager.testInvoke("put(new org.rhq.core.domain.auth.Subject(), 0);");
+ }
+
+ public void testScriptCantObtainRawJDBCConnectionsWithoutCredentials() throws Exception {
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+
+ ScriptEngine engine = getEngine(overlord);
+
+ try {
+ engine.eval(""
+ + "var ctx = new javax.naming.InitialContext();\n"
+ + "var datasource = ctx.lookup('java:/RHQDS');\n"
+ + "con = datasource.getConnection();");
+
+ Assert.fail("The script shouldn't have been able to obtain the datasource from the JNDI.");
+ } catch (ScriptException e) {
+ checkIsDesiredSecurityException(e);
+ }
+ }
+
+ public void testScriptCantUseEntityManager() throws Exception {
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+
+ ScriptEngine engine = getEngine(overlord);
+
+ try {
+ engine.eval(""
+ + "var ctx = new javax.naming.InitialContext();\n"
+ + "var entityManagerFactory = ctx.lookup('java:/RHQEntityManagerFactory');\n"
+ + "var entityManager = entityManagerFactory.createEntityManager();\n"
+ + "entityManager.find(java.lang.Class.forName('org.rhq.core.domain.resource.Resource'), java.lang.Integer.valueOf('10001'));");
+
+ Assert.fail("The script shouldn't have been able to use the EntityManager.");
+ } catch (ScriptException e) {
+ checkIsDesiredSecurityException(e);
+ }
+
+ //try harder with manually specifying the initial context factory
+ try {
+ engine.eval(""
+ + "var env = new java.util.Hashtable();"
+ + "env.put('java.naming.factory.initial', 'org.jnp.interfaces.LocalOnlyContextFactory');"
+ + "env.put('java.naming.factory.url.pkgs', 'org.jboss.naming:org.jnp.interfaces');"
+ + "var ctx = new javax.naming.InitialContext(env);\n"
+ + "var entityManagerFactory = ctx.lookup('java:/RHQEntityManagerFactory');\n"
+ + "var entityManager = entityManagerFactory.createEntityManager();\n"
+ + "entityManager.find(java.lang.Class.forName('org.rhq.core.domain.resource.Resource'), java.lang.Integer.valueOf('10001'));");
+
+ Assert.fail("The script shouldn't have been able to use the EntityManager even using custom initial context factory.");
+ } catch (ScriptException e) {
+ checkIsDesiredSecurityException(e);
+ }
+ }
+
+ private ScriptEngine getEngine(Subject subject) throws ScriptException, IOException {
+ StandardBindings bindings = new StandardBindings(new PrintWriter(System.out), new LocalClient(subject));
+
+ PermissionCollection perms = new StandardScriptPermissions();
+
+ return ScriptEngineFactory.getSecuredScriptEngine("JavaScript", new PackageFinder(Collections.<File>emptyList()), bindings, perms);
+ }
+
+ private static void checkIsDesiredSecurityException(ScriptException e) {
+ String message = e.getMessage();
+ String permissionTrace = AllowRhqServerInternalsAccessPermission.class.getName();
+
+ Assert.assertTrue(message.contains(permissionTrace), "The script exception doesn't seem to be caused by the AllowRhqServerInternalsAccessPermission security exception. " + message);
+ }
+}
diff --git a/modules/enterprise/server/itests/src/test/resources/embedded-jboss-beans.xml b/modules/enterprise/server/itests/src/test/resources/embedded-jboss-beans.xml
index 05edefa..85e2fb3 100644
--- a/modules/enterprise/server/itests/src/test/resources/embedded-jboss-beans.xml
+++ b/modules/enterprise/server/itests/src/test/resources/embedded-jboss-beans.xml
@@ -4,6 +4,14 @@
xsi:schemaLocation="urn:jboss:bean-deployer:2.0 bean-deployer_2_0.xsd"
xmlns="urn:jboss:bean-deployer:2.0">
+ <!-- This installs a custom initial context factory builder into the JVM
+ that will ensure that all the default InitialContexts are going to check
+ for the permission to access the RHQ internals. -->
+ <bean class="org.rhq.jndi.mbean.AccessCheckingInitialContextFactoryBuilderInstaller"
+ name="AccessCheckingInitialContextFactoryBuilderInstaller">
+ </bean>
+
+
<bean name="Naming" class="org.jnp.server.SingletonNamingServer"/>
<bean name="InitialContextProperties" class="java.util.Hashtable">
@@ -20,7 +28,7 @@
</entry>
</map>
</parameter>
- </constructor>
+ </constructor>
</bean>
<bean name="java:comp/Initializer" class="org.jboss.ejb3.embedded.JavaCompInitializer">
diff --git a/modules/enterprise/server/itests/src/test/resources/security.policy b/modules/enterprise/server/itests/src/test/resources/security.policy
new file mode 100644
index 0000000..8860b47
--- /dev/null
+++ b/modules/enterprise/server/itests/src/test/resources/security.policy
@@ -0,0 +1,10 @@
+// We need the SecurityManager installed to enable sandboxing of CLI scripts
+// but we don't define any other security measures on the RHQ server itself.
+//
+// Granting all permissions allows us to run the RHQ server as if no security
+// manager was in place (which is assumed by default by JBoss AS) but be able
+// to use it when we need it for our own purposes.
+
+grant {
+ permission java.security.AllPermission;
+};
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 9a9ba84..8830f0e 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -84,6 +84,13 @@
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rhq-container-lib</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+
<dependency>
<groupId>com.googlecode.java-diff-utils</groupId>
<artifactId>diffutils</artifactId>
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java
index 39b6076..ecf2f6f 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java
@@ -26,29 +26,41 @@ import java.util.Random;
import org.rhq.core.domain.auth.Subject;
import org.rhq.enterprise.server.util.LookupUtil;
+import org.rhq.jndi.AllowRhqServerInternalsAccessPermission;
/**
* This is the JON Server's own session ID generator. It is outside any container-provided session mechanism. Its sole
* purpose is to provide session IDs to logged in {@link Subject}s. It will timeout those sessions regardless of any
* container-provided session-timeout mechanism.
- *
+ * <p>
+ * Because this is a very security-sensitive class, any public method requires the caller to
+ * have the {@link AllowEjbAccessPermission} as any other calls to the EJB layer. This is so that the
+ * malicious users can't trick the EJB layer into thinking that some users are logged in or log out other
+ * users.
+ * <p>
+ * Also, for security reasons, this class is final so that malicious code can't subclass it and modify its
+ * behavior.
+ *
* <p>This object is a {@link #getInstance() singleton}.</p>
*/
-public class SessionManager {
+public final class SessionManager {
+
+ private static final AllowRhqServerInternalsAccessPermission ACCESS_PERMISSION = new AllowRhqServerInternalsAccessPermission();
+
/**
* Our source for random session IDs.
*/
- private static Random _random = new Random();
+ private static final Random _random = new Random();
/**
* Our session cache that is keyed on the session ID.
*/
- private static Map<Integer, AuthSession> _cache = new HashMap<Integer, AuthSession>();
+ private static final Map<Integer, AuthSession> _cache = new HashMap<Integer, AuthSession>();
/**
* The singleton instance
*/
- private static SessionManager _manager = new SessionManager();
+ private static final SessionManager _manager = new SessionManager();
/**
* The timeout for all user sessions.
@@ -78,7 +90,7 @@ public class SessionManager {
/**
* Return the singleton object.
- *
+ *
* @return the {@link SessionManager}
*/
public static SessionManager getInstance() {
@@ -95,6 +107,7 @@ public class SessionManager {
* sessionId will be assigned.
*/
public Subject put(Subject subject) {
+ checkPermission();
return put(subject, DEFAULT_TIMEOUT);
}
@@ -108,6 +121,7 @@ public class SessionManager {
* that Subject is overlord). The sessionId will be assigned.
*/
public synchronized Subject put(Subject subject, long timeout) {
+ checkPermission();
Integer key;
do {
@@ -141,6 +155,7 @@ public class SessionManager {
* @throws SessionTimeoutException
*/
public synchronized Subject getSubject(int sessionId) throws SessionNotFoundException, SessionTimeoutException {
+ checkPermission();
Integer id = new Integer(sessionId);
AuthSession session = _cache.get(id);
@@ -162,6 +177,7 @@ public class SessionManager {
* @param sessionId session id to invalidate
*/
public synchronized void invalidate(int sessionId) {
+ checkPermission();
_cache.remove(new Integer(sessionId));
// while we are here, let's go through the entire session cache and remove expired sessions
@@ -187,6 +203,7 @@ public class SessionManager {
* @param username username for the sessions to be invalidated
*/
public synchronized void invalidate(String username) {
+ checkPermission();
List<Integer> doomedSessionIds = new ArrayList<Integer>(_cache.size());
for (AuthSession s : _cache.values()) {
if (username.equals(s.getSubject(false).getName())) {
@@ -201,6 +218,7 @@ public class SessionManager {
}
public long getlastAccess(int sessionId) {
+ checkPermission();
AuthSession session = _cache.get(sessionId);
if (session == null) {
return -1;
@@ -209,6 +227,7 @@ public class SessionManager {
}
public Subject getOverlord() {
+ checkPermission();
if (overlordSubject == null) {
overlordSubject = LookupUtil.getSubjectManager().getSubjectById(OVERLORD_SUBJECT_ID);
@@ -256,4 +275,9 @@ public class SessionManager {
return copy;
}
+
+ private static void checkPermission() {
+ SecurityManager sm = System.getSecurityManager();
+ if (sm != null) sm.checkPermission(ACCESS_PERMISSION);
+ }
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/test/resources/embedded-jboss-beans.xml b/modules/enterprise/server/jar/src/test/resources/embedded-jboss-beans.xml
index 05edefa..85e2fb3 100644
--- a/modules/enterprise/server/jar/src/test/resources/embedded-jboss-beans.xml
+++ b/modules/enterprise/server/jar/src/test/resources/embedded-jboss-beans.xml
@@ -4,6 +4,14 @@
xsi:schemaLocation="urn:jboss:bean-deployer:2.0 bean-deployer_2_0.xsd"
xmlns="urn:jboss:bean-deployer:2.0">
+ <!-- This installs a custom initial context factory builder into the JVM
+ that will ensure that all the default InitialContexts are going to check
+ for the permission to access the RHQ internals. -->
+ <bean class="org.rhq.jndi.mbean.AccessCheckingInitialContextFactoryBuilderInstaller"
+ name="AccessCheckingInitialContextFactoryBuilderInstaller">
+ </bean>
+
+
<bean name="Naming" class="org.jnp.server.SingletonNamingServer"/>
<bean name="InitialContextProperties" class="java.util.Hashtable">
@@ -20,7 +28,7 @@
</entry>
</map>
</parameter>
- </constructor>
+ </constructor>
</bean>
<bean name="java:comp/Initializer" class="org.jboss.ejb3.embedded.JavaCompInitializer">
diff --git a/modules/enterprise/server/plugins/alert-cli/src/main/java/org/rhq/enterprise/server/plugins/alertCli/CliSender.java b/modules/enterprise/server/plugins/alert-cli/src/main/java/org/rhq/enterprise/server/plugins/alertCli/CliSender.java
index 3aab6a2..43090c7 100644
--- a/modules/enterprise/server/plugins/alert-cli/src/main/java/org/rhq/enterprise/server/plugins/alertCli/CliSender.java
+++ b/modules/enterprise/server/plugins/alert-cli/src/main/java/org/rhq/enterprise/server/plugins/alertCli/CliSender.java
@@ -127,8 +127,6 @@ public class CliSender extends AlertSender<CliComponent> {
engine = getScriptEngine(alert, scriptOut, config);
- final SandboxedScriptEngine sandbox = new SandboxedScriptEngine(engine, new StandardScriptPermissions());
-
InputStream packageBits = getPackageBits(config.packageId, config.repoId);
reader = new BufferedReader(new InputStreamReader(packageBits));
@@ -137,10 +135,11 @@ public class CliSender extends AlertSender<CliComponent> {
final ExceptionHolder exceptionHolder = new ExceptionHolder();
+ final ScriptEngine e = engine;
Thread scriptRunner = new Thread(new Runnable() {
public void run() {
try {
- sandbox.eval(rdr);
+ e.eval(rdr);
} catch (ScriptException e) {
exceptionHolder.scriptException = e;
}
@@ -414,8 +413,8 @@ public class CliSender extends AlertSender<CliComponent> {
ScriptEngine engine = SCRIPT_ENGINES.poll();
if (engine == null) {
- engine = ScriptEngineFactory.getScriptEngine(ENGINE_NAME, new PackageFinder(Collections
- .<File> emptyList()), bindings);
+ engine = ScriptEngineFactory.getSecuredScriptEngine(ENGINE_NAME, new PackageFinder(Collections
+ .<File> emptyList()), bindings, new StandardScriptPermissions());
} else {
ScriptEngineFactory.injectStandardBindings(engine, bindings, true);
}
diff --git a/modules/enterprise/server/pom.xml b/modules/enterprise/server/pom.xml
index 9c43783..f049b3a 100644
--- a/modules/enterprise/server/pom.xml
+++ b/modules/enterprise/server/pom.xml
@@ -34,6 +34,7 @@
</activation>
<modules>
<module>xml-schemas</module>
+ <module>container-lib</module>
<module>jar</module>
<module>sars</module>
<module>plugins</module>
@@ -53,6 +54,7 @@
</activation>
<modules>
<module>xml-schemas</module>
+ <module>container-lib</module>
<module>jar</module>
<module>safe-invoker</module>
</modules>
diff --git a/modules/integration-tests/jndi-access/jndi-access-test/pom.xml b/modules/integration-tests/jndi-access/jndi-access-test/pom.xml
new file mode 100644
index 0000000..1991e0e
--- /dev/null
+++ b/modules/integration-tests/jndi-access/jndi-access-test/pom.xml
@@ -0,0 +1,315 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>jndi-access-test-parent</artifactId>
+ <groupId>org.rhq</groupId>
+ <version>4.3.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.rhq</groupId>
+ <artifactId>jndi-access-test</artifactId>
+ <packaging>jar</packaging>
+
+ <name>JNDI access integration test</name>
+ <description>Tests for local and remote JNDI access from within serverside scripts.</description>
+
+ <properties>
+ <rhq.server.datasource>java:/RHQDS</rhq.server.datasource>
+ <rhq.server.ds-mapping>PostgreSQL</rhq.server.ds-mapping>
+ <jboss-embeddable-ejb3.version>1.0.0.Alpha9</jboss-embeddable-ejb3.version>
+ <jnp.port>54987</jnp.port>
+ <jnp.rmiPort>54988</jnp.rmiPort>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <!--================ Test Deps ================ -->
+
+ <!-- Note, the test deps are intentionally placed above the other
+ scoped deps because of classpath reasons. Maven orders the [test] classpath
+ in the order listed in the pom. We specifically need the embeddable-ejb3
+ jar above the standard ejb3 jars because we need the embeddble packages loaded
+ when testing. -->
+
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>test-utils</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-core-domain</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-enterprise-server</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-enterprise-server</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rhq-core-client-api</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rhq-container-lib</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rhq-server-client-api</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>jndi-access-remote-server</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>jboss.jboss-embeddable-ejb3</groupId>
+ <artifactId>jboss-ejb3-all</artifactId>
+ <version>${jboss-embeddable-ejb3.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- NOTE: The remaining test deps correspond to the classes contained
+ in hibernate-all.jar and thirdparty-all.jar. -->
+
+ <dependency>
+ <groupId>javassist</groupId>
+ <artifactId>javassist</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- needed by embedded ejb container -->
+ <dependency>
+ <groupId>trove</groupId>
+ <artifactId>trove</artifactId>
+ <version>1.0.2</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- needed by embedded ejb container -->
+ <dependency>
+ <groupId>xerces</groupId>
+ <artifactId>xercesImpl</artifactId>
+ <version>2.8.1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- 3rd Party Deps -->
+
+ <!-- required by RHQ server classes, as well as EJB3 Embedded -->
+ <dependency>
+ <groupId>dom4j</groupId>
+ <artifactId>dom4j</artifactId>
+ <version>1.6.1-jboss</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>hibernate</groupId>
+ <artifactId>hibernate3</artifactId>
+ <!-- NOTE: The version is defined in the root POM's dependencyManagement
+ section. -->
+ <scope>provided</scope> <!-- by JBossAS -->
+ </dependency>
+
+ <dependency>
+ <groupId>hibernate-annotations</groupId>
+ <artifactId>hibernate-annotations</artifactId>
+ <!-- NOTE: The version is defined in the root POM's dependencyManagement
+ section. -->
+ <scope>provided</scope> <!-- by JBossAS -->
+ </dependency>
+
+ <dependency>
+ <groupId>hibernate-entitymanager</groupId>
+ <artifactId>hibernate-entitymanager</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.mail</groupId>
+ <artifactId>mail</artifactId>
+ <version>1.4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.persistence</groupId>
+ <artifactId>persistence-api</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope> <!-- by JBossAS -->
+ </dependency>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-annotations-ejb3</artifactId>
+ <!-- NOTE: The version is defined in the root POM's dependencyManagement
+ section. -->
+ <scope>provided</scope> <!-- by JBossAS -->
+ </dependency>
+
+ <!-- includes the org.jboss.ejb3.StrictMaxPool class, which is needed
+ by the PoolClass annotation used on some of our SLSB's -->
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-ejb3</artifactId>
+ <!-- NOTE: The version is defined in the root POM's dependencyManagement
+ section. -->
+ <scope>provided</scope> <!-- by JBossAS -->
+ </dependency>
+
+ <!-- for the transaction interrupt EJB3 interceptor -->
+ <dependency>
+ <groupId>org.jboss.transaction</groupId>
+ <artifactId>jboss-jta</artifactId>
+ <!-- NOTE: The version is defined in the root POM's dependencyManagement
+ section. -->
+ <scope>provided</scope> <!-- by JBossAS -->
+ </dependency>
+
+ <dependency>
+ <groupId>org.opensymphony.quartz</groupId>
+ <artifactId>quartz</artifactId>
+ <!-- NOTE: The version is defined in the root POM's dependencyManagement
+ section. -->
+ <scope>provided</scope> <!-- by JBossAS itself, which the container build has packaged with 1.6.5 -->
+ </dependency>
+
+ <dependency>
+ <groupId>org.opensymphony.quartz</groupId>
+ <artifactId>quartz-oracle</artifactId>
+ <!-- NOTE: The version is defined in the root POM's dependencyManagement
+ section. -->
+ <scope>provided</scope> <!-- by JBossAS itself, which the container build has packaged with 1.6.5 -->
+ </dependency>
+
+ <!-- This is needed cglib which is in turn needed by hibernate -->
+ <dependency>
+ <groupId>org.easymock</groupId>
+ <artifactId>easymockclassextension</artifactId>
+ <version>2.2</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.freemarker</groupId>
+ <artifactId>freemarker</artifactId>
+ <version>2.3.18</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>resteasy-jaxrs</artifactId>
+ <version>${resteasy.version}</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <testResources>
+ <testResource>
+ <directory>src/test/resources</directory>
+ <filtering>true</filtering>
+ </testResource>
+ </testResources>
+
+ <plugins>
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <!-- in order to get JMS to work properly in embedded
+ test container, extract jms-rs.rar classes -->
+ <execution>
+ <id>Extract JMS classes from RAR needed for JMS tests</id>
+ <phase>process-classes</phase>
+ <configuration>
+ <tasks>
+ <unzip src="src/test/resources/jms-ra.rar"
+ dest="target">
+ <patternset>
+ <include name="jms-ra.jar" />
+ </patternset>
+ </unzip>
+ <unzip src="target/jms-ra.jar"
+ dest="target/test-classes">
+ <patternset>
+ <include name="org/**" />
+ </patternset>
+ </unzip>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <!-- Everything but the web service tests, this is the standard
+ test execution -->
+ <configuration>
+ <excludedGroups>${rhq.testng.excludedGroups}</excludedGroups>
+ <groups>${rhq.testng.includedGroups}</groups>
+ <systemPropertyVariables>
+ <embeddedDeployment>true</embeddedDeployment>
+ <deploymentDirectory>target/test-classes</deploymentDirectory>
+ <hibernate.dialect>${rhq.test.ds.hibernate-dialect}</hibernate.dialect>
+ <clean.db>${clean.db}</clean.db>
+ <test.server.jar.path>${settings.localRepository}/org/rhq/jndi-access-remote-server/${project.version}/jndi-access-remote-server-${project.version}.jar</test.server.jar.path>
+ <jnp.port>${jnp.port}</jnp.port>
+ <jnp.rmiPort>${jnp.rmiPort}</jnp.rmiPort>
+ </systemPropertyVariables>
+ <argLine>-Djava.security.manager -Djava.security.policy==target/test-classes/security.policy</argLine>
+ <additionalClasspathElements>
+ <!-- The below is required for tests to run against
+ Oracle. -->
+ <additionalClasspathElement>${settings.localRepository}/com/oracle/ojdbc5/${ojdbc5.version}/ojdbc5-${ojdbc5.version}.jar</additionalClasspathElement>
+ </additionalClasspathElements>
+ </configuration>
+ </plugin>
+
+ </plugins>
+ </build>
+
+</project>
diff --git a/modules/integration-tests/jndi-access/jndi-access-test/src/test/java/org/rhq/jndi/test/JndiAccessTest.java b/modules/integration-tests/jndi-access/jndi-access-test/src/test/java/org/rhq/jndi/test/JndiAccessTest.java
new file mode 100644
index 0000000..56ad048
--- /dev/null
+++ b/modules/integration-tests/jndi-access/jndi-access-test/src/test/java/org/rhq/jndi/test/JndiAccessTest.java
@@ -0,0 +1,190 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.test;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.util.Collections;
+import java.util.Properties;
+
+import javax.naming.InitialContext;
+import javax.script.ScriptEngine;
+import javax.script.ScriptException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.testng.Assert;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
+
+import org.rhq.bindings.ScriptEngineFactory;
+import org.rhq.bindings.StandardBindings;
+import org.rhq.bindings.StandardScriptPermissions;
+import org.rhq.bindings.util.PackageFinder;
+import org.rhq.core.domain.auth.Subject;
+import org.rhq.enterprise.client.LocalClient;
+import org.rhq.enterprise.server.test.AbstractEJB3Test;
+import org.rhq.enterprise.server.util.LookupUtil;
+import org.rhq.jndi.AllowRhqServerInternalsAccessPermission;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+@Test
+public class JndiAccessTest extends AbstractEJB3Test {
+ private static final Log JNP_SERVER_LOG = LogFactory.getLog("Test JNP Server");
+
+ private Process testServerProcess;
+ private Thread testServerStdErrReader;
+ private Thread testServerStdOutReader;
+
+ @BeforeClass
+ @Parameters({"test.server.jar.path", "jnp.port", "jnp.rmiPort"})
+ public void startTestJnpServer(String testServerJar, int jnpPort, int rmiPort) throws Exception {
+ ProcessBuilder bld = new ProcessBuilder("java", "-Djnp.port=" + jnpPort, "-Djnp.rmiPort=" + rmiPort, "-jar", testServerJar);
+
+ testServerProcess = bld.start();
+
+ testServerStdErrReader = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ BufferedReader rdr = new BufferedReader(new InputStreamReader(testServerProcess.getErrorStream()));
+ try {
+ String line;
+ while((line = rdr.readLine()) != null) {
+ JNP_SERVER_LOG.warn(line);
+ }
+ } catch (IOException e) {
+ JNP_SERVER_LOG.error("Reading test JNP server error output failed.", e);
+ } finally {
+ try {
+ rdr.close();
+ } catch (IOException e) {
+ JNP_SERVER_LOG.error("Failed to close the test server error stream.", e);
+ }
+ }
+ }
+ });
+ testServerStdErrReader.start();
+
+ testServerStdOutReader = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ BufferedReader rdr = new BufferedReader(new InputStreamReader(testServerProcess.getInputStream()));
+ try {
+ String line;
+ while((line = rdr.readLine()) != null) {
+ JNP_SERVER_LOG.debug(line);
+ }
+ } catch (IOException e) {
+ JNP_SERVER_LOG.error("Reading test JNP server standard output failed.", e);
+ } finally {
+ try {
+ rdr.close();
+ } catch (IOException e) {
+ JNP_SERVER_LOG.error("Failed to close the test server standard output stream.", e);
+ }
+ }
+ }
+ });
+ testServerStdOutReader.start();
+
+ //give the JNP server some time to start up
+ Thread.sleep(5000);
+ }
+
+ @AfterClass
+ public void stopTestJnpServer() throws Exception {
+ testServerProcess.destroy();
+ testServerStdErrReader.join();
+ testServerStdOutReader.join();
+ }
+
+ @Parameters("jnp.port")
+ public void testRemoteConnectionWorkingFromJava(int jnpPort) throws Exception {
+ Properties env = new Properties();
+ env.put("java.naming.factory.initial", "org.jboss.naming.NamingContextFactory");
+ env.put("java.naming.provider.url", "jnp://localhost:" + jnpPort);
+ InitialContext ctx = new InitialContext(env);
+ Object kachny = ctx.lookup("kachny");
+
+ assert kachny != null;
+ }
+
+ public void testLocalJNDILookupFailsFromScripts() throws Exception {
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+
+ ScriptEngine engine = getEngine(overlord);
+
+ try {
+ engine.eval(""
+ + "var ctx = new javax.naming.InitialContext();\n"
+ + "var entityManagerFactory = ctx.lookup('java:/RHQEntityManagerFactory');\n"
+ + "var entityManager = entityManagerFactory.createEntityManager();\n"
+ + "entityManager.find(java.lang.Class.forName('org.rhq.core.domain.resource.Resource'), java.lang.Integer.valueOf('10001'));");
+
+ Assert.fail("The script shouldn't have been able to use the EntityManager.");
+ } catch (ScriptException e) {
+ checkIsDesiredSecurityException(e);
+ }
+ }
+
+ @Parameters("jnp.port")
+ public void testRemoteJNDILookupWorksFromScripts(int jnpPort) throws Exception {
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+
+ ScriptEngine engine = getEngine(overlord);
+
+ try {
+ engine.eval(""
+ + "var env = new java.util.Hashtable();"
+ + "env.put('java.naming.factory.initial', 'org.jboss.naming.NamingContextFactory');"
+ + "env.put('java.naming.provider.url', 'jnp://localhost:" + jnpPort + "');"
+ + "var ctx = new javax.naming.InitialContext(env);\n"
+ + "var kachny = ctx.lookup('kachny');\n"
+ + "assertNotNull(kachny);\n");
+ } catch (ScriptException e) {
+ Assert.fail("The script should have been able to access a remote JNDI server.", e);
+ }
+ }
+
+ private ScriptEngine getEngine(Subject subject) throws ScriptException, IOException {
+ StandardBindings bindings = new StandardBindings(new PrintWriter(System.out), new LocalClient(subject));
+ ScriptEngine engine = ScriptEngineFactory.getScriptEngine("JavaScript", new PackageFinder(Collections.<File>emptyList()), bindings);
+
+ PermissionCollection perms = new StandardScriptPermissions();
+
+ return new SandboxedScriptEngine(engine, perms);
+ }
+
+ private static void checkIsDesiredSecurityException(ScriptException e) {
+ String message = e.getMessage();
+ String permissionTrace = AllowRhqServerInternalsAccessPermission.class.getName();
+
+ Assert.assertTrue(message.contains(permissionTrace), "The script exception doesn't seem to be caused by the AllowRhqServerInternalsAccessPermission security exception. " + message);
+ }
+}
diff --git a/modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/hibernate.properties b/modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/hibernate.properties
new file mode 100644
index 0000000..1951b84
--- /dev/null
+++ b/modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/hibernate.properties
@@ -0,0 +1,26 @@
+# FOR SOME STRANGE REASON, THIS FILE NEEDS TO BE HERE FOR THE HIBERNATE TO CORRECTLY
+# INITIALIZE. I DON'T KNOW WHY THE STANDARD default.persistence.properties FILE DOESN'T
+# WORK IN THIS MODULE.
+
+hibernate.transaction.manager_lookup_class=org.hibernate.transaction.JBossTransactionManagerLookup
+#hibernate.connection.release_mode=after_statement
+#hibernate.transaction.flush_before_completion=false
+#hibernate.transaction.auto_close_session=false
+#hibernate.query.factory_class=org.hibernate.hql.ast.ASTQueryTranslatorFactory
+#hibernate.hbm2ddl.auto=create-drop
+#hibernate.hbm2ddl.auto=create
+hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider
+# Clustered cache with TreeCache
+#hibernate.cache.provider_class=org.jboss.ejb3.entity.TreeCacheProviderHook
+#hibernate.treecache.mbean.object_name=jboss.cache:service=EJB3EntityTreeCache
+#hibernate.dialect=org.hibernate.dialect.HSQLDialect
+hibernate.jndi.java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+hibernate.jndi.java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
+hibernate.bytecode.use_reflection_optimizer=false
+# I don't think this is honored, but EJB3Deployer uses it
+hibernate.bytecode.provider=javassist
+hibernate.jdbc.use_streams_for_binary=true
+hibernate.show_sql=false
+hibernate.format_sql=true
+hibernate.default_batch_fetch_size=16
+hibernate.jdbc.batch_size=20
diff --git a/modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/log4j.xml b/modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/log4j.xml
new file mode 100644
index 0000000..ec09ed7
--- /dev/null
+++ b/modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/log4j.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- Log4j Configuration -->
+<!-- -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml 39945 2006-01-12 02:44:07Z bill $ -->
+
+<!--
+ | For more configuration infromation and examples see the Jakarta Log4j
+ | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true">
+
+ <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Target" value="System.out"/>
+ <param name="Threshold" value="WARN"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Messagen -->
+ <!--
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+ -->
+ <param name="ConversionPattern" value="%-5p %d{dd-MM HH:mm:ss,SSS} [%c] (%F:%M:%L) -%m%n"/>
+ </layout>
+ </appender>
+
+ <appender name="FILE" class="org.apache.log4j.RollingFileAppender">
+ <param name="File" value="target/server-jar-test.log"/>
+ <param name="Threshold" value="WARN"/>
+ <param name="Append" value="false"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Messagen -->
+ <!--
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+ -->
+ <param name="ConversionPattern" value="%-5p %d{dd-MM HH:mm:ss,SSS} [%c] (%F:%M:%L) -%m%n"/>
+ </layout>
+ </appender>
+
+ <category name="Test JNP Server">
+ <priority value="DEBUG"/>
+ </category>
+
+ <!-- Hibernate logs WARNINGS frequent from this class, in test envs. -->
+ <category name="org.hibernate.hql.ast.QueryTranslatorImpl">
+ <priority value="ERROR"/>
+ </category>
+
+ <!-- hides the TIMER SERVICE IS NOT INSTALLED warning - we know embedded EJB3 container doesn't support timers -->
+ <category name="org.jboss.ejb3.timerservice.jboss.JBossTimerServiceFactory">
+ <priority value="ERROR"/>
+ </category>
+
+ <!-- hides the shutdown warnings - for some reason, the container spits out some warnings when shutting down -->
+ <category name="org.jboss.kernel.plugins.dependency.StartStopLifecycleAction">
+ <priority value="ERROR"/>
+ </category>
+
+ <!-- Hibernate SQL logs -->
+ <!--
+ <category name="org.hibernate.SQL">
+ <priority value="DEBUG"/>
+ </category>
+ -->
+
+ <root>
+ <appender-ref ref="CONSOLE"/>
+ <appender-ref ref="FILE"/>
+ </root>
+
+</log4j:configuration>
diff --git a/modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/security.policy b/modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/security.policy
new file mode 100644
index 0000000..8860b47
--- /dev/null
+++ b/modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/security.policy
@@ -0,0 +1,10 @@
+// We need the SecurityManager installed to enable sandboxing of CLI scripts
+// but we don't define any other security measures on the RHQ server itself.
+//
+// Granting all permissions allows us to run the RHQ server as if no security
+// manager was in place (which is assumed by default by JBoss AS) but be able
+// to use it when we need it for our own purposes.
+
+grant {
+ permission java.security.AllPermission;
+};
diff --git a/modules/integration-tests/jndi-access/pom.xml b/modules/integration-tests/jndi-access/pom.xml
new file mode 100644
index 0000000..6e9c673
--- /dev/null
+++ b/modules/integration-tests/jndi-access/pom.xml
@@ -0,0 +1,21 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>rhq-integration-tests</artifactId>
+ <groupId>org.rhq</groupId>
+ <version>4.3.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.rhq</groupId>
+ <artifactId>jndi-access-test-parent</artifactId>
+ <packaging>pom</packaging>
+
+ <name>JNDI access tests</name>
+ <description>Tests for the secured JNDI access tests</description>
+
+ <modules>
+ <module>remote-server</module>
+ <module>jndi-access-test</module>
+ </modules>
+</project>
diff --git a/modules/integration-tests/jndi-access/remote-server/pom.xml b/modules/integration-tests/jndi-access/remote-server/pom.xml
new file mode 100644
index 0000000..9046e6f
--- /dev/null
+++ b/modules/integration-tests/jndi-access/remote-server/pom.xml
@@ -0,0 +1,72 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>jndi-access-test-parent</artifactId>
+ <groupId>org.rhq</groupId>
+ <version>4.3.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.rhq</groupId>
+ <artifactId>jndi-access-remote-server</artifactId>
+ <packaging>jar</packaging>
+
+ <name>Test JNDI-enabled remote server</name>
+ <description>
+ A testing JNDI-enabled server to test the ability to connect to remote servers without security
+ checks from within the scripts running inside the RHQ server.
+ </description>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jnpserver</artifactId>
+ <version>4.2.2.GA</version>
+ </dependency>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-common</artifactId>
+ <version>4.2.2.GA</version>
+ </dependency>
+
+ <dependency>
+ <groupId>oswego-concurrent</groupId>
+ <artifactId>concurrent</artifactId>
+ <version>1.3.4-jboss</version>
+ </dependency>
+
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>package</id>
+ <phase>package</phase>
+ <goals><goal>single</goal></goals>
+ <configuration>
+ <archive>
+ <manifest>
+ <mainClass>org.rhq.jndi.test.Server</mainClass>
+ </manifest>
+ </archive>
+ <descriptorRefs>
+ <descriptorRef>jar-with-dependencies</descriptorRef>
+ </descriptorRefs>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+ </build>
+</project>
diff --git a/modules/integration-tests/jndi-access/remote-server/src/main/java/org/rhq/jndi/test/Server.java b/modules/integration-tests/jndi-access/remote-server/src/main/java/org/rhq/jndi/test/Server.java
new file mode 100644
index 0000000..7bfb8e8
--- /dev/null
+++ b/modules/integration-tests/jndi-access/remote-server/src/main/java/org/rhq/jndi/test/Server.java
@@ -0,0 +1,79 @@
+package org.rhq.jndi.test;
+import java.util.Properties;
+
+import javax.naming.CompoundName;
+
+import org.jnp.server.Main;
+import org.jnp.server.NamingBeanImpl;
+
+import org.jboss.logging.Logger;
+
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class Server {
+ private static final Logger LOG = Logger.getLogger(Server.class);
+
+ private static Server INSTANCE;
+
+ private Main jnpServer;
+
+ public static void main(String[] args) throws Exception {
+ LOG.debug("System properties: " + System.getProperties());
+ Server.start();
+ }
+
+ private Server() {
+ jnpServer = new Main("org.rhq.jndi.access.test.server");
+ }
+
+ public static synchronized Server getInstance() {
+ if (INSTANCE == null) {
+ INSTANCE = new Server();
+ }
+
+ return INSTANCE;
+ }
+
+ public static void start() throws Exception {
+ LOG.debug("Initializing the JNP server");
+
+ NamingBeanImpl nbi = new NamingBeanImpl();
+ getInstance().jnpServer.setNamingInfo(nbi);
+ nbi.start();
+
+ LOG.debug("Binding kachny");
+
+ nbi.getNamingInstance().bind(new CompoundName("kachny", new Properties()), "KACHNY!", String.class.getName());
+
+ LOG.debug("Starting the JNP server");
+
+ getInstance().jnpServer.start();
+ }
+
+ public static void stop() {
+ LOG.debug("Stopping the JNP server");
+ getInstance().jnpServer.stop();
+ }
+}
diff --git a/modules/integration-tests/jndi-access/remote-server/src/main/resources/jndi.properties b/modules/integration-tests/jndi-access/remote-server/src/main/resources/jndi.properties
new file mode 100644
index 0000000..a45f2ce
--- /dev/null
+++ b/modules/integration-tests/jndi-access/remote-server/src/main/resources/jndi.properties
@@ -0,0 +1,2 @@
+java.naming.factory.initial=org.jboss.naming.NamingContextFactory
+java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
\ No newline at end of file
diff --git a/modules/integration-tests/jndi-access/remote-server/src/main/resources/log4j.properties b/modules/integration-tests/jndi-access/remote-server/src/main/resources/log4j.properties
new file mode 100644
index 0000000..2d41f83
--- /dev/null
+++ b/modules/integration-tests/jndi-access/remote-server/src/main/resources/log4j.properties
@@ -0,0 +1,5 @@
+log4j.rootCategory=TRACE, CONSOLE
+
+log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
+log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
+log4j.appender.CONSOLE.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n
diff --git a/modules/integration-tests/pom.xml b/modules/integration-tests/pom.xml
index d3b2b85..e82ca08 100644
--- a/modules/integration-tests/pom.xml
+++ b/modules/integration-tests/pom.xml
@@ -64,9 +64,9 @@
</dependencies>
-
<modules>
<module>jboss-as-7-plugin-test</module>
<module>apache-plugin-test</module>
+ <module>jndi-access</module>
</modules>
-</project>
\ No newline at end of file
+</project>
commit 31daf6e07787ec5505ace5192971801e75b5ae55
Author: John Sanda <jsanda(a)redhat.com>
Date: Mon Feb 6 10:26:36 2012 -0500
Fixing error in test class that resulted from merge conflict
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java
index d427229..209a7cc 100644
--- a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java
@@ -199,7 +199,7 @@ public class DriftFilesSenderTest extends DriftTest {
sender.setHeaders(headers);
sender.run();
- assertEquals(driftClient.getSendChangeSetContentInvocationCount(), 0,
+ assertEquals(driftClient.getSendChangeSetInvocationCount(), 0,
"Do not call DriftClient to send content to server when there is no content to send.");
assertContentFileExists(changeSetDir(driftDefName));
}
commit 4886f73e5afb984f4039318da21cc5fbd37482bc
Author: John Sanda <jsanda(a)redhat.com>
Date: Wed Dec 14 20:59:56 2011 -0500
[BZ 767205] Only read snapshot file once when looking for content to send to server
With this commit DriftFilesSender now builds an index of the file
entries key offed of the SHA so that is can quickly find files without
having to repeatedly scan the snapshot file on disk.
Conflicts:
modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftFilesSender.java
modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftClient.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftClient.java
index 1649819..761b3df 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftClient.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftClient.java
@@ -24,7 +24,8 @@ public interface DriftClient {
* @param driftDefinitionName
* @param contentDir
*/
- void sendChangeSetContentToServer(int resourceId, String driftDefinitionName, File contentDir);
+ //void sendChangeSetContentToServer(int resourceId, String driftDefinitionName, File contentDir);
+ void sendChangeSetContentToServer(int resourceId, String driftDefName, File contentZipFile);
void repeatChangeSet(int resourceId, String driftDefName, int version);
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftFilesSender.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftFilesSender.java
index d8d2b46..d7ec560 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftFilesSender.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftFilesSender.java
@@ -1,13 +1,5 @@
package org.rhq.core.pc.drift;
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.List;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -17,6 +9,13 @@ import org.rhq.common.drift.Headers;
import org.rhq.core.domain.drift.DriftFile;
import org.rhq.core.util.stream.StreamUtil;
+import java.io.*;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
+
public class DriftFilesSender implements Runnable {
private Log log = LogFactory.getLog(DriftFilesSender.class);
@@ -53,23 +52,95 @@ public class DriftFilesSender implements Runnable {
@Override
public void run() {
+ ZipOutputStream stream = null;
try {
+ if (log.isInfoEnabled()) {
+ log.info("Preparing to send content to server for " + defToString());
+ }
+ long startTime = System.currentTimeMillis();
File changeSet = changeSetMgr.findChangeSet(resourceId, headers.getDriftDefinitionName());
- File contentDir = new File(changeSet.getParentFile(), "content");
- contentDir.mkdir();
-
- for (DriftFile driftFile : driftFiles) {
+ File changeSetDir = changeSet.getParentFile();
+
+ // Note that the content file has a specific format that the server
+ // expects. The file name is of the form content_<token>.zip where
+ // token is a unique string that the agent can use to identify the
+ // content zip file when the server sends an acknowledgement. The
+ // token is necessary because it is possible, albeit not likely,
+ // for a a particular definition to wind up with multiple content
+ // zip files and there is no guarantee that they will be acked in
+ // the order in which they were sent. The name of each file in the
+ // zip file should be the SHA for that file. The server uses that
+ // SHA to look up the DriftFile object it has already created for
+ // the content.
+ //
+ // jsanda
+
+ String timestamp = Long.toString(System.currentTimeMillis());
+ String contentFileName = "content_" + timestamp + ".zip";
+ final File zipFile = new File(changeSetDir, contentFileName);
+ stream = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFile)));
+
+ if (driftFiles.size() == 1) {
+ DriftFile driftFile = driftFiles.get(0);
File file = find(driftFile);
if (file == null || !file.exists()) {
log.warn("Unable to find file for " + driftFile);
} else {
- StreamUtil.copy(new BufferedInputStream(new FileInputStream(file)), new BufferedOutputStream(
- new FileOutputStream(new File(contentDir, driftFile.getHashId()))), true);
+ if (log.isDebugEnabled()) {
+ log.debug("Adding " + file.getPath() + " to " + contentFileName);
+ }
+ addFileToContentZipFile(stream, driftFile, file);
}
+ } else {
+ Map<String, FileEntry> fileEntries = createSnapshotIndex();
+
+ for (DriftFile driftFile : driftFiles) {
+ FileEntry entry = fileEntries.get(driftFile.getHashId());
+ if (entry == null) {
+ continue;
+ }
+ File file = new File(headers.getBasedir(), entry.getFile());
+ if (file == null || !file.exists()) {
+ log.warn("Unable to find file for " + driftFile);
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug("Adding " + file.getPath() + " to " + contentFileName);
+ }
+ addFileToContentZipFile(stream, driftFile, file);
+ }
+ }
+ }
+
+ stream.close();
+ stream = null;
+
+ driftClient.sendChangeSetContentToServer(resourceId, headers.getDriftDefinitionName(), zipFile);
+
+ if (log.isInfoEnabled()) {
+ long endTime = System.currentTimeMillis();
+ log.info("Finished submitting request to send content to server in " + (endTime - startTime) +
+ " ms");
}
- driftClient.sendChangeSetContentToServer(resourceId, headers.getDriftDefinitionName(), contentDir);
+
} catch (IOException e) {
log.error("Failed to send drift files.", e);
+ } finally {
+ if (stream != null) {
+ try {
+ stream.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+ }
+
+ private void addFileToContentZipFile(ZipOutputStream stream, DriftFile driftFile, File file) throws IOException {
+ FileInputStream fis = new FileInputStream(file);
+ try {
+ stream.putNextEntry(new ZipEntry(driftFile.getHashId()));
+ StreamUtil.copy(fis, stream, false);
+ } finally {
+ fis.close();
}
}
@@ -87,4 +158,22 @@ public class DriftFilesSender implements Runnable {
reader.close();
}
}
+
+ private Map<String, FileEntry> createSnapshotIndex() throws IOException {
+ ChangeSetReader reader = changeSetMgr.getChangeSetReader(resourceId, headers.getDriftDefinitionName());
+ try {
+ Map<String, FileEntry> map = new TreeMap<String, FileEntry>();
+ for (FileEntry entry : reader) {
+ map.put(entry.getNewSHA(), entry);
+ }
+ return map;
+ } finally {
+ reader.close();
+ }
+ }
+
+ private String defToString() {
+ return "[resourceId: " + resourceId + ", driftDefinitionId: " + headers.getDriftDefinitionId() +
+ ", driftDefinitionName: " + headers.getDriftDefinitionName() + "]";
+ }
}
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftManager.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftManager.java
index 7b0752d..36e0545 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftManager.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftManager.java
@@ -19,30 +19,8 @@
package org.rhq.core.pc.drift;
-import static org.rhq.common.drift.FileEntry.addedFileEntry;
-import static org.rhq.common.drift.FileEntry.changedFileEntry;
-import static org.rhq.common.drift.FileEntry.removedFileEntry;
-import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
-import static org.rhq.core.domain.drift.DriftChangeSetCategory.DRIFT;
-import static org.rhq.core.domain.drift.DriftComplianceStatus.OUT_OF_COMPLIANCE_NO_BASEDIR;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.FilenameFilter;
-import java.io.IOException;
-import java.util.List;
-import java.util.concurrent.ScheduledThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
import org.rhq.common.drift.ChangeSetWriter;
import org.rhq.common.drift.Headers;
import org.rhq.core.clientapi.agent.drift.DriftAgentService;
@@ -63,6 +41,18 @@ import org.rhq.core.pc.measurement.MeasurementManager;
import org.rhq.core.util.file.FileUtil;
import org.rhq.core.util.stream.StreamUtil;
+import java.io.*;
+import java.util.List;
+import java.util.concurrent.ScheduledThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
+
+import static org.rhq.common.drift.FileEntry.*;
+import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
+import static org.rhq.core.domain.drift.DriftChangeSetCategory.DRIFT;
+import static org.rhq.core.domain.drift.DriftComplianceStatus.OUT_OF_COMPLIANCE_NO_BASEDIR;
+
public class DriftManager extends AgentService implements DriftAgentService, DriftClient, ContainerService {
private final Log log = LogFactory.getLog(DriftManager.class);
@@ -251,7 +241,8 @@ public class DriftManager extends AgentService implements DriftAgentService, Dri
if (log.isDebugEnabled()) {
log.debug("Resending " + contentZipFile.getPath());
}
- sendContentZipFile(Integer.parseInt(resourceDir.getName()), defDir.getName(), contentZipFile);
+ sendChangeSetContentToServer(Integer.parseInt(resourceDir.getName()), defDir.getName(),
+ contentZipFile);
}
}
}
@@ -342,46 +333,7 @@ public class DriftManager extends AgentService implements DriftAgentService, Dri
}
@Override
- public void sendChangeSetContentToServer(int resourceId, String driftDefinitionName, final File contentDir) {
- ZipOutputStream stream = null;
- try {
- String timestamp = Long.toString(System.currentTimeMillis());
- String contentFileName = "content_" + timestamp + ".zip";
- final File zipFile = new File(contentDir.getParentFile(), contentFileName);
- stream = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFile)));
-
- for (File file : contentDir.listFiles()) {
- FileInputStream fis = new FileInputStream(file);
- try {
- stream.putNextEntry(new ZipEntry(file.getName()));
- StreamUtil.copy(fis, stream, false);
- } finally {
- fis.close();
- }
- }
- stream.close();
- stream = null;
- sendContentZipFile(resourceId, driftDefinitionName, zipFile);
- } catch (IOException e) {
- log.error("An error occurred while trying to send content for changeset[resourceId: " + resourceId
- + ", driftDefinition: " + driftDefinitionName + "]", e);
- } finally {
- if (stream != null) {
- try {
- stream.close();
- } catch (IOException e) {
- }
- }
- }
-
- for (File file : contentDir.listFiles()) {
- if (!file.delete()) {
- log.warn("Unable to clean up content directory. Failed to delete " + file.getPath());
- }
- }
- }
-
- private void sendContentZipFile(int resourceId, String driftDefName, File contentZipFile) {
+ public void sendChangeSetContentToServer(int resourceId, String driftDefName, File contentZipFile) {
try {
int startIndex = "content_".length();
int endIndex = contentZipFile.getName().indexOf(".");
@@ -389,10 +341,10 @@ public class DriftManager extends AgentService implements DriftAgentService, Dri
DriftServerService driftServer = pluginContainerConfiguration.getServerServices().getDriftServerService();
driftServer.sendFilesZip(resourceId, driftDefName, token, contentZipFile.length(),
- remoteInputStream(new BufferedInputStream(new FileInputStream(contentZipFile))));
+ remoteInputStream(new BufferedInputStream(new FileInputStream(contentZipFile))));
} catch (FileNotFoundException e) {
log.error("An error occurred while trying to send change set content zip file " + contentZipFile.getPath()
- + " to server.", e);
+ + " to server.", e);
}
}
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java
index 5fd6528..d427229 100644
--- a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java
@@ -19,18 +19,24 @@
package org.rhq.core.pc.drift;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
import org.rhq.common.drift.ChangeSetWriter;
import org.rhq.common.drift.Headers;
import org.rhq.core.domain.drift.DriftChangeSetCategory;
import org.rhq.core.domain.drift.DriftFile;
import org.rhq.core.domain.drift.JPADriftFile;
+import org.rhq.core.util.ZipUtil;
+import org.rhq.test.AssertUtils;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.io.File;
+import java.io.FilenameFilter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
import static org.rhq.common.drift.FileEntry.addedFileEntry;
import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
@@ -39,7 +45,7 @@ import static org.testng.Assert.assertTrue;
public class DriftFilesSenderTest extends DriftTest {
- DriftClient driftClient;
+ DriftClientTestStub driftClient;
DriftFilesSender sender;
@@ -54,6 +60,27 @@ public class DriftFilesSenderTest extends DriftTest {
}
@Test
+ public void sendOneFile() throws Exception {
+ String driftDefName = "send-one-file-test";
+ File serverConf = createRandomFile(resourceDir, "server.conf");
+ String serverConfHash = sha256(serverConf);
+
+ File changeSetDir = changeSetDir(driftDefName);
+ Headers headers = createHeaders(driftDefName, COVERAGE);
+
+ ChangeSetWriter writer = changeSetMgr.getChangeSetWriter(resourceId(), headers);
+ writer.write(addedFileEntry("server.conf", serverConfHash));
+ writer.close();
+
+ sender.setDriftFiles(driftFiles(serverConfHash));
+ sender.setHeaders(headers);
+ sender.run();
+
+ assertContentFileExists(changeSetDir);
+ assertContentFileMatches(changeSetDir, serverConfHash);
+ }
+
+ @Test
public void sendFilesInOneDirectory() throws Exception {
String driftDefName = "single-directory-test";
@@ -74,14 +101,11 @@ public class DriftFilesSenderTest extends DriftTest {
writer.close();
sender.setDriftFiles(driftFiles(server1ConfHash, server2ConfHash));
- sender.setHeaders(createHeaders(driftDefName, COVERAGE));
+ sender.setHeaders(headers);
sender.run();
- File contentDir = mkdir(changeSetDir, "content");
-
- assertEquals(contentDir.list().length, 2, "Expected to find two files in " + contentDir.getAbsolutePath());
- assertFileCopiedToContentDir(contentDir, server1ConfHash);
- assertFileCopiedToContentDir(contentDir, server2ConfHash);
+ assertContentFileExists(changeSetDir);
+ assertContentFileMatches(changeSetDir, server1ConfHash, server2ConfHash);
}
@Test
@@ -114,16 +138,11 @@ public class DriftFilesSenderTest extends DriftTest {
// Note that the order of the drift files is random. When the server sends a request
// for files we cannot assume that the files will be in any particular order.
sender.setDriftFiles(driftFiles(server1JarHash, server2ConfHash, server2JarHash, server1ConfHash));
- sender.setHeaders(createHeaders(driftDefName, COVERAGE));
+ sender.setHeaders(headers);
sender.run();
- File contentDir = mkdir(changeSetDir, "content");
-
- assertEquals(contentDir.list().length, 4, "Expected to find four files in " + contentDir.getAbsolutePath());
- assertFileCopiedToContentDir(contentDir, server1ConfHash);
- assertFileCopiedToContentDir(contentDir, server2ConfHash);
- assertFileCopiedToContentDir(contentDir, server1JarHash);
- assertFileCopiedToContentDir(contentDir, server2JarHash);
+ assertContentFileExists(changeSetDir);
+ assertContentFileMatches(changeSetDir, server1ConfHash, server2ConfHash, server1JarHash, server2JarHash);
}
@Test
@@ -155,10 +174,64 @@ public class DriftFilesSenderTest extends DriftTest {
sender.setHeaders(headers);
sender.run();
- File contentDir = mkdir(changeSetDir, "content");
+ assertContentFileExists(changeSetDir);
+ assertContentFileMatches(changeSetDir, server2ConfHash);
+ }
+
+ @Test
+ public void doNotSendEmptyZipFileToServer() throws Exception {
+ String driftDefName = "empty_content_test";
+
+ File confDir = mkdir(resourceDir, "conf");
+ File serverConf = createRandomFile(confDir, "server.conf");
+
+ String serverConfHash = sha256(serverConf);
+
+ Headers headers = createHeaders(driftDefName, COVERAGE);
+
+ ChangeSetWriter writer = changeSetMgr.getChangeSetWriter(resourceId(), headers);
+ writer.write(addedFileEntry("conf/server.conf", serverConfHash));
+ writer.close();
+
+ serverConf.delete();
+
+ sender.setDriftFiles(driftFiles(serverConfHash));
+ sender.setHeaders(headers);
+ sender.run();
+
+ assertEquals(driftClient.getSendChangeSetContentInvocationCount(), 0,
+ "Do not call DriftClient to send content to server when there is no content to send.");
+ assertContentFileExists(changeSetDir(driftDefName));
+ }
+
+ void assertContentFileExists(File changeSetDir) {
+ File[] files = getContentFiles(changeSetDir);
+ assertEquals(files.length, 1, "Expected to find a single content zip file but found " + Arrays.toString(files));
+ }
+
+ void assertContentFileMatches(File changeSetDir, String... expectedFileNames) throws Exception {
+ File contentFile = getContentFiles(changeSetDir)[0];
+ final List<String> actualFileNames = new LinkedList<String>();
+
+ ZipUtil.walkZipFile(contentFile, new ZipUtil.ZipEntryVisitor() {
+ @Override
+ public boolean visit(ZipEntry entry, ZipInputStream stream) throws Exception {
+ actualFileNames.add(entry.getName());
+ return true;
+ }
+ });
+
+ AssertUtils.assertCollectionEqualsNoOrder(Arrays.asList(expectedFileNames), actualFileNames,
+ "The content file " + contentFile.getPath() + " does not contain the correct entries");
+ }
- assertEquals(contentDir.list().length, 1, "Expected to find one file in " + contentDir.getAbsolutePath());
- assertFileCopiedToContentDir(contentDir, server2ConfHash);
+ private File[] getContentFiles(File changeSetDir) {
+ return changeSetDir.listFiles(new FilenameFilter() {
+ @Override
+ public boolean accept(File dir, String name) {
+ return name.startsWith("content_") && name.endsWith(".zip");
+ }
+ });
}
/**
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftManagerTest.java b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftManagerTest.java
index c3e28f5..e1ec00d 100644
--- a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftManagerTest.java
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftManagerTest.java
@@ -133,7 +133,8 @@ public class DriftManagerTest extends DriftTest {
File changeSetDir = changeSetDir(config.getName());
File snapshotFile = createRandomFile(changeSetDir, "changeset.txt");
File previousSnapshotFile = createRandomFile(changeSetDir, "changeset.txt.previous");
- File changeSetZipFile = createRandomFile(changeSetDir, "changeset_" + System.currentTimeMillis() + ".zip");
+
+ createRandomFile(changeSetDir, "changeset_" + System.currentTimeMillis() + ".zip");
driftMgr.ackChangeSet(resourceId(), config.getName());
@@ -145,53 +146,11 @@ public class DriftManagerTest extends DriftTest {
}
@Test
- public void writeContentZipFileToChangeSetContentDirectory() throws Exception {
- String configName = "send-content-in-zip";
- final File changeSetDir = changeSetDir(configName);
- final File contentDir = mkdir(changeSetDir, "content");
-
- createRandomFile(contentDir, "content-1");
- createRandomFile(contentDir, "content-2");
-
- setDriftServiceCallback(new DriftServiceCallback() {
- @Override
- public void execute() {
- assertThatZipFileExists(changeSetDir, "content_", "Expected to find content zip file in "
- + changeSetDir.getPath() + ". The file name should follow the pattern "
- + "content_<integer_timestamp>.zip");
- }
- });
-
- driftMgr.sendChangeSetContentToServer(resourceId(), configName, contentDir);
- }
-
- @Test
- public void sendContentToServerInZipFile() throws Exception {
- String configName = "send-content-in-zip";
- File changeSetDir = changeSetDir(configName);
- File contentDir = mkdir(changeSetDir, "content");
-
- final File content1 = createRandomFile(contentDir, "content-1");
- final File content2 = createRandomFile(contentDir, "content-2");
-
- setDriftServiceCallback(new DriftServiceCallback() {
- @Override
- public void execute() {
- assertZipFileMatches(driftServerService.inputStream, content1, content2);
- }
- });
-
- driftMgr.sendChangeSetContentToServer(resourceId(), configName, contentDir);
-
- // verify that the content directory is purged
- assertThatDirectoryIsEmpty(contentDir);
- }
-
- @Test
public void cleanUpWhenServerAcksChangeSetContent() throws Exception {
String configName = "cleanup-when-server-acks-content";
File changeSetDir = changeSetDir(configName);
- File contentDir = mkdir(changeSetDir, "content");
+
+ mkdir(changeSetDir, "content");
String token = Long.toString(System.currentTimeMillis());
File contentZipFile = createRandomFile(changeSetDir, "content_" + token + ".zip");
@@ -309,10 +268,6 @@ public class DriftManagerTest extends DriftTest {
}
}
- private void assertThatDirectoryIsEmpty(File dir) {
- assertEquals(dir.listFiles().length, 0, "Expected " + dir.getPath() + " to be empty");
- }
-
private File findFile(File dir, File file) {
for (File f : dir.listFiles()) {
if (f.getName().equals(file.getName())) {
commit d3ec74ff1488065b54e3b0b81eca0ba59ccfb2fd
Author: John Sanda <jsanda(a)redhat.com>
Date: Tue Dec 13 17:12:32 2011 -0500
[BZ 767328] Make sure that each drift def is loaded into the persistence context
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftTemplateManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftTemplateManagerBean.java
index 361eb44..9a1c980 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftTemplateManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftTemplateManagerBean.java
@@ -19,26 +19,11 @@
package org.rhq.enterprise.server.drift;
-import static javax.ejb.TransactionAttributeType.NEVER;
-import static org.rhq.core.domain.common.EntityContext.forResource;
-import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
-import static org.rhq.core.domain.drift.DriftConfigurationDefinition.DriftHandlingMode.normal;
-
-import javax.ejb.EJB;
-import javax.ejb.Stateless;
-import javax.ejb.TransactionAttribute;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.authz.Permission;
import org.rhq.core.domain.criteria.DriftDefinitionCriteria;
import org.rhq.core.domain.criteria.DriftDefinitionTemplateCriteria;
-import org.rhq.core.domain.drift.DriftDefinition;
-import org.rhq.core.domain.drift.DriftDefinitionComparator;
-import org.rhq.core.domain.drift.DriftDefinitionTemplate;
-import org.rhq.core.domain.drift.DriftSnapshot;
-import org.rhq.core.domain.drift.DriftSnapshotRequest;
+import org.rhq.core.domain.drift.*;
import org.rhq.core.domain.drift.dto.DriftChangeSetDTO;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.util.PageList;
@@ -49,6 +34,17 @@ import org.rhq.enterprise.server.resource.ResourceTypeNotFoundException;
import org.rhq.enterprise.server.util.CriteriaQueryGenerator;
import org.rhq.enterprise.server.util.CriteriaQueryRunner;
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+import javax.ejb.TransactionAttribute;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import static javax.ejb.TransactionAttributeType.NEVER;
+import static org.rhq.core.domain.common.EntityContext.forResource;
+import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
+import static org.rhq.core.domain.drift.DriftConfigurationDefinition.DriftHandlingMode.normal;
+
@Stateless
public class DriftTemplateManagerBean implements DriftTemplateManagerLocal, DriftTemplateManagerRemote {
@@ -205,13 +201,15 @@ public class DriftTemplateManagerBean implements DriftTemplateManagerLocal, Drif
DriftDefinition templateDef = template.getTemplateDefinition();
for (DriftDefinition resourceDef : template.getDriftDefinitions()) {
- if (resourceDef.isAttached()) {
- resourceDef.setInterval(templateDef.getInterval());
- resourceDef.setDriftHandlingMode(templateDef.getDriftHandlingMode());
- resourceDef.setEnabled(templateDef.isEnabled());
+ DriftDefinition driftDef = entityMgr.find(DriftDefinition.class, resourceDef.getId());
+ if (driftDef.isAttached()) {
+ driftDef.setInterval(templateDef.getInterval());
+ driftDef.setDriftHandlingMode(templateDef.getDriftHandlingMode());
+ driftDef.setEnabled(templateDef.isEnabled());
- driftMgr.updateDriftDefinition(subject, forResource(resourceDef.getResource().getId()), resourceDef);
+ driftMgr.updateDriftDefinition(subject, forResource(driftDef.getResource().getId()), driftDef);
}
}
}
+
}
commit 841dccecd66424c5f7286298f64b098ec2034a9e
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Feb 3 13:11:27 2012 -0500
[BZ 773031] enhance test to check and make sure the state is set properly
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTest.java b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTest.java
index 39ae23d..f35965a 100644
--- a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTest.java
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTest.java
@@ -35,7 +35,9 @@ import org.rhq.core.domain.resource.InventoryStatus;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.pc.PluginContainer;
import org.rhq.core.pc.ServerServices;
+import org.rhq.core.pc.inventory.InventoryManager;
import org.rhq.core.pc.inventory.ResourceContainer;
+import org.rhq.core.pc.inventory.ResourceContainer.ResourceComponentState;
import org.rhq.test.pc.PluginContainerSetup;
import org.rhq.test.pc.PluginContainerTest;
@@ -299,6 +301,14 @@ public class ResourceUpgradeTest extends ResourceUpgradeTestBase {
assertEquals(discoveredResource.getName(), "resource-name-v1");
assertEquals(discoveredResource.getDescription(), "resource-description-v1");
+ InventoryManager im = PluginContainer.getInstance().getInventoryManager();
+ ResourceContainer container = im.getResourceContainer(discoveredResource.getId());
+ if (discoveredResource.getInventoryStatus() == InventoryStatus.COMMITTED) {
+ assert container.getResourceComponentState() == ResourceComponentState.STARTED;
+ } else {
+ assert container.getResourceComponentState() == ResourceComponentState.STOPPED;
+ }
+
return inv;
}
commit 81dd1704b92668879b6b83efd946f44d09d5a343
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Feb 2 13:32:01 2012 -0500
[BZ 768706] add some more code to make sure we do proper error correction/checking
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
index 2a4a3f2..c350176 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
@@ -1464,6 +1464,7 @@ public class InventoryManager extends AgentService implements ContainerService,
// state is a transient field, so reinitialize it just in case this is invoked just after loadFromDisk()
if (state == null) {
container.setResourceComponentState(ResourceComponentState.STOPPED);
+ state = ResourceComponentState.STOPPED;
}
// if the component exists and is not stopped then we may not have to do anything
@@ -1590,11 +1591,19 @@ public class InventoryManager extends AgentService implements ContainerService,
if (prepareResourceForActivation(resource, container, updatedPluginConfig)) {
container.setResourceComponentState(ResourceComponentState.STARTING);
- ResourceContext context = container.getResourceContext();
+ ResourceContext context;
+ ResourceComponent component;
- // Wrap the component in a proxy that will provide locking and a timeout for the call to start().
- ResourceComponent component = container.createResourceComponentProxy(ResourceComponent.class,
- FacetLockType.READ, COMPONENT_START_TIMEOUT, true, false);
+ try {
+ context = container.getResourceContext();
+
+ // Wrap the component in a proxy that will provide locking and a timeout for the call to start().
+ component = container.createResourceComponentProxy(ResourceComponent.class, FacetLockType.READ,
+ COMPONENT_START_TIMEOUT, true, false);
+ } catch (Throwable t) {
+ container.setResourceComponentState(ResourceComponentState.STOPPED);
+ throw new PluginContainerException("Failed getting proxy for resource " + resource + ".", t);
+ }
try {
component.start(context);
commit 4e39e89a96afaa6878c82a511171cd7052961722
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Feb 3 15:13:42 2012 -0500
[Bug 773031 - Component start() called more than once without an intervening stop()]
A variety of auto-formatting changes took place, actual changes are in:
InventoryManager.prepareResourceForActivation
InventoryManager.activateResource
The resource component state could be STOPPED or STARTED. There was a
large window while a component was actually starting that a call
to prepareResourceForActivation would happily allow the component to
again be activated. So, added an actual STARTING state that can block
redundant activation.
Additionally, if forcing reactivation ensure a STARTED component is
stopped before being restarted.
Also:
- remove unnecessary and bad lazy state check
- comment out some unused/debug code
- remove warnings
Conflicts:
modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
index eaee690..2a4a3f2 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
@@ -130,6 +130,7 @@ import org.rhq.core.util.exception.WrappedRemotingException;
* @author Ian Springer
* @author Jay Shaughnessy
*/
+@SuppressWarnings({ "rawtypes", "unchecked" })
public class InventoryManager extends AgentService implements ContainerService, DiscoveryAgentService {
private static final String INVENTORY_THREAD_POOL_NAME = "InventoryManager.discovery";
private static final String AVAIL_THREAD_POOL_NAME = "InventoryManager.availability";
@@ -245,16 +246,19 @@ public class InventoryManager extends AgentService implements ContainerService,
// inside EmbJopr).
if (configuration.isInsideAgent()) {
// After an initial delay (5s by default), periodically run an availability check (every 1m by default).
- availabilityThreadPoolExecutor.scheduleWithFixedDelay(availabilityExecutor, configuration
- .getAvailabilityScanInitialDelay(), configuration.getAvailabilityScanPeriod(), TimeUnit.SECONDS);
+ availabilityThreadPoolExecutor.scheduleWithFixedDelay(availabilityExecutor,
+ configuration.getAvailabilityScanInitialDelay(), configuration.getAvailabilityScanPeriod(),
+ TimeUnit.SECONDS);
// After an initial delay (10s by default), periodically run a server discovery scan (every 15m by default).
- inventoryThreadPoolExecutor.scheduleWithFixedDelay(serverScanExecutor, configuration
- .getServerDiscoveryInitialDelay(), configuration.getServerDiscoveryPeriod(), TimeUnit.SECONDS);
+ inventoryThreadPoolExecutor.scheduleWithFixedDelay(serverScanExecutor,
+ configuration.getServerDiscoveryInitialDelay(), configuration.getServerDiscoveryPeriod(),
+ TimeUnit.SECONDS);
// After an initial delay (20s by default), periodically run a service discovery scan (every 1d by default).
- inventoryThreadPoolExecutor.scheduleWithFixedDelay(serviceScanExecutor, configuration
- .getServiceDiscoveryInitialDelay(), configuration.getServiceDiscoveryPeriod(), TimeUnit.SECONDS);
+ inventoryThreadPoolExecutor.scheduleWithFixedDelay(serviceScanExecutor,
+ configuration.getServiceDiscoveryInitialDelay(), configuration.getServiceDiscoveryPeriod(),
+ TimeUnit.SECONDS);
}
} finally {
inventoryLock.writeLock().unlock();
@@ -311,8 +315,8 @@ public class InventoryManager extends AgentService implements ContainerService,
long timeout = getDiscoveryComponentTimeout(context.getResourceType());
try {
- ResourceDiscoveryComponent proxy = this.discoveryComponentProxyFactory.getDiscoveryComponentProxy(context
- .getResourceType(), component, timeout, parentResourceContainer);
+ ResourceDiscoveryComponent proxy = this.discoveryComponentProxyFactory.getDiscoveryComponentProxy(
+ context.getResourceType(), component, timeout, parentResourceContainer);
Set<DiscoveredResourceDetails> results = proxy.discoverResources(context);
return results;
} catch (TimeoutException te) {
@@ -347,8 +351,8 @@ public class InventoryManager extends AgentService implements ContainerService,
long timeout = getDiscoveryComponentTimeout(context.getResourceType());
try {
- ManualAddFacet proxy = this.discoveryComponentProxyFactory.getDiscoveryComponentProxy(context
- .getResourceType(), component, timeout, ManualAddFacet.class, parentResourceContainer);
+ ManualAddFacet proxy = this.discoveryComponentProxyFactory.getDiscoveryComponentProxy(
+ context.getResourceType(), component, timeout, ManualAddFacet.class, parentResourceContainer);
DiscoveredResourceDetails result = proxy.discoverResource(pluginConfig, context);
return result;
} catch (TimeoutException te) {
@@ -387,8 +391,8 @@ public class InventoryManager extends AgentService implements ContainerService,
component, timeout, ClassLoaderFacet.class, parentContainer);
ResourceDiscoveryContext discoveryContext = new ResourceDiscoveryContext(resourceType, parentComponent,
- parentResourceContext, SystemInfoFactory.createSystemInfo(), null, null, this.configuration
- .getContainerName(), this.configuration.getPluginContainerDeployment());
+ parentResourceContext, SystemInfoFactory.createSystemInfo(), null, null,
+ this.configuration.getContainerName(), this.configuration.getPluginContainerDeployment());
// Configurations are not immutable, so clone the plugin config, so the plugin will not be able to change the
// actual PC-managed plugin config.
@@ -409,7 +413,6 @@ public class InventoryManager extends AgentService implements ContainerService,
long timeout = getDiscoveryComponentTimeout(resourceType);
try {
- @SuppressWarnings("unchecked")
ResourceUpgradeFacet<T> proxy = this.discoveryComponentProxyFactory.getDiscoveryComponentProxy(
resourceType, component, timeout, ResourceUpgradeFacet.class, parentResourceContainer);
@@ -641,7 +644,6 @@ public class InventoryManager extends AgentService implements ContainerService,
return new Availability(resource, new Date(), availType);
}
- @SuppressWarnings("unchecked")
public MergeResourceResponse manuallyAddResource(ResourceType resourceType, int parentResourceId,
Configuration pluginConfiguration, int ownerSubjectId) throws InvalidPluginConfigurationClientException,
PluginContainerException {
@@ -676,8 +678,8 @@ public class InventoryManager extends AgentService implements ContainerService,
ResourceDiscoveryContext<ResourceComponent<?>> discoveryContext = new ResourceDiscoveryContext<ResourceComponent<?>>(
resourceType, parentResourceComponent, parentResourceContainer.getResourceContext(),
SystemInfoFactory.createSystemInfo(), new ArrayList<ProcessScanResult>(0),
- new ArrayList<Configuration>(0), this.configuration.getContainerName(), this.configuration
- .getPluginContainerDeployment());
+ new ArrayList<Configuration>(0), this.configuration.getContainerName(),
+ this.configuration.getPluginContainerDeployment());
// Ask the plugin's discovery component to find the new resource, throwing exceptions if it cannot be
// found at all.
@@ -880,8 +882,7 @@ public class InventoryManager extends AgentService implements ContainerService,
if ((this.platform != null) && (this.platform.getInventoryStatus() == InventoryStatus.NEW)
&& newPlatformWasDeletedRecently) {
// let's make sure we are registered; its probable that our platform was deleted and we need to re-register
- log
- .info("No committed resources to send in our availability report - the platform/agent was deleted, let's re-register again");
+ log.info("No committed resources to send in our availability report - the platform/agent was deleted, let's re-register again");
registerWithServer();
newPlatformWasDeletedRecently = false; // we've tried to recover from our platform being deleted, let's not do it again
}
@@ -924,8 +925,8 @@ public class InventoryManager extends AgentService implements ContainerService,
log.debug("Availability report content: " + report.toString(log.isTraceEnabled()));
}
- boolean ok = configuration.getServerServices().getDiscoveryServerService().mergeAvailabilityReport(
- report);
+ boolean ok = configuration.getServerServices().getDiscoveryServerService()
+ .mergeAvailabilityReport(report);
if (!ok) {
// I guess I could immediately call executeAvailabilityScanImmediately and pass its results to
// mergeAvailabilityReport again right now, but what happens if we've queued up a bunch of
@@ -971,10 +972,9 @@ public class InventoryManager extends AgentService implements ContainerService,
(System.currentTimeMillis() - startTime)));
}
} catch (StaleTypeException e) {
- log
- .error("Failed to merge inventory report with server. The report contains one or more resource types "
- + "that have been marked for deletion. Notifying the plugin container that a reboot is needed to purge "
- + "stale types.");
+ log.error("Failed to merge inventory report with server. The report contains one or more resource types "
+ + "that have been marked for deletion. Notifying the plugin container that a reboot is needed to purge "
+ + "stale types.");
PluginContainer.getInstance().notifyRebootRequestListener();
return false;
} catch (InvalidInventoryReportException e) {
@@ -982,8 +982,7 @@ public class InventoryManager extends AgentService implements ContainerService,
if ((this.platform != null) && (this.platform.getInventoryStatus() == InventoryStatus.NEW)
&& newPlatformWasDeletedRecently) {
// let's make sure we are registered; its probable that our platform was deleted and we need to re-register
- log
- .info("The inventory report was invalid probably because the platform/Agent was deleted; let's re-register...");
+ log.info("The inventory report was invalid probably because the platform/Agent was deleted; let's re-register...");
registerWithServer();
newPlatformWasDeletedRecently = false; // we've tried to recover from our platform being deleted, let's not do it again
}
@@ -1179,8 +1178,8 @@ public class InventoryManager extends AgentService implements ContainerService,
parent.removeChildResource(resource);
}
- PluginContainer.getInstance().getMeasurementManager().unscheduleCollection(
- Collections.singleton(resource.getId()));
+ PluginContainer.getInstance().getMeasurementManager()
+ .unscheduleCollection(Collections.singleton(resource.getId()));
if (this.resourceContainers.remove(resource.getUuid()) == null) {
if (log.isDebugEnabled()) {
@@ -1286,8 +1285,8 @@ public class InventoryManager extends AgentService implements ContainerService,
logMessage.append("description, ");
}
- logMessage.replace(logMessage.length() - 1, logMessage.length(), "to become [").append(
- existingResource.toString()).append("]");
+ logMessage.replace(logMessage.length() - 1, logMessage.length(), "to become [")
+ .append(existingResource.toString()).append("]");
log.info(logMessage.toString());
} else {
@@ -1450,25 +1449,48 @@ public class InventoryManager extends AgentService implements ContainerService,
*/
private boolean prepareResourceForActivation(Resource resource, @NotNull ResourceContainer container,
boolean forceReinitialization) throws InvalidPluginConfigurationException, PluginContainerException {
+
if (resourceUpgradeDelegate.hasUpgradeFailed(resource)) {
if (log.isTraceEnabled()) {
log.trace("Skipping activation of " + resource + " - it has failed to upgrade.");
}
+
return false;
}
ResourceComponent component = container.getResourceComponent();
+ ResourceComponentState state = container.getResourceComponentState();
- // if the component already exists and is started, and the resource's plugin config has not changed, there is
- // nothing to do, so return immediately
- if ((component != null)
- && (container.getResourceComponentState() == ResourceComponentState.STARTED && !forceReinitialization)) {
- if (log.isTraceEnabled()) {
- log.trace("No need to prepare the activation of resource " + resource
- + " - its component is already started and its plugin "
- + "config has not been updated since it was last started.");
+ // state is a transient field, so reinitialize it just in case this is invoked just after loadFromDisk()
+ if (state == null) {
+ container.setResourceComponentState(ResourceComponentState.STOPPED);
+ }
+
+ // if the component exists and is not stopped then we may not have to do anything
+ if ((component != null) && (state != ResourceComponentState.STOPPED)) {
+
+ // if STARTED and we are forced to restart (e.g. plugin config change), then stop the component
+ // and continue. If STARTING just let it continue to start as interruption could put us in a bad state.
+ if (forceReinitialization) {
+ switch (state) {
+ case STARTED:
+ component.stop();
+ break;
+ case STARTING:
+ log.warn("Could not force initialization of component for resource [" + resource.getId()
+ + "] as it is already in the process of starting.");
+
+ return false;
+ }
+ } else {
+ if (log.isTraceEnabled()) {
+ log.trace("No need to prepare the activation of resource " + resource
+ + " - its component is already started and its plugin "
+ + "config has not been updated since it was last started.");
+ }
+
+ return false;
}
- return false;
}
if (log.isDebugEnabled()) {
@@ -1484,16 +1506,13 @@ public class InventoryManager extends AgentService implements ContainerService,
}
try {
component = PluginContainer.getInstance().getPluginComponentFactory().buildResourceComponent(resource);
+
} catch (Throwable e) {
throw new PluginContainerException("Could not build component for Resource [" + resource + "]", e);
}
container.setResourceComponent(component);
}
- //this is a transient field, so reinitialize it just in case this is invoked just after
- //loadFromDisk()
- container.setResourceComponentState(ResourceComponentState.STOPPED);
-
// start the resource, but only if its parent component is running. If the parent is null, that means
// the resource is, itself, the root platform and we always activate that.
ResourceContainer parentResourceContainer;
@@ -1523,8 +1542,8 @@ public class InventoryManager extends AgentService implements ContainerService,
log.warn("Cannot give activated resource its discovery component. Cause: " + e);
}
- ConfigurationUtility.normalizeConfiguration(resource.getPluginConfiguration(), type
- .getPluginConfigurationDefinition());
+ ConfigurationUtility.normalizeConfiguration(resource.getPluginConfiguration(),
+ type.getPluginConfigurationDefinition());
ResourceComponent<?> parentComponent = null;
if (resource.getParentResource() != null) {
@@ -1532,10 +1551,9 @@ public class InventoryManager extends AgentService implements ContainerService,
}
ResourceContext context = createResourceContext(resource, parentComponent, discoveryComponent);
-
container.setResourceContext(context);
-
return true;
+
} else {
if (log.isDebugEnabled()) {
log.debug("Resource [" + resource + "] not being prepared for activation; parent isn't started: "
@@ -1559,9 +1577,9 @@ public class InventoryManager extends AgentService implements ContainerService,
* plugin configuration
* @throws PluginContainerException for all other errors
*/
- @SuppressWarnings("unchecked")
public void activateResource(Resource resource, @NotNull ResourceContainer container, boolean updatedPluginConfig)
throws InvalidPluginConfigurationException, PluginContainerException {
+
if (resourceUpgradeDelegate.hasUpgradeFailed(resource)) {
if (log.isTraceEnabled()) {
log.trace("Skipping activation of " + resource + " - it has failed to upgrade.");
@@ -1570,6 +1588,7 @@ public class InventoryManager extends AgentService implements ContainerService,
}
if (prepareResourceForActivation(resource, container, updatedPluginConfig)) {
+ container.setResourceComponentState(ResourceComponentState.STARTING);
ResourceContext context = container.getResourceContext();
@@ -1578,27 +1597,26 @@ public class InventoryManager extends AgentService implements ContainerService,
FacetLockType.READ, COMPONENT_START_TIMEOUT, true, false);
try {
- // One last check to make sure another thread didn't beat us to the punch.
- // TODO: Add some real synchronization to this method. (ips, 07/09/07)
- if (container.getResourceComponentState() == ResourceComponentState.STARTED) {
- if (log.isTraceEnabled()) {
- log.trace("Skipping activation of " + resource + " - its component is already started.");
- }
- return;
- }
component.start(context);
container.setResourceComponentState(ResourceComponentState.STARTED);
resource.setConnected(true); // This tells the server-side that the resource has connected successfully.
+
} catch (Throwable t) {
+ // Don't leave in a STARTING state. Don't actually call component.stop(),
+ // because we're not actually STARTED
+ container.setResourceComponentState(ResourceComponentState.STOPPED);
+
if (updatedPluginConfig || (t instanceof InvalidPluginConfigurationException)) {
if (log.isDebugEnabled()) {
log.debug("Resource has a bad config, waiting for this to go away: " + resource);
}
InventoryEventListener iel = new ResourceGotActivatedListener();
addInventoryEventListener(iel);
+
throw new InvalidPluginConfigurationException("Failed to start component for resource " + resource
+ ".", t);
}
+
throw new PluginContainerException("Failed to start component for resource " + resource + ".", t);
}
@@ -1662,8 +1680,8 @@ public class InventoryManager extends AgentService implements ContainerService,
resource.setConnected(false); // invalid plugin configuration infers the resource component is disconnected
// Give the server-side an error message describing the connection failure that can be
// displayed on the resource's Inventory page.
- ResourceError resourceError = new ResourceError(resource, ResourceErrorType.INVALID_PLUGIN_CONFIGURATION, t
- .getLocalizedMessage(), ThrowableUtil.getStackAsString(t), System.currentTimeMillis());
+ ResourceError resourceError = new ResourceError(resource, ResourceErrorType.INVALID_PLUGIN_CONFIGURATION,
+ t.getLocalizedMessage(), ThrowableUtil.getStackAsString(t), System.currentTimeMillis());
return sendResourceErrorToServer(resourceError);
}
@@ -1751,37 +1769,39 @@ public class InventoryManager extends AgentService implements ContainerService,
return servers;
}
- private void activateFromDisk(Resource resource) throws PluginContainerException {
- if (resource.getId() == 0) {
- return; // This is for the case of a resource that hadn't been synced to the server (there are probably better places to handle this)
- }
-
- resource.setAgent(this.agent);
- ResourceContainer container = getResourceContainer(resource.getId());
- if (container == null) {
- if (log.isDebugEnabled()) {
- log.debug("Could not find a container for resource: " + resource);
- }
- return;
- }
- if (container.getSynchronizationState() != ResourceContainer.SynchronizationState.SYNCHRONIZED) {
- if (log.isDebugEnabled()) {
- log.debug("Stopped activating resources at unsynchronized resource [" + resource + "]");
- }
- return;
- }
-
- try {
- activateResource(resource, container, false);
- } catch (Exception e) {
- log.debug("Failed to activate from disk [" + resource + "]");
- }
-
- for (Resource child : resource.getChildResources()) {
- initResourceContainer(child);
- activateFromDisk(child);
- }
- }
+ // commenting out dead code, leaving for reference -jshaughn
+ //
+ // private void activateFromDisk(Resource resource) throws PluginContainerException {
+ // if (resource.getId() == 0) {
+ // return; // This is for the case of a resource that hadn't been synced to the server (there are probably better places to handle this)
+ // }
+ //
+ // resource.setAgent(this.agent);
+ // ResourceContainer container = getResourceContainer(resource.getId());
+ // if (container == null) {
+ // if (log.isDebugEnabled()) {
+ // log.debug("Could not find a container for resource: " + resource);
+ // }
+ // return;
+ // }
+ // if (container.getSynchronizationState() != ResourceContainer.SynchronizationState.SYNCHRONIZED) {
+ // if (log.isDebugEnabled()) {
+ // log.debug("Stopped activating resources at unsynchronized resource [" + resource + "]");
+ // }
+ // return;
+ // }
+ //
+ // try {
+ // activateResource(resource, container, false);
+ // } catch (Exception e) {
+ // log.debug("Failed to activate from disk [" + resource + "]");
+ // }
+ //
+ // for (Resource child : resource.getChildResources()) {
+ // initResourceContainer(child);
+ // activateFromDisk(child);
+ // }
+ // }
/**
* Tries to load an existing inventory from the file data/inventory.dat
@@ -1876,7 +1896,6 @@ public class InventoryManager extends AgentService implements ContainerService,
* TODO GH: Move this to another class (this one is getting too big)
* @return The discovered platform (which might be a dummy in case of testing)
*/
- @SuppressWarnings("unchecked")
private Resource discoverPlatform() {
PluginManager pluginManager = PluginContainer.getInstance().getPluginManager();
PluginComponentFactory componentFactory = PluginContainer.getInstance().getPluginComponentFactory();
@@ -1922,8 +1941,7 @@ public class InventoryManager extends AgentService implements ContainerService,
}
} else {
// This is very strange - there are no platform types - we should never be missing the built-in platform plugin.
- log
- .error("Missing platform plugin(s) - falling back to dummy platform impl; this should only occur in tests!");
+ log.error("Missing platform plugin(s) - falling back to dummy platform impl; this should only occur in tests!");
// TODO: Set sysprop (e.g. rhq.test.mode=true) in integration tests,
// and throw a runtime exception here if that sysprop is not set.
return getTestPlatform();
@@ -2308,8 +2326,8 @@ public class InventoryManager extends AgentService implements ContainerService,
try {
ResourceDiscoveryContext context = new ResourceDiscoveryContext(resourceType, parentComponent,
parentResourceContext, SystemInfoFactory.createSystemInfo(), processScanResults,
- Collections.EMPTY_LIST, this.configuration.getContainerName(), this.configuration
- .getPluginContainerDeployment());
+ Collections.EMPTY_LIST, this.configuration.getContainerName(),
+ this.configuration.getPluginContainerDeployment());
newResources = new HashSet<Resource>();
try {
Set<DiscoveredResourceDetails> discoveredResources = invokeDiscoveryComponent(parentContainer,
@@ -2420,19 +2438,19 @@ public class InventoryManager extends AgentService implements ContainerService,
return contentContext;
}
- private ResourceComponent<?> createTestPlatformComponent() {
- return new ResourceComponent() {
- public AvailabilityType getAvailability() {
- return AvailabilityType.UP;
- }
-
- public void start(ResourceContext context) {
- }
-
- public void stop() {
- }
- };
- }
+ // private ResourceComponent<?> createTestPlatformComponent() {
+ // return new ResourceComponent() {
+ // public AvailabilityType getAvailability() {
+ // return AvailabilityType.UP;
+ // }
+ //
+ // public void start(ResourceContext context) {
+ // }
+ //
+ // public void stop() {
+ // }
+ // };
+ // }
private void updateResourceVersion(Resource resource, String version) {
String existingVersion = resource.getVersion();
@@ -2548,8 +2566,8 @@ public class InventoryManager extends AgentService implements ContainerService,
if (log.isDebugEnabled()) {
log.debug("Merging [" + modifiedResourceIds.size() + "] modified Resources into local inventory...");
}
- Set<Resource> modifiedResources = configuration.getServerServices().getDiscoveryServerService().getResources(
- modifiedResourceIds, false);
+ Set<Resource> modifiedResources = configuration.getServerServices().getDiscoveryServerService()
+ .getResources(modifiedResourceIds, false);
syncSchedules(modifiedResources); // RHQ-792, mtime is the indicator that schedules should be sync'ed too
syncDriftDefinitions(modifiedResources);
for (Resource modifiedResource : modifiedResources) {
@@ -2591,16 +2609,16 @@ public class InventoryManager extends AgentService implements ContainerService,
return;
}
- private void print(Resource resourceTreeNode, int level) {
- StringBuilder builder = new StringBuilder();
- for (int i = 0; i < level; i++) {
- builder.append(" ");
- }
- log.info(builder.toString() + resourceTreeNode.getId() + " " + resourceTreeNode.getUuid());
- for (Resource child : resourceTreeNode.getChildResources()) {
- print(child, level + 1);
- }
- }
+ // private void print(Resource resourceTreeNode, int level) {
+ // StringBuilder builder = new StringBuilder();
+ // for (int i = 0; i < level; i++) {
+ // builder.append(" ");
+ // }
+ // log.info(builder.toString() + resourceTreeNode.getId() + " " + resourceTreeNode.getUuid());
+ // for (Resource child : resourceTreeNode.getChildResources()) {
+ // print(child, level + 1);
+ // }
+ // }
private void mergeResource(Resource resource) {
if (log.isDebugEnabled()) {
@@ -2798,10 +2816,9 @@ public class InventoryManager extends AgentService implements ContainerService,
log.info("Resource activation and upgrade finished.");
} catch (Throwable t) {
- log
- .error(
- "Resource activation or upgrade failed with an exception. An attempt to merely activate the resources will be made now.",
- t);
+ log.error(
+ "Resource activation or upgrade failed with an exception. An attempt to merely activate the resources will be made now.",
+ t);
//make sure to at least activate the resources
activateAndUpgradeResourceRecursively(getPlatform(), false);
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ResourceContainer.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ResourceContainer.java
index 854e624..c348a57 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ResourceContainer.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ResourceContainer.java
@@ -67,7 +67,7 @@ import org.rhq.core.pluginapi.inventory.ResourceContext;
* @author John Mazzitelli
* @author Ian Springer
*/
-@SuppressWarnings("unchecked")
+@SuppressWarnings({ "rawtypes", "unchecked" })
public class ResourceContainer implements Serializable {
private static final long serialVersionUID = 1L;
@@ -76,7 +76,7 @@ public class ResourceContainer implements Serializable {
}
public enum ResourceComponentState {
- STARTED, STOPPED
+ STARTED, STOPPED, STARTING
}
// thread pools used to invoke methods on container's components
commit ac6eedae2d41ac18cf05672a1a37e7b0b8ea917a
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Dec 5 15:51:07 2011 -0500
[Bug 760289 - Excessive file scanning in drift detection when using includes filters]
Now, when using includes file paths limit the directory scanning to only
those included directories.
Note that using a "." as an includes path basically translates to using
the base directory, in which case the scan will be as it is now.
A future enhancement may be to analyze the pattern and decide
whether a recursive scan is necessary. Currently. So, using includes
patterns to just look for certain files in the base directory will
expose you to the full scan.
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftDetector.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftDetector.java
index b376c59..8099de5 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftDetector.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftDetector.java
@@ -27,6 +27,7 @@ import org.rhq.common.drift.FileEntry;
import org.rhq.common.drift.Headers;
import org.rhq.core.domain.drift.DriftChangeSetCategory;
import org.rhq.core.domain.drift.DriftDefinition;
+import org.rhq.core.domain.drift.Filter;
import org.rhq.core.util.MessageDigestGenerator;
import org.rhq.core.util.file.FileVisitor;
@@ -172,13 +173,12 @@ public class DriftDetector implements Runnable {
log.debug("Generating drift change set for " + schedule);
- File currentSnapshot = changeSetMgr.findChangeSet(schedule.getResourceId(),
- schedule.getDriftDefinition().getName(), COVERAGE);
+ File currentSnapshot = changeSetMgr.findChangeSet(schedule.getResourceId(), schedule.getDriftDefinition()
+ .getName(), COVERAGE);
File snapshotFile = currentSnapshot;
if (schedule.getDriftDefinition().isPinned()) {
snapshotFile = new File(snapshotFile.getParentFile(), "snapshot.pinned");
-
}
final File basedir = new File(basedir(schedule.getResourceId(), schedule.getDriftDefinition()));
@@ -208,43 +208,50 @@ public class DriftDetector implements Runnable {
}
// First look for files that have either been modified or deleted
- scanForModifiedOrDeletedFiles(schedule, basedir, processedFiles, snapshotEntries, deltaEntries, coverageReader);
+ scanForModifiedOrDeletedFiles(schedule, basedir, processedFiles, snapshotEntries, deltaEntries,
+ coverageReader);
} finally {
coverageReader.close();
}
// If the basedir is still valid we need to do a directory tree scan to look for newly added files
if (basedir.isDirectory()) {
- forEachFile(basedir, new FilterFileVisitor(basedir, schedule.getDriftDefinition().getIncludes(), schedule
- .getDriftDefinition().getExcludes(), new FileVisitor() {
- @Override
- public void visit(File file) {
- try {
- if (processedFiles.contains(file)) {
- return;
- }
+ DriftDefinition driftDef = schedule.getDriftDefinition();
+ List<Filter> includes = driftDef.getIncludes();
+ List<Filter> excludes = driftDef.getExcludes();
+
+ for (File dir : getScanDirectories(basedir, includes)) {
+ forEachFile(dir, new FilterFileVisitor(basedir, includes, excludes, new FileVisitor() {
+ @Override
+ public void visit(File file) {
+ try {
+ if (processedFiles.contains(file)) {
+ return;
+ }
- if (!file.canRead()) {
- if (log.isDebugEnabled()) {
- log.debug("Skipping " + file.getPath() + " since it is not readable.");
+ if (!file.canRead()) {
+ if (log.isDebugEnabled()) {
+ log.debug("Skipping " + file.getPath() + " since it is not readable.");
+ }
+ return;
}
- return;
- }
- if (log.isInfoEnabled()) {
- log.info("Detected added file for " + schedule + " --> " + file.getAbsolutePath());
- }
+ if (log.isInfoEnabled()) {
+ log.info("Detected added file for " + schedule + " --> " + file.getAbsolutePath());
+ }
- FileEntry newEntry = addedFileEntry(relativePath(basedir, file), sha256(file));
- deltaEntries.add(newEntry);
- snapshotEntries.add(newEntry);
- } catch (IOException e) {
- log.error("An error occurred while generating a drift change set for " + schedule + ": "
- + e.getMessage());
- throw new DriftDetectionException("An error occurred while generating a drift change set", e);
+ FileEntry newEntry = addedFileEntry(relativePath(basedir, file), sha256(file));
+ deltaEntries.add(newEntry);
+ snapshotEntries.add(newEntry);
+ } catch (IOException e) {
+ log.error("An error occurred while generating a drift change set for " + schedule + ": "
+ + e.getMessage());
+ throw new DriftDetectionException("An error occurred while generating a drift change set",
+ e);
+ }
}
- }
- }));
+ }));
+ }
}
if (deltaEntries.isEmpty()) {
@@ -255,8 +262,8 @@ public class DriftDetector implements Runnable {
// the current snapshot to match the pinned snapshot. Note though
// that we increment the snapshot version in order to let the server
// know about the state change.
- if (schedule.getDriftDefinition().isPinned() && newVersion > 1 && !isPreviousChangeSetEmpty(
- schedule.getResourceId(), schedule.getDriftDefinition())) {
+ if (schedule.getDriftDefinition().isPinned() && newVersion > 1
+ && !isPreviousChangeSetEmpty(schedule.getResourceId(), schedule.getDriftDefinition())) {
currentSnapshot.delete();
File newSnapshot = updateCurrentSnapshot(schedule, snapshotEntries, newVersion);
@@ -264,8 +271,8 @@ public class DriftDetector implements Runnable {
// TODO report back to the server that we are back in compliance
}
} else {
- if (schedule.getDriftDefinition().isPinned() && newVersion > 1 &&
- isSameAsPreviousChangeSet(deltaEntries, currentSnapshot)) {
+ if (schedule.getDriftDefinition().isPinned() && newVersion > 1
+ && isSameAsPreviousChangeSet(deltaEntries, currentSnapshot)) {
// if we are still out of compliance just report, we report a
// repeat change set to indicate no changes but also still out
// of compliance.
@@ -281,6 +288,26 @@ public class DriftDetector implements Runnable {
}
}
+ private Set<File> getScanDirectories(final File basedir, List<Filter> includes) {
+
+ Set<File> directories = new HashSet<File>();
+
+ if (null == includes || includes.isEmpty()) {
+ directories.add(basedir);
+ } else {
+ for (Filter filter : includes) {
+ String path = filter.getPath();
+ if (".".equals(path)) {
+ directories.add(basedir);
+ } else {
+ directories.add(new File(basedir, path));
+ }
+ }
+ }
+
+ return directories;
+ }
+
private void scanForModifiedOrDeletedFiles(DriftDetectionSchedule schedule, File basedir, Set<File> processedFiles,
List<FileEntry> snapshotEntries, List<FileEntry> deltaEntries, ChangeSetReader coverageReader)
throws IOException {
@@ -317,6 +344,7 @@ public class DriftDetector implements Runnable {
}
}
+ @SuppressWarnings("unused")
private boolean isPreviousChangeSetEmpty(int resourceId, DriftDefinition definition) throws IOException {
File changeSet = changeSetMgr.findChangeSet(resourceId, definition.getName(), DRIFT);
if (!changeSet.exists()) {
@@ -342,15 +370,14 @@ public class DriftDetector implements Runnable {
}
private void updateDeltaSnapshot(DriftDetectionSummary summary, DriftDetectionSchedule schedule,
- List<FileEntry> deltaEntries, int newVersion, File oldSnapshot, File newSnapshot)
- throws IOException {
+ List<FileEntry> deltaEntries, int newVersion, File oldSnapshot, File newSnapshot) throws IOException {
ChangeSetWriter deltaWriter = null;
try {
Headers deltaHeaders = createHeaders(schedule, DRIFT, newVersion);
- File driftChangeSet = changeSetMgr.findChangeSet(schedule.getResourceId(),
- schedule.getDriftDefinition().getName(), DRIFT);
+ File driftChangeSet = changeSetMgr.findChangeSet(schedule.getResourceId(), schedule.getDriftDefinition()
+ .getName(), DRIFT);
deltaWriter = changeSetMgr.getChangeSetWriter(driftChangeSet, deltaHeaders);
summary.setDriftChangeSet(driftChangeSet);
@@ -381,10 +408,9 @@ public class DriftDetector implements Runnable {
try {
Headers snapshotHeaders = createHeaders(schedule, COVERAGE, newVersion);
- File newSnapshot = changeSetMgr.findChangeSet(schedule.getResourceId(),
- schedule.getDriftDefinition().getName(), COVERAGE);
- newSnapshotWriter = changeSetMgr.getChangeSetWriter(schedule.getResourceId(),
- snapshotHeaders);
+ File newSnapshot = changeSetMgr.findChangeSet(schedule.getResourceId(), schedule.getDriftDefinition()
+ .getName(), COVERAGE);
+ newSnapshotWriter = changeSetMgr.getChangeSetWriter(schedule.getResourceId(), snapshotHeaders);
for (FileEntry entry : snapshotEntries) {
newSnapshotWriter.write(entry);
@@ -416,19 +442,19 @@ public class DriftDetector implements Runnable {
return false;
}
switch (entry.getType()) {
- case FILE_ADDED:
- if (!entry.getNewSHA().equals(newEntry.getNewSHA())) {
- return false;
- }
- case FILE_CHANGED:
- if (!entry.getNewSHA().equals(newEntry.getNewSHA()) ||
- !entry.getOldSHA().equals(newEntry.getOldSHA())) {
- return false;
- }
- default: // FILE_REMOVED
- if (!entry.getOldSHA().equals(newEntry.getOldSHA())) {
- return false;
- }
+ case FILE_ADDED:
+ if (!entry.getNewSHA().equals(newEntry.getNewSHA())) {
+ return false;
+ }
+ case FILE_CHANGED:
+ if (!entry.getNewSHA().equals(newEntry.getNewSHA())
+ || !entry.getOldSHA().equals(newEntry.getOldSHA())) {
+ return false;
+ }
+ default: // FILE_REMOVED
+ if (!entry.getOldSHA().equals(newEntry.getOldSHA())) {
+ return false;
+ }
}
numEntries++;
}
@@ -448,9 +474,9 @@ public class DriftDetector implements Runnable {
if (!basedir.exists()) {
if (log.isWarnEnabled()) {
- log.warn("The base directory [" + basedir.getAbsolutePath() + "] for " + schedule + " does not " +
- "exist. You may want review the drift definition and verify that the value of the base " +
- "directory is in fact correct.");
+ log.warn("The base directory [" + basedir.getAbsolutePath() + "] for " + schedule + " does not "
+ + "exist. You may want review the drift definition and verify that the value of the base "
+ + "directory is in fact correct.");
}
summary.setBaseDirExists(false);
return;
@@ -482,9 +508,13 @@ public class DriftDetector implements Runnable {
}
private void doDirectoryScan(final DriftDetectionSchedule schedule, DriftDefinition driftDef, final File basedir,
- final ChangeSetWriter writer) {
- forEachFile(basedir, new FilterFileVisitor(basedir, driftDef.getIncludes(), driftDef.getExcludes(),
- new FileVisitor() {
+ final ChangeSetWriter writer) {
+
+ List<Filter> includes = driftDef.getIncludes();
+ List<Filter> excludes = driftDef.getExcludes();
+
+ for (File dir : getScanDirectories(basedir, includes)) {
+ forEachFile(dir, new FilterFileVisitor(basedir, includes, excludes, new FileVisitor() {
@Override
public void visit(File file) {
try {
@@ -506,6 +536,7 @@ public class DriftDetector implements Runnable {
}
}
}));
+ }
}
private String relativePath(File basedir, File file) {
commit 3595dcc97f66f1b280eb5e8b46e764cc937dba00
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Dec 9 14:05:05 2011 -0500
[Bug 765592 - drift diff is different depending on order in which files are selected]
Fixed, the new changes will now always get the "+" prefixes and the older
will get the "-" prefixes.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftCarouselView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftCarouselView.java
index 544ef81..6899913 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftCarouselView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftCarouselView.java
@@ -267,11 +267,18 @@ public class DriftCarouselView extends BookmarkableCarousel implements DetailsVi
public void executeAction(Object actionValue) {
- String id1 = selectedRecords.get(0).getAttribute(DriftDataSource.ATTR_ID);
- String id2 = selectedRecords.get(1).getAttribute(DriftDataSource.ATTR_ID);
- final String path = selectedRecords.get(0).getAttribute(DriftDataSource.ATTR_PATH);
-
- GWTServiceLookup.getDriftService().generateUnifiedDiffByIds(id1, id2,
+ Record record1 = selectedRecords.get(0);
+ Record record2 = selectedRecords.get(1);
+ final String path = record1.getAttribute(DriftDataSource.ATTR_PATH);
+ String id1 = record1.getAttribute(DriftDataSource.ATTR_ID);
+ String id2 = record2.getAttribute(DriftDataSource.ATTR_ID);
+ // regardless of selection order, compare the same way, showing newest changes with '+' signs
+ int version1 = record1.getAttributeAsInt(DriftDataSource.ATTR_CHANGESET_VERSION);
+ int version2 = record2.getAttributeAsInt(DriftDataSource.ATTR_CHANGESET_VERSION);
+ String diffOldId = (version1 < version2) ? id1 : id2;
+ String diffNewId = (version1 < version2) ? id2 : id1;
+
+ GWTServiceLookup.getDriftService().generateUnifiedDiffByIds(diffOldId, diffNewId,
new AsyncCallback<FileDiffReport>() {
@Override
public void onFailure(Throwable caught) {
commit c69f86e8c6d6674db90419751eb4daeaa62eac49
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri Feb 3 13:13:18 2012 +0100
[BZ 773661] - Reporting invalid plugin configuration if the resource starts
failing startup after upgrade and after manual add of a resource.
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
index 98310a1..eaee690 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
@@ -795,6 +795,7 @@ public class InventoryManager extends AgentService implements ContainerService,
performServiceScan(resource.getId());
if (null != startError) {
+ handleInvalidPluginConfigurationResourceError(resource, startError);
throw new PluginContainerException("The resource [" + resource
+ "] has been added but could not be started. Verify the supplied configuration values: ",
startError);
@@ -1657,7 +1658,7 @@ public class InventoryManager extends AgentService implements ContainerService,
* @param t the exception that indicates the problem with the plugin configuration
* @return true if the error was sent successfully, or false otherwise
*/
- private boolean handleInvalidPluginConfigurationResourceError(Resource resource, Throwable t) {
+ public boolean handleInvalidPluginConfigurationResourceError(Resource resource, Throwable t) {
resource.setConnected(false); // invalid plugin configuration infers the resource component is disconnected
// Give the server-side an error message describing the connection failure that can be
// displayed on the resource's Inventory page.
@@ -2872,4 +2873,4 @@ public class InventoryManager extends AgentService implements ContainerService,
// nothing to do
}
}
-}
\ No newline at end of file
+}
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/upgrade/ResourceUpgradeDelegate.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/upgrade/ResourceUpgradeDelegate.java
index c32ca97..ffd2065 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/upgrade/ResourceUpgradeDelegate.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/upgrade/ResourceUpgradeDelegate.java
@@ -217,8 +217,10 @@ public class ResourceUpgradeDelegate {
inventoryManager.activateResource(resource, container, true);
} catch (InvalidPluginConfigurationException e) {
log.debug("Resource [" + resource + "] failed to start up after upgrade.", e);
+ inventoryManager.handleInvalidPluginConfigurationResourceError(resource, e);
} catch (Throwable t) {
log.error("Failed to activate the resource [" + resource + "] after upgrade.", t);
+ inventoryManager.handleInvalidPluginConfigurationResourceError(resource, t);
}
}
}
commit c5622ffb62e3f568d01975aa7eba6d1bfee301fe
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri Feb 3 13:15:05 2012 +0100
[BZ 773661] - The security exception is thrown directly if the principal is
null but wrapped in another exception if the principal is non-null.
Report both instances as InvalidPluginConfigurationExceptions while
connecting to profile service.
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerComponent.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerComponent.java
index 299bdcd..804657c 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerComponent.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerComponent.java
@@ -371,6 +371,7 @@ public class ApplicationServerComponent<T extends ResourceComponent<?>> implemen
this.connection = connectionProvider.connect();
} catch (RuntimeException e) {
Throwable rootCause = ExceptionUtils.getRootCause(e);
+ rootCause = rootCause == null ? e : rootCause;
if (rootCause instanceof SecurityException) {
if (log.isDebugEnabled()) {
log.debug("Failed to connect to Profile Service.", e);
commit 458626ace44e55ebe9c88c00cdacadb6856a8dec
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri Feb 3 13:34:21 2012 +0100
[BZ 773661] - Invalid plugin configuration errors are now reported also
during the InventoryManager start up.
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
index 51ad1b7..98310a1 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
@@ -2831,8 +2831,10 @@ public class InventoryManager extends AgentService implements ContainerService,
}
} catch (InvalidPluginConfigurationException e) {
log.debug("Failed to activate resource [" + resource + "] due to invalid plugin configuration.", e);
+ handleInvalidPluginConfigurationResourceError(resource, e);
} catch (Throwable t) {
log.error("Exception thrown while activating [" + resource + "].", t);
+ handleInvalidPluginConfigurationResourceError(resource, t);
}
}
}
commit 9eebf13c055908a1afd357ff4e507052190fb890
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Feb 2 08:45:39 2012 -0500
[BZ 784124] forgot to fix this test
Due to the conflict here, I also pulled in BZ 751027 (commit d1e85ac2ef91f4578861f139bbc248603fea782e)
This BZ was simply to make sure the test only runs on RH flavors, not just any old Linux.
Conflicts:
modules/common/ant-bundle/src/test/java/org/rhq/bundle/ant/AntLauncherTest.java
diff --git a/modules/common/ant-bundle/src/test/java/org/rhq/bundle/ant/AntLauncherTest.java b/modules/common/ant-bundle/src/test/java/org/rhq/bundle/ant/AntLauncherTest.java
index 1df24d6..bd2d35d 100644
--- a/modules/common/ant-bundle/src/test/java/org/rhq/bundle/ant/AntLauncherTest.java
+++ b/modules/common/ant-bundle/src/test/java/org/rhq/bundle/ant/AntLauncherTest.java
@@ -59,6 +59,7 @@ import org.rhq.core.util.updater.FileHashcodeMap;
public class AntLauncherTest {
private static final File DEPLOY_DIR = new File("target/test-ant-bundle").getAbsoluteFile();
private static final String ANT_BASEDIR = "target/test-classes";
+ private static final File REDHAT_RELEASE_FILE = new File("/etc/redhat-release");
private int deploymentId;
@@ -107,12 +108,13 @@ public class AntLauncherTest {
public void testInstall() throws Exception {
- if (skipNonLinux("testInstall")) return;
+ if (skipNonRHLinux("testInstall"))
+ return;
// We want to test a fresh install, so make sure the deploy dir doesn't pre-exist.
FileUtil.purge(DEPLOY_DIR, true);
- // but we do want to add an unrelated file to see that it remains untouched - the install just "goes around" it
+ // but we do want to add an unrelated file to see that it goes away - since we have manageRootDir=true
File unrelatedFile = writeFile("unrelated content", DEPLOY_DIR, "unrelated-file.txt");
AntLauncher ant = new AntLauncher();
@@ -156,16 +158,16 @@ public class AntLauncherTest {
assert new File(DEPLOY_DIR, "subdir/test.properties").exists() : "missing file";
assert new File(DEPLOY_DIR, "archived-bundle-file.txt").exists() : "missing archived bundle file";
assert new File(DEPLOY_DIR, "archived-subdir/archived-file-in-subdir.properties").exists() : "missing subdir archive file";
- assert unrelatedFile.exists() : "unrelated file was removed during the install";
+ assert !unrelatedFile.exists() : "unrelated file was not removed during the install";
assert readPropsFile(new File(DEPLOY_DIR, "subdir/test.properties")).getProperty("junk.listener.port").equals(
"10000");
assert readPropsFile(new File(DEPLOY_DIR, "archived-subdir/archived-file-in-subdir.properties")).getProperty(
"templatized.variable").equals("10000");
}
- private boolean skipNonLinux(String meth) {
- if (!System.getProperty("os.name").equals("Linux")) {
- System.out.println("Skipping " + meth + "() as this only works on Linux");
+ private boolean skipNonRHLinux(String meth) {
+ if (!System.getProperty("os.name").equals("Linux") || !REDHAT_RELEASE_FILE.exists()) {
+ System.out.println("Skipping " + meth + "() as this only works on Red Hat Linux flavors");
return true;
}
return false;
@@ -174,10 +176,10 @@ public class AntLauncherTest {
@Test(dependsOnMethods = "testInstall")
public void testUpgrade() throws Exception {
- if (skipNonLinux("testUpgrade")) return;
+ if (skipNonRHLinux("testUpgrade"))
+ return;
- // We want to test an upgrade, so do *not* wipe out the deploy dir - our test method @dependsOnMethods testInstall
- // but we do want to add an unrelated file to see that it gets deleted as part of the upgrade
+ // add an unrelated file to see that it gets deleted as part of the upgrade
File unrelatedFile = writeFile("unrelated content", DEPLOY_DIR, "unrelated-file.txt");
AntLauncher ant = new AntLauncher();
@@ -230,14 +232,15 @@ public class AntLauncherTest {
public void testUpgradeNoManageRootDir() throws Exception {
- if (skipNonLinux("testInstall")) return;
+ if (skipNonRHLinux("testInstall"))
+ return;
// We want to test an upgrade, so do *not* wipe out the deploy dir - let's re-invoke testInstall
// to get us to an initial state of the v1 bundle installed
testInstall();
// we still want the unrelated file - we want to see that manageRootDir=false works (unrelated files should not be deleted)
- File unrelatedFile = new File(DEPLOY_DIR, "unrelated-file.txt");
+ File unrelatedFile = writeFile("unrelated content", DEPLOY_DIR, "unrelated-file.txt");
assert unrelatedFile.exists() : "our initial install test method should have prepared an unmanaged file";
AntLauncher ant = new AntLauncher();
commit 43ba87eadc086fe9da031584620168f1f04d9ec1
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jan 26 17:19:43 2012 -0500
[BZ 784124] fix the issue where, on initial deployment of a bundle, we didn't clean out any files that happen to be in the deployment dir.
we need to remove them, they are in the way. we do back them up so they can be manually retrieved if the user screwed up.
diff --git a/modules/core/util/src/main/java/org/rhq/core/util/file/FileUtil.java b/modules/core/util/src/main/java/org/rhq/core/util/file/FileUtil.java
index c4ac737..9135279 100644
--- a/modules/core/util/src/main/java/org/rhq/core/util/file/FileUtil.java
+++ b/modules/core/util/src/main/java/org/rhq/core/util/file/FileUtil.java
@@ -33,6 +33,7 @@ import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.util.ArrayList;
import java.util.Deque;
import java.util.LinkedList;
import java.util.List;
@@ -102,6 +103,77 @@ public class FileUtil {
StreamUtil.copy(is, os);
}
+ public static void copyDirectory(File inDir, File outDir) throws IOException {
+ if (inDir.exists()) {
+ if (!inDir.isDirectory()) {
+ throw new IOException("Source directory [" + inDir + "] is not a directory");
+ }
+ } else {
+ throw new FileNotFoundException("Source directory [" + inDir + "] does not exist");
+ }
+
+ if (!outDir.mkdirs()) {
+ throw new IOException("Destination directory [" + outDir + "] failed to be created");
+ }
+
+ if (!canWrite(outDir)) {
+ throw new IOException("Cannot write to destination directory [" + outDir + "]");
+ }
+
+ // TODO do we care to restore the last mod time on the destination dir?
+ //outDir.setLastModified(inDir.lastModified());
+
+ File[] files = inDir.listFiles();
+ if (files == null) {
+ throw new IOException("Failed to get the list of files in source directory [" + inDir + "]");
+ }
+ for (File file : files) {
+ File copiedFile = new File(outDir, file.getName());
+ if (file.isDirectory()) {
+ copyDirectory(file, copiedFile);
+ } else {
+ copyFile(file, copiedFile);
+ }
+ }
+
+ files = null; // help GC
+ return;
+ }
+
+ /**
+ * Obtains the list of all files in the given directory and, recursively, all its subdirectories.
+ * Note that the returns list is only regular files - directory names are NOT in the list. Also,
+ * the names in the list are relative to the given directory.
+ * @param directory the directory whose files are to be returned
+ * @return list of files in the directory, not sorted in any particular order
+ * @throws IOException if directory does not exist or is not a directory
+ */
+ public static List<File> getDirectoryFiles(File directory) throws IOException {
+ ArrayList<File> files = new ArrayList<File>();
+ if (!directory.isDirectory()) {
+ throw new IOException("[" + directory + "] is not an existing directory");
+ }
+ getDirectoryFilesRecursive(directory, files, null);
+ return files;
+ }
+
+ private static void getDirectoryFilesRecursive(File directory, List<File> files, String relativeTo)
+ throws IOException {
+ File[] children = directory.listFiles();
+ if (children == null) {
+ throw new IOException("Cannot obtain files from directory [" + directory + "]");
+ }
+ for (File child : children) {
+ if (child.isDirectory()) {
+ getDirectoryFilesRecursive(child, files, ((relativeTo == null) ? "" : relativeTo) + child.getName()
+ + File.separatorChar);
+ } else {
+ files.add(new File(relativeTo, child.getName()));
+ }
+ }
+ return;
+ }
+
/**
* Copy a stream, using a buffer.
* @deprecated use {@link StreamUtil} for more methods like this - those are unit tested and used more
diff --git a/modules/core/util/src/main/java/org/rhq/core/util/updater/Deployer.java b/modules/core/util/src/main/java/org/rhq/core/util/updater/Deployer.java
index 652bcda..40ce727 100644
--- a/modules/core/util/src/main/java/org/rhq/core/util/updater/Deployer.java
+++ b/modules/core/util/src/main/java/org/rhq/core/util/updater/Deployer.java
@@ -28,6 +28,8 @@ import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
+import java.io.FilenameFilter;
+import java.io.IOException;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
@@ -301,9 +303,9 @@ public class Deployer {
return;
}
- debug("Estimated disk usage for this deployment is [", usage.getDiskUsage(), "] bytes (file count=[", usage
- .getFileCount(), "]). The maximum disk space currently usable is estimated to be [", usage
- .getMaxDiskUsable(), "] bytes.");
+ debug("Estimated disk usage for this deployment is [", usage.getDiskUsage(), "] bytes (file count=[",
+ usage.getFileCount(), "]). The maximum disk space currently usable is estimated to be [",
+ usage.getMaxDiskUsable(), "] bytes.");
if (usage.getDiskUsage() > usage.getMaxDiskUsable()) {
throw new Exception(
@@ -316,6 +318,31 @@ public class Deployer {
}
private FileHashcodeMap performInitialDeployment(DeployDifferences diff, boolean dryRun) throws Exception {
+ // If we are to fully manage the deployment dir, then we need to delete everything we find here.
+ // Any old files do not belong here - only our bundle files should live here now.
+ if (this.deploymentData.isManageRootDir()) {
+ File destDir = this.deploymentData.getDestinationDir();
+ log.info(buildLogMessage("Will be managing the deploy dir[", destDir,
+ "]; backing up and purging any obsolete content existing in there"));
+ if (destDir.isDirectory()) {
+ int deploymentId = this.deploymentData.getDeploymentProps().getDeploymentId();
+ backupFiles(diff, deploymentId, destDir, dryRun, null, true);
+ if (!dryRun) {
+ // we want to purge everything that is originally in here, but we backed up the files in here
+ // so make sure we don't delete our metadata directory, which is where the backed up files are
+ File[] doomedFiles = destDir.listFiles(new FilenameFilter() {
+ @Override
+ public boolean accept(File dir, String name) {
+ return !DeploymentsMetadata.METADATA_DIR.equals(name);
+ }
+ });
+ for (File doomedFile : doomedFiles) {
+ FileUtil.purge(doomedFile, true);
+ }
+ }
+ }
+ }
+
FileHashcodeMap newFileHashcodeMap = extractZipAndRawFiles(new HashMap<String, String>(0), diff, dryRun);
// this is an initial deployment, so we know every file is new - tell our diff about them all
@@ -340,8 +367,8 @@ public class Deployer {
// * if a current file is backed up
FileHashcodeMap original = this.deploymentsMetadata.getCurrentDeploymentFileHashcodes();
- ChangesFileHashcodeMap current = original.rescan(this.deploymentData.getDestinationDir(), this.deploymentData
- .getIgnoreRegex(), this.deploymentData.isManageRootDir());
+ ChangesFileHashcodeMap current = original.rescan(this.deploymentData.getDestinationDir(),
+ this.deploymentData.getIgnoreRegex(), this.deploymentData.isManageRootDir());
FileHashcodeMap newFiles = getNewDeploymentFileHashcodeMap();
if (current.getUnknownContent() != null) {
@@ -457,7 +484,8 @@ public class Deployer {
int backupDeploymentId = props.getDeploymentId();
debug("Backing up files as part of update deployment. dryRun=", dryRun);
for (String fileToBackupPath : currentFilesToBackup) {
- backupFile(diff, backupDeploymentId, fileToBackupPath, dryRun);
+ boolean toBeDeleted = currentFilesToDelete.remove(fileToBackupPath);
+ backupFile(diff, backupDeploymentId, fileToBackupPath, dryRun, toBeDeleted);
}
}
@@ -503,8 +531,8 @@ public class Deployer {
return newFileHashCodeMap;
}
- private void backupFile(DeployDifferences diff, int deploymentId, final String fileToBackupPath, boolean dryRun)
- throws Exception {
+ private void backupFile(DeployDifferences diff, int deploymentId, final String fileToBackupPath, boolean dryRun,
+ boolean removeFileToBackup) throws Exception {
File bakFile;
@@ -536,8 +564,8 @@ public class Deployer {
String destDirDriveLetter = FileUtil.stripDriveLetter(destDirAbsPathBuilder);
if (destDirDriveLetter == null || driveLetter.equals(destDirDriveLetter)) {
bakFile = new File(backupDir, fileToBackupPath);
- fileToBackup = new File(this.deploymentData.getDestinationDir(), fileToBackupPathNoDriveLetter
- .toString());
+ fileToBackup = new File(this.deploymentData.getDestinationDir(),
+ fileToBackupPathNoDriveLetter.toString());
} else {
throw new Exception("Cannot backup relative path [" + fileToBackupPath
+ "] whose drive letter is different than the destination directory ["
@@ -549,20 +577,77 @@ public class Deployer {
}
}
+ boolean deleted = false; // will be true if we were told to delete the file and we actually did delete it
+
if (!dryRun) {
bakFile.getParentFile().mkdirs();
- FileUtil.copyFile(fileToBackup, bakFile);
+ // try to do a rename first if we are to remove the file, since this is more likely
+ // much faster and more efficient.
+ // if it fails (perhaps because we are crossing file systems), try a true copy
+ if (removeFileToBackup) {
+ boolean movedSuccessfully = fileToBackup.renameTo(bakFile);
+ if (movedSuccessfully) {
+ deleted = true;
+ } else {
+ FileUtil.copyFile(fileToBackup, bakFile);
+ deleted = fileToBackup.delete();
+ if (deleted == false) {
+ // TODO: what should we do? is it a major failure if we can't remove files here?
+ debug("Failed to delete file [", fileToBackup, "] but it is backed up");
+ if (diff != null) {
+ diff.addError(fileToBackupPath, "File [" + fileToBackup.getAbsolutePath()
+ + "] did not delete");
+ }
+ }
+ }
+ } else {
+ FileUtil.copyFile(fileToBackup, bakFile);
+ }
+ } else {
+ deleted = removeFileToBackup; // this is a dry run, pretend we deleted it if we were asked to
}
debug("Backed up file [", fileToBackup, "] to [", bakFile, "]. dryRun=", dryRun);
+ if (deleted) {
+ debug("Deleted file [", fileToBackup, "] after backing it up. dryRun=", dryRun);
+ }
if (diff != null) {
diff.addBackedUpFile(fileToBackupPath, bakFile.getAbsolutePath());
+ if (deleted) {
+ diff.addDeletedFile(fileToBackupPath);
+ }
}
return;
}
+ private void backupFiles(DeployDifferences diff, int deploymentId, File dirToBackup, boolean dryRun,
+ String relativeTo, boolean removeSourceFiles) throws Exception {
+ File[] files = dirToBackup.listFiles();
+ if (files == null) {
+ throw new IOException("Failed to get the list of files in source directory [" + dirToBackup + "]");
+ }
+ if (files.length > 0) {
+ this.deploymentsMetadata.getMetadataDirectory().mkdirs(); // make sure we create this, might not be there yet
+ for (File file : files) {
+ if (file.isDirectory()) {
+ if (file.getName().equals(DeploymentsMetadata.METADATA_DIR)) {
+ continue; // skip the RHQ metadata directory, its where we are putting our backups!
+ }
+ backupFiles(diff, deploymentId, file, dryRun,
+ ((relativeTo == null) ? "" : relativeTo) + file.getName() + File.separatorChar,
+ removeSourceFiles);
+ } else {
+ backupFile(diff, deploymentId, ((relativeTo == null) ? "" : relativeTo) + file.getName(), dryRun,
+ removeSourceFiles);
+ }
+ }
+
+ files = null; // help GC
+ }
+ }
+
private FileHashcodeMap extractZipAndRawFiles(Map<String, String> currentFilesToLeaveAlone, DeployDifferences diff,
boolean dryRun) throws Exception {
@@ -615,8 +700,8 @@ public class Deployer {
ZipUtil.walkZipFile(zipFile, visitor);
// we have to compress the file again - our new compressed file will have the new realized files in them
if (!dryRun) {
- createZipFile(compressedFile, this.deploymentData.getDestinationDir(), visitor
- .getFileHashcodeMap());
+ createZipFile(compressedFile, this.deploymentData.getDestinationDir(),
+ visitor.getFileHashcodeMap());
}
}
@@ -1040,16 +1125,20 @@ public class Deployer {
private void debug(Object... objs) {
if (log.isDebugEnabled()) {
- String bundleName = this.deploymentData.getDeploymentProps().getBundleName();
- String bundleVersion = this.deploymentData.getDeploymentProps().getBundleVersion();
- int deploymentId = this.deploymentData.getDeploymentProps().getDeploymentId();
- StringBuilder str = new StringBuilder();
- str.append("Bundle [").append(bundleName).append(" v").append(bundleVersion).append(']');
- str.append("; Deployment [").append(deploymentId).append("]: ");
- for (Object o : objs) {
- str.append(o);
- }
- log.debug(str.toString());
+ log.debug(buildLogMessage(objs));
+ }
+ }
+
+ private String buildLogMessage(Object... objs) {
+ String bundleName = this.deploymentData.getDeploymentProps().getBundleName();
+ String bundleVersion = this.deploymentData.getDeploymentProps().getBundleVersion();
+ int deploymentId = this.deploymentData.getDeploymentProps().getDeploymentId();
+ StringBuilder str = new StringBuilder();
+ str.append("Bundle [").append(bundleName).append(" v").append(bundleVersion).append(']');
+ str.append("; Deployment [").append(deploymentId).append("]: ");
+ for (Object o : objs) {
+ str.append(o);
}
+ return str.toString();
}
}
diff --git a/modules/core/util/src/test/java/org/rhq/core/util/file/FileUtilTest.java b/modules/core/util/src/test/java/org/rhq/core/util/file/FileUtilTest.java
index 31659bd..bb7ad34 100644
--- a/modules/core/util/src/test/java/org/rhq/core/util/file/FileUtilTest.java
+++ b/modules/core/util/src/test/java/org/rhq/core/util/file/FileUtilTest.java
@@ -22,21 +22,92 @@
*/
package org.rhq.core.util.file;
+import static java.util.Arrays.asList;
+import static org.apache.commons.io.FileUtils.deleteDirectory;
+import static org.apache.commons.io.FileUtils.toFile;
+import static org.apache.commons.io.FileUtils.touch;
+import static org.rhq.test.AssertUtils.assertCollectionEqualsNoOrder;
+
+import java.io.ByteArrayInputStream;
import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
import org.testng.annotations.Test;
-import static java.util.Arrays.asList;
-import static org.apache.commons.io.FileUtils.deleteDirectory;
-import static org.apache.commons.io.FileUtils.toFile;
-import static org.apache.commons.io.FileUtils.touch;
-import static org.rhq.test.AssertUtils.assertCollectionEqualsNoOrder;
+import org.rhq.core.util.stream.StreamUtil;
@Test
public class FileUtilTest {
+ public void testCopyDirectory() throws Exception {
+ try {
+ FileUtil.copyDirectory(new File("this.does.not.exist"), new File("dummy"));
+ assert false : "the source directory did not exist, this should have failed because of that";
+ } catch (Exception ok) {
+ }
+
+ // create a source directory and a destination directory. Make sure we start off
+ // with a non-existent destination directory - we want the copyDirectory to create it for us.
+ File outDir = FileUtil.createTempDirectory("fileUtilTestCopyDir", ".dest", null);
+ assert outDir.delete() : "failed to start out with a non-existent dest directory";
+ assert !outDir.exists() : "dest directory should not exist"; // yes, I am paranoid
+
+ File inDir = FileUtil.createTempDirectory("fileUtilTestCopyDir", ".src", null);
+ try {
+ // create some test files in our source directory
+ String testFilename0 = "file0.txt";
+ String testFilename1 = "subdir" + File.separatorChar + "subfile1.txt";
+ String testFilename2 = "subdir" + File.separatorChar + "subfile2.txt";
+
+ File testFile = new File(inDir, testFilename0);
+ StreamUtil.copy(new ByteArrayInputStream("0".getBytes()), new FileOutputStream(testFile));
+ assert "0".equals(new String(StreamUtil.slurp(new FileInputStream(testFile)))); // sanity check, make sure its there
+
+ testFile = new File(inDir, testFilename1);
+ testFile.getParentFile().mkdirs();
+ StreamUtil.copy(new ByteArrayInputStream("1".getBytes()), new FileOutputStream(testFile));
+ assert "1".equals(new String(StreamUtil.slurp(new FileInputStream(testFile)))); // sanity check, make sure its there
+ testFile = new File(inDir, testFilename2);
+ testFile.getParentFile().mkdirs();
+ StreamUtil.copy(new ByteArrayInputStream("2".getBytes()), new FileOutputStream(testFile));
+ assert "2".equals(new String(StreamUtil.slurp(new FileInputStream(testFile)))); // sanity check, make sure its there
+
+ // copy our source directory and confirm the copies are correct
+ FileUtil.copyDirectory(inDir, outDir);
+
+ testFile = new File(outDir, testFilename0);
+ assert testFile.exists() : "file did not get created: " + testFile;
+ assert "0".equals(new String(StreamUtil.slurp(new FileInputStream(testFile))));
+ testFile = new File(outDir, testFilename1);
+ assert testFile.exists() : "file did not get created: " + testFile;
+ assert "1".equals(new String(StreamUtil.slurp(new FileInputStream(testFile))));
+ testFile = new File(outDir, testFilename2);
+ assert testFile.exists() : "file did not get created: " + testFile;
+ assert "2".equals(new String(StreamUtil.slurp(new FileInputStream(testFile))));
+
+ // let's test getDirectoryFiles while we are here
+ List<File> outFiles = FileUtil.getDirectoryFiles(outDir);
+ assert outFiles != null : outFiles;
+ assert outFiles.size() == 3 : outFiles;
+ assert outFiles.contains(new File(testFilename0)) : outFiles;
+ assert outFiles.contains(new File(testFilename1)) : outFiles;
+ assert outFiles.contains(new File(testFilename2)) : outFiles;
+ } finally {
+ // clean up our test
+ try {
+ FileUtil.purge(inDir, true);
+ } catch (Exception ignore) {
+ }
+ try {
+ FileUtil.purge(outDir, true);
+ } catch (Exception ignore) {
+ }
+ }
+ }
+
public void testStripDriveLetter() {
StringBuilder str;
@@ -142,8 +213,7 @@ public class FileUtilTest {
}
});
- assertCollectionEqualsNoOrder(expectedFiles, actualFiles,
- "Expected to visit all files in directory");
+ assertCollectionEqualsNoOrder(expectedFiles, actualFiles, "Expected to visit all files in directory");
}
@Test
@@ -176,8 +246,7 @@ public class FileUtilTest {
}
});
- assertCollectionEqualsNoOrder(expectedFiles, actualFiles,
- "Expected to visit files in sub directories");
+ assertCollectionEqualsNoOrder(expectedFiles, actualFiles, "Expected to visit files in sub directories");
}
@Test
@@ -210,8 +279,7 @@ public class FileUtilTest {
}
});
- assertCollectionEqualsNoOrder(expectedFiles, actualFiles,
- "Expected to visit files in nested sub directories");
+ assertCollectionEqualsNoOrder(expectedFiles, actualFiles, "Expected to visit files in nested sub directories");
}
public void testGetPattern() {
@@ -222,8 +290,8 @@ public class FileUtilTest {
assert regex.matcher("/basedir/test1.txt").matches();
assert !regex.matcher("/basedir/test2.txt").matches();
- regex = assertPatternsRegex("(/basedir/easy\\.txt)|(/basedir/test\\.txt)",
- new PathFilter("/basedir/easy.txt", null), new PathFilter("/basedir/test.txt", null));
+ regex = assertPatternsRegex("(/basedir/easy\\.txt)|(/basedir/test\\.txt)", new PathFilter("/basedir/easy.txt",
+ null), new PathFilter("/basedir/test.txt", null));
assert regex.matcher("/basedir/easy.txt").matches();
assert regex.matcher("/basedir/test.txt").matches();
@@ -244,8 +312,8 @@ public class FileUtilTest {
assert !regex.matcher("/basedir/subdir/foo.txt").matches();
assert !regex.matcher("/basedir/foo.txt.swp").matches();
- regex = assertPatternsRegex("(/var/lib/([^/]*\\.war))|(/var/lib/([^/]*\\.ear))",
- new PathFilter("/var/lib", "*.war"), new PathFilter("/var/lib", "*.ear"));
+ regex = assertPatternsRegex("(/var/lib/([^/]*\\.war))|(/var/lib/([^/]*\\.ear))", new PathFilter("/var/lib",
+ "*.war"), new PathFilter("/var/lib", "*.ear"));
assert regex.matcher("/var/lib/myapp.war").matches();
assert regex.matcher("/var/lib/myapp.ear").matches();
diff --git a/modules/core/util/src/test/java/org/rhq/core/util/updater/DeployerTest.java b/modules/core/util/src/test/java/org/rhq/core/util/updater/DeployerTest.java
index 69d6d53..a69931a 100644
--- a/modules/core/util/src/test/java/org/rhq/core/util/updater/DeployerTest.java
+++ b/modules/core/util/src/test/java/org/rhq/core/util/updater/DeployerTest.java
@@ -230,12 +230,13 @@ public class DeployerTest {
final String file999 = "dir1" + fileSeparator + "file999";
try {
- if (ignore) {
- // create a file that will be retained because we will be ignoring it
- File ignoreDir = FileUtil.createTempDirectory("ignoreme", ".dir", tmpDir);
- fileToIgnore = new File(ignoreDir, "some-log.log");
- StreamUtil.copy(new ByteArrayInputStream("boo".getBytes()), new FileOutputStream(fileToIgnore));
- }
+ // this is a file that will be removed because our initial deployment is managing the root deploy dir
+ // later we will recreate it to see that we ignore it during the upgrade.
+ // note that during the initial deployment, we will still back it up.
+ File ignoreDir = FileUtil.createTempDirectory("ignoreme", ".dir", tmpDir);
+ fileToIgnore = new File(ignoreDir, "some-log.log");
+ StreamUtil.copy(new ByteArrayInputStream("boo".getBytes()), new FileOutputStream(fileToIgnore));
+ String fileToIgnorePath = ignoreDir.getName() + "/" + fileToIgnore.getName(); // yes, use /, even if we are on windows
File testZipFile1 = new File("target/test-classes/updater-test1.zip");
File testZipFile2 = new File("target/test-classes/updater-test2.zip");
@@ -267,15 +268,25 @@ public class DeployerTest {
deployer.deploy(diff);
- if (ignore) {
- assert "boo".equals(new String(StreamUtil.slurp(new FileInputStream(fileToIgnore))));
- assert diff.getIgnoredFiles().size() == 0 : "this was an initial deploy - nothing to ignore (ignore is only for updates)";
- }
+ // our initial deploy should have deleted this because we are managing the root dir
+ assert !fileToIgnore.exists() : "should have removed this file since we are managing the root dir";
+ assert !fileToIgnore.getParentFile().exists() : "should have removed this file since we are managing the root dir";
+ assert diff.getIgnoredFiles().size() == 0 : "this was an initial deploy - nothing to ignore (ignore is only for updates)";
assert diff.getAddedFiles().size() == 6 : diff;
- assert diff.getDeletedFiles().size() == 0 : diff;
+ assert diff.getDeletedFiles().size() == 1 : diff;
+ assert diff.getDeletedFiles().contains(fileToIgnorePath) : "should have deleted this unknown file" + diff;
assert diff.getChangedFiles().size() == 0 : diff;
assert diff.getRealizedFiles().size() == 0 : "No fileA to realize in this deployment: " + diff;
- assert diff.getBackedUpFiles().size() == 0 : "No fileA to realize in this deployment: " + diff;
+ assert diff.getBackedUpFiles().size() == 1 : diff;
+ assert diff.getBackedUpFiles().get(fileToIgnorePath) != null : "should have backed up this file" + diff;
+
+ if (ignore) {
+ // let's create this again to make sure we really do ignore it
+ ignoreDir = FileUtil.createTempDirectory("ignoreme", ".dir", tmpDir);
+ fileToIgnore = new File(ignoreDir, "some-log.log");
+ StreamUtil.copy(new ByteArrayInputStream("boo".getBytes()), new FileOutputStream(fileToIgnore));
+ fileToIgnorePath = ignoreDir.getName() + "/" + fileToIgnore.getName(); // yes, use /, even if we are on windows
+ }
StreamUtil.copy(new ByteArrayInputStream("X".getBytes()), new FileOutputStream(new File(tmpDir, file1)));
StreamUtil.copy(new ByteArrayInputStream("X".getBytes()), new FileOutputStream(updaterAabsolute));
@@ -295,7 +306,7 @@ public class DeployerTest {
templateEngine, ignoreRegex, true, null);
deployer = new Deployer(dd);
diff = new DeployDifferences();
- deployer.deploy(diff);
+ deployer.deploy(diff); // this is an upgrade
if (ignore) {
assert "boo".equals(new String(StreamUtil.slurp(new FileInputStream(fileToIgnore))));
@@ -396,11 +407,11 @@ public class DeployerTest {
assert diff.getChangedFiles().contains(fileB) : diff;
assert diff.getBackedUpFiles().size() == 4 : diff;
assert diff.getBackedUpFiles().containsKey(diff.convertPath(updaterAabsolute.getAbsolutePath())) : diff;
- assert diff.getBackedUpFiles().get(diff.convertPath(updaterAabsolute.getAbsolutePath())).equals(
- diff.convertPath(updaterAabsoluteBackupTo2)) : diff;
+ assert diff.getBackedUpFiles().get(diff.convertPath(updaterAabsolute.getAbsolutePath()))
+ .equals(diff.convertPath(updaterAabsoluteBackupTo2)) : diff;
assert diff.getBackedUpFiles().containsKey(diff.convertPath(updaterBabsolute.getAbsolutePath())) : diff;
- assert diff.getBackedUpFiles().get(diff.convertPath(updaterBabsolute.getAbsolutePath())).equals(
- diff.convertPath(updaterBabsoluteBackupTo2)) : diff;
+ assert diff.getBackedUpFiles().get(diff.convertPath(updaterBabsolute.getAbsolutePath()))
+ .equals(diff.convertPath(updaterBabsoluteBackupTo2)) : diff;
assert diff.getBackedUpFiles().containsKey(fileB) : diff;
assert diff.getBackedUpFiles().get(fileB).equals(diff.convertPath(fileBbackupTo2.getAbsolutePath())) : diff;
assert diff.getBackedUpFiles().containsKey(file999) : diff;
@@ -442,8 +453,8 @@ public class DeployerTest {
assert diff.getChangedFiles().contains(diff.convertPath(updaterBabsolute.getAbsolutePath())) : diff;
assert diff.getBackedUpFiles().size() == 1 : diff;
assert diff.getBackedUpFiles().containsKey(diff.convertPath(updaterBabsolute.getAbsolutePath())) : diff;
- assert diff.getBackedUpFiles().get(diff.convertPath(updaterBabsolute.getAbsolutePath())).equals(
- diff.convertPath(updaterBabsoluteBackupTo3)) : diff;
+ assert diff.getBackedUpFiles().get(diff.convertPath(updaterBabsolute.getAbsolutePath()))
+ .equals(diff.convertPath(updaterBabsoluteBackupTo3)) : diff;
if (realize) {
assert diff.getRealizedFiles().size() == 1 : diff;
assert diff.getRealizedFiles().containsKey(fileA) : diff;
diff --git a/modules/core/util/src/test/java/org/rhq/core/util/updater/SimpleDeployerTest.java b/modules/core/util/src/test/java/org/rhq/core/util/updater/SimpleDeployerTest.java
index f875576..2736f16 100644
--- a/modules/core/util/src/test/java/org/rhq/core/util/updater/SimpleDeployerTest.java
+++ b/modules/core/util/src/test/java/org/rhq/core/util/updater/SimpleDeployerTest.java
@@ -205,7 +205,15 @@ public class SimpleDeployerTest {
baseNoNewWithCurrentDifferentThanOriginal(true);
}
- public void testWithSubdirectories() throws Exception {
+ public void testWithSubdirectoriesManageRootDir() throws Exception {
+ testWithSubdirectories(true);
+ }
+
+ public void testWithSubdirectoriesNoManageRootDir() throws Exception {
+ testWithSubdirectories(false);
+ }
+
+ private void testWithSubdirectories(boolean manageRootDir) throws Exception {
// this test is different than all the rest, start with clean tmp/dest dirs with no beforeMethod buildup
FileUtil.purge(this.tmpDir, false);
FileUtil.purge(this.deployDir, false);
@@ -227,14 +235,40 @@ public class SimpleDeployerTest {
this.originalZipFiles.add(originalZipFile);
this.originalDeployProps = new DeploymentProperties(1, "simple", "1.0", "original test deployment");
DeploymentData dd = new DeploymentData(originalDeployProps, originalZipFiles, null, tmpDir, deployDir, null,
- null, null, null, true, null);
+ null, null, null, manageRootDir, null);
+ this.diff = new DeployDifferences();
Deployer deployer = new Deployer(dd);
- this.originalFileHashcodeMap = deployer.deploy(null);
+ this.originalFileHashcodeMap = deployer.deploy(this.diff);
assert new File(this.deployDir, origFileName1).exists();
assert new File(this.deployDir, origFileName2).exists();
- assert unrelated1.exists() : "the deployment removed unrelated file1";
- assert unrelated2.getParentFile().isDirectory() : "the deployment removed an unrelated dir";
- assert unrelated2.exists() : "the deployment removed unrelated file2";
+ if (manageRootDir) {
+ assert !unrelated1.exists() : "the deployment should have removed unrelated file1";
+ assert !unrelated2.getParentFile().isDirectory() : "the deployment should have removed an unrelated dir";
+ assert !unrelated2.exists() : "the deployment should have removed unrelated file2";
+
+ assert this.diff.getBackedUpFiles().size() == 2 : this.diff;
+ assert new File(this.diff.getBackedUpFiles().get(unrelatedFileName1)).exists() : this.diff;
+ assert new File(this.diff.getBackedUpFiles().get(unrelatedFileName2)).exists() : this.diff;
+ assert this.diff.getDeletedFiles().size() == 2 : this.diff;
+ assert this.diff.getDeletedFiles().contains(unrelatedFileName1) : this.diff;
+ assert this.diff.getDeletedFiles().contains(unrelatedFileName2) : this.diff;
+ } else {
+ assert this.diff.getBackedUpFiles().size() == 0 : this.diff;
+ assert this.diff.getDeletedFiles().size() == 0 : this.diff;
+ assert unrelated1.exists() : "the deployment removed unrelated file1";
+ assert unrelated2.getParentFile().isDirectory() : "the deployment removed an unrelated dir";
+ assert unrelated2.exists() : "the deployment removed unrelated file2";
+ }
+
+ assert this.diff.getAddedFiles().size() == 2 : this.diff;
+ assert this.diff.getAddedFiles().contains(origFileName1) : this.diff;
+ assert this.diff.getAddedFiles().contains(origFileName2) : this.diff;
+ assert this.diff.getChangedFiles().isEmpty() : this.diff;
+ assert this.diff.getIgnoredFiles().isEmpty() : this.diff;
+ assert this.diff.getRealizedFiles().isEmpty() : this.diff;
+ assert this.diff.getRestoredFiles().isEmpty() : this.diff;
+ assert !this.diff.wasCleaned() : this.diff;
+ assert this.diff.getErrors().isEmpty() : this.diff;
// deploy new content
this.newDeployProps = new DeploymentProperties(2, "simple", "2.0", "new test deployment");
@@ -246,19 +280,36 @@ public class SimpleDeployerTest {
new String[] { newFileName1, newFileName2 });
HashSet<File> newZipFiles = new HashSet<File>(1);
newZipFiles.add(newZipFile);
- dd = new DeploymentData(newDeployProps, newZipFiles, null, tmpDir, deployDir, null, null, null, null, true,
- null);
+ dd = new DeploymentData(newDeployProps, newZipFiles, null, tmpDir, deployDir, null, null, null, null,
+ manageRootDir, null);
deployer = new Deployer(dd);
FileHashcodeMap newFileHashcodeMap = deployer.deploy(this.diff);
+ assert newFileHashcodeMap != null;
assert new File(this.deployDir, newFileName1).exists();
assert new File(this.deployDir, newFileName2).exists();
assert !new File(this.deployDir, origFileName1).exists();
assert !new File(this.deployDir, origFileName2).exists();
- assert !unrelated1.exists() : "the deployment did not remove unrelated file1";
- assert !unrelated2.exists() : "the deployment did not remove unrelated file1";
- assert this.diff.getBackedUpFiles().size() == 2 : this.diff;
- assert new File(this.diff.getBackedUpFiles().get(unrelatedFileName1)).exists() : this.diff;
- assert new File(this.diff.getBackedUpFiles().get(unrelatedFileName2)).exists() : this.diff;
+ if (manageRootDir) {
+ assert !unrelated1.exists() : "the deployment did not remove unrelated file1";
+ assert !unrelated2.exists() : "the deployment did not remove unrelated file1";
+ } else {
+ assert unrelated1.exists() : "the deployment removed unrelated file1 but we aren't managing the root dir";
+ assert unrelated2.exists() : "the deployment removed unrelated file1 but we aren't managing the root dir";
+ }
+
+ assert this.diff.getAddedFiles().size() == 2 : this.diff;
+ assert this.diff.getAddedFiles().contains(newFileName1) : this.diff;
+ assert this.diff.getAddedFiles().contains(newFileName2) : this.diff;
+ assert this.diff.getDeletedFiles().size() == 2 : this.diff;
+ assert this.diff.getDeletedFiles().contains(origFileName1) : this.diff;
+ assert this.diff.getDeletedFiles().contains(origFileName2) : this.diff;
+ assert this.diff.getChangedFiles().isEmpty() : this.diff;
+ assert this.diff.getBackedUpFiles().isEmpty() : this.diff;
+ assert this.diff.getIgnoredFiles().isEmpty() : this.diff;
+ assert this.diff.getRealizedFiles().isEmpty() : this.diff;
+ assert this.diff.getRestoredFiles().isEmpty() : this.diff;
+ assert !this.diff.wasCleaned() : this.diff;
+ assert this.diff.getErrors().isEmpty() : this.diff;
}
private void baseX_X_X(boolean dryRun) throws Exception {
diff --git a/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java b/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java
index a772ef0..d712401 100644
--- a/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java
+++ b/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java
@@ -231,11 +231,17 @@ public class AntBundlePluginComponentTest {
upgrade(true);
}
+ @Test(enabled = true)
+ public void testAntBundleInitialInstall() throws Exception {
+ doAntBundleInitialInstall(true);
+ }
+
/**
* Test deployment of an RHQ bundle recipe with archive file and raw file
+ * @param startClean if true, the destination directory will be non-existent and thus clean
+ * if false, this will put some junk files in the dest directory
*/
- @Test(enabled = true)
- public void testAntBundleInitialInstall() throws Exception {
+ private void doAntBundleInitialInstall(boolean startClean) throws Exception {
ResourceType resourceType = new ResourceType("testSimpleBundle2Type", "plugin", ResourceCategory.SERVER, null);
BundleType bundleType = new BundleType("testSimpleBundle2BType", resourceType);
Repo repo = new Repo("test-bundle-two");
@@ -273,6 +279,25 @@ public class AntBundlePluginComponentTest {
props.store(outputStream, "test.properties comment");
outputStream.close();
+ // if we are not to start clean, create some junk files that will need to be backed up and moved away
+ if (startClean == false) {
+ this.destDir.mkdirs();
+ File junk1 = new File(this.destDir, "junk1.properties");
+ Properties junkProps = new Properties();
+ junkProps.setProperty("junk1", "wot gorilla?");
+ FileOutputStream os = new FileOutputStream(junk1);
+ junkProps.store(os, "junk1.properties comment");
+ os.close();
+
+ File junk2 = new File(this.destDir, "junksubdir" + File.separatorChar + "junk2.properties");
+ junk2.getParentFile().mkdirs();
+ junkProps = new Properties();
+ junkProps.setProperty("junk2", "more junk");
+ os = new FileOutputStream(junk2);
+ junkProps.store(os, "junk2.properties comment");
+ os.close();
+ }
+
BundleDeployRequest request = new BundleDeployRequest();
request.setBundleFilesLocation(this.bundleFilesDir);
request.setResourceDeployment(new BundleResourceDeployment(deployment, null));
@@ -501,8 +526,129 @@ public class AntBundlePluginComponentTest {
assert "2".equals(props.getProperty("external2")) : "bundle purge removed our unmanaged file 2";
}
+ /**
+ * Test deployment of an RHQ bundle recipe where the deploy directory is to be fully managed.
+ * This is the typical use-case and the default behavior.
+ */
+ @Test(enabled = true)
+ public void testAntBundleManageRootDir() throws Exception {
+ ResourceType resourceType = new ResourceType("testManageRootDirBundle", "plugin", ResourceCategory.SERVER, null);
+ BundleType bundleType = new BundleType("testManageRootDirBundle", resourceType);
+ Repo repo = new Repo("testManageRootDirBundle");
+ PackageType packageType = new PackageType("testManageRootDirBundle", resourceType);
+ Bundle bundle = new Bundle("testManageRootDirBundle", bundleType, repo, packageType);
+ BundleVersion bundleVersion = new BundleVersion("testManageRootDirBundle", "1.0", bundle,
+ getRecipeFromFile("test-bundle-manage-root-dir.xml"));
+ BundleDestination destination = new BundleDestination(bundle, "testManageRootDirBundle", new ResourceGroup(
+ "testManageRootDirBundle"), DEST_BASE_DIR_NAME, this.destDir.getAbsolutePath());
+ Configuration config = new Configuration();
+
+ BundleDeployment deployment = new BundleDeployment();
+ deployment.setName("test bundle deployment name");
+ deployment.setBundleVersion(bundleVersion);
+ deployment.setConfiguration(config);
+ deployment.setDestination(destination);
+
+ // create bundle test files
+ File file0 = new File(this.bundleFilesDir, "zero.properties");
+ Properties props = new Properties();
+ props.setProperty("zero", "0");
+ FileOutputStream outputStream = new FileOutputStream(file0);
+ props.store(outputStream, "zero file");
+ outputStream.close();
+
+ File file1 = new File(this.bundleFilesDir, "one.properties");
+ props.clear();
+ props.setProperty("one", "1");
+ outputStream = new FileOutputStream(file1);
+ props.store(outputStream, "one file");
+ outputStream.close();
+
+ File file2 = new File(this.bundleFilesDir, "two.properties");
+ props.clear();
+ props.setProperty("two", "2");
+ outputStream = new FileOutputStream(file2);
+ props.store(outputStream, "two file");
+ outputStream.close();
+
+ // create some external test files that don't belong to the bundle but are in the dest dir (which is to be managed by the bundle)
+ this.destDir.mkdirs();
+ File external1 = new File(this.destDir, "external1.properties");
+ props.clear();
+ props.setProperty("external1", "1");
+ outputStream = new FileOutputStream(external1);
+ props.store(outputStream, "external1 file");
+ outputStream.close();
+
+ File external2 = new File(this.destDir, "extdir/external2.properties");
+ external2.getParentFile().mkdirs();
+ props.clear();
+ props.setProperty("external2", "2");
+ outputStream = new FileOutputStream(external2);
+ props.store(outputStream, "external2 file");
+ outputStream.close();
+
+ // deploy the bundle
+ BundleDeployRequest request = new BundleDeployRequest();
+ request.setBundleFilesLocation(this.bundleFilesDir);
+ request.setResourceDeployment(new BundleResourceDeployment(deployment, null));
+ request.setBundleManagerProvider(new MockBundleManagerProvider());
+ request.setAbsoluteDestinationDirectory(this.destDir);
+
+ BundleDeployResult results = plugin.deployBundle(request);
+
+ assertResultsSuccess(results);
+
+ // test that files were deployed in the proper place
+ props.clear();
+ loadProperties(props, new FileInputStream(new File(this.destDir, "zero.properties")));
+ assert "0".equals(props.getProperty("zero")) : "did not deploy bundle correctly 0";
+ loadProperties(props, new FileInputStream(new File(this.destDir, "subdir1/one.properties")));
+ assert "1".equals(props.getProperty("one")) : "did not deploy bundle correctly 1";
+ loadProperties(props, new FileInputStream(new File(this.destDir, "subdir2/two.properties")));
+ assert "2".equals(props.getProperty("two")) : "did not deploy bundle correctly 2";
+
+ DeploymentsMetadata metadata = new DeploymentsMetadata(this.destDir);
+ assert metadata.isManaged() == true : "missing metadata directory";
+ assert metadata.getCurrentDeploymentProperties().getManageRootDir() == true : "should be managing root dir";
+
+ // make sure our external files/directories were removed because
+ // they aren't part of the bundle and we are fully managing the dest dir
+ props.clear();
+ try {
+ loadProperties(props, new FileInputStream(new File(this.destDir, "external1.properties")));
+ assert false : "bundle deployment did not remove our managed file 1";
+ } catch (Exception ok) {
+ }
+ try {
+ loadProperties(props, new FileInputStream(new File(this.destDir, "extdir/external2.properties")));
+ assert false : "bundle deployment did not remove our managed file 2";
+ } catch (Exception ok) {
+ }
+
+ // now purge the bundle - this should purge everything in the deploy dir because we are fully managing it
+ BundlePurgeRequest purgeRequest = new BundlePurgeRequest();
+ purgeRequest.setLiveResourceDeployment(new BundleResourceDeployment(deployment, null));
+ purgeRequest.setBundleManagerProvider(new MockBundleManagerProvider());
+ purgeRequest.setAbsoluteDestinationDirectory(this.destDir);
+
+ BundlePurgeResult purgeResults = plugin.purgeBundle(purgeRequest);
+ assertResultsSuccess(purgeResults);
+
+ // make sure our bundle files have been completely purged; the metadata directory should have been purged too
+ assert new File(this.destDir, "zero.properties").exists() == false;
+ assert new File(this.destDir, "subdir1/one.properties").exists() == false;
+ assert new File(this.destDir, "subdir2/two.properties").exists() == false;
+ assert new File(this.destDir, "subdir1").exists() == false;
+ assert new File(this.destDir, "subdir2").exists() == false;
+ assert this.destDir.exists() == false : "deploy dir should not exist, we were told to fully manage it";
+
+ metadata = new DeploymentsMetadata(this.destDir);
+ assert metadata.getMetadataDirectory().exists() == false : "metadata directory should not exist";
+ }
+
private void upgrade(boolean clean) throws Exception {
- testAntBundleInitialInstall(); // install a bundle first
+ doAntBundleInitialInstall(clean); // install a bundle first
cleanPluginDirs(); // clean everything but the dest dir - we want to upgrade the destination
prepareBeforeTestMethod(); // prepare for our new test
diff --git a/modules/plugins/ant-bundle/src/test/resources/test-bundle-manage-root-dir.xml b/modules/plugins/ant-bundle/src/test/resources/test-bundle-manage-root-dir.xml
new file mode 100644
index 0000000..9b77dd8
--- /dev/null
+++ b/modules/plugins/ant-bundle/src/test/resources/test-bundle-manage-root-dir.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+
+<project name="simple-build" default="main"
+ xmlns:rhq="antlib:org.rhq.bundle">
+
+ <rhq:bundle name="testManageRootDirBundle" version="1.0">
+ <rhq:deployment-unit name="simulated-war" manageRootDir="true">
+ <rhq:file name="zero.properties" destinationFile="zero.properties"/>
+ <rhq:file name="one.properties" destinationFile="subdir1/one.properties"/>
+ <rhq:file name="two.properties" destinationFile="subdir2/two.properties"/>
+ </rhq:deployment-unit>
+ </rhq:bundle>
+
+ <target name="main"/>
+
+</project>
\ No newline at end of file
commit 9c40d8d71feb0bdd719c9a91af2483cb771af7b7
Author: Hudson <jboss-qa-internal(a)redhat.com>
Date: Wed Feb 1 16:32:08 2012 -0500
development RHQ_4.2.0.JON.3.0.2-SNAPSHOT
diff --git a/modules/cli-tests/pom.xml b/modules/cli-tests/pom.xml
index 3167d39..0991c91 100644
--- a/modules/cli-tests/pom.xml
+++ b/modules/cli-tests/pom.xml
@@ -8,7 +8,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index 1e93560..1370a4c 100644
--- a/modules/common/ant-bundle/pom.xml
+++ b/modules/common/ant-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/drift/pom.xml b/modules/common/drift/pom.xml
index 198d9bc..c41be24 100644
--- a/modules/common/drift/pom.xml
+++ b/modules/common/drift/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<artifactId>rhq-common-drift</artifactId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index 972a5a2..0c28ff6 100644
--- a/modules/common/filetemplate-bundle/pom.xml
+++ b/modules/common/filetemplate-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<artifactId>rhq-filetemplate-bundle-common</artifactId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 91f9d94..1b56b75 100644
--- a/modules/common/jboss-as/pom.xml
+++ b/modules/common/jboss-as/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<artifactId>rhq-jboss-as-common</artifactId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index 262a9f7..5388ea4 100644
--- a/modules/common/pom.xml
+++ b/modules/common/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index 2f2f2b3..a228e4f 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index 5442ad3..e834756 100644
--- a/modules/core/comm-api/pom.xml
+++ b/modules/core/comm-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index dbeb7ef..83a5f8d 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index ed95c9c..88e0649 100644
--- a/modules/core/domain/pom.xml
+++ b/modules/core/domain/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<artifactId>rhq-core-domain</artifactId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index 848940f..3be4240 100644
--- a/modules/core/gui/pom.xml
+++ b/modules/core/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index c741bd1..a693dbe 100644
--- a/modules/core/native-system/pom.xml
+++ b/modules/core/native-system/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index 1c16c09..56fd6e6 100644
--- a/modules/core/plugin-api/pom.xml
+++ b/modules/core/plugin-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index a8475ca..352de5e 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<artifactId>rhq-core-plugin-container</artifactId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index 1ce1e2c..81685e7 100644
--- a/modules/core/plugin-validator/pom.xml
+++ b/modules/core/plugin-validator/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index 4aa616d..33d49ed 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index eaa3727..3e6ae6e 100644
--- a/modules/core/util/pom.xml
+++ b/modules/core/util/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<artifactId>rhq-core-util</artifactId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index 93a6f6b..2978ebb 100644
--- a/modules/enterprise/agent/pom.xml
+++ b/modules/enterprise/agent/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index 24c2281..f845ef7 100644
--- a/modules/enterprise/agentupdate/pom.xml
+++ b/modules/enterprise/agentupdate/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/binding/pom.xml b/modules/enterprise/binding/pom.xml
index 4182380..f081555 100644
--- a/modules/enterprise/binding/pom.xml
+++ b/modules/enterprise/binding/pom.xml
@@ -3,10 +3,10 @@
<parent>
<artifactId>rhq-enterprise-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<artifactId>rhq-script-bindings</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Script Bindings</name>
<description>Abstraction of different facilities and default configurations for script bindings</description>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index be3e3a8..37fab92 100644
--- a/modules/enterprise/comm/pom.xml
+++ b/modules/enterprise/comm/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index 7db2560..32b7c7c 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index a2ad386..114b7d1 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index f1af689..9ffc883 100644
--- a/modules/enterprise/gui/content_http-war/pom.xml
+++ b/modules/enterprise/gui/content_http-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-gui-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index b202e1f..15ebbec 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index 3d1c787..2811c07 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index 5def783..1c4c70c 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -8,7 +8,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index d840e09..79ea577 100644
--- a/modules/enterprise/gui/portal-war/pom.xml
+++ b/modules/enterprise/gui/portal-war/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/rest-war/pom.xml b/modules/enterprise/gui/rest-war/pom.xml
index dc59c86..c8b2614 100644
--- a/modules/enterprise/gui/rest-war/pom.xml
+++ b/modules/enterprise/gui/rest-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index 638f32c..f83b2e6 100644
--- a/modules/enterprise/pom.xml
+++ b/modules/enterprise/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index 0050184..2ff61d6 100644
--- a/modules/enterprise/remoting/cli/pom.xml
+++ b/modules/enterprise/remoting/cli/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index ebb80cc..4c9f8c2 100644
--- a/modules/enterprise/remoting/client-api/pom.xml
+++ b/modules/enterprise/remoting/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/client-deps/pom.xml b/modules/enterprise/remoting/client-deps/pom.xml
index 5db71e7..5afc82a 100644
--- a/modules/enterprise/remoting/client-deps/pom.xml
+++ b/modules/enterprise/remoting/client-deps/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index a9be89d..4cd7b22 100644
--- a/modules/enterprise/remoting/pom.xml
+++ b/modules/enterprise/remoting/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index 049e375..47bfa9d 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/client-api/pom.xml b/modules/enterprise/server/client-api/pom.xml
index e8a1e84..9ab21c7 100644
--- a/modules/enterprise/server/client-api/pom.xml
+++ b/modules/enterprise/server/client-api/pom.xml
@@ -5,13 +5,13 @@
<parent>
<artifactId>rhq-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-server-client-api</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server Client API</name>
<description>The implementation of the client API when accessing the server locally</description>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index e7612ee..a6c07ae 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index 70427bf..c0f0d63 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index 8f44df2..9deb192 100644
--- a/modules/enterprise/server/ear/pom.xml
+++ b/modules/enterprise/server/ear/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/itests/pom.xml b/modules/enterprise/server/itests/pom.xml
index b7cfdcf..47517a2 100644
--- a/modules/enterprise/server/itests/pom.xml
+++ b/modules/enterprise/server/itests/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 61fe184..20da9cc 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/plugins/alert-cli/pom.xml b/modules/enterprise/server/plugins/alert-cli/pom.xml
index 84f1702..e7b916b 100644
--- a/modules/enterprise/server/plugins/alert-cli/pom.xml
+++ b/modules/enterprise/server/plugins/alert-cli/pom.xml
@@ -3,11 +3,11 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>alert-cli</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server CLI Script Alert Plugin</name>
<description>An alert sender able to execute an arbitrary CLI script as a response to an alert</description>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index aa5328b..2a51a08 100644
--- a/modules/enterprise/server/plugins/alert-email/pom.xml
+++ b/modules/enterprise/server/plugins/alert-email/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.server</groupId>
<artifactId>alert-email</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server Email Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-irc/pom.xml b/modules/enterprise/server/plugins/alert-irc/pom.xml
index 878c288..87dcc35 100644
--- a/modules/enterprise/server/plugins/alert-irc/pom.xml
+++ b/modules/enterprise/server/plugins/alert-irc/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-irc</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server IRC Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-log4j/pom.xml b/modules/enterprise/server/plugins/alert-log4j/pom.xml
index c22ce1a..186aee8 100644
--- a/modules/enterprise/server/plugins/alert-log4j/pom.xml
+++ b/modules/enterprise/server/plugins/alert-log4j/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-log4j</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server Log4J Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index 452d62a..13c4903 100644
--- a/modules/enterprise/server/plugins/alert-microblog/pom.xml
+++ b/modules/enterprise/server/plugins/alert-microblog/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-microblog</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server Microblog Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-mobicents/pom.xml b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
index a30f495..a76e6c2 100644
--- a/modules/enterprise/server/plugins/alert-mobicents/pom.xml
+++ b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-mobicents</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server Mobicents Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-operations/pom.xml b/modules/enterprise/server/plugins/alert-operations/pom.xml
index 6ffab76..e5c89a7 100644
--- a/modules/enterprise/server/plugins/alert-operations/pom.xml
+++ b/modules/enterprise/server/plugins/alert-operations/pom.xml
@@ -2,14 +2,14 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-operations</artifactId>
<packaging>jar</packaging>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server Opertions Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-roles/pom.xml b/modules/enterprise/server/plugins/alert-roles/pom.xml
index 69f4c4b..ddc59eb 100644
--- a/modules/enterprise/server/plugins/alert-roles/pom.xml
+++ b/modules/enterprise/server/plugins/alert-roles/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-roles</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server Roles Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-snmp/pom.xml b/modules/enterprise/server/plugins/alert-snmp/pom.xml
index 9ccda53..6fb795a 100644
--- a/modules/enterprise/server/plugins/alert-snmp/pom.xml
+++ b/modules/enterprise/server/plugins/alert-snmp/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-snmp</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server SNMP Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-subject/pom.xml b/modules/enterprise/server/plugins/alert-subject/pom.xml
index b1b56d0..3f706ad 100644
--- a/modules/enterprise/server/plugins/alert-subject/pom.xml
+++ b/modules/enterprise/server/plugins/alert-subject/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-subject</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server Subject Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 6a7d56d..253c731 100644
--- a/modules/enterprise/server/plugins/ant-bundle/pom.xml
+++ b/modules/enterprise/server/plugins/ant-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/cobbler/pom.xml b/modules/enterprise/server/plugins/cobbler/pom.xml
index 1282542..13c443a 100644
--- a/modules/enterprise/server/plugins/cobbler/pom.xml
+++ b/modules/enterprise/server/plugins/cobbler/pom.xml
@@ -4,14 +4,14 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>rhq-serverplugin-cobbler</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server Cobbler Plugin</name>
diff --git a/modules/enterprise/server/plugins/disk/pom.xml b/modules/enterprise/server/plugins/disk/pom.xml
index 5815d72..5cdd385 100644
--- a/modules/enterprise/server/plugins/disk/pom.xml
+++ b/modules/enterprise/server/plugins/disk/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/drift-rhq/pom.xml b/modules/enterprise/server/plugins/drift-rhq/pom.xml
index 47f753e..38e5268 100644
--- a/modules/enterprise/server/plugins/drift-rhq/pom.xml
+++ b/modules/enterprise/server/plugins/drift-rhq/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/filetemplate-bundle/pom.xml b/modules/enterprise/server/plugins/filetemplate-bundle/pom.xml
index cc629bf..a9a3f5a 100644
--- a/modules/enterprise/server/plugins/filetemplate-bundle/pom.xml
+++ b/modules/enterprise/server/plugins/filetemplate-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/groovy-script/pom.xml b/modules/enterprise/server/plugins/groovy-script/pom.xml
index 5f5509f..f440701 100644
--- a/modules/enterprise/server/plugins/groovy-script/pom.xml
+++ b/modules/enterprise/server/plugins/groovy-script/pom.xml
@@ -4,14 +4,14 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>groovy-script-server-plugin</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server Groovy Script Plugin</name>
diff --git a/modules/enterprise/server/plugins/jboss-software/pom.xml b/modules/enterprise/server/plugins/jboss-software/pom.xml
index 733c73e..96044a9 100644
--- a/modules/enterprise/server/plugins/jboss-software/pom.xml
+++ b/modules/enterprise/server/plugins/jboss-software/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/packagetype-cli/pom.xml b/modules/enterprise/server/plugins/packagetype-cli/pom.xml
index 57ec9b0..43d061c 100644
--- a/modules/enterprise/server/plugins/packagetype-cli/pom.xml
+++ b/modules/enterprise/server/plugins/packagetype-cli/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>packagetype-cli</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>RHQ Enterprise Server CLI Package Type Plugin</name>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index 492c91c..ada1b7e 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index 253d03f..d7d85bf 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index 364d1c5..4ba3acb 100644
--- a/modules/enterprise/server/plugins/pom.xml
+++ b/modules/enterprise/server/plugins/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index 2c0a623..c9a0f90 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index f67dc29..6e0b704 100644
--- a/modules/enterprise/server/plugins/url/pom.xml
+++ b/modules/enterprise/server/plugins/url/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml b/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml
index 999bb39..0f8c56f 100644
--- a/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml
+++ b/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/yum/pom.xml b/modules/enterprise/server/plugins/yum/pom.xml
index b67cfb7..8977b4f 100644
--- a/modules/enterprise/server/plugins/yum/pom.xml
+++ b/modules/enterprise/server/plugins/yum/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/pom.xml b/modules/enterprise/server/pom.xml
index 5212bac..ae13209 100644
--- a/modules/enterprise/server/pom.xml
+++ b/modules/enterprise/server/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index 872737a..2acd0dc 100644
--- a/modules/enterprise/server/safe-invoker/pom.xml
+++ b/modules/enterprise/server/safe-invoker/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index 1837a58..42c1dbe 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index fb0b291..d1d6a37 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index c7d0dce..5805b93 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/helpers/bundleGen/pom.xml b/modules/helpers/bundleGen/pom.xml
index 9902ea8..b042173 100644
--- a/modules/helpers/bundleGen/pom.xml
+++ b/modules/helpers/bundleGen/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-helpers</artifactId>
<groupId>org.rhq.helpers</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.helpers</groupId>
<artifactId>bundleGen</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<build>
<plugins>
diff --git a/modules/helpers/perftest-support/pom.xml b/modules/helpers/perftest-support/pom.xml
index c5aeb57..62fca8f 100644
--- a/modules/helpers/perftest-support/pom.xml
+++ b/modules/helpers/perftest-support/pom.xml
@@ -3,11 +3,11 @@
<parent>
<artifactId>rhq-helpers</artifactId>
<groupId>org.rhq.helpers</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>perftest-support</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<name>Performance Testing Support</name>
<description>To support performance testing, this is a basic tool to support extracting and later reimporting of
data from/to a database.
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index 0261e21..29dc323 100644
--- a/modules/helpers/pom.xml
+++ b/modules/helpers/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index c9bf1ce..85495c7 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/integration-tests/apache-plugin-test/pom.xml b/modules/integration-tests/apache-plugin-test/pom.xml
index 3cdb7de..84b13c6 100644
--- a/modules/integration-tests/apache-plugin-test/pom.xml
+++ b/modules/integration-tests/apache-plugin-test/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-integration-tests</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/integration-tests/jboss-as-7-plugin-test/pom.xml b/modules/integration-tests/jboss-as-7-plugin-test/pom.xml
index 26957d6..29c867e 100644
--- a/modules/integration-tests/jboss-as-7-plugin-test/pom.xml
+++ b/modules/integration-tests/jboss-as-7-plugin-test/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-integration-tests</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/integration-tests/pom.xml b/modules/integration-tests/pom.xml
index b177e34..019bd6e 100644
--- a/modules/integration-tests/pom.xml
+++ b/modules/integration-tests/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index 488cf6b..7465cf4 100644
--- a/modules/plugins/aliases/pom.xml
+++ b/modules/plugins/aliases/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index 0344994..0561ce1 100644
--- a/modules/plugins/ant-bundle/pom.xml
+++ b/modules/plugins/ant-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index 6c3464e..a97dbf6 100644
--- a/modules/plugins/apache/pom.xml
+++ b/modules/plugins/apache/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index a11d7ae..97d456c 100644
--- a/modules/plugins/augeas/pom.xml
+++ b/modules/plugins/augeas/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/byteman/pom.xml b/modules/plugins/byteman/pom.xml
index 0518035..930d7ca 100644
--- a/modules/plugins/byteman/pom.xml
+++ b/modules/plugins/byteman/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index b19fc30..e39760b 100644
--- a/modules/plugins/cobbler/pom.xml
+++ b/modules/plugins/cobbler/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index 4c61b27..ea3c6c9 100644
--- a/modules/plugins/cron/pom.xml
+++ b/modules/plugins/cron/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index 35b0bd9..4a8de83 100644
--- a/modules/plugins/database/pom.xml
+++ b/modules/plugins/database/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index 057ac66..6d1a653 100644
--- a/modules/plugins/filetemplate-bundle/pom.xml
+++ b/modules/plugins/filetemplate-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index 8c46656..3337fb8 100644
--- a/modules/plugins/grub/pom.xml
+++ b/modules/plugins/grub/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hadoop/pom.xml b/modules/plugins/hadoop/pom.xml
index b1c024a..0c9dc76 100644
--- a/modules/plugins/hadoop/pom.xml
+++ b/modules/plugins/hadoop/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index d487017..33c5cdd 100644
--- a/modules/plugins/hibernate/pom.xml
+++ b/modules/plugins/hibernate/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<!-- Bypass the jopr-plugins-parent which can not have children. It must build after the plugins in order to execute integration tests on them. -->
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index 9a967d1..5d72e0a 100644
--- a/modules/plugins/hosts/pom.xml
+++ b/modules/plugins/hosts/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index bd67dd4..6717151 100644
--- a/modules/plugins/hudson/pom.xml
+++ b/modules/plugins/hudson/pom.xml
@@ -6,12 +6,12 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-hudson-plugin</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<packaging>jar</packaging>
<name>RHQ Hudson Plugin</name>
diff --git a/modules/plugins/iis/pom.xml b/modules/plugins/iis/pom.xml
index 930af72..a3ea5b3 100644
--- a/modules/plugins/iis/pom.xml
+++ b/modules/plugins/iis/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/irc/pom.xml b/modules/plugins/irc/pom.xml
index 4bd81f0..aac7c8d 100644
--- a/modules/plugins/irc/pom.xml
+++ b/modules/plugins/irc/pom.xml
@@ -5,7 +5,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/jboss-as-5/pom.xml b/modules/plugins/jboss-as-5/pom.xml
index 0fff9eb..8b459d5 100644
--- a/modules/plugins/jboss-as-5/pom.xml
+++ b/modules/plugins/jboss-as-5/pom.xml
@@ -9,7 +9,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as-7/pom.xml b/modules/plugins/jboss-as-7/pom.xml
index 04f2c6d..f326dce 100644
--- a/modules/plugins/jboss-as-7/pom.xml
+++ b/modules/plugins/jboss-as-7/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index 3035090..95dbd68 100644
--- a/modules/plugins/jboss-as/pom.xml
+++ b/modules/plugins/jboss-as/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-cache-v3/pom.xml b/modules/plugins/jboss-cache-v3/pom.xml
index 3a1120c..acfa6b6 100644
--- a/modules/plugins/jboss-cache-v3/pom.xml
+++ b/modules/plugins/jboss-cache-v3/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-cache/pom.xml b/modules/plugins/jboss-cache/pom.xml
index dc08ac6..bc443af 100644
--- a/modules/plugins/jboss-cache/pom.xml
+++ b/modules/plugins/jboss-cache/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index 56bdd06..6bfcb71 100644
--- a/modules/plugins/jmx/pom.xml
+++ b/modules/plugins/jmx/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/kickstart/pom.xml b/modules/plugins/kickstart/pom.xml
index ee74e39..30a12a2 100644
--- a/modules/plugins/kickstart/pom.xml
+++ b/modules/plugins/kickstart/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mod-cluster/pom.xml b/modules/plugins/mod-cluster/pom.xml
index 8dfbf66..3bb008e 100644
--- a/modules/plugins/mod-cluster/pom.xml
+++ b/modules/plugins/mod-cluster/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index 5fddda4..5558690 100644
--- a/modules/plugins/mysql/pom.xml
+++ b/modules/plugins/mysql/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 9e1965c..89e3fc3 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index 46abf88..0a77271 100644
--- a/modules/plugins/oracle/pom.xml
+++ b/modules/plugins/oracle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pattern-generator/pom.xml b/modules/plugins/pattern-generator/pom.xml
index 6935ffb..9c622f1 100644
--- a/modules/plugins/pattern-generator/pom.xml
+++ b/modules/plugins/pattern-generator/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index 549daf1..acf1fab 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index 05c6699..e960632 100644
--- a/modules/plugins/platform/pom.xml
+++ b/modules/plugins/platform/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index 96fe70d..966a2c1 100644
--- a/modules/plugins/pom.xml
+++ b/modules/plugins/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 54ac7dc..4ba47d5 100644
--- a/modules/plugins/postfix/pom.xml
+++ b/modules/plugins/postfix/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index c0b4e13..3bd88e7 100644
--- a/modules/plugins/postgres/pom.xml
+++ b/modules/plugins/postgres/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index 032969c..b3770b9 100644
--- a/modules/plugins/rhq-agent/pom.xml
+++ b/modules/plugins/rhq-agent/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index 7673396..a6002a9 100644
--- a/modules/plugins/rhq-server/pom.xml
+++ b/modules/plugins/rhq-server/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index 2add38e..be54b7e 100644
--- a/modules/plugins/samba/pom.xml
+++ b/modules/plugins/samba/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index 9116f34..cc7178f 100644
--- a/modules/plugins/script/pom.xml
+++ b/modules/plugins/script/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script2/pom.xml b/modules/plugins/script2/pom.xml
index 03323d1..a569592 100644
--- a/modules/plugins/script2/pom.xml
+++ b/modules/plugins/script2/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index c02a3a2..8f1f2b6 100644
--- a/modules/plugins/snmptrapd/pom.xml
+++ b/modules/plugins/snmptrapd/pom.xml
@@ -2,7 +2,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index 58001eb..919dc76 100644
--- a/modules/plugins/sshd/pom.xml
+++ b/modules/plugins/sshd/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index fc4cc67..749b647 100644
--- a/modules/plugins/sudoers/pom.xml
+++ b/modules/plugins/sudoers/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 287e029..d4c6ba5 100644
--- a/modules/plugins/tomcat/pom.xml
+++ b/modules/plugins/tomcat/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index 0fcd691..5a92cac 100644
--- a/modules/plugins/twitter/pom.xml
+++ b/modules/plugins/twitter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/validate-all-plugins/pom.xml b/modules/plugins/validate-all-plugins/pom.xml
index 60aabe3..c390e24 100644
--- a/modules/plugins/validate-all-plugins/pom.xml
+++ b/modules/plugins/validate-all-plugins/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/virt/pom.xml b/modules/plugins/virt/pom.xml
index 8f21c6f..13ac351 100644
--- a/modules/plugins/virt/pom.xml
+++ b/modules/plugins/virt/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index ec51642..f790d7f 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index 5f60d61..74705ea 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -7,7 +7,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
</parent>
<artifactId>test-utils</artifactId>
diff --git a/pom.xml b/pom.xml
index 3f99eff..774564f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.1.GA</version>
+ <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
<packaging>pom</packaging>
<name>RHQ</name>
commit a2d31a6fe235423914045354efea4063208c3830
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Mon Jan 23 12:09:18 2012 -0500
[BZ 784006] rename agent option to --fullcleanconfig and change the error you get so the user knows the command line argument to pass to set the token.
diff --git a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java
index c7e0cfc..805d280 100644
--- a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java
+++ b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java
@@ -2917,7 +2917,7 @@ public class AgentMain {
new LongOpt("console", LongOpt.REQUIRED_ARGUMENT, null, 'e'),
new LongOpt("daemon", LongOpt.NO_ARGUMENT, null, 'd'),
new LongOpt("cleanconfig", LongOpt.NO_ARGUMENT, null, 'l'),
- new LongOpt("cleanallconfig", LongOpt.NO_ARGUMENT, null, 'L'),
+ new LongOpt("fullcleanconfig", LongOpt.NO_ARGUMENT, null, 'L'),
new LongOpt("advanced", LongOpt.NO_ARGUMENT, null, 'a'),
new LongOpt("setup", LongOpt.NO_ARGUMENT, null, 's'),
new LongOpt("nostart", LongOpt.NO_ARGUMENT, null, 'n'),
diff --git a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/i18n/AgentI18NResourceKeys.java b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/i18n/AgentI18NResourceKeys.java
index 6489401..0a3930f 100644
--- a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/i18n/AgentI18NResourceKeys.java
+++ b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/i18n/AgentI18NResourceKeys.java
@@ -614,7 +614,7 @@ public interface AgentI18NResourceKeys {
+ "\\ -h, --help Shows this help message (default)\\n\\\n"
+ "\\ -i, --input=<filename> Specifies a script file to be used for input\\n\\\n"
+ "\\ -l, --cleanconfig Clears out existing configuration and data files, except for the security token.\\n\\\n"
- + "\\ -L, --cleanallconfig Clears out all existing configuration and data files so the agent starts with a totally clean slate\\n\\\n"
+ + "\\ -L, --fullcleanconfig Clears out all existing configuration and data files so the agent starts with a totally clean slate\\n\\\n"
+ "\\ -n, --nostart If specified, the agent will not be automatically started\\n\\\n"
+ "\\ -o, --output=<filename> Specifies a file to write all output (excluding log messages)\\n\\\n"
+ "\\ -p, --pref=<preferences name> Specifies the agent preferences name used to identify what configuration to use\\n\\\n"
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
index 75c4d65..9afc3b9 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
@@ -135,9 +135,11 @@ public class CoreServerServiceImpl implements CoreServerService {
if (agentByName != null) {
// the agent request provided a name that already is in use by an agent. However, the request
// provided a security token that was not assigned to any agent! How can this be? Something is fishy.
- String msg = "The agent asking for registration under the name [" + request.getName()
+ String msg = "The agent asking for registration under the name ["
+ + request.getName()
+ "] provided an invalid security token. This request will fail. "
- + "Please consult an administrator to reconfigure this agent with its proper security token.";
+ + "Please consult an administrator to obtain the agent's proper security token "
+ + "and restart the agent with the option \"-Drhq.agent.security-token=<the valid security token>\"";
throw new AgentRegistrationException(msg);
}
Agent agentByAddressPort = getAgentManager().getAgentByAddressAndPort(request.getAddress(),
@@ -172,9 +174,11 @@ public class CoreServerServiceImpl implements CoreServerService {
+ " and same security token.";
throw new AgentRegistrationException(msg);
} else {
- String msg = "The agent [" + request.getName()
+ String msg = "The agent ["
+ + request.getName()
+ "] is attempting to re-register without a security token. "
- + "Please consult an administrator to reconfigure this agent with its proper security token.";
+ + "Please consult an administrator to obtain the agent's proper security token "
+ + "and restart the agent with the option \"-Drhq.agent.security-token=<the valid security token>\"";
throw new AgentRegistrationException(msg);
}
commit 8bcb3666b7baf41af741f9078a215b97b6c31884
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Jan 19 13:06:11 2012 -0500
It seems we didn't really understand how testng was executing tests
when we submitted many test classes in a run. For example, when we
submit the server jar tests we assumed that the test classes would
be run sequentially, in perhaps some random order, and that each would
have its Before/AfterClass methods executed atthe start and end of each
test class execution.
That is not true.
Although testng seems to run most tests from a test class together, it does
not seem to make that guarantee. From latest traces it seems that the
test classes are, toa degree, pooled and:
1) you can not assume that all test methods for a test class will execute
before execution of test methods from another test class.
2) you can not assume that multiple BeforeClass methods will not execute
prior to an AfterClass. For example, this can happen:
Class1:BeforeClass
Class2:BeforeClass
Class1:AfterClass
Class2:AfterClass
Put another way: You can only assume that BeforeClass and AfterClass
execute in order, for a single test class. You can not predict the
execution order of all Before|AfterClass methods for all test classes.
3) The same rules as described in 2 apply to Before|AfterGroups
What this means is that you must be very careful with what is done in
Before|AfterClass and BeforeAfter|Groups. The work must not conflict
with work done in other test classes that will execute in the same test
suite.
This is very important when multiple test classes are sharing some sort
of test resource.
In general, it is much safer, although perhaps a bit slower, to use
@BeforeMethod() and @AfterMethod(alwaysRun=true).
This misunderstanding was particularly bad for us in the server jar tests,
where many test classes extend AbstractEJB3Test and utilize the jboss
mbean server under the covers, in the prepareXXX methods. This caused
clashes described above.
So, for server jar testing this reworks things to better share the mbean
server, even among tests in the same class. And migrates all
AbstractEJB3Test.prepare/unprepare calls from Before|AfterClass|Groups to
Before|After|Method.
also - remove/suppress IDE warnings from touched test classes
Conflicts:
modules/enterprise/server/itests/src/test/java/org/rhq/enterprise/server/drift/DriftServerTest.java
diff --git a/modules/enterprise/server/itests/src/test/java/org/rhq/enterprise/server/drift/DriftServerTest.java b/modules/enterprise/server/itests/src/test/java/org/rhq/enterprise/server/drift/DriftServerTest.java
index 375ec1e..9d1764d 100644
--- a/modules/enterprise/server/itests/src/test/java/org/rhq/enterprise/server/drift/DriftServerTest.java
+++ b/modules/enterprise/server/itests/src/test/java/org/rhq/enterprise/server/drift/DriftServerTest.java
@@ -109,7 +109,8 @@ public class DriftServerTest extends AbstractEJB3Test {
private void shutDownDriftServer() throws Exception {
unprepareServerPluginService();
- driftServerPluginService.stopMasterPluginContainer();
+ //already done by the above call
+ //driftServerPluginService.stopMasterPluginContainer();
}
private void shutDownAgentServices() {
@@ -178,10 +179,9 @@ public class DriftServerTest extends AbstractEJB3Test {
protected void deleteEntity(Class<?> clazz, String name, EntityManager em) {
try {
- Object entity = em.createQuery(
- "select entity from " + clazz.getSimpleName() + " entity where entity.name = :name")
- .setParameter("name", name)
- .getSingleResult();
+ Object entity = em
+ .createQuery("select entity from " + clazz.getSimpleName() + " entity where entity.name = :name")
+ .setParameter("name", name).getSingleResult();
em.remove(entity);
} catch (NoResultException e) {
// we can ignore no results because this code will run when the db
@@ -208,13 +208,8 @@ public class DriftServerTest extends AbstractEJB3Test {
}
protected void initResource() {
- resource = new ResourceBuilder().createResource()
- .withId(0)
- .withName(RESOURCE_NAME)
- .withResourceKey(RESOURCE_NAME)
- .withRandomUuid()
- .withResourceType(resourceType)
- .build();
+ resource = new ResourceBuilder().createResource().withId(0).withName(RESOURCE_NAME)
+ .withResourceKey(RESOURCE_NAME).withRandomUuid().withResourceType(resourceType).build();
}
protected Subject getOverlord() {
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/bundle/BundleManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/bundle/BundleManagerBeanTest.java
index 40a0168..587bdfb 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/bundle/BundleManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/bundle/BundleManagerBeanTest.java
@@ -37,9 +37,7 @@ import javax.persistence.Query;
import javax.transaction.TransactionManager;
import org.hibernate.LazyInitializationException;
-import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -94,7 +92,7 @@ import org.rhq.enterprise.server.util.LookupUtil;
* @author John Mazzitelli
* @author Jay Shaughnessy
*/
-@SuppressWarnings( { "unused" })
+@SuppressWarnings({ "unused" })
@Test
public class BundleManagerBeanTest extends AbstractEJB3Test {
@@ -115,19 +113,11 @@ public class BundleManagerBeanTest extends AbstractEJB3Test {
private Subject overlord;
TestServerCommunicationsService agentServiceContainer;
- @BeforeClass
- public void beforeClass() {
+ @BeforeMethod
+ public void beforeMethod() throws Exception {
agentServiceContainer = prepareForTestAgents();
agentServiceContainer.bundleService = new TestAgentClient(null, agentServiceContainer);
- }
- @AfterClass
- public void afterClass() throws Exception {
- unprepareForTestAgents();
- }
-
- @BeforeMethod
- public void beforeMethod() throws Exception {
this.ps = new TestBundleServerPluginService();
prepareCustomServerPluginService(this.ps);
bundleManager = LookupUtil.getBundleManager();
@@ -141,9 +131,14 @@ public class BundleManagerBeanTest extends AbstractEJB3Test {
@AfterMethod(alwaysRun = true)
public void afterMethod() throws Exception {
- cleanupDatabase();
- unprepareServerPluginService();
- this.ps = null;
+ unprepareForTestAgents();
+
+ try {
+ this.ps = null;
+ cleanupDatabase();
+ } finally {
+ unprepareServerPluginService();
+ }
}
private void cleanupDatabase() {
@@ -189,8 +184,7 @@ public class BundleManagerBeanTest extends AbstractEJB3Test {
+ TEST_PREFIX + "%'");
doomed = q.getResultList();
for (Object removeMe : doomed) {
- em.remove(em
- .getReference(BundleResourceDeployment.class, ((BundleResourceDeployment) removeMe).getId()));
+ em.remove(em.getReference(BundleResourceDeployment.class, ((BundleResourceDeployment) removeMe).getId()));
}
// remove any orphaned bds
q = em.createQuery("SELECT bd FROM BundleDeployment bd WHERE bd.description LIKE '" + TEST_PREFIX + "%'");
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/cloud/FailoverListManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/cloud/FailoverListManagerBeanTest.java
index 6b95388..29e9e58 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/cloud/FailoverListManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/cloud/FailoverListManagerBeanTest.java
@@ -27,7 +27,6 @@ import java.util.Set;
import javax.persistence.EntityManager;
-import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
@@ -86,13 +85,6 @@ public class FailoverListManagerBeanTest extends AbstractEJB3Test {
servers = new ArrayList<Server>();
agents = new ArrayList<Agent>();
newAgents = new ArrayList<Agent>();
-
- prepareForTestAgents();
- }
-
- @AfterClass
- public void afterClass() throws Exception {
- this.unprepareForTestAgents();
}
@BeforeMethod
@@ -100,9 +92,11 @@ public class FailoverListManagerBeanTest extends AbstractEJB3Test {
servers.clear();
agents.clear();
newAgents.clear();
+
+ prepareForTestAgents();
}
- @AfterMethod
+ @AfterMethod(alwaysRun = true)
public void afterMethod() throws Exception {
try {
getTransactionManager().begin();
@@ -151,6 +145,8 @@ public class FailoverListManagerBeanTest extends AbstractEJB3Test {
}
throw e;
+ } finally {
+ this.unprepareForTestAgents();
}
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
index 1dfd79a..3645d77 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
@@ -26,8 +26,6 @@ import java.util.Map;
import javax.persistence.EntityManager;
-import org.rhq.core.domain.criteria.ResourceConfigurationUpdateCriteria;
-import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
@@ -48,6 +46,7 @@ import org.rhq.core.domain.configuration.PluginConfigurationUpdate;
import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.configuration.ResourceConfigurationUpdate;
import org.rhq.core.domain.configuration.group.GroupPluginConfigurationUpdate;
+import org.rhq.core.domain.criteria.ResourceConfigurationUpdateCriteria;
import org.rhq.core.domain.discovery.AvailabilityReport;
import org.rhq.core.domain.discovery.MergeResourceResponse;
import org.rhq.core.domain.discovery.ResourceSyncInfo;
@@ -70,6 +69,7 @@ import org.rhq.enterprise.server.util.SessionTestHelper;
* Tests the configuration manager.
*/
@Test
+@SuppressWarnings("all")
public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
private static final boolean ENABLE_TESTS = true;
@@ -97,32 +97,27 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
configurationManager = LookupUtil.getConfigurationManager();
resourceManager = LookupUtil.getResourceManager();
overlord = LookupUtil.getSubjectManager().getOverlord();
-
- TestServerCommunicationsService agentServiceContainer = prepareForTestAgents();
- TestServices testServices = new TestServices();
- agentServiceContainer.configurationService = testServices;
- agentServiceContainer.discoveryService = testServices;
- }
-
- @AfterClass
- public void afterClass() throws Exception {
- unprepareForTestAgents();
}
@BeforeMethod
public void beforeMethod() throws Exception {
prepareScheduler();
+ TestServerCommunicationsService agentServiceContainer = prepareForTestAgents();
+ TestServices testServices = new TestServices();
+ agentServiceContainer.configurationService = testServices;
+ agentServiceContainer.discoveryService = testServices;
+
getTransactionManager().begin();
EntityManager em = getEntityManager();
try {
compatibleGroup = SessionTestHelper.createNewCompatibleGroupForRole(em, null, // no role necessary here
"compat");
- newResource1 = SessionTestHelper.createNewResourceForGroup(em, compatibleGroup, "res"
- + System.currentTimeMillis());
- newResource2 = SessionTestHelper.createNewResourceForGroup(em, compatibleGroup, "res"
- + System.currentTimeMillis());
+ newResource1 = SessionTestHelper.createNewResourceForGroup(em, compatibleGroup,
+ "res" + System.currentTimeMillis());
+ newResource2 = SessionTestHelper.createNewResourceForGroup(em, compatibleGroup,
+ "res" + System.currentTimeMillis());
// set one resource as the child of another, so that they don't both look like platforms under the agent
newResource1.addChildResource(newResource2);
@@ -145,7 +140,7 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
}
}
- @AfterMethod
+ @AfterMethod(alwaysRun = true)
public void afterMethod() throws Exception {
try {
// perform in-band and out-of-band work in quick succession
@@ -202,6 +197,7 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
} finally {
unprepareScheduler();
+ unprepareForTestAgents();
}
}
@@ -425,18 +421,18 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
configuration2.put(new PropertySimple("fail", "false"));
/* begin simple checks */
- PluginConfigurationUpdate update1 = configurationManager.updatePluginConfiguration(overlord, resource1
- .getId(), configuration1);
+ PluginConfigurationUpdate update1 = configurationManager.updatePluginConfiguration(overlord,
+ resource1.getId(), configuration1);
assert update1.getErrorMessage() == null : "We weren't expecting a failure here";
- PluginConfigurationUpdate update2 = configurationManager.updatePluginConfiguration(overlord, resource2
- .getId(), configuration2);
+ PluginConfigurationUpdate update2 = configurationManager.updatePluginConfiguration(overlord,
+ resource2.getId(), configuration2);
assert update2.getErrorMessage() == null : "We weren't expecting a failure here";
- Configuration updatedConfiguration1 = configurationManager.getPluginConfiguration(overlord, resource1
- .getId());
- Configuration updatedConfiguration2 = configurationManager.getPluginConfiguration(overlord, resource2
- .getId());
+ Configuration updatedConfiguration1 = configurationManager.getPluginConfiguration(overlord,
+ resource1.getId());
+ Configuration updatedConfiguration2 = configurationManager.getPluginConfiguration(overlord,
+ resource2.getId());
assert updatedConfiguration1.equals(configuration1) : "configuration1 was: " + updatedConfiguration1 + ", "
+ "expected was: " + configuration1;
@@ -487,8 +483,8 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
Map<Integer, Configuration> memberConfigs = new HashMap<Integer, Configuration>();
memberConfigs.put(resource1.getId(), configuration1);
memberConfigs.put(resource2.getId(), configuration2);
- int groupUpdateId = configurationManager.scheduleGroupPluginConfigurationUpdate(overlord, compatibleGroup
- .getId(), memberConfigs);
+ int groupUpdateId = configurationManager.scheduleGroupPluginConfigurationUpdate(overlord,
+ compatibleGroup.getId(), memberConfigs);
// instead of sleeping, let's directly execute what would normally be scheduled
//configurationManager.completeGroupPluginConfigurationUpdate(groupUpdateId);
@@ -713,8 +709,8 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
criteria.addFilterResourceIds(resource.getId());
criteria.fetchConfiguration(true);
criteria.addSortCreatedTime(PageOrdering.ASC);
- List<ResourceConfigurationUpdate> history =
- configurationManager.findResourceConfigurationUpdatesByCriteria(overlord, criteria);
+ List<ResourceConfigurationUpdate> history = configurationManager.findResourceConfigurationUpdatesByCriteria(
+ overlord, criteria);
assert history != null;
assert history.size() == 3;
@@ -1011,8 +1007,8 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
} else {
mybool.setErrorMessage(ThrowableUtil.getStackAsString(new IllegalArgumentException(
"Not a valid boolean")));
- response = new ConfigurationUpdateResponse(request.getConfigurationUpdateId(), request
- .getConfiguration(), new NullPointerException("This simulates a failed update"));
+ response = new ConfigurationUpdateResponse(request.getConfigurationUpdateId(),
+ request.getConfiguration(), new NullPointerException("This simulates a failed update"));
}
LookupUtil.getConfigurationManager().completeResourceConfigurationUpdate(response);
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentManagerBeanTest.java
index 6f75197..ea48c65 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentManagerBeanTest.java
@@ -28,7 +28,6 @@ import java.util.Set;
import javax.persistence.EntityManager;
import javax.persistence.Query;
-import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
@@ -146,23 +145,15 @@ public class ContentManagerBeanTest extends AbstractEJB3Test {
contentManager = LookupUtil.getContentManager();
subjectManager = LookupUtil.getSubjectManager();
- TestServerCommunicationsService agentServiceContainer = prepareForTestAgents();
- agentServiceContainer.contentService = contentAgentService;
-
populateResponseSteps();
}
- @AfterClass
- public void teardownAfterClass() throws Exception {
- unprepareForTestAgents();
- }
-
@BeforeMethod
public void setupBeforeMethod() throws Exception {
setupTestEnvironment();
}
- @AfterMethod
+ @AfterMethod(alwaysRun = true)
public void tearDownAfterMethod() throws Exception {
tearDownTestEnvironment();
}
@@ -316,8 +307,8 @@ public class ContentManagerBeanTest extends AbstractEJB3Test {
report.addDeployedPackage(package3);
// Package where entire package does not exist
- PackageDetailsKey key4 = new PackageDetailsKey("PackageX", "1.0.0", packageType4.getName(), architecture1
- .getName());
+ PackageDetailsKey key4 = new PackageDetailsKey("PackageX", "1.0.0", packageType4.getName(),
+ architecture1.getName());
ResourcePackageDetails package4 = new ResourcePackageDetails(key4);
// Fully populate this version to make sure the translation from details -> domain model works
@@ -1385,6 +1376,9 @@ public class ContentManagerBeanTest extends AbstractEJB3Test {
// Private --------------------------------------------
private void setupTestEnvironment() throws Exception {
+ TestServerCommunicationsService agentServiceContainer = prepareForTestAgents();
+ agentServiceContainer.contentService = contentAgentService;
+
getTransactionManager().begin();
EntityManager em = getEntityManager();
@@ -1567,6 +1561,7 @@ public class ContentManagerBeanTest extends AbstractEJB3Test {
}
} finally {
em.close();
+ unprepareForTestAgents();
}
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java
index 5a702ff..8c356f1 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java
@@ -29,8 +29,9 @@ import java.util.Properties;
import javax.management.MBeanServer;
import javax.persistence.Query;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
+import org.testng.annotations.AfterGroups;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import org.rhq.core.clientapi.server.core.AgentRegistrationException;
@@ -92,7 +93,7 @@ import org.rhq.enterprise.server.util.LookupUtil;
// J. testAttemptToChangeAgentName
// 1) register agent "newName" but with Z's host/port/token. In effect, this is trying to change the agent's name. (REJECT - you are not allowed to rename agents)
-@Test
+@Test(groups = { "core.agent-registration" })
public class CoreServerServiceImplTest extends AbstractEJB3Test {
private static final String TEST_AGENT_NAME_PREFIX = "CoreServerServiceImplTest.Agent";
private static final String RHQ_SERVER_NAME_PROPERTY = "rhq.server.high-availability.name";
@@ -109,6 +110,80 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
private static final int B_PORT = 22222;
private static final String B_HOST = "hostB";
+ @AfterGroups(groups = { "core.agent-registration" })
+ public void afterGroup() throws Exception {
+ // clean up any agents we might have created
+ Query q = getEntityManager().createQuery(
+ "select a from Agent a where name like '" + TEST_AGENT_NAME_PREFIX + "%'");
+ List<Agent> doomed = (List<Agent>) q.getResultList();
+ for (Agent deleteMe : doomed) {
+ LookupUtil.getAgentManager().deleteAgent(deleteMe);
+ }
+ }
+
+ @BeforeMethod
+ public void prepare() throws Exception {
+ // mock the name of our server via the sysprop (in production, this is normally set in rhq-server.properties)
+ oldServerNamePropertyValue = System.getProperty(RHQ_SERVER_NAME_PROPERTY);
+ String newServerNamePropertyValue = "CoreServerServiceImplTest.Server";
+ System.setProperty(RHQ_SERVER_NAME_PROPERTY, newServerNamePropertyValue);
+
+ // mock up our core server MBean that provides information about where the jboss home dir is
+ MBeanServer mbs = getJBossMBeanServer();
+ DummyCoreServer mbean = new DummyCoreServer();
+ mbs.registerMBean(mbean, CoreServerMBean.OBJECT_NAME);
+
+ // in order to register, we need to mock out the agent version file used by the server
+ // to determine the agent version it supports.
+ agentVersion = new AgentVersion("1.2.3", "12345");
+ File agentVersionFile = new File(mbean.getJBossServerHomeDir(),
+ "deploy/rhq.ear/rhq-downloads/rhq-agent/rhq-server-agent-versions.properties");
+ agentVersionFile.getParentFile().mkdirs();
+ agentVersionFile.delete();
+ Properties agentVersionProps = new Properties();
+ agentVersionProps.put("rhq-agent.latest.version", agentVersion.getVersion());
+ agentVersionProps.put("rhq-agent.latest.build-number", agentVersion.getBuild());
+ FileOutputStream fos = new FileOutputStream(agentVersionFile);
+ try {
+ agentVersionProps.store(fos, "This file was created by " + CoreServerServiceImplTest.class.getName());
+ } finally {
+ fos.close();
+ }
+
+ // this mocks out the endpoint ping - the server will think the agent that is registering is up and pingable
+ prepareForTestAgents();
+
+ // mock our server
+ server = new Server();
+ server.setName(newServerNamePropertyValue);
+ server.setAddress("CoreServerServiceImplTest.localhost");
+ server.setPort(12345);
+ server.setSecurePort(12346);
+ server.setOperationMode(OperationMode.NORMAL);
+ int serverId = LookupUtil.getServerManager().create(server);
+ server.setId(serverId);
+ }
+
+ @AfterMethod
+ public void unprepare() throws Exception {
+
+ // cleanup our test server
+ LookupUtil.getCloudManager().updateServerMode(new Integer[] { server.getId() }, OperationMode.DOWN);
+ LookupUtil.getCloudManager().deleteServer(server.getId());
+
+ // shutdown our mock mbean server
+ MBeanServer mbs = getJBossMBeanServer();
+ mbs.unregisterMBean(CoreServerMBean.OBJECT_NAME);
+
+ unprepareForTestAgents();
+
+ // in case this was set before our tests, put it back the way it was
+ if (oldServerNamePropertyValue != null) {
+ System.setProperty(RHQ_SERVER_NAME_PROPERTY, oldServerNamePropertyValue);
+ }
+ }
+
+ @Test
public void testNewAgentRegistrationWithOldToken() throws Exception {
// this tests the case where someone purged an agent from the DB, but then
// changed their mind and want to re-run that agent and re-register it again.
@@ -125,6 +200,7 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
LookupUtil.getAgentManager().deleteAgent(agent);
}
+ @Test
public void testChangeAddressPort() throws Exception {
CoreServerServiceImpl service = new CoreServerServiceImpl();
AgentRegistrationRequest request;
@@ -379,75 +455,6 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
}
}
- @BeforeClass
- public void prepare() throws Exception {
- // mock the name of our server via the sysprop (in production, this is normally set in rhq-server.properties)
- oldServerNamePropertyValue = System.getProperty(RHQ_SERVER_NAME_PROPERTY);
- String newServerNamePropertyValue = "CoreServerServiceImplTest.Server";
- System.setProperty(RHQ_SERVER_NAME_PROPERTY, newServerNamePropertyValue);
-
- // mock up our core server MBean that provides information about where the jboss home dir is
- MBeanServer mbs = getJBossMBeanServer();
- DummyCoreServer mbean = new DummyCoreServer();
- mbs.registerMBean(mbean, CoreServerMBean.OBJECT_NAME);
-
- // in order to register, we need to mock out the agent version file used by the server
- // to determine the agent version it supports.
- agentVersion = new AgentVersion("1.2.3", "12345");
- File agentVersionFile = new File(mbean.getJBossServerHomeDir(),
- "deploy/rhq.ear/rhq-downloads/rhq-agent/rhq-server-agent-versions.properties");
- agentVersionFile.getParentFile().mkdirs();
- agentVersionFile.delete();
- Properties agentVersionProps = new Properties();
- agentVersionProps.put("rhq-agent.latest.version", agentVersion.getVersion());
- agentVersionProps.put("rhq-agent.latest.build-number", agentVersion.getBuild());
- FileOutputStream fos = new FileOutputStream(agentVersionFile);
- try {
- agentVersionProps.store(fos, "This file was created by " + CoreServerServiceImplTest.class.getName());
- } finally {
- fos.close();
- }
-
- // this mocks out the endpoint ping - the server will think the agent that is registering is up and pingable
- prepareForTestAgents();
-
- // mock our server
- server = new Server();
- server.setName(newServerNamePropertyValue);
- server.setAddress("CoreServerServiceImplTest.localhost");
- server.setPort(12345);
- server.setSecurePort(12346);
- server.setOperationMode(OperationMode.NORMAL);
- int serverId = LookupUtil.getServerManager().create(server);
- server.setId(serverId);
- }
-
- @AfterClass
- public void unprepare() throws Exception {
- // clean up any agents we might have created
- Query q = getEntityManager().createQuery(
- "select a from Agent a where name like '" + TEST_AGENT_NAME_PREFIX + "%'");
- List<Agent> doomed = (List<Agent>) q.getResultList();
- for (Agent deleteMe : doomed) {
- LookupUtil.getAgentManager().deleteAgent(deleteMe);
- }
-
- // cleanup our test server
- LookupUtil.getCloudManager().updateServerMode(new Integer[] { server.getId() }, OperationMode.DOWN);
- LookupUtil.getCloudManager().deleteServer(server.getId());
-
- // shutdown our mock mbean server
- MBeanServer mbs = getJBossMBeanServer();
- mbs.unregisterMBean(CoreServerMBean.OBJECT_NAME);
-
- unprepareForTestAgents();
-
- // in case this was set before our tests, put it back the way it was
- if (oldServerNamePropertyValue != null) {
- System.setProperty(RHQ_SERVER_NAME_PROPERTY, oldServerNamePropertyValue);
- }
- }
-
interface DummyCoreServerMBean extends CoreServerMBean {
};
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java
index 082bd6b..630b778 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java
@@ -39,7 +39,7 @@ import org.dbunit.ext.oracle.Oracle10DataTypeFactory;
import org.dbunit.ext.oracle.OracleDataTypeFactory;
import org.dbunit.ext.postgresql.PostgresqlDataTypeFactory;
import org.dbunit.operation.DatabaseOperation;
-import org.testng.annotations.AfterClass;
+import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -74,20 +74,15 @@ public class DiscoveryBossBeanTest extends AbstractEJB3Test {
@BeforeClass
public void beforeClass() throws Exception {
discoveryBoss = LookupUtil.getDiscoveryBoss();
+ }
+ @BeforeMethod
+ public void setupTestData() throws Exception {
dummyJBossMBeanServer = MBeanServerFactory.createMBeanServer("jboss");
MBeanServerLocator.setJBoss(dummyJBossMBeanServer);
dummyJBossMBeanServer.registerMBean(new ServerCommunicationsService(),
- ServerCommunicationsServiceMBean.OBJECT_NAME);
- }
-
- @AfterClass
- public void afterClass() {
- MBeanServerFactory.releaseMBeanServer(dummyJBossMBeanServer);
- }
+ ServerCommunicationsServiceMBean.OBJECT_NAME);
- @BeforeMethod
- public void setupTestData() throws Exception {
initDB();
platformType = getEntityManager().find(ResourceType.class, 1);
serverType = getEntityManager().find(ResourceType.class, 2);
@@ -96,6 +91,11 @@ public class DiscoveryBossBeanTest extends AbstractEJB3Test {
agent = getEntityManager().find(Agent.class, 1);
}
+ @AfterMethod(alwaysRun = true)
+ public void afterMethod() throws Exception {
+ MBeanServerFactory.releaseMBeanServer(dummyJBossMBeanServer);
+ }
+
@Test(groups = "integration.ejb3")
public void testBasicInventoryReport() throws Exception {
InventoryReport inventoryReport = new InventoryReport(agent);
@@ -211,7 +211,7 @@ public class DiscoveryBossBeanTest extends AbstractEJB3Test {
IDataSet getDataSet() throws Exception {
FlatXmlProducer xmlProducer = new FlatXmlProducer(new InputSource(getClass().getResourceAsStream(
- getDataSetFile())));
+ getDataSetFile())));
xmlProducer.setColumnSensing(true);
return new FlatXmlDataSet(xmlProducer);
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/drift/DriftManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/drift/DriftManagerBeanTest.java
index 5dabd97..e06329b 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/drift/DriftManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/drift/DriftManagerBeanTest.java
@@ -46,7 +46,6 @@ import org.rhq.core.clientapi.server.drift.DriftServerService;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.common.EntityContext;
import org.rhq.core.domain.configuration.Configuration;
-import org.rhq.core.domain.criteria.GenericDriftChangeSetCriteria;
import org.rhq.core.domain.criteria.JPADriftChangeSetCriteria;
import org.rhq.core.domain.criteria.ResourceCriteria;
import org.rhq.core.domain.drift.Drift;
@@ -109,19 +108,18 @@ public class DriftManagerBeanTest extends AbstractEJB3Test {
overlord = LookupUtil.getSubjectManager().getOverlord();
driftServerService = new DriftServerServiceImpl();
-
- TestServerCommunicationsService agentServiceContainer = prepareForTestAgents();
- agentServiceContainer.driftService = new TestDefService();
}
- @AfterClass
+ @AfterClass(alwaysRun = true)
public void afterClass() {
driftServerService = null;
- unprepareForTestAgents();
}
@BeforeMethod
public void beforeMethod() throws Exception {
+ TestServerCommunicationsService agentServiceContainer = prepareForTestAgents();
+ agentServiceContainer.driftService = new TestDefService();
+
prepareScheduler();
deleteDriftFiles();
@@ -134,6 +132,7 @@ public class DriftManagerBeanTest extends AbstractEJB3Test {
try {
deleteNewResource(newResource);
} finally {
+ unprepareForTestAgents();
unprepareScheduler();
}
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
index f068ead..bce9bad 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
@@ -35,8 +35,8 @@ import org.testng.annotations.Test;
import org.rhq.core.clientapi.agent.PluginContainerException;
import org.rhq.core.clientapi.agent.operation.CancelResults;
-import org.rhq.core.clientapi.agent.operation.OperationAgentService;
import org.rhq.core.clientapi.agent.operation.CancelResults.InterruptedState;
+import org.rhq.core.clientapi.agent.operation.OperationAgentService;
import org.rhq.core.clientapi.server.operation.OperationServerService;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.configuration.Configuration;
@@ -108,19 +108,18 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
overlord = LookupUtil.getSubjectManager().getOverlord();
operationServerService = new OperationServerServiceImpl();
-
- TestServerCommunicationsService agentServiceContainer = prepareForTestAgents();
- agentServiceContainer.operationService = new TestConfigService();
}
- @AfterClass
+ @AfterClass(alwaysRun = true)
public void afterClass() {
operationServerService = null;
- unprepareForTestAgents();
}
@BeforeMethod
public void beforeMethod() throws Exception {
+ TestServerCommunicationsService agentServiceContainer = prepareForTestAgents();
+ agentServiceContainer.operationService = new TestConfigService();
+
prepareScheduler();
simulatedOperation_Sleep = 500L;
@@ -137,6 +136,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
try {
deleteNewResource(newResource);
} finally {
+ unprepareForTestAgents();
unprepareScheduler();
}
}
@@ -226,8 +226,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
.getGroup().getId());
PageList<GroupOperationHistory> results;
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results.size() == 0;
// should be no resource histories that belong to it
@@ -290,8 +290,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert list.size() == 0;
PageList<GroupOperationHistory> results;
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results.size() == 0;
// should be no resource histories that belong to it
@@ -336,14 +336,14 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
Thread.sleep(9000L); // wait for it to be triggered and finish
PageList<GroupOperationHistory> results;
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results.size() == 1 : "Expected 1 result, but got " + results.size();
operationManager.deleteOperationHistory(overlord, results.get(0).getId(), false);
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results.size() == 0;
// purging group history purges all resource histories that belong to it
@@ -375,8 +375,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// wait for it to be triggered so we get a history item
for (int i = 0; i < 5; i++) {
Thread.sleep(1000L);
- results = operationManager.findPendingGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findPendingGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
if ((results != null) && (results.size() > 0)) {
break; // operation was triggered - got the history item
}
@@ -406,8 +406,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// cancel the group history - which cancels all the resource histories
operationManager.cancelOperationHistory(overlord, history.getId(), false);
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 1;
assert results.get(0).getStatus() == OperationRequestStatus.CANCELED : results.get(0);
@@ -426,8 +426,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// purge the group history
operationManager.deleteOperationHistory(overlord, history.getId(), false);
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 0; // none left, we purged the only group history there was
@@ -460,8 +460,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// wait for it to be triggered so we get a history item
for (int i = 0; i < 5; i++) {
Thread.sleep(1000L);
- results = operationManager.findPendingGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findPendingGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
if ((results != null) && (results.size() > 0)) {
break; // operation was triggered - got the history item
}
@@ -474,8 +474,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// get the one resource history from the group
PageList<ResourceOperationHistory> results2;
- results2 = operationManager.findPendingResourceOperationHistories(overlord, newResource.getId(), PageControl
- .getUnlimitedInstance());
+ results2 = operationManager.findPendingResourceOperationHistories(overlord, newResource.getId(),
+ PageControl.getUnlimitedInstance());
assert results2.size() == 1 : "Should have had 1 resource history result: " + results2;
ResourceOperationHistory rHistory = results2.get(0);
@@ -485,28 +485,28 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// this doesn't actually cancel the FINISHED resource operation. This simulates the fact that
// the agent couldn't cancel the resource op since it already finished.
operationManager.cancelOperationHistory(overlord, history.getId(), false);
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results.size() == 1;
assert results.get(0).getStatus() == OperationRequestStatus.CANCELED : results.get(0);
- results = operationManager.findPendingGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findPendingGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results.size() == 0;
// still pending - our operation wasn't really canceled - waiting for the agent to tell us its finished
results2 = operationManager.findCompletedResourceOperationHistories(overlord, newResource.getId(), null, null,
PageControl.getUnlimitedInstance());
assert results2.size() == 0;
- results2 = operationManager.findPendingResourceOperationHistories(overlord, newResource.getId(), PageControl
- .getUnlimitedInstance());
+ results2 = operationManager.findPendingResourceOperationHistories(overlord, newResource.getId(),
+ PageControl.getUnlimitedInstance());
assert results2.size() == 1;
assert results2.get(0).getStatus() == OperationRequestStatus.INPROGRESS : results2.get(0);
// purge the group history (note we tell it to even purge those in progress)
operationManager.deleteOperationHistory(overlord, history.getId(), true);
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 0; // none left, we purged the only group history there was
@@ -536,8 +536,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
Thread.sleep(4000L); // wait for it to finish, should be fast
PageList<GroupOperationHistory> results;
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 1;
GroupOperationHistory history = results.get(0);
@@ -573,8 +573,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert rHistory.getSubjectName().equals(overlord.getName()) : rHistory;
operationManager.deleteOperationHistory(overlord, history.getId(), false);
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 0; // none left, we purged the only group history there was
@@ -607,8 +607,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
Thread.sleep(8000L); // wait for it to finish, should be fast
PageList<GroupOperationHistory> results;
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
// the group job executed twice
assert results != null;
@@ -663,8 +663,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
operationManager.deleteOperationHistory(overlord, history0.getId(), false);
operationManager.deleteOperationHistory(overlord, history1.getId(), false);
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 0 : results; // none left, we purged the two group histories
@@ -710,8 +710,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
Thread.sleep(4000L); // wait for it to finish, should be fast
PageList<GroupOperationHistory> results;
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 1;
GroupOperationHistory history = results.get(0);
@@ -742,8 +742,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert rHistory.getSubjectName().equals(overlord.getName()) : rHistory;
// parameters and results are lazily loaded in the paginated queries, but are eagerly individually
- rHistory = (ResourceOperationHistory) operationManager.getOperationHistoryByHistoryId(overlord, rHistory
- .getId());
+ rHistory = (ResourceOperationHistory) operationManager.getOperationHistoryByHistoryId(overlord,
+ rHistory.getId());
assert rHistory.getResults() != null;
assert rHistory.getResults().getSimple("param1echo") != null;
assert rHistory.getResults().getSimple("param1echo").getStringValue().equals("group-test");
@@ -751,8 +751,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert rHistory.getParameters().getId() != history.getParameters().getId() : "params should be copies - not shared";
operationManager.deleteOperationHistory(overlord, history.getId(), false);
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 0; // none left, we purged the only group history there was
@@ -781,8 +781,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
Thread.sleep(4000L); // wait for it to finish, should be fast
PageList<GroupOperationHistory> results;
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 1 : "Did not get 1 result back, but " + results.size();
GroupOperationHistory history = results.get(0);
@@ -810,8 +810,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert rHistory.getSubjectName().equals(overlord.getName()) : rHistory;
operationManager.deleteOperationHistory(overlord, history.getId(), false);
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 0; // none left, we purged the only group history there was
@@ -840,8 +840,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
Thread.sleep(4000L); // wait for it to finish, should be fast
PageList<GroupOperationHistory> results;
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 1;
GroupOperationHistory history = results.get(0);
@@ -869,8 +869,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert rHistory.getSubjectName().equals(overlord.getName()) : rHistory;
operationManager.deleteOperationHistory(overlord, history.getId(), false);
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 0; // none left, we purged the only group history there was
@@ -1174,8 +1174,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// wait for it to be triggered so we get a history item
for (int i = 0; i < 5; i++) {
Thread.sleep(1000L);
- results = operationManager.findPendingResourceOperationHistories(overlord, resource.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findPendingResourceOperationHistories(overlord, resource.getId(),
+ PageControl.getUnlimitedInstance());
if ((results != null) && (results.size() > 0)) {
break; // operation was triggered - got the history item
}
@@ -1233,8 +1233,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// wait for it to be triggered so we get a history item
for (int i = 0; i < 5; i++) {
Thread.sleep(1000L);
- results = operationManager.findPendingResourceOperationHistories(overlord, resource.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findPendingResourceOperationHistories(overlord, resource.getId(),
+ PageControl.getUnlimitedInstance());
if ((results != null) && (results.size() > 0)) {
break; // operation was triggered - got the history item
}
@@ -1254,8 +1254,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert results.size() == 0;
// still pending - our operation wasn't really canceled - waiting for the agent to tell us its finished
- results = operationManager.findPendingResourceOperationHistories(overlord, resource.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findPendingResourceOperationHistories(overlord, resource.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 1;
history = results.get(0);
@@ -1308,8 +1308,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert history.getSubjectName().equals(overlord.getName()) : history;
PageList<ResourceOperationLastCompletedComposite> list;
- list = operationManager.findRecentlyCompletedResourceOperations(overlord, null, PageControl
- .getUnlimitedInstance());
+ list = operationManager.findRecentlyCompletedResourceOperations(overlord, null,
+ PageControl.getUnlimitedInstance());
assert list.size() == 1;
assert list.get(0).getOperationHistoryId() == history.getId();
assert list.get(0).getResourceId() == resource.getId();
@@ -1322,8 +1322,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert results != null;
assert results.size() == 0;
- list = operationManager.findRecentlyCompletedResourceOperations(overlord, null, PageControl
- .getUnlimitedInstance());
+ list = operationManager.findRecentlyCompletedResourceOperations(overlord, null,
+ PageControl.getUnlimitedInstance());
assert list.size() == 0;
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncContentProviderTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncContentProviderTest.java
index d0beddc..dd72437 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncContentProviderTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncContentProviderTest.java
@@ -27,7 +27,6 @@ import java.util.List;
import java.util.Set;
import javax.persistence.EntityManager;
-import javax.transaction.Transaction;
import javax.transaction.TransactionManager;
import org.testng.annotations.AfterMethod;
@@ -121,58 +120,60 @@ public class ContentProviderManagerSyncContentProviderTest extends AbstractEJB3T
@AfterMethod
public void tearDownAfterMethod() throws Exception {
- // Transactional stuff
- TransactionManager tx = getTransactionManager();
- tx.begin();
- EntityManager entityManager = getEntityManager();
-
- RepoManagerLocal repoManager = LookupUtil.getRepoManagerLocal();
- SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
- Subject overlord = subjectManager.getOverlord();
-
- // Delete the repo relationships
- entityManager.createNamedQuery(RepoRepoRelationship.DELETE_BY_REPO_ID).setParameter("repoId", repoId)
- .executeUpdate();
-
- entityManager.createNamedQuery(RepoRelationship.DELETE_BY_RELATED_REPO_ID).setParameter("relatedRepoId",
- relatedRepoId).executeUpdate();
+ try {
+ // Transactional stuff
+ TransactionManager tx = getTransactionManager();
+ tx.begin();
+ EntityManager entityManager = getEntityManager();
- // Delete any repos that were created in this test
- for (Integer repoId : reposToDelete) {
- repoManager.deleteRepo(overlord, repoId);
- }
- reposToDelete.clear();
+ RepoManagerLocal repoManager = LookupUtil.getRepoManagerLocal();
+ SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
+ Subject overlord = subjectManager.getOverlord();
- // Delete any repo groups that were created in this test
- for (Integer repoGroupId : repoGroupsToDelete) {
- repoManager.deleteRepoGroup(overlord, repoGroupId);
+ // Delete the repo relationships
+ entityManager.createNamedQuery(RepoRepoRelationship.DELETE_BY_REPO_ID).setParameter("repoId", repoId)
+ .executeUpdate();
+
+ entityManager.createNamedQuery(RepoRelationship.DELETE_BY_RELATED_REPO_ID)
+ .setParameter("relatedRepoId", relatedRepoId).executeUpdate();
+
+ // Delete any repos that were created in this test
+ for (Integer repoId : reposToDelete) {
+ repoManager.deleteRepo(overlord, repoId);
+ }
+ reposToDelete.clear();
+
+ // Delete any repo groups that were created in this test
+ for (Integer repoGroupId : repoGroupsToDelete) {
+ repoManager.deleteRepoGroup(overlord, repoGroupId);
+ }
+ repoGroupsToDelete.clear();
+
+ // First disassociate packages from the content source
+ entityManager.createNamedQuery(PackageVersionContentSource.DELETE_BY_CONTENT_SOURCE_ID)
+ .setParameter("contentSourceId", syncSource.getId()).executeUpdate();
+
+ // Delete the existing repos
+ nonCandidateOnOtherSource = entityManager.find(Repo.class, nonCandidateOnOtherSource.getId());
+ entityManager.remove(nonCandidateOnOtherSource);
+
+ // Delete the source that was created
+ syncSource = entityManager.find(ContentSource.class, syncSource.getId());
+ entityManager.remove(syncSource);
+
+ nonSyncSource = entityManager.find(ContentSource.class, nonSyncSource.getId());
+ entityManager.remove(nonSyncSource);
+
+ // Delete the fake source type
+ testSourceType = entityManager.find(ContentSourceType.class, testSourceType.getId());
+ entityManager.remove(testSourceType);
+
+ tx.commit();
+ } finally {
+ // Plugin service teardown
+ unprepareServerPluginService();
+ unprepareScheduler();
}
- repoGroupsToDelete.clear();
-
- // First disassociate packages from the content source
- entityManager.createNamedQuery(PackageVersionContentSource.DELETE_BY_CONTENT_SOURCE_ID).setParameter(
- "contentSourceId", syncSource.getId()).executeUpdate();
-
- // Delete the existing repos
- nonCandidateOnOtherSource = entityManager.find(Repo.class, nonCandidateOnOtherSource.getId());
- entityManager.remove(nonCandidateOnOtherSource);
-
- // Delete the source that was created
- syncSource = entityManager.find(ContentSource.class, syncSource.getId());
- entityManager.remove(syncSource);
-
- nonSyncSource = entityManager.find(ContentSource.class, nonSyncSource.getId());
- entityManager.remove(nonSyncSource);
-
- // Delete the fake source type
- testSourceType = entityManager.find(ContentSourceType.class, testSourceType.getId());
- entityManager.remove(testSourceType);
-
- tx.commit();
-
- // Plugin service teardown
- unprepareServerPluginService();
- unprepareScheduler();
}
@Test
@@ -210,12 +211,13 @@ public class ContentProviderManagerSyncContentProviderTest extends AbstractEJB3T
previousRepo.addContentSource(syncSource);
repoManager.createRepo(overlord, previousRepo);
- // Test
- // --------------------------------------------
- // TestContentProviderManager providerManager = new TestContentProviderManager();
+ // Test
+ // --------------------------------------------
+ // TestContentProviderManager providerManager = new TestContentProviderManager();
pluginService.getContentProviderManager().testConnection(syncSource.getId());
- boolean completed = pluginService.getContentProviderManager().synchronizeContentProvider(syncSource.getId());
+ boolean completed = pluginService.getContentProviderManager()
+ .synchronizeContentProvider(syncSource.getId());
assert completed;
// Verify RepoGroups
@@ -303,7 +305,7 @@ public class ContentProviderManagerSyncContentProviderTest extends AbstractEJB3T
assert retrievedRepos.size() == 0;
getTransactionManager().commit();
- } catch(Throwable t) {
+ } catch (Throwable t) {
getTransactionManager().rollback();
}
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncRepoTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncRepoTest.java
index 22d65e2..65154bb 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncRepoTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncRepoTest.java
@@ -167,76 +167,79 @@ public class ContentProviderManagerSyncRepoTest extends AbstractEJB3Test {
@AfterMethod
public void tearDownAfterMethod() throws Exception {
+ try {
- TransactionManager tx = getTransactionManager();
- tx.begin();
- EntityManager entityManager = getEntityManager();
+ TransactionManager tx = getTransactionManager();
+ tx.begin();
+ EntityManager entityManager = getEntityManager();
- Query query;
+ Query query;
- ContentSourceManagerLocal contentSourceManagerLocal = LookupUtil.getContentSourceManager();
- RepoManagerLocal repoManager = LookupUtil.getRepoManagerLocal();
- DistributionManagerLocal distroManager = LookupUtil.getDistributionManagerLocal();
- SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
- Subject overlord = subjectManager.getOverlord();
+ ContentSourceManagerLocal contentSourceManagerLocal = LookupUtil.getContentSourceManager();
+ RepoManagerLocal repoManager = LookupUtil.getRepoManagerLocal();
+ DistributionManagerLocal distroManager = LookupUtil.getDistributionManagerLocal();
+ SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
+ Subject overlord = subjectManager.getOverlord();
- // Delete all distributions
- distroManager.deleteDistributionMappingsForRepo(overlord, repoToSync.getId());
+ // Delete all distributions
+ distroManager.deleteDistributionMappingsForRepo(overlord, repoToSync.getId());
- for (String distroLabel : TestContentProvider.DISTRIBUTIONS.keySet()) {
- Distribution distro = distroManager.getDistributionByLabel(distroLabel);
- if (distro != null) {
- // Delete the files
- query = entityManager.createNamedQuery(DistributionFile.DELETE_BY_DIST_ID);
- query.setParameter("distId", distro.getId());
- query.executeUpdate();
+ for (String distroLabel : TestContentProvider.DISTRIBUTIONS.keySet()) {
+ Distribution distro = distroManager.getDistributionByLabel(distroLabel);
+ if (distro != null) {
+ // Delete the files
+ query = entityManager.createNamedQuery(DistributionFile.DELETE_BY_DIST_ID);
+ query.setParameter("distId", distro.getId());
+ query.executeUpdate();
- // Delete the actual distro
- distroManager.deleteDistributionByDistId(overlord, distro.getId());
+ // Delete the actual distro
+ distroManager.deleteDistributionByDistId(overlord, distro.getId());
+ }
}
- }
- // Delete all package version <-> content source mappings
- for (ContentSource source : repoContentSources) {
- contentSourceManagerLocal.deleteContentSource(overlord, source.getId());
- }
- repoContentSources.clear();
+ // Delete all package version <-> content source mappings
+ for (ContentSource source : repoContentSources) {
+ contentSourceManagerLocal.deleteContentSource(overlord, source.getId());
+ }
+ repoContentSources.clear();
- // Delete the repo
- repoManager.deleteRepo(overlord, repoToSync.getId());
+ // Delete the repo
+ repoManager.deleteRepo(overlord, repoToSync.getId());
- // Delete any packages that were created
- for (ContentProviderPackageDetails details : TestContentProvider.PACKAGES.values()) {
- String packageName = details.getContentProviderPackageDetailsKey().getName();
+ // Delete any packages that were created
+ for (ContentProviderPackageDetails details : TestContentProvider.PACKAGES.values()) {
+ String packageName = details.getContentProviderPackageDetailsKey().getName();
- query = entityManager.createNamedQuery(Package.QUERY_FIND_BY_NAME_PKG_TYPE_ID);
- query.setParameter("name", packageName);
- query.setParameter("packageTypeId", packageType.getId());
+ query = entityManager.createNamedQuery(Package.QUERY_FIND_BY_NAME_PKG_TYPE_ID);
+ query.setParameter("name", packageName);
+ query.setParameter("packageTypeId", packageType.getId());
- Package p = (Package) query.getSingleResult();
- entityManager.remove(p);
- }
+ Package p = (Package) query.getSingleResult();
+ entityManager.remove(p);
+ }
- // Delete the package type
- packageType = entityManager.find(PackageType.class, packageType.getId());
- entityManager.remove(packageType);
+ // Delete the package type
+ packageType = entityManager.find(PackageType.class, packageType.getId());
+ entityManager.remove(packageType);
- resourceType = entityManager.find(ResourceType.class, resourceType.getId());
- entityManager.remove(resourceType);
+ resourceType = entityManager.find(ResourceType.class, resourceType.getId());
+ entityManager.remove(resourceType);
- // Delete the content source type
- contentSourceType = entityManager.find(ContentSourceType.class, contentSourceType.getId());
- entityManager.remove(contentSourceType);
+ // Delete the content source type
+ contentSourceType = entityManager.find(ContentSourceType.class, contentSourceType.getId());
+ entityManager.remove(contentSourceType);
- tx.commit();
+ tx.commit();
- // Cleanup providers between tests
- contentProvider1.reset();
- contentProvider2.reset();
+ // Cleanup providers between tests
+ contentProvider1.reset();
+ contentProvider2.reset();
- // Plugin service teardown
- unprepareServerPluginService();
- unprepareScheduler();
+ } finally {
+ // Plugin service teardown
+ unprepareServerPluginService();
+ unprepareScheduler();
+ }
}
@Test(enabled = TESTS_ENABLED)
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/group/test/LdapGroupManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/group/test/LdapGroupManagerBeanTest.java
index c4cfca5..78d23e8 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/group/test/LdapGroupManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/group/test/LdapGroupManagerBeanTest.java
@@ -25,8 +25,9 @@ import java.util.Properties;
import javax.persistence.Query;
-import org.testng.annotations.AfterClass;
+import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import org.rhq.core.domain.common.SystemConfiguration;
@@ -65,6 +66,7 @@ import org.rhq.test.TransactionCallback;
* @author loleary
*
*/
+@SuppressWarnings("deprecation")
public class LdapGroupManagerBeanTest extends AbstractEJB3Test {
/**
@@ -95,7 +97,7 @@ public class LdapGroupManagerBeanTest extends AbstractEJB3Test {
private LdapGroupManagerLocal ldapGroupManager = null;
private SystemManagerLocal systemManager = null;
private TestServerPluginService testServerPluginService = null;
-
+
// private Subject overlord = null;
@BeforeClass
@@ -104,12 +106,15 @@ public class LdapGroupManagerBeanTest extends AbstractEJB3Test {
// overlord = LookupUtil.getSubjectManager().getOverlord();
systemManager = LookupUtil.getSystemManager();
ldapGroupManager = LookupUtil.getLdapGroupManager();
+ }
+ @BeforeMethod
+ public void beforeMethod() throws Exception {
//we need this because the drift plugins are referenced from the system settings that we use in our tests
testServerPluginService = new TestServerPluginService();
prepareCustomServerPluginService(testServerPluginService);
testServerPluginService.startMasterPluginContainer();
-
+
// get our Maven properties for LDAP testing
java.net.URL url = LdapGroupManagerBeanTest.class.getClassLoader().getResource("test-ldap.properties");
Properties mvnProps = new Properties();
@@ -146,12 +151,11 @@ public class LdapGroupManagerBeanTest extends AbstractEJB3Test {
this.setLdapGroupMemberAttribute("member");
}
- @AfterClass
- public void tearDown() throws Exception {
+ @AfterMethod(alwaysRun = true)
+ public void afterMethod() throws Exception {
unprepareServerPluginService();
- testServerPluginService.stopMasterPluginContainer();
}
-
+
/**
* Test {@link LdapGroupManagerBean#findAvailableGroupsFor(String)} method
* using a user who does not exist in the test LDAP instance.
@@ -485,21 +489,21 @@ public class LdapGroupManagerBeanTest extends AbstractEJB3Test {
private void setLdapCtxFactory(final String name) throws Exception {
//this is a readonly system property that we are trying to override, so we
//need to be a little bit more persuasive...
- executeInTransaction(new TransactionCallback() {
+ executeInTransaction(new TransactionCallback() {
@Override
public void execute() throws Exception {
Query q = getEntityManager().createNamedQuery(SystemConfiguration.FIND_PROPERTY_BY_KEY);
q.setParameter("key", SystemSetting.LDAP_NAMING_FACTORY.getInternalName());
-
+
SystemConfiguration config = (SystemConfiguration) q.getSingleResult();
config.setPropertyValue(name);
-
+
getEntityManager().merge(config);
-
+
getEntityManager().flush();
}
});
-
+
//reload the system settings cache so that the new value is reflected there immediately
systemManager.loadSystemConfigurationCache();
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/ContentMetadataManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/ContentMetadataManagerBeanTest.java
index 07d320e..712606d 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/ContentMetadataManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/ContentMetadataManagerBeanTest.java
@@ -1,7 +1,7 @@
package org.rhq.enterprise.server.resource.metadata;
-import java.util.Arrays;
-import java.util.Collections;
+import static java.util.Arrays.asList;
+import static java.util.Collections.EMPTY_LIST;
import org.testng.annotations.Test;
@@ -10,62 +10,43 @@ import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
import org.rhq.core.domain.content.PackageType;
import org.rhq.core.domain.resource.ResourceType;
-import static java.util.Arrays.asList;
-import static java.util.Collections.EMPTY_LIST;
-
public class ContentMetadataManagerBeanTest extends MetadataBeanTest {
- @Test(groups = {"plugin.metadata", "Content.NewPlugin"})
+ @Test(groups = { "plugin.metadata", "Content.NewPlugin" })
public void registerContentPlugin() throws Exception {
createPlugin("content-test-plugin", "1.0", "plugin_v1.xml");
}
- @Test(groups = {"plugin.metadata", "Content.UpgradePlugin"}, dependsOnGroups = {"Content.NewPlugin"})
+ @Test(groups = { "plugin.metadata", "Content.UpgradePlugin" }, dependsOnGroups = { "Content.NewPlugin" })
public void upgradeContentPlugin() throws Exception {
createPlugin("content-test-plugin", "2.0", "plugin_v2.xml");
}
- @Test(groups = {"plugin.metadata", "Content.UpgradePlugin"}, dependsOnMethods = {"upgradeContentPlugin"})
+ @Test(groups = { "plugin.metadata", "Content.UpgradePlugin" }, dependsOnMethods = { "upgradeContentPlugin" })
public void addPackageTypes() throws Exception {
- assertResourceTypeAssociationEquals(
- "ContentServer1",
- "ContentMetadataManagerBeanTestPlugin",
- "packageTypes",
- asList("ContentServer1.Content.1", "ContentServer1.Content.2")
- );
- }
-
- @Test(groups = {"plugin.metadata", "Content.UpgradePlugin"}, dependsOnMethods = {"upgradeContentPlugin"})
+ assertResourceTypeAssociationEquals("ContentServer1", "ContentMetadataManagerBeanTestPlugin", "packageTypes",
+ asList("ContentServer1.Content.1", "ContentServer1.Content.2"));
+ }
+
+ @Test(groups = { "plugin.metadata", "Content.UpgradePlugin" }, dependsOnMethods = { "upgradeContentPlugin" })
public void deletePackageTypes() throws Exception {
- assertResourceTypeAssociationEquals(
- "ContentServer2",
- "ContentMetadataManagerBeanTestPlugin",
- "packageTypes",
- EMPTY_LIST
- );
+ assertResourceTypeAssociationEquals("ContentServer2", "ContentMetadataManagerBeanTestPlugin", "packageTypes",
+ EMPTY_LIST);
}
- @Test(groups = {"plugin.metadata", "Content.UpgradePlugin"}, dependsOnMethods = {"upgradeContentPlugin"})
+ @Test(groups = { "plugin.metadata", "Content.UpgradePlugin" }, dependsOnMethods = { "upgradeContentPlugin" })
public void deletePackageTypesThatExistsInOldResourceTypeButNotInNewResourceType() throws Exception {
- assertResourceTypeAssociationEquals(
- "ContentServer3",
- "ContentMetadataManagerBeanTestPlugin",
- "packageTypes",
- asList("ContentServer3.Content.2", "ContentServer3.Content.3")
- );
+ assertResourceTypeAssociationEquals("ContentServer3", "ContentMetadataManagerBeanTestPlugin", "packageTypes",
+ asList("ContentServer3.Content.2", "ContentServer3.Content.3"));
}
- @Test(groups = {"plugin.metadata", "Content.UpgradePlugin"}, dependsOnMethods = {"upgradeContentPlugin"})
+ @Test(groups = { "plugin.metadata", "Content.UpgradePlugin" }, dependsOnMethods = { "upgradeContentPlugin" })
public void addPackageThatAreAddedInNewResourceType() throws Exception {
- assertResourceTypeAssociationEquals(
- "ContentServer4",
- "ContentMetadataManagerBeanTestPlugin",
- "packageTypes",
- asList("ContentServer4.Content.1", "ContentServer4.Content.2")
- );
+ assertResourceTypeAssociationEquals("ContentServer4", "ContentMetadataManagerBeanTestPlugin", "packageTypes",
+ asList("ContentServer4.Content.1", "ContentServer4.Content.2"));
}
- @Test(groups = {"plugin.metadata", "Content.UpgradePlugin"}, dependsOnMethods = {"upgradeContentPlugin"})
+ @Test(groups = { "plugin.metadata", "Content.UpgradePlugin" }, dependsOnMethods = { "upgradeContentPlugin" })
public void addNewDeploymentConfigurationDefinition() throws Exception {
PackageType packageType = loadPackageType("ContentServer", "ContentMetadataManagerBeanTestPlugin",
"ContentServer.Content.1");
@@ -74,67 +55,49 @@ public class ContentMetadataManagerBeanTest extends MetadataBeanTest {
assertNotNull(
"Failed to create new deployment configuration definition for package type that previously did not have one",
- deploymentConfigDef
- );
- assertEquals(
- "Expected to find 1 property definition in new deployment configuration definition",
- 1,
- deploymentConfigDef.getPropertyDefinitions().size()
- );
- assertNotNull(
- "Expected to find 1 property definition, <version>, in new deployment configuration definition",
- deploymentConfigDef.get("version")
- );
+ deploymentConfigDef);
+ assertEquals("Expected to find 1 property definition in new deployment configuration definition", 1,
+ deploymentConfigDef.getPropertyDefinitions().size());
+ assertNotNull("Expected to find 1 property definition, <version>, in new deployment configuration definition",
+ deploymentConfigDef.get("version"));
}
- @Test(groups = {"plugin.metadata", "Content.UpgradePlugin"}, dependsOnMethods = {"upgradeContentPlugin"})
+ @Test(groups = { "plugin.metadata", "Content.UpgradePlugin" }, dependsOnMethods = { "upgradeContentPlugin" })
public void updateDeploymentConfigDefThatExistsInOldAndNewResourceType() throws Exception {
PackageType packageType = loadPackageType("ContentServer5", "ContentMetadataManagerBeanTestPlugin",
"ContentServer5.Content.1");
ConfigurationDefinition deploymentConfigDef = packageType.getDeploymentConfigurationDefinition();
assertNotNull("Failed to update deployment configuration definition for package type", deploymentConfigDef);
- assertEquals(
- "Expected to find 2 property definitions in updated deployment configuration definition",
- 2,
- deploymentConfigDef.getPropertyDefinitions().size()
- );
- assertNotNull(
- "Expected existing property definition to be retained across update",
- deploymentConfigDef.get("x")
- );
- assertNotNull(
- "Expected new property definition to be added during update",
- deploymentConfigDef.get("y")
- );
- }
+ assertEquals("Expected to find 2 property definitions in updated deployment configuration definition", 2,
+ deploymentConfigDef.getPropertyDefinitions().size());
+ assertNotNull("Expected existing property definition to be retained across update",
+ deploymentConfigDef.get("x"));
+ assertNotNull("Expected new property definition to be added during update", deploymentConfigDef.get("y"));
+ }
- @Test(groups = {"plugin.metadata", "Content.UpgradePlugin"}, dependsOnMethods = {"upgradeContentPlugin"})
+ @Test(groups = { "plugin.metadata", "Content.UpgradePlugin" }, dependsOnMethods = { "upgradeContentPlugin" })
public void deleteDeploymentConfigDefThatIsRemovedInNewResourceType() {
PackageType packageType = loadPackageType("ContentServer5", "ContentMetadataManagerBeanTestPlugin",
"ContentServer5.Content.2");
assertNull(
"Expected deployment configuration definition to be removed since it was removed from new resource type",
- packageType.getDeploymentConfigurationDefinition()
- );
+ packageType.getDeploymentConfigurationDefinition());
}
- @Test(groups = {"plugin.metadata", "Content.UpgradePlugin"}, dependsOnMethods = {"upgradeContentPlugin"})
+ @Test(groups = { "plugin.metadata", "Content.UpgradePlugin" }, dependsOnMethods = { "upgradeContentPlugin" })
public void updateBundleType() {
ResourceType resourceType = loadResourceTypeWithBundleType("ContentServer7",
"ContentMetadataManagerBeanTestPlugin");
BundleType bundleType = resourceType.getBundleType();
assertNotNull("Failed to upgrade bundle type", bundleType);
- assertEquals(
- "Failed to upgrade bundle type correctly. The bundle type name is wrong",
- "ContentServer.Bundle.2",
- bundleType.getName()
- );
+ assertEquals("Failed to upgrade bundle type correctly. The bundle type name is wrong",
+ "ContentServer.Bundle.2", bundleType.getName());
}
- @Test(groups = {"plugin.metadata", "Content.UpgradePlugin"}, dependsOnMethods = {"upgradeContentPlugin"})
+ @Test(groups = { "plugin.metadata", "Content.UpgradePlugin" }, dependsOnMethods = { "upgradeContentPlugin" })
public void addBundleTypeThatOnlyExistsInNewResourceType() {
ResourceType resourceType = loadResourceTypeWithBundleType("ContentServer6",
"ContentMetadataManagerBeanTestPlugin");
@@ -146,23 +109,19 @@ public class ContentMetadataManagerBeanTest extends MetadataBeanTest {
}
PackageType loadPackageType(String resourceType, String plugin, String packageType) {
- return (PackageType) getEntityManager().createQuery(
- "from PackageType p left join fetch p.deploymentConfigurationDefinition " +
- "where p.name = :packageType and " +
- "p.resourceType.name = :resourceType and " +
- "p.resourceType.plugin = :plugin")
- .setParameter("packageType", packageType)
- .setParameter("plugin", plugin)
- .setParameter("resourceType", resourceType)
- .getSingleResult();
+ return (PackageType) getEntityManager()
+ .createQuery(
+ "from PackageType p left join fetch p.deploymentConfigurationDefinition "
+ + "where p.name = :packageType and " + "p.resourceType.name = :resourceType and "
+ + "p.resourceType.plugin = :plugin").setParameter("packageType", packageType)
+ .setParameter("plugin", plugin).setParameter("resourceType", resourceType).getSingleResult();
}
ResourceType loadResourceTypeWithBundleType(String resourceType, String plugin) {
- return (ResourceType) getEntityManager().createQuery(
- "from ResourceType t left join fetch t.bundleType where t.name = :resourceType and t.plugin = :plugin")
- .setParameter("resourceType", resourceType)
- .setParameter("plugin", plugin)
- .getSingleResult();
- }
+ return (ResourceType) getEntityManager()
+ .createQuery(
+ "from ResourceType t left join fetch t.bundleType where t.name = :resourceType and t.plugin = :plugin")
+ .setParameter("resourceType", resourceType).setParameter("plugin", plugin).getSingleResult();
+ }
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/EventMetadataManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/EventMetadataManagerBeanTest.java
index a8bb5e4..99e1e22 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/EventMetadataManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/EventMetadataManagerBeanTest.java
@@ -1,33 +1,26 @@
package org.rhq.enterprise.server.resource.metadata;
-import java.util.Arrays;
-import java.util.Collections;
+import static java.util.Arrays.asList;
+import static java.util.Collections.EMPTY_LIST;
import org.testng.annotations.Test;
import org.rhq.core.domain.event.EventDefinition;
-import static java.util.Arrays.asList;
-import static java.util.Collections.EMPTY_LIST;
-
public class EventMetadataManagerBeanTest extends MetadataBeanTest {
- @Test(groups = {"plugin.metadata", "Events.NewPlugin"})
+ @Test(groups = { "plugin.metadata", "Events.NewPlugin" })
public void registerEventsPlugin() throws Exception {
createPlugin("event-test-plugin", "1.0", "plugin_v1.xml");
}
- @Test(groups = {"plugin.metadata", "Events.NewPlugin"}, dependsOnMethods = {"registerEventsPlugin"})
+ @Test(groups = { "plugin.metadata", "Events.NewPlugin" }, dependsOnMethods = { "registerEventsPlugin" })
public void persistNewEventDefs() throws Exception {
- assertResourceTypeAssociationEquals(
- "EventServer1",
- "EventMetadataManagerBeanTestPlugin",
- "eventDefinitions",
- asList("event1", "event2")
- );
+ assertResourceTypeAssociationEquals("EventServer1", "EventMetadataManagerBeanTestPlugin", "eventDefinitions",
+ asList("event1", "event2"));
}
- @Test(groups = {"plugin.metadata", "Events.NewPlugin"}, dependsOnMethods = {"persistNewEventDefs"})
+ @Test(groups = { "plugin.metadata", "Events.NewPlugin" }, dependsOnMethods = { "persistNewEventDefs" })
public void persistNewEventDefProperties() {
EventDefinition eventDef = loadEventDef("event1", "EventServer1");
@@ -35,60 +28,42 @@ public class EventMetadataManagerBeanTest extends MetadataBeanTest {
assertEquals("Failed to set EventDefinition.description", "Event 1", eventDef.getDescription());
}
- @Test(groups = {"plugin.metadata", "Events.UpgradePlugin"}, dependsOnGroups = {"Events.NewPlugin"})
+ @Test(groups = { "plugin.metadata", "Events.UpgradePlugin" }, dependsOnGroups = { "Events.NewPlugin" })
public void upgradeEventsPlugin() throws Exception {
createPlugin("event-test-plugin", "2.0", "plugin_v2.xml");
}
- @Test(groups = {"plugin.metadata", "Events.UpgradePlugin"}, dependsOnMethods = {"upgradeEventsPlugin"})
+ @Test(groups = { "plugin.metadata", "Events.UpgradePlugin" }, dependsOnMethods = { "upgradeEventsPlugin" })
public void retainEventDefsOfTypeThatIsNotChangedDuringUpgrade() throws Exception {
- assertResourceTypeAssociationEquals(
- "EventServer1",
- "EventMetadataManagerBeanTestPlugin",
- "eventDefinitions",
- asList("event1", "event2")
- );
+ assertResourceTypeAssociationEquals("EventServer1", "EventMetadataManagerBeanTestPlugin", "eventDefinitions",
+ asList("event1", "event2"));
}
- @Test(groups = {"plugin.metadata", "Events.UpgradePlugin"}, dependsOnMethods = {"upgradeEventsPlugin"})
+ @Test(groups = { "plugin.metadata", "Events.UpgradePlugin" }, dependsOnMethods = { "upgradeEventsPlugin" })
public void addNewEventDefs() throws Exception {
- assertResourceTypeAssociationEquals(
- "EventServer2",
- "EventMetadataManagerBeanTestPlugin",
- "eventDefinitions",
- asList("event1", "event2")
- );
+ assertResourceTypeAssociationEquals("EventServer2", "EventMetadataManagerBeanTestPlugin", "eventDefinitions",
+ asList("event1", "event2"));
}
- @Test(groups = {"plugin.metadata", "Events.UpgradePlugin"}, dependsOnMethods = {"upgradeEventsPlugin"})
+ @Test(groups = { "plugin.metadata", "Events.UpgradePlugin" }, dependsOnMethods = { "upgradeEventsPlugin" })
public void deleteEventDefsThatHaveBeenRemovedInUpgradedType() throws Exception {
- assertResourceTypeAssociationEquals(
- "EventServer3",
- "EventMetadataManagerBeanTestPlugin",
- "eventDefinitions",
- EMPTY_LIST
- );
- }
-
- @Test(groups = {"plugin.metadata", "Events.UpgradePlugin"}, dependsOnMethods = {"upgradeEventsPlugin"})
+ assertResourceTypeAssociationEquals("EventServer3", "EventMetadataManagerBeanTestPlugin", "eventDefinitions",
+ EMPTY_LIST);
+ }
+
+ @Test(groups = { "plugin.metadata", "Events.UpgradePlugin" }, dependsOnMethods = { "upgradeEventsPlugin" })
public void updateExistingEventDefs() throws Exception {
- assertResourceTypeAssociationEquals(
- "EventServer4",
- "EventMetadataManagerBeanTestPlugin",
- "eventDefinitions",
- asList("event1", "event3")
- );
+ assertResourceTypeAssociationEquals("EventServer4", "EventMetadataManagerBeanTestPlugin", "eventDefinitions",
+ asList("event1", "event3"));
EventDefinition eventDef = loadEventDef("event1", "EventServer4");
assertEquals("The description property should have been updated", "EVENT ONE", eventDef.getDescription());
}
EventDefinition loadEventDef(String name, String resourceType) {
- return (EventDefinition) getEntityManager().createQuery(
- "from EventDefinition e where e.name = :name and e.resourceType.name = :resourceType")
- .setParameter("name", name)
- .setParameter("resourceType", resourceType)
- .getSingleResult();
+ return (EventDefinition) getEntityManager()
+ .createQuery("from EventDefinition e where e.name = :name and e.resourceType.name = :resourceType")
+ .setParameter("name", name).setParameter("resourceType", resourceType).getSingleResult();
}
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataBeanTest.java
index 7ffacbf..fac9251 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataBeanTest.java
@@ -1,5 +1,7 @@
package org.rhq.enterprise.server.resource.metadata;
+import static org.rhq.core.clientapi.shared.PluginDescriptorUtil.loadPluginDescriptor;
+
import java.io.File;
import java.net.URL;
import java.sql.Connection;
@@ -23,7 +25,9 @@ import org.dbunit.dataset.xml.FlatXmlDataSet;
import org.dbunit.dataset.xml.FlatXmlProducer;
import org.dbunit.operation.DatabaseOperation;
import org.testng.annotations.AfterGroups;
+import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeGroups;
+import org.testng.annotations.BeforeMethod;
import org.xml.sax.InputSource;
import org.rhq.core.clientapi.descriptor.plugin.PluginDescriptor;
@@ -37,8 +41,6 @@ import org.rhq.enterprise.server.resource.ResourceTypeManagerLocal;
import org.rhq.enterprise.server.test.AbstractEJB3Test;
import org.rhq.enterprise.server.util.LookupUtil;
-import static org.rhq.core.clientapi.shared.PluginDescriptorUtil.loadPluginDescriptor;
-
public class MetadataBeanTest extends AbstractEJB3Test {
private static List<String> plugins = new ArrayList<String>();
@@ -49,9 +51,25 @@ public class MetadataBeanTest extends AbstractEJB3Test {
}
@BeforeGroups(groups = { "plugin.metadata" }, dependsOnGroups = { "integration.ejb3" })
- public void startMBeanServer() throws Exception {
+ public void beforeGroups() throws Exception {
setupDB();
+ }
+ /**
+ * Need to delete rows from RHQ_PLUGINS because subsequent tests in server/jar would otherwise fail. Some tests look
+ * at what plugins are in the database, and then look for corresponding plugin files on the file system. MetadataTest
+ * however removes the generated plugin files during each test run.
+ */
+ @AfterGroups(alwaysRun = true, groups = { "plugin.metadata" })
+ void afterGroups() throws Exception {
+ getTransactionManager().begin();
+ getEntityManager().createQuery("delete from Plugin p where p.name in (:plugins)")
+ .setParameter("plugins", plugins).executeUpdate();
+ getTransactionManager().commit();
+ }
+
+ @BeforeMethod(groups = { "plugin.metadata" }, dependsOnGroups = { "integration.ejb3" })
+ public void beforeMethod() throws Exception {
TestBundleServerPluginService bundleService = new TestBundleServerPluginService();
prepareCustomServerPluginService(bundleService);
bundleService.startMasterPluginContainerWithoutSchedulingJobs();
@@ -63,14 +81,10 @@ public class MetadataBeanTest extends AbstractEJB3Test {
* at what plugins are in the database, and then look for corresponding plugin files on the file system. MetadataTest
* however removes the generated plugin files during each test run.
*/
- @AfterGroups(groups = { "plugin.metadata" })
- void removePluginsFromDB() throws Exception {
+ @AfterMethod(alwaysRun = true, groups = { "plugin.metadata" })
+ void afterMethod() throws Exception {
+ unprepareServerPluginService();
unprepareScheduler();
-
- getTransactionManager().begin();
- getEntityManager().createQuery("delete from Plugin p where p.name in (:plugins)").setParameter("plugins",
- plugins).executeUpdate();
- getTransactionManager().commit();
}
protected void setupDB() throws Exception {
@@ -145,6 +159,7 @@ public class MetadataBeanTest extends AbstractEJB3Test {
return getClass().getResource(dir + "/" + descriptor);
}
+ @SuppressWarnings("unused")
private String getPluginWorkDir() throws Exception {
return getCurrentWorkingDir() + "/work";
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdatePluginMetadataTestBase.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdatePluginMetadataTestBase.java
index 535fd06..f381318 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdatePluginMetadataTestBase.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdatePluginMetadataTestBase.java
@@ -37,7 +37,7 @@ import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
+import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.rhq.core.clientapi.agent.measurement.MeasurementAgentService;
@@ -77,8 +77,18 @@ public class UpdatePluginMetadataTestBase extends AbstractEJB3Test {
protected static ResourceTypeManagerLocal resourceTypeManager;
protected static ResourceManagerLocal resourceManager;
+ @AfterClass
+ public void afterClass() throws Exception {
+ cleanupTest();
+ }
+
@BeforeMethod
protected void init() {
+ agentServiceContainer = prepareForTestAgents();
+ prepareMockAgentServiceContainer();
+
+ prepareScheduler();
+
try {
pluginMgr = LookupUtil.getPluginManager();
resourceTypeManager = LookupUtil.getResourceTypeManager();
@@ -91,25 +101,16 @@ public class UpdatePluginMetadataTestBase extends AbstractEJB3Test {
}
}
- @BeforeClass
- public void beforeClass() {
- agentServiceContainer = prepareForTestAgents();
- prepareMockAgentServiceContainer();
-
- prepareScheduler();
+ @AfterMethod(alwaysRun = true)
+ public void afterMethod() throws Exception {
+ unprepareForTestAgents();
+ unprepareScheduler();
}
protected void prepareMockAgentServiceContainer() {
agentServiceContainer.measurementService = new MockMeasurementAgentService();
}
- @AfterClass
- public void afterClass() throws Exception {
- unprepareForTestAgents();
- unprepareScheduler();
- cleanupTest();
- }
-
protected ResourceType getResourceType(String typeName) {
return getResourceType(typeName, PLUGIN_NAME);
}
@@ -225,8 +226,8 @@ public class UpdatePluginMetadataTestBase extends AbstractEJB3Test {
protected int getPluginId(EntityManager entityManager) throws NoResultException {
Plugin existingPlugin;
try {
- existingPlugin = (Plugin) entityManager.createNamedQuery(Plugin.QUERY_FIND_BY_NAME).setParameter("name",
- PLUGIN_NAME).getSingleResult();
+ existingPlugin = (Plugin) entityManager.createNamedQuery(Plugin.QUERY_FIND_BY_NAME)
+ .setParameter("name", PLUGIN_NAME).getSingleResult();
int plugin1Id = existingPlugin.getId();
return plugin1Id;
} catch (NoResultException nre) {
@@ -247,8 +248,8 @@ public class UpdatePluginMetadataTestBase extends AbstractEJB3Test {
protected Agent getAgent(EntityManager entityManager) throws NoResultException {
Agent existingAgent;
try {
- existingAgent = (Agent) entityManager.createNamedQuery(Agent.QUERY_FIND_BY_NAME).setParameter("name",
- AGENT_NAME).getSingleResult();
+ existingAgent = (Agent) entityManager.createNamedQuery(Agent.QUERY_FIND_BY_NAME)
+ .setParameter("name", AGENT_NAME).getSingleResult();
return existingAgent;
} catch (NoResultException nre) {
throw nre;
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceFactoryManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceFactoryManagerBeanTest.java
index f38c1a4..fdb6607 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceFactoryManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceFactoryManagerBeanTest.java
@@ -26,9 +26,6 @@ import java.util.Set;
import javax.persistence.EntityManager;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
@@ -68,8 +65,6 @@ import org.rhq.enterprise.server.util.LookupUtil;
public class ResourceFactoryManagerBeanTest extends AbstractEJB3Test {
// Attributes --------------------------------------------
- private final Log log = LogFactory.getLog(ResourceFactoryManagerBeanTest.class);
-
private ResourceFactoryManagerLocal resourceFactoryManager;
private ResourceManagerLocal resourceManager;
private Subject overlord;
@@ -89,7 +84,10 @@ public class ResourceFactoryManagerBeanTest extends AbstractEJB3Test {
resourceFactoryManager = LookupUtil.getResourceFactoryManager();
resourceManager = LookupUtil.getResourceManager();
overlord = LookupUtil.getSubjectManager().getOverlord();
+ }
+ @BeforeMethod
+ public void setupBeforeMethod() throws Exception {
prepareScheduler();
TestServerCommunicationsService agentServiceContainer = prepareForTestAgents();
agentServiceContainer.resourceFactoryService = mockAgentService;
@@ -98,22 +96,16 @@ public class ResourceFactoryManagerBeanTest extends AbstractEJB3Test {
StandardServerPluginService serverPluginService = new StandardServerPluginService();
prepareCustomServerPluginService(serverPluginService);
serverPluginService.startMasterPluginContainer();
+
+ setupResourceEnvironment();
}
- @AfterClass
- public void teardownAfterClass() throws Exception {
+ @AfterMethod(alwaysRun = true)
+ public void teardownAfterMethod() throws Exception {
unprepareForTestAgents();
unprepareScheduler();
unprepareServerPluginService();
- }
- @BeforeMethod
- public void setupBeforeMethod() throws Exception {
- setupResourceEnvironment();
- }
-
- @AfterMethod
- public void teardownAfterMethod() throws Exception {
teardownResourceEnvironment();
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/scheduler/jobs/DataPurgeJobTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/scheduler/jobs/DataPurgeJobTest.java
index e3f52f5..7506aaa 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/scheduler/jobs/DataPurgeJobTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/scheduler/jobs/DataPurgeJobTest.java
@@ -36,9 +36,7 @@ import javax.transaction.SystemException;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.JobListener;
-import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -94,27 +92,19 @@ import org.rhq.enterprise.server.util.LookupUtil;
public class DataPurgeJobTest extends AbstractEJB3Test {
private Resource newResource;
+ @SuppressWarnings("unused")
private int agentId;
private int resourceTypeId;
private TestServerPluginService testServerPluginService;
-
- @BeforeClass
- public void setup() {
- //we need this because the drift plugins are referenced from the system settings that we use in our tests
- testServerPluginService = new TestServerPluginService();
- prepareCustomServerPluginService(testServerPluginService);
- testServerPluginService.startMasterPluginContainer();
- }
- @AfterClass
- public void tearDown() throws Exception {
- unprepareServerPluginService();
- testServerPluginService.stopMasterPluginContainer();
- }
-
@BeforeMethod
public void beforeMethod() throws Throwable {
try {
+ //we need this because the drift plugins are referenced from the system settings that we use in our tests
+ testServerPluginService = new TestServerPluginService();
+ prepareCustomServerPluginService(testServerPluginService);
+ testServerPluginService.startMasterPluginContainer();
+
prepareScheduler();
TestServerCommunicationsService agentContainer = prepareForTestAgents();
newResource = createNewResource();
@@ -125,12 +115,13 @@ public class DataPurgeJobTest extends AbstractEJB3Test {
}
}
- @AfterMethod
+ @AfterMethod(alwaysRun = true)
public void afterMethod() throws Throwable {
try {
deleteNewResource(newResource);
unprepareForTestAgents();
unprepareScheduler();
+ unprepareServerPluginService();
} catch (Throwable t) {
System.err.println("Cannot unprepare test: " + t);
t.printStackTrace();
@@ -369,8 +360,8 @@ public class DataPurgeJobTest extends AbstractEJB3Test {
}
mgr.addTraitData(dataset);
- List<MeasurementDataTrait> persistedTraits = mgr.findTraits(LookupUtil.getSubjectManager().getOverlord(), res
- .getId(), traitSchedule.getDefinition().getId());
+ List<MeasurementDataTrait> persistedTraits = mgr.findTraits(LookupUtil.getSubjectManager().getOverlord(),
+ res.getId(), traitSchedule.getDefinition().getId());
assert persistedTraits.size() == count : "did not persist trait data:" + persistedTraits.size() + ":"
+ persistedTraits;
}
@@ -424,9 +415,9 @@ public class DataPurgeJobTest extends AbstractEJB3Test {
mgr.addEventData(eventMap);
Subject overlord = LookupUtil.getSubjectManager().getOverlord();
- PageList<EventComposite> persistedEvents = mgr.findEventComposites(overlord, EntityContext.forResource(res
- .getId()), timestamp - 1L, timestamp + count + 1L, new EventSeverity[] { EventSeverity.DEBUG }, null, null,
- new PageControl());
+ PageList<EventComposite> persistedEvents = mgr.findEventComposites(overlord,
+ EntityContext.forResource(res.getId()), timestamp - 1L, timestamp + count + 1L,
+ new EventSeverity[] { EventSeverity.DEBUG }, null, null, new PageControl());
assert persistedEvents.getTotalSize() == count : "did not persist all events, only persisted: "
+ persistedEvents.getTotalSize();
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SynchronizationManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SynchronizationManagerBeanTest.java
index 41f9a56..1f5d0b9 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SynchronizationManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SynchronizationManagerBeanTest.java
@@ -132,12 +132,12 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
public static boolean importerConfigured;
public static boolean importValidatorsObtainedAfterConfiguration;
-
+
public static void reset() {
importerConfigured = false;
importValidatorsObtainedAfterConfiguration = false;
}
-
+
@Override
public void initialize(Subject subject, EntityManager entityManager) {
}
@@ -150,13 +150,13 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
public ExportingIterator<String> getExportingIterator() {
return new ExportingIterator<String>() {
boolean ran = false;
-
+
@Override
public boolean hasNext() {
if (ran) {
return false;
}
-
+
ran = true;
return true;
}
@@ -181,7 +181,7 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
public String getNotes() {
return null;
}
-
+
};
}
@@ -189,7 +189,7 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
public String getNotes() {
return null;
}
-
+
};
}
@@ -215,20 +215,20 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
@Override
public Set<EntityValidator<String>> getEntityValidators() {
EntityValidator<String> v = new EntityValidator<String>() {
-
+
@Override
public void validateExportedEntity(String entity) throws ValidationException {
}
-
+
@Override
public void initialize(Subject subject, EntityManager entityManager) {
}
};
-
+
if (importerConfigured) {
importValidatorsObtainedAfterConfiguration = true;
}
-
+
return Collections.singleton(v);
}
@@ -245,7 +245,7 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
public String finishImport() throws Exception {
return null;
}
-
+
};
}
@@ -253,9 +253,9 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
public Set<ConsistencyValidator> getRequiredValidators() {
return Collections.emptySet();
}
-
+
}
-
+
private TestData testData;
//I just don't get why this can't be a @BeforeTest
@@ -270,9 +270,8 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
//add our new metric template that we are going to perform the tests with
testData.fakeType = new ResourceType(RESOURCE_TYPE_NAME, PLUGIN_NAME, ResourceCategory.PLATFORM, null);
- MeasurementDefinition mdef =
- new MeasurementDefinition(METRIC_NAME, MeasurementCategory.PERFORMANCE, MeasurementUnits.NONE,
- DataType.MEASUREMENT, true, 600000, DisplayType.SUMMARY);
+ MeasurementDefinition mdef = new MeasurementDefinition(METRIC_NAME, MeasurementCategory.PERFORMANCE,
+ MeasurementUnits.NONE, DataType.MEASUREMENT, true, 600000, DisplayType.SUMMARY);
testData.fakeType.addMetricDefinition(mdef);
em.persist(testData.fakeType);
@@ -310,43 +309,46 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
systemManager.loadSystemConfigurationCache();
testData.systemSettings = systemManager.getSystemConfiguration(freshUser());
-
+
if (createExport) {
export = synchronizationManager.exportAllSubsystems(freshUser());
}
}
private void tearDown() throws Exception {
- getTransactionManager().begin();
try {
- LookupUtil.getSystemManager().setSystemConfiguration(freshUser(), testData.systemSettings, true);
-
- EntityManager em = getEntityManager();
+ getTransactionManager().begin();
+ try {
+ LookupUtil.getSystemManager().setSystemConfiguration(freshUser(), testData.systemSettings, true);
- MeasurementSchedule sched =
- em.find(MeasurementSchedule.class, testData.fakePlatform.getSchedules().iterator().next().getId());
- em.remove(sched);
+ EntityManager em = getEntityManager();
- Resource attachedPlatform = em.find(Resource.class, testData.fakePlatform.getId());
- em.remove(attachedPlatform);
+ MeasurementSchedule sched = em.find(MeasurementSchedule.class, testData.fakePlatform.getSchedules()
+ .iterator().next().getId());
+ em.remove(sched);
- ResourceType attachedType = em.find(ResourceType.class, testData.fakeType.getId());
- em.remove(attachedType);
+ Resource attachedPlatform = em.find(Resource.class, testData.fakePlatform.getId());
+ em.remove(attachedPlatform);
- em.flush();
+ ResourceType attachedType = em.find(ResourceType.class, testData.fakeType.getId());
+ em.remove(attachedType);
- getTransactionManager().commit();
- } catch (Exception e) {
- getTransactionManager().rollback();
- throw e;
- }
+ em.flush();
- unprepareServerPluginService();
- testData.testServerPluginService.stopMasterPluginContainer();
+ getTransactionManager().commit();
+ } catch (Exception e) {
+ getTransactionManager().rollback();
+ throw e;
+ }
+ } finally {
+ unprepareServerPluginService();
+ //unnecessary, done by above method
+ //testData.testServerPluginService.stopMasterPluginContainer();
- export = null;
- testData = null;
- synchronizationManager = null;
+ export = null;
+ testData = null;
+ synchronizationManager = null;
+ }
}
public void testExport() throws Exception {
@@ -364,16 +366,16 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
try {
SystemManagerLocal systemManager = LookupUtil.getSystemManager();
- MeasurementDefinitionManagerLocal measurementDefinitionManager =
- LookupUtil.getMeasurementDefinitionManager();
+ MeasurementDefinitionManagerLocal measurementDefinitionManager = LookupUtil
+ .getMeasurementDefinitionManager();
Properties beforeSystemSettings = systemManager.getSystemConfiguration(freshUser());
MeasurementDefinitionCriteria criteria = new MeasurementDefinitionCriteria();
criteria.setPageControl(PageControl.getUnlimitedInstance());
criteria.fetchResourceType(true);
- List<MeasurementDefinition> beforeMeasurementDefinitions =
- measurementDefinitionManager.findMeasurementDefinitionsByCriteria(freshUser(), criteria);
+ List<MeasurementDefinition> beforeMeasurementDefinitions = measurementDefinitionManager
+ .findMeasurementDefinitionsByCriteria(freshUser(), criteria);
synchronizationManager.importAllSubsystems(freshUser(), export.getExportFile(), null);
@@ -381,16 +383,16 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
systemManager.loadSystemConfigurationCache();
Properties afterSystemSettings = systemManager.getSystemConfiguration(freshUser());
- List<MeasurementDefinition> afterMeasurementDefinitions =
- measurementDefinitionManager.findMeasurementDefinitionsByCriteria(freshUser(), criteria);
+ List<MeasurementDefinition> afterMeasurementDefinitions = measurementDefinitionManager
+ .findMeasurementDefinitionsByCriteria(freshUser(), criteria);
assertEquals("System settings unexpectedly differ", beforeSystemSettings, afterSystemSettings);
//make sure we don't fail on simple order differences, which are not important here..
- Set<MeasurementDefinition> beforeDefsToCheck =
- new HashSet<MeasurementDefinition>(beforeMeasurementDefinitions);
- Set<MeasurementDefinition> afterDefsToCheck =
- new HashSet<MeasurementDefinition>(afterMeasurementDefinitions);
+ Set<MeasurementDefinition> beforeDefsToCheck = new HashSet<MeasurementDefinition>(
+ beforeMeasurementDefinitions);
+ Set<MeasurementDefinition> afterDefsToCheck = new HashSet<MeasurementDefinition>(
+ afterMeasurementDefinitions);
assertEquals("Measurement definitions unexpectedly differ", beforeDefsToCheck, afterDefsToCheck);
} finally {
tearDown();
@@ -420,13 +422,13 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
assertEquals(settings.getProperty("CAM_BASE_URL"), "http://testing.domain:7080");
- MeasurementDefinitionManagerLocal measurementDefinitionManager =
- LookupUtil.getMeasurementDefinitionManager();
+ MeasurementDefinitionManagerLocal measurementDefinitionManager = LookupUtil
+ .getMeasurementDefinitionManager();
MeasurementDefinitionCriteria crit = new MeasurementDefinitionCriteria();
crit.addFilterResourceTypeName(RESOURCE_TYPE_NAME);
crit.addFilterName(METRIC_NAME);
- MeasurementDefinition mdef =
- measurementDefinitionManager.findMeasurementDefinitionsByCriteria(freshUser(), crit).get(0);
+ MeasurementDefinition mdef = measurementDefinitionManager.findMeasurementDefinitionsByCriteria(freshUser(),
+ crit).get(0);
assertEquals("The " + METRIC_NAME + " metric should have been updated with default interval of 30s",
Long.valueOf(30000), new Long(mdef.getDefaultInterval()));
@@ -445,9 +447,8 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
//now find the schedule for the measurement
MeasurementScheduleManagerLocal measurementScheduleManager = LookupUtil.getMeasurementScheduleManager();
- List<MeasurementSchedule> schedules =
- measurementScheduleManager.findSchedulesByResourceIdAndDefinitionIds(freshUser(), platformResourceId,
- new int[] { mdef.getId() });
+ List<MeasurementSchedule> schedules = measurementScheduleManager.findSchedulesByResourceIdAndDefinitionIds(
+ freshUser(), platformResourceId, new int[] { mdef.getId() });
assertEquals("Unexpected number of '" + METRIC_NAME + "' schedules found.", 1, schedules.size());
@@ -469,13 +470,13 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
String originalBaseUrl = settings.getProperty("CAM_BASE_URL");
- MeasurementDefinitionManagerLocal measurementDefinitionManager =
- LookupUtil.getMeasurementDefinitionManager();
+ MeasurementDefinitionManagerLocal measurementDefinitionManager = LookupUtil
+ .getMeasurementDefinitionManager();
MeasurementDefinitionCriteria crit = new MeasurementDefinitionCriteria();
crit.addFilterResourceTypeName(RESOURCE_TYPE_NAME);
crit.addFilterName(METRIC_NAME);
- MeasurementDefinition distroNameDef =
- measurementDefinitionManager.findMeasurementDefinitionsByCriteria(freshUser(), crit).get(0);
+ MeasurementDefinition distroNameDef = measurementDefinitionManager.findMeasurementDefinitionsByCriteria(
+ freshUser(), crit).get(0);
long originalInterval = distroNameDef.getDefaultInterval();
@@ -489,12 +490,12 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
//let's just use the default configs so that we don't apply the changes suggested in
//the changed default configs created above
- ImportConfiguration systemSettingsConfiguration =
- new ImportConfiguration(SystemSettingsSynchronizer.class.getName(), new SystemSettingsSynchronizer()
- .getImporter().getImportConfigurationDefinition().getDefaultTemplate().createConfiguration());
- ImportConfiguration metricTemplatesConfiguration =
- new ImportConfiguration(MetricTemplateSynchronizer.class.getName(), new MetricTemplateSynchronizer()
- .getImporter().getImportConfigurationDefinition().getDefaultTemplate().createConfiguration());
+ ImportConfiguration systemSettingsConfiguration = new ImportConfiguration(
+ SystemSettingsSynchronizer.class.getName(), new SystemSettingsSynchronizer().getImporter()
+ .getImportConfigurationDefinition().getDefaultTemplate().createConfiguration());
+ ImportConfiguration metricTemplatesConfiguration = new ImportConfiguration(
+ MetricTemplateSynchronizer.class.getName(), new MetricTemplateSynchronizer().getImporter()
+ .getImportConfigurationDefinition().getDefaultTemplate().createConfiguration());
try {
synchronizationManager.importAllSubsystems(freshUser(), exportData,
@@ -529,9 +530,8 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
//now find the schedule for the measurement
MeasurementScheduleManagerLocal measurementScheduleManager = LookupUtil.getMeasurementScheduleManager();
- List<MeasurementSchedule> schedules =
- measurementScheduleManager.findSchedulesByResourceIdAndDefinitionIds(freshUser(), platformResourceId,
- new int[] { distroNameDef.getId() });
+ List<MeasurementSchedule> schedules = measurementScheduleManager.findSchedulesByResourceIdAndDefinitionIds(
+ freshUser(), platformResourceId, new int[] { distroNameDef.getId() });
assertEquals("Unexpected number of '" + METRIC_NAME + "' schedules found.", 1, schedules.size());
@@ -549,43 +549,42 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
try {
String export = getExportData();
- Document xml =
- DocumentBuilderFactory.newInstance().newDocumentBuilder()
- .parse(new InputSource(new StringReader(export)));
-
+ Document xml = DocumentBuilderFactory.newInstance().newDocumentBuilder()
+ .parse(new InputSource(new StringReader(export)));
+
Element unknownValidator = xml.createElement("validator");
unknownValidator.setAttribute(SynchronizationConstants.CLASS_ATTRIBUTE, "org.nothing.UnknownValidator");
-
+
xml.getDocumentElement().insertBefore(unknownValidator, xml.getDocumentElement().getFirstChild());
-
+
export = documentToString(xml);
-
+
InputStream exportStream = createCompressedStream(export);
-
+
synchronizationManager.importAllSubsystems(freshUser(), exportStream, null);
} finally {
tearDown();
}
}
- public void testImporterConfiguredBeforeValidatorsObtained() throws Exception {
+ public void testImporterConfiguredBeforeValidatorsObtained() throws Exception {
setup(false);
-
+
try {
ImportConfigurationCheckingSynchronizer.reset();
-
+
synchronizationManager.setSynchronizerFactory(new SynchronizerFactory() {
@Override
public Set<Synchronizer<?, ?>> getAllSynchronizers() {
- return Collections.<Synchronizer<?, ?>>singleton(new ImportConfigurationCheckingSynchronizer());
+ return Collections.<Synchronizer<?, ?>> singleton(new ImportConfigurationCheckingSynchronizer());
}
});
-
+
export = synchronizationManager.exportAllSubsystems(freshUser());
-
+
//and import it back again, so that we actually invoke the import validation
synchronizationManager.importAllSubsystems(freshUser(), export.getExportFile(), null);
-
+
assertTrue(ImportConfigurationCheckingSynchronizer.importerConfigured);
assertTrue(ImportConfigurationCheckingSynchronizer.importValidatorsObtainedAfterConfiguration);
} finally {
@@ -596,8 +595,8 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
}
private String getExportData() throws IOException {
- InputStreamReader str =
- new InputStreamReader(new GZIPInputStream(new ByteArrayInputStream(export.getExportFile())), "UTF-8");
+ InputStreamReader str = new InputStreamReader(new GZIPInputStream(new ByteArrayInputStream(
+ export.getExportFile())), "UTF-8");
try {
char[] buf = new char[32768];
StringBuilder bld = new StringBuilder();
@@ -634,17 +633,14 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
XPath xpath = XPathFactory.newInstance().newXPath();
xpath.setNamespaceContext(SynchronizationConstants.createConfigurationExportNamespaceContext());
- XPathExpression systemSettingsConfigurationPath =
- xpath
- .compile("/:configuration-export/:entities[@id='org.rhq.enterprise.server.sync.SystemSettingsSynchronizer']/:default-configuration/ci:simple-property[@name='propertiesToImport']");
+ XPathExpression systemSettingsConfigurationPath = xpath
+ .compile("/:configuration-export/:entities[@id='org.rhq.enterprise.server.sync.SystemSettingsSynchronizer']/:default-configuration/ci:simple-property[@name='propertiesToImport']");
- XPathExpression baseUrlSettingPath =
- xpath
- .compile("/:configuration-export/:entities[@id='org.rhq.enterprise.server.sync.SystemSettingsSynchronizer']/:entity/:data/systemSettings/entry[@key='CAM_BASE_URL']");
+ XPathExpression baseUrlSettingPath = xpath
+ .compile("/:configuration-export/:entities[@id='org.rhq.enterprise.server.sync.SystemSettingsSynchronizer']/:entity/:data/systemSettings/entry[@key='CAM_BASE_URL']");
- Element systemSettingsConfiguration =
- (Element) systemSettingsConfigurationPath.evaluate(new InputSource(new StringReader(exportXML)),
- XPathConstants.NODE);
+ Element systemSettingsConfiguration = (Element) systemSettingsConfigurationPath.evaluate(new InputSource(
+ new StringReader(exportXML)), XPathConstants.NODE);
String propsToImport = systemSettingsConfiguration.getAttribute("value");
propsToImport += ", CAM_BASE_URL";
@@ -653,8 +649,8 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
exportXML = documentToString(systemSettingsConfiguration.getOwnerDocument());
- Element baseUrlSetting =
- (Element) baseUrlSettingPath.evaluate(new InputSource(new StringReader(exportXML)), XPathConstants.NODE);
+ Element baseUrlSetting = (Element) baseUrlSettingPath.evaluate(new InputSource(new StringReader(exportXML)),
+ XPathConstants.NODE);
baseUrlSetting.setTextContent("http://testing.domain:7080");
@@ -665,12 +661,11 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
XPath xpath = XPathFactory.newInstance().newXPath();
xpath.setNamespaceContext(SynchronizationConstants.createConfigurationExportNamespaceContext());
- XPathExpression overridesPath =
- xpath
- .compile("/:configuration-export/:entities[@id='org.rhq.enterprise.server.sync.MetricTemplateSynchronizer']/:default-configuration/ci:list-property[@name='metricUpdateOverrides']");
+ XPathExpression overridesPath = xpath
+ .compile("/:configuration-export/:entities[@id='org.rhq.enterprise.server.sync.MetricTemplateSynchronizer']/:default-configuration/ci:list-property[@name='metricUpdateOverrides']");
- Element overrides =
- (Element) overridesPath.evaluate(new InputSource(new StringReader(exportXML)), XPathConstants.NODE);
+ Element overrides = (Element) overridesPath.evaluate(new InputSource(new StringReader(exportXML)),
+ XPathConstants.NODE);
Document doc = overrides.getOwnerDocument();
@@ -691,13 +686,12 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
exportXML = documentToString(doc);
//now redefine the collection interval of the above metric so that we can see the change after the import
- XPathExpression distroNameMetricPath =
- xpath
- .compile("/:configuration-export/:entities[@id='org.rhq.enterprise.server.sync.MetricTemplateSynchronizer']/:entity/:data/metricTemplate[@metricName='"
- + METRIC_NAME + "']");
+ XPathExpression distroNameMetricPath = xpath
+ .compile("/:configuration-export/:entities[@id='org.rhq.enterprise.server.sync.MetricTemplateSynchronizer']/:entity/:data/metricTemplate[@metricName='"
+ + METRIC_NAME + "']");
- Element metric =
- (Element) distroNameMetricPath.evaluate(new InputSource(new StringReader(exportXML)), XPathConstants.NODE);
+ Element metric = (Element) distroNameMetricPath.evaluate(new InputSource(new StringReader(exportXML)),
+ XPathConstants.NODE);
doc = metric.getOwnerDocument();
@@ -730,7 +724,7 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
user = subjectManager.getOverlord();
return user;
}
-
+
private InputStream createCompressedStream(String exportData) throws UnsupportedEncodingException, IOException {
ByteArrayOutputStream compressed = new ByteArrayOutputStream();
OutputStreamWriter wrt = new OutputStreamWriter(new GZIPOutputStream(compressed), "UTF-8");
@@ -740,6 +734,6 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
wrt.close();
}
- return new ByteArrayInputStream(compressed.toByteArray());
+ return new ByteArrayInputStream(compressed.toByteArray());
}
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/system/SystemManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/system/SystemManagerBeanTest.java
index 8d27267..ede29a4 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/system/SystemManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/system/SystemManagerBeanTest.java
@@ -20,7 +20,7 @@ package org.rhq.enterprise.server.system;
import java.util.Properties;
-import org.testng.annotations.AfterClass;
+import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -43,24 +43,25 @@ public class SystemManagerBeanTest extends AbstractEJB3Test {
@BeforeClass
public void setupServer() {
systemManager = LookupUtil.getSystemManager();
-
+ }
+
+ @BeforeMethod
+ public void beforeMethod() {
+ // do this each method so it doesn't expire
+ overlord = LookupUtil.getSubjectManager().getOverlord();
+
//we need this because the drift plugins are referenced from the system settings that we use in our tests
testServerPluginService = new TestServerPluginService();
prepareCustomServerPluginService(testServerPluginService);
testServerPluginService.startMasterPluginContainer();
}
- @AfterClass
+ @AfterMethod(alwaysRun = true)
public void tearDownServer() throws Exception {
unprepareServerPluginService();
- testServerPluginService.stopMasterPluginContainer();
- }
-
- @BeforeMethod
- public void beforeMethod() {
- overlord = LookupUtil.getSubjectManager().getOverlord();
}
+ @SuppressWarnings("deprecation")
public void testGetSystemConfiguration() {
assert null != systemManager.getSystemConfiguration(overlord);
}
@@ -88,7 +89,7 @@ public class SystemManagerBeanTest extends AbstractEJB3Test {
public void testVacuumAppdef() {
systemManager.vacuumAppdef(overlord);
}
-
+
@SuppressWarnings("deprecation")
public void testLegacySystemSettingsInCorrectFormat() throws Exception {
//some of the properties are represented differently
@@ -96,45 +97,45 @@ public class SystemManagerBeanTest extends AbstractEJB3Test {
//settings (and consequently database).
//These two still co-exist together in the codebase
//so let's make sure the values correspond to each other.
-
+
SystemSettings settings = systemManager.getSystemSettings(overlord);
Properties config = systemManager.getSystemConfiguration(overlord);
-
+
SystemSettings origSettings = new SystemSettings(settings);
-
+
try {
//let's make sure the values are the same
checkFormats(settings, config);
-
+
boolean currentJaasProvider = Boolean.valueOf(settings.get(SystemSetting.LDAP_BASED_JAAS_PROVIDER));
settings.put(SystemSetting.LDAP_BASED_JAAS_PROVIDER, Boolean.toString(!currentJaasProvider));
-
+
boolean currentUseSslForLdap = Boolean.valueOf(settings.get(SystemSetting.USE_SSL_FOR_LDAP));
settings.put(SystemSetting.USE_SSL_FOR_LDAP, Boolean.toString(!currentUseSslForLdap));
-
+
systemManager.setSystemSettings(overlord, settings);
-
+
settings = systemManager.getSystemSettings(overlord);
config = systemManager.getSystemConfiguration(overlord);
-
+
checkFormats(settings, config);
} finally {
systemManager.setSystemSettings(overlord, origSettings);
}
}
-
- private void checkFormats(SystemSettings settings, Properties config) {
+
+ private void checkFormats(SystemSettings settings, Properties config) {
assert settings.size() == config.size() : "The old and new style system settings differ in size";
-
- for(String name : config.stringPropertyNames()) {
+
+ for (String name : config.stringPropertyNames()) {
SystemSetting setting = SystemSetting.getByInternalName(name);
-
- String oldStyleValue = config.getProperty(name);
+
+ String oldStyleValue = config.getProperty(name);
String newStyleValue = settings.get(setting);
-
+
assert setting != null : "Could not find a system setting called '" + name + "'.";
-
- switch(setting) {
+
+ switch (setting) {
case USE_SSL_FOR_LDAP:
if (RHQConstants.LDAP_PROTOCOL_SECURED.equals(oldStyleValue)) {
assert Boolean.valueOf(newStyleValue) : "Secured LDAP protocol should be represented by a 'true' in new style settings.";
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java
index 45bda40..566bc21 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java
@@ -72,6 +72,7 @@ public abstract class AbstractEJB3Test extends AssertJUnit {
private static EJB3StandaloneDeployer deployer;
private static Statistics stats;
+ @SuppressWarnings("unused")
private static long start; // see endTest() if you want to output this
private SchedulerService schedulerService;
private ServerPluginService serverPluginService;
@@ -257,6 +258,13 @@ public abstract class AbstractEJB3Test extends AssertJUnit {
return dummyJBossMBeanServer;
}
+ public void releaseJBossMBeanServer() {
+ if (dummyJBossMBeanServer != null) {
+ MBeanServerFactory.releaseMBeanServer(dummyJBossMBeanServer);
+ dummyJBossMBeanServer = null;
+ }
+ }
+
/**
* If you need to test round trips from server to agent and back, you first must install the server communications
* service that houses all the agent clients. Call this method and add your test agent services to the public fields
@@ -285,10 +293,18 @@ public abstract class AbstractEJB3Test extends AssertJUnit {
* {@link #prepareForTestAgents()}.
*/
public void unprepareForTestAgents() {
+ unprepareForTestAgents(false);
+ }
+
+ public void unprepareForTestAgents(boolean beanOnly) {
try {
- MBeanServer mbs = getJBossMBeanServer();
- if (mbs.isRegistered(ServerCommunicationsServiceMBean.OBJECT_NAME)) {
- mbs.unregisterMBean(ServerCommunicationsServiceMBean.OBJECT_NAME);
+ if (beanOnly) {
+ MBeanServer mbs = getJBossMBeanServer();
+ if (mbs.isRegistered(ServerCommunicationsServiceMBean.OBJECT_NAME)) {
+ mbs.unregisterMBean(ServerCommunicationsServiceMBean.OBJECT_NAME);
+ }
+ } else {
+ releaseJBossMBeanServer();
}
} catch (Exception e) {
throw new RuntimeException(e);
@@ -317,10 +333,25 @@ public abstract class AbstractEJB3Test extends AssertJUnit {
}
public void unprepareServerPluginService() throws Exception {
+ unprepareServerPluginService(false);
+ }
+
+ public void unprepareServerPluginService(boolean beanOnly) throws Exception {
if (serverPluginService != null) {
serverPluginService.stopMasterPluginContainer();
serverPluginService.stop();
- getJBossMBeanServer().unregisterMBean(ServerPluginService.OBJECT_NAME);
+ if (beanOnly) {
+ MBeanServer mbs = getJBossMBeanServer();
+ if (mbs.isRegistered(ServerPluginService.OBJECT_NAME)) {
+ getJBossMBeanServer().unregisterMBean(ServerPluginService.OBJECT_NAME);
+ }
+ if (mbs.isRegistered(ServerPluginServiceManagement.OBJECT_NAME)) {
+ getJBossMBeanServer().unregisterMBean(ServerPluginServiceManagement.OBJECT_NAME);
+ }
+
+ } else {
+ releaseJBossMBeanServer();
+ }
serverPluginService = null;
}
}
@@ -351,9 +382,21 @@ public abstract class AbstractEJB3Test extends AssertJUnit {
}
public void unprepareScheduler() throws Exception {
+ unprepareScheduler(false);
+ }
+
+ public void unprepareScheduler(boolean beanOnly) throws Exception {
if (schedulerService != null) {
schedulerService.stop();
- getJBossMBeanServer().unregisterMBean(SchedulerServiceMBean.SCHEDULER_MBEAN_NAME);
+ if (beanOnly) {
+ MBeanServer mbs = getJBossMBeanServer();
+ if (mbs.isRegistered(SchedulerServiceMBean.SCHEDULER_MBEAN_NAME)) {
+ getJBossMBeanServer().unregisterMBean(SchedulerServiceMBean.SCHEDULER_MBEAN_NAME);
+ }
+ } else {
+ releaseJBossMBeanServer();
+ }
+
schedulerService = null;
}
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/LargeGroupTestBase.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/LargeGroupTestBase.java
index 1fd16a9..cbafd46 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/LargeGroupTestBase.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/LargeGroupTestBase.java
@@ -25,8 +25,9 @@ import javax.persistence.NoResultException;
import javax.persistence.Query;
import javax.transaction.TransactionManager;
-import org.testng.annotations.AfterClass;
+import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.authz.Permission;
@@ -86,20 +87,23 @@ public abstract class LargeGroupTestBase extends AbstractEJB3Test {
* Prepares things for the entire test class.
*/
@BeforeClass
- public void beforeClass() {
+ public void beforeClassBase() {
configurationManager = LookupUtil.getConfigurationManager();
resourceManager = LookupUtil.getResourceManager();
resourceGroupManager = LookupUtil.getResourceGroupManager();
subjectManager = LookupUtil.getSubjectManager();
+ }
+ @BeforeMethod
+ public void beforeMethodBase() throws Exception {
TestServerCommunicationsService agentServiceContainer = prepareForTestAgents();
setupMockAgentServices(agentServiceContainer);
prepareScheduler();
}
- @AfterClass(alwaysRun = true)
- public void afterClass() throws Exception {
+ @AfterMethod(alwaysRun = true)
+ public void afterMethodBase() throws Exception {
try {
unprepareForTestAgents();
} finally {
commit 1b40790c2c5deb8db9ec87ccfc3d56a235eb5b00
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Wed Jan 18 17:19:58 2012 -0500
[BZ 782612][BZ 772318] the agent registration now requires a token. null tokens are rejected unless its a new agent.
diff --git a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java
index 5359c3c..c7e0cfc 100644
--- a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java
+++ b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java
@@ -751,8 +751,8 @@ public class AgentMain {
try {
shutdownPluginContainer();
} catch (Throwable ignore) {
- LOG.warn(AgentI18NResourceKeys.FAILED_TO_SHUTDOWN_COMPONENT, "Plugin Container", ThrowableUtil
- .getAllMessages(ignore));
+ LOG.warn(AgentI18NResourceKeys.FAILED_TO_SHUTDOWN_COMPONENT, "Plugin Container",
+ ThrowableUtil.getAllMessages(ignore));
}
///////
@@ -984,8 +984,8 @@ public class AgentMain {
LOG.debug(AgentI18NResourceKeys.FAILOVER_LIST_LOADED, failoverListFile, list.size());
} catch (Exception e) {
list = new FailoverListComposite(new ArrayList<ServerEntry>());
- LOG.warn(e, AgentI18NResourceKeys.FAILOVER_LIST_CANNOT_BE_LOADED, failoverListFile, ThrowableUtil
- .getAllMessages(e));
+ LOG.warn(e, AgentI18NResourceKeys.FAILOVER_LIST_CANNOT_BE_LOADED, failoverListFile,
+ ThrowableUtil.getAllMessages(e));
}
}
@@ -1191,8 +1191,10 @@ public class AgentMain {
// store is the default value.
// But first we need to backup these original preferences in case the config file fails to load -
// we'll restore the original values in that case.
-
+ // Note that we squirrel away any security token we already have - we need to preserve this when we can
+ // because otherwise the agent will not be able to re-register with any previous name is was registered with.
Preferences preferencesNode = getPreferencesNode();
+ String securityToken = preferencesNode.get(AgentConfigurationConstants.AGENT_SECURITY_TOKEN, null);
ByteArrayOutputStream backup = new ByteArrayOutputStream();
preferencesNode.exportSubtree(backup);
preferencesNode.clear();
@@ -1213,10 +1215,26 @@ public class AgentMain {
ByteArrayInputStream new_config_input_stream = new ByteArrayInputStream(new_config.getBytes());
Preferences.importPreferences(new_config_input_stream);
- if (new AgentConfiguration(preferencesNode).getAgentConfigurationVersion() == 0) {
+ AgentConfiguration newAgentConfig = new AgentConfiguration(preferencesNode);
+ if (newAgentConfig.getAgentConfigurationVersion() == 0) {
throw new IllegalArgumentException(MSG.getMsg(AgentI18NResourceKeys.BAD_NODE_NAME_IN_CONFIG_FILE,
file_name, m_agentPreferencesNodeName));
}
+
+ // If we had a security token, restore it so we can maintain our known registration with the server.
+ // Note that if the configuration file already had a security token defined, it will be used and the old
+ // token we had will be thrown away.
+ if (securityToken != null) {
+ if (newAgentConfig.getAgentSecurityToken() == null) {
+ LOG.debug(AgentI18NResourceKeys.RESTORING_SECURITY_TOKEN);
+ newAgentConfig.setAgentSecurityToken(securityToken);
+ } else {
+ LOG.info(AgentI18NResourceKeys.NOT_RESTORING_SECURITY_TOKEN);
+ }
+ }
+
+ preferencesNode.flush();
+
} catch (Exception e) {
// a problem occurred importing the config file; let's restore our original values
try {
@@ -2297,8 +2315,8 @@ public class AgentMain {
*/
private void prepareAutoDiscoveryListener() throws Exception {
if (m_configuration.isServerAutoDetectionEnabled()) {
- ServiceContainerConfiguration comm_config = new ServiceContainerConfiguration(m_configuration
- .getPreferences());
+ ServiceContainerConfiguration comm_config = new ServiceContainerConfiguration(
+ m_configuration.getPreferences());
if (comm_config.isMulticastDetectorEnabled()) {
m_autoDiscoveryListener = new AgentAutoDiscoveryListener(this, createServerRemoteCommunicator(null,
false, false));
@@ -2469,8 +2487,8 @@ public class AgentMain {
if (wait > 0) {
long now = System.currentTimeMillis();
if ((started + wait) < now) {
- throw new RuntimeException(MSG
- .getMsg(AgentI18NResourceKeys.CANNOT_WAIT_TO_BE_REGISTERED_ANY_LONGER));
+ throw new RuntimeException(
+ MSG.getMsg(AgentI18NResourceKeys.CANNOT_WAIT_TO_BE_REGISTERED_ANY_LONGER));
}
}
@@ -2570,27 +2588,27 @@ public class AgentMain {
Map<String, String> config = new HashMap<String, String>();
if (SecurityUtil.isTransportSecure(uri)) {
- config.put(SSLSocketBuilder.REMOTING_KEY_STORE_FILE_PATH, m_configuration
- .getClientSenderSecurityKeystoreFile());
- config.put(SSLSocketBuilder.REMOTING_KEY_STORE_ALGORITHM, m_configuration
- .getClientSenderSecurityKeystoreAlgorithm());
+ config.put(SSLSocketBuilder.REMOTING_KEY_STORE_FILE_PATH,
+ m_configuration.getClientSenderSecurityKeystoreFile());
+ config.put(SSLSocketBuilder.REMOTING_KEY_STORE_ALGORITHM,
+ m_configuration.getClientSenderSecurityKeystoreAlgorithm());
config.put(SSLSocketBuilder.REMOTING_KEY_STORE_TYPE, m_configuration.getClientSenderSecurityKeystoreType());
- config.put(SSLSocketBuilder.REMOTING_KEY_STORE_PASSWORD, m_configuration
- .getClientSenderSecurityKeystorePassword());
- config.put(SSLSocketBuilder.REMOTING_KEY_PASSWORD, m_configuration
- .getClientSenderSecurityKeystoreKeyPassword());
- config.put(SSLSocketBuilder.REMOTING_TRUST_STORE_FILE_PATH, m_configuration
- .getClientSenderSecurityTruststoreFile());
- config.put(SSLSocketBuilder.REMOTING_TRUST_STORE_ALGORITHM, m_configuration
- .getClientSenderSecurityTruststoreAlgorithm());
- config.put(SSLSocketBuilder.REMOTING_TRUST_STORE_TYPE, m_configuration
- .getClientSenderSecurityTruststoreType());
- config.put(SSLSocketBuilder.REMOTING_TRUST_STORE_PASSWORD, m_configuration
- .getClientSenderSecurityTruststorePassword());
+ config.put(SSLSocketBuilder.REMOTING_KEY_STORE_PASSWORD,
+ m_configuration.getClientSenderSecurityKeystorePassword());
+ config.put(SSLSocketBuilder.REMOTING_KEY_PASSWORD,
+ m_configuration.getClientSenderSecurityKeystoreKeyPassword());
+ config.put(SSLSocketBuilder.REMOTING_TRUST_STORE_FILE_PATH,
+ m_configuration.getClientSenderSecurityTruststoreFile());
+ config.put(SSLSocketBuilder.REMOTING_TRUST_STORE_ALGORITHM,
+ m_configuration.getClientSenderSecurityTruststoreAlgorithm());
+ config.put(SSLSocketBuilder.REMOTING_TRUST_STORE_TYPE,
+ m_configuration.getClientSenderSecurityTruststoreType());
+ config.put(SSLSocketBuilder.REMOTING_TRUST_STORE_PASSWORD,
+ m_configuration.getClientSenderSecurityTruststorePassword());
config.put(SSLSocketBuilder.REMOTING_SSL_PROTOCOL, m_configuration.getClientSenderSecuritySocketProtocol());
config.put(SSLSocketBuilder.REMOTING_KEY_ALIAS, m_configuration.getClientSenderSecurityKeystoreAlias());
- config.put(SSLSocketBuilder.REMOTING_SERVER_AUTH_MODE, Boolean.toString(m_configuration
- .isClientSenderSecurityServerAuthMode()));
+ config.put(SSLSocketBuilder.REMOTING_SERVER_AUTH_MODE,
+ Boolean.toString(m_configuration.isClientSenderSecurityServerAuthMode()));
config.put(SSLSocketBuilder.REMOTING_SOCKET_USE_CLIENT_MODE, "true");
// since we do not know the server's client-auth mode, assume we need a keystore and let's make sure we have one
@@ -2600,10 +2618,10 @@ public class AgentMain {
dummy_sslbuilder.setKeyStoreURL(m_configuration.getClientSenderSecurityKeystoreFile());
} catch (Exception e) {
// this probably is due to the fact that the keystore doesn't exist yet - let's prepare one now
- SecurityUtil.createKeyStore(m_configuration.getClientSenderSecurityKeystoreFile(), m_configuration
- .getClientSenderSecurityKeystoreAlias(), "CN=RHQ, OU=RedHat, O=redhat.com, C=US", m_configuration
- .getClientSenderSecurityKeystorePassword(), m_configuration
- .getClientSenderSecurityKeystoreKeyPassword(), "DSA", 36500);
+ SecurityUtil.createKeyStore(m_configuration.getClientSenderSecurityKeystoreFile(),
+ m_configuration.getClientSenderSecurityKeystoreAlias(), "CN=RHQ, OU=RedHat, O=redhat.com, C=US",
+ m_configuration.getClientSenderSecurityKeystorePassword(),
+ m_configuration.getClientSenderSecurityKeystoreKeyPassword(), "DSA", 36500);
// now try to set it again, if an exception is still thrown, it's an unrecoverable error
dummy_sslbuilder.setKeyStoreURL(m_configuration.getClientSenderSecurityKeystoreFile());
@@ -2702,8 +2720,8 @@ public class AgentMain {
StreamUtil.copy(byteStream, fileStream, true);
LOG.debug(AgentI18NResourceKeys.FAILOVER_LIST_PERSISTED, failoverListFile);
} catch (Exception e) {
- LOG.warn(e, AgentI18NResourceKeys.FAILOVER_LIST_CANNOT_BE_PERSISTED, failoverListFile, ThrowableUtil
- .getAllMessages(e));
+ LOG.warn(e, AgentI18NResourceKeys.FAILOVER_LIST_CANNOT_BE_PERSISTED, failoverListFile,
+ ThrowableUtil.getAllMessages(e));
}
// let's be kind to the user - if any server address is "localhost" or "127.0.0.#"
@@ -2773,8 +2791,8 @@ public class AgentMain {
break;
}
} catch (Throwable t) {
- m_output.println(MSG.getMsg(AgentI18NResourceKeys.COMMAND_FAILURE, cmd, ThrowableUtil
- .getAllMessages(t)));
+ m_output.println(MSG.getMsg(AgentI18NResourceKeys.COMMAND_FAILURE, cmd,
+ ThrowableUtil.getAllMessages(t)));
LOG.debug(t, AgentI18NResourceKeys.COMMAND_FAILURE_STACK_TRACE);
}
}
@@ -2890,7 +2908,7 @@ public class AgentMain {
* @throws HelpException if help was requested and the agent should not be created
*/
private void processArguments(String[] args) throws Exception {
- String sopts = "-:hdlasntguD:i:o:c:p:e:";
+ String sopts = "-:hdlLasntguD:i:o:c:p:e:";
LongOpt[] lopts = { new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h'),
new LongOpt("input", LongOpt.REQUIRED_ARGUMENT, null, 'i'),
new LongOpt("output", LongOpt.REQUIRED_ARGUMENT, null, 'o'),
@@ -2899,6 +2917,7 @@ public class AgentMain {
new LongOpt("console", LongOpt.REQUIRED_ARGUMENT, null, 'e'),
new LongOpt("daemon", LongOpt.NO_ARGUMENT, null, 'd'),
new LongOpt("cleanconfig", LongOpt.NO_ARGUMENT, null, 'l'),
+ new LongOpt("cleanallconfig", LongOpt.NO_ARGUMENT, null, 'L'),
new LongOpt("advanced", LongOpt.NO_ARGUMENT, null, 'a'),
new LongOpt("setup", LongOpt.NO_ARGUMENT, null, 's'),
new LongOpt("nostart", LongOpt.NO_ARGUMENT, null, 'n'),
@@ -2908,6 +2927,7 @@ public class AgentMain {
String config_file_name = null;
boolean clean_config = false;
+ boolean clean_token = false; // only used if clean_config = true
boolean purge_data = false;
boolean purge_plugins = false;
AgentInputReaderFactory.ConsoleType console_type = null;
@@ -2967,6 +2987,13 @@ public class AgentMain {
break;
}
+ case 'L': {
+ clean_config = true;
+ purge_data = true;
+ clean_token = true;
+ break;
+ }
+
case 'u': {
purge_data = true;
break;
@@ -3051,7 +3078,21 @@ public class AgentMain {
// now that all the arguments were processed, let's load in our config (this allows the -p to come after -c)
if (clean_config) {
- getPreferencesNode().removeNode();
+ Preferences prefsNode = getPreferencesNode();
+ if (clean_token) {
+ prefsNode.removeNode();
+ } else {
+ // remove everything EXCEPT the security token
+ String[] prefKeys = prefsNode.keys();
+ if (prefKeys != null && prefKeys.length > 0) {
+ for (String prefKey : prefKeys) {
+ if (!prefKey.equals(AgentConfigurationConstants.AGENT_SECURITY_TOKEN)) {
+ prefsNode.remove(prefKey);
+ }
+ }
+ }
+ }
+ prefsNode.flush();
}
if (config_file_name != null) {
@@ -3260,6 +3301,8 @@ public class AgentMain {
preferencesNode.put(ServiceContainerConfigurationConstants.DATA_DIRECTORY, data_dir);
}
+ prefs.flush();
+
LOG.debug(AgentI18NResourceKeys.CONFIGURATION, agent_configuration);
return;
diff --git a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/i18n/AgentI18NResourceKeys.java b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/i18n/AgentI18NResourceKeys.java
index b0608c2..6489401 100644
--- a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/i18n/AgentI18NResourceKeys.java
+++ b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/i18n/AgentI18NResourceKeys.java
@@ -613,7 +613,8 @@ public interface AgentI18NResourceKeys {
+ "\\ -g, --purgeplugins Deletes all plugins, forcing the agent to re-download all of them\\n\\\n"
+ "\\ -h, --help Shows this help message (default)\\n\\\n"
+ "\\ -i, --input=<filename> Specifies a script file to be used for input\\n\\\n"
- + "\\ -l, --cleanconfig Clears out any existing configuration and data files so the agent starts with a totally clean slate\\n\\\n"
+ + "\\ -l, --cleanconfig Clears out existing configuration and data files, except for the security token.\\n\\\n"
+ + "\\ -L, --cleanallconfig Clears out all existing configuration and data files so the agent starts with a totally clean slate\\n\\\n"
+ "\\ -n, --nostart If specified, the agent will not be automatically started\\n\\\n"
+ "\\ -o, --output=<filename> Specifies a file to write all output (excluding log messages)\\n\\\n"
+ "\\ -p, --pref=<preferences name> Specifies the agent preferences name used to identify what configuration to use\\n\\\n"
@@ -2104,4 +2105,10 @@ public interface AgentI18NResourceKeys {
@I18NMessage("Restarting the plugin container due to previous failure to merge the upgrade results with the server.")
String RESTARTING_PLUGIN_CONTAINER_AFTER_UPGRADE_MERGE_FAILURE = "AgentMain.pc-conditional-restart";
+
+ @I18NMessage("Restoring the original security token.")
+ String RESTORING_SECURITY_TOKEN = "AgentMain.restoring-security-token";
+
+ @I18NMessage("The config file already has a security token defined. The original security token will be thrown away.")
+ String NOT_RESTORING_SECURITY_TOKEN = "AgentMain.not-restoring-security-token";
}
\ No newline at end of file
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/ha/ViewAgentUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/ha/ViewAgentUIBean.java
index fd2286c..90d7042 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/ha/ViewAgentUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/ha/ViewAgentUIBean.java
@@ -56,6 +56,9 @@ public class ViewAgentUIBean extends PagedDataTableUIBean {
hasPermission();
int agentId = FacesContextUtility.getRequiredRequestParameter("agentId", Integer.class);
agent = agentManager.getAgentByID(agentId);
+ if (!hasPermissionToViewSecurityToken()) {
+ agent.setAgentToken("******");
+ }
}
return agent;
}
@@ -94,4 +97,9 @@ public class ViewAgentUIBean extends PagedDataTableUIBean {
+ "] does not have the proper permissions to view or manage agents");
}
}
+
+ private boolean hasPermissionToViewSecurityToken() {
+ Subject subject = EnterpriseFacesContextUtility.getSubject();
+ return LookupUtil.getAuthorizationManager().hasGlobalPermission(subject, Permission.MANAGE_SECURITY);
+ }
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
index e380b6e..75c4d65 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
@@ -104,14 +104,10 @@ public class CoreServerServiceImpl implements CoreServerService {
* something else".
*
* If there is no original token with the request, this is either a brand new agent never before registered, or it
- * is an agent that has been registered before but for some reason lost its token. In this case, we will look at
- * this registration's host/port of this new agent. If it matches the host/port of another agent but the
- * existing name and the new agent's name don't match, the server will abort and tell the agent, "You don't know
- * who you are, but I know there is already an agent with the host and port you are trying to register with
- * under a different name - so I'm going to trust this original agent and not allow you to register that name
- * under a different host/port. If you are that original agent, then you need to register with that original
- * name". When the agent registers again, this time with the correct name, the agent will be given its token.
- * This usually will occur if you reinstall the agent and try to register it under a different name.
+ * is an agent that has been registered before but for some reason lost its token.
+ * In this case, if there is no agent with the name being requested, we register this as a new agent.
+ * If, however, the agent name is already in use, we abort the request. An agent cannot register with an
+ * existing agent without sending that agent's security token.
*/
if (request.getOriginalToken() != null) {
@@ -140,19 +136,24 @@ public class CoreServerServiceImpl implements CoreServerService {
// the agent request provided a name that already is in use by an agent. However, the request
// provided a security token that was not assigned to any agent! How can this be? Something is fishy.
String msg = "The agent asking for registration under the name [" + request.getName()
- + "] provided an invalid security token. This request will fail.";
+ + "] provided an invalid security token. This request will fail. "
+ + "Please consult an administrator to reconfigure this agent with its proper security token.";
throw new AgentRegistrationException(msg);
}
Agent agentByAddressPort = getAgentManager().getAgentByAddressAndPort(request.getAddress(),
request.getPort());
if (agentByAddressPort != null) {
- // the agent request provided a security token but it is an unknown/unused/bogus token.
+ // The agent is requesting to register an unused agent name - so this is considered a new agent.
+ // It provided a security token but it is an unknown/obsolete/bogus token (usually due to the
+ // fact that someone purged the platform/agent from the server database but the old agent is
+ // still around with its old token).
// However, the IP/port it wants to use is already in-use. This sounds fishy. If we let this
// go through, this agent with an unknown/bogus token will essentially hijack this IP/port
// belonging to an existing agent. If the agent wants to reuse an IP/port already in existence, it should
// already know its security token associated with that IP/port. Thus, we will abort this request.
String msg = "The agent asking for registration under the name [" + request.getName()
- + "] is attempting to authenticate using an unknown security token. This request will fail.";
+ + "] is attempting to take another agent's address/port [" + request.getAddress() + ":"
+ + request.getPort() + "] with an unknown security token. This request will fail.";
throw new AgentRegistrationException(msg);
}
}
@@ -167,23 +168,25 @@ public class CoreServerServiceImpl implements CoreServerService {
+ request.getPort()
+ "] that is already registered under a different name ["
+ agentByAddressPort.getName()
- + "]; if this new agent is actually the same as the original, then re-register with the same name";
+ + "]; if this new agent is actually the same as the original, then re-register with the same name"
+ + " and same security token.";
throw new AgentRegistrationException(msg);
+ } else {
+ String msg = "The agent [" + request.getName()
+ + "] is attempting to re-register without a security token. "
+ + "Please consult an administrator to reconfigure this agent with its proper security token.";
+ throw new AgentRegistrationException(msg);
+
}
} else {
if (agentByName != null) {
- // the name being registered already exists, however, the agent request is trying to set it
- // to some unknown IP/port combination and there is no security token to authenticate this request!
+ // the name being registered already exists - but there is no security token to authenticate this request!
// Therefore, because this agent name is already registered and because this current request
// cannot authenticate itself with the proper security token, we fail.
String msg = "An agent is trying to register with an existing agent name ["
+ request.getName()
- + "]. The registration request is attempting to assign the agent an unknown address/port ["
- + request.getAddress()
- + ":"
- + request.getPort()
+ "] without providing a valid security token. If you are attempting to re-register this agent, "
- + "make sure you register with its prior address/port.";
+ + "please consult an administrator to reconfigure this agent with its proper security token.";
throw new AgentRegistrationException(msg);
}
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java
index a3dda5e..5a702ff 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java
@@ -41,12 +41,57 @@ import org.rhq.core.domain.cloud.Server;
import org.rhq.core.domain.cloud.Server.OperationMode;
import org.rhq.core.domain.common.ProductInfo;
import org.rhq.core.domain.resource.Agent;
+import org.rhq.core.util.exception.ThrowableUtil;
import org.rhq.enterprise.server.test.AbstractEJB3Test;
import org.rhq.enterprise.server.util.LookupUtil;
/**
+ * This tests the core server service. This includes agent registration.
+ *
* @author John Mazzitelli
*/
+
+// These are the agent registration unit test cases.
+// (allowed) means the registration should succeed.
+// (REJECT) means the server should reject that agent registration request.
+// ---
+// A. testNewAgentRegistrationWithOldToken
+// 1) register a new agent with a non-null, unknown security token (allowed)
+// B. testChangeAddressPort
+// 1) register a new agent Z with null security token (allowed)
+// 2) re-register agent Z with its token but change its host (allowed)
+// 3) re-register agent Z with its token but change its port (allowed)
+// 4) re-register agent Z with its token but change its host and port (allowed)
+// 5) re-register agent Z with its token but change nothing (allowed)
+// 6) re-register agent Z with NO token but change its host (REJECT)
+// 7) re-register agent Z with NO token but change its port (REJECT)
+// 8) re-register agent Z with NO token but change its host and port (REJECT)
+// 9) re-register agent Z with NO token but change nothing (REJECT)
+// C. testNormalAgentRegistration
+// 1) register a new agent A with a null security token (allowed, same as B.1)
+// D. testHijackExistingAgentAddressPort
+// 1) register a new agent B with null security token but using A's host/port (REJECT)
+// E. testHijackExistingAgentName
+// 1) register an agent using an already-existing agent name A, and using A's host but a different port with a null token (REJECT - missing the token)
+// 2) register an agent using an already-existing agent name A, and using A's port but a different host with a null token (REJECT - missing the token)
+// 3) register an agent using an already-existing agent name A, and using a different port and host with a null token (REJECT - missing the token)
+// F. testHijackExistingAgentAddressPortWithBogusToken
+// 1) register a new agent B with A's host and port but with a bogus token (REJECT)
+// G. testHijackExistingAgentNameWithBogusToken
+// 1) re-register agent A with its original host and port but with a bogus token (REJECT)
+// 2) re-register agent A with its original host, different port but with bogus token (REJECT)
+// 3) re-register agent A with different host, original port but with bogus token (REJECT)
+// 4) re-register agent A with different host and port but with bogus token (REJECT)
+// H. testHijackExistingAgentNameWithAnotherAgentToken
+// 1) re-register agent A with its original host and port but with Z's security token (REJECT - you cannot authenticate using another agent's token)
+// 2) re-register agent A with different host and original port but with Z's security token (REJECT - you cannot authenticate using another agent's token)
+// 3) re-register agent A with original host and different port but with Z's security token (REJECT - you cannot authenticate using another agent's token)
+// 4) re-register agent A with different host and port but with Z's security token (REJECT - you cannot authenticate using another agent's token)
+// I. testAgentHijackingAnotherAgentAddressPort
+// 1) re-register agent A using A's correct security token but with Z's host and Z's port (REJECT - one agent cannot steal another agent's host/port endpoint) NOTE: this is not D.1 because in D.1, the request doesn't have a token. This I.1 test has a token and it really authenticates the agent A making the request. This also isn't F.1 because F.1, while it has a token, it is not a valid token, thus its agent is not authentic.
+// J. testAttemptToChangeAgentName
+// 1) register agent "newName" but with Z's host/port/token. In effect, this is trying to change the agent's name. (REJECT - you are not allowed to rename agents)
+
@Test
public class CoreServerServiceImplTest extends AbstractEJB3Test {
private static final String TEST_AGENT_NAME_PREFIX = "CoreServerServiceImplTest.Agent";
@@ -67,7 +112,7 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
public void testNewAgentRegistrationWithOldToken() throws Exception {
// this tests the case where someone purged an agent from the DB, but then
// changed their mind and want to re-run that agent and re-register it again.
- // In this case, the agent (if not using --cleanconfig) would still have the old token.
+ // In this case, the agent (if not using --cleanallconfig) would still have the old token.
// The agent should still be allowed to register again.
CoreServerServiceImpl service = new CoreServerServiceImpl();
AgentRegistrationRequest request = createRequest(prefixName("old"), "hostOld", 12345, "oldtoken");
@@ -128,18 +173,40 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
assert agent.getAddress().equals("hostZdoubleprime");
assert agent.getPort() == 55552;
- // now don't change Z's host/port but re-register everything the same, but with no token
- request = createRequest(zName, "hostZdoubleprime", 55552, null);
- results = service.registerAgent(request);
- assert results != null;
- agent = LookupUtil.getAgentManager().getAgentByAgentToken(results.getAgentToken());
- assert agent.getName().equals(zName);
- assert agent.getAddress().equals("hostZdoubleprime");
- assert agent.getPort() == 55552;
-
// remember this agent so our later tests can use it
zReq = request;
zResults = results;
+
+ // Try to re-register changes to host and/or port but do not send any token.
+ // Because there is no token, these should fail.
+ request = createRequest(zName, B_HOST, zReq.getPort(), null);
+ try {
+ service.registerAgent(request);
+ assert false : "(1) Should not have been able to register without a token";
+ } catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
+ }
+ request = createRequest(zName, zReq.getAddress(), B_PORT, null);
+ try {
+ service.registerAgent(request);
+ assert false : "(2) Should not have been able to register without a token";
+ } catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
+ }
+ request = createRequest(zName, B_HOST, B_PORT, null);
+ try {
+ service.registerAgent(request);
+ assert false : "(3) Should not have been able to register without a token";
+ } catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
+ }
+ request = createRequest(zName, zReq.getAddress(), zReq.getPort(), null);
+ try {
+ service.registerAgent(request);
+ assert false : "(4) Should not have been able to register without a token";
+ } catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
+ }
}
@Test(dependsOnMethods = "testChangeAddressPort")
@@ -159,6 +226,7 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
service.registerAgent(request);
assert false : "Should not have been able to hijack a used host/port with new agent name";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
}
@@ -171,18 +239,21 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
service.registerAgent(request);
assert false : "Should not have been able to hijack a used agent name without a token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
request = createRequest(aReq.getName(), B_HOST, aReq.getPort(), null);
try {
service.registerAgent(request);
assert false : "Should not have been able to hijack a used agent name without a token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
request = createRequest(aReq.getName(), B_HOST, B_PORT, null);
try {
service.registerAgent(request);
assert false : "Should not have been able to hijack a used agent name without a token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
}
@@ -195,6 +266,7 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
service.registerAgent(request);
assert false : "Should not have been able to hijack a used host/port with new agent name and invalid token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
}
@@ -207,24 +279,28 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
service.registerAgent(request);
assert false : "Should not have been able to hijack a used agent name with an invalid token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
request = createRequest(aReq.getName(), aReq.getAddress(), B_PORT, "badtoken");
try {
service.registerAgent(request);
assert false : "Should not have been able to hijack a used agent name with an invalid token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
request = createRequest(aReq.getName(), B_HOST, aReq.getPort(), "badtoken");
try {
service.registerAgent(request);
assert false : "Should not have been able to hijack a used agent name with an invalid token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
request = createRequest(aReq.getName(), B_HOST, B_PORT, "badtoken");
try {
service.registerAgent(request);
assert false : "Should not have been able to hijack a used agent name with an invalid token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
}
@@ -237,24 +313,28 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
service.registerAgent(request);
assert false : "Should not have been able to hijack agent A using Z's token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
request = createRequest(aReq.getName(), B_HOST, aReq.getPort(), zResults.getAgentToken());
try {
service.registerAgent(request);
assert false : "Should not have been able to hijack agent A using Z's token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
request = createRequest(aReq.getName(), aReq.getAddress(), B_PORT, zResults.getAgentToken());
try {
service.registerAgent(request);
assert false : "Should not have been able to hijack agent A using Z's token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
request = createRequest(aReq.getName(), B_HOST, B_PORT, zResults.getAgentToken());
try {
service.registerAgent(request);
assert false : "Should not have been able to hijack agent A using Z's token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
}
@@ -267,6 +347,7 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
service.registerAgent(request);
assert false : "An agent should not have been able to hijack another agent's host/port";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
}
@@ -279,6 +360,7 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
service.registerAgent(request);
assert false : "An agent should not be able to change its name";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
}
@@ -291,6 +373,12 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
return TEST_AGENT_NAME_PREFIX + name;
}
+ private void debugPrintThrowable(Throwable t) {
+ if (true) {
+ System.out.println(ThrowableUtil.getAllMessages(t));
+ }
+ }
+
@BeforeClass
public void prepare() throws Exception {
// mock the name of our server via the sysprop (in production, this is normally set in rhq-server.properties)
commit a51904cf0250d43f5c9f27f42521352f47750052
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Tue Jan 17 14:48:11 2012 -0500
[BZ 772318] forgot to test the most obvious and most common scenario - re-starting the agent. My original fix broke that. This fixes it back again and adds a unit test for it.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
index 85aa364..e380b6e 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
@@ -125,7 +125,7 @@ public class CoreServerServiceImpl implements CoreServerService {
} else {
Agent agentByAddressPort = getAgentManager().getAgentByAddressAndPort(request.getAddress(),
request.getPort());
- if (agentByAddressPort != null) {
+ if (agentByAddressPort != null && !agentByAddressPort.getName().equals(request.getName())) {
// the agent request provided information about an authentic agent but it is trying to
// steal another agent's host/port. Thus, we will abort this request.
String msg = "The agent asking for registration [" + request.getName()
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java
index 0abbbeb..a3dda5e 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java
@@ -119,6 +119,15 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
assert agent.getAddress().equals("hostZdoubleprime");
assert agent.getPort() == 55552;
+ // now don't change Z's host/port but re-register everything the same with its token
+ request = createRequest(zName, "hostZdoubleprime", 55552, results.getAgentToken());
+ results = service.registerAgent(request);
+ assert results != null;
+ agent = LookupUtil.getAgentManager().getAgentByAgentToken(results.getAgentToken());
+ assert agent.getName().equals(zName);
+ assert agent.getAddress().equals("hostZdoubleprime");
+ assert agent.getPort() == 55552;
+
// now don't change Z's host/port but re-register everything the same, but with no token
request = createRequest(zName, "hostZdoubleprime", 55552, null);
results = service.registerAgent(request);
@@ -343,6 +352,8 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
MBeanServer mbs = getJBossMBeanServer();
mbs.unregisterMBean(CoreServerMBean.OBJECT_NAME);
+ unprepareForTestAgents();
+
// in case this was set before our tests, put it back the way it was
if (oldServerNamePropertyValue != null) {
System.setProperty(RHQ_SERVER_NAME_PROPERTY, oldServerNamePropertyValue);
commit c9ad8035f689423b5c06b1818d16b9574442b30e
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Tue Jan 17 12:04:00 2012 -0500
[BZ 772318] the agent registration process was lax and allowed somethings that it shouldn't have. This closes the known holes and adds unit tests to check that all known use-cases are handled properly.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
index 3b5ecc7..85aa364 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
@@ -94,9 +94,6 @@ public class CoreServerServiceImpl implements CoreServerService {
// If not, no point in continuing - the server won't be able to talk to the agent anyway.
pingEndpoint(request.getRemoteEndpoint());
- // TODO (ghinkle): Check platform limit - do we still care about this?
- //getPlatformManager().enforceLicenseLimit(args.getCpuCount());
-
Agent agentByName = getAgentManager().getAgentByName(request.getName());
/*
@@ -125,6 +122,38 @@ public class CoreServerServiceImpl implements CoreServerService {
String msg = "The agent asking for registration is already registered with the name ["
+ agentByToken.getName() + "], it cannot change its name to [" + request.getName() + "]";
throw new AgentRegistrationException(msg);
+ } else {
+ Agent agentByAddressPort = getAgentManager().getAgentByAddressAndPort(request.getAddress(),
+ request.getPort());
+ if (agentByAddressPort != null) {
+ // the agent request provided information about an authentic agent but it is trying to
+ // steal another agent's host/port. Thus, we will abort this request.
+ String msg = "The agent asking for registration [" + request.getName()
+ + "] is trying to register the same address/port [" + request.getAddress() + ":"
+ + request.getPort() + "] that is already registered under a different name ["
+ + agentByAddressPort.getName() + "]";
+ throw new AgentRegistrationException(msg);
+ }
+ }
+ } else {
+ if (agentByName != null) {
+ // the agent request provided a name that already is in use by an agent. However, the request
+ // provided a security token that was not assigned to any agent! How can this be? Something is fishy.
+ String msg = "The agent asking for registration under the name [" + request.getName()
+ + "] provided an invalid security token. This request will fail.";
+ throw new AgentRegistrationException(msg);
+ }
+ Agent agentByAddressPort = getAgentManager().getAgentByAddressAndPort(request.getAddress(),
+ request.getPort());
+ if (agentByAddressPort != null) {
+ // the agent request provided a security token but it is an unknown/unused/bogus token.
+ // However, the IP/port it wants to use is already in-use. This sounds fishy. If we let this
+ // go through, this agent with an unknown/bogus token will essentially hijack this IP/port
+ // belonging to an existing agent. If the agent wants to reuse an IP/port already in existence, it should
+ // already know its security token associated with that IP/port. Thus, we will abort this request.
+ String msg = "The agent asking for registration under the name [" + request.getName()
+ + "] is attempting to authenticate using an unknown security token. This request will fail.";
+ throw new AgentRegistrationException(msg);
}
}
} else {
@@ -141,6 +170,22 @@ public class CoreServerServiceImpl implements CoreServerService {
+ "]; if this new agent is actually the same as the original, then re-register with the same name";
throw new AgentRegistrationException(msg);
}
+ } else {
+ if (agentByName != null) {
+ // the name being registered already exists, however, the agent request is trying to set it
+ // to some unknown IP/port combination and there is no security token to authenticate this request!
+ // Therefore, because this agent name is already registered and because this current request
+ // cannot authenticate itself with the proper security token, we fail.
+ String msg = "An agent is trying to register with an existing agent name ["
+ + request.getName()
+ + "]. The registration request is attempting to assign the agent an unknown address/port ["
+ + request.getAddress()
+ + ":"
+ + request.getPort()
+ + "] without providing a valid security token. If you are attempting to re-register this agent, "
+ + "make sure you register with its prior address/port.";
+ throw new AgentRegistrationException(msg);
+ }
}
}
@@ -196,8 +241,8 @@ public class CoreServerServiceImpl implements CoreServerService {
// the agent does not yet exist, we need to create it
try {
- agentByName = new Agent(request.getName(), request.getAddress(), request.getPort(), request
- .getRemoteEndpoint(), generateAgentToken());
+ agentByName = new Agent(request.getName(), request.getAddress(), request.getPort(),
+ request.getRemoteEndpoint(), generateAgentToken());
agentByName.setServer(registeringServer);
agentManager.createAgent(agentByName);
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java
new file mode 100644
index 0000000..0abbbeb
--- /dev/null
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java
@@ -0,0 +1,432 @@
+/*
+ * RHQ Management Platform
+ * Copyright 2011, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.enterprise.server.core;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.util.Date;
+import java.util.List;
+import java.util.Properties;
+
+import javax.management.MBeanServer;
+import javax.persistence.Query;
+
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import org.rhq.core.clientapi.server.core.AgentRegistrationException;
+import org.rhq.core.clientapi.server.core.AgentRegistrationRequest;
+import org.rhq.core.clientapi.server.core.AgentRegistrationResults;
+import org.rhq.core.clientapi.server.core.AgentVersion;
+import org.rhq.core.domain.cloud.Server;
+import org.rhq.core.domain.cloud.Server.OperationMode;
+import org.rhq.core.domain.common.ProductInfo;
+import org.rhq.core.domain.resource.Agent;
+import org.rhq.enterprise.server.test.AbstractEJB3Test;
+import org.rhq.enterprise.server.util.LookupUtil;
+
+/**
+ * @author John Mazzitelli
+ */
+@Test
+public class CoreServerServiceImplTest extends AbstractEJB3Test {
+ private static final String TEST_AGENT_NAME_PREFIX = "CoreServerServiceImplTest.Agent";
+ private static final String RHQ_SERVER_NAME_PROPERTY = "rhq.server.high-availability.name";
+ private AgentVersion agentVersion;
+ private Server server;
+ private String oldServerNamePropertyValue = null;
+ private AgentRegistrationRequest aReq = null;
+ private AgentRegistrationResults aResults = null;
+ private AgentRegistrationRequest zReq = null;
+ private AgentRegistrationResults zResults = null;
+
+ private static final int A_PORT = 11111;
+ private static final String A_HOST = "hostA";
+ private static final int B_PORT = 22222;
+ private static final String B_HOST = "hostB";
+
+ public void testNewAgentRegistrationWithOldToken() throws Exception {
+ // this tests the case where someone purged an agent from the DB, but then
+ // changed their mind and want to re-run that agent and re-register it again.
+ // In this case, the agent (if not using --cleanconfig) would still have the old token.
+ // The agent should still be allowed to register again.
+ CoreServerServiceImpl service = new CoreServerServiceImpl();
+ AgentRegistrationRequest request = createRequest(prefixName("old"), "hostOld", 12345, "oldtoken");
+ AgentRegistrationResults results = service.registerAgent(request);
+ assert results != null : "cannot re-register an old agent";
+ Agent agent = LookupUtil.getAgentManager().getAgentByAgentToken(results.getAgentToken());
+ assert agent.getName().equals(request.getName());
+ assert agent.getAddress().equals(request.getAddress());
+ assert agent.getPort() == request.getPort();
+ LookupUtil.getAgentManager().deleteAgent(agent);
+ }
+
+ public void testChangeAddressPort() throws Exception {
+ CoreServerServiceImpl service = new CoreServerServiceImpl();
+ AgentRegistrationRequest request;
+ AgentRegistrationResults results;
+
+ String zName = prefixName("Z");
+
+ // create a new agent Z with host/port of hostZ/55550
+ request = createRequest(zName, "hostZ", 55550, null);
+ results = service.registerAgent(request);
+ assert results != null : "got null results";
+
+ // now change Z's host to hostZprime
+ request = createRequest(zName, "hostZprime", 55550, results.getAgentToken());
+ results = service.registerAgent(request);
+ assert results != null;
+ Agent agent = LookupUtil.getAgentManager().getAgentByAgentToken(results.getAgentToken());
+ assert agent.getName().equals(zName);
+ assert agent.getAddress().equals("hostZprime");
+ assert agent.getPort() == 55550;
+
+ // now change Z's port to 55551
+ request = createRequest(zName, "hostZprime", 55551, results.getAgentToken());
+ results = service.registerAgent(request);
+ assert results != null;
+ agent = LookupUtil.getAgentManager().getAgentByAgentToken(results.getAgentToken());
+ assert agent.getName().equals(zName);
+ assert agent.getAddress().equals("hostZprime");
+ assert agent.getPort() == 55551;
+
+ // now change Z's host/port to hostZdoubleprime/55552
+ request = createRequest(zName, "hostZdoubleprime", 55552, results.getAgentToken());
+ results = service.registerAgent(request);
+ assert results != null;
+ agent = LookupUtil.getAgentManager().getAgentByAgentToken(results.getAgentToken());
+ assert agent.getName().equals(zName);
+ assert agent.getAddress().equals("hostZdoubleprime");
+ assert agent.getPort() == 55552;
+
+ // now don't change Z's host/port but re-register everything the same, but with no token
+ request = createRequest(zName, "hostZdoubleprime", 55552, null);
+ results = service.registerAgent(request);
+ assert results != null;
+ agent = LookupUtil.getAgentManager().getAgentByAgentToken(results.getAgentToken());
+ assert agent.getName().equals(zName);
+ assert agent.getAddress().equals("hostZdoubleprime");
+ assert agent.getPort() == 55552;
+
+ // remember this agent so our later tests can use it
+ zReq = request;
+ zResults = results;
+ }
+
+ @Test(dependsOnMethods = "testChangeAddressPort")
+ public void testNormalAgentRegistration() throws Exception {
+ CoreServerServiceImpl service = new CoreServerServiceImpl();
+ aReq = createRequest(prefixName("A"), A_HOST, A_PORT, null);
+ aResults = service.registerAgent(aReq);
+ assert aResults != null : "got null results";
+ }
+
+ @Test(dependsOnMethods = "testNormalAgentRegistration")
+ public void testHijackExistingAgentAddressPort() throws Exception {
+ CoreServerServiceImpl service = new CoreServerServiceImpl();
+ AgentRegistrationRequest request;
+ request = createRequest(prefixName("B"), aReq.getAddress(), aReq.getPort(), null);
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack a used host/port with new agent name";
+ } catch (AgentRegistrationException ok) {
+ }
+ }
+
+ @Test(dependsOnMethods = "testNormalAgentRegistration")
+ public void testHijackExistingAgentName() throws Exception {
+ CoreServerServiceImpl service = new CoreServerServiceImpl();
+ AgentRegistrationRequest request;
+ request = createRequest(aReq.getName(), aReq.getAddress(), B_PORT, null);
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack a used agent name without a token";
+ } catch (AgentRegistrationException ok) {
+ }
+ request = createRequest(aReq.getName(), B_HOST, aReq.getPort(), null);
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack a used agent name without a token";
+ } catch (AgentRegistrationException ok) {
+ }
+ request = createRequest(aReq.getName(), B_HOST, B_PORT, null);
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack a used agent name without a token";
+ } catch (AgentRegistrationException ok) {
+ }
+ }
+
+ @Test(dependsOnMethods = "testNormalAgentRegistration")
+ public void testHijackExistingAgentAddressPortWithBogusToken() throws Exception {
+ CoreServerServiceImpl service = new CoreServerServiceImpl();
+ AgentRegistrationRequest request;
+ request = createRequest(prefixName("B"), aReq.getAddress(), aReq.getPort(), "badtoken");
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack a used host/port with new agent name and invalid token";
+ } catch (AgentRegistrationException ok) {
+ }
+ }
+
+ @Test(dependsOnMethods = "testNormalAgentRegistration")
+ public void testHijackExistingAgentNameWithBogusToken() throws Exception {
+ CoreServerServiceImpl service = new CoreServerServiceImpl();
+ AgentRegistrationRequest request;
+ request = createRequest(aReq.getName(), aReq.getAddress(), aReq.getPort(), "badtoken");
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack a used agent name with an invalid token";
+ } catch (AgentRegistrationException ok) {
+ }
+ request = createRequest(aReq.getName(), aReq.getAddress(), B_PORT, "badtoken");
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack a used agent name with an invalid token";
+ } catch (AgentRegistrationException ok) {
+ }
+ request = createRequest(aReq.getName(), B_HOST, aReq.getPort(), "badtoken");
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack a used agent name with an invalid token";
+ } catch (AgentRegistrationException ok) {
+ }
+ request = createRequest(aReq.getName(), B_HOST, B_PORT, "badtoken");
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack a used agent name with an invalid token";
+ } catch (AgentRegistrationException ok) {
+ }
+ }
+
+ @Test(dependsOnMethods = "testNormalAgentRegistration")
+ public void testHijackExistingAgentNameWithAnotherAgentToken() throws Exception {
+ CoreServerServiceImpl service = new CoreServerServiceImpl();
+ AgentRegistrationRequest request;
+ request = createRequest(aReq.getName(), aReq.getAddress(), aReq.getPort(), zResults.getAgentToken());
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack agent A using Z's token";
+ } catch (AgentRegistrationException ok) {
+ }
+ request = createRequest(aReq.getName(), B_HOST, aReq.getPort(), zResults.getAgentToken());
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack agent A using Z's token";
+ } catch (AgentRegistrationException ok) {
+ }
+ request = createRequest(aReq.getName(), aReq.getAddress(), B_PORT, zResults.getAgentToken());
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack agent A using Z's token";
+ } catch (AgentRegistrationException ok) {
+ }
+ request = createRequest(aReq.getName(), B_HOST, B_PORT, zResults.getAgentToken());
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack agent A using Z's token";
+ } catch (AgentRegistrationException ok) {
+ }
+ }
+
+ @Test(dependsOnMethods = "testNormalAgentRegistration")
+ public void testAgentHijackingAnotherAgentAddressPort() throws Exception {
+ CoreServerServiceImpl service = new CoreServerServiceImpl();
+ AgentRegistrationRequest request;
+ request = createRequest(aReq.getName(), zReq.getAddress(), zReq.getPort(), aResults.getAgentToken());
+ try {
+ service.registerAgent(request);
+ assert false : "An agent should not have been able to hijack another agent's host/port";
+ } catch (AgentRegistrationException ok) {
+ }
+ }
+
+ @Test(dependsOnMethods = "testNormalAgentRegistration")
+ public void testAttemptToChangeAgentName() throws Exception {
+ CoreServerServiceImpl service = new CoreServerServiceImpl();
+ AgentRegistrationRequest request;
+ request = createRequest(prefixName("newName"), zReq.getAddress(), zReq.getPort(), zResults.getAgentToken());
+ try {
+ service.registerAgent(request);
+ assert false : "An agent should not be able to change its name";
+ } catch (AgentRegistrationException ok) {
+ }
+ }
+
+ private AgentRegistrationRequest createRequest(String name, String address, int port, String token) {
+ return new AgentRegistrationRequest(name, address, port, "socket://" + address + ":" + port
+ + "/?rhq.communications.connector.rhqtype=agent", true, token, agentVersion);
+ }
+
+ private String prefixName(String name) {
+ return TEST_AGENT_NAME_PREFIX + name;
+ }
+
+ @BeforeClass
+ public void prepare() throws Exception {
+ // mock the name of our server via the sysprop (in production, this is normally set in rhq-server.properties)
+ oldServerNamePropertyValue = System.getProperty(RHQ_SERVER_NAME_PROPERTY);
+ String newServerNamePropertyValue = "CoreServerServiceImplTest.Server";
+ System.setProperty(RHQ_SERVER_NAME_PROPERTY, newServerNamePropertyValue);
+
+ // mock up our core server MBean that provides information about where the jboss home dir is
+ MBeanServer mbs = getJBossMBeanServer();
+ DummyCoreServer mbean = new DummyCoreServer();
+ mbs.registerMBean(mbean, CoreServerMBean.OBJECT_NAME);
+
+ // in order to register, we need to mock out the agent version file used by the server
+ // to determine the agent version it supports.
+ agentVersion = new AgentVersion("1.2.3", "12345");
+ File agentVersionFile = new File(mbean.getJBossServerHomeDir(),
+ "deploy/rhq.ear/rhq-downloads/rhq-agent/rhq-server-agent-versions.properties");
+ agentVersionFile.getParentFile().mkdirs();
+ agentVersionFile.delete();
+ Properties agentVersionProps = new Properties();
+ agentVersionProps.put("rhq-agent.latest.version", agentVersion.getVersion());
+ agentVersionProps.put("rhq-agent.latest.build-number", agentVersion.getBuild());
+ FileOutputStream fos = new FileOutputStream(agentVersionFile);
+ try {
+ agentVersionProps.store(fos, "This file was created by " + CoreServerServiceImplTest.class.getName());
+ } finally {
+ fos.close();
+ }
+
+ // this mocks out the endpoint ping - the server will think the agent that is registering is up and pingable
+ prepareForTestAgents();
+
+ // mock our server
+ server = new Server();
+ server.setName(newServerNamePropertyValue);
+ server.setAddress("CoreServerServiceImplTest.localhost");
+ server.setPort(12345);
+ server.setSecurePort(12346);
+ server.setOperationMode(OperationMode.NORMAL);
+ int serverId = LookupUtil.getServerManager().create(server);
+ server.setId(serverId);
+ }
+
+ @AfterClass
+ public void unprepare() throws Exception {
+ // clean up any agents we might have created
+ Query q = getEntityManager().createQuery(
+ "select a from Agent a where name like '" + TEST_AGENT_NAME_PREFIX + "%'");
+ List<Agent> doomed = (List<Agent>) q.getResultList();
+ for (Agent deleteMe : doomed) {
+ LookupUtil.getAgentManager().deleteAgent(deleteMe);
+ }
+
+ // cleanup our test server
+ LookupUtil.getCloudManager().updateServerMode(new Integer[] { server.getId() }, OperationMode.DOWN);
+ LookupUtil.getCloudManager().deleteServer(server.getId());
+
+ // shutdown our mock mbean server
+ MBeanServer mbs = getJBossMBeanServer();
+ mbs.unregisterMBean(CoreServerMBean.OBJECT_NAME);
+
+ // in case this was set before our tests, put it back the way it was
+ if (oldServerNamePropertyValue != null) {
+ System.setProperty(RHQ_SERVER_NAME_PROPERTY, oldServerNamePropertyValue);
+ }
+ }
+
+ interface DummyCoreServerMBean extends CoreServerMBean {
+ };
+
+ class DummyCoreServer implements DummyCoreServerMBean {
+
+ @Override
+ public String getName() {
+ return "CoreServer";
+ }
+
+ @Override
+ public int getState() {
+ return 0;
+ }
+
+ @Override
+ public String getStateString() {
+ return "";
+ }
+
+ @Override
+ public void jbossInternalLifecycle(String arg0) throws Exception {
+ }
+
+ @Override
+ public void create() throws Exception {
+ }
+
+ @Override
+ public void destroy() {
+ }
+
+ @Override
+ public void start() throws Exception {
+ }
+
+ @Override
+ public void stop() {
+ }
+
+ @Override
+ public String getVersion() {
+ return null;
+ }
+
+ @Override
+ public String getBuildNumber() {
+ return null;
+ }
+
+ @Override
+ public Date getBootTime() {
+ return null;
+ }
+
+ @Override
+ public File getInstallDir() {
+ return null;
+ }
+
+ @Override
+ public File getJBossServerHomeDir() {
+ return new File(System.getProperty("java.io.tmpdir"), "CoreServerServiceImplTest");
+ }
+
+ @Override
+ public File getJBossServerDataDir() {
+ return null;
+ }
+
+ @Override
+ public File getJBossServerTempDir() {
+ return null;
+ }
+
+ @Override
+ public ProductInfo getProductInfo() {
+ return null;
+ }
+ }
+}
12 years, 4 months
[rhq] Branch 'rc/jon3.0.1.GA' - modules/cli-tests modules/common modules/core modules/enterprise modules/helpers modules/integration-tests modules/plugins modules/pom.xml modules/test-utils pom.xml
by rhqci
modules/cli-tests/pom.xml | 2 +-
modules/common/ant-bundle/pom.xml | 2 +-
modules/common/drift/pom.xml | 2 +-
modules/common/filetemplate-bundle/pom.xml | 2 +-
modules/common/jboss-as/pom.xml | 2 +-
modules/common/pom.xml | 2 +-
modules/core/client-api/pom.xml | 2 +-
modules/core/comm-api/pom.xml | 2 +-
modules/core/dbutils/pom.xml | 2 +-
modules/core/domain/pom.xml | 2 +-
modules/core/gui/pom.xml | 2 +-
modules/core/native-system/pom.xml | 2 +-
modules/core/plugin-api/pom.xml | 2 +-
modules/core/plugin-container/pom.xml | 2 +-
modules/core/plugin-validator/pom.xml | 2 +-
modules/core/pom.xml | 2 +-
modules/core/util/pom.xml | 2 +-
modules/enterprise/agent/pom.xml | 2 +-
modules/enterprise/agentupdate/pom.xml | 2 +-
modules/enterprise/binding/pom.xml | 4 ++--
modules/enterprise/comm/pom.xml | 2 +-
modules/enterprise/gui/base-perspective-jar/pom.xml | 2 +-
modules/enterprise/gui/base-perspective-war/pom.xml | 2 +-
modules/enterprise/gui/content_http-war/pom.xml | 2 +-
modules/enterprise/gui/coregui/pom.xml | 2 +-
modules/enterprise/gui/installer-war/pom.xml | 2 +-
modules/enterprise/gui/pom.xml | 2 +-
modules/enterprise/gui/portal-war/pom.xml | 2 +-
modules/enterprise/gui/rest-war/pom.xml | 2 +-
modules/enterprise/pom.xml | 2 +-
modules/enterprise/remoting/cli/pom.xml | 2 +-
modules/enterprise/remoting/client-api/pom.xml | 2 +-
modules/enterprise/remoting/client-deps/pom.xml | 2 +-
modules/enterprise/remoting/pom.xml | 2 +-
modules/enterprise/remoting/webservices/pom.xml | 2 +-
modules/enterprise/server/client-api/pom.xml | 4 ++--
modules/enterprise/server/container-lib/pom.xml | 2 +-
modules/enterprise/server/container/pom.xml | 2 +-
modules/enterprise/server/ear/pom.xml | 2 +-
modules/enterprise/server/itests/pom.xml | 2 +-
modules/enterprise/server/jar/pom.xml | 2 +-
modules/enterprise/server/plugins/alert-cli/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-email/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-irc/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-log4j/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-microblog/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-mobicents/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-operations/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-roles/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-snmp/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-subject/pom.xml | 4 ++--
modules/enterprise/server/plugins/ant-bundle/pom.xml | 2 +-
modules/enterprise/server/plugins/cobbler/pom.xml | 4 ++--
modules/enterprise/server/plugins/disk/pom.xml | 2 +-
modules/enterprise/server/plugins/drift-rhq/pom.xml | 2 +-
modules/enterprise/server/plugins/filetemplate-bundle/pom.xml | 2 +-
modules/enterprise/server/plugins/groovy-script/pom.xml | 4 ++--
modules/enterprise/server/plugins/jboss-software/pom.xml | 2 +-
modules/enterprise/server/plugins/packagetype-cli/pom.xml | 4 ++--
modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml | 2 +-
modules/enterprise/server/plugins/perspectives/core/pom.xml | 2 +-
modules/enterprise/server/plugins/pom.xml | 2 +-
modules/enterprise/server/plugins/rhnhosted/pom.xml | 2 +-
modules/enterprise/server/plugins/url/pom.xml | 2 +-
modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml | 2 +-
modules/enterprise/server/plugins/yum/pom.xml | 2 +-
modules/enterprise/server/pom.xml | 2 +-
modules/enterprise/server/safe-invoker/pom.xml | 2 +-
modules/enterprise/server/sars/agent-sar/pom.xml | 2 +-
modules/enterprise/server/sars/pom.xml | 2 +-
modules/enterprise/server/xml-schemas/pom.xml | 2 +-
modules/helpers/bundleGen/pom.xml | 4 ++--
modules/helpers/perftest-support/pom.xml | 4 ++--
modules/helpers/pom.xml | 2 +-
modules/helpers/rtfilter/pom.xml | 2 +-
modules/integration-tests/apache-plugin-test/pom.xml | 2 +-
modules/integration-tests/jboss-as-7-plugin-test/pom.xml | 2 +-
modules/integration-tests/jndi-access/jndi-access-test/pom.xml | 2 +-
modules/integration-tests/jndi-access/pom.xml | 2 +-
modules/integration-tests/jndi-access/remote-server/pom.xml | 2 +-
modules/integration-tests/pom.xml | 2 +-
modules/plugins/aliases/pom.xml | 2 +-
modules/plugins/ant-bundle/pom.xml | 2 +-
modules/plugins/apache/pom.xml | 2 +-
modules/plugins/augeas/pom.xml | 2 +-
modules/plugins/byteman/pom.xml | 2 +-
modules/plugins/cobbler/pom.xml | 2 +-
modules/plugins/cron/pom.xml | 2 +-
modules/plugins/database/pom.xml | 2 +-
modules/plugins/filetemplate-bundle/pom.xml | 2 +-
modules/plugins/grub/pom.xml | 2 +-
modules/plugins/hadoop/pom.xml | 2 +-
modules/plugins/hibernate/pom.xml | 2 +-
modules/plugins/hosts/pom.xml | 2 +-
modules/plugins/hudson/pom.xml | 4 ++--
modules/plugins/iis/pom.xml | 2 +-
modules/plugins/irc/pom.xml | 2 +-
modules/plugins/jboss-as-5/pom.xml | 2 +-
modules/plugins/jboss-as-7/pom.xml | 2 +-
modules/plugins/jboss-as/pom.xml | 2 +-
modules/plugins/jboss-cache-v3/pom.xml | 2 +-
modules/plugins/jboss-cache/pom.xml | 2 +-
modules/plugins/jmx/pom.xml | 2 +-
modules/plugins/kickstart/pom.xml | 2 +-
modules/plugins/mod-cluster/pom.xml | 2 +-
modules/plugins/mysql/pom.xml | 2 +-
modules/plugins/netservices/pom.xml | 2 +-
modules/plugins/oracle/pom.xml | 2 +-
modules/plugins/pattern-generator/pom.xml | 2 +-
modules/plugins/perftest/pom.xml | 2 +-
modules/plugins/platform/pom.xml | 2 +-
modules/plugins/pom.xml | 2 +-
modules/plugins/postfix/pom.xml | 2 +-
modules/plugins/postgres/pom.xml | 2 +-
modules/plugins/rhq-agent/pom.xml | 2 +-
modules/plugins/rhq-server/pom.xml | 2 +-
modules/plugins/samba/pom.xml | 2 +-
modules/plugins/script/pom.xml | 2 +-
modules/plugins/script2/pom.xml | 2 +-
modules/plugins/snmptrapd/pom.xml | 2 +-
modules/plugins/sshd/pom.xml | 2 +-
modules/plugins/sudoers/pom.xml | 2 +-
modules/plugins/tomcat/pom.xml | 2 +-
modules/plugins/twitter/pom.xml | 2 +-
modules/plugins/validate-all-plugins/pom.xml | 2 +-
modules/plugins/virt/pom.xml | 2 +-
modules/pom.xml | 2 +-
modules/test-utils/pom.xml | 2 +-
pom.xml | 2 +-
129 files changed, 147 insertions(+), 147 deletions(-)
New commits:
commit 9a303a0aec72fe5694c6cd82a602993a5159d445
Author: Hudson <jboss-qa-internal(a)redhat.com>
Date: Tue Feb 7 13:43:23 2012 -0500
tag RHQ_4_2_0_JON_3_0_1_GA
diff --git a/modules/cli-tests/pom.xml b/modules/cli-tests/pom.xml
index 0991c91..3167d39 100644
--- a/modules/cli-tests/pom.xml
+++ b/modules/cli-tests/pom.xml
@@ -8,7 +8,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index 1370a4c..1e93560 100644
--- a/modules/common/ant-bundle/pom.xml
+++ b/modules/common/ant-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/drift/pom.xml b/modules/common/drift/pom.xml
index c41be24..198d9bc 100644
--- a/modules/common/drift/pom.xml
+++ b/modules/common/drift/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<artifactId>rhq-common-drift</artifactId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index 0c28ff6..972a5a2 100644
--- a/modules/common/filetemplate-bundle/pom.xml
+++ b/modules/common/filetemplate-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<artifactId>rhq-filetemplate-bundle-common</artifactId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 1b56b75..91f9d94 100644
--- a/modules/common/jboss-as/pom.xml
+++ b/modules/common/jboss-as/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<artifactId>rhq-jboss-as-common</artifactId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index 5388ea4..262a9f7 100644
--- a/modules/common/pom.xml
+++ b/modules/common/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index a228e4f..2f2f2b3 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index e834756..5442ad3 100644
--- a/modules/core/comm-api/pom.xml
+++ b/modules/core/comm-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 83a5f8d..dbeb7ef 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index 88e0649..ed95c9c 100644
--- a/modules/core/domain/pom.xml
+++ b/modules/core/domain/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<artifactId>rhq-core-domain</artifactId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index 3be4240..848940f 100644
--- a/modules/core/gui/pom.xml
+++ b/modules/core/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index a693dbe..c741bd1 100644
--- a/modules/core/native-system/pom.xml
+++ b/modules/core/native-system/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index 56fd6e6..1c16c09 100644
--- a/modules/core/plugin-api/pom.xml
+++ b/modules/core/plugin-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index 352de5e..a8475ca 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<artifactId>rhq-core-plugin-container</artifactId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index 81685e7..1ce1e2c 100644
--- a/modules/core/plugin-validator/pom.xml
+++ b/modules/core/plugin-validator/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index 33d49ed..4aa616d 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index 3e6ae6e..eaa3727 100644
--- a/modules/core/util/pom.xml
+++ b/modules/core/util/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<artifactId>rhq-core-util</artifactId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index 2978ebb..93a6f6b 100644
--- a/modules/enterprise/agent/pom.xml
+++ b/modules/enterprise/agent/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index f845ef7..24c2281 100644
--- a/modules/enterprise/agentupdate/pom.xml
+++ b/modules/enterprise/agentupdate/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/binding/pom.xml b/modules/enterprise/binding/pom.xml
index 488c94f..dca4aae 100644
--- a/modules/enterprise/binding/pom.xml
+++ b/modules/enterprise/binding/pom.xml
@@ -3,10 +3,10 @@
<parent>
<artifactId>rhq-enterprise-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<artifactId>rhq-script-bindings</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Script Bindings</name>
<description>Abstraction of different facilities and default configurations for script bindings</description>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index 37fab92..be3e3a8 100644
--- a/modules/enterprise/comm/pom.xml
+++ b/modules/enterprise/comm/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index 32b7c7c..7db2560 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index 114b7d1..a2ad386 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index 9ffc883..f1af689 100644
--- a/modules/enterprise/gui/content_http-war/pom.xml
+++ b/modules/enterprise/gui/content_http-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-gui-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index 15ebbec..b202e1f 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index 2811c07..3d1c787 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index 1c4c70c..5def783 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -8,7 +8,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index 79ea577..d840e09 100644
--- a/modules/enterprise/gui/portal-war/pom.xml
+++ b/modules/enterprise/gui/portal-war/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/rest-war/pom.xml b/modules/enterprise/gui/rest-war/pom.xml
index c8b2614..dc59c86 100644
--- a/modules/enterprise/gui/rest-war/pom.xml
+++ b/modules/enterprise/gui/rest-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index f83b2e6..638f32c 100644
--- a/modules/enterprise/pom.xml
+++ b/modules/enterprise/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index e2db1d4..57135c2 100644
--- a/modules/enterprise/remoting/cli/pom.xml
+++ b/modules/enterprise/remoting/cli/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index 4c9f8c2..ebb80cc 100644
--- a/modules/enterprise/remoting/client-api/pom.xml
+++ b/modules/enterprise/remoting/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/client-deps/pom.xml b/modules/enterprise/remoting/client-deps/pom.xml
index 5afc82a..5db71e7 100644
--- a/modules/enterprise/remoting/client-deps/pom.xml
+++ b/modules/enterprise/remoting/client-deps/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index 4cd7b22..a9be89d 100644
--- a/modules/enterprise/remoting/pom.xml
+++ b/modules/enterprise/remoting/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index 47bfa9d..049e375 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/client-api/pom.xml b/modules/enterprise/server/client-api/pom.xml
index 8a25f9d..dbba668 100644
--- a/modules/enterprise/server/client-api/pom.xml
+++ b/modules/enterprise/server/client-api/pom.xml
@@ -5,13 +5,13 @@
<parent>
<artifactId>rhq-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-server-client-api</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server Client API</name>
<description>The implementation of the client API when accessing the server locally</description>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index d93e4bb..3ca78dc 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index c0f0d63..70427bf 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index 9deb192..8f44df2 100644
--- a/modules/enterprise/server/ear/pom.xml
+++ b/modules/enterprise/server/ear/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/itests/pom.xml b/modules/enterprise/server/itests/pom.xml
index 63cdc98..69c1143 100644
--- a/modules/enterprise/server/itests/pom.xml
+++ b/modules/enterprise/server/itests/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 60da801..3acbcbd 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/plugins/alert-cli/pom.xml b/modules/enterprise/server/plugins/alert-cli/pom.xml
index e7b916b..84f1702 100644
--- a/modules/enterprise/server/plugins/alert-cli/pom.xml
+++ b/modules/enterprise/server/plugins/alert-cli/pom.xml
@@ -3,11 +3,11 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>alert-cli</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server CLI Script Alert Plugin</name>
<description>An alert sender able to execute an arbitrary CLI script as a response to an alert</description>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index 2a51a08..aa5328b 100644
--- a/modules/enterprise/server/plugins/alert-email/pom.xml
+++ b/modules/enterprise/server/plugins/alert-email/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.server</groupId>
<artifactId>alert-email</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server Email Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-irc/pom.xml b/modules/enterprise/server/plugins/alert-irc/pom.xml
index 87dcc35..878c288 100644
--- a/modules/enterprise/server/plugins/alert-irc/pom.xml
+++ b/modules/enterprise/server/plugins/alert-irc/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-irc</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server IRC Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-log4j/pom.xml b/modules/enterprise/server/plugins/alert-log4j/pom.xml
index 186aee8..c22ce1a 100644
--- a/modules/enterprise/server/plugins/alert-log4j/pom.xml
+++ b/modules/enterprise/server/plugins/alert-log4j/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-log4j</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server Log4J Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index 13c4903..452d62a 100644
--- a/modules/enterprise/server/plugins/alert-microblog/pom.xml
+++ b/modules/enterprise/server/plugins/alert-microblog/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-microblog</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server Microblog Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-mobicents/pom.xml b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
index a76e6c2..a30f495 100644
--- a/modules/enterprise/server/plugins/alert-mobicents/pom.xml
+++ b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-mobicents</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server Mobicents Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-operations/pom.xml b/modules/enterprise/server/plugins/alert-operations/pom.xml
index e5c89a7..6ffab76 100644
--- a/modules/enterprise/server/plugins/alert-operations/pom.xml
+++ b/modules/enterprise/server/plugins/alert-operations/pom.xml
@@ -2,14 +2,14 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-operations</artifactId>
<packaging>jar</packaging>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server Opertions Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-roles/pom.xml b/modules/enterprise/server/plugins/alert-roles/pom.xml
index ddc59eb..69f4c4b 100644
--- a/modules/enterprise/server/plugins/alert-roles/pom.xml
+++ b/modules/enterprise/server/plugins/alert-roles/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-roles</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server Roles Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-snmp/pom.xml b/modules/enterprise/server/plugins/alert-snmp/pom.xml
index 6fb795a..9ccda53 100644
--- a/modules/enterprise/server/plugins/alert-snmp/pom.xml
+++ b/modules/enterprise/server/plugins/alert-snmp/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-snmp</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server SNMP Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-subject/pom.xml b/modules/enterprise/server/plugins/alert-subject/pom.xml
index 3f706ad..b1b56d0 100644
--- a/modules/enterprise/server/plugins/alert-subject/pom.xml
+++ b/modules/enterprise/server/plugins/alert-subject/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-subject</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server Subject Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 253c731..6a7d56d 100644
--- a/modules/enterprise/server/plugins/ant-bundle/pom.xml
+++ b/modules/enterprise/server/plugins/ant-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/cobbler/pom.xml b/modules/enterprise/server/plugins/cobbler/pom.xml
index 13c443a..1282542 100644
--- a/modules/enterprise/server/plugins/cobbler/pom.xml
+++ b/modules/enterprise/server/plugins/cobbler/pom.xml
@@ -4,14 +4,14 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>rhq-serverplugin-cobbler</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server Cobbler Plugin</name>
diff --git a/modules/enterprise/server/plugins/disk/pom.xml b/modules/enterprise/server/plugins/disk/pom.xml
index 5cdd385..5815d72 100644
--- a/modules/enterprise/server/plugins/disk/pom.xml
+++ b/modules/enterprise/server/plugins/disk/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/drift-rhq/pom.xml b/modules/enterprise/server/plugins/drift-rhq/pom.xml
index 38e5268..47f753e 100644
--- a/modules/enterprise/server/plugins/drift-rhq/pom.xml
+++ b/modules/enterprise/server/plugins/drift-rhq/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/filetemplate-bundle/pom.xml b/modules/enterprise/server/plugins/filetemplate-bundle/pom.xml
index a9a3f5a..cc629bf 100644
--- a/modules/enterprise/server/plugins/filetemplate-bundle/pom.xml
+++ b/modules/enterprise/server/plugins/filetemplate-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/groovy-script/pom.xml b/modules/enterprise/server/plugins/groovy-script/pom.xml
index f440701..5f5509f 100644
--- a/modules/enterprise/server/plugins/groovy-script/pom.xml
+++ b/modules/enterprise/server/plugins/groovy-script/pom.xml
@@ -4,14 +4,14 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>groovy-script-server-plugin</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server Groovy Script Plugin</name>
diff --git a/modules/enterprise/server/plugins/jboss-software/pom.xml b/modules/enterprise/server/plugins/jboss-software/pom.xml
index 96044a9..733c73e 100644
--- a/modules/enterprise/server/plugins/jboss-software/pom.xml
+++ b/modules/enterprise/server/plugins/jboss-software/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/packagetype-cli/pom.xml b/modules/enterprise/server/plugins/packagetype-cli/pom.xml
index 43d061c..57ec9b0 100644
--- a/modules/enterprise/server/plugins/packagetype-cli/pom.xml
+++ b/modules/enterprise/server/plugins/packagetype-cli/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>packagetype-cli</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>RHQ Enterprise Server CLI Package Type Plugin</name>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index ada1b7e..492c91c 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index d7d85bf..253d03f 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index 4ba3acb..364d1c5 100644
--- a/modules/enterprise/server/plugins/pom.xml
+++ b/modules/enterprise/server/plugins/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index c9a0f90..2c0a623 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index 6e0b704..f67dc29 100644
--- a/modules/enterprise/server/plugins/url/pom.xml
+++ b/modules/enterprise/server/plugins/url/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml b/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml
index 0f8c56f..999bb39 100644
--- a/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml
+++ b/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/yum/pom.xml b/modules/enterprise/server/plugins/yum/pom.xml
index 8977b4f..b67cfb7 100644
--- a/modules/enterprise/server/plugins/yum/pom.xml
+++ b/modules/enterprise/server/plugins/yum/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/pom.xml b/modules/enterprise/server/pom.xml
index ab1c7ee..ca72b35 100644
--- a/modules/enterprise/server/pom.xml
+++ b/modules/enterprise/server/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index 2acd0dc..872737a 100644
--- a/modules/enterprise/server/safe-invoker/pom.xml
+++ b/modules/enterprise/server/safe-invoker/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index 42c1dbe..1837a58 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index d1d6a37..fb0b291 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index 5805b93..c7d0dce 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/helpers/bundleGen/pom.xml b/modules/helpers/bundleGen/pom.xml
index b042173..9902ea8 100644
--- a/modules/helpers/bundleGen/pom.xml
+++ b/modules/helpers/bundleGen/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-helpers</artifactId>
<groupId>org.rhq.helpers</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.helpers</groupId>
<artifactId>bundleGen</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<build>
<plugins>
diff --git a/modules/helpers/perftest-support/pom.xml b/modules/helpers/perftest-support/pom.xml
index 62fca8f..c5aeb57 100644
--- a/modules/helpers/perftest-support/pom.xml
+++ b/modules/helpers/perftest-support/pom.xml
@@ -3,11 +3,11 @@
<parent>
<artifactId>rhq-helpers</artifactId>
<groupId>org.rhq.helpers</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>perftest-support</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<name>Performance Testing Support</name>
<description>To support performance testing, this is a basic tool to support extracting and later reimporting of
data from/to a database.
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index 29dc323..0261e21 100644
--- a/modules/helpers/pom.xml
+++ b/modules/helpers/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index 85495c7..c9bf1ce 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/integration-tests/apache-plugin-test/pom.xml b/modules/integration-tests/apache-plugin-test/pom.xml
index 84b13c6..3cdb7de 100644
--- a/modules/integration-tests/apache-plugin-test/pom.xml
+++ b/modules/integration-tests/apache-plugin-test/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-integration-tests</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/integration-tests/jboss-as-7-plugin-test/pom.xml b/modules/integration-tests/jboss-as-7-plugin-test/pom.xml
index 29c867e..26957d6 100644
--- a/modules/integration-tests/jboss-as-7-plugin-test/pom.xml
+++ b/modules/integration-tests/jboss-as-7-plugin-test/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-integration-tests</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/integration-tests/jndi-access/jndi-access-test/pom.xml b/modules/integration-tests/jndi-access/jndi-access-test/pom.xml
index 1991e0e..704d2d1 100644
--- a/modules/integration-tests/jndi-access/jndi-access-test/pom.xml
+++ b/modules/integration-tests/jndi-access/jndi-access-test/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>jndi-access-test-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.3.0-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/integration-tests/jndi-access/pom.xml b/modules/integration-tests/jndi-access/pom.xml
index 6e9c673..740a56f 100644
--- a/modules/integration-tests/jndi-access/pom.xml
+++ b/modules/integration-tests/jndi-access/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-integration-tests</artifactId>
<groupId>org.rhq</groupId>
- <version>4.3.0-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/integration-tests/jndi-access/remote-server/pom.xml b/modules/integration-tests/jndi-access/remote-server/pom.xml
index 9046e6f..7d9f485 100644
--- a/modules/integration-tests/jndi-access/remote-server/pom.xml
+++ b/modules/integration-tests/jndi-access/remote-server/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>jndi-access-test-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.3.0-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/integration-tests/pom.xml b/modules/integration-tests/pom.xml
index 4a259d2..eb342cf 100644
--- a/modules/integration-tests/pom.xml
+++ b/modules/integration-tests/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index 7465cf4..488cf6b 100644
--- a/modules/plugins/aliases/pom.xml
+++ b/modules/plugins/aliases/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index 0561ce1..0344994 100644
--- a/modules/plugins/ant-bundle/pom.xml
+++ b/modules/plugins/ant-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index a97dbf6..6c3464e 100644
--- a/modules/plugins/apache/pom.xml
+++ b/modules/plugins/apache/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 97d456c..a11d7ae 100644
--- a/modules/plugins/augeas/pom.xml
+++ b/modules/plugins/augeas/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/byteman/pom.xml b/modules/plugins/byteman/pom.xml
index 930d7ca..0518035 100644
--- a/modules/plugins/byteman/pom.xml
+++ b/modules/plugins/byteman/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index e39760b..b19fc30 100644
--- a/modules/plugins/cobbler/pom.xml
+++ b/modules/plugins/cobbler/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index ea3c6c9..4c61b27 100644
--- a/modules/plugins/cron/pom.xml
+++ b/modules/plugins/cron/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index 4a8de83..35b0bd9 100644
--- a/modules/plugins/database/pom.xml
+++ b/modules/plugins/database/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index 6d1a653..057ac66 100644
--- a/modules/plugins/filetemplate-bundle/pom.xml
+++ b/modules/plugins/filetemplate-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index 3337fb8..8c46656 100644
--- a/modules/plugins/grub/pom.xml
+++ b/modules/plugins/grub/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hadoop/pom.xml b/modules/plugins/hadoop/pom.xml
index 0c9dc76..b1c024a 100644
--- a/modules/plugins/hadoop/pom.xml
+++ b/modules/plugins/hadoop/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index 33c5cdd..d487017 100644
--- a/modules/plugins/hibernate/pom.xml
+++ b/modules/plugins/hibernate/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<!-- Bypass the jopr-plugins-parent which can not have children. It must build after the plugins in order to execute integration tests on them. -->
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index 5d72e0a..9a967d1 100644
--- a/modules/plugins/hosts/pom.xml
+++ b/modules/plugins/hosts/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index 6717151..bd67dd4 100644
--- a/modules/plugins/hudson/pom.xml
+++ b/modules/plugins/hudson/pom.xml
@@ -6,12 +6,12 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-hudson-plugin</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<packaging>jar</packaging>
<name>RHQ Hudson Plugin</name>
diff --git a/modules/plugins/iis/pom.xml b/modules/plugins/iis/pom.xml
index a3ea5b3..930af72 100644
--- a/modules/plugins/iis/pom.xml
+++ b/modules/plugins/iis/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/irc/pom.xml b/modules/plugins/irc/pom.xml
index aac7c8d..4bd81f0 100644
--- a/modules/plugins/irc/pom.xml
+++ b/modules/plugins/irc/pom.xml
@@ -5,7 +5,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/jboss-as-5/pom.xml b/modules/plugins/jboss-as-5/pom.xml
index 8b459d5..0fff9eb 100644
--- a/modules/plugins/jboss-as-5/pom.xml
+++ b/modules/plugins/jboss-as-5/pom.xml
@@ -9,7 +9,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as-7/pom.xml b/modules/plugins/jboss-as-7/pom.xml
index f326dce..04f2c6d 100644
--- a/modules/plugins/jboss-as-7/pom.xml
+++ b/modules/plugins/jboss-as-7/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index 95dbd68..3035090 100644
--- a/modules/plugins/jboss-as/pom.xml
+++ b/modules/plugins/jboss-as/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-cache-v3/pom.xml b/modules/plugins/jboss-cache-v3/pom.xml
index acfa6b6..3a1120c 100644
--- a/modules/plugins/jboss-cache-v3/pom.xml
+++ b/modules/plugins/jboss-cache-v3/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-cache/pom.xml b/modules/plugins/jboss-cache/pom.xml
index bc443af..dc08ac6 100644
--- a/modules/plugins/jboss-cache/pom.xml
+++ b/modules/plugins/jboss-cache/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index 6bfcb71..56bdd06 100644
--- a/modules/plugins/jmx/pom.xml
+++ b/modules/plugins/jmx/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/kickstart/pom.xml b/modules/plugins/kickstart/pom.xml
index 30a12a2..ee74e39 100644
--- a/modules/plugins/kickstart/pom.xml
+++ b/modules/plugins/kickstart/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mod-cluster/pom.xml b/modules/plugins/mod-cluster/pom.xml
index 3bb008e..8dfbf66 100644
--- a/modules/plugins/mod-cluster/pom.xml
+++ b/modules/plugins/mod-cluster/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index 5558690..5fddda4 100644
--- a/modules/plugins/mysql/pom.xml
+++ b/modules/plugins/mysql/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 89e3fc3..9e1965c 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index 0a77271..46abf88 100644
--- a/modules/plugins/oracle/pom.xml
+++ b/modules/plugins/oracle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pattern-generator/pom.xml b/modules/plugins/pattern-generator/pom.xml
index 9c622f1..6935ffb 100644
--- a/modules/plugins/pattern-generator/pom.xml
+++ b/modules/plugins/pattern-generator/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index acf1fab..549daf1 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index e960632..05c6699 100644
--- a/modules/plugins/platform/pom.xml
+++ b/modules/plugins/platform/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index 966a2c1..96fe70d 100644
--- a/modules/plugins/pom.xml
+++ b/modules/plugins/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 4ba47d5..54ac7dc 100644
--- a/modules/plugins/postfix/pom.xml
+++ b/modules/plugins/postfix/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index 3bd88e7..c0b4e13 100644
--- a/modules/plugins/postgres/pom.xml
+++ b/modules/plugins/postgres/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index b3770b9..032969c 100644
--- a/modules/plugins/rhq-agent/pom.xml
+++ b/modules/plugins/rhq-agent/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index a6002a9..7673396 100644
--- a/modules/plugins/rhq-server/pom.xml
+++ b/modules/plugins/rhq-server/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index be54b7e..2add38e 100644
--- a/modules/plugins/samba/pom.xml
+++ b/modules/plugins/samba/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index cc7178f..9116f34 100644
--- a/modules/plugins/script/pom.xml
+++ b/modules/plugins/script/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script2/pom.xml b/modules/plugins/script2/pom.xml
index a569592..03323d1 100644
--- a/modules/plugins/script2/pom.xml
+++ b/modules/plugins/script2/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index 8f1f2b6..c02a3a2 100644
--- a/modules/plugins/snmptrapd/pom.xml
+++ b/modules/plugins/snmptrapd/pom.xml
@@ -2,7 +2,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index 919dc76..58001eb 100644
--- a/modules/plugins/sshd/pom.xml
+++ b/modules/plugins/sshd/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index 749b647..fc4cc67 100644
--- a/modules/plugins/sudoers/pom.xml
+++ b/modules/plugins/sudoers/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index d4c6ba5..287e029 100644
--- a/modules/plugins/tomcat/pom.xml
+++ b/modules/plugins/tomcat/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index 5a92cac..0fcd691 100644
--- a/modules/plugins/twitter/pom.xml
+++ b/modules/plugins/twitter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/validate-all-plugins/pom.xml b/modules/plugins/validate-all-plugins/pom.xml
index c390e24..60aabe3 100644
--- a/modules/plugins/validate-all-plugins/pom.xml
+++ b/modules/plugins/validate-all-plugins/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/virt/pom.xml b/modules/plugins/virt/pom.xml
index 13ac351..8f21c6f 100644
--- a/modules/plugins/virt/pom.xml
+++ b/modules/plugins/virt/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index f790d7f..ec51642 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index 74705ea..5f60d61 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -7,7 +7,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
</parent>
<artifactId>test-utils</artifactId>
diff --git a/pom.xml b/pom.xml
index 774564f..3f99eff 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.2.0.JON.3.0.2-SNAPSHOT</version>
+ <version>4.2.0.JON.3.0.1.GA</version>
<packaging>pom</packaging>
<name>RHQ</name>
12 years, 4 months
[rhq] modules/jopr
by ips
modules/jopr/etc/jbas5-jnp-client/client.sh | 24 +++++++++---------------
1 file changed, 9 insertions(+), 15 deletions(-)
New commits:
commit 3e1a4c99f56e0a4e3aca393f96a1a4ae4defe881
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Tue Feb 7 12:37:30 2012 -0500
some minor cleanup
diff --git a/modules/jopr/etc/jbas5-jnp-client/client.sh b/modules/jopr/etc/jbas5-jnp-client/client.sh
index d4f0b8d..6087710 100755
--- a/modules/jopr/etc/jbas5-jnp-client/client.sh
+++ b/modules/jopr/etc/jbas5-jnp-client/client.sh
@@ -9,39 +9,33 @@
MAIN_JAR_NAME=jbas5-jnp-client-1.0.jar
MAIN_CLASS=test.RmiClient
-if [ "x$JBOSS_HOME" = "x" ]; then
- echo "JBOSS_HOME environment variable is undefined."
+if [ -z "$JBOSS_HOME" ]; then
+ echo "JBOSS_HOME environment variable is undefined." >&2
exit 1
fi
if [ ! -d "$JBOSS_HOME" ]; then
- echo "Dir specified by JBOSS_HOME variable ($JBOSS_HOME) does not exist."
+ echo "Dir specified by JBOSS_HOME variable ($JBOSS_HOME) does not exist." >&2
exit 1
fi
-JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8788"
+JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8788"
# Find MAIN_JAR, or we can't continue
MAIN_JAR=target/$MAIN_JAR_NAME
-if [ ! -f "$MAIN_JAR" ]
-then
- echo Could not locate $MAIN_JAR%. Please check that you are in the
- echo bin directory when running this script.
+if [ ! -f "$MAIN_JAR" ]; then
+ echo "Could not locate $MAIN_JAR. Please check that you are in the bin directory when running this script." >&2
exit 1
fi
-if [ "`uname`" == "Darwin" ]
-then
+if [ "`uname`" == "Darwin" ]; then
JAVA_HOME=/usr
fi
-if [ "$JAVA_HOME" == "" ]
-then
+if [ "$JAVA_HOME" == "" ]; then
JAVA=java
-
- echo JAVA_HOME is not set. Unexpected results may occur.
- echo Set JAVA_HOME to the directory of your local JDK to avoid this message.
+ echo "JAVA_HOME is not set. Unexpected results may occur. Set JAVA_HOME to the directory of your local JDK to avoid this message."
fi
12 years, 4 months
[rhq] 41 commits - .classpath modules/cli-tests modules/core modules/enterprise modules/plugins
by snegrea
.classpath | 10
modules/cli-tests/src/test/script/org/rhq/enterprise/remoting/cli/test_RepoManager.js | 9
modules/core/domain/src/main/java/org/rhq/core/domain/content/InstalledPackage.java | 2
modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageVersion.java | 18
modules/core/domain/src/main/java/org/rhq/core/domain/content/composite/PackageListItemComposite.java | 17
modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java | 61
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateNewPackageUIBean.java | 57
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/DeployPackagesUIBean.java | 17
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/RepoPackageVersionsUIBean.java | 4
modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repo-plain.xhtml | 4
modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/content/create-plain.xhtml | 7
modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/content/view-plain.xhtml | 2
modules/enterprise/remoting/webservices/src/test/java/org/rhq/enterprise/server/ws/WsRepoManagerTest.java | 2
modules/enterprise/server/jar/pom.xml | 15
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java | 5
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java | 50
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java | 34
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java | 53
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerBean.java | 4
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java | 20
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentManagerBeanMockTest.java | 456 +++++++
modules/enterprise/server/plugins/disk/pom.xml | 18
modules/enterprise/server/plugins/disk/src/main/java/org/rhq/enterprise/server/plugins/disk/DiskSource.java | 35
modules/enterprise/server/plugins/disk/src/test/java/org/rhq/enterprise/server/plugins/disk/test/DiskSourceTest.java | 263 ++++
modules/enterprise/server/plugins/jboss-software/src/main/java/org/rhq/enterprise/server/plugins/jboss/software/RssFeedParser.java | 17
modules/enterprise/server/plugins/jboss-software/src/test/java/org/rhq/enterprise/server/plugins/jboss/software/test/RssFeedParserTest.java | 13
modules/enterprise/server/plugins/pom.xml | 1
modules/enterprise/server/plugins/rhnhosted/.gitignore | 1
modules/enterprise/server/plugins/rhnhosted/README.testing | 24
modules/enterprise/server/plugins/rhnhosted/pom.xml | 339 -----
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/PrimaryXML.java | 369 -----
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNActivator.java | 155 --
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNConstants.java | 33
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNHelper.java | 492 -------
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNProvider.java | 386 ------
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNSSLCertReader.java | 138 --
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNSSLSocketFactory.java | 78 -
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNSummary.java | 65 -
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/Certificate.java | 438 ------
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/CertificateFactory.java | 145 --
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/ChannelFamilyDescriptor.java | 84 -
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/ChannelFamilyExtractor.java | 58
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/FieldExtractor.java | 41
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/PublicKeyRing.java | 145 --
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/RhnSecurityProvider.java | 67 -
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/SimpleExtractor.java | 97 -
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/XmlTag.java | 210 ---
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/ApacheXmlRpcExecutor.java | 43
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/CustomReqPropTransport.java | 174 --
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/CustomReqPropTransportFactory.java | 82 -
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnComm.java | 120 -
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnDownloader.java | 179 --
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnHttpURLConnectionFactory.java | 55
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnJaxbTransport.java | 114 -
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnJaxbTransportFactory.java | 29
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnSSLTransport.java | 75 -
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnSSLTransportFactory.java | 75 -
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/XmlRpcExecutor.java | 44
modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/XmlRpcExecutorFactory.java | 100 -
modules/enterprise/server/plugins/rhnhosted/src/main/resources/META-INF/rhq-serverplugin.xml | 42
modules/enterprise/server/plugins/rhnhosted/src/main/xsd/genSchema.sh | 4
modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.channel_families.xml | 1
modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.channels.xml | 1
modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.errata.xml | 74 -
modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.kickstartable_trees.xml | 1
modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.packages.xml | 431 ------
modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.packages_short.xml | 1
modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.product_names.xml | 1
modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.source_packages.xml | 5
modules/enterprise/server/plugins/rhnhosted/src/main/xsd/schema0.xsd | 403 ------
modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/BaseRHNTest.java | 107 -
modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/PrimaryXMLTest.java | 154 --
modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNActivatorTest.java | 75 -
modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNHelperTest.java | 83 -
modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNProviderTest.java | 233 ---
modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNSSLCertReaderTest.java | 83 -
modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNSSLSocketFactoryTest.java | 104 -
modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/BasicRHNTest.java | 627 ----------
modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/MockRhnHttpURLConnection.java | 51
modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/MockRhnXmlRpcExecutor.java | 274 ----
modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnCommTest.java | 399 ------
modules/enterprise/server/plugins/rhnhosted/src/test/resources/test-log4j.xml | 464 -------
modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/FullRemotePackageInfo.java | 4
modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/RemotePackageInfo.java | 12
modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/SimpleIndexParser.java | 52
modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/UrlProvider.java | 6
modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/XmlIndexParser.java | 69 -
modules/enterprise/server/plugins/url/src/test/java/org/rhq/enterprise/server/plugins/url/XmlIndexParserTest.java | 8
modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml | 1
modules/enterprise/server/plugins/yum/src/main/java/org/rhq/enterprise/server/plugins/yum/Repo.java | 5
modules/plugins/jboss-as-5/pom.xml | 16
modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java | 82 -
modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/script/ScriptComponent.java | 6
modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/FileContentDelegate.java | 157 ++
modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/JarContentDelegate.java | 37
modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/FileContentDelegateTest.java | 264 ++++
modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/JarContentDelegateTest.java | 86 +
modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/ScriptComponentTest.java | 110 +
modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/StandaloneManagedDeploymentComponentTest.java | 92 +
modules/plugins/jboss-as-5/src/test/resources/sampleWithImplementation.war |binary
modules/plugins/jboss-as-5/src/test/resources/sampleWithManifest.war |binary
modules/plugins/jboss-as-5/src/test/resources/sampleWithSpecification.war |binary
modules/plugins/jboss-as-5/src/test/resources/sampleWithSpecificationImplementation.war |binary
modules/plugins/jboss-as-5/src/test/resources/sampleWithoutManifest.war |binary
modules/plugins/jboss-as/pom.xml | 18
modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java | 58
modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/JBossASServerComponent.java | 5
modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java | 172 ++
modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/JarContentDelegate.java | 139 +-
modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/ApplicationComponentTest.java | 113 +
modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/FileContentDelegateTest.java | 270 ++++
modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/JarContentDelegateTest.java | 86 +
modules/plugins/jboss-as/src/test/resources/sampleWithImplementation.war |binary
modules/plugins/jboss-as/src/test/resources/sampleWithManifest.war |binary
modules/plugins/jboss-as/src/test/resources/sampleWithSpecification.war |binary
modules/plugins/jboss-as/src/test/resources/sampleWithSpecificationImplementation.war |binary
modules/plugins/jboss-as/src/test/resources/sampleWithoutManifest.war |binary
modules/plugins/tomcat/pom.xml | 18
modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatVHostComponent.java | 13
modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java | 78 -
modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java | 161 ++
modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/FileContentDelegateTest.java | 246 +++
modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/TomcatVHostComponentTest.java | 155 ++
modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/TomcatWarComponentTest.java | 270 ++++
modules/plugins/tomcat/src/test/resources/sampleWithImplementation.war |binary
modules/plugins/tomcat/src/test/resources/sampleWithManifest.war |binary
modules/plugins/tomcat/src/test/resources/sampleWithSpecification.war |binary
modules/plugins/tomcat/src/test/resources/sampleWithSpecificationImplementation.war |binary
modules/plugins/tomcat/src/test/resources/sampleWithoutManifest.war |binary
129 files changed, 3468 insertions(+), 8608 deletions(-)
New commits:
commit abe7b89ee8c154446555000f6c4da37086b7e213
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Tue Feb 7 10:31:56 2012 -0600
[BZ 727959] The script path was not using the bin subdirectory of the server home directory. Updated the code to point to the correct file before attempting to compute the SHA256.
Also, added unit tests to verify the new behavior.
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/script/ScriptComponent.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/script/ScriptComponent.java
index 36682c4..2b1f1c1 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/script/ScriptComponent.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/script/ScriptComponent.java
@@ -213,7 +213,11 @@ public class ScriptComponent implements ResourceComponent<ApplicationServerCompo
public Set<ResourcePackageDetails> discoverDeployedPackages(PackageType type) {
Set<ResourcePackageDetails> results = new HashSet<ResourcePackageDetails>();
if (PACKAGE_TYPE.equals(type.getName())) {
- File scriptFile = new File(resourceContext.getResourceKey());
+ String jbossHomeDir = resourceContext.getParentResourceComponent().getResourceContext()
+ .getPluginConfiguration().getSimpleValue(ApplicationServerPluginConfigurationProperties.HOME_DIR, null);
+ File binDirectory = new File(jbossHomeDir, "bin");
+
+ File scriptFile = new File(binDirectory, resourceContext.getResourceKey());
PackageDetailsKey key = new PackageDetailsKey(scriptFile.getName(), PACKAGE_VERSION, PACKAGE_TYPE,
PACKAGE_ARCHITECTURE);
diff --git a/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/ScriptComponentTest.java b/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/ScriptComponentTest.java
new file mode 100644
index 0000000..86b4b4e
--- /dev/null
+++ b/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/ScriptComponentTest.java
@@ -0,0 +1,110 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.plugins.jbossas5.test;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Matchers.isNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+import java.util.Set;
+
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.testng.PowerMockObjectFactory;
+import org.testng.Assert;
+import org.testng.IObjectFactory;
+import org.testng.annotations.ObjectFactory;
+import org.testng.annotations.Test;
+
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.content.PackageType;
+import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
+import org.rhq.core.pluginapi.inventory.ResourceContext;
+import org.rhq.core.util.MessageDigestGenerator;
+import org.rhq.plugins.jbossas5.ApplicationServerComponent;
+import org.rhq.plugins.jbossas5.script.ScriptComponent;
+
+@PrepareForTest({ ScriptComponent.class })
+public class ScriptComponentTest {
+
+ @ObjectFactory
+ public IObjectFactory getObjectFactory() {
+ return new PowerMockObjectFactory();
+ }
+
+ @Test
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ public void testDiscoverDeployedPackages() throws Exception {
+ //tell the method story as it happens: mock or create dependencies and configure
+ //those dependencies to get the method under test to completion.
+ ResourceContext<ApplicationServerComponent<?>> mockResourceContext = mock(ResourceContext.class);
+
+ ApplicationServerComponent mockApplicationServerComponent = mock(ApplicationServerComponent.class);
+ when(mockResourceContext.getParentResourceComponent()).thenReturn(mockApplicationServerComponent);
+ when(mockApplicationServerComponent.getResourceContext()).thenReturn(mockResourceContext);
+ Configuration mockConfiguration = mock(Configuration.class);
+ when(mockResourceContext.getPluginConfiguration()).thenReturn(mockConfiguration);
+ when(mockConfiguration.getSimpleValue(eq("homeDir"), isNull(String.class))).thenReturn("testHomeDir");
+
+ File mockDirectory = mock(File.class);
+ PowerMockito.whenNew(File.class).withParameterTypes(String.class, String.class)
+ .withArguments(eq("testHomeDir"), eq("bin"))
+ .thenReturn(mockDirectory);
+
+ when(mockResourceContext.getResourceKey()).thenReturn("testResource");
+
+ File mockFile = mock(File.class);
+ PowerMockito.whenNew(File.class).withParameterTypes(File.class, String.class)
+ .withArguments(eq(mockDirectory), eq("testResource")).thenReturn(mockFile);
+
+ when(mockFile.getName()).thenReturn("testResource");
+
+ MessageDigestGenerator mockMessageDigestGenerator = mock(MessageDigestGenerator.class);
+ PowerMockito.whenNew(MessageDigestGenerator.class).withParameterTypes(String.class).withArguments(anyString())
+ .thenReturn(mockMessageDigestGenerator);
+ when(mockMessageDigestGenerator.calcDigestString(any(File.class))).thenReturn("abcd1234");
+
+ PackageType mockPackageType = mock(PackageType.class);
+ when(mockPackageType.getName()).thenReturn("script");
+
+ //create object to test and inject required dependencies
+ ScriptComponent objectUnderTest = new ScriptComponent();
+ objectUnderTest.start(mockResourceContext);
+
+ //run code under test
+ Set<ResourcePackageDetails> result = objectUnderTest.discoverDeployedPackages(mockPackageType);
+
+ //verify the results (Assert and mock verification)
+ Assert.assertEquals(result.size(), 1);
+
+ ResourcePackageDetails resultPackageDetails = (ResourcePackageDetails) result.toArray()[0];
+
+ Assert.assertEquals(resultPackageDetails.getSHA256(), "abcd1234");
+
+ PowerMockito.verifyNew(File.class).withArguments(eq("testHomeDir"), eq("bin"));
+ PowerMockito.verifyNew(File.class).withArguments(eq(mockDirectory), eq("testResource"));
+ verify(mockMessageDigestGenerator).calcDigestString(any(File.class));
+ verify(mockResourceContext).getParentResourceComponent();
+ }
+}
\ No newline at end of file
commit 6e5faad9e814cb103504ffd81a61b0c495970d15
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Mon Feb 6 20:54:08 2012 -0600
[BZ 772722] Updated comments in unit tests to better match the story of the test.
diff --git a/modules/enterprise/server/plugins/disk/src/test/java/org/rhq/enterprise/server/plugins/disk/test/DiskSourceTest.java b/modules/enterprise/server/plugins/disk/src/test/java/org/rhq/enterprise/server/plugins/disk/test/DiskSourceTest.java
index 9981f3a..65972ae 100644
--- a/modules/enterprise/server/plugins/disk/src/test/java/org/rhq/enterprise/server/plugins/disk/test/DiskSourceTest.java
+++ b/modules/enterprise/server/plugins/disk/src/test/java/org/rhq/enterprise/server/plugins/disk/test/DiskSourceTest.java
@@ -67,8 +67,8 @@ public class DiskSourceTest{
PackageSyncReport mockPackageSyncReport = mock(PackageSyncReport.class);
Collection<ContentProviderPackageDetails> mockCollection = mock(Collection.class);
- //tell the method story as it happens: mock dependencies and make them
- //behave in a way to get the method under test to completion.
+ //tell the method story as it happens: mock dependencies and configure
+ //those dependencies to get the method under test to completion.
Configuration mockConfiguration = mock(Configuration.class);
PropertySimple mockProperty = mock(PropertySimple.class);
when(mockConfiguration.get("packageSourceEnabled")).thenReturn(mockProperty);
@@ -99,7 +99,7 @@ public class DiskSourceTest{
//create object to test and inject required dependencies
DiskSource objectUnderTest = new DiskSource();
- //run the code to be tested
+ //run methods under test
objectUnderTest.initialize(mockConfiguration);
objectUnderTest.synchronizePackages(repoName, mockPackageSyncReport, mockCollection);
@@ -119,8 +119,8 @@ public class DiskSourceTest{
PackageSyncReport mockPackageSyncReport = mock(PackageSyncReport.class);
Collection<ContentProviderPackageDetails> mockCollection = mock(Collection.class);
- //tell the method story as it happens: mock dependencies and make them
- //behave in a way to get the method under test to completion.
+ //tell the method story as it happens: mock dependencies and configure
+ //those dependencies to get the method under test to completion.
Configuration mockConfiguration = mock(Configuration.class);
PropertySimple mockProperty = mock(PropertySimple.class);
when(mockConfiguration.get("packageSourceEnabled")).thenReturn(mockProperty);
@@ -167,7 +167,7 @@ public class DiskSourceTest{
//create object to test and inject required dependencies
DiskSource objectUnderTest = new DiskSource();
- //run the code to be tested
+ //run methods under test
objectUnderTest.initialize(mockConfiguration);
objectUnderTest.synchronizePackages(repoName, mockPackageSyncReport, mockCollection);
@@ -192,8 +192,8 @@ public class DiskSourceTest{
PackageSyncReport mockPackageSyncReport = mock(PackageSyncReport.class);
Collection<ContentProviderPackageDetails> mockCollection = mock(Collection.class);
- //tell the method story as it happens: mock dependencies and make them
- //behave in a way to get the method under test to completion.
+ //tell the method story as it happens: mock dependencies and configure
+ //those dependencies to get the method under test to completion.
Configuration mockConfiguration = mock(Configuration.class);
PropertySimple mockProperty = mock(PropertySimple.class);
when(mockConfiguration.get("packageSourceEnabled")).thenReturn(mockProperty);
@@ -242,7 +242,7 @@ public class DiskSourceTest{
//create object to test and inject required dependencies
DiskSource objectUnderTest = new DiskSource();
- //run the code to be tested
+ //run methods under test
objectUnderTest.initialize(mockConfiguration);
objectUnderTest.synchronizePackages(repoName, mockPackageSyncReport, mockCollection);
commit 8d7f70385d85a34cab6af0fc1cb3ba2e542d7bf6
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Mon Feb 6 20:53:24 2012 -0600
[BZ 767247] Unit tests for content system changed functionality for JBoss AS4.
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index c0292da..d9113f9 100644
--- a/modules/plugins/jboss-as/pom.xml
+++ b/modules/plugins/jboss-as/pom.xml
@@ -15,6 +15,10 @@
<name>RHQ JBossAS 3.2.x/4.x Plugin</name>
<description>A plugin for managing JBoss Application Server 3.2.x/4.x</description>
+ <properties>
+ <powermock.version>1.4.11</powermock.version>
+ </properties>
+
<dependencies>
<!-- internal -->
<!-- TODO: Move this up to the parent pom. -->
@@ -73,6 +77,20 @@
<scope>test</scope> <!-- this is OK. plugins do not have access to clientapi, but this is only for tests so this is OK -->
</dependency>
+ <dependency>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-module-testng</artifactId>
+ <version>${powermock.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-api-mockito</artifactId>
+ <version>${powermock.version}</version>
+ <scope>test</scope>
+ </dependency>
+
</dependencies>
<build>
diff --git a/modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/ApplicationComponentTest.java b/modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/ApplicationComponentTest.java
new file mode 100644
index 0000000..f24704b
--- /dev/null
+++ b/modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/ApplicationComponentTest.java
@@ -0,0 +1,113 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.plugins.jbossas.test;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Matchers.isNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+import java.util.Set;
+
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.testng.PowerMockObjectFactory;
+import org.testng.Assert;
+import org.testng.IObjectFactory;
+import org.testng.annotations.ObjectFactory;
+import org.testng.annotations.Test;
+
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.content.PackageType;
+import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
+import org.rhq.core.pluginapi.inventory.ResourceContext;
+import org.rhq.core.util.file.JarContentFileInfo;
+import org.rhq.plugins.jbossas.ApplicationComponent;
+import org.rhq.plugins.jbossas.JBossASServerComponent;
+import org.rhq.plugins.jbossas.util.FileContentDelegate;
+
+@PrepareForTest({ ApplicationComponent.class })
+public class ApplicationComponentTest {
+
+ @ObjectFactory
+ public IObjectFactory getObjectFactory() {
+ return new PowerMockObjectFactory();
+ }
+
+ @Test
+ public void testDiscoverDeployedPackagesWithDisplayVersionAndSha256Generation() throws Exception {
+ //create the object under test as a partial mock because only one
+ //public method will be tested, while the rest will be mocked.
+ ApplicationComponent objectUnderTest = mock(ApplicationComponent.class);
+
+ //tell the method story as it happens: mock or create dependencies and configure
+ //those dependencies to get the method under test to completion.
+ PackageType mockPackageType = mock(PackageType.class);
+
+ @SuppressWarnings("unchecked")
+ ResourceContext<JBossASServerComponent<?>> mockResourceContext = mock(ResourceContext.class);
+ when(objectUnderTest.getResourceContext()).thenReturn(mockResourceContext);
+
+ Configuration mockConfiguration = mock(Configuration.class);
+ when(mockResourceContext.getPluginConfiguration()).thenReturn(mockConfiguration);
+
+ when(mockConfiguration.getSimpleValue(eq("filename"), isNull(String.class))).thenReturn("testFileName");
+
+ File mockFile = mock(File.class);
+ PowerMockito.whenNew(File.class).withParameterTypes(String.class).withArguments(any(String.class))
+ .thenReturn(mockFile);
+ when(mockFile.exists()).thenReturn(true);
+
+ when(mockFile.getName()).thenReturn("testFileName");
+
+ FileContentDelegate mockFileContentDelegate = mock(FileContentDelegate.class);
+ PowerMockito.whenNew(FileContentDelegate.class).withArguments(any(File.class), isNull(), isNull())
+ .thenReturn(mockFileContentDelegate);
+ when(mockFileContentDelegate.getSHA(any(File.class))).thenReturn("abcd1234");
+
+ JarContentFileInfo mockJarContentFileInfo = mock(JarContentFileInfo.class);
+ PowerMockito.whenNew(JarContentFileInfo.class).withParameterTypes(File.class).withArguments(any(File.class))
+ .thenReturn(mockJarContentFileInfo);
+ when(mockJarContentFileInfo.getVersion(isNull(String.class))).thenReturn("testDisplayVersion");
+
+ //create object to test and inject required dependencies
+ when(objectUnderTest.discoverDeployedPackages(any(PackageType.class))).thenCallRealMethod();
+
+ //run code under test
+ Set<ResourcePackageDetails> result = objectUnderTest.discoverDeployedPackages(mockPackageType);
+
+ //verify the results (Assert and mock verification)
+ Assert.assertEquals(result.size(), 1);
+
+ ResourcePackageDetails resultPackageDetails = (ResourcePackageDetails) result.toArray()[0];
+
+ verifyNoMoreInteractions(mockPackageType);
+
+ Assert.assertEquals(resultPackageDetails.getVersion(), "[sha256=abcd1234]");
+ Assert.assertEquals(resultPackageDetails.getDisplayVersion(), "testDisplayVersion");
+ Assert.assertEquals(resultPackageDetails.getSHA256(), "abcd1234");
+
+ verify(mockFileContentDelegate).getSHA(any(File.class));
+ verify(mockJarContentFileInfo).getVersion(isNull(String.class));
+ }
+}
\ No newline at end of file
diff --git a/modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/FileContentDelegateTest.java b/modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/FileContentDelegateTest.java
new file mode 100644
index 0000000..b3e7b93
--- /dev/null
+++ b/modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/FileContentDelegateTest.java
@@ -0,0 +1,270 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.plugins.jbossas.test;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.jar.Manifest;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import org.rhq.core.domain.content.PackageDetails;
+import org.rhq.core.domain.content.PackageDetailsKey;
+import org.rhq.core.util.MessageDigestGenerator;
+import org.rhq.core.util.ZipUtil;
+import org.rhq.plugins.jbossas.util.FileContentDelegate;
+
+public class FileContentDelegateTest {
+
+ @Test
+ public void testDeployExplodedWithManifestInArchive() throws Exception {
+ //tell the method story as it happens: mock or create dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File deploymentDirectory = new File(this.getClass().getResource("/").getFile() + "deploymentDirectory");
+ deleteRecursive(deploymentDirectory);
+
+ File sampleWithManifestWar = new File(this.getClass().getResource("/sampleWithManifest.war").getFile());
+ Assert.assertTrue(sampleWithManifestWar.exists());
+
+ //create object to test and inject required dependencies
+ FileContentDelegate objectUnderTest = new FileContentDelegate(deploymentDirectory, "", null);
+
+ PackageDetails mockPackageDetails = mock(PackageDetails.class);
+ PackageDetailsKey mockPackageDetailsKey = mock(PackageDetailsKey.class);
+ when(mockPackageDetails.getKey()).thenReturn(mockPackageDetailsKey);
+ when(mockPackageDetailsKey.getName()).thenReturn("deploymentFile");
+
+ //run code under test
+ objectUnderTest.createContent(mockPackageDetails, sampleWithManifestWar, true, false);
+ String actualShaReturned = objectUnderTest.getSHA(new File(deploymentDirectory, "/deploymentFile"));
+
+ //verify the results (Assert and mock verification)
+ File manifestFile = new File(deploymentDirectory.getAbsolutePath() + "/deploymentFile/META-INF/MANIFEST.MF");
+ Assert.assertTrue(manifestFile.exists(), "Manifest file not created properly!");
+ Assert.assertNotEquals(manifestFile.length(), 0, "Empty manifest!!");
+
+ InputStream manifestStream = new FileInputStream(manifestFile);
+ Manifest manifest = new Manifest(manifestStream);
+ String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
+ manifestStream.close();
+
+ MessageDigestGenerator digest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+ String expectedSHA256 = digest.calcDigestString(sampleWithManifestWar);
+
+ Assert.assertEquals(actualSha256Attribute, expectedSHA256);
+ Assert.assertEquals(actualShaReturned, expectedSHA256);
+
+ //cleanup resources created for this test
+ deleteRecursive(deploymentDirectory);
+ }
+
+ @Test
+ public void testGetShaExplodedWithManifest() throws Exception {
+ //tell the method story as it happens: mock or create dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File deploymentDirectory = new File(this.getClass().getResource("/").getFile() + "deploymentDirectory");
+ deleteRecursive(deploymentDirectory);
+
+ File sampleWithManifestWar = new File(this.getClass().getResource("/sampleWithManifest.war").getFile());
+ Assert.assertTrue(sampleWithManifestWar.exists());
+
+ ZipUtil.unzipFile(sampleWithManifestWar, deploymentDirectory);
+
+ //create object to test and inject required dependencies
+ FileContentDelegate objectUnderTest = new FileContentDelegate(deploymentDirectory, null, null);
+
+ //run code under test
+ String actualShaReturned = objectUnderTest.getSHA(deploymentDirectory);
+
+ //verify the results (Assert and mock verification)
+ File manifestFile = new File(deploymentDirectory.getAbsolutePath() + "/META-INF/MANIFEST.MF");
+ Assert.assertTrue(manifestFile.exists(), "Manifest file not created properly!");
+ Assert.assertNotEquals(manifestFile.length(), 0, "Empty manifest!!");
+
+ InputStream manifestStream = new FileInputStream(manifestFile);
+ Manifest manifest = new Manifest(manifestStream);
+ String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
+ manifestStream.close();
+
+ Assert.assertEquals(actualSha256Attribute, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
+ Assert.assertEquals(actualShaReturned, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
+
+ deleteRecursive(deploymentDirectory);
+ }
+
+ @Test
+ public void testDeployExplodedWithoutManifestInArchive() throws Exception {
+ //tell the method story as it happens: mock dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File deploymentDirectory = new File(this.getClass().getResource("/").getFile() + "deploymentDirectory");
+ deleteRecursive(deploymentDirectory);
+
+ File sampleWithoutManifestWar = new File(this.getClass().getResource("/sampleWithoutManifest.war").getFile());
+ Assert.assertTrue(sampleWithoutManifestWar.exists());
+
+ //create object to test and inject required dependencies
+ FileContentDelegate objectUnderTest = new FileContentDelegate(deploymentDirectory, "", null);
+
+ PackageDetails mockPackageDetails = mock(PackageDetails.class);
+ PackageDetailsKey mockPackageDetailsKey = mock(PackageDetailsKey.class);
+ when(mockPackageDetails.getKey()).thenReturn(mockPackageDetailsKey);
+ when(mockPackageDetailsKey.getName()).thenReturn("deploymentFile");
+
+ //run code under test
+ objectUnderTest.createContent(mockPackageDetails, sampleWithoutManifestWar, true, false);
+ String actualShaReturned = objectUnderTest.getSHA(new File(deploymentDirectory, "/deploymentFile"));
+
+ //verify the results (Assert and mock verification)
+ File manifestFile = new File(deploymentDirectory.getAbsolutePath() + "/deploymentFile/META-INF/MANIFEST.MF");
+ Assert.assertTrue(manifestFile.exists(), "Manifest file not created properly!");
+ Assert.assertNotEquals(manifestFile.length(), 0, "Empty manifest!!");
+
+ InputStream manifestStream = new FileInputStream(manifestFile);
+ Manifest manifest = new Manifest(manifestStream);
+ String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
+ manifestStream.close();
+
+ MessageDigestGenerator digest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+ String expectedSHA256 = digest.calcDigestString(sampleWithoutManifestWar);
+
+ Assert.assertEquals(actualSha256Attribute, expectedSHA256);
+ Assert.assertEquals(actualShaReturned, expectedSHA256);
+
+ deleteRecursive(deploymentDirectory);
+ }
+
+ @Test
+ public void testGetShaExplodedWithoutManifest() throws Exception {
+ //tell the method story as it happens: mock or create dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File deploymentDirectory = new File(this.getClass().getResource("/").getFile() + "deploymentDirectory");
+ deleteRecursive(deploymentDirectory);
+
+ File sampleWithoutManifestWar = new File(this.getClass().getResource("/sampleWithoutManifest.war").getFile());
+ Assert.assertTrue(sampleWithoutManifestWar.exists());
+
+ //create object to test and inject required dependencies
+ ZipUtil.unzipFile(sampleWithoutManifestWar, deploymentDirectory);
+
+ //run code under test
+ FileContentDelegate objectUnderTest = new FileContentDelegate(deploymentDirectory, null, null);
+ String actualShaReturned = objectUnderTest.getSHA(deploymentDirectory);
+
+ //verify the results (Assert and mock verification)
+ File manifestFile = new File(deploymentDirectory.getAbsolutePath() + "/META-INF/MANIFEST.MF");
+ Assert.assertTrue(manifestFile.exists(), "Manifest file not created properly!");
+ Assert.assertNotEquals(manifestFile.length(), 0, "Empty manifest!!");
+
+ InputStream manifestStream = new FileInputStream(manifestFile);
+ Manifest manifest = new Manifest(manifestStream);
+ String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
+ manifestStream.close();
+
+ Assert.assertEquals(actualSha256Attribute, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
+ Assert.assertEquals(actualShaReturned, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
+
+ //cleanup resources created for this test
+ deleteRecursive(deploymentDirectory);
+ }
+
+ @Test
+ public void testDeployZipped() throws Exception {
+ //tell the method story as it happens: mock or create dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File deploymentDirectory = new File(this.getClass().getResource("/").getFile() + "deploymentDirectory");
+ deleteRecursive(deploymentDirectory);
+ deploymentDirectory.mkdirs();
+
+ File sampleWithoutManifestWar = new File(this.getClass().getResource("/sampleWithoutManifest.war").getFile());
+ Assert.assertTrue(sampleWithoutManifestWar.exists());
+
+ File deploymentFile = new File(deploymentDirectory, sampleWithoutManifestWar.getName());
+
+ //create object to test and inject required dependencies
+ FileContentDelegate objectUnderTest = new FileContentDelegate(deploymentDirectory, "", null);
+
+ PackageDetails mockPackageDetails = mock(PackageDetails.class);
+ PackageDetailsKey mockPackageDetailsKey = mock(PackageDetailsKey.class);
+ when(mockPackageDetails.getKey()).thenReturn(mockPackageDetailsKey);
+ when(mockPackageDetailsKey.getName()).thenReturn(sampleWithoutManifestWar.getName());
+
+ //run code under test
+ objectUnderTest.createContent(mockPackageDetails, sampleWithoutManifestWar, false, false);
+ String actualShaReturned = objectUnderTest.getSHA(sampleWithoutManifestWar);
+
+ //verify the results (Assert and mock verification)
+ Assert.assertTrue(deploymentDirectory.exists(), "Deployment did not happen.");
+ Assert.assertTrue(deploymentDirectory.isDirectory(), "Deployment directory is no longer a directory!!");
+ Assert.assertFalse(deploymentFile.isDirectory(), "Deployment was exploded when it should not have been.");
+
+
+ MessageDigestGenerator digest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+ String expectedSHA256 = digest.calcDigestString(sampleWithoutManifestWar);
+ String actualSHA256OfDeployment = digest.calcDigestString(deploymentFile);
+
+ Assert.assertEquals(actualSHA256OfDeployment, expectedSHA256);
+ Assert.assertEquals(actualShaReturned, expectedSHA256);
+
+ //cleanup resources created for this test
+ deleteRecursive(deploymentFile);
+ }
+
+ @Test
+ public void testGetShaZipped() throws Exception {
+ //tell the method story as it happens: mock or create dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File sampleWithoutManifestWar = new File(this.getClass().getResource("/sampleWithoutManifest.war").getFile());
+ Assert.assertTrue(sampleWithoutManifestWar.exists());
+
+ //create object to test and inject required dependencies
+ FileContentDelegate objectUnderTest = new FileContentDelegate(sampleWithoutManifestWar, null, null);
+
+ //run code under test
+ String actualShaReturned = objectUnderTest.getSHA(sampleWithoutManifestWar);
+
+ //verify the results (Assert and mock verification)
+ MessageDigestGenerator digest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+ String expectedSHA256 = digest.calcDigestString(sampleWithoutManifestWar);
+
+ //cleanup resources created for this test
+ Assert.assertEquals(actualShaReturned, expectedSHA256);
+ }
+
+ private void deleteRecursive(File fileToDelete) throws Exception {
+ if (fileToDelete.exists()) {
+ if (fileToDelete.isDirectory()) {
+ for (File file : fileToDelete.listFiles()) {
+ if (file.isDirectory()) {
+ deleteRecursive(file);
+ } else {
+ file.delete();
+ }
+ }
+ }
+
+ fileToDelete.delete();
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/JarContentDelegateTest.java b/modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/JarContentDelegateTest.java
new file mode 100644
index 0000000..152fdbe
--- /dev/null
+++ b/modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/JarContentDelegateTest.java
@@ -0,0 +1,86 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.plugins.jbossas.test;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.util.Set;
+import java.util.jar.JarFile;
+
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.testng.PowerMockObjectFactory;
+import org.testng.Assert;
+import org.testng.IObjectFactory;
+import org.testng.annotations.ObjectFactory;
+import org.testng.annotations.Test;
+
+import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
+import org.rhq.core.util.MessageDigestGenerator;
+import org.rhq.plugins.jbossas.util.JarContentDelegate;
+
+@PrepareForTest({ JarContentDelegate.class })
+public class JarContentDelegateTest {
+
+ @ObjectFactory
+ public IObjectFactory getObjectFactory() {
+ return new PowerMockObjectFactory();
+ }
+
+ @Test
+ public void testDiscoverDeployedPackages() throws Exception {
+ //tell the method story as it happens: mock or create dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File mockDirectory = mock(File.class);
+ when(mockDirectory.exists()).thenReturn(true);
+ when(mockDirectory.isDirectory()).thenReturn(true);
+
+ File mockFile = mock(File.class);
+ when(mockDirectory.listFiles(any(FileFilter.class))).thenReturn(new File[] { mockFile });
+ when(mockFile.getName()).thenReturn("testFile");
+
+ JarFile mockJarFile = mock(JarFile.class);
+ PowerMockito.whenNew(JarFile.class).withParameterTypes(File.class).withArguments(any(File.class))
+ .thenReturn(mockJarFile);
+
+ MessageDigestGenerator mockMessageDigestGenerator = mock(MessageDigestGenerator.class);
+ PowerMockito.whenNew(MessageDigestGenerator.class).withParameterTypes(String.class).withArguments(anyString())
+ .thenReturn(mockMessageDigestGenerator);
+ when(mockMessageDigestGenerator.calcDigestString(any(File.class))).thenReturn("abcd1234");
+
+ //create object to test and inject required dependencies
+ JarContentDelegate objectUnderTest = new JarContentDelegate(mockDirectory, "jar");
+
+ //run code under test
+ Set<ResourcePackageDetails> resultSet = objectUnderTest.discoverDeployedPackages();
+
+ //verify the results (Assert and mock verification)
+ Assert.assertEquals(resultSet.size(), 1);
+
+ ResourcePackageDetails resultPackageDetails = (ResourcePackageDetails) resultSet.toArray()[0];
+
+ Assert.assertEquals(resultPackageDetails.getVersion(), "[sha256=abcd1234]");
+ Assert.assertEquals(resultPackageDetails.getSHA256(), "abcd1234");
+ }
+}
\ No newline at end of file
diff --git a/modules/plugins/jboss-as/src/test/resources/sampleWithImplementation.war b/modules/plugins/jboss-as/src/test/resources/sampleWithImplementation.war
new file mode 100644
index 0000000..9a5b7f4
Binary files /dev/null and b/modules/plugins/jboss-as/src/test/resources/sampleWithImplementation.war differ
diff --git a/modules/plugins/jboss-as/src/test/resources/sampleWithManifest.war b/modules/plugins/jboss-as/src/test/resources/sampleWithManifest.war
new file mode 100644
index 0000000..0a127e6
Binary files /dev/null and b/modules/plugins/jboss-as/src/test/resources/sampleWithManifest.war differ
diff --git a/modules/plugins/jboss-as/src/test/resources/sampleWithSpecification.war b/modules/plugins/jboss-as/src/test/resources/sampleWithSpecification.war
new file mode 100644
index 0000000..5f021e7
Binary files /dev/null and b/modules/plugins/jboss-as/src/test/resources/sampleWithSpecification.war differ
diff --git a/modules/plugins/jboss-as/src/test/resources/sampleWithSpecificationImplementation.war b/modules/plugins/jboss-as/src/test/resources/sampleWithSpecificationImplementation.war
new file mode 100644
index 0000000..43fa852
Binary files /dev/null and b/modules/plugins/jboss-as/src/test/resources/sampleWithSpecificationImplementation.war differ
diff --git a/modules/plugins/jboss-as/src/test/resources/sampleWithoutManifest.war b/modules/plugins/jboss-as/src/test/resources/sampleWithoutManifest.war
new file mode 100644
index 0000000..0f938f5
Binary files /dev/null and b/modules/plugins/jboss-as/src/test/resources/sampleWithoutManifest.war differ
commit 804d79900d034cec72e6d422364013b0ad805673
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Mon Feb 6 20:50:35 2012 -0600
[BZ 767393] Add unit tests for content system changed functionality in JBoss AS5 plugin.
diff --git a/modules/plugins/jboss-as-5/pom.xml b/modules/plugins/jboss-as-5/pom.xml
index 3de6752..6e5fb9b 100644
--- a/modules/plugins/jboss-as-5/pom.xml
+++ b/modules/plugins/jboss-as-5/pom.xml
@@ -21,6 +21,7 @@
<properties>
<jbossas.version>6.0.0.M1</jbossas.version>
+ <powermock.version>1.4.11</powermock.version>
</properties>
<dependencyManagement>
@@ -360,6 +361,21 @@
<scope>provided</scope>
</dependency>
-->
+
+ <dependency>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-module-testng</artifactId>
+ <version>${powermock.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-api-mockito</artifactId>
+ <version>${powermock.version}</version>
+ <scope>test</scope>
+ </dependency>
+
</dependencies>
<build>
diff --git a/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/FileContentDelegateTest.java b/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/FileContentDelegateTest.java
new file mode 100644
index 0000000..0434ec0
--- /dev/null
+++ b/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/FileContentDelegateTest.java
@@ -0,0 +1,264 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.plugins.jbossas5.test;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.jar.Manifest;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import org.rhq.core.domain.content.PackageDetails;
+import org.rhq.core.domain.content.PackageDetailsKey;
+import org.rhq.core.util.MessageDigestGenerator;
+import org.rhq.core.util.ZipUtil;
+import org.rhq.plugins.jbossas5.util.FileContentDelegate;
+
+public class FileContentDelegateTest {
+
+ @Test
+ public void testDeployExplodedWithManifestInArchive() throws Exception {
+ //tell the method story as it happens: mock or create dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File deploymentDirectory = new File(this.getClass().getResource("/").getFile() + "deploymentDirectory");
+ deleteRecursive(deploymentDirectory);
+
+ File sampleWithManifestWar = new File(this.getClass().getResource("/sampleWithManifest.war").getFile());
+ Assert.assertTrue(sampleWithManifestWar.exists());
+
+ //create object to test and inject required dependencies
+ FileContentDelegate objectUnderTest = new FileContentDelegate(deploymentDirectory, "", null);
+
+ PackageDetails mockPackageDetails = mock(PackageDetails.class);
+ PackageDetailsKey mockPackageDetailsKey = mock(PackageDetailsKey.class);
+ when(mockPackageDetails.getKey()).thenReturn(mockPackageDetailsKey);
+ when(mockPackageDetailsKey.getName()).thenReturn("deploymentFile");
+
+ //run code under test
+ objectUnderTest.createContent(mockPackageDetails, new FileInputStream(sampleWithManifestWar), true, false);
+ String actualShaReturned = objectUnderTest.getSHA(new File(deploymentDirectory, "/deploymentFile"));
+
+ //verify the results (Assert and mock verification)
+ File manifestFile = new File(deploymentDirectory.getAbsolutePath() + "/deploymentFile/META-INF/MANIFEST.MF");
+ Assert.assertTrue(manifestFile.exists(), "Manifest file not created properly!");
+ Assert.assertNotEquals(manifestFile.length(), 0, "Empty manifest!!");
+
+ InputStream manifestStream = new FileInputStream(manifestFile);
+ Manifest manifest = new Manifest(manifestStream);
+ String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
+ manifestStream.close();
+
+ Assert.assertEquals(actualSha256Attribute, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
+ Assert.assertEquals(actualShaReturned, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
+
+ //cleanup resources created for this test
+ deleteRecursive(deploymentDirectory);
+ }
+
+ @Test
+ public void testGetShaExplodedWithManifest() throws Exception {
+ //tell the method story as it happens: mock or create dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File deploymentDirectory = new File(this.getClass().getResource("/").getFile() + "deploymentDirectory");
+ deleteRecursive(deploymentDirectory);
+
+ File sampleWithManifestWar = new File(this.getClass().getResource("/sampleWithManifest.war").getFile());
+ Assert.assertTrue(sampleWithManifestWar.exists());
+
+ ZipUtil.unzipFile(sampleWithManifestWar, deploymentDirectory);
+
+ //create object to test and inject required dependencies
+ FileContentDelegate objectUnderTest = new FileContentDelegate(deploymentDirectory, null, null);
+
+ //run code under test
+ String actualShaReturned = objectUnderTest.getSHA(deploymentDirectory);
+
+ //verify the results (Assert and mock verification)
+ File manifestFile = new File(deploymentDirectory.getAbsolutePath() + "/META-INF/MANIFEST.MF");
+ Assert.assertTrue(manifestFile.exists(), "Manifest file not created properly!");
+ Assert.assertNotEquals(manifestFile.length(), 0, "Empty manifest!!");
+
+ InputStream manifestStream = new FileInputStream(manifestFile);
+ Manifest manifest = new Manifest(manifestStream);
+ String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
+ manifestStream.close();
+
+ Assert.assertEquals(actualSha256Attribute, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
+ Assert.assertEquals(actualShaReturned, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
+
+ deleteRecursive(deploymentDirectory);
+ }
+
+ @Test
+ public void testDeployExplodedWithoutManifestInArchive() throws Exception {
+ //tell the method story as it happens: mock dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File deploymentDirectory = new File(this.getClass().getResource("/").getFile() + "deploymentDirectory");
+ deleteRecursive(deploymentDirectory);
+
+ File sampleWithoutManifestWar = new File(this.getClass().getResource("/sampleWithoutManifest.war").getFile());
+ Assert.assertTrue(sampleWithoutManifestWar.exists());
+
+ //create object to test and inject required dependencies
+ FileContentDelegate objectUnderTest = new FileContentDelegate(deploymentDirectory, "", null);
+
+ PackageDetails mockPackageDetails = mock(PackageDetails.class);
+ PackageDetailsKey mockPackageDetailsKey = mock(PackageDetailsKey.class);
+ when(mockPackageDetails.getKey()).thenReturn(mockPackageDetailsKey);
+ when(mockPackageDetailsKey.getName()).thenReturn("deploymentFile");
+
+ //run code under test
+ objectUnderTest.createContent(mockPackageDetails, new FileInputStream(sampleWithoutManifestWar), true, false);
+ String actualShaReturned = objectUnderTest.getSHA(new File(deploymentDirectory, "/deploymentFile"));
+
+ //verify the results (Assert and mock verification)
+ File manifestFile = new File(deploymentDirectory.getAbsolutePath() + "/deploymentFile/META-INF/MANIFEST.MF");
+ Assert.assertTrue(manifestFile.exists(), "Manifest file not created properly!");
+ Assert.assertNotEquals(manifestFile.length(), 0, "Empty manifest!!");
+
+ InputStream manifestStream = new FileInputStream(manifestFile);
+ Manifest manifest = new Manifest(manifestStream);
+ String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
+ manifestStream.close();
+
+ Assert.assertEquals(actualSha256Attribute, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
+ Assert.assertEquals(actualShaReturned, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
+
+ deleteRecursive(deploymentDirectory);
+ }
+
+ @Test
+ public void testGetShaExplodedWithoutManifest() throws Exception {
+ //tell the method story as it happens: mock or create dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File deploymentDirectory = new File(this.getClass().getResource("/").getFile() + "deploymentDirectory");
+ deleteRecursive(deploymentDirectory);
+
+ File sampleWithoutManifestWar = new File(this.getClass().getResource("/sampleWithoutManifest.war").getFile());
+ Assert.assertTrue(sampleWithoutManifestWar.exists());
+
+ //create object to test and inject required dependencies
+ ZipUtil.unzipFile(sampleWithoutManifestWar, deploymentDirectory);
+
+ //run code under test
+ FileContentDelegate objectUnderTest = new FileContentDelegate(deploymentDirectory, null, null);
+ String actualShaReturned = objectUnderTest.getSHA(deploymentDirectory);
+
+ //verify the results (Assert and mock verification)
+ File manifestFile = new File(deploymentDirectory.getAbsolutePath() + "/META-INF/MANIFEST.MF");
+ Assert.assertTrue(manifestFile.exists(), "Manifest file not created properly!");
+ Assert.assertNotEquals(manifestFile.length(), 0, "Empty manifest!!");
+
+ InputStream manifestStream = new FileInputStream(manifestFile);
+ Manifest manifest = new Manifest(manifestStream);
+ String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
+ manifestStream.close();
+
+ Assert.assertEquals(actualSha256Attribute, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
+ Assert.assertEquals(actualShaReturned, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
+
+ //cleanup resources created for this test
+ deleteRecursive(deploymentDirectory);
+ }
+
+ @Test
+ public void testDeployZipped() throws Exception {
+ //tell the method story as it happens: mock or create dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File deploymentDirectory = new File(this.getClass().getResource("/").getFile() + "deploymentDirectory");
+ deleteRecursive(deploymentDirectory);
+ deploymentDirectory.mkdirs();
+
+ File sampleWithoutManifestWar = new File(this.getClass().getResource("/sampleWithoutManifest.war").getFile());
+ Assert.assertTrue(sampleWithoutManifestWar.exists());
+
+ File deploymentFile = new File(deploymentDirectory, sampleWithoutManifestWar.getName());
+
+ //create object to test and inject required dependencies
+ FileContentDelegate objectUnderTest = new FileContentDelegate(deploymentDirectory, "", null);
+
+ PackageDetails mockPackageDetails = mock(PackageDetails.class);
+ PackageDetailsKey mockPackageDetailsKey = mock(PackageDetailsKey.class);
+ when(mockPackageDetails.getKey()).thenReturn(mockPackageDetailsKey);
+ when(mockPackageDetailsKey.getName()).thenReturn(sampleWithoutManifestWar.getName());
+
+ //run code under test
+ objectUnderTest.createContent(mockPackageDetails, new FileInputStream(sampleWithoutManifestWar), false, false);
+ String actualShaReturned = objectUnderTest.getSHA(sampleWithoutManifestWar);
+
+ //verify the results (Assert and mock verification)
+ Assert.assertTrue(deploymentDirectory.exists(), "Deployment did not happen.");
+ Assert.assertTrue(deploymentDirectory.isDirectory(), "Deployment directory is no longer a directory!!");
+ Assert.assertFalse(deploymentFile.isDirectory(), "Deployment was exploded when it should not have been.");
+
+
+ MessageDigestGenerator digest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+ String expectedSHA256 = digest.calcDigestString(sampleWithoutManifestWar);
+ String actualSHA256OfDeployment = digest.calcDigestString(deploymentFile);
+
+ Assert.assertEquals(actualSHA256OfDeployment, expectedSHA256);
+ Assert.assertEquals(actualShaReturned, expectedSHA256);
+
+ //cleanup resources created for this test
+ deleteRecursive(deploymentFile);
+ }
+
+ @Test
+ public void testGetShaZipped() throws Exception {
+ //tell the method story as it happens: mock or create dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File sampleWithoutManifestWar = new File(this.getClass().getResource("/sampleWithoutManifest.war").getFile());
+ Assert.assertTrue(sampleWithoutManifestWar.exists());
+
+ //create object to test and inject required dependencies
+ FileContentDelegate objectUnderTest = new FileContentDelegate(sampleWithoutManifestWar, null, null);
+
+ //run code under test
+ String actualShaReturned = objectUnderTest.getSHA(sampleWithoutManifestWar);
+
+ //verify the results (Assert and mock verification)
+ MessageDigestGenerator digest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+ String expectedSHA256 = digest.calcDigestString(sampleWithoutManifestWar);
+
+ //cleanup resources created for this test
+ Assert.assertEquals(actualShaReturned, expectedSHA256);
+ }
+
+ private void deleteRecursive(File fileToDelete) throws Exception {
+ if (fileToDelete.exists()) {
+ if (fileToDelete.isDirectory()) {
+ for (File file : fileToDelete.listFiles()) {
+ if (file.isDirectory()) {
+ deleteRecursive(file);
+ } else {
+ file.delete();
+ }
+ }
+ }
+
+ fileToDelete.delete();
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/JarContentDelegateTest.java b/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/JarContentDelegateTest.java
new file mode 100644
index 0000000..ca8ee25
--- /dev/null
+++ b/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/JarContentDelegateTest.java
@@ -0,0 +1,86 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.plugins.jbossas5.test;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.util.Set;
+import java.util.jar.JarFile;
+
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.testng.PowerMockObjectFactory;
+import org.testng.Assert;
+import org.testng.IObjectFactory;
+import org.testng.annotations.ObjectFactory;
+import org.testng.annotations.Test;
+
+import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
+import org.rhq.core.util.MessageDigestGenerator;
+import org.rhq.plugins.jbossas5.util.JarContentDelegate;
+
+@PrepareForTest({ JarContentDelegate.class })
+public class JarContentDelegateTest {
+
+ @ObjectFactory
+ public IObjectFactory getObjectFactory() {
+ return new PowerMockObjectFactory();
+ }
+
+ @Test
+ public void testDiscoverDeployedPackages() throws Exception {
+ //tell the method story as it happens: mock or create dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File mockDirectory = mock(File.class);
+ when(mockDirectory.exists()).thenReturn(true);
+ when(mockDirectory.isDirectory()).thenReturn(true);
+
+ File mockFile = mock(File.class);
+ when(mockDirectory.listFiles(any(FileFilter.class))).thenReturn(new File[] { mockFile });
+ when(mockFile.getName()).thenReturn("testFile");
+
+ JarFile mockJarFile = mock(JarFile.class);
+ PowerMockito.whenNew(JarFile.class).withParameterTypes(File.class).withArguments(any(File.class))
+ .thenReturn(mockJarFile);
+
+ MessageDigestGenerator mockMessageDigestGenerator = mock(MessageDigestGenerator.class);
+ PowerMockito.whenNew(MessageDigestGenerator.class).withParameterTypes(String.class).withArguments(anyString())
+ .thenReturn(mockMessageDigestGenerator);
+ when(mockMessageDigestGenerator.calcDigestString(any(File.class))).thenReturn("abcd1234");
+
+ //create object to test and inject required dependencies
+ JarContentDelegate objectUnderTest = new JarContentDelegate(mockDirectory, "jar");
+
+ //run code under test
+ Set<ResourcePackageDetails> resultSet = objectUnderTest.discoverDeployedPackages();
+
+ //verify the results (Assert and mock verification)
+ Assert.assertEquals(resultSet.size(), 1);
+
+ ResourcePackageDetails resultPackageDetails = (ResourcePackageDetails) resultSet.toArray()[0];
+
+ Assert.assertEquals(resultPackageDetails.getVersion(), "[sha256=abcd1234]");
+ Assert.assertEquals(resultPackageDetails.getSHA256(), "abcd1234");
+ }
+}
\ No newline at end of file
diff --git a/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/StandaloneManagedDeploymentComponentTest.java b/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/StandaloneManagedDeploymentComponentTest.java
new file mode 100644
index 0000000..4eb3004
--- /dev/null
+++ b/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/StandaloneManagedDeploymentComponentTest.java
@@ -0,0 +1,92 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.plugins.jbossas5.test;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.isNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+import java.lang.reflect.Field;
+import java.util.Set;
+
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.testng.PowerMockObjectFactory;
+import org.testng.Assert;
+import org.testng.IObjectFactory;
+import org.testng.annotations.ObjectFactory;
+
+import org.rhq.core.domain.content.PackageType;
+import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
+import org.rhq.plugins.jbossas5.AbstractManagedDeploymentComponent;
+import org.rhq.plugins.jbossas5.StandaloneManagedDeploymentComponent;
+import org.rhq.plugins.jbossas5.util.FileContentDelegate;
+
+@PrepareForTest({ StandaloneManagedDeploymentComponent.class })
+public class StandaloneManagedDeploymentComponentTest {
+
+ @ObjectFactory
+ public IObjectFactory getObjectFactory() {
+ return new PowerMockObjectFactory();
+ }
+
+ //@Test
+ public void testDiscoverDeployedPackages() throws Exception {
+ //tell the method story as it happens: mock or create dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File mockFile = mock(File.class);
+ when(mockFile.exists()).thenReturn(true);
+ when(mockFile.getName()).thenReturn("testFileName");
+
+ PackageType mockPackageType = mock(PackageType.class);
+
+ FileContentDelegate mockFileContentDelegate = mock(FileContentDelegate.class);
+ PowerMockito.whenNew(FileContentDelegate.class).withArguments(any(File.class), isNull(), isNull())
+ .thenReturn(mockFileContentDelegate);
+ when(mockFileContentDelegate.getSHA(any(File.class))).thenReturn("abcd1234");
+
+ //create object to test and inject required dependencies
+ StandaloneManagedDeploymentComponent objectUnderTest = new StandaloneManagedDeploymentComponent();
+
+ Field[] fields = AbstractManagedDeploymentComponent.class.getDeclaredFields();
+
+ for (Field field : fields) {
+ if (field.getName().equals("deploymentFile")) {
+ field.setAccessible(true);
+ field.set(objectUnderTest, mockFile);
+ }
+ }
+
+ //run code under test
+ Set<ResourcePackageDetails> result = objectUnderTest.discoverDeployedPackages(mockPackageType);
+
+ //verify the results (Assert and mock verification)
+ Assert.assertEquals(result.size(), 1);
+
+ ResourcePackageDetails resultPackageDetails = (ResourcePackageDetails) result.toArray()[0];
+
+ Assert.assertEquals(resultPackageDetails.getSHA256(), "abcd1234");
+ Assert.assertEquals(resultPackageDetails.getVersion(), "[sha256=abcd1234]");
+
+ verify(mockFileContentDelegate).getSHA(any(File.class));
+ }
+}
\ No newline at end of file
diff --git a/modules/plugins/jboss-as-5/src/test/resources/sampleWithImplementation.war b/modules/plugins/jboss-as-5/src/test/resources/sampleWithImplementation.war
new file mode 100644
index 0000000..9a5b7f4
Binary files /dev/null and b/modules/plugins/jboss-as-5/src/test/resources/sampleWithImplementation.war differ
diff --git a/modules/plugins/jboss-as-5/src/test/resources/sampleWithManifest.war b/modules/plugins/jboss-as-5/src/test/resources/sampleWithManifest.war
new file mode 100644
index 0000000..0a127e6
Binary files /dev/null and b/modules/plugins/jboss-as-5/src/test/resources/sampleWithManifest.war differ
diff --git a/modules/plugins/jboss-as-5/src/test/resources/sampleWithSpecification.war b/modules/plugins/jboss-as-5/src/test/resources/sampleWithSpecification.war
new file mode 100644
index 0000000..5f021e7
Binary files /dev/null and b/modules/plugins/jboss-as-5/src/test/resources/sampleWithSpecification.war differ
diff --git a/modules/plugins/jboss-as-5/src/test/resources/sampleWithSpecificationImplementation.war b/modules/plugins/jboss-as-5/src/test/resources/sampleWithSpecificationImplementation.war
new file mode 100644
index 0000000..43fa852
Binary files /dev/null and b/modules/plugins/jboss-as-5/src/test/resources/sampleWithSpecificationImplementation.war differ
diff --git a/modules/plugins/jboss-as-5/src/test/resources/sampleWithoutManifest.war b/modules/plugins/jboss-as-5/src/test/resources/sampleWithoutManifest.war
new file mode 100644
index 0000000..0f938f5
Binary files /dev/null and b/modules/plugins/jboss-as-5/src/test/resources/sampleWithoutManifest.war differ
commit b6fb8cd62aac2c10a727208c2cea08352f8a89d1
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Fri Feb 3 17:32:32 2012 -0600
[BZ 761593] Add unit tests for changed content system code.
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 4837c5b..ce258a9 100644
--- a/modules/plugins/tomcat/pom.xml
+++ b/modules/plugins/tomcat/pom.xml
@@ -14,6 +14,10 @@
<name>RHQ Tomcat Plugin</name>
<description>A plugin for managing standalone JBoss EWS and Apache Tomcat Servers</description>
+
+ <properties>
+ <powermock.version>1.4.11</powermock.version>
+ </properties>
<dependencies>
@@ -24,6 +28,20 @@
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-module-testng</artifactId>
+ <version>${powermock.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-api-mockito</artifactId>
+ <version>${powermock.version}</version>
+ <scope>test</scope>
+ </dependency>
+
</dependencies>
<profiles>
diff --git a/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/FileContentDelegateTest.java b/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/FileContentDelegateTest.java
new file mode 100644
index 0000000..9a2dc49
--- /dev/null
+++ b/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/FileContentDelegateTest.java
@@ -0,0 +1,246 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.jboss.on.plugins.tomcat.test;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.jar.Manifest;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import org.jboss.on.plugins.tomcat.helper.FileContentDelegate;
+
+import org.rhq.core.util.MessageDigestGenerator;
+import org.rhq.core.util.ZipUtil;
+
+public class FileContentDelegateTest {
+
+ @Test
+ public void testDeployExplodedWithManifestInArchive() throws Exception {
+ //tell the method story as it happens: mock or create dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File deploymentDirectory = new File(this.getClass().getResource("/").getFile() + "deploymentDirectory");
+ deleteRecursive(deploymentDirectory);
+
+ File sampleWithManifestWar = new File(this.getClass().getResource("/sampleWithManifest.war").getFile());
+ Assert.assertTrue(sampleWithManifestWar.exists());
+
+ //create object to test and inject required dependencies
+ FileContentDelegate objectUnderTest = new FileContentDelegate(deploymentDirectory);
+
+ //run code under test
+ objectUnderTest.createContent(deploymentDirectory, sampleWithManifestWar, true);
+ String actualShaReturned = objectUnderTest.getSHA(deploymentDirectory);
+
+ //verify the results (Assert and mock verification)
+ File manifestFile = new File(deploymentDirectory.getAbsolutePath() + "/META-INF/MANIFEST.MF");
+ Assert.assertTrue(manifestFile.exists(), "Manifest file not created properly!");
+ Assert.assertNotEquals(manifestFile.length(), 0, "Empty manifest!!");
+
+ InputStream manifestStream = new FileInputStream(manifestFile);
+ Manifest manifest = new Manifest(manifestStream);
+ String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
+ manifestStream.close();
+
+ MessageDigestGenerator digest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+ String expectedSHA256 = digest.calcDigestString(sampleWithManifestWar);
+
+ Assert.assertEquals(actualSha256Attribute, expectedSHA256);
+ Assert.assertEquals(actualShaReturned, expectedSHA256);
+
+ //cleanup resources created for this test
+ deleteRecursive(deploymentDirectory);
+ }
+
+ @Test
+ public void testGetShaExplodedWithManifest() throws Exception {
+ //tell the method story as it happens: mock or create dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File deploymentDirectory = new File(this.getClass().getResource("/").getFile() + "deploymentDirectory");
+ deleteRecursive(deploymentDirectory);
+
+ File sampleWithManifestWar = new File(this.getClass().getResource("/sampleWithManifest.war").getFile());
+ Assert.assertTrue(sampleWithManifestWar.exists());
+
+ ZipUtil.unzipFile(sampleWithManifestWar, deploymentDirectory);
+
+ //create object to test and inject required dependencies
+ FileContentDelegate objectUnderTest = new FileContentDelegate(deploymentDirectory);
+
+ //run code under test
+ String actualShaReturned = objectUnderTest.getSHA(deploymentDirectory);
+
+ //verify the results (Assert and mock verification)
+ File manifestFile = new File(deploymentDirectory.getAbsolutePath() + "/META-INF/MANIFEST.MF");
+ Assert.assertTrue(manifestFile.exists(), "Manifest file not created properly!");
+ Assert.assertNotEquals(manifestFile.length(), 0, "Empty manifest!!");
+
+ InputStream manifestStream = new FileInputStream(manifestFile);
+ Manifest manifest = new Manifest(manifestStream);
+ String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
+ manifestStream.close();
+
+ Assert.assertEquals(actualSha256Attribute, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
+ Assert.assertEquals(actualShaReturned, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
+
+ deleteRecursive(deploymentDirectory);
+ }
+
+ @Test
+ public void testDeployExplodedWithoutManifestInArchive() throws Exception {
+ //tell the method story as it happens: mock dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File deploymentDirectory = new File(this.getClass().getResource("/").getFile() + "deploymentDirectory");
+ deleteRecursive(deploymentDirectory);
+
+ File sampleWithoutManifestWar = new File(this.getClass().getResource("/sampleWithoutManifest.war").getFile());
+ Assert.assertTrue(sampleWithoutManifestWar.exists());
+
+ //create object to test and inject required dependencies
+ FileContentDelegate objectUnderTest = new FileContentDelegate(deploymentDirectory);
+
+ //run code under test
+ objectUnderTest.createContent(deploymentDirectory, sampleWithoutManifestWar, true);
+ String actualShaReturned = objectUnderTest.getSHA(deploymentDirectory);
+
+ //verify the results (Assert and mock verification)
+ File manifestFile = new File(deploymentDirectory.getAbsolutePath() + "/META-INF/MANIFEST.MF");
+ Assert.assertTrue(manifestFile.exists(), "Manifest file not created properly!");
+ Assert.assertNotEquals(manifestFile.length(), 0, "Empty manifest!!");
+
+ InputStream manifestStream = new FileInputStream(manifestFile);
+ Manifest manifest = new Manifest(manifestStream);
+ String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
+ manifestStream.close();
+
+ MessageDigestGenerator digest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+ String expectedSHA256 = digest.calcDigestString(sampleWithoutManifestWar);
+
+ Assert.assertEquals(actualSha256Attribute, expectedSHA256);
+ Assert.assertEquals(actualShaReturned, expectedSHA256);
+
+ deleteRecursive(deploymentDirectory);
+ }
+
+ @Test
+ public void testGetShaExplodedWithoutManifest() throws Exception {
+ //tell the method story as it happens: mock or create dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File deploymentDirectory = new File(this.getClass().getResource("/").getFile() + "deploymentDirectory");
+ deleteRecursive(deploymentDirectory);
+
+ File sampleWithoutManifestWar = new File(this.getClass().getResource("/sampleWithoutManifest.war").getFile());
+ Assert.assertTrue(sampleWithoutManifestWar.exists());
+
+ //create object to test and inject required dependencies
+ ZipUtil.unzipFile(sampleWithoutManifestWar, deploymentDirectory);
+
+ //run code under test
+ FileContentDelegate objectUnderTest = new FileContentDelegate(deploymentDirectory);
+ String actualShaReturned = objectUnderTest.getSHA(deploymentDirectory);
+
+ //verify the results (Assert and mock verification)
+ File manifestFile = new File(deploymentDirectory.getAbsolutePath() + "/META-INF/MANIFEST.MF");
+ Assert.assertTrue(manifestFile.exists(), "Manifest file not created properly!");
+ Assert.assertNotEquals(manifestFile.length(), 0, "Empty manifest!!");
+
+ InputStream manifestStream = new FileInputStream(manifestFile);
+ Manifest manifest = new Manifest(manifestStream);
+ String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
+ manifestStream.close();
+
+ Assert.assertEquals(actualSha256Attribute, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
+ Assert.assertEquals(actualShaReturned, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
+
+ //cleanup resources created for this test
+ deleteRecursive(deploymentDirectory);
+ }
+
+ @Test
+ public void testDeployZipped() throws Exception {
+ //tell the method story as it happens: mock or create dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File deploymentFile = new File(this.getClass().getResource("/").getFile() + "deploymentDirectory.war");
+ deleteRecursive(deploymentFile);
+
+ File sampleWithoutManifestWar = new File(this.getClass().getResource("/sampleWithoutManifest.war").getFile());
+ Assert.assertTrue(sampleWithoutManifestWar.exists());
+
+ //create object to test and inject required dependencies
+ FileContentDelegate objectUnderTest = new FileContentDelegate(deploymentFile);
+
+ //run code under test
+ objectUnderTest.createContent(deploymentFile, sampleWithoutManifestWar, false);
+ String actualShaReturned = objectUnderTest.getSHA(sampleWithoutManifestWar);
+
+ //verify the results (Assert and mock verification)
+ Assert.assertTrue(deploymentFile.exists(), "Deployment did not happen.");
+ Assert.assertFalse(deploymentFile.isDirectory(), "Deployment was exploded when it should not have been.");
+
+ MessageDigestGenerator digest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+ String expectedSHA256 = digest.calcDigestString(sampleWithoutManifestWar);
+ String actualSHA256OfDeployment = digest.calcDigestString(deploymentFile);
+
+ Assert.assertEquals(actualSHA256OfDeployment, expectedSHA256);
+ Assert.assertEquals(actualShaReturned, expectedSHA256);
+
+ //cleanup resources created for this test
+ deleteRecursive(deploymentFile);
+ }
+
+ @Test
+ public void testGetShaZipped() throws Exception {
+ //tell the method story as it happens: mock or create dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File sampleWithoutManifestWar = new File(this.getClass().getResource("/sampleWithoutManifest.war").getFile());
+ Assert.assertTrue(sampleWithoutManifestWar.exists());
+
+ //create object to test and inject required dependencies
+ FileContentDelegate objectUnderTest = new FileContentDelegate(sampleWithoutManifestWar);
+
+ //run code under test
+ String actualShaReturned = objectUnderTest.getSHA(sampleWithoutManifestWar);
+
+ //verify the results (Assert and mock verification)
+ MessageDigestGenerator digest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+ String expectedSHA256 = digest.calcDigestString(sampleWithoutManifestWar);
+
+ //cleanup resources created for this test
+ Assert.assertEquals(actualShaReturned, expectedSHA256);
+ }
+
+ private void deleteRecursive(File fileToDelete) throws Exception {
+ if (fileToDelete.exists()) {
+ if (fileToDelete.isDirectory()) {
+ for (File file : fileToDelete.listFiles()) {
+ if (file.isDirectory()) {
+ deleteRecursive(file);
+ } else {
+ file.delete();
+ }
+ }
+ }
+
+ fileToDelete.delete();
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/TomcatVHostComponentTest.java b/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/TomcatVHostComponentTest.java
new file mode 100644
index 0000000..73a30ae
--- /dev/null
+++ b/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/TomcatVHostComponentTest.java
@@ -0,0 +1,155 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.jboss.on.plugins.tomcat.test;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.jar.Manifest;
+
+import org.mc4j.ems.connection.bean.EmsBean;
+import org.mc4j.ems.connection.bean.attribute.EmsAttribute;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import org.jboss.on.plugins.tomcat.TomcatServerComponent;
+import org.jboss.on.plugins.tomcat.TomcatVHostComponent;
+
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.PropertySimple;
+import org.rhq.core.domain.content.PackageDetailsKey;
+import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
+import org.rhq.core.domain.resource.CreateResourceStatus;
+import org.rhq.core.domain.resource.ResourceType;
+import org.rhq.core.pluginapi.content.ContentContext;
+import org.rhq.core.pluginapi.content.ContentServices;
+import org.rhq.core.pluginapi.inventory.CreateResourceReport;
+import org.rhq.core.pluginapi.inventory.ResourceContext;
+
+public class TomcatVHostComponentTest{
+
+ @Test
+ public void testCreateSource() throws Exception {
+ //create the object under test as a partial mock because only one
+ //public method will be tested, while the rest will be mocked.
+ TomcatVHostComponent objectUnderTest = mock(TomcatVHostComponent.class);
+
+ //tell the method story as it happens: mock dependencies and configure
+ //those dependencies to get the method under test to completion.
+ CreateResourceReport mockCreateResourceReport = mock(CreateResourceReport.class);
+ ResourceType mockResourceType = mock(ResourceType.class);
+ when(mockCreateResourceReport.getResourceType()).thenReturn(mockResourceType);
+ when(mockResourceType.getName()).thenReturn("Tomcat Web Application (WAR)");
+
+ ResourcePackageDetails mockResourcePackageDetails = mock(ResourcePackageDetails.class);
+ when(mockCreateResourceReport.getPackageDetails()).thenReturn(mockResourcePackageDetails);
+ PackageDetailsKey mockPackageDetailsKey = mock(PackageDetailsKey.class);
+ when(mockResourcePackageDetails.getKey()).thenReturn(mockPackageDetailsKey);
+ when(mockPackageDetailsKey.getName()).thenReturn("testApplication.war");
+
+ Configuration mockConfiguration = mock(Configuration.class);
+ when(mockResourcePackageDetails.getDeploymentTimeConfiguration()).thenReturn(mockConfiguration);
+ PropertySimple mockPropertySimple = mock(PropertySimple.class);
+ when(mockConfiguration.getSimple(any(String.class))).thenReturn(mockPropertySimple);
+ when(mockPropertySimple.getBooleanValue()).thenReturn(Boolean.TRUE);
+
+ EmsBean mockEmsBean = mock(EmsBean.class);
+ when(objectUnderTest.getEmsBean()).thenReturn(mockEmsBean);
+ EmsAttribute mockEmsAttribute = mock(EmsAttribute.class);
+ when(mockEmsBean.getAttribute(anyString())).thenReturn(mockEmsAttribute);
+ when(mockEmsAttribute.getValue()).thenReturn(Boolean.TRUE);
+
+ File deploymentDirectory = new File(this.getClass().getResource("/").getFile() + "deploymentDirectory");
+ deleteRecursive(deploymentDirectory);
+ when(objectUnderTest.getConfigurationPath()).thenReturn(deploymentDirectory);
+
+ File tempDirectory = new File(this.getClass().getResource("/").getFile() + "tempDirectory");
+ deleteRecursive(tempDirectory);
+ tempDirectory.mkdirs();
+
+ @SuppressWarnings("unchecked")
+ ResourceContext<TomcatServerComponent<?>> mockResourceContext = mock(ResourceContext.class);
+ when(objectUnderTest.getResourceContext()).thenReturn(mockResourceContext);
+ when(mockResourceContext.getTemporaryDirectory()).thenReturn(tempDirectory);
+
+ ContentContext mockContentContext = mock(ContentContext.class);
+ when(mockResourceContext.getContentContext()).thenReturn(mockContentContext);
+ ContentServices mockContentServices = mock(ContentServices.class);
+ when(mockContentContext.getContentServices()).thenReturn(mockContentServices);
+
+ when(objectUnderTest.isWebApplication(any(File.class))).thenReturn(Boolean.TRUE);
+
+ //run code under test
+ when(objectUnderTest.createResource(any(CreateResourceReport.class))).thenCallRealMethod();
+ objectUnderTest.createResource(mockCreateResourceReport);
+
+ //verify the results (Assert and mock verification)
+ verify(objectUnderTest).getEmsBean();
+ verify(objectUnderTest, times(2)).getResourceContext();
+ verify(objectUnderTest).getConfigurationPath();
+ verify(objectUnderTest).isWebApplication(any(File.class));
+
+ verify(mockContentServices).downloadPackageBitsForChildResource(any(ContentContext.class), anyString(),
+ any(PackageDetailsKey.class), any(OutputStream.class));
+
+ verify(mockCreateResourceReport).setStatus(eq(CreateResourceStatus.SUCCESS));
+ verify(mockCreateResourceReport).setResourceName(eq("testApplication"));
+
+ File manifestFile = new File(deploymentDirectory.getAbsolutePath() + "/testApplication/META-INF/MANIFEST.MF");
+ Assert.assertTrue(manifestFile.exists(), "Manifest file not created properly!");
+ Assert.assertNotEquals(manifestFile.length(), 0, "Empty manifest!!");
+
+ InputStream manifestStream = new FileInputStream(manifestFile);
+ Manifest manifest = new Manifest(manifestStream);
+ String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
+ manifestStream.close();
+
+ Assert.assertNotNull(actualSha256Attribute);
+ Assert.assertEquals(actualSha256Attribute.length(), 64);
+
+ //cleanup resources created for this test
+ deleteRecursive(deploymentDirectory);
+ deleteRecursive(tempDirectory);
+ }
+
+ private void deleteRecursive(File fileToDelete) throws Exception {
+ if (fileToDelete.exists()) {
+ if (fileToDelete.isDirectory()) {
+ for (File file : fileToDelete.listFiles()) {
+ if (file.isDirectory()) {
+ deleteRecursive(file);
+ } else {
+ file.delete();
+ }
+ }
+ }
+
+ fileToDelete.delete();
+ }
+ }
+}
\ No newline at end of file
diff --git a/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/TomcatWarComponentTest.java b/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/TomcatWarComponentTest.java
new file mode 100644
index 0000000..f7a395b
--- /dev/null
+++ b/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/TomcatWarComponentTest.java
@@ -0,0 +1,270 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.jboss.on.plugins.tomcat.test;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Matchers.isNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+import java.util.jar.Manifest;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import org.jboss.on.plugins.tomcat.TomcatVHostComponent;
+import org.jboss.on.plugins.tomcat.TomcatWarComponent;
+
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.content.PackageType;
+import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
+import org.rhq.core.pluginapi.inventory.ResourceContext;
+import org.rhq.core.util.MessageDigestGenerator;
+import org.rhq.core.util.ZipUtil;
+
+public class TomcatWarComponentTest {
+
+ @Test
+ public void testDiscoverZippedDeployment() throws Exception {
+ //create the object under test as a partial mock because only one
+ //public method will be tested, while the rest will be mocked.
+ TomcatWarComponent objectUnderTest = mock(TomcatWarComponent.class);
+
+ //tell the method story as it happens: mock dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File fileUsedInTest = new File(this.getClass().getResource("/sampleWithManifest.war").getFile());
+
+ @SuppressWarnings("unchecked")
+ ResourceContext<TomcatVHostComponent> mockResourceContext = mock(ResourceContext.class);
+ when(objectUnderTest.getResourceContext()).thenReturn(mockResourceContext);
+ Configuration mockConfiguration = mock(Configuration.class);
+ when(mockResourceContext.getPluginConfiguration()).thenReturn(mockConfiguration);
+ when(mockConfiguration.getSimpleValue(eq("filename"), isNull(String.class))).thenReturn(
+ fileUsedInTest.getAbsolutePath());
+
+ PackageType mockPackageType = mock(PackageType.class);
+
+ when(objectUnderTest.discoverDeployedPackages(any(PackageType.class))).thenCallRealMethod();
+
+ //run code under test
+ Set<ResourcePackageDetails> actualResult = objectUnderTest.discoverDeployedPackages(mockPackageType);
+
+ //verify the results (Assert and mock verification)
+ Assert.assertEquals(actualResult.size(), 1);
+
+ ResourcePackageDetails actualResourcePackageDetails = (ResourcePackageDetails) actualResult.toArray()[0];
+ Assert.assertEquals(actualResourcePackageDetails.getFileName(), fileUsedInTest.getName());
+ Assert.assertEquals(actualResourcePackageDetails.getLocation(), fileUsedInTest.getPath());
+ Assert.assertEquals((long) actualResourcePackageDetails.getFileSize(), fileUsedInTest.length());
+ if (actualResourcePackageDetails.getInstallationTimestamp() > System.currentTimeMillis()) {
+ Assert.fail("Timestamp is not in the past.");
+ }
+
+ MessageDigestGenerator digest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+ String expectedSha256 = digest.calcDigestString(fileUsedInTest);
+
+ Assert.assertEquals(actualResourcePackageDetails.getSHA256(), expectedSha256);
+ Assert.assertEquals(actualResourcePackageDetails.getDisplayVersion(), null);
+
+ verify(mockResourceContext, times(1)).getPluginConfiguration();
+ verify(objectUnderTest, times(1)).getResourceContext();
+ verify(mockConfiguration, times(1)).getSimpleValue(eq("filename"), isNull(String.class));
+ verifyNoMoreInteractions(mockPackageType);
+ }
+
+ @Test
+ public void testDiscoverExplodedDeployments() throws Exception {
+
+ //Presetup resources for the test
+ String[] testArchiveFiles = new String[] { "/sampleWithManifest.war", "/sampleWithoutManifest.war",
+ "/sampleWithImplementation.war", "/sampleWithSpecification.war",
+ "/sampleWithSpecificationImplementation.war" };
+
+ Map<String, String> expectedSha256 = new HashMap<String, String>();
+ expectedSha256.put(testArchiveFiles[0], "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d");
+ expectedSha256.put(testArchiveFiles[1], "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20");
+ expectedSha256.put(testArchiveFiles[2], "c72750a8952fcd50ee3e9dce8766a75aecdc57f4b654eca5787d3fa12dc78a55");
+ expectedSha256.put(testArchiveFiles[3], "968382bcd2f7550c2785a622c24671feaed4cca033bd9fe17665d9d66d8d3646");
+ expectedSha256.put(testArchiveFiles[4], "a96d9a054ead08575c11a79ec51ac0174da5ab02d213c008d248b6a59da6dc53");
+
+ Map<String, String> expectedDisplayVersion = new HashMap<String, String>();
+ expectedDisplayVersion.put(testArchiveFiles[0], null);
+ expectedDisplayVersion.put(testArchiveFiles[1], null);
+ expectedDisplayVersion.put(testArchiveFiles[2], "9.99");
+ expectedDisplayVersion.put(testArchiveFiles[3], "1.234");
+ expectedDisplayVersion.put(testArchiveFiles[4], "1.234 (9.990)");
+
+ for (String availableArchiveFile : testArchiveFiles) {
+ //create the object under test as a partial mock because only one
+ //public method will be tested, while the rest will be mocked.
+ TomcatWarComponent objectUnderTest = mock(TomcatWarComponent.class);
+
+ //tell the method story as it happens: mock dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File archiveUsedInTest = new File(this.getClass().getResource(availableArchiveFile).getFile());
+ File deploymentFolderUsedInTest = new File(this.getClass().getResource("/").getFile() + "deploymentFolder");
+ ZipUtil.unzipFile(archiveUsedInTest, deploymentFolderUsedInTest);
+
+ @SuppressWarnings("unchecked")
+ ResourceContext<TomcatVHostComponent> mockResourceContext = mock(ResourceContext.class);
+ when(objectUnderTest.getResourceContext()).thenReturn(mockResourceContext);
+ Configuration mockConfiguration = mock(Configuration.class);
+ when(mockResourceContext.getPluginConfiguration()).thenReturn(mockConfiguration);
+ when(mockConfiguration.getSimpleValue(eq("filename"), isNull(String.class))).thenReturn(
+ deploymentFolderUsedInTest.getAbsolutePath());
+
+ PackageType mockPackageType = mock(PackageType.class);
+
+ when(objectUnderTest.discoverDeployedPackages(any(PackageType.class))).thenCallRealMethod();
+
+ //run code under test
+ Set<ResourcePackageDetails> actualResult = objectUnderTest.discoverDeployedPackages(mockPackageType);
+
+ //verify the results (Assert and mock verification)
+ Assert.assertEquals(actualResult.size(), 1);
+
+ ResourcePackageDetails actualResourcePackageDetails = (ResourcePackageDetails) actualResult.toArray()[0];
+ Assert.assertEquals(actualResourcePackageDetails.getFileName(), deploymentFolderUsedInTest.getName());
+ Assert.assertEquals(actualResourcePackageDetails.getLocation(), deploymentFolderUsedInTest.getPath());
+ Assert.assertEquals(actualResourcePackageDetails.getFileSize(), null);
+ if (actualResourcePackageDetails.getInstallationTimestamp() > System.currentTimeMillis()) {
+ Assert.fail("Timestamp is not in the past.");
+ }
+
+ String expectedSha256ForDeployment = expectedSha256.get(availableArchiveFile);
+
+ Assert.assertEquals(actualResourcePackageDetails.getSHA256(), expectedSha256.get(availableArchiveFile));
+ Assert.assertEquals(actualResourcePackageDetails.getDisplayVersion(),
+ expectedDisplayVersion.get(availableArchiveFile));
+
+ File manifestFile = new File(deploymentFolderUsedInTest.getAbsolutePath() + "/META-INF/MANIFEST.MF");
+ Assert.assertTrue(manifestFile.exists(), "Manifest file not created properly!");
+ Assert.assertNotEquals(manifestFile.length(), 0, "Empty manifest!!");
+
+ InputStream manifestStream = new FileInputStream(manifestFile);
+ Manifest manifest = new Manifest(manifestStream);
+ String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256");
+ manifestStream.close();
+
+ Assert.assertEquals(actualSha256Attribute, expectedSha256ForDeployment);
+
+ verify(mockResourceContext, times(1)).getPluginConfiguration();
+ verify(objectUnderTest, times(1)).getResourceContext();
+ verify(mockConfiguration, times(1)).getSimpleValue(eq("filename"), isNull(String.class));
+ verifyNoMoreInteractions(mockPackageType);
+
+ //cleanup resources created for this test
+ deleteRecursive(deploymentFolderUsedInTest);
+ }
+ }
+
+ @Test
+ public void testDiscoverNoFileOnDisk() throws Exception {
+ //create the object under test as a partial mock because only one
+ //public method will be tested, while the rest will be mocked.
+ TomcatWarComponent objectUnderTest = mock(TomcatWarComponent.class);
+
+ //tell the method story as it happens: mock dependencies and configure
+ //those dependencies to get the method under test to completion.
+ File fileUsedInTest = new File(this.getClass().getResource("/").getFile() + "randomNonExistingFile");
+
+ @SuppressWarnings("unchecked")
+ ResourceContext<TomcatVHostComponent> mockResourceContext = mock(ResourceContext.class);
+ when(objectUnderTest.getResourceContext()).thenReturn(mockResourceContext);
+ Configuration mockConfiguration = mock(Configuration.class);
+ when(mockResourceContext.getPluginConfiguration()).thenReturn(mockConfiguration);
+ when(mockConfiguration.getSimpleValue(eq("filename"), isNull(String.class))).thenReturn(
+ fileUsedInTest.getAbsolutePath());
+
+ PackageType mockPackageType = mock(PackageType.class);
+
+ when(objectUnderTest.discoverDeployedPackages(any(PackageType.class))).thenCallRealMethod();
+
+ //run code under test
+ Set<ResourcePackageDetails> actualResult = objectUnderTest.discoverDeployedPackages(mockPackageType);
+
+ //verify the results (Assert and mock verification)
+ Assert.assertEquals(actualResult.size(), 0);
+
+ verify(mockResourceContext, times(1)).getPluginConfiguration();
+ verify(objectUnderTest, times(1)).getResourceContext();
+ verify(mockConfiguration, times(1)).getSimpleValue(eq("filename"), isNull(String.class));
+
+ verifyNoMoreInteractions(mockPackageType);
+ }
+
+ @Test(expectedExceptions = IllegalStateException.class)
+ public void testDiscoverIncorrectConfiguration() throws Exception {
+ //create the object under test as a partial mock because only one
+ //public method will be tested, while the rest will be mocked.
+ TomcatWarComponent objectUnderTest = mock(TomcatWarComponent.class);
+
+ //tell the method story as it happens: mock dependencies and configure
+ //those dependencies to get the method under test to completion.
+ @SuppressWarnings("unchecked")
+ ResourceContext<TomcatVHostComponent> mockResourceContext = mock(ResourceContext.class);
+ when(objectUnderTest.getResourceContext()).thenReturn(mockResourceContext);
+ Configuration mockConfiguration = mock(Configuration.class);
+ when(mockResourceContext.getPluginConfiguration()).thenReturn(mockConfiguration);
+ when(mockConfiguration.getSimpleValue(eq("filename"), isNull(String.class))).thenReturn(null);
+
+ PackageType mockPackageType = mock(PackageType.class);
+
+ when(objectUnderTest.discoverDeployedPackages(any(PackageType.class))).thenCallRealMethod();
+
+ //run code under test
+ Set<ResourcePackageDetails> actualResult = objectUnderTest.discoverDeployedPackages(mockPackageType);
+
+ //verify the results (Assert and mock verification)
+ Assert.assertEquals(actualResult.size(), 0);
+
+ verify(mockResourceContext, times(1)).getPluginConfiguration();
+ verify(objectUnderTest, times(1)).getResourceContext();
+ verify(mockConfiguration, times(1)).getSimpleValue(eq("filename"), isNull(String.class));
+
+ verifyNoMoreInteractions(mockPackageType);
+ }
+
+ private void deleteRecursive(File fileToDelete) throws Exception {
+ if (fileToDelete.exists()) {
+ if (fileToDelete.isDirectory()) {
+ for (File file : fileToDelete.listFiles()) {
+ if (file.isDirectory()) {
+ deleteRecursive(file);
+ } else {
+ file.delete();
+ }
+ }
+ }
+
+ fileToDelete.delete();
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/modules/plugins/tomcat/src/test/resources/sampleWithImplementation.war b/modules/plugins/tomcat/src/test/resources/sampleWithImplementation.war
new file mode 100644
index 0000000..9a5b7f4
Binary files /dev/null and b/modules/plugins/tomcat/src/test/resources/sampleWithImplementation.war differ
diff --git a/modules/plugins/tomcat/src/test/resources/sampleWithManifest.war b/modules/plugins/tomcat/src/test/resources/sampleWithManifest.war
new file mode 100644
index 0000000..0a127e6
Binary files /dev/null and b/modules/plugins/tomcat/src/test/resources/sampleWithManifest.war differ
diff --git a/modules/plugins/tomcat/src/test/resources/sampleWithSpecification.war b/modules/plugins/tomcat/src/test/resources/sampleWithSpecification.war
new file mode 100644
index 0000000..5f021e7
Binary files /dev/null and b/modules/plugins/tomcat/src/test/resources/sampleWithSpecification.war differ
diff --git a/modules/plugins/tomcat/src/test/resources/sampleWithSpecificationImplementation.war b/modules/plugins/tomcat/src/test/resources/sampleWithSpecificationImplementation.war
new file mode 100644
index 0000000..43fa852
Binary files /dev/null and b/modules/plugins/tomcat/src/test/resources/sampleWithSpecificationImplementation.war differ
diff --git a/modules/plugins/tomcat/src/test/resources/sampleWithoutManifest.war b/modules/plugins/tomcat/src/test/resources/sampleWithoutManifest.war
new file mode 100644
index 0000000..0f938f5
Binary files /dev/null and b/modules/plugins/tomcat/src/test/resources/sampleWithoutManifest.war differ
commit 9ce3f7f9ee5dae9e68e5413d146082fb1aeeb92d
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Thu Feb 2 08:29:54 2012 -0600
[BZ 771418] Corrected incorrect import of junit dependencies. Testng is the framework of choice.
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentManagerBeanMockTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentManagerBeanMockTest.java
index 7ee018f..70eef9d 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentManagerBeanMockTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentManagerBeanMockTest.java
@@ -44,13 +44,12 @@ import javax.persistence.EntityManager;
import javax.persistence.Query;
import javax.sql.DataSource;
-import junit.framework.Assert;
-
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.testng.PowerMockObjectFactory;
+import org.testng.Assert;
import org.testng.IObjectFactory;
import org.testng.annotations.ObjectFactory;
import org.testng.annotations.Test;
commit 6263ca50dfe5e168018ed248efb5700b8be55867
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Thu Feb 2 08:26:19 2012 -0600
[BZ 772722] Adding unit tests for the JBoss CSP server plugin to ensure sha256 and version are correctly populated during sync.
diff --git a/modules/enterprise/server/plugins/jboss-software/src/test/java/org/rhq/enterprise/server/plugins/jboss/software/test/RssFeedParserTest.java b/modules/enterprise/server/plugins/jboss-software/src/test/java/org/rhq/enterprise/server/plugins/jboss/software/test/RssFeedParserTest.java
index 15fc3cc..30d0efa 100644
--- a/modules/enterprise/server/plugins/jboss-software/src/test/java/org/rhq/enterprise/server/plugins/jboss/software/test/RssFeedParserTest.java
+++ b/modules/enterprise/server/plugins/jboss-software/src/test/java/org/rhq/enterprise/server/plugins/jboss/software/test/RssFeedParserTest.java
@@ -25,6 +25,10 @@ import java.net.URL;
import java.util.Iterator;
import java.util.Set;
+import churchillobjects.rss4j.RssDocument;
+import churchillobjects.rss4j.parser.RssParser;
+
+import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -32,9 +36,6 @@ import org.rhq.enterprise.server.plugin.pc.content.ContentProviderPackageDetails
import org.rhq.enterprise.server.plugin.pc.content.PackageSyncReport;
import org.rhq.enterprise.server.plugins.jboss.software.RssFeedParser;
-import churchillobjects.rss4j.RssDocument;
-import churchillobjects.rss4j.parser.RssParser;
-
/**
* @author Jason Dobies
*/
@@ -98,6 +99,8 @@ public class RssFeedParserTest {
int totalNumVersions = 0;
for (ContentProviderPackageDetails pkg : newPackages) {
totalNumVersions += pkg.getResourceVersions().size();
+
+ Assert.assertEquals("[sha256=" + pkg.getSHA256() + "]", pkg.getKey().getVersion());
}
assert totalNumVersions == 282 : "Incorrect number of total versions represented. Expected: 282, Found: "
@@ -126,6 +129,10 @@ public class RssFeedParserTest {
+ report.getDeletedPackages().size();
assert report.getUpdatedPackages().size() == 0 : "Incorrect number of updated packages. Expected: 0, Found: "
+ report.getUpdatedPackages().size();
+
+ for (ContentProviderPackageDetails pkg : report.getNewPackages()) {
+ Assert.assertEquals("[sha256=" + pkg.getSHA256() + "]", pkg.getKey().getVersion());
+ }
}
@Test
commit 8bd92ab64b02162101aa4efae1155c14836cb44f
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Thu Feb 2 01:52:33 2012 -0600
[BZ 772722] Added unit tests for updated functionality of the disk source repository.
diff --git a/.classpath b/.classpath
index 88f670d..46efded 100644
--- a/.classpath
+++ b/.classpath
@@ -292,5 +292,6 @@
<classpathentry kind="src" path="modules/plugins/jboss-as-7/src/test/java"/>
<classpathentry kind="src" path="modules/integration-tests/jboss-as-7-plugin-test/src/test/java"/>
<classpathentry kind="src" path="modules/integration-tests/mod_cluster-plugin-test/src/test/java"/>
+ <classpathentry kind="src" path="modules/enterprise/server/plugins/disk/src/test/java"/>
<classpathentry kind="output" path="eclipse-classes"/>
</classpath>
diff --git a/modules/enterprise/server/plugins/disk/pom.xml b/modules/enterprise/server/plugins/disk/pom.xml
index 9fcc685..c6f3ced 100644
--- a/modules/enterprise/server/plugins/disk/pom.xml
+++ b/modules/enterprise/server/plugins/disk/pom.xml
@@ -12,6 +12,10 @@
<artifactId>rhq-serverplugin-disk</artifactId>
<packaging>jar</packaging>
+ <properties>
+ <powermock.version>1.4.11</powermock.version>
+ </properties>
+
<name>RHQ Enterprise Server Disk Content Source Plugin</name>
<description>JBoss Operations Network Enterprise Server Disk Content Source Plugin</description>
@@ -24,6 +28,20 @@
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-module-testng</artifactId>
+ <version>${powermock.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-api-mockito</artifactId>
+ <version>${powermock.version}</version>
+ <scope>test</scope>
+ </dependency>
+
</dependencies>
<build>
diff --git a/modules/enterprise/server/plugins/disk/src/test/java/org/rhq/enterprise/server/plugins/disk/test/DiskSourceTest.java b/modules/enterprise/server/plugins/disk/src/test/java/org/rhq/enterprise/server/plugins/disk/test/DiskSourceTest.java
new file mode 100644
index 0000000..9981f3a
--- /dev/null
+++ b/modules/enterprise/server/plugins/disk/src/test/java/org/rhq/enterprise/server/plugins/disk/test/DiskSourceTest.java
@@ -0,0 +1,263 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.server.plugins.disk.test;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.powermock.api.mockito.PowerMockito.verifyNew;
+import static org.powermock.api.mockito.PowerMockito.whenNew;
+
+import java.io.File;
+import java.util.Collection;
+
+import org.mockito.ArgumentCaptor;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.testng.PowerMockObjectFactory;
+import org.testng.Assert;
+import org.testng.IObjectFactory;
+import org.testng.annotations.ObjectFactory;
+import org.testng.annotations.Test;
+
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.PropertySimple;
+import org.rhq.core.util.MessageDigestGenerator;
+import org.rhq.core.util.file.ContentFileInfo;
+import org.rhq.core.util.file.ContentFileInfoFactory;
+import org.rhq.enterprise.server.plugin.pc.content.ContentProviderPackageDetails;
+import org.rhq.enterprise.server.plugin.pc.content.PackageSyncReport;
+import org.rhq.enterprise.server.plugins.disk.DiskSource;
+
+@PrepareForTest({ DiskSource.class, ContentFileInfoFactory.class })
+public class DiskSourceTest{
+
+ @ObjectFactory
+ public IObjectFactory getObjectFactory() {
+ return new PowerMockObjectFactory();
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void noPackageDiscoveredOnDisk() throws Exception {
+
+ //set all the method call arguments
+ String repoName = "testRepo";
+ PackageSyncReport mockPackageSyncReport = mock(PackageSyncReport.class);
+ Collection<ContentProviderPackageDetails> mockCollection = mock(Collection.class);
+
+ //tell the method story as it happens: mock dependencies and make them
+ //behave in a way to get the method under test to completion.
+ Configuration mockConfiguration = mock(Configuration.class);
+ PropertySimple mockProperty = mock(PropertySimple.class);
+ when(mockConfiguration.get("packageSourceEnabled")).thenReturn(mockProperty);
+ when(mockConfiguration.get("repoSourceEnabled")).thenReturn(mockProperty);
+ when(mockProperty.getBooleanValue()).thenReturn(Boolean.TRUE, Boolean.FALSE);
+
+ final String directoryPath = "mock path";
+
+ when(mockConfiguration.getSimpleValue(eq("rootDirectory"), anyString())).thenReturn(directoryPath);
+ when(mockConfiguration.getSimpleValue(eq("packageTypeName"), anyString())).thenReturn("packageTypeName");
+ when(mockConfiguration.getSimpleValue(eq("architectureName"), anyString())).thenReturn("architectureName");
+ when(mockConfiguration.getSimpleValue(eq("resourceType"), anyString())).thenReturn("resource-type");
+
+ File mockRootFolder = mock(File.class);
+ whenNew(File.class).withArguments(directoryPath).thenReturn(mockRootFolder);
+ when(mockRootFolder.exists()).thenReturn(true);
+ when(mockRootFolder.canRead()).thenReturn(true);
+ when(mockRootFolder.isDirectory()).thenReturn(true);
+
+ when(mockCollection.toArray()).thenReturn(new Object[0]);
+
+ File mockRepoFolder = mock(File.class);
+ when(mockRootFolder.listFiles()).thenReturn(new File[] { mockRepoFolder });
+ when(mockRepoFolder.isDirectory()).thenReturn(true);
+ when(mockRepoFolder.getName()).thenReturn(repoName);
+ when(mockRepoFolder.listFiles()).thenReturn(new File[0]);
+
+ //create object to test and inject required dependencies
+ DiskSource objectUnderTest = new DiskSource();
+
+ //run the code to be tested
+ objectUnderTest.initialize(mockConfiguration);
+ objectUnderTest.synchronizePackages(repoName, mockPackageSyncReport, mockCollection);
+
+ //verify the results (Assert and Mock Verification)
+ verify(mockPackageSyncReport, never()).addUpdatedPackage(any(ContentProviderPackageDetails.class));
+ verify(mockPackageSyncReport, never()).addNewPackage(any(ContentProviderPackageDetails.class));
+ verify(mockConfiguration, times(2)).get(anyString());
+ verifyNew(File.class).withArguments(directoryPath);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void onePackageDiscoveredOnDisk() throws Exception {
+
+ //set all the method call arguments
+ String repoName = "testRepo";
+ PackageSyncReport mockPackageSyncReport = mock(PackageSyncReport.class);
+ Collection<ContentProviderPackageDetails> mockCollection = mock(Collection.class);
+
+ //tell the method story as it happens: mock dependencies and make them
+ //behave in a way to get the method under test to completion.
+ Configuration mockConfiguration = mock(Configuration.class);
+ PropertySimple mockProperty = mock(PropertySimple.class);
+ when(mockConfiguration.get("packageSourceEnabled")).thenReturn(mockProperty);
+ when(mockConfiguration.get("repoSourceEnabled")).thenReturn(mockProperty);
+ when(mockProperty.getBooleanValue()).thenReturn(Boolean.TRUE, Boolean.FALSE);
+
+ final String directoryPath = "mock path";
+
+ when(mockConfiguration.getSimpleValue(eq("rootDirectory"), anyString())).thenReturn(directoryPath);
+ when(mockConfiguration.getSimpleValue(eq("packageTypeName"), anyString())).thenReturn("packageTypeName");
+ when(mockConfiguration.getSimpleValue(eq("architectureName"), anyString())).thenReturn("architectureName");
+ when(mockConfiguration.getSimpleValue(eq("resourceType"), anyString())).thenReturn("resource-type");
+ when(mockConfiguration.getSimpleValue(eq("filenameFilter"), anyString())).thenReturn(".*");
+
+ File mockRootFolder = mock(File.class);
+ whenNew(File.class).withArguments(directoryPath).thenReturn(mockRootFolder);
+ when(mockRootFolder.getAbsolutePath()).thenReturn(directoryPath);
+ when(mockRootFolder.exists()).thenReturn(true);
+ when(mockRootFolder.canRead()).thenReturn(true);
+ when(mockRootFolder.isDirectory()).thenReturn(true);
+
+ when(mockCollection.toArray()).thenReturn(new Object[0]);
+
+ File mockRepoFolder = mock(File.class);
+ when(mockRootFolder.listFiles()).thenReturn(new File[] { mockRepoFolder });
+ when(mockRepoFolder.isDirectory()).thenReturn(true);
+ when(mockRepoFolder.getName()).thenReturn(repoName);
+
+ File mockFile = mock(File.class);
+ when(mockRepoFolder.listFiles()).thenReturn(new File[] { mockFile });
+ when(mockFile.getAbsolutePath()).thenReturn("test");
+
+ ContentFileInfo contentFileInfo = mock(ContentFileInfo.class);
+ PowerMockito.mockStatic(ContentFileInfoFactory.class);
+ when(ContentFileInfoFactory.createContentFileInfo(any(File.class))).thenReturn(contentFileInfo);
+
+ MessageDigestGenerator mockDigest = mock(MessageDigestGenerator.class);
+ whenNew(MessageDigestGenerator.class).withArguments(anyString()).thenReturn(mockDigest);
+ when(mockDigest.calcDigestString(any(File.class))).thenReturn("sha256");
+
+ when(mockFile.getName()).thenReturn("fileName");
+ when(mockFile.getAbsolutePath()).thenReturn("mock path");
+
+ //create object to test and inject required dependencies
+ DiskSource objectUnderTest = new DiskSource();
+
+ //run the code to be tested
+ objectUnderTest.initialize(mockConfiguration);
+ objectUnderTest.synchronizePackages(repoName, mockPackageSyncReport, mockCollection);
+
+ //verify the results (Assert and Mock Verification)
+ verify(mockPackageSyncReport, never()).addUpdatedPackage(any(ContentProviderPackageDetails.class));
+ verify(mockConfiguration, times(2)).get(anyString());
+ verifyNew(File.class).withArguments(directoryPath);
+
+ ArgumentCaptor<ContentProviderPackageDetails> argument = ArgumentCaptor
+ .forClass(ContentProviderPackageDetails.class);
+ verify(mockPackageSyncReport, times(1)).addNewPackage(argument.capture());
+ Assert.assertEquals("sha256", argument.getValue().getSHA256());
+ Assert.assertEquals("[sha256=sha256]", argument.getValue().getKey().getVersion());
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void onePackageDiscoveredOnDiskWithRedundantSubfolder() throws Exception {
+
+ //set all the method call arguments
+ String repoName = "testRepo";
+ PackageSyncReport mockPackageSyncReport = mock(PackageSyncReport.class);
+ Collection<ContentProviderPackageDetails> mockCollection = mock(Collection.class);
+
+ //tell the method story as it happens: mock dependencies and make them
+ //behave in a way to get the method under test to completion.
+ Configuration mockConfiguration = mock(Configuration.class);
+ PropertySimple mockProperty = mock(PropertySimple.class);
+ when(mockConfiguration.get("packageSourceEnabled")).thenReturn(mockProperty);
+ when(mockConfiguration.get("repoSourceEnabled")).thenReturn(mockProperty);
+ when(mockProperty.getBooleanValue()).thenReturn(Boolean.TRUE, Boolean.FALSE);
+
+ final String directoryPath = "mock path";
+
+ when(mockConfiguration.getSimpleValue(eq("rootDirectory"), anyString())).thenReturn(directoryPath);
+ when(mockConfiguration.getSimpleValue(eq("packageTypeName"), anyString())).thenReturn("packageTypeName");
+ when(mockConfiguration.getSimpleValue(eq("architectureName"), anyString())).thenReturn("architectureName");
+ when(mockConfiguration.getSimpleValue(eq("resourceType"), anyString())).thenReturn("resource-type");
+ when(mockConfiguration.getSimpleValue(eq("filenameFilter"), anyString())).thenReturn(".*");
+
+ File mockRootFolder = mock(File.class);
+ whenNew(File.class).withArguments(directoryPath).thenReturn(mockRootFolder);
+ when(mockRootFolder.getAbsolutePath()).thenReturn(directoryPath);
+ when(mockRootFolder.exists()).thenReturn(true);
+ when(mockRootFolder.canRead()).thenReturn(true);
+ when(mockRootFolder.isDirectory()).thenReturn(true);
+
+ when(mockCollection.toArray()).thenReturn(new Object[0]);
+
+ File mockRepoFolder = mock(File.class);
+ when(mockRootFolder.listFiles()).thenReturn(new File[] { mockRepoFolder });
+ when(mockRepoFolder.isDirectory()).thenReturn(true);
+ when(mockRepoFolder.getName()).thenReturn(repoName);
+
+ File mockExtraFolder = mock(File.class);
+ File mockFile = mock(File.class);
+ when(mockRepoFolder.listFiles()).thenReturn(new File[] { mockFile, mockExtraFolder });
+ when(mockFile.getAbsolutePath()).thenReturn("test");
+ when(mockExtraFolder.isDirectory()).thenReturn(true);
+
+ ContentFileInfo contentFileInfo = mock(ContentFileInfo.class);
+ PowerMockito.mockStatic(ContentFileInfoFactory.class);
+ when(ContentFileInfoFactory.createContentFileInfo(any(File.class))).thenReturn(contentFileInfo);
+
+ MessageDigestGenerator mockDigest = mock(MessageDigestGenerator.class);
+ whenNew(MessageDigestGenerator.class).withArguments(anyString()).thenReturn(mockDigest);
+ when(mockDigest.calcDigestString(any(File.class))).thenReturn("sha256");
+
+ when(mockFile.getName()).thenReturn("fileName");
+ when(mockFile.getAbsolutePath()).thenReturn("mock path");
+
+ //create object to test and inject required dependencies
+ DiskSource objectUnderTest = new DiskSource();
+
+ //run the code to be tested
+ objectUnderTest.initialize(mockConfiguration);
+ objectUnderTest.synchronizePackages(repoName, mockPackageSyncReport, mockCollection);
+
+ //verify the results (Assert and Mock Verification)
+ verify(mockPackageSyncReport, never()).addUpdatedPackage(any(ContentProviderPackageDetails.class));
+ verify(mockConfiguration, times(2)).get(anyString());
+ verifyNew(File.class).withArguments(directoryPath);
+
+ ArgumentCaptor<ContentProviderPackageDetails> argument = ArgumentCaptor
+ .forClass(ContentProviderPackageDetails.class);
+ verify(mockPackageSyncReport, times(1)).addNewPackage(argument.capture());
+ Assert.assertEquals("sha256", argument.getValue().getSHA256());
+ Assert.assertEquals("[sha256=sha256]", argument.getValue().getKey().getVersion());
+
+ verify(mockExtraFolder, times(1)).isDirectory();
+ }
+
+}
\ No newline at end of file
commit 6d15c4f3ee59ee0922410cd488b5eda32fd1b5cc
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Wed Feb 1 16:29:01 2012 -0600
[BZ 771418] Adding unit tests for changed functionality around display version and existing package version selection.
diff --git a/.classpath b/.classpath
index a66ca82..88f670d 100644
--- a/.classpath
+++ b/.classpath
@@ -126,6 +126,12 @@
<classpathentry exported="true" kind="var" path="M2_REPO/org/jboss/resteasy/jaxrs-api/2.2.1.GA/jaxrs-api-2.2.1.GA.jar"/>
<classpathentry exported="true" kind="var" path="M2_REPO/org/jboss/sasl/jboss-sasl/1.0.0.Beta9/jboss-sasl-1.0.0.Beta9.jar"/>
<classpathentry exported="true" kind="var" path="JDK_HOME/lib/tools.jar"/>
+ <classpathentry exported="true" kind="var" path="M2_REPO/org/mockito/mockito-all/1.9.0/mockito-all-1.9.0.jar"/>
+ <classpathentry exported="true" kind="var" path="M2_REPO/org/powermock/powermock-api-mockito/1.4.11/powermock-api-mockito-1.4.11.jar"/>
+ <classpathentry exported="true" kind="var" path="M2_REPO/org/powermock/powermock-core/1.4.11/powermock-core-1.4.11.jar"/>
+ <classpathentry exported="true" kind="var" path="M2_REPO/org/powermock/powermock-api-support/1.4.11/powermock-api-support-1.4.11.jar"/>
+ <classpathentry exported="true" kind="var" path="M2_REPO/org/powermock/powermock-module-testng-common/1.4.11/powermock-module-testng-common-1.4.11.jar"/>
+ <classpathentry exported="true" kind="var" path="M2_REPO/org/powermock/powermock-module-testng/1.4.11/powermock-module-testng-1.4.11.jar"/>
<classpathentry kind="src" path="modules/common/ant-bundle/src/main/java"/>
<classpathentry kind="src" path="modules/enterprise/server/itests/src/test/java"/>
<classpathentry kind="src" path="modules/enterprise/server/plugins/drift-mongodb/src/main/java"/>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 68ecc5c..b47f0e2 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -23,6 +23,7 @@
<jboss-embeddable-ejb3.version>1.0.0.Alpha9</jboss-embeddable-ejb3.version>
<clean.db>true</clean.db>
+ <powermock.version>1.4.11</powermock.version>
</properties>
<dependencies>
@@ -529,6 +530,20 @@
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-module-testng</artifactId>
+ <version>${powermock.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-api-mockito</artifactId>
+ <version>${powermock.version}</version>
+ <scope>test</scope>
+ </dependency>
+
</dependencies>
<build>
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentManagerBeanMockTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentManagerBeanMockTest.java
new file mode 100644
index 0000000..7ee018f
--- /dev/null
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentManagerBeanMockTest.java
@@ -0,0 +1,457 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.server.content.test;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyLong;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Matchers.isNotNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.lang.reflect.Field;
+import java.sql.Blob;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+import javax.sql.DataSource;
+
+import junit.framework.Assert;
+
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.testng.PowerMockObjectFactory;
+import org.testng.IObjectFactory;
+import org.testng.annotations.ObjectFactory;
+import org.testng.annotations.Test;
+
+import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.content.Architecture;
+import org.rhq.core.domain.content.Package;
+import org.rhq.core.domain.content.PackageBits;
+import org.rhq.core.domain.content.PackageBitsBlob;
+import org.rhq.core.domain.content.PackageType;
+import org.rhq.core.domain.content.PackageVersion;
+import org.rhq.core.util.MessageDigestGenerator;
+import org.rhq.enterprise.server.content.ContentManagerBean;
+import org.rhq.enterprise.server.content.ContentManagerHelper;
+import org.rhq.enterprise.server.content.ContentManagerLocal;
+import org.rhq.enterprise.server.plugin.pc.content.PackageTypeBehavior;
+
+(a)PrepareForTest(ContentManagerHelper.class)
+public class ContentManagerBeanMockTest {
+
+ @ObjectFactory
+ public IObjectFactory getObjectFactory() {
+ return new PowerMockObjectFactory();
+ }
+
+ /*
+ * Test createPackageVersionWithDisplayVersion with the following hypothesis:
+ * 1) There are no existing package version objects in the database
+ * 2) A new package will be created because of (1)
+ * 3) Focal point of the test is the first 10 lines of the method.
+ */
+ @Test
+ @SuppressWarnings("rawtypes")
+ public void testCreatePackageVersion() throws Exception {
+
+ //set all the method call arguments
+ Subject mockSubject = mock(Subject.class);
+ String packageName = "PackageName";
+ int packageTypeID = 1;
+ String version = "PackageVersion";
+ String displayVersion = "PackageDisplayVersion";
+ int architectureId = 2;
+ String sampleContent = "SampleContent";
+ InputStream packageBitStream = new ByteArrayInputStream(sampleContent.getBytes());
+
+ //tell the method story as it happens: mock dependencies and make them
+ //behave in a way to get the method under test to completion.
+ EntityManager mockEntityManager = mock(EntityManager.class);
+
+ Query mockQuery = mock(Query.class);
+ when(mockEntityManager.createNamedQuery(eq(PackageVersion.QUERY_FIND_BY_PACKAGE_VER_ARCH))).thenReturn(
+ mockQuery);
+ List mockList = mock(List.class);
+ when(mockQuery.getResultList()).thenReturn(mockList);
+
+ Architecture mockArchitecture = mock(Architecture.class);
+ when(mockArchitecture.getName()).thenReturn("ArchitectureName");
+ when(mockEntityManager.find(eq(Architecture.class), anyInt())).thenReturn(mockArchitecture);
+
+ PackageType mockPackageType = mock(PackageType.class);
+ when(mockEntityManager.find(eq(PackageType.class), eq(1))).thenReturn(mockPackageType);
+
+ PackageTypeBehavior mockPackageTypeBehavior = mock(PackageTypeBehavior.class);
+ PowerMockito.mockStatic(ContentManagerHelper.class);
+ when(ContentManagerHelper.getPackageTypeBehavior(1)).thenReturn(mockPackageTypeBehavior);
+
+ when(mockEntityManager.createNamedQuery(eq(Architecture.QUERY_FIND_BY_NAME))).thenReturn(mockQuery);
+ when(mockEntityManager.createNamedQuery(eq(Package.QUERY_FIND_BY_NAME_PKG_TYPE_ID))).thenReturn(mockQuery);
+
+ ContentManagerLocal mockContentManager = mock(ContentManagerLocal.class);
+ Package mockPackage = mock(Package.class);
+ when(mockContentManager.persistPackage(isNotNull(Package.class))).thenReturn(mockPackage);
+
+ when(mockEntityManager.find(eq(Package.class), any())).thenReturn(mockPackage);
+ when(mockPackage.getPackageType()).thenReturn(mockPackageType);
+
+ PackageVersion mockPackageVersion = mock(PackageVersion.class);
+ when(mockContentManager.persistPackageVersion(isNotNull(PackageVersion.class)))
+ .thenReturn(mockPackageVersion);
+
+ when(mockEntityManager.find(eq(PackageVersion.class), anyInt())).thenReturn(mockPackageVersion);
+ when(mockPackageVersion.getGeneralPackage()).thenReturn(mockPackage);
+ when(mockPackageVersion.getArchitecture()).thenReturn(mockArchitecture);
+
+ PackageBitsBlob mockPackageBitsBlob = mock(PackageBitsBlob.class);
+ when(mockEntityManager.find(eq(PackageBitsBlob.class), anyInt())).thenReturn(mockPackageBitsBlob);
+
+ PackageBits mockBits = mock(PackageBits.class);
+ when(mockEntityManager.find(eq(PackageBits.class), anyInt())).thenReturn(mockBits);
+
+ DataSource mockDataSource = mock(DataSource.class);
+ Connection mockConnection = mock(Connection.class);
+ when(mockDataSource.getConnection()).thenReturn(mockConnection);
+ PreparedStatement mockPreparedStatement1 = mock(PreparedStatement.class);
+ when(mockConnection.prepareStatement(anyString())).thenReturn(mockPreparedStatement1);
+ ResultSet mockResultSet = mock(ResultSet.class);
+ when(mockPreparedStatement1.executeQuery()).thenReturn(mockResultSet);
+ when(mockResultSet.next()).thenReturn(true, false);
+ Blob mockBlob = mock(Blob.class);
+ when(mockResultSet.getBlob(anyInt())).thenReturn(mockBlob);
+ OutputStream mockOutputStream = mock(OutputStream.class);
+ when(mockBlob.setBinaryStream(anyLong())).thenReturn(mockOutputStream);
+
+ //create object to test and inject required dependencies
+ ContentManagerBean objectUnderTest = new ContentManagerBean();
+ Field[] fields = ContentManagerBean.class.getDeclaredFields();
+
+ for (Field field : fields) {
+ if (field.getName().equals("entityManager")) {
+ field.setAccessible(true);
+ field.set(objectUnderTest, mockEntityManager);
+ field.setAccessible(false);
+ }
+ else if (field.getName().equals("contentManager")) {
+ field.setAccessible(true);
+ field.set(objectUnderTest, mockContentManager);
+ field.setAccessible(false);
+ }
+ else if (field.getName().equals("dataSource")) {
+ field.setAccessible(true);
+ field.set(objectUnderTest, mockDataSource);
+ field.setAccessible(false);
+ }
+ }
+
+ //run the code to be tested
+ PackageVersion result = objectUnderTest.createPackageVersionWithDisplayVersion(mockSubject, packageName,
+ packageTypeID, version, displayVersion, architectureId, packageBitStream);
+
+ //verify the results (Assert and Mock Verification)
+ verify(mockList, times(2)).size();
+ verify(mockList, never()).get(anyInt());
+
+ verify(result, times(2)).setPackageBits(any(PackageBits.class));
+ MessageDigestGenerator digest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+ verify(result).setSHA256(digest.calcDigestString(sampleContent));
+ verify(result).setFileSize((long) sampleContent.getBytes().length);
+ verify(result).setDisplayVersion(displayVersion);
+ }
+
+ /*
+ * Test createPackageVersionWithDisplayVersion with the following hypothesis:
+ * 1) There is an existing package
+ * 2) No package will be created because of (1)
+ * 3) Focal point of the test is the first 10 lines of the method.
+ * 4) No updates required to the packageVersion retrieved because input display version is null.
+ */
+ @Test
+ @SuppressWarnings("rawtypes")
+ public void testCreatePackageVersionExistingPackage() throws Exception {
+
+ //set all the method call arguments
+ Subject mockSubject = mock(Subject.class);
+ String packageName = "PackageName";
+ int packageTypeID = 1;
+ String version = "PackageVersion";
+ String displayVersion = null;
+ int architectureId = 2;
+ String sampleContent = "SampleContent";
+ InputStream packageBitStream = new ByteArrayInputStream(sampleContent.getBytes());
+
+ //tell the method story as it happens: mock dependencies and make them
+ //behave in a way to get the method under test to completion.
+ EntityManager mockEntityManager = mock(EntityManager.class);
+
+ Query mockQuery = mock(Query.class);
+ when(mockEntityManager.createNamedQuery(eq(PackageVersion.QUERY_FIND_BY_PACKAGE_VER_ARCH))).thenReturn(
+ mockQuery);
+ List mockList = mock(List.class);
+ when(mockQuery.getResultList()).thenReturn(mockList);
+ when(mockList.size()).thenReturn(1);
+ PackageVersion mockPackageVersion = mock(PackageVersion.class);
+ when(mockList.get(eq(0))).thenReturn(mockPackageVersion);
+
+ //create object to test and inject required dependencies
+ ContentManagerBean objectUnderTest = new ContentManagerBean();
+ Field[] fields = ContentManagerBean.class.getDeclaredFields();
+
+ for (Field field : fields) {
+ if (field.getName().equals("entityManager")) {
+ field.setAccessible(true);
+ field.set(objectUnderTest, mockEntityManager);
+ field.setAccessible(false);
+ }
+ }
+
+ //run the code to be tested
+ PackageVersion result = objectUnderTest.createPackageVersionWithDisplayVersion(mockSubject, packageName,
+ packageTypeID, version, displayVersion, architectureId, packageBitStream);
+
+ //verify the results (Assert and Mock Verification)
+ verify(mockList, times(1)).size();
+ verify(mockList, times(1)).get(eq(0));
+ verify(mockEntityManager, times(1)).createNamedQuery(anyString());
+
+ Assert.assertEquals(mockPackageVersion, result);
+ }
+
+ /*
+ * Test createPackageVersionWithDisplayVersion with the following hypothesis:
+ * 1) There is an existing package
+ * 2) No package will be created because of (1)
+ * 3) Focal point of the test is the first 10 lines of the method.
+ * 4) No updates required to the packageVersion retrieved because input display version is empty after trimming.
+ */
+ @Test
+ @SuppressWarnings("rawtypes")
+ public void testCreatePackageVersionExistingPackageEmptyDisplayVersion() throws Exception {
+
+ //set all the method call arguments
+ Subject mockSubject = mock(Subject.class);
+ String packageName = "PackageName";
+ int packageTypeID = 1;
+ String version = "PackageVersion";
+ String displayVersion = " ";
+ int architectureId = 2;
+ String sampleContent = "SampleContent";
+ InputStream packageBitStream = new ByteArrayInputStream(sampleContent.getBytes());
+
+ //tell the method story as it happens: mock dependencies and make them
+ //behave in a way to get the method under test to completion.
+ EntityManager mockEntityManager = mock(EntityManager.class);
+
+ Query mockQuery = mock(Query.class);
+ when(mockEntityManager.createNamedQuery(eq(PackageVersion.QUERY_FIND_BY_PACKAGE_VER_ARCH))).thenReturn(
+ mockQuery);
+ List mockList = mock(List.class);
+ when(mockQuery.getResultList()).thenReturn(mockList);
+ when(mockList.size()).thenReturn(1);
+ PackageVersion mockPackageVersion = mock(PackageVersion.class);
+ when(mockList.get(eq(0))).thenReturn(mockPackageVersion);
+
+ //create object to test and inject required dependencies
+ ContentManagerBean objectUnderTest = new ContentManagerBean();
+ Field[] fields = ContentManagerBean.class.getDeclaredFields();
+
+ for (Field field : fields) {
+ if (field.getName().equals("entityManager")) {
+ field.setAccessible(true);
+ field.set(objectUnderTest, mockEntityManager);
+ field.setAccessible(false);
+ }
+ }
+
+ //run the code to be tested
+ PackageVersion result = objectUnderTest.createPackageVersionWithDisplayVersion(mockSubject, packageName,
+ packageTypeID, version, displayVersion, architectureId, packageBitStream);
+
+ //verify the results (Assert and Mock Verification)
+ verify(mockList, times(1)).size();
+ verify(mockList, times(1)).get(eq(0));
+ verify(mockEntityManager, times(1)).createNamedQuery(anyString());
+
+ Assert.assertEquals(mockPackageVersion, result);
+ }
+
+ /*
+ * Test createPackageVersionWithDisplayVersion with the following hypothesis:
+ * 1) There are two existing package version objects stored in the database
+ * 2) Only the first package version is ever touched by this method
+ * 2) No package will be created because of (1)
+ * 3) Focal point of the test is the first 10 lines of the method.
+ * 4) No updates required to the packageVersion retrieved because input display version is empty after trimming.
+ */
+ @Test
+ @SuppressWarnings("rawtypes")
+ public void testCreatePackageVersionExistingPackagePickOnlyFirst() throws Exception {
+
+ //set all the method call arguments
+ Subject mockSubject = mock(Subject.class);
+ String packageName = "PackageName";
+ int packageTypeID = 1;
+ String version = "PackageVersion";
+ String displayVersion = " ";
+ int architectureId = 2;
+ String sampleContent = "SampleContent";
+ InputStream packageBitStream = new ByteArrayInputStream(sampleContent.getBytes());
+
+ //tell the method story as it happens: mock dependencies and make them
+ //behave in a way to get the method under test to completion.
+ EntityManager mockEntityManager = mock(EntityManager.class);
+
+ Query mockQuery = mock(Query.class);
+ when(mockEntityManager.createNamedQuery(eq(PackageVersion.QUERY_FIND_BY_PACKAGE_VER_ARCH))).thenReturn(
+ mockQuery);
+ List mockList = mock(List.class);
+ when(mockQuery.getResultList()).thenReturn(mockList);
+ when(mockList.size()).thenReturn(2);
+ PackageVersion mockPackageVersion = mock(PackageVersion.class);
+ when(mockList.get(eq(0))).thenReturn(mockPackageVersion);
+
+ //create object to test and inject required dependencies
+ ContentManagerBean objectUnderTest = new ContentManagerBean();
+ Field[] fields = ContentManagerBean.class.getDeclaredFields();
+
+ for (Field field : fields) {
+ if (field.getName().equals("entityManager")) {
+ field.setAccessible(true);
+ field.set(objectUnderTest, mockEntityManager);
+ field.setAccessible(false);
+ }
+ }
+
+ //run the code to be tested
+ PackageVersion result = objectUnderTest.createPackageVersionWithDisplayVersion(mockSubject, packageName,
+ packageTypeID, version, displayVersion, architectureId, packageBitStream);
+
+ //verify the results (Assert and Mock Verification)
+ verify(mockList, times(1)).size();
+ verify(mockList, times(1)).get(eq(0));
+ verify(mockList, never()).get(eq(1));
+
+ verify(mockEntityManager, times(1)).createNamedQuery(anyString());
+
+ Assert.assertEquals(mockPackageVersion, result);
+ }
+
+ /*
+ * Test createPackageVersionWithDisplayVersion with the following hypothesis:
+ * 1) There is an existing package
+ * 2) No package will be created because of (1)
+ * 3) Focal point of the test is the first 10 lines of the method.
+ * 4) Updates required to the packageVersion because display version needs to be updated.
+ */
+ @Test
+ @SuppressWarnings("rawtypes")
+ public void testCreatePackageVersionExistingPackageUpdateDisplayVersion() throws Exception {
+
+ //set all the method call arguments
+ Subject mockSubject = mock(Subject.class);
+ String packageName = "PackageName";
+ int packageTypeID = 1;
+ String version = "PackageVersion";
+ String displayVersion = "PackageDisplayVersion";
+ int architectureId = 2;
+ String sampleContent = "SampleContent";
+ InputStream packageBitStream = new ByteArrayInputStream(sampleContent.getBytes());
+
+ //tell the method story as it happens: mock dependencies and make them
+ //behave in a way to get the method under test to completion.
+ EntityManager mockEntityManager = mock(EntityManager.class);
+
+ Query mockQuery = mock(Query.class);
+ when(mockEntityManager.createNamedQuery(eq(PackageVersion.QUERY_FIND_BY_PACKAGE_VER_ARCH))).thenReturn(
+ mockQuery);
+ List mockList = mock(List.class);
+ when(mockQuery.getResultList()).thenReturn(mockList);
+ when(mockList.size()).thenReturn(1);
+ final PackageVersion mockPackageVersion = mock(PackageVersion.class);
+ when(mockList.get(eq(0))).thenReturn(mockPackageVersion);
+
+ when(mockPackageVersion.getId()).thenReturn(0);
+ ContentManagerLocal mockContentManager = mock(ContentManagerLocal.class);
+ when(mockContentManager.persistPackageVersion(any(PackageVersion.class))).thenAnswer(
+ new Answer<PackageVersion>() {
+ public PackageVersion answer(InvocationOnMock invocation) throws Throwable {
+ Object[] args = invocation.getArguments();
+ return (PackageVersion) args[0];
+ }
+ });
+
+ when(mockEntityManager.find(eq(PackageVersion.class), eq(0))).thenAnswer(new Answer<PackageVersion>() {
+ public PackageVersion answer(InvocationOnMock invocation) throws Throwable {
+ return mockPackageVersion;
+ }
+ });
+
+ Package mockPackage = mock(Package.class);
+ when(mockPackageVersion.getGeneralPackage()).thenReturn(mockPackage);
+ Architecture mockArchitecture = mock(Architecture.class);
+ when(mockPackageVersion.getArchitecture()).thenReturn(mockArchitecture);
+ when(mockPackageVersion.getExtraProperties()).thenReturn(null);
+
+ //create object to test and inject required dependencies
+ ContentManagerBean objectUnderTest = new ContentManagerBean();
+ Field[] fields = ContentManagerBean.class.getDeclaredFields();
+
+ for (Field field : fields) {
+ if (field.getName().equals("entityManager")) {
+ field.setAccessible(true);
+ field.set(objectUnderTest, mockEntityManager);
+ field.setAccessible(false);
+ }
+ else if (field.getName().equals("contentManager")) {
+ field.setAccessible(true);
+ field.set(objectUnderTest, mockContentManager);
+ field.setAccessible(false);
+ }
+ }
+
+ //run the code to be tested
+ PackageVersion result = objectUnderTest.createPackageVersionWithDisplayVersion(mockSubject, packageName,
+ packageTypeID, version, displayVersion, architectureId, packageBitStream);
+
+ //verify the results (Assert and Mock Verification)
+ verify(mockList, times(1)).size();
+ verify(mockList, times(1)).get(eq(0));
+ verify(mockEntityManager, times(1)).createNamedQuery(anyString());
+
+ verify(mockPackageVersion, times(1)).setDisplayVersion(displayVersion);
+
+ Assert.assertEquals(mockPackageVersion, result);
+ }
+}
commit 76079fa65b0c11ebde9cde6eb19d3884717695aa
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Tue Jan 24 16:56:57 2012 -0600
[BZ 781763] Added extra code to check if the directory for the JBoss server even exists before attempting to perform content discovery. If the folder is not there then the list will be empty since nothing is discovered.
diff --git a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/JarContentDelegate.java b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/JarContentDelegate.java
index 33a2f02..af4243a 100644
--- a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/JarContentDelegate.java
+++ b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/JarContentDelegate.java
@@ -79,61 +79,63 @@ public class JarContentDelegate extends FileContentDelegate {
public Set<ResourcePackageDetails> discoverDeployedPackages() {
Set<ResourcePackageDetails> packages = new HashSet<ResourcePackageDetails>();
- File[] files = this.directory.listFiles(new FileFilter() {
- public boolean accept(File pathname) {
- return pathname.getName().endsWith(getFileEnding()) && pathname.isFile();
- }
- });
-
- for (File file : files) {
- String manifestVersion = null;
- JarFile jf = null;
- try {
- Configuration config = new Configuration();
- jf = new JarFile(file);
- Manifest manifest = jf.getManifest();
-
- if (manifest != null) {
- Attributes attributes = manifest.getMainAttributes();
-
- manifestVersion = attributes.getValue(Attributes.Name.IMPLEMENTATION_VERSION);
-
- config.put(new PropertySimple("version", manifestVersion));
- config.put(new PropertySimple("title", attributes.getValue(Attributes.Name.IMPLEMENTATION_TITLE)));
- config.put(new PropertySimple("url", attributes.getValue(Attributes.Name.IMPLEMENTATION_URL)));
- config
- .put(new PropertySimple("vendor", attributes.getValue(Attributes.Name.IMPLEMENTATION_VENDOR)));
-
- config.put(new PropertySimple("classpath", attributes.getValue(Attributes.Name.CLASS_PATH)));
- config.put(new PropertySimple("sealed", attributes.getValue(Attributes.Name.SEALED)));
+ if (this.directory != null && this.directory.exists() && this.directory.isDirectory()) {
+ File[] files = this.directory.listFiles(new FileFilter() {
+ public boolean accept(File pathname) {
+ return pathname.getName().endsWith(getFileEnding()) && pathname.isFile();
}
- String sha256 = null;
- try {
- sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(file);
- } catch (Exception e) {
- // leave as null
- }
-
- ResourcePackageDetails details = new ResourcePackageDetails(new PackageDetailsKey(file.getName(),
- getVersion(sha256), getPackageTypeName(), "noarch"));
-
- packages.add(details);
- details.setFileCreatedDate(file.lastModified()); // Why don't we have a last modified time?
- details.setFileName(file.getName());
- details.setFileSize(file.length());
- details.setClassification(MIME_TYPE_JAR);
- details.setSHA256(sha256);
- details.setDisplayVersion(getDisplayVersion(file));
-
- details.setExtraProperties(config);
- } catch (IOException e) {
- // If we can't open it, don't worry about it, we just won't know the version
- } finally {
+ });
+
+ for (File file : files) {
+ String manifestVersion = null;
+ JarFile jf = null;
try {
- if (jf != null)
- jf.close();
- } catch (Exception e) {
- // Nothing we can do here ...
+ Configuration config = new Configuration();
+ jf = new JarFile(file);
+ Manifest manifest = jf.getManifest();
+
+ if (manifest != null) {
+ Attributes attributes = manifest.getMainAttributes();
+
+ manifestVersion = attributes.getValue(Attributes.Name.IMPLEMENTATION_VERSION);
+
+ config.put(new PropertySimple("version", manifestVersion));
+ config.put(new PropertySimple("title", attributes.getValue(Attributes.Name.IMPLEMENTATION_TITLE)));
+ config.put(new PropertySimple("url", attributes.getValue(Attributes.Name.IMPLEMENTATION_URL)));
+ config
+ .put(new PropertySimple("vendor", attributes.getValue(Attributes.Name.IMPLEMENTATION_VENDOR)));
+
+ config.put(new PropertySimple("classpath", attributes.getValue(Attributes.Name.CLASS_PATH)));
+ config.put(new PropertySimple("sealed", attributes.getValue(Attributes.Name.SEALED)));
+ }
+ String sha256 = null;
+ try {
+ sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(file);
+ } catch (Exception e) {
+ // leave as null
+ }
+
+ ResourcePackageDetails details = new ResourcePackageDetails(new PackageDetailsKey(file.getName(),
+ getVersion(sha256), getPackageTypeName(), "noarch"));
+
+ packages.add(details);
+ details.setFileCreatedDate(file.lastModified()); // Why don't we have a last modified time?
+ details.setFileName(file.getName());
+ details.setFileSize(file.length());
+ details.setClassification(MIME_TYPE_JAR);
+ details.setSHA256(sha256);
+ details.setDisplayVersion(getDisplayVersion(file));
+
+ details.setExtraProperties(config);
+ } catch (IOException e) {
+ // If we can't open it, don't worry about it, we just won't know the version
+ } finally {
+ try {
+ if (jf != null)
+ jf.close();
+ } catch (Exception e) {
+ // Nothing we can do here ...
+ }
}
}
}
commit 04a56516c22a106620aad8fa9ca3349b50bd6810
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Tue Jan 24 16:55:26 2012 -0600
[BZ 771418] Adding java docs for deprecated CLI method.
diff --git a/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java b/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java
index 498e0be..ff39171 100644
--- a/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java
+++ b/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java
@@ -505,6 +505,11 @@ public class ResourceClientProxy {
return remoteClient.getContentManager().getBackingPackageForResource(remoteClient.getSubject(), resourceClientProxy.resourceId);
}
+ /**
+ * @deprecated Superseded by ({@link #updateBackingContent(String, String)}
+ *
+ * @param fileName file name
+ */
@Deprecated
public void updateBackingContent(String filename) {
this.updateBackingContent(filename, null);
@@ -649,6 +654,11 @@ public class ResourceClientProxy {
public InstalledPackage getBackingContent();
+ /**
+ * @deprecated Superseded by ({@link #updateBackingContent(String, String)}
+ *
+ * @param fileName file name
+ */
@Deprecated
public void updateBackingContent(String fileName);
commit b1f4739b249968d01c1ade6ca0f6bc7ee930f61c
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Tue Jan 17 08:56:35 2012 -0600
[BZ 771418] Mark old updateBackingContent method (with no display version) as deprecated.
diff --git a/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java b/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java
index 63ca2d7..498e0be 100644
--- a/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java
+++ b/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java
@@ -505,6 +505,7 @@ public class ResourceClientProxy {
return remoteClient.getContentManager().getBackingPackageForResource(remoteClient.getSubject(), resourceClientProxy.resourceId);
}
+ @Deprecated
public void updateBackingContent(String filename) {
this.updateBackingContent(filename, null);
}
@@ -648,10 +649,11 @@ public class ResourceClientProxy {
public InstalledPackage getBackingContent();
- public void updateBackingContent(String fileName, String displayVersion);
-
+ @Deprecated
public void updateBackingContent(String fileName);
+ public void updateBackingContent(String fileName, String displayVersion);
+
public void retrieveBackingContent(String fileName) throws IOException;
}
commit bc95b6a58ae9c676216cb66625853b52cf2980fd
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Mon Jan 16 15:21:06 2012 -0600
[BZ 782207] Removed the rhnhosted server plugin directory and all the pom and classpath references.
diff --git a/.classpath b/.classpath
index e20fe75..a66ca82 100644
--- a/.classpath
+++ b/.classpath
@@ -204,9 +204,6 @@
<classpathentry kind="src" path="modules/enterprise/server/plugins/yum/src/main/java"/>
<classpathentry kind="src" path="modules/enterprise/server/plugins/packagetype-cli/src/main/java"/>
<classpathentry kind="src" path="modules/enterprise/server/plugins/cobbler/src/main/java"/>
- <classpathentry kind="src" path="modules/enterprise/server/plugins/rhnhosted/src/main/java"/>
- <classpathentry kind="src" path="modules/enterprise/server/plugins/rhnhosted/src/test/java"/>
- <classpathentry kind="src" path="modules/enterprise/server/plugins/rhnhosted/target/classes/generated-source"/>
<classpathentry kind="src" path="modules/plugins/platform/src/main/java"/>
<classpathentry kind="src" path="modules/plugins/platform/src/test/java"/>
<classpathentry kind="src" path="modules/plugins/jmx/src/main/java"/>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index ddb8e3a..a51ac52 100644
--- a/modules/enterprise/server/plugins/pom.xml
+++ b/modules/enterprise/server/plugins/pom.xml
@@ -56,7 +56,6 @@
<module>disk</module>
<module>yum</module>
<module>url</module>
- <module>rhnhosted</module>
<module>jboss-software</module>
<module>perspectives/core</module>
<module>alert-email</module>
diff --git a/modules/enterprise/server/plugins/rhnhosted/.gitignore b/modules/enterprise/server/plugins/rhnhosted/.gitignore
deleted file mode 100644
index 32db266..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-src/main/generated-source
diff --git a/modules/enterprise/server/plugins/rhnhosted/README.testing b/modules/enterprise/server/plugins/rhnhosted/README.testing
deleted file mode 100644
index 9257b66..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/README.testing
+++ /dev/null
@@ -1,24 +0,0 @@
-Overview:
- Run a test against RHN Hosted to see if basic rhnhosted functionality is working.
-
-What will be tested:
- Package Syncs & Distribution Syncs
-
-Setup:
- 1) systemid file is required at: "/etc/sysconfig/rhn/systemid"
- Register a RHEL5 system to RHN Hosted.
- Copy the /etc/sysconfig/rhn/systemid file from the RHEL5 box to your local machine where you will be running RHQ and this test.
-
- 2) /usr/share/rhn/RHNS-CA-CERT
- This is required if you want to run against a https connection
- Copy this from a RHEL5 box
-
- 3) Edit pom.xml
- Change the property: "RunRHNProviderTest" to "true".
-
- If you want to run a more exhaustive test change:
- "RunRHNMD5SumTests" to "true". This will download each package and kickstart file and compare the md5sum against the expected value.
-
-Run:
- Execute: mvn test -Dtest="RHNProviderTest"
-
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
deleted file mode 100644
index e4c2529..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ /dev/null
@@ -1,339 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.rhq</groupId>
- <artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.3.0-SNAPSHOT</version>
- </parent>
-
- <groupId>org.rhq</groupId>
- <artifactId>rhq-serverplugin-rhnhosted</artifactId>
- <packaging>jar</packaging>
-
- <name>RHQ Enterprise Server RHN Hosted Plugin</name>
- <description>Provides ability to communicate with RHN Hosted</description>
-
- <dependencies>
- <!-- Internal Deps -->
- <dependency>
- <groupId>org.rhq</groupId>
- <artifactId>rhq-core-client-api</artifactId>
- <version>${project.version}</version>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- <version>1.4</version>
- </dependency>
-
- <dependency>
- <groupId>commons-beanutils</groupId>
- <artifactId>commons-beanutils</artifactId>
- <version>1.8.0</version>
- </dependency>
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- <version>2.4</version>
- </dependency>
-
- <!-- Bouncy Castle -->
- <dependency>
- <groupId>bouncycastle</groupId>
- <artifactId>bcprov-jdk15</artifactId>
- <version>140</version>
- </dependency>
-
- <dependency>
- <groupId>bouncycastle</groupId>
- <artifactId>bcpg-jdk15</artifactId>
- <version>140</version>
- </dependency>
-
- <!-- Apache WS XMLRPC -->
- <dependency>
- <groupId>org.apache.xmlrpc</groupId>
- <artifactId>xmlrpc-client</artifactId>
- <version>3.1.2</version>
- </dependency>
- <dependency>
- <groupId>org.apache.xmlrpc</groupId>
- <artifactId>xmlrpc-common</artifactId>
- <version>3.1.2</version>
- </dependency>
-
- <!-- JAXB -->
- <dependency>
- <groupId>javax.xml.bind</groupId>
- <artifactId>jaxb-api</artifactId>
- <version>2.1</version>
- </dependency>
-
- <dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
- <version>${jaxb-impl.version}</version>
- </dependency>
-
- </dependencies>
-
-
- <build>
-
- <testResources>
- <testResource>
- <directory>src/test/resources</directory>
- <includes>
- <include>test-log4j.xml</include>
- </includes>
- </testResource>
- </testResources>
-
- <plugins>
-
- <plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <excludedGroups>${rhq.testng.excludedGroups}</excludedGroups>
- <!--
- <argLine>-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y</argLine>
- -->
- <systemProperties>
- <property>
- <!--
- set this to true if you want to run a test with RHNProvider against RHN Hosted. It will sync packages & kickstart
- trees This should be set to false by default
- -->
- <name>RunRHNProviderTest</name>
- <value>false</value>
- </property>
- <property>
- <!--
- set this to true if you want to run a more exhaustive test. This prop will trigger the InputStreams to be read fully
- while comparing the resulting md5sum with the expected value. This will take longer to run, so by default it is left
- to false
- -->
- <name>RunRHNMD5SumTests</name>
- <value>false</value>
- </property>
- <property>
- <!--
- set this to true if you want the temp xmlrpc data read to be saved. by default the files are stored in /tmp and will
- be deleted after use.
- -->
- <name>RhnXmlrpcSaveTempFiles</name>
- <value>false</value>
- </property>
- <property>
- <name>log4j.configuration</name>
- <value>test-log4j.xml</value>
- </property>
- </systemProperties>
- </configuration>
- </plugin>
-
- <plugin>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>copy-dependencies</id>
- <phase>package</phase>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- <configuration>
- <includeScope>runtime</includeScope>
- <excludeTransitive>false</excludeTransitive>
- <outputDirectory>${project.build.outputDirectory}/lib</outputDirectory>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>jaxb2-maven-plugin</artifactId>
- <version>1.3</version>
- <executions>
- <execution>
- <goals>
- <goal>xjc</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <packageName>org.rhq.enterprise.server.plugins.rhnhosted.xml</packageName>
- <outputDirectory>${project.build.outputDirectory}/generated-source</outputDirectory>
- </configuration>
- </plugin>
-
- </plugins>
- </build>
-
- <profiles>
-
- <profile>
- <id>dev</id>
-
- <properties>
- <rhq.rootDir>../../../../..</rhq.rootDir>
- <rhq.containerDir>${rhq.rootDir}/${rhq.defaultDevContainerPath}</rhq.containerDir>
- <rhq.deploymentDir>${rhq.containerDir}/jbossas/server/default/deploy/${rhq.earName}/rhq-serverplugins</rhq.deploymentDir>
- </properties>
-
- <build>
- <plugins>
-
- <plugin>
- <artifactId>maven-antrun-plugin</artifactId>
- <version>1.1</version>
- <executions>
-
- <execution>
- <id>deploy</id>
- <phase>package</phase>
- <configuration>
- <tasks>
- <mkdir dir="${rhq.deploymentDir}" />
- <property name="deployment.file" location="${rhq.deploymentDir}/${project.build.finalName}.jar" />
- <echo>*** Updating ${deployment.file}...</echo>
- <jar destfile="${deployment.file}" basedir="${project.build.outputDirectory}" />
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
-
- <execution>
- <id>undeploy</id>
- <phase>clean</phase>
- <configuration>
- <tasks>
- <property name="deployment.file" location="${rhq.deploymentDir}/${project.build.finalName}.jar" />
- <echo>*** Deleting ${deployment.file}...</echo>
- <delete file="${deployment.file}" />
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
-
- <execution>
- <id>deploy-jar-meta-inf</id>
- <phase>package</phase>
- <configuration>
- <tasks>
- <property name="deployment.file" location="${rhq.deploymentDir}/${project.build.finalName}.jar" />
- <echo>*** Updating META-INF dir in ${deployment.file}...</echo>
- <unjar src="${project.build.directory}/${project.build.finalName}.jar" dest="${project.build.outputDirectory}">
- <patternset>
- <include name="META-INF/**" />
- </patternset>
- </unjar>
- <jar destfile="${deployment.file}" manifest="${project.build.outputDirectory}/META-INF/MANIFEST.MF" update="true">
- </jar>
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
-
- </executions>
- </plugin>
-
- </plugins>
- </build>
- </profile>
- <profile>
- <id>cobertura-plugins</id>
- <activation>
- <activeByDefault>false</activeByDefault>
- </activation>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-antrun-plugin</artifactId>
- <dependencies>
- <dependency>
- <groupId>net.sourceforge.cobertura</groupId>
- <artifactId>cobertura</artifactId>
- <version>${cobertura.version}</version>
- </dependency>
- </dependencies>
- <executions>
- <execution>
- <id>cobertura-instrument</id>
- <phase>process-test-classes</phase>
- <configuration>
- <tasks>
- <!-- prepare directory structure for cobertura-->
- <mkdir dir="target/cobertura" />
- <mkdir dir="target/cobertura/backup" />
- <!-- backup all classes so that we can instrument the original classes-->
- <copy toDir="target/cobertura/backup" verbose="true" overwrite="true">
- <fileset dir="target/classes">
- <include name="**/*.class" />
- </fileset>
- </copy>
- <!-- create a properties file and save there location of cobertura data file-->
- <touch file="target/classes/cobertura.properties" />
- <echo file="target/classes/cobertura.properties">net.sourceforge.cobertura.datafile=${project.build.directory}/cobertura/cobertura.ser</echo>
- <taskdef classpathref="maven.plugin.classpath" resource="tasks.properties" />
- <!-- instrument all classes in target/classes directory -->
- <cobertura-instrument datafile="${project.build.directory}/cobertura/cobertura.ser" todir="${project.build.directory}/classes">
- <fileset dir="${project.build.directory}/classes">
- <include name="**/*.class" />
- </fileset>
- </cobertura-instrument>
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- <execution>
- <id>cobertura-report</id>
- <phase>prepare-package</phase>
- <configuration>
- <tasks>
- <taskdef classpathref="maven.plugin.classpath" resource="tasks.properties" />
- <!-- prepare directory structure for cobertura-->
- <mkdir dir="target/cobertura" />
- <mkdir dir="target/site/cobertura" />
- <!-- restore classes from backup folder to classes folder -->
- <copy toDir="target/classes" verbose="true" overwrite="true">
- <fileset dir="target/cobertura/backup">
- <include name="**/*.class" />
- </fileset>
- </copy>
- <!-- delete backup folder-->
- <delete dir="target/cobertura/backup" />
- <!-- create a code coverage report -->
- <cobertura-report format="html" datafile="${project.build.directory}/cobertura/cobertura.ser" destdir="${project.build.directory}/site/cobertura">
- <fileset dir="${basedir}/src/main/java">
- <include name="**/*.java" />
- </fileset>
- </cobertura-report>
- <!-- delete cobertura.properties file -->
- <delete file="target/classes/cobertura.properties" />
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
-
-</project>
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/PrimaryXML.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/PrimaryXML.java
deleted file mode 100644
index 6ecbf3a..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/PrimaryXML.java
+++ /dev/null
@@ -1,369 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.rhq.enterprise.server.plugins.rhnhosted;
-
-import java.io.Serializable;
-import java.util.List;
-
-import javax.xml.bind.JAXBElement;
-
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.jdom.Element;
-import org.jdom.Namespace;
-import org.jdom.output.XMLOutputter;
-
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnPackageObsoletesEntryType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnPackageObsoletesType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnPackageProvidesEntryType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnPackageProvidesType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnPackageRequiresEntryType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnPackageRequiresType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnPackageType;
-
-/**
- * @author John Matthews
- */
-public class PrimaryXML {
- /** Example package element from primary.xml used by yum
- *
-
- <package type="rpm">
- <name>gnome-user-docs</name>
- <arch>noarch</arch>
- <version ver="2.16.0" rel="2.fc6" epoch="0"/>
- <checksum type="md5" pkgid="YES">4e7d379301407b4c79f211596b802a13</checksum>
- <summary>GNOME User Documentation</summary>
- <description>This package contains end user documentation for the GNOME desktop environment.</description>
- <packager/>
- <url/>
- <time file="1157750823" build="1157750823"/>
- <size package="6549456" archive="11858600" installed=""/>
- <location href="getPackage/gnome-user-docs-2.16.0-2.fc6.noarch.rpm"/>
- <format>
- <rpm:license>FDL</rpm:license>
- <rpm:vendor>Red Hat, Inc.</rpm:vendor>
- <rpm:group>Documentation</rpm:group>
- <rpm:buildhost>altix2.build.redhat.com</rpm:buildhost>
- <rpm:sourcerpm>gnome-user-docs-2.16.0-2.fc6.src.rpm</rpm:sourcerpm>
- <rpm:header-range start="440" end="97656"/>
- <rpm:provides>
- <rpm:entry name="gnome-user-docs" flags="EQ" epoch="0" ver="2.16.0" rel="2.fc6"/>
- </rpm:provides>
- <rpm:requires>
- <rpm:entry name="/bin/sh"/>
- <rpm:entry name="/bin/sh"/>
- <rpm:entry name="rpmlib(CompressedFileNames)" flags="LE" epoch="0" ver="3.0.4" rel="1"/>
- <rpm:entry name="rpmlib(PayloadFilesHavePrefix)" flags="LE" epoch="0" ver="4.0" rel="1"/>
- <rpm:entry name="rpmlib(VersionedDependencies)" flags="LE" epoch="0" ver="3.0.3" rel="1"/>
- <rpm:entry name="scrollkeeper" flags="GE" epoch="0" ver="0.3.11"/>
- </rpm:requires>
- <rpm:conflicts/>
- <rpm:obsoletes>
- <rpm:entry name="gnome-users-guide"/>
- </rpm:obsoletes>
- </format>
- </package>
-
- **/
-
- /** RPM uses bit flags to determine if a package relationships is "Greater, LessThan, Equals";
- * These values can be found from running the python console and executing
- * "import rpm" "print rpm.RPMSENSE_LESS", "print rpm.RPMSENSE_GREATER", "print rpm.RPMSENSE_EQUAL"
- */
- final static int RPM_SENSE_LESS = 2;
- final static int RPM_SENSE_GREATER = 4;
- final static int RPM_SENSE_EQUAL = 8;
-
- final static String RHNHOSTED_URI = "http://rhq-project.org/rhnhosted";
-
- static private final Log log = LogFactory.getLog(PrimaryXML.class);
-
- static public String getFlags(String sense) {
- int tmp = Integer.parseInt(sense);
- int flags = tmp & (RPM_SENSE_LESS | RPM_SENSE_GREATER | RPM_SENSE_EQUAL);
- if (flags == (RPM_SENSE_LESS | RPM_SENSE_EQUAL)) {
- return "LE";
- } else if (flags == RPM_SENSE_LESS) {
- return "LT";
- } else if (flags == (RPM_SENSE_GREATER | RPM_SENSE_EQUAL)) {
- return "GE";
- } else if (flags == (RPM_SENSE_GREATER)) {
- return "GT";
- } else if (flags == (RPM_SENSE_EQUAL)) {
- return "EQ";
- }
- return "";
- }
-
- /**
- * Will return the 'epoch'. If the epoch is empty, then a "0" is returned
- * to comply with yum's expectations for package metadata
- * @param version string containing epoch:version-release
- * @return
- */
- static public String getEpoch(String version) {
- int end = version.indexOf("-");
- if (end < 0) {
- return "0";
- }
- String tmp = version.substring(0, end);
- int index = tmp.indexOf(":");
- if (index < 0) {
- return "0";
- }
- String epoch = tmp.substring(0, index);
- if (StringUtils.isBlank(epoch)) {
- return "0";
- }
- return epoch;
- }
-
- static public String getVersion(String version) {
- int end = version.indexOf("-");
- if (end < 0) {
- return version; //unsure how to parse, return passed in string
- }
- String tmp = version.substring(0, end);
- int start = tmp.indexOf(":");
- if (start < 0) {
- start = 0;
- } else {
- start = start + 1;
- }
- return tmp.substring(start, end);
- }
-
- static public String getRelease(String version) {
- int start = version.indexOf("-");
- if (start < 0) {
- return "";
- }
- start = start + 1; // go past the "-" character
- return version.substring(start);
- }
-
- /**
- * Will create a xml string snippet conforming to the <package> entry in a primary.xml file used by yum
- *
- * @param pkg JAXB Object to transform
- * @return string snippet of xml data
- */
- static public String createPackageXML(RhnPackageType pkg) {
- Namespace packageNS = Namespace.getNamespace(RHNHOSTED_URI);
-
- Element top = new Element("package", packageNS);
- top.setAttribute("type", "rpm");
-
- Element name = new Element("name", packageNS);
- name.setText(pkg.getName());
- top.addContent(name);
-
- Element arch = new Element("arch", packageNS);
- arch.setText(pkg.getPackageArch());
- top.addContent(arch);
-
- Element version = new Element("version", packageNS);
- version.setText(pkg.getVersion());
- version.setAttribute("ver", pkg.getVersion());
- version.setAttribute("rel", pkg.getRelease());
- String epoch = pkg.getEpoch();
- // Note, if epoch is empty we need to change it to a zero as that is what yum expects.
- if (StringUtils.isBlank(epoch)) {
- epoch = "0";
- }
- version.setAttribute("epoch", epoch);
- top.addContent(version);
-
- Element checksum = new Element("checksum", packageNS);
- checksum.setAttribute("type", "md5");
- checksum.setAttribute("pkgid", "YES");
- checksum.setText(pkg.getMd5Sum());
- top.addContent(checksum);
-
- Element summary = new Element("summary", packageNS);
- summary.setText(pkg.getRhnPackageSummary());
- top.addContent(summary);
-
- Element description = new Element("description", packageNS);
- description.setText(pkg.getRhnPackageDescription());
- top.addContent(description);
-
- Element packager = new Element("packager", packageNS);
- //TODO: Not sure if we get 'packager' info from RHN.
- packager.setText("");
- top.addContent(packager);
-
- Element url = new Element("url", packageNS);
- //TODO: Not sure what to put for url value, don't think it applies to RHN
- url.setText("");
- top.addContent(url);
-
- Element time = new Element("time", packageNS);
- //TODO: Verify below, guessing for file/build times.
- time.setAttribute("file", pkg.getLastModified());
- time.setAttribute("build", pkg.getBuildTime());
- top.addContent(time);
-
- Element size = new Element("size", packageNS);
- size.setAttribute("package", pkg.getPackageSize());
- size.setAttribute("archive", pkg.getPayloadSize());
- //TODO: Unsure about installed, does this need to change on server side when package is installed on a client?
- size.setAttribute("installed", "");
- top.addContent(size);
-
- Element location = new Element("location", packageNS);
- //This value can not be empty and can not contain a "?".
- //It's value is ignored by the RHQ processing for yum.
- //RHQ will append a series of request parameters to download the file.
- String rpmName = RHNHelper.constructRpmDownloadName(pkg.getName(), pkg.getVersion(), pkg.getRelease(), pkg.getEpoch(),
- pkg.getPackageArch());
- location.setAttribute("href", rpmName);
- top.addContent(location);
-
- Element format = new Element("format", packageNS);
-
- Namespace rpmNS = Namespace.getNamespace("rpm", "http://rhq-project.org/rhnhosted");
- Element rpmLicense = new Element("license", rpmNS);
- rpmLicense.setText(pkg.getRhnPackageCopyright());
- format.addContent(rpmLicense);
-
- Element rpmVendor = new Element("vendor", rpmNS);
- rpmVendor.setText(pkg.getRhnPackageVendor());
- format.addContent(rpmVendor);
-
- Element rpmGroup = new Element("group", rpmNS);
- rpmGroup.setText(pkg.getPackageGroup());
- format.addContent(rpmGroup);
-
- Element rpmBuildHost = new Element("buildhost", rpmNS);
- rpmBuildHost.setText(pkg.getBuildHost());
- format.addContent(rpmBuildHost);
-
- Element rpmSourceRPM = new Element("sourcerpm", rpmNS);
- rpmSourceRPM.setText(pkg.getSourceRpm());
- format.addContent(rpmSourceRPM);
-
- Element rpmHeaderRange = new Element("header-range", rpmNS);
- rpmHeaderRange.setAttribute("start", pkg.getRhnPackageHeaderStart());
- rpmHeaderRange.setAttribute("end", pkg.getRhnPackageHeaderEnd());
- format.addContent(rpmHeaderRange);
-
- Element rpmProvides = new Element("provides", rpmNS);
- RhnPackageProvidesType provides_type = pkg.getRhnPackageProvides();
- if (provides_type != null) {
- List<RhnPackageProvidesEntryType> provides = provides_type.getRhnPackageProvidesEntry();
- for (RhnPackageProvidesEntryType provEntry : provides) {
- Element entry = new Element("entry", rpmNS);
- entry.setAttribute("name", provEntry.getName());
- String flags = getFlags(provEntry.getSense());
- if (!StringUtils.isBlank(flags)) {
- entry.setAttribute("flags", flags);
- String provEpoch = getEpoch(provEntry.getVersion());
- entry.setAttribute("epoch", provEpoch);
- String provVer = getVersion(provEntry.getVersion());
- entry.setAttribute("ver", provVer);
- String provRel = getRelease(provEntry.getVersion());
- entry.setAttribute("rel", getRelease(provEntry.getVersion()));
- }
- rpmProvides.addContent(entry);
- }
- }
- format.addContent(rpmProvides);
-
- Element rpmRequires = new Element("requires", rpmNS);
- RhnPackageRequiresType requires_type = pkg.getRhnPackageRequires();
- if (requires_type != null) {
- List<RhnPackageRequiresEntryType> requires = requires_type.getRhnPackageRequiresEntry();
- for (RhnPackageRequiresEntryType reqEntry : requires) {
- Element entry = new Element("entry", rpmNS);
- entry.setAttribute("name", reqEntry.getName());
- String flags = getFlags(reqEntry.getSense());
- if (!StringUtils.isBlank(flags)) {
- entry.setAttribute("flags", flags);
- String reqEpoch = getEpoch(reqEntry.getVersion());
- entry.setAttribute("epoch", reqEpoch);
- String reqVer = getVersion(reqEntry.getVersion());
- entry.setAttribute("ver", reqVer);
- String reqRel = getRelease(reqEntry.getVersion());
- entry.setAttribute("rel", getRelease(reqEntry.getVersion()));
- }
- rpmRequires.addContent(entry);
- }
- }
- format.addContent(rpmRequires);
-
- Element rpmConflicts = new Element("conflicts", rpmNS);
- rpmConflicts.setText(pkg.getRhnPackageConflicts());
- format.addContent(rpmConflicts);
-
- Element rpmObsoletes = new Element("obsoletes", rpmNS);
- RhnPackageObsoletesType obs_type = pkg.getRhnPackageObsoletes();
- if (obs_type != null) {
- List<Serializable> obsoletes = obs_type.getContent();
- for (Serializable s : obsoletes) {
- RhnPackageObsoletesEntryType obsEntry = null;
- if (s instanceof String) {
- String obsString = (String) s;
- if (StringUtils.isBlank(obsString)) {
- continue;
- }
- //log.debug("Adding Obsoletes info <String Class> value = " + obsString);
- Element entry = new Element("entry", rpmNS);
- entry.setAttribute("name", obsString);
- rpmObsoletes.addContent(entry);
- // skip rest of obs processing for this entry
- continue;
- }
- //
- // Below obs entry processing is for JAXBElement types only
- //
- if (s instanceof JAXBElement) {
- JAXBElement je = (JAXBElement) s;
- //log.debug("Processing obsolete info for JAXBElement of type : " + je.getDeclaredType());
- obsEntry = (RhnPackageObsoletesEntryType) je.getValue();
- } else if (s instanceof RhnPackageObsoletesEntryType) {
- obsEntry = (RhnPackageObsoletesEntryType) s;
- } else {
- log.info("Processing obsoletes info: unable to determine what class obsoletes entry is: "
- + "getClass() = " + s.getClass() + ", toString() = " + s.toString() + ", hashCode = "
- + s.hashCode());
- continue;
- }
- Element entry = new Element("entry", rpmNS);
- entry.setAttribute("name", obsEntry.getName());
- String obsVer = obsEntry.getVersion();
- if (!StringUtils.isBlank(obsVer)) {
- entry.setAttribute("version", obsVer);
- }
- String obsFlags = getFlags(obsEntry.getSense());
- if (!StringUtils.isBlank(obsFlags)) {
- entry.setAttribute("flags", obsFlags);
- }
- rpmObsoletes.addContent(entry);
- }
- }
- format.addContent(rpmObsoletes);
-
- top.addContent(format);
- XMLOutputter xmlOut = new XMLOutputter();
- return xmlOut.outputString(top);
- }
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNActivator.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNActivator.java
deleted file mode 100644
index 53b74a8..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNActivator.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-package org.rhq.enterprise.server.plugins.rhnhosted;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.security.KeyException;
-import java.util.ArrayList;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.rhq.enterprise.server.plugins.rhnhosted.certificate.PublicKeyRing;
-import org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc.XmlRpcExecutor;
-import org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc.XmlRpcExecutorFactory;
-
-/**
- * @author pkilambi
- *
- */
-public class RHNActivator {
-
- private String certificateText;
- private String systemid;
- private XmlRpcExecutor client;
- private final Log log = LogFactory.getLog(RHNActivator.class);
-
- /**
- * Constructor
- * @param systemIdString xml systemid
- * @param certificateTextIn certificate file path
- * @param serverUrlIn hosted server url as a string
- * @throws Exception
- */
- public RHNActivator(String systemIdString, String certificateTextIn, String serverUrlIn) throws Exception {
-
- this.certificateText = certificateTextIn;
- this.systemid = systemIdString;
- URL serverUrl = new URL(serverUrlIn);
- client = newClient(serverUrl);
-
- }
-
- /**
- * RHN Connector Constructor
- * @param certificateTextIn certificate text as a string
- * @param serverUrlIn hosted serverUrl
- *
- */
- public RHNActivator(String certificateTextIn, String serverUrlIn) throws Exception {
- this.certificateText = certificateTextIn;
-
- URL serverUrl = new URL(serverUrlIn);
- client = newClient(serverUrl);
- File systemid_file = new File(RHNConstants.DEFAULT_SYSTEM_ID);
- this.systemid = FileUtils.readFileToString(systemid_file);
- }
-
- protected XmlRpcExecutor newClient(URL serverUrl) {
- return XmlRpcExecutorFactory.getClient(serverUrl.toString());
- }
-
- /**
- * Call that invokes the server object and passing in the xmlrpc
- * exposed call to activate the rhq server.
- *
- */
- public void processActivation() throws Exception {
-
- ArrayList<String> params = new ArrayList<String>();
- params.add(this.systemid);
- params.add(this.certificateText);
-
- this.client.execute("satellite.activateSatellite", params);
- log.info("Activation successful");
- }
-
- /**
- * Call that invokes the server object and passing in the xmlrpc
- * exposed call to deactivate the rhq server.
- *
- */
- public void processDeActivation() throws Exception {
- ArrayList<String> params = new ArrayList<String>();
- params.add(this.systemid);
-
- this.client.execute("satellite.deactivateSatellite", params);
- log.info("Activation successful");
-
- // this.deleteCertTempFile(this.certificateFileName);
- }
-
- public PublicKeyRing readDefaultKeyRing() throws ClassNotFoundException, KeyException, IOException {
- InputStream keyringStream = new FileInputStream(RHNConstants.DEFAULT_WEBAPP_GPG_KEY_RING);
- return new PublicKeyRing(keyringStream);
- }
-
- /**
- * Delete the certificate file from the filesystem.
- * @param fileName certificate filename
- * @return boolean returns delete operation status
- *
- */
- protected boolean deleteCertTempFile(String fileName) {
- File f = new File(fileName);
- return f.delete();
- }
-
- public String getSystemid() {
- return systemid;
- }
-
- public static void main(String[] args) throws Exception {
- // commandline test
- if (args.length > 0) {
-
- String systemId = FileUtils.readFileToString(new File(args[0]));
- String cert = FileUtils.readFileToString(new File(args[1]));
-
- String serverUrl = "http://satellite.rhn.redhat.com/rpc/api";
- try {
- RHNActivator rhqServer = new RHNActivator(systemId, cert, serverUrl);
- rhqServer.processActivation();
- System.out.println("Activation Complete");
- rhqServer.processDeActivation();
- System.out.println("De-Activation Complete");
-
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- }
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNConstants.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNConstants.java
deleted file mode 100644
index 74a49d8..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNConstants.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-package org.rhq.enterprise.server.plugins.rhnhosted;
-
-/**
- * @author pkilambi
- *
- */
-public final class RHNConstants {
-
- public static final String DEFAULT_WEBAPP_GPG_KEY_RING = "/etc/webapp-keyring.gpg";
- public static final String DEFAULT_SYSTEM_ID = "/etc/sysconfig/rhn/systemid";
- public static final String DEFAULT_HANDLER = "/rpc/api";
- public static final String DEFAULT_SSL_CERT_PATH = "/usr/share/rhn/RHNS-CA-CERT";
-
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNHelper.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNHelper.java
deleted file mode 100644
index 62e3afd..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNHelper.java
+++ /dev/null
@@ -1,492 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-package org.rhq.enterprise.server.plugins.rhnhosted;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.zip.GZIPOutputStream;
-
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.xmlrpc.XmlRpcException;
-
-import org.rhq.enterprise.server.plugin.pc.content.AdvisoryBugDetails;
-import org.rhq.enterprise.server.plugin.pc.content.AdvisoryCVEDetails;
-import org.rhq.enterprise.server.plugin.pc.content.AdvisoryDetails;
-import org.rhq.enterprise.server.plugin.pc.content.AdvisoryPackageDetails;
-import org.rhq.enterprise.server.plugin.pc.content.ContentProviderPackageDetails;
-import org.rhq.enterprise.server.plugin.pc.content.ContentProviderPackageDetailsKey;
-import org.rhq.enterprise.server.plugin.pc.content.DistributionDetails;
-import org.rhq.enterprise.server.plugin.pc.content.DistributionFileDetails;
-import org.rhq.enterprise.server.plugin.pc.content.ThreadUtil;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnChannelFamilyType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnChannelType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnErratumBugType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnErratumType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnKickstartFileType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnKickstartableTreeType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnPackageType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc.RhnComm;
-import org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc.RhnDownloader;
-
-/**
- * @author pkilambi
- *
- */
-public class RHNHelper {
-
- private final String baseurl;
- private final RhnComm rhndata;
- private final RhnDownloader rhndownload;
- private final String systemid;
- private final String distributionType;
-
- private final Log log = LogFactory.getLog(RHNHelper.class);
-
- /**
- * Constructor.
- *
- * @param baseurl The base url to connect to hosted
- * @param systemIdIn systemId to use for auth
- */
- public RHNHelper(String baseurl, String systemIdIn) {
-
- this.baseurl = baseurl;
- this.rhndata = new RhnComm(baseurl);
- this.rhndownload = new RhnDownloader(baseurl);
- this.systemid = systemIdIn;
- this.distributionType = "kickstart";
-
- }
-
- public boolean checkSystemId(String systemId) throws IOException, XmlRpcException {
- return this.rhndata.checkSystemId(systemId);
- }
-
- public List<DistributionDetails> getDistributionMetaData(List<String> labels) throws IOException, XmlRpcException {
- log.debug("getDistributionMetaData(" + labels + " invoked");
-
- List<DistributionDetails> distros = new ArrayList<DistributionDetails>();
- List<RhnKickstartableTreeType> ksTreeTypes = rhndata.getKickstartTreeMetadata(this.systemid, labels);
- for (RhnKickstartableTreeType ksTree : ksTreeTypes) {
- log.debug("Forming DistributionDetails(" + ksTree.getLabel() + ", " + ksTree.getBasePath() + " , "
- + distributionType);
- DistributionDetails details = new DistributionDetails(ksTree.getLabel(), ksTree.getBasePath(),
- distributionType);
- distros.add(details);
-
- List<RhnKickstartFileType> ksFiles = ksTree.getRhnKickstartFiles().getRhnKickstartFile();
- for (RhnKickstartFileType ksFile : ksFiles) {
- if (log.isDebugEnabled()) {
- log.debug("RHNHelper::getDistributionMetaData<ksLabel=" + ksTree.getLabel() + "> current file = "
- + ksFile.getRelativePath() + ", md5sum = " + ksFile.getMd5Sum() + ", lastModified = "
- + ksFile.getLastModified() + ", fileSize = " + ksFile.getFileSize());
- }
- Long lastMod = Long.parseLong(ksFile.getLastModified());
- DistributionFileDetails dFile = new DistributionFileDetails(ksFile.getRelativePath(), lastMod, ksFile
- .getMd5Sum());
- Long fileSize = Long.parseLong(ksFile.getFileSize());
- dFile.setFileSize(fileSize);
- details.addFile(dFile);
- }
- }
- return distros;
- }
-
- public List<AdvisoryDetails> getAdvisoryMetadata(List<String> advisoryList, String repoName)
- throws XmlRpcException, IOException, InterruptedException {
- List<AdvisoryDetails> erratadetails = new ArrayList<AdvisoryDetails>();
- List<RhnErratumType> errata = rhndata.getErrataMetadata(this.systemid, advisoryList);
- for (RhnErratumType erratum : errata) {
- ThreadUtil.checkInterrupted();
- log.debug("Forming AdvisoryDetails(" + erratum.getAdvisory());
- AdvisoryDetails details = new AdvisoryDetails(erratum.getAdvisory(), erratum.getRhnErratumAdvisoryType(),
- erratum.getRhnErratumSynopsis());
- details.setDescription(erratum.getRhnErratumDescription());
- details.setSolution(erratum.getRhnErratumSolution());
- details.setTopic(erratum.getRhnErratumTopic());
- details.setIssue_date(getLongForDate(erratum.getRhnErratumIssueDate()));
- details.setUpdate_date(getLongForDate(erratum.getRhnErratumUpdateDate()));
- details.setAdvisory_name(erratum.getRhnErratumAdvisoryName());
- details.setAdvisory_rel(erratum.getRhnErratumAdvisoryRel());
- String cvestr = erratum.getCveNames();
- String[] cves = cvestr.split(" ");
- log.debug("list of cves " + cvestr + cves.toString());
-
- for (String cve : cves) {
- if (log.isDebugEnabled()) {
- log.debug("RHNHelper::getAdvisoryMetaData<Advisory=" + erratum.getAdvisory() + "> CVEs<" + cve
- + ">");
- }
- AdvisoryCVEDetails acve = new AdvisoryCVEDetails(cve);
- details.addCVE(acve);
- }
-
- List<RhnErratumBugType> ebugs = erratum.getRhnErratumBugs().getRhnErratumBug();
-
- if (ebugs != null) {
- for (RhnErratumBugType ebug : ebugs) {
- if (log.isDebugEnabled()) {
- log.debug("RHNHelper::getAdvisoryMetaData<Advisory=" + erratum.getAdvisory() + "> Bugs<" + ebug
- + ">");
- }
- AdvisoryBugDetails dbug = new AdvisoryBugDetails(ebug.getRhnErratumBugId());
- details.addBug(dbug);
- }
- }
-
- String pkgs = erratum.getPackages();
- String[] pkgIds = pkgs.split(" ");
-
- //try {
- List<AdvisoryPackageDetails> apkgdetails = new ArrayList<AdvisoryPackageDetails>();
- List<RhnPackageType> pkgdetails = rhndata.getPackageMetadata(this.systemid, Arrays.asList(pkgIds));
- for (RhnPackageType pkgd : pkgdetails) {
- if (log.isDebugEnabled()) {
- log.debug("RHNHelper::getAdvisoryMetaData<Advisory=" + erratum.getAdvisory() + "> Package<" + pkgd
- + ">");
- }
- String name = pkgd.getName();
- String version = pkgd.getVersion();
- String arch = pkgd.getPackageArch();
- String release = pkgd.getRelease();
- String rpmname = constructRpmDisplayName(name, version, release, arch);
- AdvisoryPackageDetails apkgd = new AdvisoryPackageDetails(name, version, arch, rpmname);
- apkgdetails.add(apkgd);
- }
- details.addPkgs(apkgdetails);
-
- //} catch (Exception e) {
- // e.printStackTrace();
- // }
-
- erratadetails.add(details);
- }
- return erratadetails;
- }
-
- /**
- * Extract the package metadata for all available packages to sync
- * @param packageIds Valid package ids for getPackageMatadata call to fetch from hosted
- * @param channelName channel name of passed in package ids
- * @return A list of package detail objects
- * @throws Exception On all errors
- */
- public List<ContentProviderPackageDetails> getPackageDetails(List packageIds, String channelName) throws Exception {
- log.debug("getPackageDetails() for " + packageIds.size() + " packageIds on channel " + channelName);
- int skippedPackages = 0;
- int pkgNoName = 0;
- List<ContentProviderPackageDetails> pdlist = new ArrayList<ContentProviderPackageDetails>();
- List<RhnPackageType> pkgs = rhndata.getPackageMetadata(this.systemid, packageIds);
- log.debug(pkgs.size() + " packages were returned from getPackageMetadata().");
- for (RhnPackageType pkg : pkgs) {
- try {
- ContentProviderPackageDetails details = getDetails(pkg, channelName);
- pdlist.add(details);
- } catch (Exception e) {
- if (pkg != null) {
- if (StringUtils.isBlank(pkg.getName())) {
- log.debug("getPackageDetails skipping package with no name.");
- pkgNoName++;
- continue;
- }
- }
- log.warn("Caught exception with getDetails() of package: " + pkg.getName() + " : " + e);
- log.warn("Package: id = " + pkg.getId() + " getSourceRpm() = " + pkg.getSourceRpm()
- + ", getDescription() = " + pkg.getRhnPackageDescription());
- // something went wrong while constructing the pkg object.
- // Proceed to next and get as many packages as we can.
- skippedPackages++;
- continue;
- }
- }
- log.info("We skipped: " + skippedPackages + " packages. " + "We also skipped " + pkgNoName
- + " packages because they had no name");
- log.info("getPackageDetails was called with a list of package ids size = " + packageIds.size()
- + " we have fetched metadata for " + pdlist.size() + " packages");
- return pdlist;
- }
-
- /**
- * Extract the package details for each rpm metadata fetched
- *
- * @param p an rpm package metadata object
- * @param channelName channel name
- *
- * @return ContentProviderPackageDetails pkg object
- */
- private ContentProviderPackageDetails getDetails(RhnPackageType p, String channelName) throws IOException {
-
- String name = p.getName();
- String version = p.getVersion();
- String arch = p.getPackageArch();
- String downloadName = constructRpmDownloadName(name, version, p.getRelease(), p.getEpoch(), arch);
- String displayName = constructRpmDisplayName(name, version, p.getRelease(), arch);
- ContentProviderPackageDetailsKey key = new ContentProviderPackageDetailsKey(name, version, "rpm", arch,
- "Linux", "Platforms");
- ContentProviderPackageDetails pkg = new ContentProviderPackageDetails(key);
-
- pkg.setDisplayName(name);
- pkg.setShortDescription(p.getRhnPackageSummary());
- pkg.setLongDescription(p.getRhnPackageDescription());
- pkg.setFileName(displayName);
- pkg.setFileSize(new Long(p.getPackageSize()));
- pkg.setFileCreatedDate(new Long(p.getLastModified()));
- pkg.setLicenseName("license");
- pkg.setMD5(p.getMd5Sum());
- pkg.setLocation(constructPackageUrl(channelName, downloadName));
-
- String metadata = PrimaryXML.createPackageXML(p);
- byte[] gzippedMetadata = gzip(metadata.getBytes());
- pkg.setMetadata(gzippedMetadata);
-
- return pkg;
-
- }
-
- /**
- * Get List of packagesIds for Given Channels
- * @param channelName channel name
- * @return List of all package ids associated to the channel
- * @throws IOException on io errors on systemid reads
- * @throws XmlRpcException on xmlrpc faults
- */
- public List<String> getChannelPackages(String channelName) throws IOException, XmlRpcException {
- log.debug("getChannelPackages(" + channelName + ")");
- ArrayList<String> allPackages = new ArrayList();
- List<RhnChannelType> channels = rhndata.getChannels(this.systemid, Arrays.asList(channelName));
-
- for (RhnChannelType channel : channels) {
- String packages = channel.getPackages();
- String[] pkgIds = packages.split(" ");
- if (pkgIds.length > 1) {
- allPackages.addAll(Arrays.asList(pkgIds));
- }
- }
-
- return allPackages;
- }
-
- /**
- * Get List of errataIds for Given Channels
- * @param channelName channel name
- * @return List of all errata ids associated to the channel
- * @throws IOException on io errors on systemid reads
- * @throws XmlRpcException on xmlrpc faults
- */
- public List<String> getChannelAdvisory(String channelName) throws IOException, XmlRpcException {
- log.debug("getChannelAdvisory(" + channelName + ")");
- ArrayList<String> allAdvisory = new ArrayList();
- List<RhnChannelType> channels = rhndata.getChannels(this.systemid, Arrays.asList(channelName));
-
- for (RhnChannelType channel : channels) {
- String errata = channel.getChannelErrata();
- String[] errataIds = errata.split(" ");
- if (errataIds.length > 1) {
- allAdvisory.addAll(Arrays.asList(errataIds));
- }
- }
-
- return allAdvisory;
- }
-
- /**
- * Get a list of all Syncable Channels based on entitled channel families
- * @return A list of channel labels
- * @throws IOException on systemid reads
- * @throws XmlRpcException on xmlrpc faults
- */
- public List<String> getSyncableChannels() throws IOException, XmlRpcException {
- log.debug("getSyncableChannels()");
- ArrayList<String> allchannels = new ArrayList<String>();
- String[] ignoredChannelFamiliesArray = { "education", "k12ltsp", "rh-public", "rhel-devsuite", "rhel-gfs" };
- List<String> ignoredChannelFamilies = Arrays.asList(ignoredChannelFamiliesArray);
- log.debug("Ignoring expired channel families :");
- log.debug(ignoredChannelFamilies.toString());
-
- List<RhnChannelFamilyType> cfts = rhndata.getChannelFamilies(this.systemid);
- for (RhnChannelFamilyType cf : cfts) {
- if (ignoredChannelFamilies.contains(cf.getLabel())) {
- continue;
- }
- String channeldata = cf.getChannelLabels();
- String[] clabels = channeldata.split(" ");
- if (clabels.length > 1) {
- allchannels.addAll(Arrays.asList(clabels));
- }
- }
-
- return allchannels;
- }
-
- /**
- *
- * @return returns list of all possible kickstart labels from all possible channels
- * @throws IOException
- * @throws XmlRpcException
- */
- public List<String> getSyncableKickstartLabels() throws IOException, XmlRpcException {
- log.debug("getSyncableKickstartLabels() - no channels passed, will use all available channels");
- List<String> allChannels = getSyncableChannels();
- return getSyncableKickstartLabels(allChannels);
- }
-
- /**
- *
- * @param channelName channel name
- * @return kickstart labels part of the passed in channel name
- * @throws IOException
- * @throws XmlRpcException
- */
- public List<String> getSyncableKickstartLabels(String channelName) throws IOException, XmlRpcException {
- log.debug("getSyncableKickstartLabels(" + channelName + ")");
- List<String> names = new ArrayList<String>();
- names.add(channelName);
- return getSyncableKickstartLabels(names);
- }
-
- /**
- *
- * @param channelLabels list of channel names to restrict return data to
- * @return kickstart labels from the passed in list of channel names
- * @throws IOException
- * @throws XmlRpcException
- */
- public List<String> getSyncableKickstartLabels(List<String> channelLabels) throws IOException, XmlRpcException {
- log.debug("getSyncableKickstartLabels(" + channelLabels + ")");
- List<String> ksLabels = new ArrayList<String>();
- List<RhnChannelType> rct = rhndata.getChannels(this.systemid, channelLabels);
- for (RhnChannelType ct : rct) {
- String ksTrees = ct.getKickstartableTrees();
- String[] trees = ksTrees.split(" ");
- ksLabels.addAll(Arrays.asList(trees));
- }
- return ksLabels;
- }
-
- /**
- * Open an input stream to specifed relative url. Prepends the baseurl to the <i>url</i> and opens and opens and
- * input stream. Files with a .gz suffix will be unziped (inline).
- *
- * @param location A url that is relative to the <i>baseurl</i> and references a file within the repo.
- *
- * @return An open input stream that <b>must</b> be closed by the caller.
- *
- * @throws IOException On io errors.
- *
- * @throws XmlRpcException On all errors.
- */
- public InputStream openStream(String location) throws IOException, XmlRpcException {
- log.info("File being fetched from: " + location);
- return rhndownload.getFileStream(this.systemid, location);
- }
-
- /**
- * Constructs a downloadable url for package downloads.
- * @param channelName channel label to be synced.
- * @param rpmName rpm file name
- * @return a valid url location to fetch the rpm from.
- */
- public String constructPackageUrl(String channelName, String rpmName) {
-
- return constructPackageUrl(baseurl, channelName, rpmName);
- }
-
- static public String constructPackageUrl(String baseurl, String channelName, String rpmName) {
-
- String appendurl = "/SAT/$RHN/" + channelName + "/getPackage/" + rpmName;
- return baseurl + appendurl;
- }
-
- /**
- * Constructs a downloadable url for package downloads.
- * @param channelName channel label to be synced.
- * @param ksTreeLabel kickstart tree label name
- * @param ksFilePath path to kickstart file
- * @return a valid url location to fetch the rpm from.
- */
- public String constructKickstartFileUrl(String channelName, String ksTreeLabel, String ksFilePath) {
-
- return constructKickstartFileUrl(baseurl, channelName, ksTreeLabel, ksFilePath);
- }
-
- static public String constructKickstartFileUrl(String baseurl, String channelName, String ksTreeLabel,
- String ksFilePath) {
- String appendurl = "/SAT/$RHN/" + channelName + "/getKickstartFile/" + ksTreeLabel + "/" + ksFilePath;
- return baseurl + appendurl;
- }
-
- /**
- * Method to construct an rpm format filename for download url
- * @param name rpm package name
- * @param version rpm package version
- * @param release rpm package release
- * @param epoch rpm package epoch
- * @param arch rpm package arch
- * @return an rpm package name string
- */
- static public String constructRpmDownloadName(String name, String version, String release, String epoch, String arch) {
-
- String releaseepoch = release + ":" + epoch;
- return name + "-" + version + "-" + releaseepoch + "." + arch + ".rpm";
- }
-
- /**
- * construct a legitimate rpm name to display
- * @param name
- * @param version
- * @param release
- * @param arch
- * @return rpm name String
- */
- static public String constructRpmDisplayName(String name, String version, String release, String arch) {
-
- return name + "-" + version + "-" + release + "." + arch + ".rpm";
- }
-
- private byte[] gzip(byte[] input) throws IOException {
-
- ByteArrayOutputStream zipped = new ByteArrayOutputStream();
- GZIPOutputStream gzip = new GZIPOutputStream(zipped);
- try {
- gzip.write(input);
- } finally {
- gzip.close();
- }
- return zipped.toByteArray();
- }
-
- private long getLongForDate(String dateIn) {
- return Long.parseLong(dateIn);
- }
-
- /*
- * (non-Javadoc) @see java.lang.Object#toString()
- */
- @Override
- public String toString() {
- return baseurl;
- }
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNProvider.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNProvider.java
deleted file mode 100644
index 03e7ba6..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNProvider.java
+++ /dev/null
@@ -1,386 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-package org.rhq.enterprise.server.plugins.rhnhosted;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.security.KeyException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.xmlrpc.XmlRpcException;
-
-import org.rhq.core.domain.configuration.Configuration;
-import org.rhq.enterprise.server.plugin.pc.content.AdvisoryDetails;
-import org.rhq.enterprise.server.plugin.pc.content.AdvisorySource;
-import org.rhq.enterprise.server.plugin.pc.content.AdvisorySyncReport;
-import org.rhq.enterprise.server.plugin.pc.content.ContentProvider;
-import org.rhq.enterprise.server.plugin.pc.content.ContentProviderPackageDetails;
-import org.rhq.enterprise.server.plugin.pc.content.DistributionDetails;
-import org.rhq.enterprise.server.plugin.pc.content.DistributionSource;
-import org.rhq.enterprise.server.plugin.pc.content.DistributionSyncReport;
-import org.rhq.enterprise.server.plugin.pc.content.InitializationException;
-import org.rhq.enterprise.server.plugin.pc.content.PackageSource;
-import org.rhq.enterprise.server.plugin.pc.content.PackageSyncReport;
-import org.rhq.enterprise.server.plugin.pc.content.RepoDetails;
-import org.rhq.enterprise.server.plugin.pc.content.RepoImportReport;
-import org.rhq.enterprise.server.plugin.pc.content.RepoSource;
-import org.rhq.enterprise.server.plugin.pc.content.SyncException;
-import org.rhq.enterprise.server.plugin.pc.content.SyncProgressWeight;
-import org.rhq.enterprise.server.plugin.pc.content.ThreadUtil;
-import org.rhq.enterprise.server.plugins.rhnhosted.certificate.Certificate;
-import org.rhq.enterprise.server.plugins.rhnhosted.certificate.CertificateFactory;
-import org.rhq.enterprise.server.plugins.rhnhosted.certificate.PublicKeyRing;
-
-/**
- * @author pkilambi
- *
- */
-public class RHNProvider implements ContentProvider, PackageSource, RepoSource, DistributionSource, AdvisorySource {
-
- private final Log log = LogFactory.getLog(RHNProvider.class);
- private RHNActivator rhnObject;
- private RHNHelper helper;
-
- /**
- * Initializes the adapter with the specified configuration.
- *
- * <p/>Expects <u>one</u> of the following properties:
- *
- * <p/>
- * <table border="1">
- * <tr>
- * <td><b>location</b></td>
- * <td>RHN Hosted server URL</td>
- * </tr>
- * <tr>
- * <td><b>certificate</b></td>
- * <td>A certificate for authentication and subscription validation.</td>
- * </tr>
- * </table>
- *
- * <p/>
- *
- * @param configuration The adapter's configuration propeties.
- *
- * @throws Exception On errors.
- */
- public void initialize(Configuration configuration) throws Exception {
- String locationIn = configuration.getSimpleValue("location", null);
- String certificate = configuration.getSimpleValue("certificate", null);
-
- String location = locationIn + RHNConstants.DEFAULT_HANDLER;
-
- location = trim(location);
- log.info("Initialized with location: " + location);
- certificate = certificate.trim();
-
- // check location field validity
- try {
- new URL(location);
- } catch (MalformedURLException mue) {
- throw new IllegalArgumentException("Invalid 'location' property");
- }
-
- // check certificate field validity
- try {
- Certificate cert = CertificateFactory.read(certificate);
- PublicKeyRing keyRing = this.readDefaultKeyRing();
- cert.verifySignature(keyRing);
-
- } catch (Exception e) {
- log.debug("Invalid Cert");
- throw new InitializationException("Invalid 'Certificate' property", e);
- }
-
- String systemId = FileUtils.readFileToString(new File(RHNConstants.DEFAULT_SYSTEM_ID));
- helper = new RHNHelper(locationIn, systemId);
- log.info("RHNProvider initialized RHNHelper with location = " + locationIn + "\n " + "systemid = " + systemId);
- // Check basic authentication capabilities with passed in systemid and RHN server
- // If there is a problem a XmlRpcException will be thrown, we'll allow it to be thrown and not try to catch it
- helper.checkSystemId(systemId);
-
- // Now we have valid data. Spawn the activation.
- try {
- rhnObject = new RHNActivator(systemId, certificate, location);
- rhnObject.processActivation();
- log.debug("Activation successful");
- } catch (Exception e) {
- log.debug("Activation Failed. Please check your configuration");
- throw new InitializationException("Server Activation Failed.", e);
- }
- }
-
- /**
- * @inheritDoc
- */
- public void shutdown() {
- log.debug("shutdown");
- }
-
- /**
- * @inheritDoc
- */
- public InputStream getInputStream(String location) throws Exception {
- log.debug("opening: " + location);
- return helper.openStream(location);
- }
-
- /**
- * @inheritDoc
- */
- public void synchronizePackages(String repoName, PackageSyncReport report,
- Collection<ContentProviderPackageDetails> existingPackages) throws SyncException, InterruptedException {
- log.info("synchronizePackages(repoName = " + repoName + ", report = " + report + ", existingPackages.size() = "
- + existingPackages.size());
- RHNSummary summary = new RHNSummary(helper);
- List<ContentProviderPackageDetails> deletedPackages = new ArrayList<ContentProviderPackageDetails>();
- deletedPackages.addAll(existingPackages);
- log.info("Report" + report);
- // sync now
- try {
- summary.markStarted();
- List<String> pkgIds = helper.getChannelPackages(repoName);
- log.info("RHNProvider:: helper.getChannelPackages returned " + pkgIds.size() + " packages");
- List<ContentProviderPackageDetails> pkgDetails = new ArrayList<ContentProviderPackageDetails>();
-
- //
- // We ran into problems when syncing large package lists, example 6000 packages.
- // We are going to chunk the list to processing a smaller amount at a time.
- //
- long startTime = System.currentTimeMillis();
- int sliceSize = 100;
- for (int index = 0; index < pkgIds.size(); index += sliceSize) {
- int end = index + sliceSize;
- if (end >= pkgIds.size()) {
- end = pkgIds.size() - 1;
- }
- long startTimeSlice = System.currentTimeMillis();
- log.debug("Getting package details for slice [" + index + " -> " + end + "]");
- List<String> pkgSliceList = pkgIds.subList(index, end);
- List<ContentProviderPackageDetails> tempList = helper.getPackageDetails(pkgSliceList, repoName);
- log.debug("We called getPackageDetails() on a list of " + pkgSliceList.size()
- + " pkg ids and got a return list of " + tempList.size() + " packages");
- pkgDetails.addAll(tempList);
- long endTimeSlice = System.currentTimeMillis();
- log.debug("Slice processed in " + (endTimeSlice - startTimeSlice) + "ms current size of pkgDetails is "
- + pkgDetails.size());
- ThreadUtil.checkInterrupted();
- }
- long endTime = System.currentTimeMillis();
- log.info("It took " + (endTime - startTime) + "ms too get PackageDetails for " + pkgIds.size()
- + " packages");
- log.info("We fetched metadata for " + pkgDetails.size() + " packages, passed in list of pkgIds was: "
- + pkgIds.size());
-
- for (ContentProviderPackageDetails p : pkgDetails) {
- log.debug("Processing package at (" + p.getLocation());
- deletedPackages.remove(p);
- if (!existingPackages.contains(p)) {
- log.debug("New package at (" + p.getLocation() + ") detected");
- report.addNewPackage(p);
- summary.added++;
- }
- ThreadUtil.checkInterrupted();
- }
- for (ContentProviderPackageDetails p : deletedPackages) {
- log.debug("Package at (" + p.getDisplayName() + ") marked as deleted");
- report.addDeletePackage(p);
- summary.deleted++;
- }
- } catch (Exception e) {
- summary.errors.add(e.toString());
- throw new SyncException("error synching packages.", e);
- } finally {
- //helper.disconnect();
- summary.markEnded();
- report.setSummary(summary.toString());
- log.info("synchronizing with repository: " + helper + " finished\n" + summary);
- }
- }
-
- /**
- * @inheritDoc
- */
- public void synchronizeAdvisory(String repoName, AdvisorySyncReport report,
- Collection<AdvisoryDetails> existingAdvisory) throws SyncException, InterruptedException {
-
- List<String> existingLabels = new ArrayList<String>();
- for (AdvisoryDetails ad : existingAdvisory) {
- existingLabels.add(ad.getAdvisory());
- }
- List<String> toSyncAdvs = new ArrayList<String>();
- List<String> deletedAdvs = new ArrayList<String>(); //Existing advisories we want to remove.
- deletedAdvs.addAll(existingLabels);
-
- try {
- List<String> errataIds = helper.getChannelAdvisory(repoName);
- List<AdvisoryDetails> advList = helper.getAdvisoryMetadata(errataIds, repoName);
- log.debug("Found " + advList.size() + " available errata");
- for (AdvisoryDetails adv : advList) {
- log.debug("Processing Advisory ::" + adv.getAdvisory());
- deletedAdvs.remove(adv.getAdvisory());
- if (!existingLabels.contains(adv.getAdvisory())) {
- log.debug("New Advisory " + adv.getAdvisory() + ") detected" + " with bugs" + adv.getBugs()
- + "with cves" + adv.getCVEs() + "wiuth packages" + adv.getPkgs());
- report.addAdvisory(adv);
- }
- ThreadUtil.checkInterrupted();
- }
- } catch (IOException ioe) {
- throw new SyncException("IOException syncing advisory meta", ioe);
- } catch (XmlRpcException x) {
- throw new SyncException("XmlRpcException syncing advisory meta", x);
- }
-
- for (String adv : deletedAdvs) {
- for (AdvisoryDetails advd : existingAdvisory) {
- if (advd.getAdvisory().compareToIgnoreCase(adv) == 0) {
- report.addDeletedAdvisory(advd);
- }
- }
- }
- }
-
- /**
- * @inheritDoc
- */
- public void synchronizeDistribution(String repoName, DistributionSyncReport report,
- Collection<DistributionDetails> existingDistros) throws SyncException {
-
- // Goal:
- // This method will create the metadata representing what kickstart tree files need to be downloaded.
- // the metadata will be returned through the DistributionSyncReport object.
- // NOTE: This method DOES not do the actual downloading of data.
-
- List<String> existingLabels = new ArrayList<String>();
- for (DistributionDetails d : existingDistros) {
- existingLabels.add(d.getLabel());
- }
- List<String> toSyncDistros = new ArrayList<String>();
- List<String> deletedDistros = new ArrayList<String>(); //Existing distros we want to remove.
- deletedDistros.addAll(existingLabels);
-
- List<String> availableLabels;
- try {
- availableLabels = helper.getSyncableKickstartLabels(repoName);
- } catch (Exception e) {
- throw new SyncException("Error synching kickstart labels", e);
- }
- log.debug("Found " + availableLabels.size() + " available kickstart trees");
- for (String label : availableLabels) {
- log.debug("Processing kickstart: " + label);
- deletedDistros.remove(label);
- if (!existingLabels.contains(label)) {
- log.debug("New kickstart to sync: " + label);
- toSyncDistros.add(label);
- }
- }
-
- // Determine what distros are to be removed, i.e. they are synced by RHQ but no longer exist from RHN
- for (String label : deletedDistros) {
- for (DistributionDetails dd : existingDistros) {
- if (dd.getLabel().compareToIgnoreCase(label) == 0) {
- report.addDeletedDistro(dd);
- }
- }
- }
-
- List<DistributionDetails> ddList;
- try {
- ddList = helper.getDistributionMetaData(toSyncDistros);
- } catch (Exception e) {
- throw new SyncException("Error synching distro metadata", e);
- }
- report.addDistros(ddList);
- }
-
- /**
- * @inheritDoc
- */
- public void testConnection() throws Exception {
- rhnObject.processDeActivation();
- rhnObject.processActivation();
- }
-
- /**
- * @inheritDoc
- */
- public RepoImportReport importRepos() throws Exception {
- RepoImportReport report = new RepoImportReport();
-
- List<String> channels = helper.getSyncableChannels();
- for (String clabel : channels) {
- log.info("Importing repo: " + clabel);
- RepoDetails repo = new RepoDetails(clabel);
- report.addRepo(repo);
- }
-
- return report;
- }
-
- /**
- * Reads the public keyring on filesystem into memory
- *
- * @return A PublicKeyRing object.
- * @throws IOException On failing to read webapp keyring
- * @throws KeyException thrown on failing to validate the key
- */
- private PublicKeyRing readDefaultKeyRing() throws KeyException, IOException {
- InputStream keyringStream = new FileInputStream(RHNConstants.DEFAULT_WEBAPP_GPG_KEY_RING);
- return new PublicKeyRing(keyringStream);
- }
-
- /**
- * Trim white space and trailing (/) characters.
- *
- * @param path A url/directory path string.
- *
- * @return A trimmed string.
- */
- private String trim(String path) {
- path = path.trim();
- while ((path.length() > 1) && path.endsWith("/")) {
- path = path.substring(0, path.length() - 1);
- }
-
- return path;
- }
-
- /**
- * @inheritDoc
- */
- public String getDistFileRemoteLocation(String repoName, String label, String relativeFilename) {
- return helper.constructKickstartFileUrl(repoName, label, relativeFilename);
- }
-
- public SyncProgressWeight getSyncProgressWeight() {
- return new SyncProgressWeight(10, 1, 0, 0, 1);
- }
-
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNSSLCertReader.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNSSLCertReader.java
deleted file mode 100644
index 9ec3e37..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNSSLCertReader.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.rhq.enterprise.server.plugins.rhnhosted;
-
-import java.util.List;
-import java.util.ArrayList;
-import java.io.File;
-import java.io.IOException;
-import java.io.ByteArrayInputStream;
-import java.io.PrintStream;
-import java.io.DataInputStream;
-import java.security.cert.X509Certificate;
-import java.security.cert.CertificateFactory;
-import java.security.cert.CertificateException;
-import java.security.cert.Certificate;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.UnrecoverableKeyException;
-import java.security.KeyManagementException;
-import java.net.ServerSocket;
-import java.net.Socket;
-import java.net.InetAddress;
-import java.net.URL;
-
-import javax.net.ssl.KeyManagerFactory;
-import javax.net.ssl.SSLServerSocketFactory;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.HttpsURLConnection;
-
-import org.apache.commons.io.FileUtils;
-
-public class RHNSSLCertReader
-{
- static final public String BEGIN_CERT = "-----BEGIN CERTIFICATE-----\n";
- static final public String END_CERT = "-----END CERTIFICATE-----\n";
-
-
- static protected int getStartPosition(String rawText, int offset) {
- return rawText.indexOf(BEGIN_CERT, offset);
- }
-
- static protected int getEndPosition(String rawText, int offset) {
- int index = rawText.indexOf(END_CERT, offset);
- if (index > 0) {
- index = index + END_CERT.length();
- }
- return index;
- }
-
- static public List<String> getCertText(String rawText) {
- ArrayList<String> certs = new ArrayList<String>();
- int start = 0, end = 0;
- while(true) {
- start = getStartPosition(rawText, end);
- end = getEndPosition(rawText, start);
- if ((end < 0) || (start < 0)) {
- break;
- }
- certs.add(rawText.substring(start, end));
- }
- return certs;
- }
-
- static public List<X509Certificate> getSSLCertificates(String rawText) throws CertificateException {
- List<X509Certificate> certs = new ArrayList<X509Certificate>();
- List<String> rawCerts = getCertText(rawText);
- return getSSLCertificates(rawCerts);
- }
-
- static public List<X509Certificate> getSSLCertificates(List<String> rawCerts) throws CertificateException {
- List<X509Certificate> certs = new ArrayList<X509Certificate>();
- for (String raw: rawCerts) {
- certs.add(getCert(raw));
- }
- return certs;
- }
-
- static public X509Certificate getCert(String rawText) throws CertificateException {
- CertificateFactory cf = CertificateFactory.getInstance("X.509");
- ByteArrayInputStream stream = new ByteArrayInputStream(rawText.getBytes());
- return (X509Certificate)cf.generateCertificate(stream);
- }
-
- static public void main(String[] args) {
- if (args.length < 1) {
- System.out.println("Please re-run and specify an argument for the location of a RHN SSL Cert.");
- System.exit(0);
- }
- String path = args[0];
- System.out.println("path is " + path);
- String rawCert = null;
- try {
- rawCert = FileUtils.readFileToString(new File(path));
- }
- catch (IOException e) {
- e.printStackTrace();
- System.exit(0);
- }
- List<String> certs = RHNSSLCertReader.getCertText(rawCert);
- for (String cert: certs) {
- System.out.println("Parsed SSL Certificate: \n" + cert);
- }
-
- List<X509Certificate> sslCerts = new ArrayList<X509Certificate>();
- try {
- sslCerts = getSSLCertificates(rawCert);
- }
- catch (CertificateException e) {
- e.printStackTrace();
- System.exit(0);
- }
- for (X509Certificate c: sslCerts) {
- System.out.println("Cert SigAlgName = " + c.getSigAlgName());
- System.out.println("Cert IssuerDN = " + c.getIssuerDN());
- System.out.println("Cert NotAfter = " + c.getNotAfter());
- System.out.println("Cert NotBefore = " + c.getNotBefore());
- System.out.println("Cert PublicKey = " + c.getPublicKey());
- System.out.println("Cert SubjectDN = " + c.getSubjectDN());
- }
- }
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNSSLSocketFactory.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNSSLSocketFactory.java
deleted file mode 100644
index 6ebb5d0..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNSSLSocketFactory.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.rhq.enterprise.server.plugins.rhnhosted;
-
-import java.io.File;
-import java.io.IOException;
-import java.security.GeneralSecurityException;
-import java.security.KeyStore;
-import java.security.cert.X509Certificate;
-import java.util.List;
-
-import javax.net.ssl.SSLSocketFactory;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.TrustManagerFactory;
-
-import org.apache.commons.io.FileUtils;
-
-
-public class RHNSSLSocketFactory
-{
- /**
- * This method will read in 'certPath' and uses these certs to restrict validation.
- *
- * @param certPath path to SSL Cert file
- * @return a SSLSocketFactory instance which will restrict validation to SSL certs in 'certPath'
- * @throws IOException
- * @throws GeneralSecurityException
- */
- static public SSLSocketFactory getSSLSocketFactory(String certPath)
- throws IOException, GeneralSecurityException
- {
- RHNSSLCertReader certReader = new RHNSSLCertReader();
- String rawCert = FileUtils.readFileToString(new File(certPath));
- List<X509Certificate> sslCerts = certReader.getSSLCertificates(rawCert);
- return getSSLSocketFactory(sslCerts);
- }
-
- /**
- *
- * @param sslCerts these certs will be used to validate the ssl connection
- * @return
- * @throws IOException
- * @throws GeneralSecurityException
- */
- static public SSLSocketFactory getSSLSocketFactory(List<X509Certificate> sslCerts)
- throws IOException, GeneralSecurityException
- {
- SSLContext sc = null;
- KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
- ks.load(null); //Important, this intializes the keystore
- int counter = 0;
- for (X509Certificate cert: sslCerts) {
- ks.setCertificateEntry("rhn-key-"+counter, cert);
- counter++;
- }
- sc = SSLContext.getInstance("SSL");
- TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
- tmf.init(ks);
- sc.init(null, tmf.getTrustManagers(), new java.security.SecureRandom());
- return sc.getSocketFactory();
- }
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNSummary.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNSummary.java
deleted file mode 100644
index 10f65d9..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNSummary.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.rhq.enterprise.server.plugins.rhnhosted;
-
-import java.util.ArrayList;
-import java.util.List;
-
-class RHNSummary {
- int added = 0;
- int updated = 0;
- int deleted = 0;
- long started = 0;
- long ended = 0;
- Object context;
- List<String> errors = new ArrayList<String>();
-
- RHNSummary(Object context) {
- this.context = context;
- }
-
- void markStarted() {
- started = System.currentTimeMillis();
- }
-
- void markEnded() {
- ended = System.currentTimeMillis();
- }
-
- @Override
- public String toString() {
- boolean failed = errors.size() > 0;
- StringBuilder sb = new StringBuilder();
- sb.append("Synchronization with RHNHosted - ");
- sb.append((failed ? "FAILED" : "SUCCEEDED"));
- sb.append("\nLocation: " + context);
- sb.append("\nDuration: " + (ended - started) + " (ms)");
- sb.append("\nPackages:");
- sb.append("\n\tAdded: " + added);
- sb.append("\n\tUpdated: " + updated);
- sb.append("\n\tDeleted: " + deleted);
- sb.append("\n\tErrors: " + errors.size());
- for (String s : errors) {
- sb.append("\n\t\t");
- sb.append(s);
- }
-
- return sb.toString();
- }
-}
\ No newline at end of file
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/Certificate.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/Certificate.java
deleted file mode 100644
index 64c9940..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/Certificate.java
+++ /dev/null
@@ -1,438 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-package org.rhq.enterprise.server.plugins.rhnhosted.certificate;
-
-import org.rhq.enterprise.server.plugins.rhnhosted.certificate.XmlTag;
-
-import java.security.SignatureException;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
-/**
- * @author pkilambi
- *
- */
-/**
- * A rhq server certificate.
- *
- */
-public class Certificate {
-
- public static final String CURRENT_GENERATION = "2";
- // Some of these properties should probably be int's or Date's
- // But until that is really needed, we'll stick with Strings
-
- private String product;
- private String owner;
- private String issued;
- private String expires;
- private String slots;
- private String provisioningSlots;
- private String monitoringSlots;
- private String virtualizationSlots;
- private String virtualizationPlatformSlots;
- private String nonlinuxSlots;
- private String satelliteVersion;
- private String generation;
- private String signature;
- private List channelFamilies;
- private static final String XML_HEADER = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
-
- /**
- * Construct an empty certificate.
- */
- Certificate() {
- channelFamilies = new ArrayList();
- }
-
- /**
- * States whether or not this certificate is expired.
- * @return true iff <code>expires</code> is after current system time
- * @throws ParseException this shouldn't happen, means the date format in
- * the cert is not what we expect
- */
- public boolean isExpired() throws ParseException {
- Date now = Calendar.getInstance().getTime();
- return now.after(this.getExpiresDate());
- }
-
- /**
- * Convert this certificate into the canonical form used for signing.
- *
- * @return the certificate in the canonical form used for signing
- */
- public String asChecksumString() {
- StringBuffer result = new StringBuffer();
- // Fields must appear in the output in alphabetical order
- // The channelFamilies are sorted in their very own way
- // (see ChannelFamily.compareTo)
- Collections.sort(channelFamilies);
- for (int i = 0; i < channelFamilies.size(); i++) {
- ChannelFamilyDescriptor cf = (ChannelFamilyDescriptor) channelFamilies.get(i);
- result.append(cf.asChecksumString()).append("\n");
- }
- appendField(result, "expires", getExpires());
- appendField(result, "generation", getGeneration());
- appendField(result, "issued", getIssued());
- appendField(result, "monitoring-slots", getMonitoringSlots());
- appendField(result, "nonlinux-slots", getNonlinuxSlots());
- appendField(result, "owner", getOwner());
- appendField(result, "product", getProduct());
- appendField(result, "provisioning-slots", getProvisioningSlots());
- appendField(result, "satellite-version", getSatelliteVersion());
- appendField(result, "slots", getSlots());
- appendField(result, "virtualization_host", this.getVirtualizationSlots());
- appendField(result, "virtualization_host_platform", this
- .getVirtualizationPlatformSlots());
- return result.toString();
- }
-
- /**
- * Returns the XML representation of the cert.
- * @return the XML representation of the cert.
- */
- public String asXmlString() {
- StringBuffer buf = new StringBuffer();
-
- buf.append(XML_HEADER).append("\n");
-
- XmlTag t = new XmlTag("rhn-cert");
- t.setAttribute("version", "0.1");
- buf.append(t.renderOpenTag()).append("\n");
-
- appendXmlField(buf, "product", getProduct());
- appendXmlField(buf, "owner", getOwner());
- appendXmlField(buf, "issued", getIssued());
- appendXmlField(buf, "expires", getExpires());
- appendXmlField(buf, "slots", getSlots());
- appendXmlField(buf, "monitoring-slots", getMonitoringSlots());
- appendXmlField(buf, "provisioning-slots", getProvisioningSlots());
- appendXmlField(buf, "nonlinux-slots", getNonlinuxSlots());
- appendXmlField(buf, "virtualization_host", this.getVirtualizationSlots());
- appendXmlField(buf, "virtualization_host_platform", this
- .getVirtualizationPlatformSlots());
-
- for (int i = 0; i < channelFamilies.size(); i++) {
- ChannelFamilyDescriptor cf = (ChannelFamilyDescriptor) channelFamilies.get(i);
- buf.append(" ").append(cf.asXmlString()).append("\n");
- }
-
- appendXmlField(buf, "satellite-version", getSatelliteVersion());
- appendXmlField(buf, "generation", getGeneration());
-
- XmlTag sig = new XmlTag("rhn-cert-signature");
- sig.addBody(getSignature());
- buf.append(" ").append(sig.render()).append("\n");
-
- buf.append(t.renderCloseTag()).append("\n");
- return buf.toString();
- }
-
- private void appendXmlField(StringBuffer result, String fieldName, String value) {
- if (value != null) {
- XmlTag t = new XmlTag("rhn-cert-field", false);
- t.setAttribute("name", fieldName);
- t.addBody(value);
- result.append(" ").append(t.render()).append('\n');
- }
- }
-
- /**
- * Check that this certificate was signed with a private key whose public
- * counterpart is on <code>keyRing</code>
- * @param keyRing the public keys with which to check the signatures
- * @return <code>true</code> if this certificate was signed with a private
- * key whose public counterpart is on <code>keyRing</code>,
- * <code>false</code> otherwise
- * @throws SignatureException if processing the sigature fails
- */
- public boolean verifySignature(PublicKeyRing keyRing) throws SignatureException {
- return keyRing.verifySignature(asChecksumString(), getSignature());
- }
-
- // Setters. They shouldn't be public, but have to be
- // since we use reflection to populate the certificate
- // when reading from XML.
-
- /**
- * Add a channel family
- * @param family the channel family to add
- */
- public void addChannelFamily(ChannelFamilyDescriptor family) {
- channelFamilies.add(family);
- }
-
- /**
- * Set the expiration date for the certificate
- * @param expires0 the expiration date
- */
- public void setExpires(String expires0) {
- expires = expires0;
- }
-
- /**
- * Set the generation
- * @param generation0 the generation
- */
- public void setGeneration(String generation0) {
- generation = generation0;
- }
-
- /**
- * Set the date of issue
- * @param issued0 date of issue
- */
- public void setIssued(String issued0) {
- issued = issued0;
- }
-
- /**
- * Set the number of non-linux slots
- * @param nonlinuxSlots0 the number of non-linux slots
- */
- public void setNonlinuxSlots(String nonlinuxSlots0) {
- nonlinuxSlots = nonlinuxSlots0;
- }
-
- /**
- * Set the number of monitoring slots
- * @param monitoringSlots0 the number of monitoring slots
- */
- public void setMonitoringSlots(String monitoringSlots0) {
- monitoringSlots = monitoringSlots0;
- }
-
- /**
- * Set the owner
- * @param owner0 the owner
- */
- public void setOwner(String owner0) {
- owner = owner0;
- }
-
- /**
- * Set the product
- * @param product0 the product
- */
- public void setProduct(String product0) {
- product = product0;
- }
-
- /**
- * Set the number of provisioning slots
- * @param provisioningSlots0 the number of provisioning slots
- */
- public void setProvisioningSlots(String provisioningSlots0) {
- provisioningSlots = provisioningSlots0;
- }
-
- /**
- * Set the satellite version
- * @param satelliteVersion0 the satellite version
- */
- public void setSatelliteVersion(String satelliteVersion0) {
- satelliteVersion = satelliteVersion0;
- }
-
- /**
- * Set the signature as an ASCII armored string
- * @param signature0 the ASCII armored signature
- */
- public void setSignature(String signature0) {
- signature = signature0;
- }
-
- /**
- * Set the number of slots
- * @param slots0 the number of slots
- */
- public void setSlots(String slots0) {
- slots = slots0;
- }
-
- /**
- * Set the number of virtualization slots
- * @param virtualizationSlots0 the number of virtualization slots
- */
- public void setVirtualizationSlots(String virtualizationSlots0) {
- virtualizationSlots = virtualizationSlots0;
- }
-
- /**
- * Set the number of virtualization platform slots
- * @param virtualizationSlots0 the number of virtualization platform slots
- */
- public void setVirtualizationPlatformSlots(String virtualizationSlots0) {
- virtualizationPlatformSlots = virtualizationSlots0;
- }
-
- // Getters
-
- /**
- * Return an unmodifiable list of the channel families
- * @return an unmodifiable list of the channel families
- */
- public List getChannelFamilies() {
- return Collections.unmodifiableList(channelFamilies);
- }
-
- /**
- * Return the channel family with name <code>family</code>, or
- * <code>null</code> if no such family exists.
- * @param family the name of the family
- * @return the channel family with name <code>family</code>, or
- * <code>null</code> if no such family exists.
- */
- public ChannelFamilyDescriptor getChannelFamily(String family) {
- for (int i = 0; i < channelFamilies.size(); i++) {
- ChannelFamilyDescriptor f = (ChannelFamilyDescriptor) channelFamilies.get(i);
- if (f.getFamily().equals(family)) {
- return f;
- }
- }
- return null;
- }
-
- /**
- * Get the expiration date
- * @return the expiration date
- */
- public String getExpires() {
- return expires;
- }
-
- /**
- * Convenience function, returns java.util.Date equivalent of
- * <code>expires</code>
- * @return Date obj equivalent of <code>expires</code>
- * @throws ParseException format of <code>expires</code> not what we
- * expected
- */
- public Date getExpiresDate() throws ParseException {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- return sdf.parse(expires);
- }
-
- /**
- * Get the generation
- * @return the generation
- */
- public String getGeneration() {
- return generation;
- }
-
- /**
- * Get the issue date
- * @return the issue date
- */
- public String getIssued() {
- return issued;
- }
-
- /**
- * Get the nonlinux slots
- * @return the nonlinux slots
- */
- public String getNonlinuxSlots() {
- return nonlinuxSlots;
- }
-
- /**
- * Get the monitoring slots
- * @return the monitoring slots
- */
- public String getMonitoringSlots() {
- return monitoringSlots;
- }
-
- /**
- * Get the owner
- * @return the owner
- */
- public String getOwner() {
- return owner;
- }
-
- /**
- * Get the product
- * @return the product
- */
- public String getProduct() {
- return product;
- }
-
- /**
- * Get the number of provisioning slots
- * @return the number of provisioning slots
- */
- public String getProvisioningSlots() {
- return provisioningSlots;
- }
-
- /**
- * Get the satellite version
- * @return the satellite version
- */
- public String getSatelliteVersion() {
- return satelliteVersion;
- }
-
- /**
- * Get the ASCII armoured signature
- * @return the ASCII armoured signature
- */
- public String getSignature() {
- return signature;
- }
-
- /**
- * Get the number of slots
- * @return the number of slots
- */
- public String getSlots() {
- return slots;
- }
-
- /**
- * Get the number of virtualization slots
- * @return the number of virtualization slots
- */
- public String getVirtualizationSlots() {
- return virtualizationSlots;
- }
-
- /**
- * Get the number of virtualization platform slots
- * @return the number of virtualizationPlatform slots
- */
- public String getVirtualizationPlatformSlots() {
- return virtualizationPlatformSlots;
- }
-
- private void appendField(StringBuffer result, String fieldName, String value) {
- if (value != null) {
- result.append(fieldName).append("-").append(value).append('\n');
- }
- }
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/CertificateFactory.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/CertificateFactory.java
deleted file mode 100644
index 49d4850..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/CertificateFactory.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-package org.rhq.enterprise.server.plugins.rhnhosted.certificate;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.StringReader;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.List;
-
-import org.jdom.Document;
-import org.jdom.Element;
-import org.jdom.JDOMException;
-import org.jdom.input.SAXBuilder;
-
-/**
- * @author pkilambi
- *
- */
-/**
- * A class for parsing rhq certificates from their XML form. The XML
- * format is identical to the one used by the perl code.
- *
- */
-public class CertificateFactory {
-
- private static final String ELEM_SIGNATURE = "rhn-cert-signature";
- private static final String ELEM_FIELD = "rhn-cert-field";
- private static final String ELEM_CERT = "rhn-cert";
-
- private static final FieldExtractor[] FIELD_EXTRACTORS = {
- new SimpleExtractor("product", true),
- new SimpleExtractor("owner", true),
- new SimpleExtractor("issued", true),
- new SimpleExtractor("expires", true),
- new SimpleExtractor("slots", true),
- new SimpleExtractor("monitoring-slots", "monitoringSlots"),
- new SimpleExtractor("provisioning-slots", "provisioningSlots"),
- new SimpleExtractor("virtualization_host", "virtualizationSlots"),
- new SimpleExtractor("virtualization_host_platform",
- "virtualizationPlatformSlots"),
- new SimpleExtractor("nonlinux-slots", "nonlinuxSlots"),
- new SimpleExtractor("satellite-version", "satelliteVersion"),
- new SimpleExtractor("generation"),
- new ChannelFamilyExtractor("channel-families") };
-
- private static final HashMap FIELD_MAP = new HashMap();
-
- static {
- for (int i = 0; i < FIELD_EXTRACTORS.length; i++) {
- FIELD_MAP.put(FIELD_EXTRACTORS[i].getFieldName(), FIELD_EXTRACTORS[i]);
- }
- }
-
- private CertificateFactory() {
- }
-
- /**
- * Parse the certificate from <code>certString</code>.
- * @param certString valid Satellite Certificate in string form
- * @return the certificate from <code>certString</code>
- * @throws JDOMException XML parsing fails
- * @throws IOException unknown
- */
- public static Certificate read(String certString) throws JDOMException, IOException {
- return readDocument(new SAXBuilder().build(new StringReader(certString)),
- certString);
- }
-
- /**
- * Parse a certificate from <code>file</code>. The file must contain the
- * certificate in XML form.
- *
- * @param file the file with the XML certificate
- * @return the certificate from <code>fle</code>
- * @throws JDOMException if parsing the XML fails
- * @throws IOException if reading the file fails
- */
- public static Certificate read(File file) throws JDOMException, IOException {
- return readDocument(new SAXBuilder().build(file), file.getAbsolutePath());
- }
-
- /**
- * Parse a certificate from the contents of <code>url</code>. The file must
- * contain the certificate in XML form.
- *
- * @param url the URL at which the XML certificate is located
- * @return the certificate from <code>fle</code>
- * @throws JDOMException if parsing the XML fails
- * @throws IOException if reading the contents of <code>url</code> fails
- */
- public static Certificate read(URL url) throws JDOMException, IOException {
- return readDocument(new SAXBuilder().build(url), url.toExternalForm());
- }
-
- private static Certificate readDocument(Document doc, String source)
- throws JDOMException {
- Certificate result = new Certificate();
- Element root = doc.getRootElement();
- if (!ELEM_CERT.equals(root.getName())) {
- throw new JDOMException("Expected root element in " + source + " to be " +
- ELEM_CERT + " but found " + root.getName());
- }
- Element signature = root.getChild(ELEM_SIGNATURE);
- if (signature == null) {
- throw new JDOMException("Could not find signature element ");
- }
- result.setSignature(signature.getText());
- List children = root.getChildren(ELEM_FIELD);
- for (int i = 0; i < children.size(); i++) {
- Element child = (Element) children.get(i);
- extractField(result, child);
- }
- return result;
- }
-
- private static void extractField(Certificate result, Element child)
- throws JDOMException {
- String name = child.getAttributeValue("name");
- FieldExtractor e = (FieldExtractor) FIELD_MAP.get(name);
- if (name == null) {
- throw new JDOMException("The field " + name +
- " is not one of the possible fields for " + ELEM_FIELD);
- }
- e.extract(result, child);
- }
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/ChannelFamilyDescriptor.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/ChannelFamilyDescriptor.java
deleted file mode 100644
index 3d3d0c6..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/ChannelFamilyDescriptor.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-package org.rhq.enterprise.server.plugins.rhnhosted.certificate;
-
-import org.rhq.enterprise.server.plugins.rhnhosted.certificate.XmlTag;
-/**
- * @author pkilambi
- *
- */
-/**
- * The entitlements for a channel family, consisting of the family name and a
- * quantity.
- *
- */
-public class ChannelFamilyDescriptor implements Comparable {
-
- private String family;
- private String quantity;
-
- ChannelFamilyDescriptor(String family0, String quantity0) {
- family = family0;
- quantity = quantity0;
- }
-
- /**
- * Return the name of this channel family
- * @return the name of this channel family
- */
- public String getFamily() {
- return family;
- }
-
- /**
- * Return the quantity for this family
- * @return the quantity for this family
- */
- public String getQuantity() {
- return quantity;
- }
-
- String asChecksumString() {
- return "channel-families-family-" + getFamily() + "-quantity-" + getQuantity();
- }
-
- /**
- * {@inheritDoc}
- */
- public int compareTo(Object obj) {
- ChannelFamilyDescriptor other = (ChannelFamilyDescriptor) obj;
- // The sort order for families is kinda odd; this replicates
- // exactly the way the Perl code sorts the fields so that
- // signature checking on the result is possible across Perl and Java
- return asSortKey().compareTo(other.asSortKey());
- }
-
- private String asSortKey() {
- return getQuantity() + "familyquantity" + getFamily();
- }
-
- String asXmlString() {
- XmlTag tag = new XmlTag("rhn-cert-field", false);
- tag.setAttribute("name", "channel-families");
- tag.setAttribute("quantity", getQuantity());
- tag.setAttribute("family", getFamily());
- return tag.render();
- }
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/ChannelFamilyExtractor.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/ChannelFamilyExtractor.java
deleted file mode 100644
index 90f4a6f..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/ChannelFamilyExtractor.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.rhq.enterprise.server.plugins.rhnhosted.certificate;
-
-import org.jdom.Element;
-/**
- * @author pkilambi
- *
- */
-/**
- * ChannelFamilyExtractor
- */
-public class ChannelFamilyExtractor implements FieldExtractor {
-
- private String fieldName;
-
- /**
- *
- */
- public ChannelFamilyExtractor(String fieldName0) {
- fieldName = fieldName0;
- }
-
- /**
- * {@inheritDoc}
- */
- public void extract(Certificate target, Element field) {
- String quantity = field.getAttributeValue("quantity");
- String family = field.getAttributeValue("family");
- ChannelFamilyDescriptor cf = new ChannelFamilyDescriptor(family, quantity);
- target.addChannelFamily(cf);
- }
-
- public boolean isRequired() {
- return false;
- }
-
- public String getFieldName() {
- return fieldName;
- }
-
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/FieldExtractor.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/FieldExtractor.java
deleted file mode 100644
index 9ece636..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/FieldExtractor.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-package org.rhq.enterprise.server.plugins.rhnhosted.certificate;
-
-import org.jdom.Element;
-import org.jdom.JDOMException;
-
-/**
- * @author pkilambi
- *
- */
-/**
- * An interface to describe how a field is to be extracted from the DOM
- * representation of the XML rhq certificate
- */
-interface FieldExtractor {
-
- void extract(Certificate target, Element field) throws JDOMException;
-
- boolean isRequired();
-
- String getFieldName();
-
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/PublicKeyRing.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/PublicKeyRing.java
deleted file mode 100644
index ba45aee..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/PublicKeyRing.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-package org.rhq.enterprise.server.plugins.rhnhosted.certificate;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.security.KeyException;
-import java.security.NoSuchProviderException;
-import java.security.Security;
-import java.security.SignatureException;
-
-import org.bouncycastle.bcpg.ArmoredInputStream;
-import org.bouncycastle.jce.provider.BouncyCastleProvider;
-import org.bouncycastle.openpgp.PGPException;
-import org.bouncycastle.openpgp.PGPObjectFactory;
-import org.bouncycastle.openpgp.PGPPublicKey;
-import org.bouncycastle.openpgp.PGPPublicKeyRingCollection;
-import org.bouncycastle.openpgp.PGPSignature;
-import org.bouncycastle.openpgp.PGPSignatureList;
-import org.bouncycastle.openpgp.PGPUtil;
-
-/**
- * @author pkilambi
- * This module is taken from Satellite
- */
-/**
- * A GPG public keyring.
- *
- */
-public class PublicKeyRing {
-
- static {
- Security.addProvider(new BouncyCastleProvider());
- Security.addProvider(new RhnSecurityProvider());
- }
-
- private PGPPublicKeyRingCollection keyRing;
-
- /**
- * Read the key ring from <code>keyRingStream</code>.
- * @param keyRingStream the stream from which the key ring will be read
- * @throws IOException if reading the stream fails
- * @throws KeyException if the keyring can not be created from the stream
- */
- public PublicKeyRing(InputStream keyRingStream) throws IOException, KeyException {
- super();
- try {
- keyRing = new PGPPublicKeyRingCollection(PGPUtil
- .getDecoderStream(keyRingStream));
- }
- catch (PGPException e) {
- // We recast this as a KeyException so that we don't leak
- // any dependency on bouncycastle here
- throw (KeyException) new KeyException("Reading the keyring failed - " +
- e.getMessage()).initCause(e);
- }
- }
-
- /**
- * Verify that <code>asciiSig</code> is a valid signature for
- * <code>message</code> using this key ring.
- *
- * @param message the cleartext message
- * @param asciiSig the ASCII armored sigature
- * @return <code>true</code> if the signature was generated from
- * <code>message</code> using one of the private keys corresponding to the
- * public keys on this key ring
- * @throws SignatureException if processing hte signature fails
- */
- public boolean verifySignature(String message, String asciiSig)
- throws SignatureException {
- PGPSignature sig = decodeSignature(asciiSig);
- PGPPublicKey key;
- boolean result;
- try {
- key = keyRing.getPublicKey(sig.getKeyID());
- sig.initVerify(key, RhnSecurityProvider.NAME);
- sig.update(message.getBytes());
-
- result = sig.verify();
- }
- catch (PGPException e) {
- // We recast this as a SignatureException so that we don't leak
- // any dependency on bouncycastle here
- throw (SignatureException) new SignatureException("Verification failed - " +
- e.getMessage()).initCause(e);
- }
- catch (NoSuchProviderException e) {
- // We define the provider in the static block. Something weird is
- // afoot
- throw (IllegalStateException) new IllegalStateException("The provider " +
- RhnSecurityProvider.NAME + " should be defined").initCause(e);
- }
- return result;
- }
-
- /**
- * Turn the ASCII armored signature <code>asciiSig</code> into a
- * <code>PGPSignature</code>
- * @param asciiSig an ASCII armored signature
- * @return the signature
- */
- private static PGPSignature decodeSignature(String asciiSig) {
- PGPSignature result;
- ByteArrayInputStream bais = new ByteArrayInputStream(asciiSig.getBytes());
- try {
- ArmoredInputStream ais = new ArmoredInputStream(bais);
- try {
- InputStream in = PGPUtil.getDecoderStream(ais);
- try {
- result = ((PGPSignatureList) new PGPObjectFactory(in).nextObject()).get(0);
- } finally {
- in.close();
- }
- } finally {
- ais.close();
- }
- }
- catch (IOException e) {
- // This is so unlikely that we convert it to a runtime exception
- throw (IllegalArgumentException) new IllegalArgumentException(
- "The string asciiSig is not a valid signature").initCause(e);
- }
- return result;
- }
-
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/RhnSecurityProvider.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/RhnSecurityProvider.java
deleted file mode 100644
index 207110a..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/RhnSecurityProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-package org.rhq.enterprise.server.plugins.rhnhosted.certificate;
-
-import java.security.Provider;
-
-import org.bouncycastle.crypto.digests.RIPEMD160Digest;
-import org.bouncycastle.crypto.signers.DSASigner;
-import org.bouncycastle.jce.provider.JDKDSASigner;
-import org.bouncycastle.jce.provider.JDKKeyFactory;
-/**
- * @author pkilambi
- * This module is taken from Satellite
- */
-/**
- * This JCE provider exists solely to hack around the fact that the bouncycastle
- * provider does not offer <code>RIPEMD160 + DSA</code> signature processing. It
- * cobbles the existing bits from bouncycastle together to add processing of
- * these signatures.
- *
- */
-final class RhnSecurityProvider extends Provider {
-
- /**
- * The name under which this provider registers
- */
- public static final String NAME = "RHNSP";
- private static final String INFO = "RHN Security Provider (provides RIPEMD160WithDSA signatures)";
-
- /**
- * Create the provider
- */
- public RhnSecurityProvider() {
- super(NAME, 1.0, INFO);
- put("KeyFactory.DSA", JDKKeyFactory.DSA.class.getName());
- put("Signature.RIPEMD160WithDSA", RIPEMD160WithDSA.class.getName());
- }
-
- /**
- * The signer that combines <code>RIPEMD160</code> hashing with DSA signing.
- */
- public static class RIPEMD160WithDSA extends JDKDSASigner {
-
- public RIPEMD160WithDSA() {
- super(new RIPEMD160Digest(), new DSASigner());
- }
-
- }
-
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/SimpleExtractor.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/SimpleExtractor.java
deleted file mode 100644
index 49f83e7..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/SimpleExtractor.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.rhq.enterprise.server.plugins.rhnhosted.certificate;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.apache.commons.beanutils.BeanUtils;
-import org.apache.commons.beanutils.PropertyUtils;
-import org.jdom.Element;
-import org.jdom.JDOMException;
-
-/**
- * @author pkilambi
- *
- */
-/**
- * SimpleExtractor
- */
-class SimpleExtractor implements FieldExtractor {
-
- private String fieldName;
- private String propertyName;
- private boolean required;
-
- public SimpleExtractor(String name) {
- this(name, name, false);
- }
-
- public SimpleExtractor(String fieldName0, String propertyName0) {
- this(fieldName0, propertyName0, false);
- }
-
- public SimpleExtractor(String name, boolean required0) {
- this(name, name, required0);
- }
-
- /**
- *
- */
- public SimpleExtractor(String fieldName0, String propertyName0, boolean required0) {
- fieldName = fieldName0;
- propertyName = propertyName0;
- required = required0;
- }
-
- /**
- * {@inheritDoc}
- * @throws JDOMException
- */
- public void extract(Certificate target, Element field) throws JDOMException {
- if (!PropertyUtils.isWriteable(target, propertyName)) {
- throw new JDOMException("Property " + propertyName +
- " is not writable in target " + target);
- }
-
- try {
- BeanUtils.setProperty(target, propertyName, field.getTextTrim());
- }
- catch (IllegalAccessException e) {
- throw new JDOMException("Could not set value of property " + propertyName, e);
- }
- catch (InvocationTargetException e) {
- throw new JDOMException("Could not set value of property " + propertyName, e);
- }
- }
-
- /**
- * {@inheritDoc}
- */
- public boolean isRequired() {
- return required;
- }
-
- /**
- * {@inheritDoc}
- */
- public String getFieldName() {
- return fieldName;
- }
-
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/XmlTag.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/XmlTag.java
deleted file mode 100644
index 73704d9..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/certificate/XmlTag.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-package org.rhq.enterprise.server.plugins.rhnhosted.certificate;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-/**
- * @author pkilambi
- *
- */
-/**
- * XmlTag a simple class to render an XML tag
- */
-public class XmlTag {
-
- private String tag;
- private Map attribs;
- private List body;
- private boolean spaceBeforeEndTag;
- private List keys;
-
- /**
- * Standard xml header with utf-8 encoding. Example usage:<br />
- * <code>
- * StringBuffer buf = new StringBuffer();
- * buf.append(XmlTag.XML_HDR_UTF8);
- * buf.append(new XmlTag("foo").render());
- * </code>
- */
- public static final String XML_HDR_UTF8 = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
-
- /**
- * Standard xml header with no encoding. Example usage:<br />
- * <code>
- * StringBuffer buf = new StringBuffer();
- * buf.append(XmlTag.XML_HDR);
- * buf.append(new XmlTag("foo").render());
- * </code>
- */
- public static final String XML_HDR = "<?xml version=\"1.0\"?>";
-
- /**
- * Public constructor
- * @param tagIn the name of the tag
- */
- protected XmlTag(String tagIn) {
- this(tagIn, true);
- }
-
- /**
- * Constructs an XmlTag. The <code>spaceBefore</code> attribute controls
- * whether a space is inserted before the closing tag of a single line
- * element.<br />
- * For example, a true value for spaceBefore and a tagIn of "foo" will
- * render <foo />. A spaceBefore value of false would've rendered
- * <foo/>.
- * @param tagIn the name of the tag
- * @param spaceBefore true if you want a space before the closing tag.
- */
-
- protected XmlTag(String tagIn, boolean spaceBefore) {
- attribs = new HashMap();
- tag = tagIn;
- body = new ArrayList();
- keys = new ArrayList();
- spaceBeforeEndTag = spaceBefore;
- }
-
- /**
- * set an attribute of the html tag
- * @param name the attribute name
- * @param value the attribute value
- */
- public void setAttribute(String name, String value) {
- attribs.put(name, value);
- keys.add(name);
- }
-
- /**
- * Removes an attribute of the html tag.
- * @param name the attribute name to be removed.
- */
- public void removeAttribute(String name) {
- attribs.remove(name);
- keys.remove(name);
- }
-
- /**
- * set the body of the tag
- * @param bodyIn the new body
- */
- public void addBody(String bodyIn) {
- body.add(bodyIn);
- }
-
- /**
- * Adds the given tag to the body of this tag.
- * @param bodyTag Tag to be added to the body of this tag.
- */
- public void addBody(XmlTag bodyTag) {
- body.add(bodyTag);
- }
-
- /**
- * render the tag into a string
- * @return the string version
- */
- public String render() {
- StringBuffer ret = new StringBuffer();
- ret.append(renderOpenTag());
- if (!hasBody()) {
- ret.deleteCharAt(ret.length() - 1);
- if (spaceBeforeEndTag) {
- ret.append(" />");
- }
- else {
- ret.append("/>");
- }
- }
- else {
- ret.append(renderBody());
- ret.append(renderCloseTag());
- }
- return ret.toString();
- }
-
- /**
- * render the open tag and attributes
- * @return the open tag as a string
- */
- public String renderOpenTag() {
- StringBuffer ret = new StringBuffer("<");
- ret.append(tag);
-
- Iterator i = keys.iterator();
- while (i.hasNext()) {
- String attrib = (String) i.next();
- ret.append(" ");
- ret.append(attrib);
- ret.append("=\"");
- ret.append((String) attribs.get(attrib));
- ret.append("\"");
- }
- ret.append(">");
-
- return ret.toString();
- }
-
- /**
- * render the tag body
- * @return the tag body as a string
- */
- public String renderBody() {
- StringBuffer buf = new StringBuffer();
-
- for (Iterator itr = body.iterator(); itr.hasNext();) {
- buf.append(convertToString(itr.next()));
- }
-
- return buf.toString();
- }
-
- private String convertToString(Object o) {
- if (o instanceof XmlTag) {
- return ((XmlTag) o).render();
- }
- else if (o instanceof String) {
- return (String) o;
- }
- else {
- return o.toString();
- }
- }
-
- /**
- * render the close tag
- * @return the close tag as a string
- */
- public String renderCloseTag() {
- return "</" + tag + ">";
- }
-
- /**
- * Returns true if this tag has a body defined.
- * @return true if this tag has a body defined.
- */
- public boolean hasBody() {
- return (body.size() > 0);
- }
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/ApacheXmlRpcExecutor.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/ApacheXmlRpcExecutor.java
deleted file mode 100644
index 004608a..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/ApacheXmlRpcExecutor.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-package org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc;
-
-import java.util.List;
-
-import org.apache.xmlrpc.XmlRpcException;
-import org.apache.xmlrpc.client.XmlRpcClient;
-
-public class ApacheXmlRpcExecutor implements XmlRpcExecutor {
-
- private XmlRpcClient client;
-
- public ApacheXmlRpcExecutor(XmlRpcClient clientIn) {
- this.client = clientIn;
- }
-
- public Object execute(String methodName, Object[] params) throws XmlRpcException {
- return client.execute(methodName, params);
- }
-
- public Object execute(String pMethodName, List pParams) throws XmlRpcException {
- return client.execute(pMethodName, pParams);
- }
-
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/CustomReqPropTransport.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/CustomReqPropTransport.java
deleted file mode 100644
index 475cebc..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/CustomReqPropTransport.java
+++ /dev/null
@@ -1,174 +0,0 @@
-package org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.xmlrpc.XmlRpcException;
-import org.apache.xmlrpc.client.XmlRpcClient;
-import org.apache.xmlrpc.common.XmlRpcStreamRequestConfig;
-
-public class CustomReqPropTransport extends RhnSSLTransport {
-
- private final Log log = LogFactory.getLog(CustomReqPropTransport.class);
- protected Map<String, String> reqProps;
- protected boolean dumpMessageToFile; // used during debug to save a copy of the data received
- protected String dumpFilePath;
- protected String PROP_NAME_TO_SAVE_TEMP_FILES = "RhnXMLRPCSaveTempFiles";
-
- public CustomReqPropTransport(XmlRpcClient pClient) {
- super(pClient);
- }
-
- public void setDumpMessageToFile(boolean dump) {
- dumpMessageToFile = dump;
- }
-
- public boolean getDumpMessageToFile() {
- return dumpMessageToFile;
- }
-
- public void setDumpFilePath(String dumpPath) {
- dumpFilePath = dumpPath;
- }
-
- public String getDumpFilePath() {
- return dumpFilePath;
- }
-
- public void setRequestProperties(Map props) {
- reqProps = props;
- }
-
- public Map<String, String> getRequestProperties() {
- return reqProps;
- }
-
- public void setRequestProperty(String name, String value) {
- if (reqProps == null) {
- reqProps = new HashMap<String, String>();
- }
- reqProps.put(name, value);
- }
-
- public String getRequestProperty(String name, String value) {
- return (String) reqProps.get(name);
- }
-
- protected URLConnection newURLConnection(URL pURL) throws IOException {
- URLConnection conn = super.newURLConnection(pURL);
- if (reqProps != null) {
- for (String key : reqProps.keySet()) {
- conn.addRequestProperty(key, reqProps.get(key));
- }
- }
- return conn;
- }
-
- protected File cacheResponseToFile(InputStream inStream) throws XmlRpcException {
- //
- // We will read the response and write it to a file. Prior approach read all data in memory and parsed it.
- // This created a problem when retrieving package details for large package lists of 6000+ packages.
- // We were seeing out of memory exceptions,
- // estimate on "rhel-i386-server-5" are 6200+ packages, metadata size written to disk in xml is 1.1GB
- //
- File tempFile = null;
- BufferedOutputStream outStream = null;
- try {
- if (!StringUtils.isBlank(dumpFilePath)) {
- // dumpFilePath was specified so use that, even though we may be over-writing it
- tempFile = new File(dumpFilePath);
- } else {
- tempFile = File.createTempFile("RHQ-rhn-xmlrpc-output", ".tmp");
- }
- outStream = new BufferedOutputStream(new FileOutputStream(tempFile, false));
- final byte[] buffer = new byte[0x100000];
-
- BufferedInputStream buffInStream = new BufferedInputStream(inStream);
-
- int read;
- do {
- //long startRead = System.currentTimeMillis();
- read = buffInStream.read(buffer, 0, buffer.length);
- //read = inStream.read(buffer, 0, buffer.length);
- if (read > 0) {
- //long endRead = System.currentTimeMillis();
- //log.debug("Read " + read + " bytes took " + (endRead - startRead) + "ms");
- //long startWrite = System.currentTimeMillis();
- outStream.write(buffer, 0, read);
- //long endWrite = System.currentTimeMillis();
- //log.debug("Wrote " + read + " bytes in " + (endWrite - startWrite) + "ms");
- }
- } while (read >= 0);
- } catch (Exception e) {
- log.warn("RhnJaxbTransport readResponse exception", e);
- throw new XmlRpcException(e.getMessage());
- } finally {
- try {
- if (outStream != null) {
- outStream.close();
- outStream = null;
- }
- } catch (Exception e) {
- ; //ignore exceptions from close
- }
- }
- return tempFile;
- }
-
- protected Object readResponse(XmlRpcStreamRequestConfig pConfig, InputStream pStream) throws XmlRpcException {
-
- // During debug modes we may want to cache all the input to a file
- if (dumpMessageToFile) {
- InputStream dataStream = null;
- try {
- File tempFile = cacheResponseToFile(pStream);
- dataStream = new FileInputStream(tempFile);
- return super.readResponse(pConfig, dataStream);
- } catch (FileNotFoundException e) {
-
- } finally {
- if (dataStream != null) {
- try {
- dataStream.close();
- } catch (Exception e) {
- ;//ignore
- }
- }
- }
- }
- // we aren't writing the data to a file
- return super.readResponse(pConfig, pStream);
- }
-
- protected boolean doWeDeleteTempFile(File f) {
- // Check basic file access to ensure we could delete the file
- if (!f.exists() || f.isDirectory() || !f.canWrite()) {
- return false;
- }
- // If we set dumpMessageToFile, then we obviously don't want to delete it
- if (dumpMessageToFile) {
- return false;
- }
- // Check our System Prop to see if maybe we are debugging and want to keep temp files.
- String value = System.getProperty(PROP_NAME_TO_SAVE_TEMP_FILES);
- if (!StringUtils.isBlank(value)) {
- if (Boolean.parseBoolean(value)) {
- return false;
- }
- }
- return true;
- }
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/CustomReqPropTransportFactory.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/CustomReqPropTransportFactory.java
deleted file mode 100644
index f30ae78..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/CustomReqPropTransportFactory.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.commons.lang.StringUtils;
-import org.apache.xmlrpc.client.XmlRpcClient;
-import org.apache.xmlrpc.client.XmlRpcTransport;
-
-public class CustomReqPropTransportFactory extends RhnSSLTransportFactory {
-
- protected Map reqProps;
- protected boolean dumpMessageToFile;
- protected String dumpMessagePath;
- protected String PROP_NAME_SAVE_XML_TO_FILE = "RhnXmlrpcSaveTempFiles";
-
- /**
- * Creates a new factory, which creates transports for the given client.
- * @param pClient The client, which is operating the factory.
- */
- public CustomReqPropTransportFactory(XmlRpcClient pClient) {
- super(pClient);
- String value = System.getProperty(PROP_NAME_SAVE_XML_TO_FILE);
- if (!StringUtils.isBlank(value)) {
- dumpMessageToFile = Boolean.parseBoolean(value);
- }
- }
-
- public void setRequestProperties(Map props) {
- reqProps = props;
- }
-
- public Map<String, String> getRequestProperties() {
- return reqProps;
- }
-
- public void setRequestProperty(String name, String value) {
- if (reqProps == null) {
- reqProps = new HashMap<String, String>();
- }
- reqProps.put(name, value);
- }
-
- public String getRequestProperty(String name, String value) {
- return (String) reqProps.get(name);
- }
-
- public void setDumpMessageToFile(boolean dump) {
- dumpMessageToFile = dump;
- }
-
- public boolean getDumpMessageToFile() {
- return dumpMessageToFile;
- }
-
- public void setDumpFilePath(String dumpPath) {
- dumpMessagePath = dumpPath;
- }
-
- public String getDumpFilePath() {
- return dumpMessagePath;
- }
-
- /**
- * Override to specify a different Transport
- * */
- protected CustomReqPropTransport newTransportInstance() {
- return new CustomReqPropTransport(getClient());
- }
-
- public XmlRpcTransport getTransport() {
- CustomReqPropTransport transport = newTransportInstance();
- if (reqProps != null) {
- transport.setRequestProperties(reqProps);
- }
- transport.setSSLSocketFactory(getSSLSocketFactory());
- transport.setProxy(getProxy());
- transport.setDumpMessageToFile(dumpMessageToFile);
- transport.setDumpFilePath(dumpMessagePath);
- return transport;
- }
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnComm.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnComm.java
deleted file mode 100644
index 0ddf65f..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnComm.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc;
-
-import java.io.IOException;
-import java.util.List;
-
-import javax.xml.bind.JAXBElement;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.xmlrpc.XmlRpcException;
-
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnChannelFamilyType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnChannelType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnErratumType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnKickstartableTreeType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnPackageShortType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnPackageType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnProductNameType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnSatelliteType;
-
-public class RhnComm {
- private final Log log = LogFactory.getLog(RhnComm.class);
- protected XmlRpcExecutor satHandler;
- protected XmlRpcExecutor dumpHandler;
- protected String serverUrl;
- protected String SAT_HANDLER = "/SAT";
- protected String SATDUMP_HANDLER = "/SAT-DUMP";
-
- public RhnComm(String serverUrlIn) {
- serverUrl = serverUrlIn;
- satHandler = XmlRpcExecutorFactory.getJaxbClient(serverUrl + SAT_HANDLER);
- dumpHandler = XmlRpcExecutorFactory.getJaxbClient(serverUrl + SATDUMP_HANDLER);
- }
-
- public boolean checkSystemId(String systemId) throws IOException, XmlRpcException {
- Object[] params = new Object[] { systemId };
-
- log.debug("checkSystemId() systemId used is " + systemId);
- Integer result = (Integer) satHandler.execute("authentication.check", params);
- if (result == 1) {
- return true;
- } else {
- return false;
- }
- }
-
- public List<RhnProductNameType> getProductNames(String systemId) throws IOException, XmlRpcException {
- Object[] params = new Object[] { systemId };
-
- log.debug("getProductNames()");
- JAXBElement<RhnSatelliteType> result = (JAXBElement) dumpHandler.execute("dump.product_names", params);
- RhnSatelliteType sat = result.getValue();
- List<RhnProductNameType> names = sat.getRhnProductNames().getRhnProductName();
- return names;
- }
-
- public List<RhnChannelFamilyType> getChannelFamilies(String systemId) throws IOException, XmlRpcException {
- Object[] params = new Object[] { systemId };
-
- log.debug("getChannelFamilies()");
- JAXBElement<RhnSatelliteType> result = (JAXBElement) dumpHandler.execute("dump.channel_families", params);
- RhnSatelliteType sat = result.getValue();
- List<RhnChannelFamilyType> families = sat.getRhnChannelFamilies().getRhnChannelFamily();
- return families;
- }
-
- public List<RhnChannelType> getChannels(String systemId, List<String> channelLabels) throws IOException,
- XmlRpcException {
-
- log.debug("getChannels(" + channelLabels + ")");
- Object[] params = new Object[] { systemId, channelLabels };
- JAXBElement<RhnSatelliteType> result = (JAXBElement) dumpHandler.execute("dump.channels", params);
- RhnSatelliteType sat = result.getValue();
- List<RhnChannelType> channels = sat.getRhnChannels().getRhnChannel();
- return channels;
- }
-
- public List<RhnPackageShortType> getPackageShortInfo(String systemId, List<String> pkgIds) throws IOException,
- XmlRpcException {
-
- log.debug("getPackageShortInfo() passed in package id list has " + pkgIds.size() + " entries");
- Object[] params = new Object[] { systemId, pkgIds };
- JAXBElement<RhnSatelliteType> result = (JAXBElement) dumpHandler.execute("dump.packages_short", params);
- RhnSatelliteType sat = result.getValue();
- List<RhnPackageShortType> pkgs = sat.getRhnPackagesShort().getRhnPackageShort();
- return pkgs;
- }
-
- public List<RhnPackageType> getPackageMetadata(String systemId, List<String> pkgIds) throws IOException,
- XmlRpcException {
-
- log.debug("getPackageMetadata() passed in package id list has " + pkgIds.size() + " entries");
- Object[] params = new Object[] { systemId, pkgIds };
- JAXBElement<RhnSatelliteType> result = (JAXBElement) dumpHandler.execute("dump.packages", params);
- RhnSatelliteType sat = result.getValue();
- List<RhnPackageType> pkgs = sat.getRhnPackages().getRhnPackage();
- return pkgs;
- }
-
- public List<RhnKickstartableTreeType> getKickstartTreeMetadata(String systemId, List<String> ksLabels)
- throws IOException, XmlRpcException {
-
- log.debug("getKickstartTreeMetadata(" + ksLabels + ")");
- Object[] params = new Object[] { systemId, ksLabels };
- JAXBElement<RhnSatelliteType> result = (JAXBElement) dumpHandler.execute("dump.kickstartable_trees", params);
- RhnSatelliteType sat = result.getValue();
- return sat.getRhnKickstartableTrees().getRhnKickstartableTree();
- }
-
- public List<RhnErratumType> getErrataMetadata(String systemId, List<String> erratumIds) throws IOException,
- XmlRpcException {
-
- log.debug("getErratum(" + erratumIds + ")");
- Object[] params = new Object[] { systemId, erratumIds };
- JAXBElement<RhnSatelliteType> result = (JAXBElement) dumpHandler.execute("dump.errata", params);
- RhnSatelliteType sat = result.getValue();
- return sat.getRhnErrata().getRhnErratum();
- }
-
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnDownloader.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnDownloader.java
deleted file mode 100644
index c0b0497..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnDownloader.java
+++ /dev/null
@@ -1,179 +0,0 @@
-package org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.xmlrpc.XmlRpcException;
-
-import org.rhq.enterprise.server.plugins.rhnhosted.RHNConstants;
-
-public class RhnDownloader {
- private final Log log = LogFactory.getLog(RhnDownloader.class);
- protected XmlRpcExecutor satHandler;
- protected String serverUrl;
- protected String SAT_HANDLER = "/SAT";
- protected String sslCertPath;
- protected Map<String, Map> cachedAuthMap;
- protected final String RHN_AUTH_EXPIRE_OFFSET = "X-RHN-Auth-Expire-Offset";
- protected final String RHN_AUTH_SERVER_TIME = "X-RHN-Auth-Server-Time";
- protected final String RHN_AUTH = "X-RHN-Auth";
- protected final String RHQ_CACHED_TIME = "RHQ-Time-Auth-Cached";
-
- public RhnDownloader(String serverUrlIn, String sslCertPathIn) {
- serverUrl = serverUrlIn;
- satHandler = XmlRpcExecutorFactory.getClient(serverUrl + SAT_HANDLER);
- sslCertPath = sslCertPathIn;
- cachedAuthMap = new HashMap<String, Map>();
- }
-
- public RhnDownloader(String serverUrlIn) {
- this(serverUrlIn, RHNConstants.DEFAULT_SSL_CERT_PATH);
- }
-
- public String getServerUrl() {
- return this.serverUrl;
- }
-
- public void setSSLCertPath(String sslCertPathIn) {
- sslCertPath = sslCertPathIn;
- }
-
- public String getSSLCertPath() {
- return sslCertPath;
- }
-
- protected HttpURLConnection getNewConnection(String urlIn) throws IOException {
- return (HttpURLConnection) RhnHttpURLConnectionFactory.openConnection(new URL(urlIn), sslCertPath);
- }
-
- protected boolean verifyAuthMap(Map authProps) {
- if (authProps.containsKey(RHN_AUTH_EXPIRE_OFFSET) == false) {
- log.info("Invalid cached auth, No key for " + RHN_AUTH_EXPIRE_OFFSET + " present.");
- return false;
- }
- if (authProps.containsKey(RHN_AUTH_SERVER_TIME) == false) {
- log.info("Invalid cached auth, No key for " + RHN_AUTH_SERVER_TIME + " present.");
- return false;
- }
- if (authProps.containsKey(RHN_AUTH) == false) {
- log.info("Invalid cached auth, No key for " + RHN_AUTH + " present.");
- return false;
- }
- if (authProps.containsKey(RHQ_CACHED_TIME) == false) {
- log.info("Invalid cached auth, No key for " + RHQ_CACHED_TIME + " present.");
- return false;
- }
- long cachedTime = (Long) authProps.get(RHQ_CACHED_TIME);
- long expireOffset = Float.valueOf((String) authProps.get(RHN_AUTH_EXPIRE_OFFSET)).longValue();
- long expireTime = cachedTime + (expireOffset * 1000); //remember to convert offset from seconds to milliseconds
- long currentTime = System.currentTimeMillis();
- log.debug("Current time = " + currentTime + ", This Authentication map was cached at: " + cachedTime
- + " and will expire at " + expireTime);
- if (currentTime >= expireTime) {
- log.debug("Cached authentication is invalid, time has expired: Current time is: " + currentTime
- + ", expireTime = " + expireTime);
- return false;
- }
- return true;
- }
-
- public Map login(String systemId) throws IOException, XmlRpcException {
- return login(systemId, false);
- }
-
- /**
- * @param systemId systemid string contents
- * @param refresh true will cause a refresh of cached login info if any exists
- * @return Map with values for the keys:
- * X-RHN-Server-Id
- * X-RHN-Auth
- * X-RHN-Auth-User-Id
- * X-RHN-Auth-Expire-Offset
- * X-RHN-Auth-Server-Time
- */
- public Map login(String systemId, boolean refresh) throws IOException, XmlRpcException {
- Map result;
-
- if (refresh && cachedAuthMap.containsKey(systemId)) {
- log.info("login was invoked with refresh = true, therefore removing cached auth data.");
- cachedAuthMap.remove(systemId);
- }
-
- if (!refresh && cachedAuthMap.containsKey(systemId)) {
- result = (Map) cachedAuthMap.get(systemId);
- if (verifyAuthMap(result)) {
- log.debug("Using cached credentials");
- return result;
- }
- log.info("Removing cached authentication data because it is invalid");
- cachedAuthMap.remove(systemId);
- }
- log.info("Calling out to remote server for authentication.login info");
- Object[] params = new Object[] { systemId };
- result = (Map) satHandler.execute("authentication.login", params);
- // Record when we are caching this auth token
- result.put(RHQ_CACHED_TIME, Long.valueOf(System.currentTimeMillis()));
- log.info("Saving authentication data to map.");
- cachedAuthMap.put(systemId, result);
- return result;
- }
-
- public boolean checkAuth(String systemId) throws IOException, XmlRpcException {
- Object[] params = new Object[] { systemId };
- Integer result = (Integer) satHandler.execute("authentication.check", params);
- if (result.intValue() == 1) {
- return true;
- }
- return false;
- }
-
- /**
- * @param systemId string containing system id data
- * @param locationUrl url to fetch for package/file/etc
- * @return InputStream
- */
- public InputStream getFileStream(String systemId, String locationUrl) throws IOException, XmlRpcException {
- try {
- //
- // We are wrapping _getFileStream so we can catch an IOException and refresh our authentication credentials
- // After we have refreshed the login credentials, we'll re-try the _getFileStream call one more time
- //
- return _getFileStream(systemId, locationUrl);
- } catch (IOException e) {
- log.info("Caught exception: " + e.getMessage());
- log.info(e);
- log.info("Cached authentication might be invalid, will refresh login authentication and retry.");
- login(systemId, true);
- return _getFileStream(systemId, locationUrl);
- }
- }
-
- /**
- *
- * @param systemId
- * @param locationUrl
- * @return
- * @throws IOException
- * @throws XmlRpcException
- */
- protected InputStream _getFileStream(String systemId, String locationUrl) throws IOException, XmlRpcException {
-
- HttpURLConnection conn = getNewConnection(locationUrl);
- Map props = login(systemId);
- for (Object key : props.keySet()) {
- conn.setRequestProperty((String) key, props.get(key).toString());
- }
- conn.setRequestMethod("GET");
- conn.connect();
- InputStream in = conn.getInputStream();
-
- return in;
- }
-
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnHttpURLConnectionFactory.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnHttpURLConnectionFactory.java
deleted file mode 100644
index a7f51a8..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnHttpURLConnectionFactory.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc;
-
-import org.rhq.enterprise.server.util.MethodUtil;
-import org.rhq.enterprise.server.plugins.rhnhosted.RHNSSLSocketFactory;
-import org.rhq.enterprise.server.plugins.rhnhosted.RHNConstants;
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.logging.LogFactory;
-import org.apache.commons.logging.Log;
-
-import java.net.URL;
-import java.net.HttpURLConnection;
-import java.net.URLConnection;
-import java.io.IOException;
-import java.security.GeneralSecurityException;
-
-import javax.net.ssl.HttpsURLConnection;
-
-
-public class RhnHttpURLConnectionFactory {
-
- final public static String RHN_MOCK_HTTP_URL_CONNECTION = "RhnMockHttpUrlConnection";
- final private static Log log = LogFactory.getLog(RhnHttpURLConnectionFactory.class);
-
- protected static HttpURLConnection _openConnection(URL urlIn, String sslCertPathIn) throws IOException {
- URLConnection conn = urlIn.openConnection();
- if (conn instanceof HttpsURLConnection) {
- try
- {
- ((HttpsURLConnection)conn).setSSLSocketFactory(RHNSSLSocketFactory.getSSLSocketFactory(sslCertPathIn));
- }
- catch (GeneralSecurityException e)
- {
- e.printStackTrace();
- log.error(e);
- throw new IOException(e.getMessage());
- }
- log.debug("SSLSocketFactory has been set with a custom version using certPath: " + sslCertPathIn);
- }
- return (HttpURLConnection)conn;
- }
-
- public static HttpURLConnection openConnection(URL urlIn, String sslCertPathIn) throws IOException {
-
- String propMockHttpURLConn = System.getProperty(RHN_MOCK_HTTP_URL_CONNECTION);
- if (StringUtils.isBlank(propMockHttpURLConn)) {
- return _openConnection(urlIn, sslCertPathIn);
- }
- log.info("Using a Mock HttpURLConnection object, Property for RHN_MOCK_HTTP_URL_CONNECTION is " +
- propMockHttpURLConn);
- Object[] args = { urlIn };
- HttpURLConnection retval =
- (HttpURLConnection) MethodUtil.getClassFromSystemProperty(RHN_MOCK_HTTP_URL_CONNECTION, args);
- return retval;
- }
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnJaxbTransport.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnJaxbTransport.java
deleted file mode 100644
index 52214bc..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnJaxbTransport.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.xmlrpc.XmlRpcException;
-import org.apache.xmlrpc.client.XmlRpcClient;
-import org.apache.xmlrpc.common.XmlRpcStreamRequestConfig;
-import org.jdom.Document;
-import org.jdom.JDOMException;
-import org.jdom.input.SAXBuilder;
-
-public class RhnJaxbTransport extends CustomReqPropTransport {
-
- protected String jaxbDomain;
-
- private final Log log = LogFactory.getLog(RhnJaxbTransport.class);
-
- public RhnJaxbTransport(XmlRpcClient pClient) {
- super(pClient);
- }
-
- public void setJaxbDomain(String domain) {
- jaxbDomain = domain;
- }
-
- public String getJaxbDomain() {
- return jaxbDomain;
- }
-
- protected boolean isJaxbMessage(File message) {
- try {
- FileInputStream in = new FileInputStream(message);
- Document doc = new SAXBuilder().build(in);
- String name = doc.getRootElement().getName();
- log.info("Root element name is " + name);
- if (name.equalsIgnoreCase("rhn-satellite")) {
- return true;
- }
- } catch (JDOMException e) {
- log.error("isJaxbMessage()", e);
- } catch (IOException e) {
- log.error("isJaxbMessage()", e);
- }
-
- return false;
- }
-
- protected Object readResponse(XmlRpcStreamRequestConfig pConfig, InputStream pStream) throws XmlRpcException {
-
- log.debug("readResponse invoked");
-
- long start = System.currentTimeMillis();
- File tempFile = cacheResponseToFile(pStream);
- long end = System.currentTimeMillis();
- float bandwidth = (float) tempFile.length() / (1024);
- bandwidth = (bandwidth / (end - start)) * 1000;
- log.info("response cached " + ((float) tempFile.length() / 1024) + " KB in " + (end - start)
- + "ms. Estimated Bandwidth: " + bandwidth + " KB/sec");
-
- /**
- * Point of this method is to not require the traditional "methodResponse" xml wrapping
- * around the response. RHN just returns the pure XML data.
- *
- * For error conditions, RHN defaults back to using "methodResponse".
- * We need to check what the top element is. If it's "rhn-satellite" do JAXB parsing,
- * if it's "methodResponse" do traditional XMLRPC parsing.
- *
- * */
- FileInputStream dataStream = null;
- try {
- dataStream = new FileInputStream(tempFile);
- if (isJaxbMessage(tempFile) == false) {
- log.info("Message is not a JAXB element");
- return super.readResponse(pConfig, dataStream);
- }
-
- JAXBContext jc = JAXBContext.newInstance(jaxbDomain);
- Unmarshaller u = jc.createUnmarshaller();
- return u.unmarshal(dataStream);
- } catch (JAXBException e) {
- log.error(e);
- e.printStackTrace();
- throw new XmlRpcException(e.getMessage());
- } catch (IOException e) {
- log.error(e);
- e.printStackTrace();
- throw new XmlRpcException(e.getMessage());
- } finally {
- if (doWeDeleteTempFile(tempFile)) {
- log.info("Deleting temp file: " + tempFile.getAbsolutePath());
- tempFile.delete();
- } else {
- log.info("Temporary file of xmlrpc data is available at: " + tempFile.getAbsolutePath());
- }
- try {
- if (dataStream != null) {
- dataStream.close();
- }
- } catch (Exception e) {
- ; //ignore exception from close
- }
- }
- }
-
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnJaxbTransportFactory.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnJaxbTransportFactory.java
deleted file mode 100644
index eb588fa..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnJaxbTransportFactory.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc;
-
-import org.apache.xmlrpc.client.XmlRpcClient;
-
-public class RhnJaxbTransportFactory extends CustomReqPropTransportFactory {
- protected String jaxbDomain;
-
- /**
- * Creates a new factory, which creates transports for the given client.
- * @param pClient The client, which is operating the factory.
- */
- public RhnJaxbTransportFactory(XmlRpcClient pClient) {
- super(pClient);
- }
-
- public void setJaxbDomain(String domain) {
- jaxbDomain = domain;
- }
-
- public String getJaxbDomain() {
- return jaxbDomain;
- }
-
- protected CustomReqPropTransport newTransportInstance() {
- RhnJaxbTransport transport = new RhnJaxbTransport(getClient());
- transport.setJaxbDomain(jaxbDomain);
- return transport;
- }
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnSSLTransport.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnSSLTransport.java
deleted file mode 100644
index 5fa8a63..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnSSLTransport.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc;
-
-import java.security.GeneralSecurityException;
-import java.net.URLConnection;
-import java.net.URL;
-import java.io.IOException;
-
-import javax.net.ssl.HttpsURLConnection;
-
-import org.apache.commons.logging.LogFactory;
-import org.apache.commons.logging.Log;
-import org.apache.xmlrpc.client.XmlRpcClient;
-import org.apache.xmlrpc.client.XmlRpcSun15HttpTransport;
-import org.rhq.enterprise.server.plugins.rhnhosted.RHNSSLSocketFactory;
-import org.rhq.enterprise.server.plugins.rhnhosted.RHNConstants;
-
-public class RhnSSLTransport extends XmlRpcSun15HttpTransport
-{
- private final Log log = LogFactory.getLog(RhnSSLTransport.class);
- private String sslCertPath = RHNConstants.DEFAULT_SSL_CERT_PATH;
-
- /**
- * Creates a new instance.
- * @param pClient The client controlling this instance.
- */
- public RhnSSLTransport(XmlRpcClient pClient) {
- super(pClient);
- }
-
- public void setSSLCertPath(String path) {
- sslCertPath = path;
- }
-
- public String getSSLCertPath() {
- return sslCertPath;
- }
-
- @Override
- protected URLConnection newURLConnection(URL url) throws IOException
- {
- URLConnection c = super.newURLConnection(url);
- if (c instanceof HttpsURLConnection) {
- try
- {
- ((HttpsURLConnection)c).setSSLSocketFactory(RHNSSLSocketFactory.getSSLSocketFactory(sslCertPath));
- }
- catch (GeneralSecurityException e)
- {
- e.printStackTrace();
- log.error(e);
- throw new IOException(e.getMessage());
- }
- log.debug("SSLSocketFactory has been set with a custom version using cert path: " + sslCertPath);
- }
- return c;
- }
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnSSLTransportFactory.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnSSLTransportFactory.java
deleted file mode 100644
index 144a15d..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnSSLTransportFactory.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc;
-
-import java.net.Proxy;
-
-import org.apache.xmlrpc.client.XmlRpcClient;
-import org.apache.xmlrpc.client.XmlRpcSun15HttpTransportFactory;
-import org.apache.xmlrpc.client.XmlRpcTransport;
-import org.apache.xmlrpc.client.XmlRpcSun15HttpTransport;
-import org.rhq.enterprise.server.plugins.rhnhosted.RHNConstants;
-
-
-public class RhnSSLTransportFactory extends XmlRpcSun15HttpTransportFactory
-{
- protected String sslCertPath = RHNConstants.DEFAULT_SSL_CERT_PATH;
- /**
- * Creates a new factory, which creates transports for the given client.
- * @param pClient The client, which is operating the factory.
- */
- public RhnSSLTransportFactory(XmlRpcClient pClient) {
- super(pClient);
- }
-
- /**
- * Override to specify a different Transport
- * */
- protected RhnSSLTransport newTransportInstance() {
- return new RhnSSLTransport(getClient());
- }
-
- public void setSSLCert(String certPath) {
- sslCertPath = certPath;
- }
-
- public String getSSLCert(String certPath) {
- return sslCertPath;
- }
-
- /**
- * We can't access the proxy member directly from our super class
- * so we are grabbing it from the transport instance.
- * Would prefer if XmlRpcSun15HttpTransportFactory had a getProxy method
- * */
- protected Proxy getProxy() {
- XmlRpcSun15HttpTransport hackGetProxy = (XmlRpcSun15HttpTransport)super.getTransport();
- return hackGetProxy.getProxy();
- }
-
- @Override
- public XmlRpcTransport getTransport()
- {
- RhnSSLTransport transport = new RhnSSLTransport(getClient());
- transport.setSSLSocketFactory(getSSLSocketFactory());
- transport.setProxy(getProxy());
- transport.setSSLCertPath(sslCertPath);
- return transport;
- }
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/XmlRpcExecutor.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/XmlRpcExecutor.java
deleted file mode 100644
index 721b350..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/XmlRpcExecutor.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-package org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc;
-
-import java.util.List;
-
-import org.apache.xmlrpc.XmlRpcException;
-
-public interface XmlRpcExecutor {
-
- /**
- * Execute an XMLRPC method
- * @param methodName
- * @param params
- * @return
- */
- public Object execute(String methodName, Object[] params) throws XmlRpcException;
-
- /** Performs a request with the clients default configuration.
- * @param pMethodName The method being performed.
- * @param pParams The parameters.
- * @return The result object.
- * @throws XmlRpcException Performing the request failed.
- */
- public Object execute(String pMethodName, List pParams) throws XmlRpcException;
-
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/XmlRpcExecutorFactory.java b/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/XmlRpcExecutorFactory.java
deleted file mode 100644
index 01b03fd..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/XmlRpcExecutorFactory.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-package org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.xmlrpc.client.XmlRpcClient;
-import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
-
-import org.rhq.enterprise.server.plugins.rhnhosted.RHNConstants;
-import org.rhq.enterprise.server.util.MethodUtil;
-
-/**
- * Class responsible for handing out XmlRpcClient classes, either real or mocked.
- */
-public class XmlRpcExecutorFactory {
-
- protected static String XML_DUMP_VERSION = "3.3";
- protected static String sslCertPath = RHNConstants.DEFAULT_SSL_CERT_PATH;
-
- private static XmlRpcExecutor getExecutor(XmlRpcClient wrappedClient) {
- Object[] args = { wrappedClient };
- XmlRpcExecutor retval = (XmlRpcExecutor) MethodUtil.getClassFromSystemProperty(ApacheXmlRpcExecutor.class
- .getName(), args);
- return retval;
- }
-
- public static XmlRpcExecutor getJaxbClient(String url) {
- return getJaxbClient(url, sslCertPath);
- }
-
- public static XmlRpcExecutor getJaxbClient(String url, String sslCertPathIn) {
- XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
-
- try {
- config.setServerURL(new URL(url));
- } catch (MalformedURLException e) {
- throw new RuntimeException(e);
- }
-
- XmlRpcClient client = new XmlRpcClient();
- client.setConfig(config);
- RhnJaxbTransportFactory transportFactory = new RhnJaxbTransportFactory(client);
- transportFactory.setRequestProperties(getRequestProperties());
- transportFactory.setJaxbDomain("org.rhq.enterprise.server.plugins.rhnhosted.xml");
- transportFactory.setSSLCert(sslCertPathIn);
- client.setTransportFactory(transportFactory);
- return getExecutor(client);
- }
-
- public static XmlRpcExecutor getClient(String url) {
- return getClient(url, sslCertPath);
- }
-
- public static XmlRpcExecutor getClient(String url, String sslCertPathIn) {
- XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
-
- try {
- config.setServerURL(new URL(url));
- } catch (MalformedURLException e) {
- throw new RuntimeException(e);
- }
-
- XmlRpcClient client = new XmlRpcClient();
- client.setConfig(config);
- CustomReqPropTransportFactory transportFactory = new CustomReqPropTransportFactory(client);
- transportFactory.setRequestProperties(getRequestProperties());
- transportFactory.setSSLCert(sslCertPathIn);
- client.setTransportFactory(transportFactory);
-
- return getExecutor(client);
- }
-
- public static Map getRequestProperties() {
- Map reqProps = new HashMap();
- reqProps.put("X-RHN-Satellite-XML-Dump-Version", XML_DUMP_VERSION);
- return reqProps;
- }
-
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/resources/META-INF/rhq-serverplugin.xml b/modules/enterprise/server/plugins/rhnhosted/src/main/resources/META-INF/rhq-serverplugin.xml
deleted file mode 100644
index bf87c37..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/resources/META-INF/rhq-serverplugin.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<content-plugin name="RHNHostedPlugin"
- displayName="Red Hat Network Content"
- description="Provides the ability to obtain content from Red Hat Network"
- xmlns="urn:xmlns:rhq-serverplugin.content"
- xmlns:serverplugin="urn:xmlns:rhq-serverplugin"
- xmlns:c="urn:xmlns:rhq-configuration">
-
- <serverplugin:help><![CDATA[
- Provides a content source that retrieves content from the Red Hat Network (RHN).
- ]]></serverplugin:help>
-
- <contentSourceType name="RHNSource"
- displayName="RHN Hosted Content Source"
- description="This plugin facilitates communication with Red Hat Network."
- lazyLoad="false"
- downloadMode="filesystem"
- apiClass="org.rhq.enterprise.server.plugins.rhnhosted.RHNProvider">
-
- <configuration>
- <c:simple-property
- name="location"
- type="string"
- required="true"
- default="http://satellite.rhn.redhat.com/"
- description="RHN Hosted server url for connection."/>
-
- <c:simple-property
- name="certificate"
- type="longString"
- required="true"
- description="RHQ subscription Certificate for activation ."/>
-
- <!--<c:group name="repos" displayName="repo list">
- <c:simple-property name="repos" type="string" default="rhn-tools-rhel-i386-server-5"/>
- </c:group>-->
- </configuration>
-
- </contentSourceType>
-
-</content-plugin>
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/genSchema.sh b/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/genSchema.sh
deleted file mode 100755
index 56140e2..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/genSchema.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#Script relies on: apache project xmlbeans
-#http://xmlbeans.apache.org/sourceAndBinaries/index.html
-
-/opt/xmlbeans-2.4.0/bin/inst2xsd -design vb -simple-content-types string -enumerations never ./sample/*.xml
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.channel_families.xml b/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.channel_families.xml
deleted file mode 100644
index 498e5c7..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.channel_families.xml
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><rhn-satellite generation="2" version="3.4"><rhn-channel-families><rhn-channel-family channel-labels="redhat-linux-i386-6.2 redhat-linux-alpha-6.2 redhat-linux-sparc-6.2 redhat-powertools-i386-6.2 redhat-powertools-alpha-6.2 redhat-powertools-sparc-6.2 redhat-linux-i386-7.0 redhat-linux-alpha-7.0 redhat-powertools-i386-7.0 redhat-powertools-alpha-7.0 redhat-linux-i386-7.1 redhat-linux-alpha-7.1 redhat-powertools-i386-7.1 redhat-powertools-alpha-7.1 redhat-linux-ee-i386-6.2 redhat-linux-s390x-7.1 redhat-linux-i386-7.2 redhat-linux-ia64-7.2 redhat-linux-s390-7.2 redhat-linux-i386-7.3 redhat-linux-i386-8.0 redhat-linux-i386-9 redhat-linux-ia64-7.1 redhat-gcc3.1-i386-7.3 redhat-linux-iSeries-7.1 redhat-linux-pSeries-7.1 redhat-linux-severn-i386-9.0.93 redhat-linux-severn-i386-9.0.93-updates severn-beta2-i386 severn-beta2-i386-updates" id="rhn-channel-family-1000" label="rh-public"><rhn-channel-family-name>Red Hat Public Channels</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/products/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family channel-labels="k12ltsp-i386-7.2" id="rhn-channel-family-1024" label="k12ltsp"><rhn-channel-family-name>K12 Linux Terminal Server Project</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/products/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family channel-labels="redhat-rhn-proxy-4.0-as-i386-3 redhat-rhn-proxy-4.0-as-i386-4 redhat-rhn-proxy-4.1-as-i386-3 redhat-rhn-proxy-4.1-as-i386-4 redhat-rhn-proxy-4.2-as-i386-3 redhat-rhn-proxy-4.2-as-i386-4 redhat-rhn-proxy-5.0-as-i386-4 redhat-rhn-proxy-5.1-as-i386-4 redhat-rhn-proxy-5.1-as-x86_64-4 redhat-rhn-proxy-5.1-as-s390-4 redhat-rhn-proxy-5.1-as-s390x-4 redhat-rhn-proxy-5.2-as-i386-4 redhat-rhn-proxy-5.2-as-s390-4 redhat-rhn-proxy-5.2-as-s390x-4 redhat-rhn-proxy-5.2-as-x86_64-4 redhat-rhn-proxy-5.2-server-i386-5 redhat-rhn-proxy-5.2-server-s390x-5 redhat-rhn-proxy-5.2-server-x86_64-5 redhat-rhn-proxy-5.3-as-i386-4 redhat-rhn-proxy-5.3-as-s390-4 redhat-rhn-proxy-5.3-as-s390x-4 redhat-rhn-proxy-5.3-as-x86_64-4 redhat-rhn-proxy-5.3-server-i386-5 redhat-rhn-proxy-5.3-server-s390x-5 redhat-rhn-proxy-5.3-server-x86_64-5" max-members="100" id="rhn-channel-family-1047" label="rhn-proxy"><rhn-channel-family-name>Red Hat Network Proxy</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/products/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family channel-labels="education-k12ltsp-i386-7.3 education-general-i386-7.3 education-k12ltsp-i386-8.0 education-k12ltsp-i386-9" id="rhn-channel-family-1109" label="education"><rhn-channel-family-name>Education channels</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/products/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family channel-labels="rhel-i386-as-3-cluster rhel-i386-es-3-cluster rhel-ia64-as-3-cluster rhel-ia64-es-3-cluster rhel-x86_64-as-3-cluster rhel-x86_64-es-3-cluster rhel-i386-ws-3-cluster rhel-ia64-ws-3-cluster rhel-x86_64-ws-3-cluster rhel-i386-as-4-cluster rhel-i386-es-4-cluster rhel-i386-ws-4-cluster rhel-ia64-as-4-cluster rhel-ia64-es-4-cluster rhel-ia64-ws-4-cluster rhel-x86_64-as-4-cluster rhel-x86_64-es-4-cluster rhel-x86_64-ws-4-cluster rhel-ppc-as-4-cluster" max-members="4000" id="rhn-channel-family-1555" label="rhel-cluster"><rhn-channel-family-name>Red Hat Cluster Suite</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family channel-labels="rhel-i386-as-3-devsuite rhel-i386-es-3-devsuite rhel-i386-ws-3-devsuite rhel-ia64-as-3-devsuite rhel-ia64-es-3-devsuite rhel-ia64-ws-3-devsuite rhel-x86_64-as-3-devsuite rhel-x86_64-es-3-devsuite rhel-x86_64-ws-3-devsuite rhel-i386-desktop-3-devsuite rhel-x86_64-desktop-3-devsuite rhel-3-as-i386-rhds-2 rhel-3-es-i386-rhds-2 rhel-3-ws-i386-rhds-2 rhel-3-as-ia64-rhds-2 rhel-3-es-ia64-rhds-2 rhel-3-ws-ia64-rhds-2 rhel-3-as-ppc-rhds-2 rhel-4-as-i386-rhds-2.1 rhel-4-es-i386-rhds-2.1 rhel-4-ws-i386-rhds-2.1 rhel-4-as-ia64-rhds-2.1 rhel-4-es-ia64-rhds-2.1 rhel-4-ws-ia64-rhds-2.1 rhel-4-as-x86_64-rhds-2.1 rhel-4-es-x86_64-rhds-2.1 rhel-4-ws-x86_64-rhds-2.1 rhel-4-as-ppc-rhds-2.1 rhel-4-as-i386-rhds-3 rhel-4-es-i386-rhds-3 rhel-4-ws-i386-rhds-3 rhel-4-as-ia64-rhds-3 rhel-4-es-ia64-rhds-3 rhel-4-ws-ia64-rhds-3 rhel-4-as-x86_64-rhds-3 rhel-4-es-x86_64-rhds-3 rhel-4-ws-x86_64-rhds-3 rhel-4-as-ppc-rhds-3" max-members="4000" id="rhn-channel-family-1556" label="rhel-devsuite"><rhn-channel-family-name>Red Hat Developer Suite</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family label="rhn-tools" virt-sub-level-label="virtualization_free virtualization_platform_free" channel-labels="rhn-tools-rhel-3-as-i386 rhn-tools-rhel-3-es-i386 rhn-tools-rhel-3-ws-i386 rhn-tools-redhat-linux-i386-9 rhn-tools-rhel-3-desktop-i386 rhn-tools-rhel-3-as-x86_64 rhn-tools-rhel-3-es-x86_64 rhn-tools-rhel-3-ws-x86_64 rhn-tools-rhel-3-desktop-x86_64 rhn-tools-rhel-4-as-i386 rhn-tools-rhel-4-es-i386 rhn-tools-rhel-4-ws-i386 rhn-tools-rhel-4-desktop-i386 rhn-tools-rhel-4-as-x86_64 rhn-tools-rhel-4-es-x86_64 rhn-tools-rhel-4-ws-x86_64 rhn-tools-rhel-4-desktop-x86_64 rhn-tools-rhel-3-as-ia64 rhn-tools-rhel-3-es-ia64 rhn-tools-rhel-3-ws-ia64 rhn-tools-rhel-4-as-ia64 rhn-tools-rhel-4-es-ia64 rhn-tools-rhel-4-ws-ia64 rhn-tools-rhel-i386-server-5 rhn-tools-rhel-x86_64-server-5 rhn-tools-rhel-ia64-server-5 rhn-tools-rhel-i386-client-5 rhn-tools-rhel-x86_64-client-5 rhn-tools-rhel-4-as-ppc rhn-tools-rhel-4-as-s390 rhn-tools-rhel-4-as-s390x rhn-tools-rhel-ppc-server-5 rhn-tools-rhel-s390x-server-5 rhn-tools-rhel-3-as-ppc rhn-tools-rhel-3-as-s390 rhn-tools-rhel-3-as-s390x" virt-sub-level-name="Virtualization free content group,Virtualization Platform free content group" id="rhn-channel-family-1729" max-members="6000"><rhn-channel-family-name>Red Hat Network Tools for Red Hat Enterprise Linux</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family channel-labels="rhel-i386-as-3-gfs-6 rhel-i386-es-3-gfs-6 rhel-ia64-as-3-gfs-6 rhel-ia64-es-3-gfs-6 rhel-x86_64-as-3-gfs-6 rhel-x86_64-es-3-gfs-6 rhel-i386-ws-3-gfs-6 rhel-ia64-ws-3-gfs-6 rhel-x86_64-ws-3-gfs-6 rhel-i386-as-4-gfs-6.1 rhel-i386-es-4-gfs-6.1 rhel-i386-ws-4-gfs-6.1 rhel-ia64-as-4-gfs-6.1 rhel-ia64-es-4-gfs-6.1 rhel-ia64-ws-4-gfs-6.1 rhel-x86_64-as-4-gfs-6.1 rhel-x86_64-es-4-gfs-6.1 rhel-x86_64-ws-4-gfs-6.1 rhel-ppc-as-4-gfs-6.1" max-members="4000" id="rhn-channel-family-2004" label="rhel-gfs"><rhn-channel-family-name>Red Hat Global File System 6.0 (for AS v3 x86)</rhn-channel-family-name><rhn-channel-family-product-url>/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family channel-labels="rhel-3-as-i386-rhaps-1 rhel-3-es-i386-rhaps-1 rhel-3-ws-i386-rhaps-1 rhel-3-as-ia64-rhaps-1 rhel-3-es-ia64-rhaps-1 rhel-3-ws-ia64-rhaps-1 rhel-3-as-ppc-rhaps-1 rhel-4-as-i386-rhaps-2 rhel-4-es-i386-rhaps-2 rhel-4-ws-i386-rhaps-2 rhel-4-as-ia64-rhaps-2 rhel-4-es-ia64-rhaps-2 rhel-4-ws-ia64-rhaps-2 rhel-4-as-x86_64-rhaps-2 rhel-4-es-x86_64-rhaps-2 rhel-4-ws-x86_64-rhaps-2 rhel-4-as-ppc-rhaps-2" max-members="4000" id="rhn-channel-family-2359" label="rhel-rhaps"><rhn-channel-family-name>Red Hat Application Server 1.0 (AS for i386)</rhn-channel-family-name><rhn-channel-family-product-url>/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family channel-labels="rhel-i386-as-4-appstk-1 rhel-i386-es-4-appstk-1 rhel-x86_64-as-4-appstk-1 rhel-x86_64-es-4-appstk-1 rhel-i386-server-5-appstk-2 rhel-x86_64-server-5-appstk-2" max-members="1000" id="rhn-channel-family-5090" label="rhel-appstk"><rhn-channel-family-name>Red Hat Application Stack 1.0 (for AS v. 4 x86)</rhn-channel-family-name><rhn-channel-family-product-url>/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family label="rhel-client" virt-sub-level-label="virtualization_free virtualization_platform_free" channel-labels="rhel-i386-ws-3 rhel-ia64-ws-3 rhel-x86_64-ws-3 rhel-i386-desktop-3 rhel-x86_64-desktop-3 rhel-i386-ws-4 rh-i386-desktop-4 rhel-x86_64-ws-4 rh-x86_64-desktop-4 rhel-ia64-ws-4 rhel-i386-client-5 rhel-x86_64-client-5" virt-sub-level-name="Virtualization free content group,Virtualization Platform free content group" id="rhn-channel-family-5482" max-members="2000"><rhn-channel-family-name>Red Hat Enterprise Linux Desktop (core client)</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family label="rhel-client-fastrack" virt-sub-level-label="virtualization_free virtualization_platform_free" channel-labels="rh-i386-desktop-4-fastrack rh-x86_64-desktop-4-fastrack rhel-i386-desktop-3-fastrack rhel-x86_64-desktop-3-fastrack rhel-i386-client-fastrack-5 rhel-x86_64-client-fastrack-5" virt-sub-level-name="Virtualization free content group,Virtualization Platform free content group" id="rhn-channel-family-5483" max-members="2000"><rhn-channel-family-name>RHEL Desktop FasTrack</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family label="rhel-client-supplementary" virt-sub-level-label="virtualization_free virtualization_platform_free" channel-labels="rhel-i386-ws-3-extras rhel-ia64-ws-3-extras rhel-x86_64-ws-3-extras rhel-i386-desktop-3-extras rhel-x86_64-desktop-3-extras rhel-i386-ws-4-extras rh-i386-desktop-4-extras rhel-x86_64-ws-4-extras rh-x86_64-desktop-4-extras rhel-ia64-ws-4-extras rhel-i386-client-supplementary-5 rhel-x86_64-client-supplementary-5" virt-sub-level-name="Virtualization free content group,Virtualization Platform free content group" id="rhn-channel-family-5484" max-members="2000"><rhn-channel-family-name>RHEL Desktop Supplementary</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family channel-labels="rhel-i386-client-vt-5 rhel-x86_64-client-vt-5" max-members="1000" id="rhn-channel-family-5485" label="rhel-client-vt"><rhn-channel-family-name>RHEL Desktop Multi OS</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family label="rhel-client-workstation" virt-sub-level-label="virtualization_free virtualization_platform_free" channel-labels="rhel-i386-client-workstation-5 rhel-x86_64-client-workstation-5" virt-sub-level-name="Virtualization free content group,Virtualization Platform free content group" id="rhn-channel-family-5486" max-members="1000"><rhn-channel-family-name>RHEL Desktop Workstation</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family label="rhel-client-workstation-fastrack" virt-sub-level-label="virtualization_free virtualization_platform_free" channel-labels="rhel-i386-ws-4-fastrack rhel-x86_64-ws-4-fastrack rhel-ia64-ws-4-fastrack rhel-i386-ws-3-fastrack rhel-ia64-ws-3-fastrack rhel-x86_64-ws-3-fastrack rhel-i386-client-workstation-fastrack-5 rhel-x86_64-client-workstation-fastrack-5" virt-sub-level-name="Virtualization free content group,Virtualization Platform free content group" id="rhn-channel-family-5487" max-members="1000"><rhn-channel-family-name>RHEL Desktop Workstation FasTrack</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family label="rhel-server" virt-sub-level-label="virtualization_free virtualization_platform_free" channel-labels="rhel-i386-as-3 rhel-i386-es-3 rhel-ia64-as-3 rhel-ia64-es-3 rhel-x86_64-as-3 rhel-x86_64-es-3 rhel-ppc-as-3 rhel-i386-as-4 rhel-i386-es-4 rhel-x86_64-as-4 rhel-x86_64-es-4 rhel-ia64-as-4 rhel-ia64-es-4 rhel-ppc-as-4 rhel-i386-server-5 rhel-x86_64-server-5 rhel-ia64-server-5 rhel-ppc-server-5" virt-sub-level-name="Virtualization free content group,Virtualization Platform free content group" id="rhn-channel-family-5488" max-members="2000"><rhn-channel-family-name>Red Hat Enterprise Linux (core server)</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family label="rhel-server-cluster" virt-sub-level-label="virtualization_platform_free" channel-labels="rhel-i386-server-cluster-5 rhel-x86_64-server-cluster-5 rhel-ia64-server-cluster-5 rhel-ppc-server-cluster-5" virt-sub-level-name="Virtualization Platform free content group" id="rhn-channel-family-5489" max-members="1000"><rhn-channel-family-name>RHEL Clustering</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family label="rhel-server-cluster-storage" virt-sub-level-label="virtualization_platform_free" channel-labels="rhel-i386-server-cluster-storage-5 rhel-x86_64-server-cluster-storage-5 rhel-ia64-server-cluster-storage-5 rhel-ppc-server-cluster-storage-5" virt-sub-level-name="Virtualization Platform free content group" id="rhn-channel-family-5490" max-members="1000"><rhn-channel-family-name>RHEL Cluster-Storage</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family label="rhel-server-supplementary" virt-sub-level-label="virtualization_free virtualization_platform_free" channel-labels="rhel-i386-as-3-extras rhel-i386-es-3-extras rhel-ia64-as-3-extras rhel-ia64-es-3-extras rhel-x86_64-as-3-extras rhel-x86_64-es-3-extras rhel-ppc-as-3-extras rhel-i386-as-4-extras rhel-i386-es-4-extras rhel-x86_64-as-4-extras rhel-x86_64-es-4-extras rhel-ia64-as-4-extras rhel-ia64-es-4-extras rhel-ppc-as-4-extras rhel-i386-server-supplementary-5 rhel-x86_64-server-supplementary-5 rhel-ia64-server-supplementary-5 rhel-ppc-server-supplementary-5" virt-sub-level-name="Virtualization free content group,Virtualization Platform free content group" id="rhn-channel-family-5491" max-members="2000"><rhn-channel-family-name>RHEL Supplementary</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family label="rhel-server-hts" virt-sub-level-label="virtualization_free virtualization_platform_free" channel-labels="rhel-i386-as-4-hwcert rhel-x86_64-as-4-hwcert rhel-ia64-as-4-hwcert rhel-ppc-as-4-hwcert rhel-s390-as-4-hwcert rhel-s390x-as-4-hwcert rhel-i386-as-3-hwcert rhel-ia64-as-3-hwcert rhel-x86_64-as-3-hwcert rhel-ppc-as-3-hwcert rhel-s390-as-3-hwcert rhel-s390x-as-3-hwcert rhel-i386-server-hts-5 rhel-x86_64-server-hts-5 rhel-ia64-server-hts-5 rhel-ppc-server-hts-5" virt-sub-level-name="Virtualization free content group,Virtualization Platform free content group" id="rhn-channel-family-5492" max-members="8000"><rhn-channel-family-name>RHEL Hardware Certification</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family label="rhel-server-productivity" virt-sub-level-label="virtualization_free virtualization_platform_free" channel-labels="rhel-i386-server-productivity-5 rhel-x86_64-server-productivity-5" virt-sub-level-name="Virtualization free content group,Virtualization Platform free content group" id="rhn-channel-family-5493" max-members="1000"><rhn-channel-family-name>RHEL Optional Productivity Apps</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family channel-labels="rhel-i386-server-vt-5 rhel-x86_64-server-vt-5 rhel-ia64-server-vt-5" max-members="2000" id="rhn-channel-family-5494" label="rhel-server-vt"><rhn-channel-family-name>RHEL Virtualization</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family label="rhel-server-fastrack" virt-sub-level-label="virtualization_free virtualization_platform_free" channel-labels="rhel-i386-as-4-fastrack rhel-i386-es-4-fastrack rhel-x86_64-as-4-fastrack rhel-x86_64-es-4-fastrack rhel-ia64-as-4-fastrack rhel-ia64-es-4-fastrack rhel-ppc-as-4-fastrack rhel-i386-as-3-fastrack rhel-i386-es-3-fastrack rhel-ia64-as-3-fastrack rhel-ia64-es-3-fastrack rhel-x86_64-as-3-fastrack rhel-x86_64-es-3-fastrack rhel-ppc-as-3-fastrack rhel-i386-server-fastrack-5 rhel-x86_64-server-fastrack-5 rhel-ia64-server-fastrack-5 rhel-ppc-server-fastrack-5" virt-sub-level-name="Virtualization free content group,Virtualization Platform free content group" id="rhn-channel-family-5495" max-members="2000"><rhn-channel-family-name>RHEL FasTrack</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family channel-labels="rhel-s390-as-3 rhel-s390x-as-3 rhel-s390-as-4 rhel-s390x-as-4 rhel-s390x-server-5" max-members="1000" id="rhn-channel-family-5496" label="rhel-s390x-server"><rhn-channel-family-name>Red Hat Enterprise Linux (v. 5 64-bit IBM System z)</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family channel-labels="rhel-s390-as-3-extras rhel-s390x-as-3-extras rhel-s390-as-4-extras rhel-s390x-as-4-extras rhel-s390x-server-supplementary-5" max-members="1000" id="rhn-channel-family-5497" label="rhel-s390x-server-supplementary"><rhn-channel-family-name>RHEL Supplementary (v. 5 for 64-bit IBM System z)</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family channel-labels="rhel-s390-as-4-fastrack rhel-s390x-as-4-fastrack rhel-s390-as-3-fastrack rhel-s390x-as-3-fastrack rhel-s390x-server-fastrack-5" max-members="1000" id="rhn-channel-family-5499" label="rhel-s390x-fastrack"><rhn-channel-family-name>RHEL FasTrack (v. 5 for 64-bit IBM System z)</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family channel-labels="jb-middleware" max-members="1000" id="rhn-channel-family-5873" label="jb-middleware"><rhn-channel-family-name>JBoss Enterprise Middleware</rhn-channel-family-name><rhn-channel-family-product-url>/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family channel-labels="jbappplatform-4-zip jbappplatform-4-i386-as-4-rpm jbappplatform-4-i386-es-4-rpm jbappplatform-4-x86_64-as-4-rpm jbappplatform-4-x86_64-es-4-rpm jbappplatform-4-i386-server-5-rpm jbappplatform-4-x86_64-server-5-rpm jbappplatform-4.3.0-i386-as-4-rpm jbappplatform-4.3.0-i386-es-4-rpm jbappplatform-4.3.0-x86_64-as-4-rpm jbappplatform-4.3.0-x86_64-es-4-rpm jbappplatform-4.3.0-i386-server-5-rpm jbappplatform-4.3.0-x86_64-server-5-rpm jbappplatform-4.3.0-zip" max-members="1000" id="rhn-channel-family-5874" label="jb-appplatform"><rhn-channel-family-name>JBoss Enterprise Application Platform (v 4, zip format)</rhn-channel-family-name><rhn-channel-family-product-url>/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family channel-labels="rhel-i386-server-5.0.z rhel-x86_64-server-5.0.z rhel-i386-as-4.5.z rhel-i386-es-4.5.z rhel-ia64-as-4.5.z rhel-ia64-es-4.5.z rhel-ppc-as-4.5.z rhel-x86_64-as-4.5.z rhel-x86_64-es-4.5.z rhel-i386-server-5.1.z rhel-x86_64-server-5.1.z rhel-i386-as-4.6.z rhel-i386-es-4.6.z rhel-ia64-as-4.6.z rhel-ia64-es-4.6.z rhel-ppc-as-4.6.z rhel-x86_64-as-4.6.z rhel-x86_64-es-4.6.z rhel-i386-server-5.2.z rhel-x86_64-server-5.2.z rhel-i386-as-4.7.z rhel-i386-es-4.7.z rhel-x86_64-as-4.7.z rhel-x86_64-es-4.7.z rhel-i386-server-5.3.z rhel-x86_64-server-5.3.z rhel-i386-as-4.8.z rhel-i386-es-4.8.z rhel-x86_64-as-4.8.z rhel-x86_64-es-4.8.z rhel-i386-server-5.4.z rhel-x86_64-server-5.4.z" max-members="1000" id="rhn-channel-family-5956" label="rhel-server-z"><rhn-channel-family-name>RHEL Extended Update Support</rhn-channel-family-name><rhn-channel-family-product-url>/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family channel-labels="rhel-i386-server-vt-5.0.z rhel-x86_64-server-vt-5.0.z rhel-ppc-server-vt-5.0.z rhel-s390x-server-vt-5.0.z rhel-i386-server-vt-5.1.z rhel-x86_64-server-vt-5.1.z rhel-ppc-server-vt-5.1.z rhel-s390x-server-vt-5.1.z rhel-i386-server-vt-5.2.z rhel-x86_64-server-vt-5.2.z rhel-i386-server-vt-5.3.z rhel-x86_64-server-vt-5.3.z rhel-x86_64-server-vt-5.4.z" max-members="1000" id="rhn-channel-family-5957" label="rhel-server-vt-z"><rhn-channel-family-name>RHEL Virtualization EUS</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family channel-labels="rhel-i386-server-cluster-5.0.z rhel-x86_64-server-cluster-5.0.z rhel-s390x-server-cluster-5.0.z rhel-i386-as-4.5.z-cluster rhel-i386-es-4.5.z-cluster rhel-ia64-as-4.5.z-cluster rhel-ia64-es-4.5.z-cluster rhel-x86_64-as-4.5.z-cluster rhel-x86_64-es-4.5.z-cluster rhel-i386-server-cluster-5.1.z rhel-x86_64-server-cluster-5.1.z rhel-s390x-server-cluster-5.1.z rhel-i386-as-4.6.z-cluster rhel-i386-es-4.6.z-cluster rhel-ia64-as-4.6.z-cluster rhel-ia64-es-4.6.z-cluster rhel-x86_64-as-4.6.z-cluster rhel-x86_64-es-4.6.z-cluster rhel-i386-server-cluster-5.2.z rhel-x86_64-server-cluster-5.2.z rhel-i386-as-4.7.z-cluster rhel-i386-es-4.7.z-cluster rhel-x86_64-as-4.7.z-cluster rhel-x86_64-es-4.7.z-cluster rhel-i386-server-cluster-5.3.z rhel-x86_64-server-cluster-5.3.z rhel-i386-as-4.8.z-cluster rhel-i386-es-4.8.z-cluster rhel-x86_64-as-4.8.z-cluster rhel-x86_64-es-4.8.z-cluster rhel-i386-server-cluster-5.4.z rhel-x86_64-server-cluster-5.4.z" max-members="1000" id="rhn-channel-family-5958" label="rhel-server-cluster-z"><rhn-channel-family-name>RHEL Clustering EUS</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family channel-labels="rhel-i386-server-cluster-storage-5.0.z rhel-x86_64-server-cluster-storage-5.0.z rhel-s390x-server-cluster-storage-5.0.z rhel-i386-server-cluster-storage-5.1.z rhel-x86_64-server-cluster-storage-5.1.z rhel-s390x-server-cluster-storage-5.1.z rhel-i386-as-4.5.z-gfs rhel-i386-es-4.5.z-gfs rhel-ia64-as-4.5.z-gfs rhel-ia64-es-4.5.z-gfs rhel-x86_64-as-4.5.z-gfs rhel-x86_64-es-4.5.z-gfs rhel-i386-as-4.6.z-gfs rhel-i386-es-4.6.z-gfs rhel-ia64-as-4.6.z-gfs rhel-ia64-es-4.6.z-gfs rhel-x86_64-as-4.6.z-gfs rhel-x86_64-es-4.6.z-gfs rhel-i386-server-cluster-storage-5.2.z rhel-x86_64-server-cluster-storage-5.2.z rhel-i386-as-4.7.z-gfs rhel-i386-es-4.7.z-gfs rhel-x86_64-as-4.7.z-gfs rhel-x86_64-es-4.7.z-gfs rhel-i386-server-cluster-storage-5.3.z rhel-x86_64-server-cluster-storage-5.3.z rhel-i386-as-4.8.z-gfs rhel-i386-es-4.8.z-gfs rhel-x86_64-as-4.8.z-gfs rhel-x86_64-es-4.8.z-gfs rhel-i386-server-cluster-storage-5.4.z rhel-x86_64-server-cluster-storage-5.4.z" max-members="1000" id="rhn-channel-family-5959" label="rhel-server-cluster-storage-z"><rhn-channel-family-name>RHEL Cluster-Storage EUS</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family channel-labels="rhel-i386-server-productivity-5.0.z rhel-x86_64-server-productivity-5.0.z rhel-i386-server-productivity-5.1.z rhel-x86_64-server-productivity-5.1.z rhel-i386-server-productivity-5.2.z rhel-x86_64-server-productivity-5.2.z rhel-i386-server-productivity-5.3.z rhel-x86_64-server-productivity-5.3.z rhel-i386-server-productivity-5.4.z rhel-x86_64-server-productivity-5.4.z" max-members="1000" id="rhn-channel-family-5960" label="rhel-server-productivity-z"><rhn-channel-family-name>RHEL Optional Productivity Apps EUS</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family><rhn-channel-family channel-labels="rhel-i386-server-supplementary-5.0.z rhel-x86_64-server-supplementary-5.0.z rhel-i386-as-4.5.z-extras rhel-i386-es-4.5.z-extras rhel-ia64-as-4.5.z-extras rhel-ia64-es-4.5.z-extras rhel-ppc-as-4.5.z-extras rhel-x86_64-as-4.5.z-extras rhel-x86_64-es-4.5.z-extras rhel-i386-server-supplementary-5.1.z rhel-x86_64-server-supplementary-5.1.z rhel-i386-as-4.6.z-extras rhel-i386-es-4.6.z-extras rhel-ia64-as-4.6.z-extras rhel-ia64-es-4.6.z-extras rhel-ppc-as-4.6.z-extras rhel-x86_64-as-4.6.z-extras rhel-x86_64-es-4.6.z-extras rhel-i386-server-supplementary-5.2.z rhel-x86_64-server-supplementary-5.2.z rhel-i386-as-4.7.z-extras rhel-i386-es-4.7.z-extras rhel-x86_64-as-4.7.z-extras rhel-x86_64-es-4.7.z-extras rhel-i386-server-supplementary-5.3.z rhel-x86_64-server-supplementary-5.3.z rhel-i386-as-4.8.z-extras rhel-i386-es-4.8.z-extras rhel-x86_64-as-4.8.z-extras rhel-x86_64-es-4.8.z-extras rhel-i386-server-supplementary-5.4.z rhel-x86_64-server-supplementary-5.4.z" max-members="1000" id="rhn-channel-family-5961" label="rhel-server-supplementary-z"><rhn-channel-family-name>RHEL Supplementary EUS</rhn-channel-family-name><rhn-channel-family-product-url>http://www.redhat.com/software/</rhn-channel-family-product-url></rhn-channel-family></rhn-channel-families></rhn-satellite>
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.channels.xml b/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.channels.xml
deleted file mode 100644
index decf0a0..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.channels.xml
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><rhn-satellite generation="2" version="3.4"><rhn-channels><rhn-channel channel-arch="channel-ia32" has-comps="True" channel-errata="rhn-erratum-5388 rhn-erratum-5390 rhn-erratum-5392 rhn-erratum-5393 rhn-erratum-5394 rhn-erratum-5396 rhn-erratum-5397 rhn-erratum-5398 rhn-erratum-5399 rhn-erratum-5400 rhn-erratum-5401 rhn-erratum-5402 rhn-erratum-5403 rhn-erratum-5404 rhn-erratum-5405 rhn-erratum-5406 rhn-erratum-5407 rhn-erratum-5411 rhn-erratum-5412 rhn-erratum-5427 rhn-erratum-5428 rhn-erratum-5431 rhn-erratum-5443 rhn-erratum-5444 rhn-erratum-5445 rhn-erratum-5447 rhn-erratum-5465 rhn-erratum-5466 rhn-erratum-5470 rhn-erratum-5475 rhn-erratum-5619 rhn-erratum-5645 rhn-erratum-5646 rhn-erratum-5647 rhn-erratum-5655 rhn-erratum-5656 rhn-erratum-5676 rhn-erratum-5677 rhn-erratum-5689 rhn-erratum-5690 rhn-erratum-5694 rhn-erratum-5695 rhn-erratum-5697 rhn-erratum-5698 rhn-erratum-5707 rhn-erratum-5710 rhn-erratum-5718 rhn-erratum-5720 rhn-erratum-5721 rhn-erratum-5724 rhn-erratum-5728 rhn-erratum-5730 rhn-erratum-5800 rhn-erratum-5806 rhn-erratum-5807 rhn-erratum-5809 rhn-erratum-5812 rhn-erratum-5816 rhn-erratum-5817 rhn-erratum-5820 rhn-erratum-5825 rhn-erratum-5833 rhn-erratum-5835 rhn-erratum-5836 rhn-erratum-5837 rhn-erratum-5838 rhn-erratum-5839 rhn-erratum-5840 rhn-erratum-5842 rhn-erratum-5843 rhn-erratum-5844 rhn-erratum-5845 rhn-erratum-5854 rhn-erratum-5859 rhn-erratum-5860 rhn-erratum-5861 rhn-erratum-5862 rhn-erratum-5863 rhn-erratum-5865 rhn-erratum-5870 rhn-erratum-5871 rhn-erratum-5877 rhn-erratum-5879 rhn-erratum-5880 rhn-erratum-5881 rhn-erratum-5887 rhn-erratum-5890 rhn-erratum-5891 rhn-erratum-5892 rhn-erratum-5915 rhn-erratum-5916 rhn-erratum-5919 rhn-erratum-5920 rhn-erratum-5928 rhn-erratum-5960 rhn-erratum-5969 rhn-erratum-5970 rhn-erratum-5973 rhn-erratum-5975 rhn-erratum-5982 rhn-erratum-5984 rhn-erratum-5985 rhn-erratum-5992 rhn-erratum-5993 rhn-erratum-5998 rhn-erratum-5999 rhn-erratum-6027 rhn-erratum-6038 rhn-erratum-6039 rhn-erratum-6040 rhn-erratum-6043 rhn-erratum-6045 rhn-erratum-6048 rhn-erratum-6052 rhn-erratum-6054 rhn-erratum-6056 rhn-erratum-6060 rhn-erratum-6061 rhn-erratum-6065 rhn-erratum-6071 rhn-erratum-6072 rhn-erratum-6073 rhn-erratum-6074 rhn-erratum-6075 rhn-erratum-6076 rhn-erratum-6078 rhn-erratum-6079 rhn-erratum-6080 rhn-erratum-6081 rhn-erratum-6082 rhn-erratum-6083 rhn-erratum-6084 rhn-erratum-6085 rhn-erratum-6086 rhn-erratum-6087 rhn-erratum-6088 rhn-erratum-6090 rhn-erratum-6091 rhn-erratum-6092 rhn-erratum-6094 rhn-erratum-6095 rhn-erratum-6096 rhn-erratum-6097 rhn-erratum-6099 rhn-erratum-6101 rhn-erratum-6102 rhn-erratum-6103 rhn-erratum-6104 rhn-erratum-6105 rhn-erratum-6106 rhn-erratum-6107 rhn-erratum-6108 rhn-erratum-6109 rhn-erratum-6110 rhn-erratum-6111 rhn-erratum-6112 rhn-erratum-6113 rhn-erratum-6114 rhn-erratum-6115 rhn-erratum-6116 rhn-erratum-6117 rhn-erratum-6119 rhn-erratum-6120 rhn-erratum-6124 rhn-erratum-6126 rhn-erratum-6129 rhn-erratum-6130 rhn-erratum-6132 rhn-erratum-6136 rhn-erratum-6137 rhn-erratum-6138 rhn-erratum-6139 rhn-erratum-6140 rhn-erratum-6142 rhn-erratum-6144 rhn-erratum-6146 rhn-erratum-6148 rhn-erratum-6149 rhn-erratum-6150 rhn-erratum-6151 rhn-erratum-6152 rhn-erratum-6153 rhn-erratum-6154 rhn-erratum-6156 rhn-erratum-6157 rhn-erratum-6158 rhn-erratum-6159 rhn-erratum-6160 rhn-erratum-6161 rhn-erratum-6162 rhn-erratum-6163 rhn-erratum-6164 rhn-erratum-6166 rhn-erratum-6168 rhn-erratum-6169 rhn-erratum-6170 rhn-erratum-6171 rhn-erratum-6172 rhn-erratum-6173 rhn-erratum-6174 rhn-erratum-6175 rhn-erratum-6176 rhn-erratum-6177 rhn-erratum-6178 rhn-erratum-6179 rhn-erratum-6181 rhn-erratum-6182 rhn-erratum-6183 rhn-erratum-6184 rhn-erratum-6185 rhn-erratum-6186 rhn-erratum-6187 rhn-erratum-6189 rhn-erratum-6191 rhn-erratum-6192 rhn-erratum-6193 rhn-erratum-6195 rhn-erratum-6196 rhn-erratum-6197 rhn-erratum-6198 rhn-erratum-6199 rhn-erratum-6201 rhn-erratum-6202 rhn-erratum-6206 rhn-erratum-6208 rhn-erratum-6209 rhn-erratum-6210 rhn-erratum-6211 rhn-erratum-6212 rhn-erratum-6213 rhn-erratum-6214 rhn-erratum-6215 rhn-erratum-6216 rhn-erratum-6217 rhn-erratum-6218 rhn-erratum-6219 rhn-erratum-6220 rhn-erratum-6221 rhn-erratum-6222 rhn-erratum-6223 rhn-erratum-6224 rhn-erratum-6225 rhn-erratum-6226 rhn-erratum-6227 rhn-erratum-6228 rhn-erratum-6236 rhn-erratum-6238 rhn-erratum-6240 rhn-erratum-6241 rhn-erratum-6242 rhn-erratum-6243 rhn-erratum-6244 rhn-erratum-6245 rhn-erratum-6249 rhn-erratum-6254 rhn-erratum-6255 rhn-erratum-6256 rhn-erratum-6263 rhn-erratum-6383 rhn-erratum-6389 rhn-erratum-6390 rhn-erratum-6392 rhn-erratum-6393 rhn-erratum-6396 rhn-erratum-6398 rhn-erratum-6400 rhn-erratum-6404 rhn-erratum-6405 rhn-erratum-6406 rhn-erratum-6407 rhn-erratum-6408 rhn-erratum-6412 rhn-erratum-6413 rhn-erratum-6435 rhn-erratum-6436 rhn-erratum-6437 rhn-erratum-6439 rhn-erratum-6440 rhn-erratum-6444 rhn-erratum-6448 rhn-erratum-6452 rhn-erratum-6453 rhn-erratum-6454 rhn-erratum-6455 rhn-erratum-6464 rhn-erratum-6466 rhn-erratum-6473 rhn-erratum-6476 rhn-erratum-6477 rhn-erratum-6478 rhn-erratum-6479 rhn-erratum-6480 rhn-erratum-6481 rhn-erratum-6482 rhn-erratum-6483 rhn-erratum-6485 rhn-erratum-6486 rhn-erratum-6488 rhn-erratum-6494 rhn-erratum-6495 rhn-erratum-6497 rhn-erratum-6498 rhn-erratum-6499 rhn-erratum-6500 rhn-erratum-6516 rhn-erratum-6517 rhn-erratum-6518 rhn-erratum-6519 rhn-erratum-6520 rhn-erratum-6522 rhn-erratum-6524 rhn-erratum-6525 rhn-erratum-6527 rhn-erratum-6528 rhn-erratum-6537 rhn-erratum-6538 rhn-erratum-6544 rhn-erratum-6550 rhn-erratum-6551 rhn-erratum-6552 rhn-erratum-6553 rhn-erratum-6554 rhn-erratum-6555 rhn-erratum-6556 rhn-erratum-6557 rhn-erratum-6558 rhn-erratum-6560 rhn-erratum-6561 rhn-erratum-6564 rhn-erratum-6568 rhn-erratum-6569 rhn-erratum-6570 rhn-erratum-6571 rhn-erratum-6572 rhn-erratum-6573 rhn-erratum-6574 rhn-erratum-6575 rhn-erratum-6576 rhn-erratum-6577 rhn-erratum-6578 rhn-erratum-6579 rhn-erratum-6580 rhn-erratum-6596 rhn-erratum-6597 rhn-erratum-6598 rhn-erratum-6601 rhn-erratum-6603 rhn-erratum-6618 rhn-erratum-6619 rhn-erratum-6620 rhn-erratum-6622 rhn-erratum-6625 rhn-erratum-6628 rhn-erratum-6631 rhn-erratum-6638 rhn-erratum-6642 rhn-erratum-6659 rhn-erratum-6662 rhn-erratum-6664 rhn-erratum-6665 rhn-erratum-6680 rhn-erratum-6681 rhn-erratum-6682 rhn-erratum-6683 rhn-erratum-6697 rhn-erratum-6717 rhn-erratum-6718 rhn-erratum-6719 rhn-erratum-6739 rhn-erratum-6747 rhn-erratum-6748 rhn-erratum-6752 rhn-erratum-6756 rhn-erratum-6764 rhn-erratum-6777 rhn-erratum-6779 rhn-erratum-6795 rhn-erratum-6797 rhn-erratum-6798 rhn-erratum-6803 rhn-erratum-6860 rhn-erratum-6868 rhn-erratum-6898 rhn-erratum-6902 rhn-erratum-6903 rhn-erratum-6919 rhn-erratum-6920 rhn-erratum-6921 rhn-erratum-6922 rhn-erratum-6923 rhn-erratum-6924 rhn-erratum-6925 rhn-erratum-6926 rhn-erratum-6928 rhn-erratum-6929 rhn-erratum-6930 rhn-erratum-6931 rhn-erratum-6932 rhn-erratum-6934 rhn-erratum-6935 rhn-erratum-6936 rhn-erratum-6937 rhn-erratum-6939 rhn-erratum-6940 rhn-erratum-6941 rhn-erratum-6942 rhn-erratum-6943 rhn-erratum-6944 rhn-erratum-6945 rhn-erratum-6946 rhn-erratum-6947 rhn-erratum-6949 rhn-erratum-6950 rhn-erratum-6951 rhn-erratum-6952 rhn-erratum-6954 rhn-erratum-6956 rhn-erratum-6957 rhn-erratum-6958 rhn-erratum-6959 rhn-erratum-6960 rhn-erratum-6961 rhn-erratum-6962 rhn-erratum-6963 rhn-erratum-6964 rhn-erratum-6965 rhn-erratum-6967 rhn-erratum-6968 rhn-erratum-6969 rhn-erratum-6970 rhn-erratum-6971 rhn-erratum-6972 rhn-erratum-6973 rhn-erratum-6974 rhn-erratum-6975 rhn-erratum-6976 rhn-erratum-6977 rhn-erratum-6978 rhn-erratum-6979 rhn-erratum-6980 rhn-erratum-6981 rhn-erratum-6983 rhn-erratum-6984 rhn-erratum-6985 rhn-erratum-6986 rhn-erratum-6987 rhn-erratum-6989 rhn-erratum-6990 rhn-erratum-6993 rhn-erratum-6995 rhn-erratum-6996 rhn-erratum-6998 rhn-erratum-7000 rhn-erratum-7001 rhn-erratum-7002 rhn-erratum-7003 rhn-erratum-7004 rhn-erratum-7005 rhn-erratum-7006 rhn-erratum-7007 rhn-erratum-7008 rhn-erratum-7009 rhn-erratum-7010 rhn-erratum-7011 rhn-erratum-7012 rhn-erratum-7014 rhn-erratum-7015 rhn-erratum-7016 rhn-erratum-7017 rhn-erratum-7018 rhn-erratum-7019 rhn-erratum-7020 rhn-erratum-7021 rhn-erratum-7022 rhn-erratum-7023 rhn-erratum-7026 rhn-erratum-7027 rhn-erratum-7028 rhn-erratum-7034 rhn-erratum-7035 rhn-erratum-7036 rhn-erratum-7037 rhn-erratum-7039 rhn-erratum-7040 rhn-erratum-7041 rhn-erratum-7042 rhn-erratum-7044 rhn-erratum-7045 rhn-erratum-7046 rhn-erratum-7047 rhn-erratum-7048 rhn-erratum-7049 rhn-erratum-7050 rhn-erratum-7051 rhn-erratum-7052 rhn-erratum-7053 rhn-erratum-7054 rhn-erratum-7055 rhn-erratum-7056 rhn-erratum-7058 rhn-erratum-7059 rhn-erratum-7061 rhn-erratum-7062 rhn-erratum-7063 rhn-erratum-7064 rhn-erratum-7065 rhn-erratum-7066 rhn-erratum-7067 rhn-erratum-7068 rhn-erratum-7069 rhn-erratum-7070 rhn-erratum-7071 rhn-erratum-7073 rhn-erratum-7074 rhn-erratum-7075 rhn-erratum-7076 rhn-erratum-7077 rhn-erratum-7078 rhn-erratum-7079 rhn-erratum-7080 rhn-erratum-7081 rhn-erratum-7082 rhn-erratum-7083 rhn-erratum-7084 rhn-erratum-7085 rhn-erratum-7087 rhn-erratum-7088 rhn-erratum-7089 rhn-erratum-7091 rhn-erratum-7092 rhn-erratum-7093 rhn-erratum-7095 rhn-erratum-7096 rhn-erratum-7098 rhn-erratum-7099 rhn-erratum-7100 rhn-erratum-7101 rhn-erratum-7102 rhn-erratum-7103 rhn-erratum-7104 rhn-erratum-7106 rhn-erratum-7107 rhn-erratum-7108 rhn-erratum-7109 rhn-erratum-7110 rhn-erratum-7112 rhn-erratum-7114 rhn-erratum-7115 rhn-erratum-7116 rhn-erratum-7117 rhn-erratum-7118 rhn-erratum-7119 rhn-erratum-7120 rhn-erratum-7121 rhn-erratum-7122 rhn-erratum-7123 rhn-erratum-7124 rhn-erratum-7126 rhn-erratum-7127 rhn-erratum-7128 rhn-erratum-7130 rhn-erratum-7131 rhn-erratum-7133 rhn-erratum-7134 rhn-erratum-7135 rhn-erratum-7136 rhn-erratum-7144 rhn-erratum-7147 rhn-erratum-7178 rhn-erratum-7179 rhn-erratum-7180 rhn-erratum-7185 rhn-erratum-7186 rhn-erratum-7188 rhn-erratum-7189 rhn-erratum-7191 rhn-erratum-7192 rhn-erratum-7194 rhn-erratum-7196 rhn-erratum-7198 rhn-erratum-7199 rhn-erratum-7200 rhn-erratum-7201 rhn-erratum-7219 rhn-erratum-7223 rhn-erratum-7225 rhn-erratum-7226 rhn-erratum-7228 rhn-erratum-7237 rhn-erratum-7259 rhn-erratum-7265 rhn-erratum-7269 rhn-erratum-7271 rhn-erratum-7272 rhn-erratum-7273 rhn-erratum-7275 rhn-erratum-7277 rhn-erratum-7280 rhn-erratum-7284 rhn-erratum-7287 rhn-erratum-7292 rhn-erratum-7293 rhn-erratum-7294 rhn-erratum-7295 rhn-erratum-7296 rhn-erratum-7435 rhn-erratum-7459 rhn-erratum-7479 rhn-erratum-7480 rhn-erratum-7481 rhn-erratum-7482 rhn-erratum-7483 rhn-erratum-7487 rhn-erratum-7488 rhn-erratum-7498 rhn-erratum-7511 rhn-erratum-7512 rhn-erratum-7513 rhn-erratum-7515 rhn-erratum-7516 rhn-erratum-7517 rhn-erratum-7518 rhn-erratum-7521 rhn-erratum-7527 rhn-erratum-7530 rhn-erratum-7531 rhn-erratum-7532 rhn-erratum-7533 rhn-erratum-7538 rhn-erratum-7539 rhn-erratum-7560 rhn-erratum-7562 rhn-erratum-7563 rhn-erratum-7564 rhn-erratum-7565 rhn-erratum-7568 rhn-erratum-7574 rhn-erratum-7578 rhn-erratum-7590 rhn-erratum-7591 rhn-erratum-7592 rhn-erratum-7593 rhn-erratum-7594 rhn-erratum-7595 rhn-erratum-7596 rhn-erratum-7607 rhn-erratum-7618 rhn-erratum-7619 rhn-erratum-7620 rhn-erratum-7621 rhn-erratum-7638 rhn-erratum-7640 rhn-erratum-7641 rhn-erratum-7642 rhn-erratum-7643 rhn-erratum-7646 rhn-erratum-7658 rhn-erratum-7659 rhn-erratum-7660 rhn-erratum-7662 rhn-erratum-7663 rhn-erratum-7664 rhn-erratum-7665 rhn-erratum-7704 rhn-erratum-7705 rhn-erratum-7707 rhn-erratum-7708 rhn-erratum-7710 rhn-erratum-7717 rhn-erratum-7719 rhn-erratum-7721 rhn-erratum-7725 rhn-erratum-7726 rhn-erratum-7727 rhn-erratum-7728 rhn-erratum-7738 rhn-erratum-7739 rhn-erratum-7742 rhn-erratum-7778 rhn-erratum-7799 rhn-erratum-7800 rhn-erratum-7801 rhn-erratum-7803 rhn-erratum-7805 rhn-erratum-7806 rhn-erratum-7820 rhn-erratum-7821 rhn-erratum-7828 rhn-erratum-7830 rhn-erratum-7863 rhn-erratum-7866 rhn-erratum-7867 rhn-erratum-7870 rhn-erratum-7879 rhn-erratum-7880 rhn-erratum-7901 rhn-erratum-7906 rhn-erratum-7918 rhn-erratum-7919 rhn-erratum-7922 rhn-erratum-7924 rhn-erratum-7926 rhn-erratum-7959 rhn-erratum-7961 rhn-erratum-7962 rhn-erratum-7963 rhn-erratum-7964 rhn-erratum-7979 rhn-erratum-7980 rhn-erratum-7981 rhn-erratum-7982 rhn-erratum-8007 rhn-erratum-8008 rhn-erratum-8009 rhn-erratum-8011 rhn-erratum-8012 rhn-erratum-8013 rhn-erratum-8016 rhn-erratum-8017 rhn-erratum-8018 rhn-erratum-8019 rhn-erratum-8020 rhn-erratum-8021 rhn-erratum-8022 rhn-erratum-8023 rhn-erratum-8024 rhn-erratum-8025 rhn-erratum-8026 rhn-erratum-8027 rhn-erratum-8028 rhn-erratum-8029 rhn-erratum-8030 rhn-erratum-8031 rhn-erratum-8032 rhn-erratum-8033 rhn-erratum-8034 rhn-erratum-8036 rhn-erratum-8037 rhn-erratum-8038 rhn-erratum-8039 rhn-erratum-8040 rhn-erratum-8041 rhn-erratum-8042 rhn-erratum-8043 rhn-erratum-8045 rhn-erratum-8046 rhn-erratum-8047 rhn-erratum-8052 rhn-erratum-8054 rhn-erratum-8055 rhn-erratum-8056 rhn-erratum-8057 rhn-erratum-8058 rhn-erratum-8059 rhn-erratum-8060 rhn-erratum-8061 rhn-erratum-8062 rhn-erratum-8063 rhn-erratum-8064 rhn-erratum-8065 rhn-erratum-8066 rhn-erratum-8067 rhn-erratum-8068 rhn-erratum-8069 rhn-erratum-8070 rhn-erratum-8072 rhn-erratum-8073 rhn-erratum-8074 rhn-erratum-8075 rhn-erratum-8076 rhn-erratum-8077 rhn-erratum-8078 rhn-erratum-8080 rhn-erratum-8081 rhn-erratum-8082 rhn-erratum-8083 rhn-erratum-8085 rhn-erratum-8086 rhn-erratum-8090 rhn-erratum-8091 rhn-erratum-8092 rhn-erratum-8093 rhn-erratum-8094 rhn-erratum-8095 rhn-erratum-8096 rhn-erratum-8098 rhn-erratum-8099 rhn-erratum-8100 rhn-erratum-8101 rhn-erratum-8103 rhn-erratum-8104 rhn-erratum-8107 rhn-erratum-8108 rhn-erratum-8109 rhn-erratum-8110 rhn-erratum-8111 rhn-erratum-8112 rhn-erratum-8113 rhn-erratum-8114 rhn-erratum-8115 rhn-erratum-8116 rhn-erratum-8117 rhn-erratum-8118 rhn-erratum-8119 rhn-erratum-8120 rhn-erratum-8121 rhn-erratum-8122 rhn-erratum-8124 rhn-erratum-8125 rhn-erratum-8126 rhn-erratum-8127 rhn-erratum-8128 rhn-erratum-8129 rhn-erratum-8130 rhn-erratum-8131 rhn-erratum-8132 rhn-erratum-8134 rhn-erratum-8135 rhn-erratum-8136 rhn-erratum-8137 rhn-erratum-8138 rhn-erratum-8139 rhn-erratum-8140 rhn-erratum-8142 rhn-erratum-8143 rhn-erratum-8144 rhn-erratum-8145 rhn-erratum-8146 rhn-erratum-8147 rhn-erratum-8148 rhn-erratum-8149 rhn-erratum-8150 rhn-erratum-8151 rhn-erratum-8152 rhn-erratum-8153 rhn-erratum-8154 rhn-erratum-8155 rhn-erratum-8156 rhn-erratum-8157 rhn-erratum-8158 rhn-erratum-8159 rhn-erratum-8162 rhn-erratum-8163 rhn-erratum-8164 rhn-erratum-8165 rhn-erratum-8166 rhn-erratum-8167 rhn-erratum-8168 rhn-erratum-8169 rhn-erratum-8170 rhn-erratum-8171 rhn-erratum-8172 rhn-erratum-8173 rhn-erratum-8174 rhn-erratum-8175 rhn-erratum-8176 rhn-erratum-8177 rhn-erratum-8178 rhn-erratum-8179 rhn-erratum-8180 rhn-erratum-8182 rhn-erratum-8183 rhn-erratum-8184 rhn-erratum-8185 rhn-erratum-8187 rhn-erratum-8188 rhn-erratum-8189 rhn-erratum-8190 rhn-erratum-8191 rhn-erratum-8192 rhn-erratum-8193 rhn-erratum-8194 rhn-erratum-8195 rhn-erratum-8203 rhn-erratum-8204 rhn-erratum-8205 rhn-erratum-8243 rhn-erratum-8266 rhn-erratum-8276 rhn-erratum-8279 rhn-erratum-8283 rhn-erratum-8284 rhn-erratum-8285 rhn-erratum-8286 rhn-erratum-8288 rhn-erratum-8289 rhn-erratum-8291 rhn-erratum-8301 rhn-erratum-8304 rhn-erratum-8319 rhn-erratum-8325 rhn-erratum-8327 rhn-erratum-8328 rhn-erratum-8330 rhn-erratum-8338 rhn-erratum-8339 rhn-erratum-8358 rhn-erratum-8362 rhn-erratum-8363 rhn-erratum-8378 rhn-erratum-8379 rhn-erratum-8380 rhn-erratum-8382 rhn-erratum-8383 rhn-erratum-8384 rhn-erratum-8399 rhn-erratum-8400 rhn-erratum-8401 rhn-erratum-8403 rhn-erratum-8409 rhn-erratum-8423 rhn-erratum-8424 rhn-erratum-8425 rhn-erratum-8426 rhn-erratum-8427 rhn-erratum-8428 rhn-erratum-8429 rhn-erratum-8431 rhn-erratum-8437 rhn-erratum-8438 rhn-erratum-8440 rhn-erratum-8441 rhn-erratum-8444 rhn-erratum-8445 rhn-erratum-8446 rhn-erratum-8447 rhn-erratum-8449 rhn-erratum-8450 rhn-erratum-8451 rhn-erratum-8461 rhn-erratum-8462 rhn-erratum-8463 rhn-erratum-8464 rhn-erratum-8465 rhn-erratum-8466 rhn-erratum-8467 rhn-erratum-8469 rhn-erratum-8472 rhn-erratum-8476 rhn-erratum-8477 rhn-erratum-8478 rhn-erratum-8479 rhn-erratum-8480 rhn-erratum-8481 rhn-erratum-8482 rhn-erratum-8483 rhn-erratum-8521 rhn-erratum-8524 rhn-erratum-8525 rhn-erratum-8528 rhn-erratum-8529 rhn-erratum-8538 rhn-erratum-8539 rhn-erratum-8540 rhn-erratum-8542 rhn-erratum-8543 rhn-erratum-8549 rhn-erratum-8551 rhn-erratum-8552 rhn-erratum-8558 rhn-erratum-8559 rhn-erratum-8561 rhn-erratum-8562 rhn-erratum-8563 rhn-erratum-8564 rhn-erratum-8565 rhn-erratum-8566 rhn-erratum-8671 rhn-erratum-8673 rhn-erratum-8690 rhn-erratum-8703 rhn-erratum-8724 rhn-erratum-8725 rhn-erratum-8726 rhn-erratum-8727 rhn-erratum-8728 rhn-erratum-8729 rhn-erratum-8730 rhn-erratum-8731 rhn-erratum-8732 rhn-erratum-8742 rhn-erratum-8743 rhn-erratum-8744 rhn-erratum-8745 rhn-erratum-8765 rhn-erratum-8766 rhn-erratum-8769 rhn-erratum-8772 rhn-erratum-8776 rhn-erratum-8777 rhn-erratum-8778 rhn-erratum-8780 rhn-erratum-8781 rhn-erratum-8782 rhn-erratum-8783 rhn-erratum-8784 rhn-erratum-8785 rhn-erratum-8788 rhn-erratum-8789 rhn-erratum-8790 rhn-erratum-8791 rhn-erratum-8794 rhn-erratum-8796 rhn-erratum-8797 rhn-erratum-8798 rhn-erratum-8799 rhn-erratum-8800 rhn-erratum-8816 rhn-erratum-8817 rhn-erratum-8821 rhn-erratum-8836 rhn-erratum-8838 rhn-erratum-8856 rhn-erratum-8857 rhn-erratum-8859 rhn-erratum-8861 rhn-erratum-8883 rhn-erratum-8885 rhn-erratum-8886 rhn-erratum-8895 rhn-erratum-8897 rhn-erratum-8898 rhn-erratum-8899 rhn-erratum-8901 rhn-erratum-8912 rhn-erratum-8915 rhn-erratum-8923 rhn-erratum-8927 rhn-erratum-8928 rhn-erratum-8929 rhn-erratum-8936 rhn-erratum-8938 rhn-erratum-8939 rhn-erratum-8940 rhn-erratum-8942 rhn-erratum-8946 rhn-erratum-8960 rhn-erratum-8961 rhn-erratum-8965 rhn-erratum-8968 rhn-erratum-8978 rhn-erratum-8985 rhn-erratum-8988 rhn-erratum-8989 rhn-erratum-8990 rhn-erratum-8991 rhn-erratum-8992 rhn-erratum-8993 rhn-erratum-8996 rhn-erratum-8997 rhn-erratum-8998 rhn-erratum-8999 rhn-erratum-9000 rhn-erratum-9001 rhn-erratum-9002 rhn-erratum-9004 rhn-erratum-9006 rhn-erratum-9007 rhn-erratum-9008 rhn-erratum-9009 rhn-erratum-9010 rhn-erratum-9013 rhn-erratum-9014 rhn-erratum-9017 rhn-erratum-9018 rhn-erratum-9019 rhn-erratum-9020 rhn-erratum-9021 rhn-erratum-9022 rhn-erratum-9023 rhn-erratum-9024 rhn-erratum-9026 rhn-erratum-9027 rhn-erratum-9028 rhn-erratum-9029 rhn-erratum-9030 rhn-erratum-9031 rhn-erratum-9032 rhn-erratum-9033 rhn-erratum-9034 rhn-erratum-9035 rhn-erratum-9036 rhn-erratum-9037 rhn-erratum-9039 rhn-erratum-9040 rhn-erratum-9042 rhn-erratum-9043 rhn-erratum-9045 rhn-erratum-9046 rhn-erratum-9047 rhn-erratum-9049 rhn-erratum-9051 rhn-erratum-9052 rhn-erratum-9053 rhn-erratum-9054 rhn-erratum-9055 rhn-erratum-9056 rhn-erratum-9057 rhn-erratum-9058 rhn-erratum-9059 rhn-erratum-9060 rhn-erratum-9061 rhn-erratum-9063 rhn-erratum-9066 rhn-erratum-9067 rhn-erratum-9068 rhn-erratum-9069 rhn-erratum-9070 rhn-erratum-9071 rhn-erratum-9072 rhn-erratum-9074 rhn-erratum-9076 rhn-erratum-9080 rhn-erratum-9081 rhn-erratum-9082 rhn-erratum-9083 rhn-erratum-9084 rhn-erratum-9085 rhn-erratum-9086 rhn-erratum-9087 rhn-erratum-9088 rhn-erratum-9089 rhn-erratum-9090 rhn-erratum-9091 rhn-erratum-9092 rhn-erratum-9093 rhn-erratum-9094 rhn-erratum-9095 rhn-erratum-9096 rhn-erratum-9097 rhn-erratum-9098 rhn-erratum-9099 rhn-erratum-9100 rhn-erratum-9101 rhn-erratum-9102 rhn-erratum-9103 rhn-erratum-9104 rhn-erratum-9105 rhn-erratum-9107 rhn-erratum-9108 rhn-erratum-9109 rhn-erratum-9110 rhn-erratum-9111 rhn-erratum-9112 rhn-erratum-9114 rhn-erratum-9115 rhn-erratum-9116 rhn-erratum-9117 rhn-erratum-9118 rhn-erratum-9120 rhn-erratum-9121 rhn-erratum-9122 rhn-erratum-9124 rhn-erratum-9125 rhn-erratum-9126 rhn-erratum-9127 rhn-erratum-9128 rhn-erratum-9129 rhn-erratum-9130 rhn-erratum-9132 rhn-erratum-9134 rhn-erratum-9136 rhn-erratum-9138 rhn-erratum-9139 rhn-erratum-9140 rhn-erratum-9141 rhn-erratum-9142 rhn-erratum-9143 rhn-erratum-9144 rhn-erratum-9145 rhn-erratum-9146 rhn-erratum-9147 rhn-erratum-9150 rhn-erratum-9157 rhn-erratum-9158 rhn-erratum-9159 rhn-erratum-9162 rhn-erratum-9163 rhn-erratum-9164 rhn-erratum-9166 rhn-erratum-9167 rhn-erratum-9168 rhn-erratum-9170 rhn-erratum-9175 rhn-erratum-9176 rhn-erratum-9179 rhn-erratum-9184 rhn-erratum-9185 rhn-erratum-9199 rhn-erratum-9200 rhn-erratum-9203 rhn-erratum-9206 rhn-erratum-9211 rhn-erratum-9215 rhn-erratum-9216 rhn-erratum-9219 rhn-erratum-9220 rhn-erratum-9221 rhn-erratum-9223 rhn-erratum-9224 rhn-erratum-9225 rhn-erratum-9227 rhn-erratum-9229 rhn-erratum-9237 rhn-erratum-9240 rhn-erratum-9241 rhn-erratum-9244 rhn-erratum-9248 rhn-erratum-9249 rhn-erratum-9260 rhn-erratum-9265 rhn-erratum-9266 rhn-erratum-9268" kickstartable-trees="ks-rhel-i386-server-5 ks-rhel-i386-server-5-u1 ks-rhel-i386-server-5-u2 ks-rhel-i386-server-5-u3 ks-rhel-i386-server-5-u4" label="rhel-i386-server-5" packages="rhn-package-386981 rhn-package-386982 rhn-package-386983 rhn-package-386984 rhn-package-386985 rhn-package-386986 rhn-package-386987 rhn-package-386988 rhn-package-386989 rhn-package-386990 rhn-package-386992 rhn-package-386993 rhn-package-386994 rhn-package-386995 rhn-package-386996 rhn-package-386997 rhn-package-386999 rhn-package-387000 rhn-package-387001 rhn-package-387002 rhn-package-387003 rhn-package-387004 rhn-package-387005 rhn-package-387006 rhn-package-387007 rhn-package-387008 rhn-package-387009 rhn-package-387010 rhn-package-387011 rhn-package-387012 rhn-package-387013 rhn-package-387014 rhn-package-387015 rhn-package-387017 rhn-package-387018 rhn-package-387019 rhn-package-387020 rhn-package-387021 rhn-package-387022 rhn-package-387023 rhn-package-387024 rhn-package-387025 rhn-package-387026 rhn-package-387027 rhn-package-387028 rhn-package-387029 rhn-package-387030 rhn-package-387031 rhn-package-387032 rhn-package-387034 rhn-package-387035 rhn-package-387036 rhn-package-387037 rhn-package-387038 rhn-package-387039 rhn-package-387040 rhn-package-387041 rhn-package-387042 rhn-package-387043 rhn-package-387045 rhn-package-387046 rhn-package-387047 rhn-package-387048 rhn-package-387049 rhn-package-387050 rhn-package-387051 rhn-package-387052 rhn-package-387053 rhn-package-387054 rhn-package-387055 rhn-package-387056 rhn-package-387057 rhn-package-387058 rhn-package-387059 rhn-package-387060 rhn-package-387063 rhn-package-387064 rhn-package-387065 rhn-package-387066 rhn-package-387067 rhn-package-387069 rhn-package-387070 rhn-package-387071 rhn-package-387072 rhn-package-387074 rhn-package-387075 rhn-package-387076 rhn-package-387077 rhn-package-387078 rhn-package-387080 rhn-package-387082 rhn-package-387083 rhn-package-387084 rhn-package-387085 rhn-package-387087 rhn-package-387088 rhn-package-387091 rhn-package-387092 rhn-package-387093 rhn-package-387094 rhn-package-387095 rhn-package-387096 rhn-package-387098 rhn-package-387099 rhn-package-387100 rhn-package-387101 rhn-package-387103 rhn-package-387104 rhn-package-387105 rhn-package-387106 rhn-package-387107 rhn-package-387108 rhn-package-387109 rhn-package-387110 rhn-package-387111 rhn-package-387112 rhn-package-387113 rhn-package-387114 rhn-package-387115 rhn-package-387116 rhn-package-387117 rhn-package-387118 rhn-package-387119 rhn-package-387120 rhn-package-387122 rhn-package-387123 rhn-package-387124 rhn-package-387125 rhn-package-387127 rhn-package-387128 rhn-package-387129 rhn-package-387130 rhn-package-387132 rhn-package-387133 rhn-package-387134 rhn-package-387135 rhn-package-387136 rhn-package-387137 rhn-package-387138 rhn-package-387139 rhn-package-387140 rhn-package-387141 rhn-package-387143 rhn-package-387144 rhn-package-387145 rhn-package-387146 rhn-package-387147 rhn-package-387148 rhn-package-387149 rhn-package-387150 rhn-package-387151 rhn-package-387152 rhn-package-387153 rhn-package-387154 rhn-package-387155 rhn-package-387156 rhn-package-387157 rhn-package-387158 rhn-package-387159 rhn-package-387160 rhn-package-387161 rhn-package-387162 rhn-package-387163 rhn-package-387164 rhn-package-387165 rhn-package-387167 rhn-package-387168 rhn-package-387170 rhn-package-387171 rhn-package-387172 rhn-package-387174 rhn-package-387175 rhn-package-387176 rhn-package-387177 rhn-package-387178 rhn-package-387179 rhn-package-387180 rhn-package-387181 rhn-package-387183 rhn-package-387184 rhn-package-387185 rhn-package-387186 rhn-package-387187 rhn-package-387188 rhn-package-387189 rhn-package-387191 rhn-package-387192 rhn-package-387194 rhn-package-387195 rhn-package-387196 rhn-package-387197 rhn-package-387198 rhn-package-387199 rhn-package-387200 rhn-package-387201 rhn-package-387202 rhn-package-387203 rhn-package-387204 rhn-package-387207 rhn-package-387208 rhn-package-387209 rhn-package-387210 rhn-package-387211 rhn-package-387214 rhn-package-387215 rhn-package-387216 rhn-package-387217 rhn-package-387219 rhn-package-387220 rhn-package-387221 rhn-package-387222 rhn-package-387223 rhn-package-387224 rhn-package-387225 rhn-package-387226 rhn-package-387227 rhn-package-387229 rhn-package-387230 rhn-package-387231 rhn-package-387232 rhn-package-387233 rhn-package-387234 rhn-package-387235 rhn-package-387236 rhn-package-387237 rhn-package-387238 rhn-package-387239 rhn-package-387240 rhn-package-387241 rhn-package-387243 rhn-package-387244 rhn-package-387245 rhn-package-387246 rhn-package-387247 rhn-package-387248 rhn-package-387249 rhn-package-387251 rhn-package-387252 rhn-package-387254 rhn-package-387256 rhn-package-387257 rhn-package-387258 rhn-package-387259 rhn-package-387260 rhn-package-387261 rhn-package-387262 rhn-package-387263 rhn-package-387264 rhn-package-387265 rhn-package-387266 rhn-package-387267 rhn-package-387268 rhn-package-387269 rhn-package-387270 rhn-package-387271 rhn-package-387272 rhn-package-387273 rhn-package-387274 rhn-package-387275 rhn-package-387276 rhn-package-387277 rhn-package-387278 rhn-package-387279 rhn-package-387280 rhn-package-387282 rhn-package-387284 rhn-package-387285 rhn-package-387286 rhn-package-387287 rhn-package-387288 rhn-package-387289 rhn-package-387290 rhn-package-387292 rhn-package-387293 rhn-package-387294 rhn-package-387295 rhn-package-387296 rhn-package-387298 rhn-package-387299 rhn-package-387300 rhn-package-387301 rhn-package-387302 rhn-package-387303 rhn-package-387304 rhn-package-387305 rhn-package-387306 rhn-package-387307 rhn-package-387308 rhn-package-387309 rhn-package-387310 rhn-package-387311 rhn-package-387312 rhn-package-387313 rhn-package-387314 rhn-package-387316 rhn-package-387317 rhn-package-387318 rhn-package-387319 rhn-package-387320 rhn-package-387321 rhn-package-387322 rhn-package-387323 rhn-package-387324 rhn-package-387325 rhn-package-387326 rhn-package-387327 rhn-package-387328 rhn-package-387330 rhn-package-387331 rhn-package-387332 rhn-package-387333 rhn-package-387334 rhn-package-387335 rhn-package-387336 rhn-package-387337 rhn-package-387338 rhn-package-387339 rhn-package-387340 rhn-package-387341 rhn-package-387342 rhn-package-387343 rhn-package-387344 rhn-package-387346 rhn-package-387347 rhn-package-387349 rhn-package-387350 rhn-package-387351 rhn-package-387352 rhn-package-387353 rhn-package-387354 rhn-package-387355 rhn-package-387356 rhn-package-387357 rhn-package-387358 rhn-package-387359 rhn-package-387360 rhn-package-387361 rhn-package-387362 rhn-package-387363 rhn-package-387364 rhn-package-387365 rhn-package-387366 rhn-package-387367 rhn-package-387368 rhn-package-387369 rhn-package-387370 rhn-package-387372 rhn-package-387374 rhn-package-387375 rhn-package-387376 rhn-package-387377 rhn-package-387378 rhn-package-387379 rhn-package-387380 rhn-package-387381 rhn-package-387382 rhn-package-387383 rhn-package-387384 rhn-package-387386 rhn-package-387387 rhn-package-387388 rhn-package-387389 rhn-package-387390 rhn-package-387392 rhn-package-387393 rhn-package-387394 rhn-package-387395 rhn-package-387397 rhn-package-387398 rhn-package-387399 rhn-package-387400 rhn-package-387401 rhn-package-387402 rhn-package-387403 rhn-package-387405 rhn-package-387406 rhn-package-387407 rhn-package-387408 rhn-package-387409 rhn-package-387410 rhn-package-387412 rhn-package-387413 rhn-package-387414 rhn-package-387415 rhn-package-387416 rhn-package-387417 rhn-package-387418 rhn-package-387419 rhn-package-387420 rhn-package-387421 rhn-package-387422 rhn-package-387423 rhn-package-387424 rhn-package-387425 rhn-package-387426 rhn-package-387427 rhn-package-387428 rhn-package-387429 rhn-package-387430 rhn-package-387431 rhn-package-387432 rhn-package-387433 rhn-package-387434 rhn-package-387435 rhn-package-387436 rhn-package-387437 rhn-package-387438 rhn-package-387439 rhn-package-387440 rhn-package-387441 rhn-package-387442 rhn-package-387443 rhn-package-387444 rhn-package-387445 rhn-package-387446 rhn-package-387447 rhn-package-387448 rhn-package-387449 rhn-package-387450 rhn-package-387451 rhn-package-387452 rhn-package-387453 rhn-package-387454 rhn-package-387455 rhn-package-387456 rhn-package-387457 rhn-package-387458 rhn-package-387459 rhn-package-387460 rhn-package-387461 rhn-package-387462 rhn-package-387463 rhn-package-387465 rhn-package-387467 rhn-package-387468 rhn-package-387469 rhn-package-387470 rhn-package-387471 rhn-package-387472 rhn-package-387473 rhn-package-387475 rhn-package-387476 rhn-package-387477 rhn-package-387478 rhn-package-387479 rhn-package-387480 rhn-package-387481 rhn-package-387482 rhn-package-387484 rhn-package-387485 rhn-package-387487 rhn-package-387488 rhn-package-387490 rhn-package-387491 rhn-package-387492 rhn-package-387493 rhn-package-387494 rhn-package-387496 rhn-package-387497 rhn-package-387498 rhn-package-387499 rhn-package-387500 rhn-package-387501 rhn-package-387502 rhn-package-387503 rhn-package-387504 rhn-package-387505 rhn-package-387507 rhn-package-387508 rhn-package-387509 rhn-package-387510 rhn-package-387511 rhn-package-387512 rhn-package-387513 rhn-package-387514 rhn-package-387515 rhn-package-387516 rhn-package-387517 rhn-package-387518 rhn-package-387520 rhn-package-387521 rhn-package-387523 rhn-package-387524 rhn-package-387525 rhn-package-387526 rhn-package-387527 rhn-package-387528 rhn-package-387529 rhn-package-387530 rhn-package-387531 rhn-package-387532 rhn-package-387533 rhn-package-387534 rhn-package-387535 rhn-package-387536 rhn-package-387537 rhn-package-387539 rhn-package-387540 rhn-package-387541 rhn-package-387542 rhn-package-387543 rhn-package-387544 rhn-package-387545 rhn-package-387547 rhn-package-387549 rhn-package-387550 rhn-package-387551 rhn-package-387553 rhn-package-387554 rhn-package-387555 rhn-package-387556 rhn-package-387557 rhn-package-387558 rhn-package-387559 rhn-package-387560 rhn-package-387561 rhn-package-387562 rhn-package-387563 rhn-package-387564 rhn-package-387566 rhn-package-387567 rhn-package-387568 rhn-package-387569 rhn-package-387570 rhn-package-387571 rhn-package-387572 rhn-package-387573 rhn-package-387574 rhn-package-387576 rhn-package-387577 rhn-package-387578 rhn-package-387579 rhn-package-387580 rhn-package-387581 rhn-package-387583 rhn-package-387584 rhn-package-387585 rhn-package-387586 rhn-package-387587 rhn-package-387588 rhn-package-387589 rhn-package-387590 rhn-package-387591 rhn-package-387592 rhn-package-387593 rhn-package-387594 rhn-package-387595 rhn-package-387596 rhn-package-387597 rhn-package-387598 rhn-package-387599 rhn-package-387600 rhn-package-387601 rhn-package-387602 rhn-package-387603 rhn-package-387604 rhn-package-387605 rhn-package-387606 rhn-package-387607 rhn-package-387608 rhn-package-387609 rhn-package-387610 rhn-package-387611 rhn-package-387612 rhn-package-387614 rhn-package-387615 rhn-package-387617 rhn-package-387618 rhn-package-387619 rhn-package-387620 rhn-package-387621 rhn-package-387622 rhn-package-387623 rhn-package-387624 rhn-package-387625 rhn-package-387626 rhn-package-387628 rhn-package-387630 rhn-package-387632 rhn-package-387634 rhn-package-387635 rhn-package-387636 rhn-package-387637 rhn-package-387640 rhn-package-387641 rhn-package-387642 rhn-package-387644 rhn-package-387645 rhn-package-387646 rhn-package-387648 rhn-package-387650 rhn-package-387651 rhn-package-387652 rhn-package-387653 rhn-package-387654 rhn-package-387655 rhn-package-387656 rhn-package-387657 rhn-package-387658 rhn-package-387659 rhn-package-387660 rhn-package-387661 rhn-package-387662 rhn-package-387663 rhn-package-387664 rhn-package-387665 rhn-package-387667 rhn-package-387668 rhn-package-387669 rhn-package-387670 rhn-package-387671 rhn-package-387672 rhn-package-387673 rhn-package-387674 rhn-package-387675 rhn-package-387676 rhn-package-387677 rhn-package-387678 rhn-package-387679 rhn-package-387680 rhn-package-387681 rhn-package-387682 rhn-package-387683 rhn-package-387684 rhn-package-387685 rhn-package-387686 rhn-package-387687 rhn-package-387688 rhn-package-387689 rhn-package-387690 rhn-package-387691 rhn-package-387692 rhn-package-387693 rhn-package-387694 rhn-package-387695 rhn-package-387696 rhn-package-387698 rhn-package-387699 rhn-package-387700 rhn-package-387702 rhn-package-387703 rhn-package-387704 rhn-package-387707 rhn-package-387708 rhn-package-387709 rhn-package-387710 rhn-package-387711 rhn-package-387713 rhn-package-387714 rhn-package-387715 rhn-package-387716 rhn-package-387717 rhn-package-387718 rhn-package-387720 rhn-package-387721 rhn-package-387722 rhn-package-387723 rhn-package-387724 rhn-package-387725 rhn-package-387726 rhn-package-387727 rhn-package-387728 rhn-package-387729 rhn-package-387730 rhn-package-387731 rhn-package-387732 rhn-package-387733 rhn-package-387734 rhn-package-387735 rhn-package-387736 rhn-package-387737 rhn-package-387738 rhn-package-387739 rhn-package-387740 rhn-package-387741 rhn-package-387742 rhn-package-387743 rhn-package-387744 rhn-package-387745 rhn-package-387747 rhn-package-387748 rhn-package-387749 rhn-package-387750 rhn-package-387751 rhn-package-387752 rhn-package-387753 rhn-package-387754 rhn-package-387755 rhn-package-387756 rhn-package-387757 rhn-package-387758 rhn-package-387759 rhn-package-387760 rhn-package-387761 rhn-package-387762 rhn-package-387763 rhn-package-387764 rhn-package-387765 rhn-package-387766 rhn-package-387767 rhn-package-387768 rhn-package-387769 rhn-package-387770 rhn-package-387771 rhn-package-387772 rhn-package-387773 rhn-package-387774 rhn-package-387775 rhn-package-387776 rhn-package-387777 rhn-package-387778 rhn-package-387779 rhn-package-387780 rhn-package-387781 rhn-package-387782 rhn-package-387783 rhn-package-387784 rhn-package-387785 rhn-package-387786 rhn-package-387787 rhn-package-387788 rhn-package-387789 rhn-package-387790 rhn-package-387791 rhn-package-387792 rhn-package-387793 rhn-package-387794 rhn-package-387795 rhn-package-387796 rhn-package-387797 rhn-package-387798 rhn-package-387799 rhn-package-387800 rhn-package-387801 rhn-package-387802 rhn-package-387803 rhn-package-387804 rhn-package-387805 rhn-package-387807 rhn-package-387808 rhn-package-387809 rhn-package-387810 rhn-package-387811 rhn-package-387812 rhn-package-387813 rhn-package-387814 rhn-package-387815 rhn-package-387816 rhn-package-387817 rhn-package-387818 rhn-package-387819 rhn-package-387820 rhn-package-387821 rhn-package-387822 rhn-package-387823 rhn-package-387824 rhn-package-387825 rhn-package-387826 rhn-package-387827 rhn-package-387828 rhn-package-387829 rhn-package-387830 rhn-package-387831 rhn-package-387832 rhn-package-387833 rhn-package-387834 rhn-package-387835 rhn-package-387836 rhn-package-387837 rhn-package-387838 rhn-package-387839 rhn-package-387840 rhn-package-387841 rhn-package-387842 rhn-package-387843 rhn-package-387844 rhn-package-387845 rhn-package-387846 rhn-package-387847 rhn-package-387848 rhn-package-387849 rhn-package-387850 rhn-package-387851 rhn-package-387852 rhn-package-387853 rhn-package-387854 rhn-package-387855 rhn-package-387856 rhn-package-387857 rhn-package-387858 rhn-package-387859 rhn-package-387860 rhn-package-387861 rhn-package-387862 rhn-package-387863 rhn-package-387864 rhn-package-387865 rhn-package-387866 rhn-package-387867 rhn-package-387868 rhn-package-387869 rhn-package-387870 rhn-package-387871 rhn-package-387873 rhn-package-387874 rhn-package-387875 rhn-package-387876 rhn-package-387877 rhn-package-387878 rhn-package-387879 rhn-package-387880 rhn-package-387881 rhn-package-387882 rhn-package-387883 rhn-package-387884 rhn-package-387885 rhn-package-387886 rhn-package-387887 rhn-package-387888 rhn-package-387889 rhn-package-387890 rhn-package-387891 rhn-package-387892 rhn-package-387893 rhn-package-387894 rhn-package-387895 rhn-package-387896 rhn-package-387897 rhn-package-387898 rhn-package-387899 rhn-package-387900 rhn-package-387901 rhn-package-387902 rhn-package-387903 rhn-package-387904 rhn-package-387905 rhn-package-387906 rhn-package-387907 rhn-package-387908 rhn-package-387909 rhn-package-387910 rhn-package-387911 rhn-package-387912 rhn-package-387913 rhn-package-387914 rhn-package-387915 rhn-package-387916 rhn-package-387917 rhn-package-387918 rhn-package-387919 rhn-package-387920 rhn-package-387921 rhn-package-387922 rhn-package-387923 rhn-package-387924 rhn-package-387925 rhn-package-387926 rhn-package-387927 rhn-package-387928 rhn-package-387929 rhn-package-387930 rhn-package-387931 rhn-package-387932 rhn-package-387933 rhn-package-387934 rhn-package-387935 rhn-package-387936 rhn-package-387937 rhn-package-387938 rhn-package-387939 rhn-package-387940 rhn-package-387941 rhn-package-387942 rhn-package-387943 rhn-package-387944 rhn-package-387945 rhn-package-387946 rhn-package-387947 rhn-package-387948 rhn-package-387949 rhn-package-387950 rhn-package-387951 rhn-package-387952 rhn-package-387953 rhn-package-387954 rhn-package-387955 rhn-package-387956 rhn-package-387957 rhn-package-387958 rhn-package-387959 rhn-package-387960 rhn-package-387961 rhn-package-387962 rhn-package-387964 rhn-package-387965 rhn-package-387966 rhn-package-387967 rhn-package-387968 rhn-package-387969 rhn-package-387970 rhn-package-387971 rhn-package-387972 rhn-package-387973 rhn-package-387974 rhn-package-387975 rhn-package-387976 rhn-package-387977 rhn-package-387979 rhn-package-387980 rhn-package-387981 rhn-package-387982 rhn-package-387983 rhn-package-387984 rhn-package-387985 rhn-package-387986 rhn-package-387987 rhn-package-387988 rhn-package-387989 rhn-package-387990 rhn-package-387991 rhn-package-387992 rhn-package-387993 rhn-package-387994 rhn-package-387995 rhn-package-387996 rhn-package-387997 rhn-package-387998 rhn-package-388000 rhn-package-388001 rhn-package-388002 rhn-package-388003 rhn-package-388004 rhn-package-388005 rhn-package-388006 rhn-package-388007 rhn-package-388008 rhn-package-388009 rhn-package-388010 rhn-package-388011 rhn-package-388012 rhn-package-388013 rhn-package-388014 rhn-package-388015 rhn-package-388017 rhn-package-388018 rhn-package-388019 rhn-package-388020 rhn-package-388021 rhn-package-388022 rhn-package-388023 rhn-package-388024 rhn-package-388025 rhn-package-388026 rhn-package-388027 rhn-package-388028 rhn-package-388029 rhn-package-388030 rhn-package-388031 rhn-package-388032 rhn-package-388033 rhn-package-388034 rhn-package-388035 rhn-package-388036 rhn-package-388037 rhn-package-388038 rhn-package-388039 rhn-package-388040 rhn-package-388041 rhn-package-388042 rhn-package-388043 rhn-package-388044 rhn-package-388045 rhn-package-388046 rhn-package-388047 rhn-package-388048 rhn-package-388049 rhn-package-388050 rhn-package-388051 rhn-package-388052 rhn-package-388053 rhn-package-388054 rhn-package-388056 rhn-package-388057 rhn-package-388058 rhn-package-388059 rhn-package-388060 rhn-package-388061 rhn-package-388062 rhn-package-388064 rhn-package-388065 rhn-package-388066 rhn-package-388067 rhn-package-388068 rhn-package-388069 rhn-package-388070 rhn-package-388071 rhn-package-388072 rhn-package-388073 rhn-package-388074 rhn-package-388076 rhn-package-388077 rhn-package-388078 rhn-package-388080 rhn-package-388081 rhn-package-388082 rhn-package-388083 rhn-package-388084 rhn-package-388085 rhn-package-388086 rhn-package-388087 rhn-package-388088 rhn-package-388089 rhn-package-388091 rhn-package-388092 rhn-package-388094 rhn-package-388095 rhn-package-388096 rhn-package-388097 rhn-package-388098 rhn-package-388099 rhn-package-388100 rhn-package-388101 rhn-package-388102 rhn-package-388103 rhn-package-388104 rhn-package-388105 rhn-package-388106 rhn-package-388107 rhn-package-388108 rhn-package-388109 rhn-package-388110 rhn-package-388111 rhn-package-388112 rhn-package-388113 rhn-package-388114 rhn-package-388115 rhn-package-388116 rhn-package-388117 rhn-package-388118 rhn-package-388119 rhn-package-388120 rhn-package-388121 rhn-package-388122 rhn-package-388123 rhn-package-388124 rhn-package-388125 rhn-package-388126 rhn-package-388127 rhn-package-388129 rhn-package-388130 rhn-package-388131 rhn-package-388132 rhn-package-388133 rhn-package-388134 rhn-package-388135 rhn-package-388136 rhn-package-388137 rhn-package-388138 rhn-package-388140 rhn-package-388142 rhn-package-388143 rhn-package-388144 rhn-package-388145 rhn-package-388146 rhn-package-388147 rhn-package-388148 rhn-package-388149 rhn-package-388150 rhn-package-388151 rhn-package-388152 rhn-package-388153 rhn-package-388154 rhn-package-388155 rhn-package-388156 rhn-package-388157 rhn-package-388158 rhn-package-388159 rhn-package-388160 rhn-package-388161 rhn-package-388162 rhn-package-388163 rhn-package-388164 rhn-package-388165 rhn-package-388166 rhn-package-388167 rhn-package-388168 rhn-package-388169 rhn-package-388170 rhn-package-388171 rhn-package-388172 rhn-package-388173 rhn-package-388174 rhn-package-388175 rhn-package-388176 rhn-package-388177 rhn-package-388179 rhn-package-388180 rhn-package-388181 rhn-package-388182 rhn-package-388183 rhn-package-388184 rhn-package-388185 rhn-package-388186 rhn-package-388187 rhn-package-388188 rhn-package-388189 rhn-package-388190 rhn-package-388191 rhn-package-388192 rhn-package-388193 rhn-package-388195 rhn-package-388196 rhn-package-388197 rhn-package-388198 rhn-package-388199 rhn-package-388200 rhn-package-388201 rhn-package-388202 rhn-package-388203 rhn-package-388205 rhn-package-388206 rhn-package-388207 rhn-package-388208 rhn-package-388209 rhn-package-388210 rhn-package-388211 rhn-package-388212 rhn-package-388213 rhn-package-388214 rhn-package-388215 rhn-package-388216 rhn-package-388217 rhn-package-388218 rhn-package-388219 rhn-package-388220 rhn-package-388221 rhn-package-388222 rhn-package-388223 rhn-package-388224 rhn-package-388225 rhn-package-388226 rhn-package-388227 rhn-package-388228 rhn-package-388229 rhn-package-388230 rhn-package-388231 rhn-package-388232 rhn-package-388233 rhn-package-388234 rhn-package-388235 rhn-package-388236 rhn-package-388237 rhn-package-388238 rhn-package-388239 rhn-package-388240 rhn-package-388241 rhn-package-388242 rhn-package-388243 rhn-package-388244 rhn-package-388245 rhn-package-388246 rhn-package-388247 rhn-package-388248 rhn-package-388249 rhn-package-388250 rhn-package-388251 rhn-package-388252 rhn-package-388253 rhn-package-388254 rhn-package-388255 rhn-package-388256 rhn-package-388257 rhn-package-388259 rhn-package-388260 rhn-package-388261 rhn-package-388262 rhn-package-388263 rhn-package-388264 rhn-package-388265 rhn-package-388266 rhn-package-388267 rhn-package-388268 rhn-package-388269 rhn-package-388270 rhn-package-388271 rhn-package-388272 rhn-package-388273 rhn-package-388274 rhn-package-388276 rhn-package-388277 rhn-package-388278 rhn-package-388279 rhn-package-388280 rhn-package-388281 rhn-package-388282 rhn-package-388283 rhn-package-388284 rhn-package-388285 rhn-package-388286 rhn-package-388287 rhn-package-388288 rhn-package-388289 rhn-package-388290 rhn-package-388291 rhn-package-388292 rhn-package-388293 rhn-package-388295 rhn-package-388296 rhn-package-388298 rhn-package-388299 rhn-package-388300 rhn-package-388301 rhn-package-388302 rhn-package-388303 rhn-package-388305 rhn-package-388306 rhn-package-388307 rhn-package-388308 rhn-package-388309 rhn-package-388310 rhn-package-388311 rhn-package-388312 rhn-package-388313 rhn-package-388314 rhn-package-388315 rhn-package-388316 rhn-package-388317 rhn-package-388318 rhn-package-388319 rhn-package-388320 rhn-package-388321 rhn-package-388322 rhn-package-388323 rhn-package-388324 rhn-package-388325 rhn-package-388326 rhn-package-388327 rhn-package-388328 rhn-package-388329 rhn-package-388330 rhn-package-388331 rhn-package-388332 rhn-package-388333 rhn-package-388334 rhn-package-388335 rhn-package-388336 rhn-package-388337 rhn-package-388338 rhn-package-388339 rhn-package-388340 rhn-package-388341 rhn-package-388342 rhn-package-388343 rhn-package-388344 rhn-package-388345 rhn-package-388346 rhn-package-388347 rhn-package-388348 rhn-package-388349 rhn-package-388350 rhn-package-388351 rhn-package-388352 rhn-package-388353 rhn-package-388355 rhn-package-388356 rhn-package-388357 rhn-package-388358 rhn-package-388359 rhn-package-388360 rhn-package-388361 rhn-package-388362 rhn-package-388363 rhn-package-388364 rhn-package-388365 rhn-package-388366 rhn-package-388367 rhn-package-388368 rhn-package-388369 rhn-package-388370 rhn-package-388371 rhn-package-388372 rhn-package-388373 rhn-package-388374 rhn-package-388375 rhn-package-388376 rhn-package-388377 rhn-package-388378 rhn-package-388379 rhn-package-388380 rhn-package-388381 rhn-package-388382 rhn-package-388383 rhn-package-388384 rhn-package-388385 rhn-package-388386 rhn-package-388387 rhn-package-388388 rhn-package-388389 rhn-package-388390 rhn-package-388391 rhn-package-388392 rhn-package-388393 rhn-package-388394 rhn-package-388395 rhn-package-388396 rhn-package-388397 rhn-package-388398 rhn-package-388399 rhn-package-388400 rhn-package-388401 rhn-package-388402 rhn-package-388403 rhn-package-388404 rhn-package-388405 rhn-package-388406 rhn-package-388407 rhn-package-388408 rhn-package-388409 rhn-package-388410 rhn-package-388411 rhn-package-388412 rhn-package-388413 rhn-package-388414 rhn-package-388415 rhn-package-388416 rhn-package-388417 rhn-package-388418 rhn-package-388419 rhn-package-388420 rhn-package-388421 rhn-package-388422 rhn-package-388423 rhn-package-388424 rhn-package-388425 rhn-package-388426 rhn-package-388427 rhn-package-388428 rhn-package-388429 rhn-package-388430 rhn-package-388431 rhn-package-388432 rhn-package-388433 rhn-package-388434 rhn-package-388435 rhn-package-388436 rhn-package-388437 rhn-package-388438 rhn-package-388439 rhn-package-388440 rhn-package-388441 rhn-package-388442 rhn-package-388443 rhn-package-388444 rhn-package-388445 rhn-package-388446 rhn-package-388447 rhn-package-388448 rhn-package-388449 rhn-package-388450 rhn-package-388451 rhn-package-388452 rhn-package-388453 rhn-package-388454 rhn-package-388455 rhn-package-388456 rhn-package-388457 rhn-package-388458 rhn-package-388459 rhn-package-388460 rhn-package-388461 rhn-package-388462 rhn-package-388463 rhn-package-388464 rhn-package-388465 rhn-package-388466 rhn-package-388467 rhn-package-388468 rhn-package-388469 rhn-package-388470 rhn-package-388471 rhn-package-388473 rhn-package-388474 rhn-package-388475 rhn-package-388476 rhn-package-388477 rhn-package-388478 rhn-package-388480 rhn-package-388481 rhn-package-388482 rhn-package-388483 rhn-package-388485 rhn-package-388486 rhn-package-388518 rhn-package-388519 rhn-package-388520 rhn-package-388521 rhn-package-388522 rhn-package-388523 rhn-package-388524 rhn-package-388525 rhn-package-388526 rhn-package-388527 rhn-package-388528 rhn-package-388529 rhn-package-388530 rhn-package-388531 rhn-package-388532 rhn-package-388534 rhn-package-388535 rhn-package-388536 rhn-package-388537 rhn-package-388538 rhn-package-388539 rhn-package-388540 rhn-package-388541 rhn-package-388542 rhn-package-388543 rhn-package-388544 rhn-package-388545 rhn-package-388546 rhn-package-388547 rhn-package-388548 rhn-package-388549 rhn-package-388551 rhn-package-388552 rhn-package-388554 rhn-package-388555 rhn-package-388556 rhn-package-388557 rhn-package-388558 rhn-package-388560 rhn-package-388561 rhn-package-388562 rhn-package-388563 rhn-package-388564 rhn-package-388565 rhn-package-388566 rhn-package-388567 rhn-package-388568 rhn-package-388569 rhn-package-388570 rhn-package-388571 rhn-package-388572 rhn-package-388574 rhn-package-388575 rhn-package-388576 rhn-package-388577 rhn-package-388578 rhn-package-388579 rhn-package-388580 rhn-package-388581 rhn-package-388582 rhn-package-388583 rhn-package-388584 rhn-package-388585 rhn-package-388586 rhn-package-388587 rhn-package-388588 rhn-package-388589 rhn-package-388590 rhn-package-388591 rhn-package-388592 rhn-package-388593 rhn-package-388594 rhn-package-388595 rhn-package-388596 rhn-package-388597 rhn-package-388598 rhn-package-388599 rhn-package-388600 rhn-package-388601 rhn-package-388602 rhn-package-388603 rhn-package-388604 rhn-package-388605 rhn-package-388606 rhn-package-388607 rhn-package-388608 rhn-package-388609 rhn-package-388610 rhn-package-388611 rhn-package-388612 rhn-package-388613 rhn-package-388614 rhn-package-388615 rhn-package-388616 rhn-package-388617 rhn-package-388618 rhn-package-388619 rhn-package-388620 rhn-package-388621 rhn-package-388622 rhn-package-388623 rhn-package-388624 rhn-package-388625 rhn-package-388626 rhn-package-388627 rhn-package-388628 rhn-package-388629 rhn-package-388630 rhn-package-388631 rhn-package-388632 rhn-package-388633 rhn-package-388634 rhn-package-388635 rhn-package-388636 rhn-package-388637 rhn-package-388638 rhn-package-388639 rhn-package-388640 rhn-package-388641 rhn-package-388642 rhn-package-388643 rhn-package-388644 rhn-package-388645 rhn-package-388646 rhn-package-388647 rhn-package-388648 rhn-package-388649 rhn-package-388650 rhn-package-388651 rhn-package-388652 rhn-package-388653 rhn-package-388654 rhn-package-388655 rhn-package-388656 rhn-package-388657 rhn-package-388658 rhn-package-388659 rhn-package-388660 rhn-package-388661 rhn-package-388662 rhn-package-388663 rhn-package-388664 rhn-package-388665 rhn-package-388666 rhn-package-388667 rhn-package-388668 rhn-package-388669 rhn-package-388670 rhn-package-388671 rhn-package-388672 rhn-package-388673 rhn-package-388674 rhn-package-388676 rhn-package-388677 rhn-package-388678 rhn-package-388679 rhn-package-388680 rhn-package-388681 rhn-package-388682 rhn-package-388683 rhn-package-388684 rhn-package-388685 rhn-package-388686 rhn-package-388687 rhn-package-388688 rhn-package-388689 rhn-package-388690 rhn-package-388691 rhn-package-388692 rhn-package-388693 rhn-package-388694 rhn-package-388695 rhn-package-388696 rhn-package-388697 rhn-package-388698 rhn-package-388699 rhn-package-388700 rhn-package-388701 rhn-package-388702 rhn-package-388703 rhn-package-388704 rhn-package-388705 rhn-package-388706 rhn-package-388707 rhn-package-388708 rhn-package-388709 rhn-package-388710 rhn-package-388711 rhn-package-388712 rhn-package-388713 rhn-package-388714 rhn-package-388715 rhn-package-388716 rhn-package-388717 rhn-package-388718 rhn-package-388719 rhn-package-388720 rhn-package-388721 rhn-package-388722 rhn-package-388723 rhn-package-388724 rhn-package-388725 rhn-package-388726 rhn-package-388727 rhn-package-388728 rhn-package-388729 rhn-package-388730 rhn-package-388732 rhn-package-388733 rhn-package-388734 rhn-package-388735 rhn-package-388736 rhn-package-388737 rhn-package-388738 rhn-package-388739 rhn-package-388740 rhn-package-388741 rhn-package-388742 rhn-package-388743 rhn-package-388744 rhn-package-388745 rhn-package-388746 rhn-package-388747 rhn-package-388748 rhn-package-388750 rhn-package-388751 rhn-package-388752 rhn-package-388753 rhn-package-388754 rhn-package-388755 rhn-package-388756 rhn-package-388757 rhn-package-388758 rhn-package-388759 rhn-package-388760 rhn-package-388761 rhn-package-388762 rhn-package-388763 rhn-package-388764 rhn-package-388765 rhn-package-388766 rhn-package-388767 rhn-package-388768 rhn-package-388769 rhn-package-388770 rhn-package-388771 rhn-package-388772 rhn-package-388773 rhn-package-388774 rhn-package-388775 rhn-package-388776 rhn-package-388777 rhn-package-388778 rhn-package-388779 rhn-package-388780 rhn-package-388782 rhn-package-388783 rhn-package-388784 rhn-package-388785 rhn-package-388786 rhn-package-388787 rhn-package-388788 rhn-package-388789 rhn-package-388790 rhn-package-388791 rhn-package-388792 rhn-package-388793 rhn-package-388794 rhn-package-388795 rhn-package-388796 rhn-package-388797 rhn-package-388798 rhn-package-388799 rhn-package-388800 rhn-package-388801 rhn-package-388802 rhn-package-388803 rhn-package-388804 rhn-package-388805 rhn-package-388806 rhn-package-388807 rhn-package-388808 rhn-package-388809 rhn-package-388810 rhn-package-388811 rhn-package-388812 rhn-package-388813 rhn-package-388814 rhn-package-388815 rhn-package-388816 rhn-package-388817 rhn-package-388818 rhn-package-388819 rhn-package-388820 rhn-package-388821 rhn-package-388822 rhn-package-388823 rhn-package-388824 rhn-package-388825 rhn-package-388826 rhn-package-388827 rhn-package-388828 rhn-package-388829 rhn-package-388830 rhn-package-388831 rhn-package-388832 rhn-package-388833 rhn-package-388834 rhn-package-388835 rhn-package-388836 rhn-package-388837 rhn-package-388838 rhn-package-388839 rhn-package-388840 rhn-package-388841 rhn-package-388842 rhn-package-388843 rhn-package-388844 rhn-package-388845 rhn-package-388846 rhn-package-388847 rhn-package-388848 rhn-package-388849 rhn-package-388850 rhn-package-388851 rhn-package-388852 rhn-package-388853 rhn-package-388854 rhn-package-388855 rhn-package-388856 rhn-package-388857 rhn-package-388858 rhn-package-388859 rhn-package-388860 rhn-package-388861 rhn-package-388862 rhn-package-388863 rhn-package-388864 rhn-package-388865 rhn-package-388866 rhn-package-388867 rhn-package-388868 rhn-package-388869 rhn-package-388870 rhn-package-388871 rhn-package-388872 rhn-package-388873 rhn-package-388874 rhn-package-388875 rhn-package-388876 rhn-package-388877 rhn-package-388878 rhn-package-388879 rhn-package-388880 rhn-package-388881 rhn-package-388882 rhn-package-388883 rhn-package-388884 rhn-package-388885 rhn-package-388886 rhn-package-388887 rhn-package-388888 rhn-package-388889 rhn-package-388890 rhn-package-388891 rhn-package-388892 rhn-package-388893 rhn-package-388894 rhn-package-388895 rhn-package-388896 rhn-package-388897 rhn-package-388898 rhn-package-388899 rhn-package-388900 rhn-package-388901 rhn-package-388902 rhn-package-388903 rhn-package-388904 rhn-package-388905 rhn-package-388906 rhn-package-388907 rhn-package-388908 rhn-package-388909 rhn-package-388910 rhn-package-388911 rhn-package-388912 rhn-package-388913 rhn-package-388914 rhn-package-388915 rhn-package-388916 rhn-package-388917 rhn-package-388918 rhn-package-388919 rhn-package-388920 rhn-package-388921 rhn-package-388922 rhn-package-388923 rhn-package-388924 rhn-package-388925 rhn-package-388926 rhn-package-388927 rhn-package-388928 rhn-package-388929 rhn-package-388930 rhn-package-388931 rhn-package-388932 rhn-package-388933 rhn-package-388934 rhn-package-388935 rhn-package-388936 rhn-package-388937 rhn-package-388938 rhn-package-388939 rhn-package-388940 rhn-package-388941 rhn-package-388942 rhn-package-388943 rhn-package-388944 rhn-package-388945 rhn-package-388946 rhn-package-388947 rhn-package-388948 rhn-package-388950 rhn-package-388952 rhn-package-388953 rhn-package-388954 rhn-package-388955 rhn-package-388956 rhn-package-388957 rhn-package-388958 rhn-package-388959 rhn-package-388960 rhn-package-388961 rhn-package-388962 rhn-package-388963 rhn-package-388964 rhn-package-388965 rhn-package-388966 rhn-package-388967 rhn-package-388968 rhn-package-388969 rhn-package-388970 rhn-package-388971 rhn-package-388972 rhn-package-388973 rhn-package-388974 rhn-package-388975 rhn-package-388976 rhn-package-388977 rhn-package-388978 rhn-package-388979 rhn-package-388980 rhn-package-388981 rhn-package-388982 rhn-package-388983 rhn-package-388984 rhn-package-388985 rhn-package-388986 rhn-package-388987 rhn-package-388988 rhn-package-388989 rhn-package-388990 rhn-package-388991 rhn-package-388992 rhn-package-388993 rhn-package-388994 rhn-package-388995 rhn-package-388996 rhn-package-388997 rhn-package-388998 rhn-package-388999 rhn-package-389000 rhn-package-389001 rhn-package-389002 rhn-package-389003 rhn-package-389004 rhn-package-389005 rhn-package-389006 rhn-package-389007 rhn-package-389008 rhn-package-389009 rhn-package-389010 rhn-package-389011 rhn-package-389012 rhn-package-389013 rhn-package-389014 rhn-package-389015 rhn-package-389016 rhn-package-389018 rhn-package-389019 rhn-package-389020 rhn-package-389021 rhn-package-389022 rhn-package-389023 rhn-package-389024 rhn-package-389025 rhn-package-389026 rhn-package-389027 rhn-package-389028 rhn-package-389031 rhn-package-389032 rhn-package-389033 rhn-package-389034 rhn-package-389035 rhn-package-389036 rhn-package-389037 rhn-package-389038 rhn-package-389039 rhn-package-389040 rhn-package-389041 rhn-package-389042 rhn-package-389043 rhn-package-389044 rhn-package-389045 rhn-package-389046 rhn-package-389047 rhn-package-389048 rhn-package-389049 rhn-package-389050 rhn-package-389051 rhn-package-389052 rhn-package-389053 rhn-package-389054 rhn-package-389055 rhn-package-389056 rhn-package-389057 rhn-package-389058 rhn-package-389059 rhn-package-389060 rhn-package-389061 rhn-package-389062 rhn-package-389063 rhn-package-389064 rhn-package-389065 rhn-package-389066 rhn-package-389067 rhn-package-389068 rhn-package-389069 rhn-package-389070 rhn-package-389071 rhn-package-389072 rhn-package-389073 rhn-package-389074 rhn-package-389075 rhn-package-389076 rhn-package-389077 rhn-package-389078 rhn-package-389079 rhn-package-389080 rhn-package-389081 rhn-package-389082 rhn-package-389083 rhn-package-389084 rhn-package-389085 rhn-package-389086 rhn-package-389087 rhn-package-389088 rhn-package-389089 rhn-package-389090 rhn-package-389091 rhn-package-389092 rhn-package-389093 rhn-package-389094 rhn-package-389095 rhn-package-389096 rhn-package-389097 rhn-package-389098 rhn-package-389099 rhn-package-389100 rhn-package-389101 rhn-package-389102 rhn-package-389103 rhn-package-389104 rhn-package-389105 rhn-package-389106 rhn-package-389107 rhn-package-389108 rhn-package-389109 rhn-package-389110 rhn-package-389111 rhn-package-389112 rhn-package-389113 rhn-package-389114 rhn-package-389115 rhn-package-389116 rhn-package-389117 rhn-package-389118 rhn-package-389119 rhn-package-389120 rhn-package-389121 rhn-package-389122 rhn-package-389123 rhn-package-389124 rhn-package-389125 rhn-package-389126 rhn-package-389127 rhn-package-389128 rhn-package-389129 rhn-package-389130 rhn-package-389131 rhn-package-389132 rhn-package-389133 rhn-package-389134 rhn-package-389135 rhn-package-389136 rhn-package-389137 rhn-package-389138 rhn-package-389139 rhn-package-389140 rhn-package-389141 rhn-package-389142 rhn-package-389143 rhn-package-389144 rhn-package-389145 rhn-package-389146 rhn-package-389147 rhn-package-389148 rhn-package-389149 rhn-package-389150 rhn-package-389151 rhn-package-389152 rhn-package-389153 rhn-package-389154 rhn-package-389155 rhn-package-389156 rhn-package-389157 rhn-package-389158 rhn-package-389159 rhn-package-389160 rhn-package-389161 rhn-package-389162 rhn-package-389163 rhn-package-389164 rhn-package-389165 rhn-package-389166 rhn-package-389167 rhn-package-389168 rhn-package-389169 rhn-package-389170 rhn-package-389171 rhn-package-389172 rhn-package-389173 rhn-package-389174 rhn-package-389175 rhn-package-389176 rhn-package-389177 rhn-package-389178 rhn-package-389179 rhn-package-389180 rhn-package-389181 rhn-package-389182 rhn-package-389183 rhn-package-389184 rhn-package-389185 rhn-package-389186 rhn-package-389187 rhn-package-389188 rhn-package-389189 rhn-package-389190 rhn-package-389191 rhn-package-389192 rhn-package-389193 rhn-package-389194 rhn-package-389195 rhn-package-389197 rhn-package-389198 rhn-package-389199 rhn-package-389200 rhn-package-389201 rhn-package-389202 rhn-package-389203 rhn-package-389204 rhn-package-389205 rhn-package-389206 rhn-package-389207 rhn-package-389208 rhn-package-389209 rhn-package-389210 rhn-package-389211 rhn-package-389212 rhn-package-389213 rhn-package-389214 rhn-package-389215 rhn-package-389216 rhn-package-389218 rhn-package-389219 rhn-package-389220 rhn-package-389221 rhn-package-389222 rhn-package-389223 rhn-package-389224 rhn-package-389225 rhn-package-389226 rhn-package-389227 rhn-package-389228 rhn-package-389229 rhn-package-389230 rhn-package-389231 rhn-package-389232 rhn-package-389233 rhn-package-389234 rhn-package-389235 rhn-package-389236 rhn-package-389237 rhn-package-389238 rhn-package-389239 rhn-package-389240 rhn-package-389241 rhn-package-389242 rhn-package-389243 rhn-package-389244 rhn-package-389245 rhn-package-389247 rhn-package-389248 rhn-package-389249 rhn-package-389250 rhn-package-389251 rhn-package-391048 rhn-package-391049 rhn-package-397439 rhn-package-398166 rhn-package-398174 rhn-package-398181 rhn-package-398182 rhn-package-398183 rhn-package-398184 rhn-package-398185 rhn-package-398186 rhn-package-398207 rhn-package-398214 rhn-package-398215 rhn-package-398216 rhn-package-398217 rhn-package-398218 rhn-package-398219 rhn-package-398220 rhn-package-398221 rhn-package-398222 rhn-package-398223 rhn-package-398224 rhn-package-398225 rhn-package-398226 rhn-package-398227 rhn-package-398228 rhn-package-398229 rhn-package-398230 rhn-package-398231 rhn-package-398232 rhn-package-398311 rhn-package-398313 rhn-package-398318 rhn-package-398321 rhn-package-398324 rhn-package-398336 rhn-package-398343 rhn-package-398346 rhn-package-398356 rhn-package-398358 rhn-package-398361 rhn-package-398362 rhn-package-398379 rhn-package-398385 rhn-package-398388 rhn-package-398390 rhn-package-398393 rhn-package-398408 rhn-package-398410 rhn-package-398411 rhn-package-398415 rhn-package-398435 rhn-package-398443 rhn-package-398447 rhn-package-398451 rhn-package-398453 rhn-package-398459 rhn-package-398466 rhn-package-398467 rhn-package-398479 rhn-package-398488 rhn-package-398492 rhn-package-398498 rhn-package-398501 rhn-package-398512 rhn-package-398514 rhn-package-398515 rhn-package-398520 rhn-package-398528 rhn-package-398531 rhn-package-398533 rhn-package-398534 rhn-package-398535 rhn-package-398539 rhn-package-398540 rhn-package-398542 rhn-package-398546 rhn-package-398555 rhn-package-398557 rhn-package-398563 rhn-package-398569 rhn-package-398571 rhn-package-398574 rhn-package-398585 rhn-package-398594 rhn-package-398605 rhn-package-398612 rhn-package-398648 rhn-package-398649 rhn-package-398652 rhn-package-398655 rhn-package-398657 rhn-package-398660 rhn-package-398666 rhn-package-398667 rhn-package-398671 rhn-package-398674 rhn-package-398703 rhn-package-398706 rhn-package-398713 rhn-package-398881 rhn-package-398882 rhn-package-398883 rhn-package-398884 rhn-package-398885 rhn-package-398886 rhn-package-398887 rhn-package-398888 rhn-package-398889 rhn-package-398890 rhn-package-398891 rhn-package-398892 rhn-package-398893 rhn-package-398894 rhn-package-398895 rhn-package-398896 rhn-package-398897 rhn-package-398898 rhn-package-398899 rhn-package-398900 rhn-package-398901 rhn-package-398902 rhn-package-398903 rhn-package-398912 rhn-package-398915 rhn-package-399133 rhn-package-399134 rhn-package-399461 rhn-package-399500 rhn-package-399609 rhn-package-399614 rhn-package-399620 rhn-package-399625 rhn-package-399629 rhn-package-399843 rhn-package-399850 rhn-package-399863 rhn-package-399901 rhn-package-399925 rhn-package-399934 rhn-package-399945 rhn-package-399949 rhn-package-399952 rhn-package-399955 rhn-package-399957 rhn-package-399959 rhn-package-400074 rhn-package-400688 rhn-package-400690 rhn-package-400691 rhn-package-400745 rhn-package-400750 rhn-package-400762 rhn-package-400780 rhn-package-400945 rhn-package-400948 rhn-package-400951 rhn-package-401076 rhn-package-401078 rhn-package-401083 rhn-package-401087 rhn-package-401090 rhn-package-401091 rhn-package-401093 rhn-package-401095 rhn-package-401101 rhn-package-401106 rhn-package-401108 rhn-package-401109 rhn-package-401111 rhn-package-401114 rhn-package-401115 rhn-package-401118 rhn-package-401134 rhn-package-401136 rhn-package-401144 rhn-package-404173 rhn-package-404174 rhn-package-404175 rhn-package-404179 rhn-package-404180 rhn-package-404184 rhn-package-404185 rhn-package-404187 rhn-package-404903 rhn-package-404906 rhn-package-404926 rhn-package-404955 rhn-package-404980 rhn-package-404999 rhn-package-405011 rhn-package-405021 rhn-package-405026 rhn-package-405032 rhn-package-405065 rhn-package-405068 rhn-package-405075 rhn-package-405079 rhn-package-405087 rhn-package-405091 rhn-package-405096 rhn-package-405097 rhn-package-405099 rhn-package-405100 rhn-package-405102 rhn-package-405106 rhn-package-405112 rhn-package-405113 rhn-package-405119 rhn-package-405124 rhn-package-405131 rhn-package-405141 rhn-package-405151 rhn-package-405208 rhn-package-405210 rhn-package-405222 rhn-package-405225 rhn-package-405435 rhn-package-405437 rhn-package-405482 rhn-package-405489 rhn-package-405493 rhn-package-405509 rhn-package-405724 rhn-package-405736 rhn-package-405747 rhn-package-405789 rhn-package-405806 rhn-package-405808 rhn-package-405824 rhn-package-405829 rhn-package-405833 rhn-package-405836 rhn-package-405839 rhn-package-405840 rhn-package-405844 rhn-package-405845 rhn-package-405852 rhn-package-405853 rhn-package-405866 rhn-package-405934 rhn-package-405936 rhn-package-405939 rhn-package-405940 rhn-package-405941 rhn-package-405943 rhn-package-405944 rhn-package-405948 rhn-package-405950 rhn-package-406007 rhn-package-406013 rhn-package-406053 rhn-package-406060 rhn-package-406070 rhn-package-406164 rhn-package-406169 rhn-package-406251 rhn-package-406262 rhn-package-406279 rhn-package-406472 rhn-package-406541 rhn-package-406548 rhn-package-406571 rhn-package-406572 rhn-package-406581 rhn-package-406607 rhn-package-406647 rhn-package-406651 rhn-package-406652 rhn-package-406661 rhn-package-406668 rhn-package-406925 rhn-package-406993 rhn-package-407864 rhn-package-407874 rhn-package-407891 rhn-package-408228 rhn-package-408233 rhn-package-408265 rhn-package-408555 rhn-package-408568 rhn-package-408576 rhn-package-408654 rhn-package-408655 rhn-package-408656 rhn-package-408660 rhn-package-408665 rhn-package-408668 rhn-package-408670 rhn-package-408671 rhn-package-408715 rhn-package-408730 rhn-package-408835 rhn-package-408837 rhn-package-408979 rhn-package-408982 rhn-package-409179 rhn-package-409185 rhn-package-409191 rhn-package-409199 rhn-package-409247 rhn-package-409256 rhn-package-409258 rhn-package-409267 rhn-package-409305 rhn-package-409307 rhn-package-409312 rhn-package-409318 rhn-package-409321 rhn-package-409328 rhn-package-409331 rhn-package-409333 rhn-package-409341 rhn-package-409345 rhn-package-409499 rhn-package-409501 rhn-package-409690 rhn-package-409692 rhn-package-409696 rhn-package-409701 rhn-package-409707 rhn-package-409754 rhn-package-409757 rhn-package-409759 rhn-package-409761 rhn-package-409766 rhn-package-409769 rhn-package-409770 rhn-package-409772 rhn-package-409863 rhn-package-409871 rhn-package-409872 rhn-package-410188 rhn-package-410191 rhn-package-410193 rhn-package-410198 rhn-package-410203 rhn-package-410205 rhn-package-410210 rhn-package-410219 rhn-package-410223 rhn-package-410224 rhn-package-410230 rhn-package-410285 rhn-package-410286 rhn-package-410288 rhn-package-410320 rhn-package-410476 rhn-package-410479 rhn-package-410502 rhn-package-410570 rhn-package-410580 rhn-package-410593 rhn-package-410607 rhn-package-410614 rhn-package-410650 rhn-package-410652 rhn-package-410666 rhn-package-410719 rhn-package-410722 rhn-package-410723 rhn-package-410746 rhn-package-410764 rhn-package-410765 rhn-package-410766 rhn-package-410767 rhn-package-410768 rhn-package-410771 rhn-package-410803 rhn-package-410822 rhn-package-410826 rhn-package-410832 rhn-package-410833 rhn-package-410837 rhn-package-410838 rhn-package-410862 rhn-package-410864 rhn-package-410866 rhn-package-410867 rhn-package-410874 rhn-package-410875 rhn-package-410949 rhn-package-410950 rhn-package-410951 rhn-package-410952 rhn-package-410954 rhn-package-410965 rhn-package-411001 rhn-package-411002 rhn-package-411003 rhn-package-411004 rhn-package-411011 rhn-package-411074 rhn-package-411076 rhn-package-411131 rhn-package-411151 rhn-package-411156 rhn-package-411165 rhn-package-411166 rhn-package-411167 rhn-package-413075 rhn-package-413098 rhn-package-413117 rhn-package-413121 rhn-package-413131 rhn-package-413133 rhn-package-413134 rhn-package-413247 rhn-package-413260 rhn-package-413276 rhn-package-413296 rhn-package-413310 rhn-package-413318 rhn-package-413335 rhn-package-413343 rhn-package-413397 rhn-package-413443 rhn-package-413454 rhn-package-413461 rhn-package-413462 rhn-package-413468 rhn-package-413484 rhn-package-413749 rhn-package-414342 rhn-package-416549 rhn-package-416550 rhn-package-416553 rhn-package-416566 rhn-package-416585 rhn-package-416632 rhn-package-416729 rhn-package-416769 rhn-package-416774 rhn-package-416775 rhn-package-416779 rhn-package-416969 rhn-package-416970 rhn-package-416971 rhn-package-416979 rhn-package-417156 rhn-package-417159 rhn-package-417161 rhn-package-417166 rhn-package-417168 rhn-package-417170 rhn-package-417172 rhn-package-417179 rhn-package-417208 rhn-package-417213 rhn-package-417218 rhn-package-417258 rhn-package-417268 rhn-package-417273 rhn-package-417278 rhn-package-417292 rhn-package-418141 rhn-package-418155 rhn-package-418196 rhn-package-418197 rhn-package-418221 rhn-package-418222 rhn-package-418223 rhn-package-418224 rhn-package-418232 rhn-package-418238 rhn-package-418247 rhn-package-418262 rhn-package-418263 rhn-package-418265 rhn-package-418270 rhn-package-418285 rhn-package-418298 rhn-package-418306 rhn-package-418322 rhn-package-418340 rhn-package-418363 rhn-package-418477 rhn-package-418502 rhn-package-418506 rhn-package-418533 rhn-package-418534 rhn-package-418537 rhn-package-418538 rhn-package-418543 rhn-package-418546 rhn-package-418551 rhn-package-418560 rhn-package-418575 rhn-package-418581 rhn-package-418582 rhn-package-418783 rhn-package-418786 rhn-package-418789 rhn-package-418790 rhn-package-418792 rhn-package-418794 rhn-package-418798 rhn-package-418802 rhn-package-419033 rhn-package-419043 rhn-package-419044 rhn-package-419064 rhn-package-419113 rhn-package-419260 rhn-package-419262 rhn-package-419291 rhn-package-419297 rhn-package-419309 rhn-package-419541 rhn-package-419543 rhn-package-419544 rhn-package-419580 rhn-package-419586 rhn-package-419588 rhn-package-419593 rhn-package-419841 rhn-package-419847 rhn-package-420045 rhn-package-420048 rhn-package-420049 rhn-package-420055 rhn-package-420060 rhn-package-420061 rhn-package-420066 rhn-package-420067 rhn-package-420075 rhn-package-420084 rhn-package-420233 rhn-package-420259 rhn-package-420581 rhn-package-420582 rhn-package-420583 rhn-package-420584 rhn-package-420585 rhn-package-420586 rhn-package-420587 rhn-package-420589 rhn-package-420590 rhn-package-420591 rhn-package-420592 rhn-package-420593 rhn-package-420594 rhn-package-420595 rhn-package-420596 rhn-package-420597 rhn-package-420598 rhn-package-420599 rhn-package-420600 rhn-package-420601 rhn-package-420602 rhn-package-420603 rhn-package-420604 rhn-package-420605 rhn-package-420606 rhn-package-420607 rhn-package-420609 rhn-package-420629 rhn-package-420631 rhn-package-420634 rhn-package-420641 rhn-package-420642 rhn-package-420643 rhn-package-420647 rhn-package-420648 rhn-package-420650 rhn-package-420651 rhn-package-420652 rhn-package-420653 rhn-package-420660 rhn-package-420662 rhn-package-420671 rhn-package-420678 rhn-package-420694 rhn-package-420696 rhn-package-420698 rhn-package-420707 rhn-package-420710 rhn-package-420721 rhn-package-420730 rhn-package-420731 rhn-package-420732 rhn-package-420738 rhn-package-420740 rhn-package-420743 rhn-package-420754 rhn-package-420764 rhn-package-420765 rhn-package-420772 rhn-package-420786 rhn-package-420798 rhn-package-420811 rhn-package-420817 rhn-package-420820 rhn-package-420832 rhn-package-420837 rhn-package-420838 rhn-package-420850 rhn-package-420851 rhn-package-420854 rhn-package-420864 rhn-package-420867 rhn-package-420871 rhn-package-420880 rhn-package-420882 rhn-package-420884 rhn-package-420887 rhn-package-420891 rhn-package-420893 rhn-package-420895 rhn-package-420898 rhn-package-420904 rhn-package-420909 rhn-package-420920 rhn-package-420923 rhn-package-420934 rhn-package-420944 rhn-package-420945 rhn-package-420955 rhn-package-420965 rhn-package-420976 rhn-package-420999 rhn-package-421021 rhn-package-421030 rhn-package-421032 rhn-package-421040 rhn-package-421042 rhn-package-421054 rhn-package-421070 rhn-package-421076 rhn-package-421103 rhn-package-421107 rhn-package-421108 rhn-package-421113 rhn-package-421114 rhn-package-421116 rhn-package-421117 rhn-package-421119 rhn-package-421121 rhn-package-421123 rhn-package-421126 rhn-package-421132 rhn-package-421134 rhn-package-421135 rhn-package-421136 rhn-package-421139 rhn-package-421144 rhn-package-421153 rhn-package-421154 rhn-package-421156 rhn-package-421159 rhn-package-421160 rhn-package-421162 rhn-package-421165 rhn-package-421167 rhn-package-421173 rhn-package-421181 rhn-package-421192 rhn-package-421193 rhn-package-421196 rhn-package-421215 rhn-package-421246 rhn-package-421249 rhn-package-421255 rhn-package-421266 rhn-package-421276 rhn-package-421284 rhn-package-421301 rhn-package-421306 rhn-package-421320 rhn-package-421323 rhn-package-421352 rhn-package-421353 rhn-package-421354 rhn-package-421355 rhn-package-421356 rhn-package-421358 rhn-package-421359 rhn-package-421360 rhn-package-421361 rhn-package-421462 rhn-package-421515 rhn-package-421520 rhn-package-421555 rhn-package-421568 rhn-package-421587 rhn-package-421599 rhn-package-421612 rhn-package-421627 rhn-package-421631 rhn-package-421632 rhn-package-421633 rhn-package-421634 rhn-package-421635 rhn-package-421648 rhn-package-421652 rhn-package-421658 rhn-package-421659 rhn-package-421666 rhn-package-421670 rhn-package-421671 rhn-package-421679 rhn-package-421680 rhn-package-421685 rhn-package-421687 rhn-package-421689 rhn-package-421697 rhn-package-421701 rhn-package-421702 rhn-package-421704 rhn-package-421705 rhn-package-421707 rhn-package-421711 rhn-package-421715 rhn-package-421722 rhn-package-421733 rhn-package-421737 rhn-package-421743 rhn-package-421744 rhn-package-421745 rhn-package-421756 rhn-package-421764 rhn-package-421771 rhn-package-421773 rhn-package-421775 rhn-package-421776 rhn-package-421785 rhn-package-421788 rhn-package-421798 rhn-package-421816 rhn-package-421824 rhn-package-421829 rhn-package-421855 rhn-package-421872 rhn-package-421873 rhn-package-421874 rhn-package-421875 rhn-package-421876 rhn-package-421877 rhn-package-421878 rhn-package-421879 rhn-package-421880 rhn-package-421881 rhn-package-421882 rhn-package-421883 rhn-package-421884 rhn-package-421885 rhn-package-421886 rhn-package-421887 rhn-package-421888 rhn-package-421889 rhn-package-421890 rhn-package-421891 rhn-package-421892 rhn-package-421893 rhn-package-421894 rhn-package-421895 rhn-package-421898 rhn-package-421908 rhn-package-421914 rhn-package-421915 rhn-package-421923 rhn-package-421939 rhn-package-421956 rhn-package-421992 rhn-package-422001 rhn-package-422013 rhn-package-422014 rhn-package-422019 rhn-package-422022 rhn-package-422029 rhn-package-422035 rhn-package-422039 rhn-package-422043 rhn-package-422054 rhn-package-422060 rhn-package-422067 rhn-package-422071 rhn-package-422075 rhn-package-422086 rhn-package-422104 rhn-package-422107 rhn-package-422118 rhn-package-422119 rhn-package-422122 rhn-package-422134 rhn-package-422136 rhn-package-422153 rhn-package-422154 rhn-package-422158 rhn-package-422161 rhn-package-422162 rhn-package-422163 rhn-package-422164 rhn-package-422169 rhn-package-422172 rhn-package-422173 rhn-package-422174 rhn-package-422175 rhn-package-422177 rhn-package-422207 rhn-package-422211 rhn-package-422215 rhn-package-422218 rhn-package-422225 rhn-package-422229 rhn-package-422230 rhn-package-422235 rhn-package-422243 rhn-package-422249 rhn-package-422261 rhn-package-422265 rhn-package-422273 rhn-package-422279 rhn-package-422287 rhn-package-422293 rhn-package-422295 rhn-package-422296 rhn-package-422303 rhn-package-422304 rhn-package-422323 rhn-package-422325 rhn-package-422329 rhn-package-422337 rhn-package-422338 rhn-package-422343 rhn-package-422346 rhn-package-422349 rhn-package-422363 rhn-package-422371 rhn-package-422377 rhn-package-422380 rhn-package-422384 rhn-package-422385 rhn-package-422386 rhn-package-422387 rhn-package-422397 rhn-package-422399 rhn-package-422401 rhn-package-422404 rhn-package-422429 rhn-package-422433 rhn-package-422434 rhn-package-422435 rhn-package-422437 rhn-package-422440 rhn-package-422456 rhn-package-422460 rhn-package-422461 rhn-package-422470 rhn-package-422478 rhn-package-422480 rhn-package-422484 rhn-package-422490 rhn-package-422496 rhn-package-422501 rhn-package-422506 rhn-package-422514 rhn-package-422520 rhn-package-422527 rhn-package-422528 rhn-package-422539 rhn-package-422544 rhn-package-422548 rhn-package-422549 rhn-package-422552 rhn-package-422567 rhn-package-422571 rhn-package-422583 rhn-package-422584 rhn-package-422588 rhn-package-422589 rhn-package-422590 rhn-package-422592 rhn-package-422595 rhn-package-422596 rhn-package-422597 rhn-package-422598 rhn-package-422603 rhn-package-422604 rhn-package-422614 rhn-package-422623 rhn-package-422627 rhn-package-422631 rhn-package-422635 rhn-package-422644 rhn-package-422650 rhn-package-422651 rhn-package-422705 rhn-package-422706 rhn-package-422709 rhn-package-422719 rhn-package-422748 rhn-package-422749 rhn-package-422751 rhn-package-422758 rhn-package-422951 rhn-package-422959 rhn-package-423004 rhn-package-423016 rhn-package-423116 rhn-package-423117 rhn-package-423118 rhn-package-423122 rhn-package-423124 rhn-package-423132 rhn-package-423142 rhn-package-423151 rhn-package-423158 rhn-package-423159 rhn-package-423164 rhn-package-423167 rhn-package-423168 rhn-package-423172 rhn-package-423174 rhn-package-423177 rhn-package-423182 rhn-package-423184 rhn-package-423192 rhn-package-423194 rhn-package-423195 rhn-package-423197 rhn-package-423202 rhn-package-423203 rhn-package-423206 rhn-package-423211 rhn-package-423212 rhn-package-423217 rhn-package-423220 rhn-package-423227 rhn-package-423229 rhn-package-423240 rhn-package-423244 rhn-package-423248 rhn-package-423253 rhn-package-423254 rhn-package-423259 rhn-package-423273 rhn-package-423289 rhn-package-423294 rhn-package-423311 rhn-package-423318 rhn-package-423320 rhn-package-423321 rhn-package-423322 rhn-package-423323 rhn-package-423324 rhn-package-423329 rhn-package-423330 rhn-package-423333 rhn-package-423346 rhn-package-423349 rhn-package-423356 rhn-package-423361 rhn-package-423414 rhn-package-423419 rhn-package-423420 rhn-package-423514 rhn-package-423530 rhn-package-423532 rhn-package-423535 rhn-package-423544 rhn-package-423554 rhn-package-423564 rhn-package-423610 rhn-package-423613 rhn-package-423614 rhn-package-423615 rhn-package-423619 rhn-package-423628 rhn-package-423685 rhn-package-423697 rhn-package-424953 rhn-package-424958 rhn-package-424959 rhn-package-424963 rhn-package-424971 rhn-package-424972 rhn-package-424975 rhn-package-424983 rhn-package-424989 rhn-package-425825 rhn-package-425827 rhn-package-425831 rhn-package-425838 rhn-package-425846 rhn-package-425849 rhn-package-425859 rhn-package-425861 rhn-package-425940 rhn-package-425982 rhn-package-425983 rhn-package-425984 rhn-package-425995 rhn-package-426054 rhn-package-426078 rhn-package-426091 rhn-package-426095 rhn-package-426119 rhn-package-426277 rhn-package-426279 rhn-package-426282 rhn-package-426284 rhn-package-426287 rhn-package-426311 rhn-package-426313 rhn-package-426324 rhn-package-426325 rhn-package-426329 rhn-package-426336 rhn-package-426367 rhn-package-426370 rhn-package-426371 rhn-package-426372 rhn-package-426373 rhn-package-426897 rhn-package-426898 rhn-package-426994 rhn-package-426998 rhn-package-427039 rhn-package-427044 rhn-package-427046 rhn-package-427050 rhn-package-427051 rhn-package-427053 rhn-package-427062 rhn-package-427064 rhn-package-427067 rhn-package-427072 rhn-package-427092 rhn-package-427098 rhn-package-427145 rhn-package-427147 rhn-package-427642 rhn-package-427655 rhn-package-428029 rhn-package-428033 rhn-package-428036 rhn-package-428039 rhn-package-428041 rhn-package-428048 rhn-package-428051 rhn-package-428470 rhn-package-428548 rhn-package-428581 rhn-package-428590 rhn-package-428591 rhn-package-428758 rhn-package-428773 rhn-package-428776 rhn-package-428779 rhn-package-428789 rhn-package-428791 rhn-package-428797 rhn-package-428804 rhn-package-428805 rhn-package-428819 rhn-package-428823 rhn-package-428826 rhn-package-428827 rhn-package-428828 rhn-package-428829 rhn-package-428839 rhn-package-428871 rhn-package-428898 rhn-package-428899 rhn-package-428904 rhn-package-428972 rhn-package-428992 rhn-package-428994 rhn-package-428997 rhn-package-429007 rhn-package-429013 rhn-package-429112 rhn-package-429114 rhn-package-429241 rhn-package-429247 rhn-package-429333 rhn-package-429334 rhn-package-429340 rhn-package-429342 rhn-package-429347 rhn-package-429503 rhn-package-429517 rhn-package-429518 rhn-package-429522 rhn-package-429535 rhn-package-429538 rhn-package-429541 rhn-package-429542 rhn-package-429545 rhn-package-429554 rhn-package-429557 rhn-package-429559 rhn-package-429569 rhn-package-429611 rhn-package-429612 rhn-package-429656 rhn-package-429661 rhn-package-429709 rhn-package-429719 rhn-package-429732 rhn-package-429918 rhn-package-429919 rhn-package-430007 rhn-package-430022 rhn-package-430024 rhn-package-430074 rhn-package-430080 rhn-package-430082 rhn-package-430091 rhn-package-430104 rhn-package-430105 rhn-package-430112 rhn-package-430123 rhn-package-430136 rhn-package-430145 rhn-package-430410 rhn-package-430418 rhn-package-430429 rhn-package-430430 rhn-package-430524 rhn-package-430529 rhn-package-430530 rhn-package-430532 rhn-package-430533 rhn-package-430534 rhn-package-430535 rhn-package-430536 rhn-package-430537 rhn-package-430538 rhn-package-430539 rhn-package-430540 rhn-package-430541 rhn-package-430542 rhn-package-430543 rhn-package-430544 rhn-package-430545 rhn-package-430546 rhn-package-430547 rhn-package-430548 rhn-package-430549 rhn-package-430550 rhn-package-430551 rhn-package-430552 rhn-package-430553 rhn-package-430554 rhn-package-430555 rhn-package-430556 rhn-package-430557 rhn-package-430558 rhn-package-430559 rhn-package-430560 rhn-package-430561 rhn-package-430562 rhn-package-430563 rhn-package-430564 rhn-package-430565 rhn-package-430566 rhn-package-430567 rhn-package-430568 rhn-package-430569 rhn-package-430570 rhn-package-430571 rhn-package-430572 rhn-package-430573 rhn-package-430574 rhn-package-430577 rhn-package-430584 rhn-package-430585 rhn-package-430594 rhn-package-430599 rhn-package-430606 rhn-package-430612 rhn-package-430616 rhn-package-430617 rhn-package-430631 rhn-package-430636 rhn-package-430663 rhn-package-430665 rhn-package-430677 rhn-package-430678 rhn-package-430686 rhn-package-430687 rhn-package-430689 rhn-package-430697 rhn-package-431073 rhn-package-431076 rhn-package-431077 rhn-package-431078 rhn-package-431082 rhn-package-431086 rhn-package-431482 rhn-package-431493 rhn-package-431504 rhn-package-431513 rhn-package-431604 rhn-package-431609 rhn-package-431611 rhn-package-431616 rhn-package-431625 rhn-package-431626 rhn-package-431633 rhn-package-431639 rhn-package-431642 rhn-package-431647 rhn-package-431653 rhn-package-431659 rhn-package-431664 rhn-package-431665 rhn-package-431676 rhn-package-431684 rhn-package-431685 rhn-package-431687 rhn-package-431691 rhn-package-431692 rhn-package-431693 rhn-package-431697 rhn-package-431699 rhn-package-431701 rhn-package-431704 rhn-package-431749 rhn-package-431754 rhn-package-431755 rhn-package-431756 rhn-package-431876 rhn-package-431881 rhn-package-431885 rhn-package-431886 rhn-package-431890 rhn-package-431893 rhn-package-431894 rhn-package-431896 rhn-package-431898 rhn-package-431901 rhn-package-431904 rhn-package-431925 rhn-package-431932 rhn-package-431938 rhn-package-431939 rhn-package-431954 rhn-package-431957 rhn-package-431958 rhn-package-431959 rhn-package-431982 rhn-package-431987 rhn-package-432223 rhn-package-432469 rhn-package-432470 rhn-package-432478 rhn-package-432480 rhn-package-432509 rhn-package-432674 rhn-package-432676 rhn-package-432808 rhn-package-432811 rhn-package-432812 rhn-package-432814 rhn-package-432816 rhn-package-432821 rhn-package-432822 rhn-package-432830 rhn-package-432831 rhn-package-432835 rhn-package-432909 rhn-package-432915 rhn-package-433072 rhn-package-433075 rhn-package-433076 rhn-package-433080 rhn-package-433088 rhn-package-433157 rhn-package-433161 rhn-package-433238 rhn-package-433239 rhn-package-433241 rhn-package-433383 rhn-package-433401 rhn-package-433409 rhn-package-433410 rhn-package-433430 rhn-package-433439 rhn-package-433469 rhn-package-433471 rhn-package-433482 rhn-package-433488 rhn-package-433491 rhn-package-433495 rhn-package-433704 rhn-package-433710 rhn-package-433711 rhn-package-433717 rhn-package-433721 rhn-package-433734 rhn-package-433738 rhn-package-433739 rhn-package-433766 rhn-package-433767 rhn-package-433781 rhn-package-433828 rhn-package-433831 rhn-package-433834 rhn-package-434251 rhn-package-434254 rhn-package-434255 rhn-package-434257 rhn-package-434260 rhn-package-434263 rhn-package-434266 rhn-package-434274 rhn-package-434275 rhn-package-434279 rhn-package-434400 rhn-package-434409 rhn-package-434410 rhn-package-437315 rhn-package-437317 rhn-package-437319 rhn-package-437320 rhn-package-437328 rhn-package-437329 rhn-package-437330 rhn-package-437338 rhn-package-437343 rhn-package-437350 rhn-package-437359 rhn-package-437836 rhn-package-437837 rhn-package-437838 rhn-package-437842 rhn-package-437961 rhn-package-437970 rhn-package-438018 rhn-package-438025 rhn-package-438208 rhn-package-438213 rhn-package-438216 rhn-package-438217 rhn-package-438283 rhn-package-438501 rhn-package-438606 rhn-package-438617 rhn-package-438996 rhn-package-439002 rhn-package-439164 rhn-package-439170 rhn-package-439185 rhn-package-439196 rhn-package-439211 rhn-package-439244 rhn-package-439269 rhn-package-439614 rhn-package-439616 rhn-package-439621 rhn-package-440235 rhn-package-440241 rhn-package-440242 rhn-package-440243 rhn-package-440247 rhn-package-440249 rhn-package-440253 rhn-package-440258 rhn-package-440262 rhn-package-440264 rhn-package-440324 rhn-package-440560 rhn-package-440590 rhn-package-440593 rhn-package-440671 rhn-package-440673 rhn-package-440809 rhn-package-440817 rhn-package-440820 rhn-package-440828 rhn-package-440832 rhn-package-440837 rhn-package-440838 rhn-package-440850 rhn-package-440851 rhn-package-440859 rhn-package-440865 rhn-package-440876 rhn-package-440877 rhn-package-440878 rhn-package-440883 rhn-package-440895 rhn-package-440902 rhn-package-440904 rhn-package-440909 rhn-package-440925 rhn-package-440927 rhn-package-440929 rhn-package-440930 rhn-package-440936 rhn-package-440945 rhn-package-440952 rhn-package-440954 rhn-package-440961 rhn-package-440966 rhn-package-440974 rhn-package-441004 rhn-package-441005 rhn-package-441006 rhn-package-441007 rhn-package-441008 rhn-package-441009 rhn-package-441010 rhn-package-441011 rhn-package-441012 rhn-package-441013 rhn-package-441014 rhn-package-441015 rhn-package-441016 rhn-package-441017 rhn-package-441018 rhn-package-441019 rhn-package-441020 rhn-package-441021 rhn-package-441022 rhn-package-441023 rhn-package-441024 rhn-package-441025 rhn-package-441026 rhn-package-441030 rhn-package-441034 rhn-package-441038 rhn-package-441041 rhn-package-441049 rhn-package-441051 rhn-package-441053 rhn-package-441066 rhn-package-441069 rhn-package-441072 rhn-package-441082 rhn-package-441086 rhn-package-441088 rhn-package-441091 rhn-package-441092 rhn-package-441098 rhn-package-441102 rhn-package-441106 rhn-package-441107 rhn-package-441130 rhn-package-441138 rhn-package-441140 rhn-package-441151 rhn-package-441155 rhn-package-441156 rhn-package-441216 rhn-package-441226 rhn-package-441227 rhn-package-441234 rhn-package-441242 rhn-package-441245 rhn-package-441247 rhn-package-441248 rhn-package-441261 rhn-package-441266 rhn-package-441267 rhn-package-441270 rhn-package-441272 rhn-package-441278 rhn-package-441296 rhn-package-441301 rhn-package-441304 rhn-package-441308 rhn-package-441316 rhn-package-441317 rhn-package-441327 rhn-package-441331 rhn-package-441335 rhn-package-441337 rhn-package-441340 rhn-package-441342 rhn-package-441348 rhn-package-441352 rhn-package-441358 rhn-package-441359 rhn-package-441362 rhn-package-441373 rhn-package-441375 rhn-package-441379 rhn-package-441389 rhn-package-441390 rhn-package-441391 rhn-package-441392 rhn-package-441393 rhn-package-441394 rhn-package-441395 rhn-package-441396 rhn-package-441397 rhn-package-441398 rhn-package-441399 rhn-package-441400 rhn-package-441401 rhn-package-441402 rhn-package-441403 rhn-package-441404 rhn-package-441405 rhn-package-441406 rhn-package-441407 rhn-package-441408 rhn-package-441409 rhn-package-441410 rhn-package-441411 rhn-package-441412 rhn-package-441413 rhn-package-441414 rhn-package-441415 rhn-package-441416 rhn-package-441417 rhn-package-441418 rhn-package-441420 rhn-package-441421 rhn-package-441422 rhn-package-441423 rhn-package-441424 rhn-package-441425 rhn-package-441426 rhn-package-441427 rhn-package-441428 rhn-package-441429 rhn-package-441430 rhn-package-441431 rhn-package-441434 rhn-package-441436 rhn-package-441437 rhn-package-441439 rhn-package-441440 rhn-package-441441 rhn-package-441442 rhn-package-441443 rhn-package-441444 rhn-package-441445 rhn-package-441446 rhn-package-441447 rhn-package-441448 rhn-package-441449 rhn-package-441450 rhn-package-441451 rhn-package-441452 rhn-package-441455 rhn-package-441456 rhn-package-441457 rhn-package-441459 rhn-package-441460 rhn-package-441461 rhn-package-441462 rhn-package-441463 rhn-package-441464 rhn-package-441465 rhn-package-441466 rhn-package-441467 rhn-package-441468 rhn-package-441469 rhn-package-441470 rhn-package-441471 rhn-package-441472 rhn-package-441473 rhn-package-441474 rhn-package-441475 rhn-package-441476 rhn-package-441478 rhn-package-441479 rhn-package-441480 rhn-package-441483 rhn-package-441484 rhn-package-441485 rhn-package-441487 rhn-package-441488 rhn-package-441489 rhn-package-441490 rhn-package-441491 rhn-package-441492 rhn-package-441493 rhn-package-441494 rhn-package-441495 rhn-package-441496 rhn-package-441497 rhn-package-441498 rhn-package-441499 rhn-package-441500 rhn-package-441501 rhn-package-441502 rhn-package-441503 rhn-package-441504 rhn-package-441505 rhn-package-441506 rhn-package-441507 rhn-package-441508 rhn-package-441510 rhn-package-441511 rhn-package-441512 rhn-package-441513 rhn-package-441514 rhn-package-441515 rhn-package-441516 rhn-package-441518 rhn-package-441519 rhn-package-441520 rhn-package-441521 rhn-package-441522 rhn-package-441523 rhn-package-441524 rhn-package-441525 rhn-package-441526 rhn-package-441527 rhn-package-441528 rhn-package-441529 rhn-package-441530 rhn-package-441531 rhn-package-441532 rhn-package-441533 rhn-package-441534 rhn-package-441535 rhn-package-441536 rhn-package-441537 rhn-package-441612 rhn-package-441613 rhn-package-441614 rhn-package-441615 rhn-package-441616 rhn-package-441617 rhn-package-441618 rhn-package-441619 rhn-package-441620 rhn-package-441621 rhn-package-441622 rhn-package-441623 rhn-package-441624 rhn-package-441625 rhn-package-441626 rhn-package-441627 rhn-package-441628 rhn-package-441629 rhn-package-441630 rhn-package-441631 rhn-package-441633 rhn-package-441634 rhn-package-441635 rhn-package-441636 rhn-package-441638 rhn-package-441639 rhn-package-441640 rhn-package-441641 rhn-package-441642 rhn-package-441643 rhn-package-441644 rhn-package-441645 rhn-package-441646 rhn-package-441647 rhn-package-441648 rhn-package-441649 rhn-package-441650 rhn-package-441651 rhn-package-441652 rhn-package-441653 rhn-package-441654 rhn-package-441655 rhn-package-441656 rhn-package-441657 rhn-package-441658 rhn-package-441659 rhn-package-441660 rhn-package-441661 rhn-package-441662 rhn-package-441663 rhn-package-441664 rhn-package-441665 rhn-package-441666 rhn-package-441667 rhn-package-441668 rhn-package-441669 rhn-package-441670 rhn-package-441671 rhn-package-441672 rhn-package-441673 rhn-package-441674 rhn-package-441675 rhn-package-441676 rhn-package-441677 rhn-package-441678 rhn-package-441679 rhn-package-441680 rhn-package-441681 rhn-package-441682 rhn-package-441683 rhn-package-441684 rhn-package-441685 rhn-package-441686 rhn-package-441687 rhn-package-441688 rhn-package-441689 rhn-package-441690 rhn-package-441691 rhn-package-441693 rhn-package-441694 rhn-package-441695 rhn-package-441696 rhn-package-441697 rhn-package-441698 rhn-package-441699 rhn-package-441700 rhn-package-441701 rhn-package-441702 rhn-package-441703 rhn-package-441704 rhn-package-441705 rhn-package-441706 rhn-package-441707 rhn-package-441710 rhn-package-441711 rhn-package-441713 rhn-package-441714 rhn-package-441715 rhn-package-441716 rhn-package-441717 rhn-package-441718 rhn-package-441719 rhn-package-441721 rhn-package-441722 rhn-package-441723 rhn-package-441724 rhn-package-441725 rhn-package-441726 rhn-package-441727 rhn-package-441728 rhn-package-441729 rhn-package-441730 rhn-package-441731 rhn-package-441732 rhn-package-441733 rhn-package-441734 rhn-package-441735 rhn-package-441736 rhn-package-441737 rhn-package-441738 rhn-package-441747 rhn-package-441748 rhn-package-441749 rhn-package-441750 rhn-package-441751 rhn-package-441752 rhn-package-441753 rhn-package-441754 rhn-package-441755 rhn-package-441756 rhn-package-441757 rhn-package-441758 rhn-package-441759 rhn-package-441760 rhn-package-441761 rhn-package-441762 rhn-package-441763 rhn-package-441764 rhn-package-441765 rhn-package-441768 rhn-package-441769 rhn-package-441770 rhn-package-441771 rhn-package-441772 rhn-package-441773 rhn-package-441774 rhn-package-441775 rhn-package-441776 rhn-package-441777 rhn-package-441778 rhn-package-441779 rhn-package-441780 rhn-package-441781 rhn-package-441782 rhn-package-441783 rhn-package-441784 rhn-package-441785 rhn-package-441786 rhn-package-441787 rhn-package-441788 rhn-package-441789 rhn-package-441791 rhn-package-441792 rhn-package-441793 rhn-package-441794 rhn-package-441795 rhn-package-441796 rhn-package-441797 rhn-package-441800 rhn-package-441801 rhn-package-441802 rhn-package-441803 rhn-package-441804 rhn-package-441805 rhn-package-441806 rhn-package-441807 rhn-package-441808 rhn-package-441809 rhn-package-441810 rhn-package-441811 rhn-package-441812 rhn-package-441813 rhn-package-441814 rhn-package-441815 rhn-package-441816 rhn-package-441817 rhn-package-441818 rhn-package-441819 rhn-package-441820 rhn-package-441821 rhn-package-441822 rhn-package-441823 rhn-package-441824 rhn-package-441826 rhn-package-441827 rhn-package-441828 rhn-package-441829 rhn-package-441830 rhn-package-441831 rhn-package-441832 rhn-package-441833 rhn-package-441835 rhn-package-441836 rhn-package-441837 rhn-package-441838 rhn-package-441839 rhn-package-441840 rhn-package-441841 rhn-package-441842 rhn-package-441843 rhn-package-441844 rhn-package-441845 rhn-package-441846 rhn-package-441847 rhn-package-441848 rhn-package-441849 rhn-package-441850 rhn-package-441851 rhn-package-441852 rhn-package-441853 rhn-package-441854 rhn-package-441855 rhn-package-441856 rhn-package-441857 rhn-package-441858 rhn-package-441859 rhn-package-441860 rhn-package-441861 rhn-package-441862 rhn-package-441863 rhn-package-441864 rhn-package-441865 rhn-package-441866 rhn-package-441867 rhn-package-441868 rhn-package-441869 rhn-package-441870 rhn-package-441871 rhn-package-441872 rhn-package-441873 rhn-package-441874 rhn-package-441875 rhn-package-441876 rhn-package-441879 rhn-package-441880 rhn-package-441881 rhn-package-441882 rhn-package-441883 rhn-package-441884 rhn-package-441885 rhn-package-441886 rhn-package-441887 rhn-package-441888 rhn-package-441889 rhn-package-441890 rhn-package-441891 rhn-package-441892 rhn-package-441893 rhn-package-441894 rhn-package-441895 rhn-package-441896 rhn-package-441897 rhn-package-441898 rhn-package-441899 rhn-package-441901 rhn-package-441904 rhn-package-441905 rhn-package-441906 rhn-package-441907 rhn-package-441908 rhn-package-441909 rhn-package-441910 rhn-package-441911 rhn-package-441912 rhn-package-441913 rhn-package-441915 rhn-package-441916 rhn-package-441917 rhn-package-441918 rhn-package-441919 rhn-package-441920 rhn-package-441921 rhn-package-441922 rhn-package-441923 rhn-package-441924 rhn-package-441925 rhn-package-441926 rhn-package-441927 rhn-package-441928 rhn-package-441929 rhn-package-441930 rhn-package-441931 rhn-package-441932 rhn-package-441933 rhn-package-441934 rhn-package-441935 rhn-package-441936 rhn-package-441937 rhn-package-441938 rhn-package-441939 rhn-package-441941 rhn-package-441942 rhn-package-441968 rhn-package-441977 rhn-package-441978 rhn-package-441980 rhn-package-441996 rhn-package-441997 rhn-package-441998 rhn-package-442022 rhn-package-442023 rhn-package-442037 rhn-package-442051 rhn-package-442167 rhn-package-442178 rhn-package-442263 rhn-package-442298 rhn-package-442310 rhn-package-442312 rhn-package-442326 rhn-package-442354 rhn-package-442362 rhn-package-442382 rhn-package-442385 rhn-package-442407 rhn-package-442408 rhn-package-442454 rhn-package-442455 rhn-package-442501 rhn-package-442503 rhn-package-442514 rhn-package-442524 rhn-package-442526 rhn-package-442530 rhn-package-442534 rhn-package-442536 rhn-package-442537 rhn-package-442540 rhn-package-442549 rhn-package-442550 rhn-package-442555 rhn-package-443389 rhn-package-443391 rhn-package-443392 rhn-package-444065 rhn-package-444126 rhn-package-444143 rhn-package-444146 rhn-package-444212 rhn-package-444219 rhn-package-444225 rhn-package-444232 rhn-package-444239 rhn-package-444343 rhn-package-444431 rhn-package-444437 rhn-package-444446 rhn-package-444447 rhn-package-446645 rhn-package-446655 rhn-package-446656 rhn-package-446657 rhn-package-446662 rhn-package-446675 rhn-package-446679 rhn-package-446766 rhn-package-446769 rhn-package-446772 rhn-package-446782 rhn-package-446843 rhn-package-446846 rhn-package-446849 rhn-package-446854 rhn-package-446861 rhn-package-446862 rhn-package-446863 rhn-package-446866 rhn-package-446867 rhn-package-446873 rhn-package-446888 rhn-package-446903 rhn-package-446911 rhn-package-446913 rhn-package-446919 rhn-package-447096 rhn-package-447131 rhn-package-447137 rhn-package-447143 rhn-package-447144 rhn-package-447262 rhn-package-447267 rhn-package-447403 rhn-package-447435 rhn-package-447634 rhn-package-447641 rhn-package-447650 rhn-package-447651 rhn-package-447653 rhn-package-447657 rhn-package-447660 rhn-package-447789 rhn-package-447795 rhn-package-447799 rhn-package-447805 rhn-package-447813 rhn-package-447821 rhn-package-448454 rhn-package-448461 rhn-package-448465 rhn-package-448501 rhn-package-448506 rhn-package-448509 rhn-package-448516 rhn-package-448526 rhn-package-448537 rhn-package-448538 rhn-package-448542 rhn-package-448549 rhn-package-448551 rhn-package-448553 rhn-package-448560 rhn-package-448581 rhn-package-448582 rhn-package-448589 rhn-package-448590 rhn-package-448601 rhn-package-448607 rhn-package-448617 rhn-package-448627 rhn-package-448630 rhn-package-448632 rhn-package-448636 rhn-package-448663 rhn-package-448665 rhn-package-448667 rhn-package-448670 rhn-package-448685 rhn-package-448687 rhn-package-448704 rhn-package-448723 rhn-package-448749 rhn-package-448774 rhn-package-448780 rhn-package-448788 rhn-package-448817 rhn-package-448830 rhn-package-449054 rhn-package-449061 rhn-package-449068 rhn-package-449069 rhn-package-449070 rhn-package-449071 rhn-package-449072 rhn-package-449073 rhn-package-449074 rhn-package-449075 rhn-package-449076 rhn-package-449077 rhn-package-449078 rhn-package-449079 rhn-package-449080 rhn-package-449081 rhn-package-449082 rhn-package-449083 rhn-package-449084 rhn-package-449085 rhn-package-449086 rhn-package-449087 rhn-package-449088 rhn-package-449089 rhn-package-449090 rhn-package-449124 rhn-package-449125 rhn-package-449128 rhn-package-449129 rhn-package-449133 rhn-package-449139 rhn-package-449141 rhn-package-449142 rhn-package-449148 rhn-package-449160 rhn-package-449358 rhn-package-449705 rhn-package-449709 rhn-package-449712 rhn-package-449714 rhn-package-449718 rhn-package-449723 rhn-package-449732 rhn-package-449945 rhn-package-449950 rhn-package-449952 rhn-package-449953 rhn-package-449959 rhn-package-449960 rhn-package-450117 rhn-package-450122 rhn-package-450128 rhn-package-450131 rhn-package-450145 rhn-package-450149 rhn-package-450161 rhn-package-450164 rhn-package-450166 rhn-package-450168 rhn-package-450169 rhn-package-450185 rhn-package-450207 rhn-package-450263 rhn-package-450269 rhn-package-450278 rhn-package-450284 rhn-package-450286 rhn-package-450310 rhn-package-450321 rhn-package-450324 rhn-package-450399 rhn-package-450401 rhn-package-450403 rhn-package-450404 rhn-package-450412 rhn-package-450414 rhn-package-450420 rhn-package-450426 rhn-package-450496 rhn-package-450501 rhn-package-450507 rhn-package-450510 rhn-package-450849 rhn-package-450853 rhn-package-450857 rhn-package-450867 rhn-package-450870 rhn-package-450872 rhn-package-450875 rhn-package-450884 rhn-package-450887 rhn-package-450989 rhn-package-450990 rhn-package-450997 rhn-package-450999 rhn-package-451115 rhn-package-451117 rhn-package-451118 rhn-package-451125 rhn-package-451128 rhn-package-451129 rhn-package-451132 rhn-package-451134 rhn-package-451136 rhn-package-451140 rhn-package-451141 rhn-package-451142 rhn-package-451147 rhn-package-451149 rhn-package-451155 rhn-package-451159 rhn-package-451168 rhn-package-451178 rhn-package-451179 rhn-package-451490 rhn-package-451495 rhn-package-451499 rhn-package-451501 rhn-package-451510 rhn-package-451521 rhn-package-451524 rhn-package-451531 rhn-package-451546 rhn-package-453863 rhn-package-453870 rhn-package-453873 rhn-package-453879 rhn-package-453887 rhn-package-454061 rhn-package-454325 rhn-package-454452 rhn-package-454453 rhn-package-454455 rhn-package-454457 rhn-package-454467 rhn-package-454481 rhn-package-454486 rhn-package-454491 rhn-package-454496 rhn-package-454593 rhn-package-454603 rhn-package-454607 rhn-package-454631 rhn-package-454768 rhn-package-454773 rhn-package-454776 rhn-package-454780 rhn-package-454783 rhn-package-454785 rhn-package-454793 rhn-package-454794 rhn-package-454800 rhn-package-454804 rhn-package-454952 rhn-package-454955 rhn-package-454956 rhn-package-454963 rhn-package-454980 rhn-package-454982 rhn-package-454993 rhn-package-454996 rhn-package-455153 rhn-package-455171 rhn-package-455223 rhn-package-455225 rhn-package-455226 rhn-package-455302 rhn-package-455313 rhn-package-455339 rhn-package-455352 rhn-package-455357 rhn-package-455602 rhn-package-455605 rhn-package-455607 rhn-package-455701 rhn-package-455702 rhn-package-455708 rhn-package-455710 rhn-package-455771 rhn-package-455773 rhn-package-455774 rhn-package-455966 rhn-package-456001 rhn-package-456005 rhn-package-456008 rhn-package-456009 rhn-package-456013 rhn-package-456026 rhn-package-456226 rhn-package-456230 rhn-package-456234 rhn-package-456243 rhn-package-456247 rhn-package-456253 rhn-package-456254 rhn-package-456256 rhn-package-456265 rhn-package-456276 rhn-package-456279 rhn-package-456342 rhn-package-456344 rhn-package-456412 rhn-package-456432 rhn-package-456449 rhn-package-456455 rhn-package-456456 rhn-package-456533 rhn-package-456537 rhn-package-456540 rhn-package-456543 rhn-package-456547 rhn-package-456557 rhn-package-457416 rhn-package-457419 rhn-package-457423 rhn-package-458031 rhn-package-458034 rhn-package-458039 rhn-package-458158 rhn-package-458161 rhn-package-458178 rhn-package-458181 rhn-package-458189 rhn-package-458382 rhn-package-458383 rhn-package-458384 rhn-package-458394 rhn-package-458398 rhn-package-458410 rhn-package-458411 rhn-package-458413 rhn-package-458419 rhn-package-458427 rhn-package-458439 rhn-package-458588 rhn-package-458589 rhn-package-458591 rhn-package-458594 rhn-package-458598 rhn-package-458599 rhn-package-458607 rhn-package-458609 rhn-package-458610 rhn-package-458611 rhn-package-458612 rhn-package-458622 rhn-package-458624 rhn-package-458633 rhn-package-458637 rhn-package-458644 rhn-package-458680 rhn-package-458684 rhn-package-458798 rhn-package-458871 rhn-package-458895 rhn-package-458904 rhn-package-458922 rhn-package-458942 rhn-package-458943 rhn-package-458944 rhn-package-458949 rhn-package-458962 rhn-package-458963 rhn-package-458964 rhn-package-458969 rhn-package-458990 rhn-package-459233 rhn-package-459236 rhn-package-459237 rhn-package-459255 rhn-package-459256 rhn-package-459257 rhn-package-459258 rhn-package-459259 rhn-package-459260 rhn-package-459261 rhn-package-459262 rhn-package-459263 rhn-package-459266 rhn-package-459304 rhn-package-459430 rhn-package-459443 rhn-package-459445 rhn-package-459460 rhn-package-459490 rhn-package-459492 rhn-package-459807 rhn-package-459808 rhn-package-459812 rhn-package-459813 rhn-package-459814 rhn-package-459819 rhn-package-459879 rhn-package-459888 rhn-package-459891 rhn-package-459892 rhn-package-459901 rhn-package-459906 rhn-package-459910 rhn-package-459914 rhn-package-459916 rhn-package-459917 rhn-package-459930 rhn-package-459932 rhn-package-459934 rhn-package-459942 rhn-package-460233 rhn-package-460234 rhn-package-460237 rhn-package-460254 rhn-package-460255 rhn-package-460270 rhn-package-460297 rhn-package-460298 rhn-package-460307 rhn-package-460309 rhn-package-460325 rhn-package-460334 rhn-package-460418 rhn-package-460759 rhn-package-463513 rhn-package-463525 rhn-package-463535 rhn-package-463550 rhn-package-463580 rhn-package-463595 rhn-package-463598 rhn-package-463601 rhn-package-463602 rhn-package-463606 rhn-package-463608 rhn-package-463610 rhn-package-463616 rhn-package-463622 rhn-package-463630 rhn-package-463648 rhn-package-463649 rhn-package-463652 rhn-package-464556 rhn-package-464581 rhn-package-464593 rhn-package-464596 rhn-package-464767 rhn-package-464768 rhn-package-464774 rhn-package-464795 rhn-package-464808 rhn-package-464810 rhn-package-464814 rhn-package-464854 rhn-package-464856 rhn-package-464858 rhn-package-464861 rhn-package-464862 rhn-package-464866 rhn-package-464873 rhn-package-464875 rhn-package-464880 rhn-package-464883 rhn-package-465046 rhn-package-465050 rhn-package-465052 rhn-package-465054 rhn-package-465056 rhn-package-465067 rhn-package-465078 rhn-package-465079 rhn-package-465092 rhn-package-465095 rhn-package-465110 rhn-package-465199 rhn-package-465204 rhn-package-465234 rhn-package-465412 rhn-package-465415 rhn-package-465417 rhn-package-465420 rhn-package-465491 rhn-package-465493 rhn-package-465503 rhn-package-465504 rhn-package-465615 rhn-package-465618 rhn-package-465896 rhn-package-465905 rhn-package-465906 rhn-package-465927 rhn-package-465929 rhn-package-465932 rhn-package-465933 rhn-package-465939 rhn-package-465949 rhn-package-465950 rhn-package-466114 rhn-package-466119 rhn-package-466121 rhn-package-466122 rhn-package-466128 rhn-package-466140 rhn-package-466147 rhn-package-466165 rhn-package-466186 rhn-package-466480 rhn-package-466483 rhn-package-466515 rhn-package-466583 rhn-package-466659 rhn-package-466661 rhn-package-466670 rhn-package-466679 rhn-package-466699 rhn-package-466707 rhn-package-466708 rhn-package-466711 rhn-package-466713 rhn-package-466715 rhn-package-466716 rhn-package-466718 rhn-package-466730 rhn-package-466732 rhn-package-466866 rhn-package-466875 rhn-package-466876 rhn-package-466878 rhn-package-466900 rhn-package-466902 rhn-package-466915 rhn-package-466927 rhn-package-466935 rhn-package-466948 rhn-package-467190 rhn-package-467239 rhn-package-467249 rhn-package-467260 rhn-package-467266 rhn-package-467272 rhn-package-467316 rhn-package-467335 rhn-package-467341 rhn-package-467344 rhn-package-467353 rhn-package-467355 rhn-package-467360 rhn-package-467417 rhn-package-467424 rhn-package-467445 rhn-package-467448 rhn-package-467472 rhn-package-467482 rhn-package-467489 rhn-package-467491 rhn-package-467568 rhn-package-467571 rhn-package-467584 rhn-package-467589 rhn-package-467592 rhn-package-467597 rhn-package-467599 rhn-package-467600 rhn-package-467603 rhn-package-467609 rhn-package-467621 rhn-package-467625 rhn-package-467626 rhn-package-467632 rhn-package-467645 rhn-package-467655 rhn-package-467933 rhn-package-467959 rhn-package-467971 rhn-package-467984 rhn-package-467988 rhn-package-467992 rhn-package-468002 rhn-package-468005 rhn-package-468008 rhn-package-468009 rhn-package-468011 rhn-package-468012 rhn-package-468014 rhn-package-468016 rhn-package-468018 rhn-package-468024 rhn-package-468034 rhn-package-468037 rhn-package-468046 rhn-package-468050 rhn-package-468054 rhn-package-468079 rhn-package-468086 rhn-package-468096 rhn-package-468097 rhn-package-468107 rhn-package-468109 rhn-package-468111 rhn-package-468112 rhn-package-468114 rhn-package-468118 rhn-package-468121 rhn-package-468123 rhn-package-468125 rhn-package-468129 rhn-package-468132 rhn-package-468139 rhn-package-468140 rhn-package-468145 rhn-package-468150 rhn-package-468163 rhn-package-468165 rhn-package-468180 rhn-package-468181 rhn-package-468195 rhn-package-468199 rhn-package-468204 rhn-package-468206 rhn-package-468208 rhn-package-468209 rhn-package-468230 rhn-package-468236 rhn-package-468239 rhn-package-468247 rhn-package-468252 rhn-package-468261 rhn-package-468263 rhn-package-468265 rhn-package-468266 rhn-package-468274 rhn-package-468278 rhn-package-468281 rhn-package-468284 rhn-package-468286 rhn-package-468288 rhn-package-468289 rhn-package-468294 rhn-package-468304 rhn-package-468306 rhn-package-468307 rhn-package-468315 rhn-package-468318 rhn-package-468323 rhn-package-468324 rhn-package-468328 rhn-package-468329 rhn-package-468336 rhn-package-468338 rhn-package-468340 rhn-package-468350 rhn-package-468352 rhn-package-468353 rhn-package-468355 rhn-package-468359 rhn-package-468361 rhn-package-468364 rhn-package-468366 rhn-package-468370 rhn-package-468378 rhn-package-468385 rhn-package-468388 rhn-package-468400 rhn-package-468405 rhn-package-468408 rhn-package-468434 rhn-package-468435 rhn-package-468442 rhn-package-468444 rhn-package-468445 rhn-package-468446 rhn-package-468454 rhn-package-468456 rhn-package-468458 rhn-package-468471 rhn-package-468473 rhn-package-468479 rhn-package-468485 rhn-package-468492 rhn-package-468498 rhn-package-468503 rhn-package-468515 rhn-package-468519 rhn-package-468520 rhn-package-468526 rhn-package-468551 rhn-package-468552 rhn-package-468560 rhn-package-468563 rhn-package-468565 rhn-package-468566 rhn-package-468567 rhn-package-468568 rhn-package-468569 rhn-package-468571 rhn-package-468579 rhn-package-468583 rhn-package-468594 rhn-package-468603 rhn-package-468604 rhn-package-468605 rhn-package-468607 rhn-package-468611 rhn-package-468613 rhn-package-468622 rhn-package-468623 rhn-package-468624 rhn-package-468627 rhn-package-468629 rhn-package-468632 rhn-package-468640 rhn-package-468654 rhn-package-468658 rhn-package-468659 rhn-package-468660 rhn-package-468664 rhn-package-468665 rhn-package-468679 rhn-package-468688 rhn-package-468689 rhn-package-468693 rhn-package-468697 rhn-package-468700 rhn-package-468702 rhn-package-468703 rhn-package-468706 rhn-package-468712 rhn-package-468722 rhn-package-468729 rhn-package-468730 rhn-package-468736 rhn-package-468751 rhn-package-468766 rhn-package-468767 rhn-package-468768 rhn-package-468769 rhn-package-468771 rhn-package-468779 rhn-package-468803 rhn-package-468812 rhn-package-468819 rhn-package-468829 rhn-package-468832 rhn-package-468843 rhn-package-468860 rhn-package-468862 rhn-package-468870 rhn-package-468881 rhn-package-468884 rhn-package-468886 rhn-package-468894 rhn-package-468898 rhn-package-468902 rhn-package-468907 rhn-package-468922 rhn-package-468927 rhn-package-468934 rhn-package-468936 rhn-package-468938 rhn-package-468949 rhn-package-468952 rhn-package-468953 rhn-package-468961 rhn-package-468964 rhn-package-468965 rhn-package-468967 rhn-package-468990 rhn-package-468993 rhn-package-468994 rhn-package-469008 rhn-package-469009 rhn-package-469016 rhn-package-469021 rhn-package-469022 rhn-package-469023 rhn-package-469026 rhn-package-469039 rhn-package-469040 rhn-package-469042 rhn-package-469048 rhn-package-469049 rhn-package-469052 rhn-package-469058 rhn-package-469064 rhn-package-469070 rhn-package-469075 rhn-package-469076 rhn-package-469084 rhn-package-469103 rhn-package-469106 rhn-package-469109 rhn-package-469110 rhn-package-469117 rhn-package-469122 rhn-package-469127 rhn-package-469136 rhn-package-469137 rhn-package-469150 rhn-package-469151 rhn-package-469173 rhn-package-469177 rhn-package-469180 rhn-package-469190 rhn-package-469192 rhn-package-469200 rhn-package-469203 rhn-package-469207 rhn-package-469221 rhn-package-469223 rhn-package-469232 rhn-package-469234 rhn-package-469238 rhn-package-469243 rhn-package-469245 rhn-package-469254 rhn-package-469262 rhn-package-469264 rhn-package-469272 rhn-package-469275 rhn-package-469277 rhn-package-469283 rhn-package-469289 rhn-package-469312 rhn-package-469326 rhn-package-469332 rhn-package-469335 rhn-package-469346 rhn-package-469350 rhn-package-469366 rhn-package-469397 rhn-package-469405 rhn-package-469409 rhn-package-469412 rhn-package-469425 rhn-package-469427 rhn-package-469437 rhn-package-469438 rhn-package-469439 rhn-package-469440 rhn-package-469442 rhn-package-469444 rhn-package-469457 rhn-package-469460 rhn-package-469463 rhn-package-469465 rhn-package-469477 rhn-package-469481 rhn-package-469487 rhn-package-469490 rhn-package-469492 rhn-package-469493 rhn-package-469495 rhn-package-469519 rhn-package-469532 rhn-package-469536 rhn-package-469541 rhn-package-469542 rhn-package-469544 rhn-package-469548 rhn-package-469555 rhn-package-469557 rhn-package-469558 rhn-package-469565 rhn-package-469568 rhn-package-469572 rhn-package-469579 rhn-package-469583 rhn-package-469585 rhn-package-469590 rhn-package-469599 rhn-package-469609 rhn-package-469613 rhn-package-469621 rhn-package-469624 rhn-package-469626 rhn-package-469629 rhn-package-469631 rhn-package-469633 rhn-package-469637 rhn-package-469645 rhn-package-469647 rhn-package-469650 rhn-package-469670 rhn-package-469677 rhn-package-469697 rhn-package-469702 rhn-package-469704 rhn-package-469712 rhn-package-469732 rhn-package-469741 rhn-package-469747 rhn-package-469750 rhn-package-469752 rhn-package-469753 rhn-package-469754 rhn-package-469755 rhn-package-469773 rhn-package-469776 rhn-package-469790 rhn-package-469791 rhn-package-469795 rhn-package-469796 rhn-package-469801 rhn-package-469803 rhn-package-469806 rhn-package-469811 rhn-package-469823 rhn-package-469826 rhn-package-469843 rhn-package-469850 rhn-package-469853 rhn-package-469865 rhn-package-469868 rhn-package-469870 rhn-package-469872 rhn-package-469883 rhn-package-469886 rhn-package-469890 rhn-package-469892 rhn-package-469901 rhn-package-469905 rhn-package-469906 rhn-package-469910 rhn-package-469916 rhn-package-469923 rhn-package-469925 rhn-package-469929 rhn-package-469941 rhn-package-469943 rhn-package-469944 rhn-package-469947 rhn-package-469967 rhn-package-469968 rhn-package-469976 rhn-package-469977 rhn-package-469978 rhn-package-469981 rhn-package-469985 rhn-package-469995 rhn-package-469999 rhn-package-470002 rhn-package-470006 rhn-package-470024 rhn-package-470029 rhn-package-470053 rhn-package-470054 rhn-package-470056 rhn-package-470057 rhn-package-470064 rhn-package-470067 rhn-package-470069 rhn-package-470089 rhn-package-470094 rhn-package-470104 rhn-package-470124 rhn-package-470126 rhn-package-470130 rhn-package-470133 rhn-package-470142 rhn-package-470148 rhn-package-470162 rhn-package-470164 rhn-package-470165 rhn-package-470166 rhn-package-470172 rhn-package-470174 rhn-package-470176 rhn-package-470187 rhn-package-470188 rhn-package-470190 rhn-package-470195 rhn-package-470197 rhn-package-470200 rhn-package-470205 rhn-package-470206 rhn-package-470209 rhn-package-470214 rhn-package-470219 rhn-package-470220 rhn-package-470221 rhn-package-470224 rhn-package-470225 rhn-package-470228 rhn-package-470232 rhn-package-470235 rhn-package-470243 rhn-package-470246 rhn-package-470247 rhn-package-470249 rhn-package-470253 rhn-package-470254 rhn-package-470259 rhn-package-470260 rhn-package-470277 rhn-package-470280 rhn-package-470285 rhn-package-470286 rhn-package-470291 rhn-package-470305 rhn-package-470308 rhn-package-470315 rhn-package-470317 rhn-package-470318 rhn-package-470329 rhn-package-470331 rhn-package-470332 rhn-package-470342 rhn-package-470349 rhn-package-470354 rhn-package-470358 rhn-package-470359 rhn-package-470362 rhn-package-470366 rhn-package-470369 rhn-package-470373 rhn-package-470375 rhn-package-470384 rhn-package-470388 rhn-package-470397 rhn-package-470400 rhn-package-470401 rhn-package-470403 rhn-package-470407 rhn-package-470412 rhn-package-470417 rhn-package-470433 rhn-package-470434 rhn-package-470440 rhn-package-470446 rhn-package-470449 rhn-package-470469 rhn-package-470471 rhn-package-470472 rhn-package-470474 rhn-package-470482 rhn-package-470496 rhn-package-470497 rhn-package-470506 rhn-package-470514 rhn-package-470526 rhn-package-470537 rhn-package-470547 rhn-package-470565 rhn-package-470568 rhn-package-470571 rhn-package-470574 rhn-package-470945 rhn-package-471604 rhn-package-471605 rhn-package-471614 rhn-package-471618 rhn-package-471619 rhn-package-471633 rhn-package-471640 rhn-package-471651 rhn-package-471956 rhn-package-472049 rhn-package-472057 rhn-package-472094 rhn-package-472095 rhn-package-472101 rhn-package-472102 rhn-package-472108 rhn-package-472109 rhn-package-472111 rhn-package-472113 rhn-package-472119 rhn-package-472123 rhn-package-472211 rhn-package-472215 rhn-package-472216 rhn-package-472229 rhn-package-472233 rhn-package-472238 rhn-package-472265 rhn-package-472272 rhn-package-472291 rhn-package-472428 rhn-package-472458 rhn-package-472546 rhn-package-472621 rhn-package-472628 rhn-package-472670 rhn-package-472686 rhn-package-472712 rhn-package-472727 rhn-package-472778 rhn-package-472783 rhn-package-472784 rhn-package-472794 rhn-package-474748 rhn-package-474754 rhn-package-474755 rhn-package-475008 rhn-package-475010 rhn-package-475011 rhn-package-475019 rhn-package-475100 rhn-package-475115 rhn-package-475131 rhn-package-475132 rhn-package-475133 rhn-package-475225 rhn-package-475228 rhn-package-475234 rhn-package-475263 rhn-package-475267 rhn-package-475268 rhn-package-475283 rhn-package-475314 rhn-package-475340 rhn-package-475352 rhn-package-475353 rhn-package-475937 rhn-package-475938 rhn-package-476031 rhn-package-476032 rhn-package-476041 rhn-package-476046 rhn-package-476059 rhn-package-476060 rhn-package-476062 rhn-package-476089 rhn-package-476091 rhn-package-476095 rhn-package-476096 rhn-package-476098 rhn-package-476250 rhn-package-476251 rhn-package-476264 rhn-package-476266 rhn-package-476275 rhn-package-476538 rhn-package-476540 rhn-package-476546 rhn-package-476565 rhn-package-476574 rhn-package-476577 rhn-package-476584 rhn-package-476596 rhn-package-476597 rhn-package-476598 rhn-package-476605 rhn-package-476606 rhn-package-476607 rhn-package-476616 rhn-package-476620 rhn-package-476621 rhn-package-476626 rhn-package-476634 rhn-package-476643 rhn-package-476644 rhn-package-476645 rhn-package-476650 rhn-package-476653 rhn-package-476658 rhn-package-476661 rhn-package-476662 rhn-package-476667 rhn-package-476676 rhn-package-476679 rhn-package-476683 rhn-package-476949 rhn-package-476953 rhn-package-477036 rhn-package-477037 rhn-package-477054 rhn-package-477055 rhn-package-477058 rhn-package-477059 rhn-package-477065 rhn-package-477067 rhn-package-477074 rhn-package-477075 rhn-package-477076 rhn-package-477078 rhn-package-477084 rhn-package-477086 rhn-package-477088 rhn-package-477090 rhn-package-477092 rhn-package-477112 rhn-package-477117 rhn-package-477118 rhn-package-477138 rhn-package-477288 rhn-package-477294 rhn-package-477299 rhn-package-477302 rhn-package-477367 rhn-package-477371 rhn-package-477372 rhn-package-477373 rhn-package-477374 rhn-package-477380 rhn-package-477383 rhn-package-477395 rhn-package-477397 rhn-package-477404 rhn-package-477413 rhn-package-477416 rhn-package-477422 rhn-package-477428 rhn-package-477530 rhn-package-477533 rhn-package-477540 rhn-package-477548 rhn-package-477555 rhn-package-477652 rhn-package-477656 rhn-package-477668 rhn-package-477676 rhn-package-477679 rhn-package-477682 rhn-package-477697 rhn-package-477699 rhn-package-477701 rhn-package-477708 rhn-package-477740 rhn-package-477746 rhn-package-477754 rhn-package-477779 rhn-package-477781 rhn-package-477786 rhn-package-477796 rhn-package-477855 rhn-package-477858 rhn-package-478145 rhn-package-478150 rhn-package-478160 rhn-package-478165 rhn-package-478178 rhn-package-478185 rhn-package-478191 rhn-package-478194 rhn-package-478195 rhn-package-478210 rhn-package-478214 rhn-package-478219 rhn-package-478220 rhn-package-478221 rhn-package-478230 rhn-package-478231 rhn-package-478246 rhn-package-478247 rhn-package-478251 rhn-package-478392 rhn-package-478394 rhn-package-478396 rhn-package-478408 rhn-package-478482 rhn-package-478484 rhn-package-478497 rhn-package-478566 rhn-package-478603 rhn-package-478616 rhn-package-478886 rhn-package-478896 rhn-package-478900 rhn-package-478908 rhn-package-478911 rhn-package-478917 rhn-package-478925 rhn-package-479001 rhn-package-479002 rhn-package-479006 rhn-package-479007 rhn-package-479012 rhn-package-479014 rhn-package-479018 rhn-package-479019 rhn-package-479023 rhn-package-479033 rhn-package-479047 rhn-package-479054 rhn-package-479056 rhn-package-479058 rhn-package-479063 rhn-package-479072 rhn-package-479074 rhn-package-479197 rhn-package-479210 rhn-package-479248 rhn-package-479286 rhn-package-479298 rhn-package-479301 rhn-package-479302 rhn-package-479327 rhn-package-479335 rhn-package-479338 rhn-package-479340 rhn-package-479341 rhn-package-480977 rhn-package-481050 rhn-package-481235 rhn-package-481238 rhn-package-481248 rhn-package-481437 rhn-package-481439 rhn-package-481447 rhn-package-481952 rhn-package-482053 rhn-package-482059 rhn-package-482061 rhn-package-482066 rhn-package-482074 rhn-package-482075 rhn-package-482086 rhn-package-482091 rhn-package-482094 rhn-package-482100 rhn-package-482102 rhn-package-482106 rhn-package-482107 rhn-package-482113 rhn-package-482114 rhn-package-482187 rhn-package-482189 rhn-package-482202 rhn-package-482206 rhn-package-482207 rhn-package-482227 rhn-package-482229 rhn-package-482234 rhn-package-482245 rhn-package-482374 rhn-package-482376 rhn-package-482386 rhn-package-482387 rhn-package-482391 rhn-package-482393 rhn-package-482514 rhn-package-482555 rhn-package-482557 rhn-package-482560 rhn-package-482562 rhn-package-482744 rhn-package-482805 rhn-package-482808 rhn-package-482828 rhn-package-482832 rhn-package-482835 rhn-package-482846 rhn-package-482848 rhn-package-482858 rhn-package-482875 rhn-package-482876 rhn-package-482878 rhn-package-482882 rhn-package-482884 rhn-package-482886 rhn-package-482892 rhn-package-482896 rhn-package-482905 rhn-package-482909 rhn-package-482930 rhn-package-482931 rhn-package-482933 rhn-package-482969 rhn-package-482973 rhn-package-482982 rhn-package-482987 rhn-package-482991 rhn-package-482994 rhn-package-482995 rhn-package-483006 rhn-package-483019 rhn-package-483031 rhn-package-483039 rhn-package-483056 rhn-package-483294 rhn-package-483301 rhn-package-483305 rhn-package-483309 rhn-package-483315 rhn-package-483318 rhn-package-483325 rhn-package-483327 rhn-package-483331 rhn-package-483333 rhn-package-483337 rhn-package-483350 rhn-package-483352 rhn-package-483356 rhn-package-483358 rhn-package-483360 rhn-package-483366 rhn-package-483377 rhn-package-483379 rhn-package-483392 rhn-package-483396 rhn-package-483407 rhn-package-483431 rhn-package-483432 rhn-package-483434 rhn-package-483435 rhn-package-483448 rhn-package-483497 rhn-package-483503 rhn-package-483505 rhn-package-483513 rhn-package-483522 rhn-package-483524 rhn-package-483577 rhn-package-483578 rhn-package-483582 rhn-package-483648 rhn-package-483701 rhn-package-483702 rhn-package-483705 rhn-package-483706 rhn-package-483714 rhn-package-483715 rhn-package-483717 rhn-package-483718 rhn-package-483722 rhn-package-483732 rhn-package-486587 rhn-package-486589 rhn-package-486590 rhn-package-486597 rhn-package-486601 rhn-package-486610 rhn-package-486614 rhn-package-486620 rhn-package-486631 rhn-package-486632 rhn-package-486696 rhn-package-486716 rhn-package-486717 rhn-package-486719 rhn-package-486722 rhn-package-486727 rhn-package-486736 rhn-package-486761 rhn-package-486764 rhn-package-486788 rhn-package-486937 rhn-package-486938 rhn-package-486946 rhn-package-486948 rhn-package-486983 rhn-package-486988 rhn-package-486991 rhn-package-486993 rhn-package-487042 rhn-package-487044 rhn-package-487048 rhn-package-487049 rhn-package-487051 rhn-package-487052 rhn-package-487053 rhn-package-487061 rhn-package-487066 rhn-package-487072 rhn-package-487348 rhn-package-487357 rhn-package-487414 rhn-package-487416 rhn-package-487417 rhn-package-487420 rhn-package-487433 rhn-package-487441 rhn-package-487465 rhn-package-487471 rhn-package-487478 rhn-package-487480 rhn-package-487481 rhn-package-487486 rhn-package-487490 rhn-package-487504 rhn-package-487506 rhn-package-487507 rhn-package-487514 rhn-package-487523 rhn-package-487535 rhn-package-487536 rhn-package-487537 rhn-package-487649 rhn-package-487786 rhn-package-487883 rhn-package-487884 rhn-package-487887 rhn-package-487890 rhn-package-487991 rhn-package-487992 rhn-package-487997 rhn-package-488004 rhn-package-488008 rhn-package-488010 rhn-package-488023 rhn-package-488027 rhn-package-488125 rhn-package-488126 rhn-package-488129 rhn-package-488133 rhn-package-488139 rhn-package-488140 rhn-package-488147 rhn-package-488151 rhn-package-488329 rhn-package-488335 rhn-package-488338 rhn-package-488344 rhn-package-488435 rhn-package-488436 rhn-package-488438 rhn-package-488442 rhn-package-488449 rhn-package-488450 rhn-package-488451 rhn-package-488453 rhn-package-488455 rhn-package-488467 rhn-package-488581 rhn-package-488584 rhn-package-488586 rhn-package-488587 rhn-package-488588 rhn-package-488671 rhn-package-488675 rhn-package-488680 rhn-package-488682 rhn-package-488685 rhn-package-488687 rhn-package-488693 rhn-package-488709 rhn-package-488729 rhn-package-488730 rhn-package-488734 rhn-package-488748 rhn-package-488751 rhn-package-488779 rhn-package-488780 rhn-package-488790 rhn-package-488791 rhn-package-488793 rhn-package-488797 rhn-package-488862 rhn-package-488867 rhn-package-488900 rhn-package-489006 rhn-package-489026 rhn-package-489135 rhn-package-489194 rhn-package-489195 rhn-package-489196 rhn-package-489200 rhn-package-489205 rhn-package-489321 rhn-package-489324 rhn-package-489448 rhn-package-489453 rhn-package-489456 rhn-package-489457 rhn-package-489460 rhn-package-489463 rhn-package-489467 rhn-package-489470 rhn-package-489474 rhn-package-489479 rhn-package-489712 rhn-package-489715 rhn-package-489726 rhn-package-489748 rhn-package-489754 rhn-package-489755 rhn-package-489756 rhn-package-489758 rhn-package-489763 rhn-package-489764 rhn-package-489765 rhn-package-489775 rhn-package-489781 rhn-package-489784 rhn-package-489787 rhn-package-489788 rhn-package-489789 rhn-package-489790 rhn-package-489797 rhn-package-489798 rhn-package-489802 rhn-package-489809 rhn-package-489810 rhn-package-489814 rhn-package-489822 rhn-package-489824 rhn-package-489825 rhn-package-489829 rhn-package-489830 rhn-package-489831 rhn-package-489833 rhn-package-489834 rhn-package-489837 rhn-package-489843 rhn-package-489851 rhn-package-489852 rhn-package-489854 rhn-package-489855 rhn-package-489857 rhn-package-489864 rhn-package-489867 rhn-package-489870 rhn-package-489872 rhn-package-489875 rhn-package-489878 rhn-package-489885 rhn-package-489887 rhn-package-489889 rhn-package-489891 rhn-package-489898 rhn-package-489901 rhn-package-489902 rhn-package-489905 rhn-package-489906 rhn-package-489908 rhn-package-489909 rhn-package-489911 rhn-package-489912 rhn-package-489914 rhn-package-489915 rhn-package-489916 rhn-package-489918 rhn-package-489920 rhn-package-489922 rhn-package-489923 rhn-package-489924 rhn-package-489927 rhn-package-489931 rhn-package-489932 rhn-package-489937 rhn-package-489940 rhn-package-489943 rhn-package-489946 rhn-package-489947 rhn-package-489953 rhn-package-489958 rhn-package-489962 rhn-package-489963 rhn-package-489964 rhn-package-489967 rhn-package-489971 rhn-package-489973 rhn-package-489977 rhn-package-489978 rhn-package-489979 rhn-package-489983 rhn-package-489984 rhn-package-489986 rhn-package-489994 rhn-package-489997 rhn-package-489998 rhn-package-489999 rhn-package-490002 rhn-package-490004 rhn-package-490005 rhn-package-490010 rhn-package-490011 rhn-package-490013 rhn-package-490014 rhn-package-490015 rhn-package-490016 rhn-package-490019 rhn-package-490020 rhn-package-490022 rhn-package-490028 rhn-package-490029 rhn-package-490030 rhn-package-490036 rhn-package-490039 rhn-package-490040 rhn-package-490041 rhn-package-490043 rhn-package-490044 rhn-package-490048 rhn-package-490051 rhn-package-490053 rhn-package-490057 rhn-package-490060 rhn-package-490061 rhn-package-490063 rhn-package-490067 rhn-package-490069 rhn-package-490074 rhn-package-490076 rhn-package-490080 rhn-package-490088 rhn-package-490091 rhn-package-490097 rhn-package-490098 rhn-package-490099 rhn-package-490100 rhn-package-490102 rhn-package-490120 rhn-package-490121 rhn-package-490127 rhn-package-490130 rhn-package-490132 rhn-package-490134 rhn-package-490135 rhn-package-490136 rhn-package-490138 rhn-package-490144 rhn-package-490147 rhn-package-490149 rhn-package-490150 rhn-package-490151 rhn-package-490152 rhn-package-490158 rhn-package-490159 rhn-package-490167 rhn-package-490169 rhn-package-490172 rhn-package-490173 rhn-package-490175 rhn-package-490183 rhn-package-490185 rhn-package-490186 rhn-package-490192 rhn-package-490197 rhn-package-490198 rhn-package-490200 rhn-package-490203 rhn-package-490204 rhn-package-490205 rhn-package-490208 rhn-package-490212 rhn-package-490215 rhn-package-490216 rhn-package-490219 rhn-package-490223 rhn-package-490232 rhn-package-490234 rhn-package-490239 rhn-package-490242 rhn-package-490247 rhn-package-490249 rhn-package-490258 rhn-package-490260 rhn-package-490264 rhn-package-490266 rhn-package-490272 rhn-package-490274 rhn-package-490276 rhn-package-490277 rhn-package-490280 rhn-package-490285 rhn-package-490287 rhn-package-490292 rhn-package-490294 rhn-package-490299 rhn-package-490301 rhn-package-490311 rhn-package-490322 rhn-package-490323 rhn-package-490324 rhn-package-490331 rhn-package-490337 rhn-package-490342 rhn-package-490343 rhn-package-490346 rhn-package-490348 rhn-package-490351 rhn-package-490352 rhn-package-490354 rhn-package-490361 rhn-package-490363 rhn-package-490366 rhn-package-490368 rhn-package-490369 rhn-package-490375 rhn-package-490377 rhn-package-490378 rhn-package-490397 rhn-package-490402 rhn-package-490403 rhn-package-490416 rhn-package-490424 rhn-package-490433 rhn-package-490436 rhn-package-490438 rhn-package-490439 rhn-package-490440 rhn-package-490442 rhn-package-490451 rhn-package-490453 rhn-package-490458 rhn-package-490462 rhn-package-490465 rhn-package-490474 rhn-package-490476 rhn-package-490481 rhn-package-490488 rhn-package-490489 rhn-package-490490 rhn-package-490492 rhn-package-490498 rhn-package-490499 rhn-package-490500 rhn-package-490507 rhn-package-490509 rhn-package-490512 rhn-package-490513 rhn-package-490515 rhn-package-490521 rhn-package-490523 rhn-package-490528 rhn-package-490530 rhn-package-490534 rhn-package-490536 rhn-package-490546 rhn-package-490552 rhn-package-490553 rhn-package-490579 rhn-package-490581 rhn-package-490584 rhn-package-490587 rhn-package-490594 rhn-package-490596 rhn-package-490601 rhn-package-490605 rhn-package-490609 rhn-package-490610 rhn-package-490611 rhn-package-490615 rhn-package-490617 rhn-package-490618 rhn-package-490621 rhn-package-490624 rhn-package-490625 rhn-package-490627 rhn-package-490629 rhn-package-490634 rhn-package-490641 rhn-package-490651 rhn-package-490657 rhn-package-490663 rhn-package-490671 rhn-package-490678 rhn-package-490679 rhn-package-490685 rhn-package-490687 rhn-package-490690 rhn-package-490693 rhn-package-490699 rhn-package-490700 rhn-package-490704 rhn-package-490709 rhn-package-490711 rhn-package-490719 rhn-package-490726 rhn-package-490737 rhn-package-490739 rhn-package-490742 rhn-package-490745 rhn-package-490752 rhn-package-490756 rhn-package-490759 rhn-package-490776 rhn-package-490777 rhn-package-490783 rhn-package-490784 rhn-package-490785 rhn-package-490793 rhn-package-490800 rhn-package-490808 rhn-package-490814 rhn-package-490817 rhn-package-490823 rhn-package-490827 rhn-package-490829 rhn-package-490831 rhn-package-490844 rhn-package-490849 rhn-package-490850 rhn-package-490852 rhn-package-490861 rhn-package-490867 rhn-package-490870 rhn-package-490872 rhn-package-490880 rhn-package-490889 rhn-package-490897 rhn-package-490898 rhn-package-490906 rhn-package-490915 rhn-package-490924 rhn-package-490925 rhn-package-490931 rhn-package-490938 rhn-package-490943 rhn-package-490944 rhn-package-490945 rhn-package-490959 rhn-package-490961 rhn-package-490964 rhn-package-490965 rhn-package-490991 rhn-package-490998 rhn-package-491002 rhn-package-491003 rhn-package-491010 rhn-package-491014 rhn-package-491025 rhn-package-491031 rhn-package-491035 rhn-package-491039 rhn-package-491040 rhn-package-491055 rhn-package-491056 rhn-package-491064 rhn-package-491073 rhn-package-491074 rhn-package-491075 rhn-package-491080 rhn-package-491084 rhn-package-491088 rhn-package-491092 rhn-package-491098 rhn-package-491100 rhn-package-491101 rhn-package-491110 rhn-package-491113 rhn-package-491117 rhn-package-491126 rhn-package-491133 rhn-package-491135 rhn-package-491136 rhn-package-491137 rhn-package-491143 rhn-package-491160 rhn-package-491173 rhn-package-491175 rhn-package-491186 rhn-package-491188 rhn-package-491189 rhn-package-491196 rhn-package-491198 rhn-package-491201 rhn-package-491211 rhn-package-491216 rhn-package-491222 rhn-package-491226 rhn-package-491236 rhn-package-491243 rhn-package-491252 rhn-package-491253 rhn-package-491260 rhn-package-491261 rhn-package-491267 rhn-package-491268 rhn-package-491286 rhn-package-491290 rhn-package-491294 rhn-package-491318 rhn-package-491326 rhn-package-491331 rhn-package-491349 rhn-package-491364 rhn-package-491386 rhn-package-491397 rhn-package-491407 rhn-package-491410 rhn-package-491416 rhn-package-491428 rhn-package-491459 rhn-package-491464 rhn-package-491465 rhn-package-491484 rhn-package-491493 rhn-package-491499 rhn-package-491500 rhn-package-491539 rhn-package-491549 rhn-package-491558 rhn-package-491572 rhn-package-491617 rhn-package-491656 rhn-package-491669 rhn-package-491699 rhn-package-491715 rhn-package-491724 rhn-package-491743 rhn-package-491774 rhn-package-491795 rhn-package-491805 rhn-package-491829 rhn-package-491837 rhn-package-491840 rhn-package-491841 rhn-package-491853 rhn-package-491872 rhn-package-491883 rhn-package-491898 rhn-package-491914 rhn-package-491922 rhn-package-491931 rhn-package-491944 rhn-package-491950 rhn-package-491953 rhn-package-491977 rhn-package-491993 rhn-package-492014 rhn-package-492030 rhn-package-492033 rhn-package-492085 rhn-package-492093 rhn-package-492097 rhn-package-492130 rhn-package-492202 rhn-package-492206 rhn-package-492239 rhn-package-492292 rhn-package-492374 rhn-package-492575 rhn-package-492640 rhn-package-493060 rhn-package-493063 rhn-package-493064 rhn-package-493065 rhn-package-493069 rhn-package-493083 rhn-package-493085 rhn-package-493089 rhn-package-493100 rhn-package-493331 rhn-package-493339 rhn-package-493340 rhn-package-493342 rhn-package-493346 rhn-package-493362 rhn-package-493744 rhn-package-493750 rhn-package-493757 rhn-package-493758 rhn-package-493765 rhn-package-493773 rhn-package-493779 rhn-package-494060 rhn-package-494064 rhn-package-494065 rhn-package-494068 rhn-package-494101 rhn-package-494108 rhn-package-494213 rhn-package-494282 rhn-package-494291 rhn-package-494315 rhn-package-494330 rhn-package-494516 rhn-package-494522 rhn-package-494575 rhn-package-494576 rhn-package-494586 rhn-package-494648 rhn-package-494652 rhn-package-494654 rhn-package-494660 rhn-package-494666 rhn-package-494668 rhn-package-494673 rhn-package-494674 rhn-package-494676 rhn-package-494680 rhn-package-494687 rhn-package-494694 rhn-package-494729 rhn-package-494732 rhn-package-494736 rhn-package-494745 rhn-package-494762 rhn-package-494777 rhn-package-494960 rhn-package-494962 rhn-package-494994 rhn-package-495155 rhn-package-495165 rhn-package-495183 rhn-package-495201 rhn-package-495206 rhn-package-495211 rhn-package-495229 rhn-package-495230 rhn-package-495238 rhn-package-495239 rhn-package-495344 rhn-package-495349 rhn-package-495352 rhn-package-495353 rhn-package-495366 rhn-package-495372 rhn-package-495376 rhn-package-495445 rhn-package-495575 rhn-package-495579 rhn-package-495580 rhn-package-495581 rhn-package-495582 rhn-package-495583 rhn-package-495584 rhn-package-495791 rhn-package-495814 rhn-package-495817 rhn-package-495819 rhn-package-495847 rhn-package-495848 rhn-package-495850 rhn-package-495853 rhn-package-495870" channel-id="rhn-channel-6949"><rhn-channel-parent-channel><rhn-null/></rhn-channel-parent-channel><rhn-channel-basedir>/</rhn-channel-basedir><rhn-channel-name>Red Hat Enterprise Linux (v. 5 for 32-bit x86)</rhn-channel-name><rhn-channel-summary>Red Hat Enterprise Linux (v. 5 for 32-bit x86 Server)</rhn-channel-summary><rhn-channel-description>Red Hat Enterprise Linux - Server core components (v. 5 for 32-bit x86)</rhn-channel-description><rhn-channel-gpg-key-url>file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release</rhn-channel-gpg-key-url><rhn-channel-receiving-updates>Y</rhn-channel-receiving-updates><rhn-channel-last-modified>1255609387</rhn-channel-last-modified><rhn-channel-product-name>rhel</rhn-channel-product-name><rhn-channel-product-version>5</rhn-channel-product-version><rhn-channel-product-beta>N</rhn-channel-product-beta><rhn-channel-families><rhn-channel-family virt-sub-level-name="Virtualization free content group,Virtualization Platform free content group" channel-labels="rhel-i386-as-3 rhel-i386-es-3 rhel-ia64-as-3 rhel-ia64-es-3 rhel-x86_64-as-3 rhel-x86_64-es-3 rhel-ppc-as-3 rhel-i386-as-4 rhel-i386-es-4 rhel-x86_64-as-4 rhel-x86_64-es-4 rhel-ia64-as-4 rhel-ia64-es-4 rhel-ppc-as-4 rhel-i386-server-5 rhel-x86_64-server-5 rhel-ia64-server-5 rhel-ppc-server-5" virt-sub-level-label="virtualization_free virtualization_platform_free" id="rhn-channel-family-5488" label="rhel-server"/></rhn-channel-families><rhn-dists><rhn-dist release="5Server" channel-arch="channel-ia32" os="Red Hat Linux"/></rhn-dists><source-packages><source-package last-modified="1173828200" id="rhn-source-package-41213" source-rpm="spamassassin-3.1.8-2.el5.src.rpm"/><source-package last-modified="1173831490" id="rhn-source-package-41215" source-rpm="gnupg-1.4.5-13.src.rpm"/><source-package last-modified="1173831886" id="rhn-source-package-41217" source-rpm="tzdata-2007c-1.el5.src.rpm"/><source-package last-modified="1173831901" id="rhn-source-package-41218" source-rpm="emacs-21.4-18.1.el5.src.rpm"/><source-package last-modified="1173832223" id="rhn-source-package-41219" source-rpm="autofs-5.0.1-0.rc2.43.0.2.src.rpm"/><source-package last-modified="1173837656" id="rhn-source-package-41221" source-rpm="php-5.1.6-7.el5.src.rpm"/><source-package last-modified="1173847848" id="rhn-source-package-41222" source-rpm="bind-9.3.3-8.el5.src.rpm"/><source-package last-modified="1173848101" id="rhn-source-package-41223" source-rpm="samba-3.0.23c-2.el5.2.src.rpm"/><source-package last-modified="1173848491" id="rhn-source-package-41224" source-rpm="yelp-2.16.0-14.0.1.el5.src.rpm"/><source-package last-modified="1173848491" id="rhn-source-package-41226" source-rpm="devhelp-0.12-10.0.1.el5.src.rpm"/><source-package last-modified="1173848705" id="rhn-source-package-41227" source-rpm="nss-3.11.5-3.el5.src.rpm"/><source-package last-modified="1173848750" id="rhn-source-package-41228" source-rpm="xen-3.0.3-25.0.3.el5.src.rpm"/><source-package last-modified="1173848794" id="rhn-source-package-41229" source-rpm="postgresql-8.1.8-1.el5.src.rpm"/><source-package last-modified="1173849197" id="rhn-source-package-41230" source-rpm="gcc-4.1.1-52.el5.2.src.rpm"/><source-package last-modified="1173849238" id="rhn-source-package-41231" source-rpm="dhcp-3.0.5-5.el5.src.rpm"/><source-package last-modified="1173849420" id="rhn-source-package-41232" source-rpm="kernel-2.6.18-8.1.1.el5.src.rpm"/><source-package last-modified="1173850747" id="rhn-source-package-41233" source-rpm="evolution-data-server-1.8.0-15.0.2.el5.src.rpm"/><source-package last-modified="1173854091" id="rhn-source-package-41238" source-rpm="module-init-tools-3.3-0.pre3.1.16.0.1.el5.src.rpm"/><source-package last-modified="1173887371" id="rhn-source-package-41239" source-rpm="Deployment_Guide-5.0.0-21.src.rpm"/><source-package last-modified="1173889243" id="rhn-source-package-41243" source-rpm="wireshark-0.99.5-1.el5.src.rpm"/><source-package last-modified="1174644292" id="rhn-source-package-41256" source-rpm="file-4.17-9.el5.src.rpm"/><source-package last-modified="1174687064" id="rhn-source-package-41265" source-rpm="tzdata-2007d-1.el5.src.rpm"/><source-package last-modified="1174928008" id="rhn-source-package-41326" source-rpm="python-imaging-1.1.5-5.el5.src.rpm"/><source-package last-modified="1174928045" id="rhn-source-package-41329" source-rpm="libnotify-0.4.2-6.el5.src.rpm"/><source-package last-modified="1174928055" id="rhn-source-package-41330" source-rpm="perl-5.8.8-10.src.rpm"/><source-package last-modified="1174928802" id="rhn-source-package-41332" source-rpm="samba-3.0.23c-2.src.rpm"/><source-package last-modified="1174928806" id="rhn-source-package-41333" source-rpm="m17n-db-1.3.3-46.el5.src.rpm"/><source-package last-modified="1174928810" id="rhn-source-package-41334" source-rpm="gnome-user-docs-2.16.0-2.fc6.src.rpm"/><source-package last-modified="1174928813" id="rhn-source-package-41335" source-rpm="cdrtools-2.01-10.src.rpm"/><source-package last-modified="1174928815" id="rhn-source-package-41336" source-rpm="lsscsi-0.17-3.el5.src.rpm"/><source-package last-modified="1174928819" id="rhn-source-package-41337" source-rpm="OpenIPMI-2.0.6-5.el5.3.src.rpm"/><source-package last-modified="1174928824" id="rhn-source-package-41338" source-rpm="gnome-panel-2.16.1-6.el5.src.rpm"/><source-package last-modified="1174928846" id="rhn-source-package-41339" source-rpm="fonts-korean-1.0.11-10.el5.src.rpm"/><source-package last-modified="1174928852" id="rhn-source-package-41340" source-rpm="xsane-0.991-4.el5.src.rpm"/><source-package last-modified="1174928853" id="rhn-source-package-41341" source-rpm="setup-2.5.58-1.el5.src.rpm"/><source-package last-modified="1174928866" id="rhn-source-package-41342" source-rpm="vim-7.0.109-3.src.rpm"/><source-package last-modified="1174928869" id="rhn-source-package-41343" source-rpm="star-1.5a75-1.src.rpm"/><source-package last-modified="1174928872" id="rhn-source-package-41344" source-rpm="unixODBC-2.2.11-7.1.src.rpm"/><source-package last-modified="1174928872" id="rhn-source-package-41345" source-rpm="createrepo-0.4.4-2.fc6.src.rpm"/><source-package last-modified="1174928885" id="rhn-source-package-41346" source-rpm="xorg-x11-fonts-7.1-2.1.el5.src.rpm"/><source-package last-modified="1174928886" id="rhn-source-package-41347" source-rpm="perl-XML-SAX-0.14-5.src.rpm"/><source-package last-modified="1174928887" id="rhn-source-package-41348" source-rpm="eog-2.16.0.1-6.el5.src.rpm"/><source-package last-modified="1174928892" id="rhn-source-package-41349" source-rpm="sendmail-8.13.8-2.el5.src.rpm"/><source-package last-modified="1174928932" id="rhn-source-package-41351" source-rpm="gcc-4.1.1-52.el5.src.rpm"/><source-package last-modified="1174928933" id="rhn-source-package-41352" source-rpm="icon-naming-utils-0.8.1-1.fc6.src.rpm"/><source-package last-modified="1174928934" id="rhn-source-package-41353" source-rpm="man-pages-de-0.4-11.src.rpm"/><source-package last-modified="1174928936" id="rhn-source-package-41354" source-rpm="rsync-2.6.8-3.1.src.rpm"/><source-package last-modified="1174928937" id="rhn-source-package-41355" source-rpm="time-1.7-27.2.2.src.rpm"/><source-package last-modified="1174928938" id="rhn-source-package-41356" source-rpm="firstboot-1.4.27.2-1.el5.src.rpm"/><source-package last-modified="1174928945" id="rhn-source-package-41357" source-rpm="kdenetwork-3.5.4-4.fc6.src.rpm"/><source-package last-modified="1174928947" id="rhn-source-package-41358" source-rpm="arts-1.5.4-1.src.rpm"/><source-package last-modified="1174928956" id="rhn-source-package-41359" source-rpm="ghostscript-8.15.2-9.1.el5.src.rpm"/><source-package last-modified="1174929214" id="rhn-source-package-41360" source-rpm="kde-i18n-3.5.4-1.src.rpm"/><source-package last-modified="1174929242" id="rhn-source-package-41363" source-rpm="compat-gcc-32-3.2.3-61.src.rpm"/><source-package last-modified="1174929246" id="rhn-source-package-41364" source-rpm="frysk-0.0.1.2006.12.22.rh1-4.el5.src.rpm"/><source-package last-modified="1174929248" id="rhn-source-package-41365" source-rpm="openhpi-2.4.1-6.el5.1.src.rpm"/><source-package last-modified="1174929249" id="rhn-source-package-41366" source-rpm="bitstream-vera-fonts-1.10-7.src.rpm"/><source-package last-modified="1174929250" id="rhn-source-package-41367" source-rpm="fonts-indic-2.0.13-1.el5.src.rpm"/><source-package last-modified="1174929251" id="rhn-source-package-41368" source-rpm="pcmciautils-014-5.src.rpm"/><source-package last-modified="1174929251" id="rhn-source-package-41369" source-rpm="system-config-display-1.0.48-2.el5.src.rpm"/><source-package last-modified="1174929252" id="rhn-source-package-41370" source-rpm="rwho-0.17-26.src.rpm"/><source-package last-modified="1174929252" id="rhn-source-package-41371" source-rpm="man-pages-cs-0.16-6.src.rpm"/><source-package last-modified="1174929253" id="rhn-source-package-41372" source-rpm="jwhois-3.2.3-8.el5.src.rpm"/><source-package last-modified="1174929254" id="rhn-source-package-41373" source-rpm="nc-1.84-10.fc6.src.rpm"/><source-package last-modified="1174929261" id="rhn-source-package-41374" source-rpm="scim-tables-0.5.6-7.src.rpm"/><source-package last-modified="1174929261" id="rhn-source-package-41375" source-rpm="gtk-doc-1.7-1.fc6.src.rpm"/><source-package last-modified="1174929262" id="rhn-source-package-41376" source-rpm="irqbalance-1.13-9.el5.src.rpm"/><source-package last-modified="1174929263" id="rhn-source-package-41377" source-rpm="postgresql-jdbc-8.1.407-1jpp.4.src.rpm"/><source-package last-modified="1174929264" id="rhn-source-package-41378" source-rpm="fonts-KOI8-R-1.0-9.1.1.src.rpm"/><source-package last-modified="1174929265" id="rhn-source-package-41379" source-rpm="gpm-1.20.1-74.1.src.rpm"/><source-package last-modified="1174929266" id="rhn-source-package-41380" source-rpm="dmraid-1.0.0.rc13-2.el5.src.rpm"/><source-package last-modified="1174929426" id="rhn-source-package-41381" source-rpm="Deployment_Guide-5.0.0-19.src.rpm"/><source-package last-modified="1174929430" id="rhn-source-package-41382" source-rpm="yum-3.0.1-5.el5.src.rpm"/><source-package last-modified="1174929434" id="rhn-source-package-41383" source-rpm="gtk+-1.2.10-56.el5.src.rpm"/><source-package last-modified="1174929459" id="rhn-source-package-41384" source-rpm="compat-gcc-34-3.4.6-4.src.rpm"/><source-package last-modified="1174929461" id="rhn-source-package-41385" source-rpm="sox-12.18.1-1.src.rpm"/><source-package last-modified="1174929469" id="rhn-source-package-41386" source-rpm="openmotif22-2.2.3-18.src.rpm"/><source-package last-modified="1174929470" id="rhn-source-package-41387" source-rpm="aspell-pl-0.51-5.2.2.src.rpm"/><source-package last-modified="1174929484" id="rhn-source-package-41388" source-rpm="compat-gcc-296-2.96-138.src.rpm"/><source-package last-modified="1174929486" id="rhn-source-package-41389" source-rpm="libtermcap-2.0.8-46.1.src.rpm"/><source-package last-modified="1174929491" id="rhn-source-package-41390" source-rpm="gnutls-1.4.1-2.src.rpm"/><source-package last-modified="1174929494" id="rhn-source-package-41391" source-rpm="basesystem-8.0-5.1.1.src.rpm"/><source-package last-modified="1174929534" id="rhn-source-package-41392" source-rpm="firefox-1.5.0.9-10.el5.src.rpm"/><source-package last-modified="1174929535" id="rhn-source-package-41393" source-rpm="xorg-x11-xbitmaps-1.0.1-4.1.src.rpm"/><source-package last-modified="1174929537" id="rhn-source-package-41394" source-rpm="bitmap-fonts-0.3-5.1.1.src.rpm"/><source-package last-modified="1174929537" id="rhn-source-package-41395" source-rpm="dcraw-0.0.20060521-1.1.src.rpm"/><source-package last-modified="1174929538" id="rhn-source-package-41396" source-rpm="gfs2-utils-0.1.25-1.el5.src.rpm"/><source-package last-modified="1174929555" id="rhn-source-package-41397" source-rpm="postgresql-8.1.4-1.1.src.rpm"/><source-package last-modified="1174929565" id="rhn-source-package-41398" source-rpm="cyrus-sasl-2.1.22-4.src.rpm"/><source-package last-modified="1174929566" id="rhn-source-package-41399" source-rpm="pkinit-nss-0.3.5-1.el5.src.rpm"/><source-package last-modified="1174929567" id="rhn-source-package-41400" source-rpm="gnome-nettool-2.16.0-1.fc6.src.rpm"/><source-package last-modified="1174929568" id="rhn-source-package-41401" source-rpm="xorg-x11-xfs-1.0.2-3.1.src.rpm"/><source-package last-modified="1174929571" id="rhn-source-package-41402" source-rpm="man-pages-fr-2.39-4.fc6.src.rpm"/><source-package last-modified="1174929572" id="rhn-source-package-41403" source-rpm="mdadm-2.5.4-3.el5.src.rpm"/><source-package last-modified="1174929574" id="rhn-source-package-41404" source-rpm="tcpdump-3.9.4-8.1.src.rpm"/><source-package last-modified="1174929581" id="rhn-source-package-41406" source-rpm="perl-XML-Twig-3.26-1.fc6.src.rpm"/><source-package last-modified="1174929582" id="rhn-source-package-41407" source-rpm="gpart-0.1h-3.1.src.rpm"/><source-package last-modified="1174929585" id="rhn-source-package-41408" source-rpm="java-1.4.2-gcj-compat-1.4.2.0-40jpp.112.src.rpm"/><source-package last-modified="1174929586" id="rhn-source-package-41410" source-rpm="pam_smb-1.1.7-7.2.1.src.rpm"/><source-package last-modified="1174929587" id="rhn-source-package-41411" source-rpm="bluez-hcidump-1.32-1.src.rpm"/><source-package last-modified="1174929587" id="rhn-source-package-41412" source-rpm="redhat-lsb-3.1-12.2.EL.src.rpm"/><source-package last-modified="1174929588" id="rhn-source-package-41413" source-rpm="docbook-utils-0.6.14-5.1.src.rpm"/><source-package last-modified="1174929624" id="rhn-source-package-41414" source-rpm="system-config-network-1.3.99-1.el5.src.rpm"/><source-package last-modified="1174929630" id="rhn-source-package-41415" source-rpm="rhgb-0.16.4-8.el5.src.rpm"/><source-package last-modified="1174929634" id="rhn-source-package-41416" source-rpm="zsh-4.2.6-1.src.rpm"/><source-package last-modified="1174929634" id="rhn-source-package-41417" source-rpm="unix2dos-2.2-26.2.2.src.rpm"/><source-package last-modified="1174929635" id="rhn-source-package-41418" source-rpm="pax-3.4-1.2.2.src.rpm"/><source-package last-modified="1174929636" id="rhn-source-package-41419" source-rpm="aide-0.12-7.src.rpm"/><source-package last-modified="1174929642" id="rhn-source-package-41420" source-rpm="ruby-1.8.5-5.el5.src.rpm"/><source-package last-modified="1174929643" id="rhn-source-package-41421" source-rpm="acl-2.2.39-1.1.src.rpm"/><source-package last-modified="1174929667" id="rhn-source-package-41423" source-rpm="mutt-1.4.2.2-3.el5.src.rpm"/><source-package last-modified="1174929668" id="rhn-source-package-41424" source-rpm="system-config-securitylevel-1.6.29.1-1.el5.src.rpm"/><source-package last-modified="1174929669" id="rhn-source-package-41425" source-rpm="screen-4.0.3-1.el5.src.rpm"/><source-package last-modified="1174929676" id="rhn-source-package-41426" source-rpm="xorg-x11-server-1.1.1-48.13.el5.src.rpm"/><source-package last-modified="1174929677" id="rhn-source-package-41427" source-rpm="dvgrab-2.0-1.2.2.src.rpm"/><source-package last-modified="1174929678" id="rhn-source-package-41428" source-rpm="yelp-2.16.0-13.el5.src.rpm"/><source-package last-modified="1174929678" id="rhn-source-package-41429" source-rpm="netlabel_tools-0.17-9.el5.src.rpm"/><source-package last-modified="1174929679" id="rhn-source-package-41430" source-rpm="aspell-ga-0.50-4.2.2.src.rpm"/><source-package last-modified="1174929684" id="rhn-source-package-41431" source-rpm="swig-1.3.29-2.el5.src.rpm"/><source-package last-modified="1174929692" id="rhn-source-package-41432" source-rpm="tog-pegasus-2.5.2-5.el5.src.rpm"/><source-package last-modified="1174929693" id="rhn-source-package-41433" source-rpm="patchutils-0.2.31-2.2.2.src.rpm"/><source-package last-modified="1174929694" id="rhn-source-package-41434" source-rpm="file-roller-2.16.0-2.fc6.src.rpm"/><source-package last-modified="1174929787" id="rhn-source-package-41435" source-rpm="tetex-3.0-32.fc6.src.rpm"/><source-package last-modified="1174929789" id="rhn-source-package-41436" source-rpm="scim-bridge-0.4.5-7.el5.src.rpm"/><source-package last-modified="1174929793" id="rhn-source-package-41437" source-rpm="alsa-utils-1.0.12-3.fc6.src.rpm"/><source-package last-modified="1174929794" id="rhn-source-package-41438" source-rpm="gtk2-engines-2.8.0-3.el5.src.rpm"/><source-package last-modified="1174929796" id="rhn-source-package-41439" source-rpm="wget-1.10.2-7.el5.src.rpm"/><source-package last-modified="1174929798" id="rhn-source-package-41440" source-rpm="fonts-ISO8859-2-1.0-17.1.src.rpm"/><source-package last-modified="1174929799" id="rhn-source-package-41441" source-rpm="sysfsutils-2.0.0-6.src.rpm"/><source-package last-modified="1174929799" id="rhn-source-package-41442" source-rpm="im-chooser-0.3.3-6.el5.src.rpm"/><source-package last-modified="1174929801" id="rhn-source-package-41443" source-rpm="aspell-sr-0.02-1.2.1.src.rpm"/><source-package last-modified="1174929803" id="rhn-source-package-41445" source-rpm="rootfiles-8.1-1.1.1.src.rpm"/><source-package last-modified="1174929804" id="rhn-source-package-41446" source-rpm="iscsi-initiator-utils-6.2.0.742-0.5.el5.src.rpm"/><source-package last-modified="1174929805" id="rhn-source-package-41447" source-rpm="mod_nss-1.0.3-4.el5.src.rpm"/><source-package last-modified="1174929821" id="rhn-source-package-41448" source-rpm="glibc-2.5-12.src.rpm"/><source-package last-modified="1174929823" id="rhn-source-package-41449" source-rpm="make-3.81-1.1.src.rpm"/><source-package last-modified="1174929823" id="rhn-source-package-41450" source-rpm="xorg-x11-xauth-1.0.1-2.1.src.rpm"/><source-package last-modified="1174929825" id="rhn-source-package-41451" source-rpm="evince-0.6.0-8.el5.src.rpm"/><source-package last-modified="1174929826" id="rhn-source-package-41452" source-rpm="kudzu-1.2.57.1.13-1.src.rpm"/><source-package last-modified="1174929826" id="rhn-source-package-41453" source-rpm="aspell-fr-0.50-9.2.2.src.rpm"/><source-package last-modified="1174929828" id="rhn-source-package-41454" source-rpm="pciutils-2.2.3-4.src.rpm"/><source-package last-modified="1174929830" id="rhn-source-package-41455" source-rpm="vorbis-tools-1.1.1-3.el5.src.rpm"/><source-package last-modified="1174929830" id="rhn-source-package-41456" source-rpm="wvdial-1.54.0-5.2.2.1.src.rpm"/><source-package last-modified="1174929832" id="rhn-source-package-41457" source-rpm="aspell-hr-0.51-4.2.2.src.rpm"/><source-package last-modified="1174929848" id="rhn-source-package-41458" source-rpm="desktop-backgrounds-2.0-37.src.rpm"/><source-package last-modified="1174929849" id="rhn-source-package-41459" source-rpm="perl-DBD-Pg-1.49-1.fc6.src.rpm"/><source-package last-modified="1174929853" id="rhn-source-package-41460" source-rpm="mc-4.6.1a-34.el5.src.rpm"/><source-package last-modified="1174929854" id="rhn-source-package-41461" source-rpm="policycoreutils-1.33.12-3.el5.src.rpm"/><source-package last-modified="1174929860" id="rhn-source-package-41462" source-rpm="gdm-2.16.0-30.el5.src.rpm"/><source-package last-modified="1174929862" id="rhn-source-package-41463" source-rpm="tftp-0.42-3.1.src.rpm"/><source-package last-modified="1174929866" id="rhn-source-package-41464" source-rpm="words-3.0-9.src.rpm"/><source-package last-modified="1174929867" id="rhn-source-package-41465" source-rpm="aspell-is-0.51.1-2.2.2.src.rpm"/><source-package last-modified="1174929870" id="rhn-source-package-41466" source-rpm="sblim-1-20.EL5.src.rpm"/><source-package last-modified="1174929879" id="rhn-source-package-41467" source-rpm="arptables_jf-0.0.8-8.src.rpm"/><source-package last-modified="1174929880" id="rhn-source-package-41468" source-rpm="eject-2.1.5-4.2.el5.src.rpm"/><source-package last-modified="1174929880" id="rhn-source-package-41469" source-rpm="xdelta-1.1.3-20.src.rpm"/><source-package last-modified="1174929885" id="rhn-source-package-41470" source-rpm="net-snmp-5.3.1-14.el5.src.rpm"/><source-package last-modified="1174929887" id="rhn-source-package-41471" source-rpm="bogl-0.1.18-11.2.1.el5.1.src.rpm"/><source-package last-modified="1174929890" id="rhn-source-package-41472" source-rpm="amanda-2.5.0p2-4.src.rpm"/><source-package last-modified="1174929893" id="rhn-source-package-41473" source-rpm="elinks-0.11.1-5.1.el5.src.rpm"/><source-package last-modified="1174929895" id="rhn-source-package-41474" source-rpm="metacity-2.16.0-8.el5.src.rpm"/><source-package last-modified="1174929911" id="rhn-source-package-41475" source-rpm="anaconda-11.1.2.36-1.src.rpm"/><source-package last-modified="1174929917" id="rhn-source-package-41476" source-rpm="xfig-3.2.4-21.2.el5.src.rpm"/><source-package last-modified="1174929923" id="rhn-source-package-41477" source-rpm="sysstat-7.0.0-3.el5.src.rpm"/><source-package last-modified="1174929923" id="rhn-source-package-41478" source-rpm="vlock-1.3-23.src.rpm"/><source-package last-modified="1174929924" id="rhn-source-package-41479" source-rpm="mtools-3.9.10-2.fc6.src.rpm"/><source-package last-modified="1174929925" id="rhn-source-package-41480" source-rpm="ppp-2.4.4-1.el5.src.rpm"/><source-package last-modified="1174929926" id="rhn-source-package-41481" source-rpm="aspell-ca-0.50-4.2.2.src.rpm"/><source-package last-modified="1174929926" id="rhn-source-package-41482" source-rpm="zisofs-tools-1.0.6-3.2.2.src.rpm"/><source-package last-modified="1174929927" id="rhn-source-package-41483" source-rpm="xmlrpc-2.0.1-3jpp.1.src.rpm"/><source-package last-modified="1174929927" id="rhn-source-package-41484" source-rpm="hwbrowser-0.30-1.el5.src.rpm"/><source-package last-modified="1174929928" id="rhn-source-package-41485" source-rpm="iputils-20020927-43.el5.src.rpm"/><source-package last-modified="1174929930" id="rhn-source-package-41486" source-rpm="gnome-system-monitor-2.16.0-3.el5.src.rpm"/><source-package last-modified="1174929931" id="rhn-source-package-41487" source-rpm="chkconfig-1.3.30.1-1.src.rpm"/><source-package last-modified="1174929937" id="rhn-source-package-41488" source-rpm="gimp-print-4.2.7-22.src.rpm"/><source-package last-modified="1174929938" id="rhn-source-package-41489" source-rpm="xorg-x11-xsm-1.0.2-4.fc6.src.rpm"/><source-package last-modified="1174929940" id="rhn-source-package-41490" source-rpm="fonts-arabic-2.0-4.el5.src.rpm"/><source-package last-modified="1174929941" id="rhn-source-package-41491" source-rpm="xorg-x11-xfwp-1.0.1-3.1.src.rpm"/><source-package last-modified="1174929945" id="rhn-source-package-41494" source-rpm="freeglut-2.4.0-7.1.el5.src.rpm"/><source-package last-modified="1174929954" id="rhn-source-package-41496" source-rpm="e2fsprogs-1.39-8.el5.src.rpm"/><source-package last-modified="1174929955" id="rhn-source-package-41497" source-rpm="gok-1.2.0-2.el5.src.rpm"/><source-package last-modified="1174929958" id="rhn-source-package-41498" source-rpm="openssl097a-0.9.7a-9.src.rpm"/><source-package last-modified="1174929959" id="rhn-source-package-41499" source-rpm="talk-0.17-29.2.2.src.rpm"/><source-package last-modified="1174929959" id="rhn-source-package-41500" source-rpm="libaio-0.3.106-3.2.src.rpm"/><source-package last-modified="1174929960" id="rhn-source-package-41501" source-rpm="mlocate-0.15-1.el5.src.rpm"/><source-package last-modified="1174929960" id="rhn-source-package-41502" source-rpm="logrotate-3.7.4-7.src.rpm"/><source-package last-modified="1174929962" id="rhn-source-package-41503" source-rpm="conman-0.1.9.2-4.el5.src.rpm"/><source-package last-modified="1174929966" id="rhn-source-package-41504" source-rpm="pkgconfig-0.21-1.fc6.src.rpm"/><source-package last-modified="1174929968" id="rhn-source-package-41505" source-rpm="openssh-4.3p2-16.el5.src.rpm"/><source-package last-modified="1174929969" id="rhn-source-package-41506" source-rpm="lksctp-tools-1.0.6-1.el5.1.src.rpm"/><source-package last-modified="1174929969" id="rhn-source-package-41507" source-rpm="dtach-0.7-1.2.2.src.rpm"/><source-package last-modified="1174929971" id="rhn-source-package-41508" source-rpm="bluez-utils-3.7-2.src.rpm"/><source-package last-modified="1174930010" id="rhn-source-package-41509" source-rpm="gimp-help-2-0.1.0.10.1.1.src.rpm"/><source-package last-modified="1174930012" id="rhn-source-package-41510" source-rpm="initscripts-8.45.14.EL-1.src.rpm"/><source-package last-modified="1174930014" id="rhn-source-package-41511" source-rpm="gnome-mag-0.13.1-1.fc6.src.rpm"/><source-package last-modified="1174930014" id="rhn-source-package-41512" source-rpm="krb5-auth-dialog-0.7-1.src.rpm"/><source-package last-modified="1174930015" id="rhn-source-package-41513" source-rpm="ipv6calc-0.61-1.src.rpm"/><source-package last-modified="1174930030" id="rhn-source-package-41514" source-rpm="qt-3.3.6-20.el5.src.rpm"/><source-package last-modified="1174930030" id="rhn-source-package-41515" source-rpm="man-pages-da-0.1.1-12.1.1.src.rpm"/><source-package last-modified="1174930031" id="rhn-source-package-41516" source-rpm="sabayon-2.12.4-3.el5.src.rpm"/><source-package last-modified="1174930032" id="rhn-source-package-41517" source-rpm="perl-libxml-perl-0.08-1.2.1.src.rpm"/><source-package last-modified="1174930033" id="rhn-source-package-41518" source-rpm="bc-1.06-21.src.rpm"/><source-package last-modified="1174930033" id="rhn-source-package-41519" source-rpm="perl-XML-Dumper-0.81-2.fc6.src.rpm"/><source-package last-modified="1174930033" id="rhn-source-package-41520" source-rpm="x86info-1.20-1.26.fc6.src.rpm"/><source-package last-modified="1174930034" id="rhn-source-package-41521" source-rpm="hesinfo-3.1.0-1.1.src.rpm"/><source-package last-modified="1174930036" id="rhn-source-package-41522" source-rpm="man-pages-2.39-9.el5.src.rpm"/><source-package last-modified="1174930038" id="rhn-source-package-41523" source-rpm="lftp-3.5.1-2.fc6.src.rpm"/><source-package last-modified="1174930039" id="rhn-source-package-41524" source-rpm="switchdesk-4.0.8-6.src.rpm"/><source-package last-modified="1174930040" id="rhn-source-package-41525" source-rpm="nautilus-cd-burner-2.16.0-7.el5.src.rpm"/><source-package last-modified="1174930041" id="rhn-source-package-41526" source-rpm="lrzsz-0.12.20-22.1.src.rpm"/><source-package last-modified="1174930041" id="rhn-source-package-41527" source-rpm="autofs-5.0.1-0.rc2.42.src.rpm"/><source-package last-modified="1174930043" id="rhn-source-package-41528" source-rpm="dejagnu-1.4.4-5.1.src.rpm"/><source-package last-modified="1174930046" id="rhn-source-package-41529" source-rpm="devhelp-0.12-9.el5.src.rpm"/><source-package last-modified="1174930047" id="rhn-source-package-41530" source-rpm="NetworkManager-0.6.4-6.el5.src.rpm"/><source-package last-modified="1174930048" id="rhn-source-package-41531" source-rpm="cryptsetup-luks-1.0.3-2.2.el5.src.rpm"/><source-package last-modified="1174930048" id="rhn-source-package-41532" source-rpm="dos2unix-3.1-27.1.src.rpm"/><source-package last-modified="1174930049" id="rhn-source-package-41533" source-rpm="perl-Crypt-SSLeay-0.51-11.el5.src.rpm"/><source-package last-modified="1174930053" id="rhn-source-package-41534" source-rpm="kdeutils-3.5.4-5.fc6.src.rpm"/><source-package last-modified="1174930053" id="rhn-source-package-41535" source-rpm="kcc-2.3-24.2.2.src.rpm"/><source-package last-modified="1174930066" id="rhn-source-package-41536" source-rpm="gettext-0.14.6-4.el5.src.rpm"/><source-package last-modified="1174930119" id="rhn-source-package-41537" source-rpm="kernel-2.6.18-8.el5.src.rpm"/><source-package last-modified="1174930121" id="rhn-source-package-41538" source-rpm="bzip2-1.0.3-3.src.rpm"/><source-package last-modified="1174930123" id="rhn-source-package-41539" source-rpm="ccid-1.0.1-6.el5.src.rpm"/><source-package last-modified="1174930126" id="rhn-source-package-41541" source-rpm="system-config-language-1.1.18-1.el5.src.rpm"/><source-package last-modified="1174930126" id="rhn-source-package-41542" source-rpm="ftp-0.17-33.fc6.src.rpm"/><source-package last-modified="1174930278" id="rhn-source-package-41543" source-rpm="specspo-13-1.el5.src.rpm"/><source-package last-modified="1174930278" id="rhn-source-package-41544" source-rpm="anacron-2.3-45.el5.src.rpm"/><source-package last-modified="1174930279" id="rhn-source-package-41545" source-rpm="aspell-sl-0.50-1.2.1.src.rpm"/><source-package last-modified="1174930281" id="rhn-source-package-41546" source-rpm="dhcp-3.0.5-3.el5.src.rpm"/><source-package last-modified="1174930284" id="rhn-source-package-41547" source-rpm="gnome-utils-2.16.0-3.el5.src.rpm"/><source-package last-modified="1174930285" id="rhn-source-package-41548" source-rpm="procps-3.2.7-8.1.el5.src.rpm"/><source-package last-modified="1174930285" id="rhn-source-package-41549" source-rpm="system-switch-mail-0.5.25-12.src.rpm"/><source-package last-modified="1174930286" id="rhn-source-package-41550" source-rpm="pam_krb5-2.2.11-1.src.rpm"/><source-package last-modified="1174930297" id="rhn-source-package-41551" source-rpm="krb5-1.5-17.src.rpm"/><source-package last-modified="1174930298" id="rhn-source-package-41552" source-rpm="compat-readline43-4.3-3.src.rpm"/><source-package last-modified="1174930299" id="rhn-source-package-41553" source-rpm="booty-0.80.4-1.src.rpm"/><source-package last-modified="1174930299" id="rhn-source-package-41554" source-rpm="which-2.16-7.src.rpm"/><source-package last-modified="1174930300" id="rhn-source-package-41555" source-rpm="usbutils-0.71-2.1.src.rpm"/><source-package last-modified="1174930300" id="rhn-source-package-41556" source-rpm="bluez-gnome-0.5-5.fc6.src.rpm"/><source-package last-modified="1174930301" id="rhn-source-package-41557" source-rpm="procinfo-18-19.src.rpm"/><source-package last-modified="1174930315" id="rhn-source-package-41558" source-rpm="gdb-6.5-16.el5.src.rpm"/><source-package last-modified="1174930316" id="rhn-source-package-41559" source-rpm="system-config-users-1.2.51-1.el5.src.rpm"/><source-package last-modified="1174930317" id="rhn-source-package-41560" source-rpm="aspell-ru-0.99f7-2.2.2.src.rpm"/><source-package last-modified="1174930317" id="rhn-source-package-41561" source-rpm="pam_ccreds-3-5.src.rpm"/><source-package last-modified="1174930321" id="rhn-source-package-41562" source-rpm="rhn-client-tools-0.4.13-1.el5.src.rpm"/><source-package last-modified="1174930322" id="rhn-source-package-41563" source-rpm="tree-1.5.0-4.src.rpm"/><source-package last-modified="1174930338" id="rhn-source-package-41564" source-rpm="crash-4.0-3.14.src.rpm"/><source-package last-modified="1174930340" id="rhn-source-package-41565" source-rpm="man-pages-es-1.28-10.1.1.src.rpm"/><source-package last-modified="1174930340" id="rhn-source-package-41566" source-rpm="aspell-pt-0.50-10.2.2.src.rpm"/><source-package last-modified="1174930341" id="rhn-source-package-41567" source-rpm="rdist-6.1.5-44.src.rpm"/><source-package last-modified="1174930342" id="rhn-source-package-41568" source-rpm="agg-2.4-2.1.src.rpm"/><source-package last-modified="1174930342" id="rhn-source-package-41569" source-rpm="hal-cups-utils-0.6.2-5.src.rpm"/><source-package last-modified="1174930343" id="rhn-source-package-41570" source-rpm="perl-LDAP-0.33-3.fc6.src.rpm"/><source-package last-modified="1174930358" id="rhn-source-package-41571" source-rpm="fonts-japanese-0.20061016-4.el5.src.rpm"/><source-package last-modified="1174930373" id="rhn-source-package-41572" source-rpm="openldap-2.3.27-5.src.rpm"/><source-package last-modified="1174930374" id="rhn-source-package-41573" source-rpm="apmd-3.2.2-5.src.rpm"/><source-package last-modified="1174930375" id="rhn-source-package-41574" source-rpm="scim-qtimm-0.9.4-5.src.rpm"/><source-package last-modified="1174930384" id="rhn-source-package-41575" source-rpm="hplip-1.6.7-4.1.el5.src.rpm"/><source-package last-modified="1174930385" id="rhn-source-package-41576" source-rpm="desktop-printing-0.19-20.el5.src.rpm"/><source-package last-modified="1174930394" id="rhn-source-package-41577" source-rpm="bind-9.3.3-7.el5.src.rpm"/><source-package last-modified="1174930399" id="rhn-source-package-41578" source-rpm="scim-pinyin-0.5.91-15.el5.src.rpm"/><source-package last-modified="1174930404" id="rhn-source-package-41579" source-rpm="gnome-vfs2-2.16.2-4.el5.src.rpm"/><source-package last-modified="1174930406" id="rhn-source-package-41580" source-rpm="pam_pkcs11-0.5.3-23.src.rpm"/><source-package last-modified="1174930407" id="rhn-source-package-41581" source-rpm="ypbind-1.19-7.el5.src.rpm"/><source-package last-modified="1174930457" id="rhn-source-package-41582" source-rpm="qt4-4.2.1-1.src.rpm"/><source-package last-modified="1174930459" id="rhn-source-package-41583" source-rpm="aspell-sv-0.51-1.2.1.src.rpm"/><source-package last-modified="1174930460" id="rhn-source-package-41584" source-rpm="system-config-date-1.8.12-1.el5.src.rpm"/><source-package last-modified="1174930460" id="rhn-source-package-41585" source-rpm="fbset-2.1-22.src.rpm"/><source-package last-modified="1174930461" id="rhn-source-package-41586" source-rpm="kexec-tools-1.101-164.el5.src.rpm"/><source-package last-modified="1174930462" id="rhn-source-package-41587" source-rpm="setuptool-1.19.2-1.src.rpm"/><source-package last-modified="1174930465" id="rhn-source-package-41588" source-rpm="util-linux-2.13-0.44.el5.src.rpm"/><source-package last-modified="1174930468" id="rhn-source-package-41589" source-rpm="gnuplot-4.0.0-12.src.rpm"/><source-package last-modified="1174930468" id="rhn-source-package-41590" source-rpm="rhel-instnum-1.0.7-1.el5.src.rpm"/><source-package last-modified="1174930472" id="rhn-source-package-41591" source-rpm="libhugetlbfs-1.0.1-1.el5.src.rpm"/><source-package last-modified="1174930472" id="rhn-source-package-41592" source-rpm="convmv-1.10-1.el5.src.rpm"/><source-package last-modified="1174930474" id="rhn-source-package-41593" source-rpm="epic-2.4-1.src.rpm"/><source-package last-modified="1174930475" id="rhn-source-package-41594" source-rpm="gconf-editor-2.16.0-3.el5.src.rpm"/><source-package last-modified="1174930476" id="rhn-source-package-41595" source-rpm="man-1.6d-1.1.src.rpm"/><source-package last-modified="1174930476" id="rhn-source-package-41596" source-rpm="xorg-x11-xinit-1.0.2-13.el5.src.rpm"/><source-package last-modified="1174930478" id="rhn-source-package-41597" source-rpm="slrn-0.9.8.1pl1-1.2.2.src.rpm"/><source-package last-modified="1174930480" id="rhn-source-package-41598" source-rpm="shadow-utils-4.0.17-12.el5.src.rpm"/><source-package last-modified="1174930482" id="rhn-source-package-41599" source-rpm="libdbi-drivers-0.8.1a-1.2.2.src.rpm"/><source-package last-modified="1174930483" id="rhn-source-package-41600" source-rpm="mikmod-3.1.6-38.1.src.rpm"/><source-package last-modified="1174930484" id="rhn-source-package-41601" source-rpm="squashfs-tools-3.0-4.src.rpm"/><source-package last-modified="1174930485" id="rhn-source-package-41602" source-rpm="iptables-1.3.5-1.2.1.src.rpm"/><source-package last-modified="1174930485" id="rhn-source-package-41603" source-rpm="amtu-1.0.4-4.src.rpm"/><source-package last-modified="1174930486" id="rhn-source-package-41604" source-rpm="linuxdoc-tools-0.9.21-7.1.src.rpm"/><source-package last-modified="1174930490" id="rhn-source-package-41605" source-rpm="postfix-2.3.3-2.src.rpm"/><source-package last-modified="1174930490" id="rhn-source-package-41606" source-rpm="rsh-0.17-37.el5.src.rpm"/><source-package last-modified="1174930491" id="rhn-source-package-41607" source-rpm="aspell-fo-0.51-4.2.2.src.rpm"/><source-package last-modified="1174930492" id="rhn-source-package-41608" source-rpm="dhcpv6-0.10-33.el5.src.rpm"/><source-package last-modified="1174930493" id="rhn-source-package-41609" source-rpm="tn5250-0.17.3-6.src.rpm"/><source-package last-modified="1174930495" id="rhn-source-package-41610" source-rpm="gnome-audio-2.0.0-3.1.1.src.rpm"/><source-package last-modified="1174930496" id="rhn-source-package-41611" source-rpm="docbook-slides-3.3.1-2.1.1.src.rpm"/><source-package last-modified="1174930499" id="rhn-source-package-41612" source-rpm="netpbm-10.35-6.fc6.src.rpm"/><source-package last-modified="1174930509" id="rhn-source-package-41614" source-rpm="libutempter-1.1.4-3.fc6.src.rpm"/><source-package last-modified="1174930509" id="rhn-source-package-41615" source-rpm="perl-DBD-MySQL-3.0007-1.fc6.src.rpm"/><source-package last-modified="1174930511" id="rhn-source-package-41616" source-rpm="busybox-1.2.0-3.src.rpm"/><source-package last-modified="1174930512" id="rhn-source-package-41617" source-rpm="man-pages-ru-0.97-1.1.1.src.rpm"/><source-package last-modified="1174930513" id="rhn-source-package-41618" source-rpm="docbook-style-dsssl-1.79-4.1.src.rpm"/><source-package last-modified="1174930536" id="rhn-source-package-41619" source-rpm="festival-1.95-5.2.1.src.rpm"/><source-package last-modified="1174930537" id="rhn-source-package-41620" source-rpm="mailcap-2.1.23-1.fc6.src.rpm"/><source-package last-modified="1174930537" id="rhn-source-package-41621" source-rpm="system-config-kdump-1.0.9-3.el5.src.rpm"/><source-package last-modified="1174930538" id="rhn-source-package-41622" source-rpm="ltrace-0.5-6.45svn.fc6.src.rpm"/><source-package last-modified="1174930541" id="rhn-source-package-41623" source-rpm="cvs-1.11.22-5.el5.src.rpm"/><source-package last-modified="1174930542" id="rhn-source-package-41624" source-rpm="adjtimex-1.20-2.1.src.rpm"/><source-package last-modified="1174930544" id="rhn-source-package-41625" source-rpm="kdeadmin-3.5.4-2.fc6.src.rpm"/><source-package last-modified="1174930545" id="rhn-source-package-41626" source-rpm="expect-5.43.0-5.1.src.rpm"/><source-package last-modified="1174930546" id="rhn-source-package-41627" source-rpm="libgnome-java-2.12.4-3.fc6.src.rpm"/><source-package last-modified="1174930547" id="rhn-source-package-41628" source-rpm="dosfstools-2.11-6.2.el5.src.rpm"/><source-package last-modified="1174930548" id="rhn-source-package-41629" source-rpm="nano-1.3.12-1.1.src.rpm"/><source-package last-modified="1174930549" id="rhn-source-package-41630" source-rpm="pinfo-0.6.9-1.fc6.src.rpm"/><source-package last-modified="1174930556" id="rhn-source-package-41631" source-rpm="mesa-6.5.1-7.2.el5.src.rpm"/><source-package last-modified="1174930557" id="rhn-source-package-41632" source-rpm="sysreport-1.4.3-10.el5.src.rpm"/><source-package last-modified="1174930558" id="rhn-source-package-41633" source-rpm="setserial-2.17-19.2.2.src.rpm"/><source-package last-modified="1174930576" id="rhn-source-package-41635" source-rpm="compat-glibc-2.3.4-2.26.src.rpm"/><source-package last-modified="1174930578" id="rhn-source-package-41636" source-rpm="docbook-style-xsl-1.69.1-5.1.src.rpm"/><source-package last-modified="1174930579" id="rhn-source-package-41637" source-rpm="mysql-connector-odbc-3.51.12-2.2.src.rpm"/><source-package last-modified="1174930582" id="rhn-source-package-41638" source-rpm="yum-rhn-plugin-0.4.3-1.el5.src.rpm"/><source-package last-modified="1174930583" id="rhn-source-package-41639" source-rpm="telnet-0.17-38.el5.src.rpm"/><source-package last-modified="1174930584" id="rhn-source-package-41640" source-rpm="audit-1.3.1-1.el5.src.rpm"/><source-package last-modified="1174930590" id="rhn-source-package-41641" source-rpm="isdn4k-utils-3.2-50.1.src.rpm"/><source-package last-modified="1174930594" id="rhn-source-package-41642" source-rpm="nautilus-2.16.2-6.el5.src.rpm"/><source-package last-modified="1174930596" id="rhn-source-package-41643" source-rpm="system-config-lvm-1.0.22-1.0.el5.src.rpm"/><source-package last-modified="1174930597" id="rhn-source-package-41644" source-rpm="nkf-2.07-1.1.fc6.src.rpm"/><source-package last-modified="1174930598" id="rhn-source-package-41645" source-rpm="hdparm-6.6-2.src.rpm"/><source-package last-modified="1174930599" id="rhn-source-package-41646" source-rpm="grub-0.97-13.src.rpm"/><source-package last-modified="1174930601" id="rhn-source-package-41647" source-rpm="tcsh-6.14-12.el5.src.rpm"/><source-package last-modified="1174930601" id="rhn-source-package-41648" source-rpm="xorg-x11-resutils-7.1-2.fc6.src.rpm"/><source-package last-modified="1174930603" id="rhn-source-package-41649" source-rpm="postgresql-odbc-08.01.0200-3.1.src.rpm"/><source-package last-modified="1174930604" id="rhn-source-package-41650" source-rpm="compat-slang-1.4.9-27.2.2.src.rpm"/><source-package last-modified="1174930604" id="rhn-source-package-41651" source-rpm="xmlto-0.0.18-13.1.src.rpm"/><source-package last-modified="1174930605" id="rhn-source-package-41652" source-rpm="statserial-1.1-38.2.2.src.rpm"/><source-package last-modified="1174930606" id="rhn-source-package-41653" source-rpm="openCryptoki-2.2.4-15.el5.src.rpm"/><source-package last-modified="1174930612" id="rhn-source-package-41654" source-rpm="httpd-2.2.3-6.el5.src.rpm"/><source-package last-modified="1174930613" id="rhn-source-package-41655" source-rpm="memtest86+-1.65-4.1.src.rpm"/><source-package last-modified="1174930613" id="rhn-source-package-41656" source-rpm="sos-1.3-1.el5.src.rpm"/><source-package last-modified="1174930614" id="rhn-source-package-41657" source-rpm="attr-2.4.32-1.1.src.rpm"/><source-package last-modified="1174930619" id="rhn-source-package-41658" source-rpm="coreutils-5.97-12.1.el5.src.rpm"/><source-package last-modified="1174930620" id="rhn-source-package-41659" source-rpm="authconfig-5.3.12-2.el5.src.rpm"/><source-package last-modified="1174930622" id="rhn-source-package-41660" source-rpm="system-config-soundcard-2.0.6-1.el5.src.rpm"/><source-package last-modified="1174930623" id="rhn-source-package-41661" source-rpm="psacct-6.3.2-41.1.src.rpm"/><source-package last-modified="1174930625" id="rhn-source-package-41662" source-rpm="gnome-keyring-manager-2.16.0-3.el5.src.rpm"/><source-package last-modified="1174930625" id="rhn-source-package-41663" source-rpm="aspell-id-0.50.1-4.2.2.src.rpm"/><source-package last-modified="1174930626" id="rhn-source-package-41664" source-rpm="system-config-services-0.9.4-1.el5.src.rpm"/><source-package last-modified="1174930629" id="rhn-source-package-41665" source-rpm="control-center-2.16.0-14.el5.src.rpm"/><source-package last-modified="1174930630" id="rhn-source-package-41666" source-rpm="rng-utils-2.0-1.14.1.fc6.src.rpm"/><source-package last-modified="1174930631" id="rhn-source-package-41667" source-rpm="sg3_utils-1.20-2.1.src.rpm"/><source-package last-modified="1174930631" id="rhn-source-package-41668" source-rpm="nautilus-open-terminal-0.6-6.el5.src.rpm"/><source-package last-modified="1174930632" id="rhn-source-package-41669" source-rpm="SysVinit-2.86-14.src.rpm"/><source-package last-modified="1174930632" id="rhn-source-package-41670" source-rpm="system-config-rootpassword-1.1.9.1-1.src.rpm"/><source-package last-modified="1174930637" id="rhn-source-package-41671" source-rpm="exim-doc-4.63-2.el5.src.rpm"/><source-package last-modified="1174930637" id="rhn-source-package-41672" source-rpm="perl-XML-NamespaceSupport-1.09-1.2.1.src.rpm"/><source-package last-modified="1174930640" id="rhn-source-package-41673" source-rpm="setroubleshoot-1.8.11-4.el5.src.rpm"/><source-package last-modified="1174930641" id="rhn-source-package-41674" source-rpm="systemtap-0.5.12-1.el5.src.rpm"/><source-package last-modified="1174930642" id="rhn-source-package-41675" source-rpm="aspell-it-0.53-4.2.1.src.rpm"/><source-package last-modified="1174930643" id="rhn-source-package-41676" source-rpm="system-config-printer-0.7.32.5-1.el5.src.rpm"/><source-package last-modified="1174930643" id="rhn-source-package-41677" source-rpm="perl-XML-Grove-0.46alpha-29.1.1.src.rpm"/><source-package last-modified="1174930671" id="rhn-source-package-41678" source-rpm="fonts-chinese-3.02-9.6.el5.src.rpm"/><source-package last-modified="1174930677" id="rhn-source-package-41679" source-rpm="ImageMagick-6.2.8.0-3.el5.4.src.rpm"/><source-package last-modified="1174930678" id="rhn-source-package-41680" source-rpm="hfsutils-3.2.6-7.2.2.src.rpm"/><source-package last-modified="1174930681" id="rhn-source-package-41681" source-rpm="linuxwacom-0.7.4.3-2.el5.src.rpm"/><source-package last-modified="1174930681" id="rhn-source-package-41682" source-rpm="readahead-1.3-7.el5.src.rpm"/><source-package last-modified="1174930682" id="rhn-source-package-41683" source-rpm="mt-st-0.9b-2.2.2.src.rpm"/><source-package last-modified="1174930683" id="rhn-source-package-41684" source-rpm="scim-sinhala-0.2.0-2.fc6.src.rpm"/><source-package last-modified="1174930690" id="rhn-source-package-41685" source-rpm="nss_db-2.2-35.1.src.rpm"/><source-package last-modified="1174930691" id="rhn-source-package-41686" source-rpm="gnome-netstatus-2.12.0-5.el5.src.rpm"/><source-package last-modified="1174930692" id="rhn-source-package-41687" source-rpm="cpio-2.6-20.src.rpm"/><source-package last-modified="1174930694" id="rhn-source-package-41689" source-rpm="dogtail-0.6.1-2.el5.src.rpm"/><source-package last-modified="1174930694" id="rhn-source-package-41690" source-rpm="mkbootdisk-1.5.3-2.1.src.rpm"/><source-package last-modified="1174930696" id="rhn-source-package-41691" source-rpm="iproute-2.6.18-4.el5.src.rpm"/><source-package last-modified="1174930697" id="rhn-source-package-41692" source-rpm="xterm-215-4.el5.src.rpm"/><source-package last-modified="1174930699" id="rhn-source-package-41693" source-rpm="gftp-2.0.18-3.2.2.src.rpm"/><source-package last-modified="1174930700" id="rhn-source-package-41694" source-rpm="pump-0.8.24-1.2.2.1.src.rpm"/><source-package last-modified="1174930700" id="rhn-source-package-41695" source-rpm="rhdb-utils-8.1.1-1.2.2.src.rpm"/><source-package last-modified="1174930705" id="rhn-source-package-41696" source-rpm="anthy-7900-4.el5.src.rpm"/><source-package last-modified="1174930714" id="rhn-source-package-41698" source-rpm="compat-db-4.2.52-5.1.src.rpm"/><source-package last-modified="1174930715" id="rhn-source-package-41699" source-rpm="minicom-2.1-3.src.rpm"/><source-package last-modified="1174930715" id="rhn-source-package-41700" source-rpm="aspell-gl-0.50-4.2.2.src.rpm"/><source-package last-modified="1174930718" id="rhn-source-package-41701" source-rpm="gnome-terminal-2.16.0-3.el5.src.rpm"/><source-package last-modified="1174930719" id="rhn-source-package-41702" source-rpm="aspell-de-0.50-11.2.2.src.rpm"/><source-package last-modified="1174930719" id="rhn-source-package-41703" source-rpm="at-3.1.8-82.fc6.src.rpm"/><source-package last-modified="1174930721" id="rhn-source-package-41704" source-rpm="texinfo-4.8-14.el5.src.rpm"/><source-package last-modified="1174930723" id="rhn-source-package-41705" source-rpm="aspell-0.60.3-7.1.src.rpm"/><source-package last-modified="1174930727" id="rhn-source-package-41706" source-rpm="scim-hangul-0.2.2-7.fc6.src.rpm"/><source-package last-modified="1174930727" id="rhn-source-package-41707" source-rpm="python-ldap-2.2.0-2.1.src.rpm"/><source-package last-modified="1174930728" id="rhn-source-package-41708" source-rpm="ed-0.2-38.2.2.src.rpm"/><source-package last-modified="1174930731" id="rhn-source-package-41709" source-rpm="gnome-themes-2.16.0-1.fc6.src.rpm"/><source-package last-modified="1174930732" id="rhn-source-package-41710" source-rpm="gnome-session-2.16.0-6.el5.src.rpm"/><source-package last-modified="1174930733" id="rhn-source-package-41711" source-rpm="scim-chewing-0.3.1-10.el5.src.rpm"/><source-package last-modified="1174930734" id="rhn-source-package-41712" source-rpm="man-pages-it-0.3.0-17.1.src.rpm"/><source-package last-modified="1174930747" id="rhn-source-package-41713" source-rpm="gimp-2.2.13-1.fc6.src.rpm"/><source-package last-modified="1174930748" id="rhn-source-package-41714" source-rpm="vixie-cron-4.1-66.1.el5.src.rpm"/><source-package last-modified="1174930748" id="rhn-source-package-41715" source-rpm="quota-3.13-1.2.3.2.el5.src.rpm"/><source-package last-modified="1174930750" id="rhn-source-package-41716" source-rpm="gnome-bluetooth-0.7.0-10.2.el5.src.rpm"/><source-package last-modified="1174930750" id="rhn-source-package-41717" source-rpm="xinetd-2.3.14-10.el5.src.rpm"/><source-package last-modified="1174930751" id="rhn-source-package-41718" source-rpm="tcp_wrappers-7.6-40.2.1.src.rpm"/><source-package last-modified="1174930752" id="rhn-source-package-41719" source-rpm="microcode_ctl-1.15-1.40.el5.src.rpm"/><source-package last-modified="1174930758" id="rhn-source-package-41720" source-rpm="openmotif-2.3.0-0.3.el5.src.rpm"/><source-package last-modified="1174930759" id="rhn-source-package-41721" source-rpm="tsclient-0.148-6.el5.src.rpm"/><source-package last-modified="1174930759" id="rhn-source-package-41722" source-rpm="rdesktop-1.4.1-4.src.rpm"/><source-package last-modified="1174930760" id="rhn-source-package-41723" source-rpm="mkinitrd-5.1.19.6-1.src.rpm"/><source-package last-modified="1174930761" id="rhn-source-package-41724" source-rpm="pm-utils-0.19-3.src.rpm"/><source-package last-modified="1174930791" id="rhn-source-package-41725" source-rpm="esc-1.0.0-20.el5.src.rpm"/><source-package last-modified="1174930793" id="rhn-source-package-41726" source-rpm="joe-3.4-3.src.rpm"/><source-package last-modified="1174930795" id="rhn-source-package-41727" source-rpm="totem-2.16.4-2.el5.src.rpm"/><source-package last-modified="1174930796" id="rhn-source-package-41728" source-rpm="irda-utils-0.9.17-2.fc6.src.rpm"/><source-package last-modified="1174930798" id="rhn-source-package-41729" source-rpm="setools-3.0-3.el5.src.rpm"/><source-package last-modified="1174930801" id="rhn-source-package-41730" source-rpm="termcap-5.5-1.20060701.1.src.rpm"/><source-package last-modified="1174930807" id="rhn-source-package-41731" source-rpm="cachefilesd-0.7-6.el5.src.rpm"/><source-package last-modified="1174930817" id="rhn-source-package-41732" source-rpm="nfs-utils-1.0.9-16.el5.src.rpm"/><source-package last-modified="1174930817" id="rhn-source-package-41733" source-rpm="pam_passwdqc-1.0.2-1.2.2.src.rpm"/><source-package last-modified="1174930859" id="rhn-source-package-41735" source-rpm="aspell-el-0.50-4.2.2.src.rpm"/><source-package last-modified="1174930862" id="rhn-source-package-41736" source-rpm="xcdroast-0.98a15-12.2.2.src.rpm"/><source-package last-modified="1174930864" id="rhn-source-package-41737" source-rpm="prelink-0.3.9-2.src.rpm"/><source-package last-modified="1174930865" id="rhn-source-package-41738" source-rpm="distcache-1.4.5-14.1.src.rpm"/><source-package last-modified="1174930866" id="rhn-source-package-41739" source-rpm="avahi-0.6.16-1.el5.src.rpm"/><source-package last-modified="1174930868" id="rhn-source-package-41740" source-rpm="gnome-backgrounds-2.15.92-1.fc6.src.rpm"/><source-package last-modified="1174930869" id="rhn-source-package-41741" source-rpm="aspell-en-6.0-2.1.src.rpm"/><source-package last-modified="1174930869" id="rhn-source-package-41742" source-rpm="xorg-x11-drivers-7.1-4.1.el5.src.rpm"/><source-package last-modified="1174930871" id="rhn-source-package-41743" source-rpm="aspell-cs-0.51-3.2.2.src.rpm"/><source-package last-modified="1174930873" id="rhn-source-package-41744" source-rpm="gnome-power-manager-2.16.0-7.el5.src.rpm"/><source-package last-modified="1174930880" id="rhn-source-package-41745" source-rpm="vnc-4.1.2-9.el5.src.rpm"/><source-package last-modified="1174930881" id="rhn-source-package-41746" source-rpm="aspell-bg-0.50-11.2.2.src.rpm"/><source-package last-modified="1174930884" id="rhn-source-package-41747" source-rpm="dejavu-lgc-fonts-2.10-1.src.rpm"/><source-package last-modified="1174930885" id="rhn-source-package-41748" source-rpm="dump-0.4b41-2.fc6.src.rpm"/><source-package last-modified="1174930887" id="rhn-source-package-41749" source-rpm="hal-0.5.8.1-19.el5.src.rpm"/><source-package last-modified="1174930905" id="rhn-source-package-41750" source-rpm="mysql-5.0.22-2.1.src.rpm"/><source-package last-modified="1174930930" id="rhn-source-package-41751" source-rpm="kdebase-3.5.4-13.5.el5.src.rpm"/><source-package last-modified="1174930933" id="rhn-source-package-41752" source-rpm="oprofile-0.9.2-6.el5.src.rpm"/><source-package last-modified="1174930935" id="rhn-source-package-41753" source-rpm="spamassassin-3.1.7-4.el5.src.rpm"/><source-package last-modified="1174930949" id="rhn-source-package-41754" source-rpm="redhat-logos-4.9.16-1.src.rpm"/><source-package last-modified="1174930950" id="rhn-source-package-41755" source-rpm="kbd-1.12-19.el5.src.rpm"/><source-package last-modified="1174930952" id="rhn-source-package-41756" source-rpm="parted-1.8.1-4.el5.src.rpm"/><source-package last-modified="1174930952" id="rhn-source-package-41757" source-rpm="sysklogd-1.4.1-39.2.src.rpm"/><source-package last-modified="1174930954" id="rhn-source-package-41758" source-rpm="unzip-5.52-2.2.1.src.rpm"/><source-package last-modified="1174930955" id="rhn-source-package-41759" source-rpm="scim-anthy-1.2.0-5.el5.src.rpm"/><source-package last-modified="1174930955" id="rhn-source-package-41760" source-rpm="perl-Convert-ASN1-0.20-1.1.src.rpm"/><source-package last-modified="1174930957" id="rhn-source-package-41761" source-rpm="synaptics-0.14.4-8.fc6.src.rpm"/><source-package last-modified="1174930957" id="rhn-source-package-41762" source-rpm="authd-1.4.3-9.src.rpm"/><source-package last-modified="1174930958" id="rhn-source-package-41763" source-rpm="aspell-da-0.50-12.2.2.src.rpm"/><source-package last-modified="1174930959" id="rhn-source-package-41764" source-rpm="file-4.17-8.src.rpm"/><source-package last-modified="1174930960" id="rhn-source-package-41765" source-rpm="aspell-no-0.50.1-9.2.2.src.rpm"/><source-package last-modified="1174930964" id="rhn-source-package-41766" source-rpm="cups-1.2.4-11.5.el5.src.rpm"/><source-package last-modified="1174930964" id="rhn-source-package-41767" source-rpm="rp-pppoe-3.5-32.1.src.rpm"/><source-package last-modified="1174930966" id="rhn-source-package-41768" source-rpm="brltty-3.7.2-1.fc6.src.rpm"/><source-package last-modified="1174930967" id="rhn-source-package-41769" source-rpm="sane-frontends-1.0.14-1.2.2.src.rpm"/><source-package last-modified="1174930969" id="rhn-source-package-41770" source-rpm="scim-m17n-0.2.0-6.fc6.src.rpm"/><source-package last-modified="1174930970" id="rhn-source-package-41771" source-rpm="sudo-1.6.8p12-10.src.rpm"/><source-package last-modified="1174930981" id="rhn-source-package-41772" source-rpm="rpm-4.4.2-37.el5.src.rpm"/><source-package last-modified="1174930982" id="rhn-source-package-41773" source-rpm="passwd-0.73-1.src.rpm"/><source-package last-modified="1174930983" id="rhn-source-package-41774" source-rpm="keyutils-1.2-1.el5.src.rpm"/><source-package last-modified="1174930984" id="rhn-source-package-41775" source-rpm="scim-chinese-standard-0.0.2-1.el5.src.rpm"/><source-package last-modified="1174930985" id="rhn-source-package-41776" source-rpm="libgtk-java-2.8.7-3.el5.src.rpm"/><source-package last-modified="1174930985" id="rhn-source-package-41777" source-rpm="finger-0.17-32.2.1.1.src.rpm"/><source-package last-modified="1174930994" id="rhn-source-package-41778" source-rpm="kdeaccessibility-3.5.4-1.fc6.src.rpm"/><source-package last-modified="1174930996" id="rhn-source-package-41779" source-rpm="sound-juicer-2.16.0-3.el5.src.rpm"/><source-package last-modified="1174930997" id="rhn-source-package-41780" source-rpm="stunnel-4.15-2.src.rpm"/><source-package last-modified="1174930997" id="rhn-source-package-41781" source-rpm="dvd+rw-tools-7.0-0.el5.3.src.rpm"/><source-package last-modified="1174931000" id="rhn-source-package-41782" source-rpm="lynx-2.8.5-28.1.src.rpm"/><source-package last-modified="1174931001" id="rhn-source-package-41783" source-rpm="man-pages-ko-1.48-15.1.1.src.rpm"/><source-package last-modified="1174931001" id="rhn-source-package-41784" source-rpm="cpuspeed-1.2.1-1.45.el5.src.rpm"/><source-package last-modified="1174931002" id="rhn-source-package-41785" source-rpm="alacarte-0.10.0-1.fc6.src.rpm"/><source-package last-modified="1174931003" id="rhn-source-package-41786" source-rpm="m2crypto-0.16-6.el5.1.src.rpm"/><source-package last-modified="1174931004" id="rhn-source-package-41787" source-rpm="aspell-af-0.50-4.2.2.src.rpm"/><source-package last-modified="1174931004" id="rhn-source-package-41788" source-rpm="aspell-gd-0.50-4.2.2.src.rpm"/><source-package last-modified="1174931005" id="rhn-source-package-41789" source-rpm="vino-2.13.5-6.el5.src.rpm"/><source-package last-modified="1174931006" id="rhn-source-package-41790" source-rpm="acpid-1.0.4-5.src.rpm"/><source-package last-modified="1174931007" id="rhn-source-package-41791" source-rpm="zip-2.31-1.2.2.src.rpm"/><source-package last-modified="1174931008" id="rhn-source-package-41792" source-rpm="lsof-4.78-3.src.rpm"/><source-package last-modified="1174931009" id="rhn-source-package-41793" source-rpm="pirut-1.2.10-1.el5.src.rpm"/><source-package last-modified="1174931009" id="rhn-source-package-41794" source-rpm="cdparanoia-alpha9.8-27.2.src.rpm"/><source-package last-modified="1174931011" id="rhn-source-package-41795" source-rpm="wireless-tools-28-2.el5.src.rpm"/><source-package last-modified="1174931012" id="rhn-source-package-41796" source-rpm="ipsec-tools-0.6.5-6.src.rpm"/><source-package last-modified="1174931016" id="rhn-source-package-41798" source-rpm="gnupg-1.4.5-12.src.rpm"/><source-package last-modified="1174931017" id="rhn-source-package-41799" source-rpm="stardict-2.4.5-5.src.rpm"/><source-package last-modified="1174931019" id="rhn-source-package-41800" source-rpm="coolkey-1.0.1-16.el5.src.rpm"/><source-package last-modified="1174931019" id="rhn-source-package-41801" source-rpm="filesystem-2.4.0-1.src.rpm"/><source-package last-modified="1174931021" id="rhn-source-package-41802" source-rpm="fonts-hebrew-0.100-4.1.1.src.rpm"/><source-package last-modified="1174931021" id="rhn-source-package-41803" source-rpm="xhtml1-dtds-1.0-7.1.1.src.rpm"/><source-package last-modified="1174931023" id="rhn-source-package-41804" source-rpm="x3270-3.3.4p7-3.el5.1.src.rpm"/><source-package last-modified="1174931025" id="rhn-source-package-41805" source-rpm="orca-1.0.0-5.el5.src.rpm"/><source-package last-modified="1174931026" id="rhn-source-package-41806" source-rpm="selinux-policy-2.4.6-30.el5.src.rpm"/><source-package last-modified="1174931026" id="rhn-source-package-41807" source-rpm="fonts-sinhala-0.2.2-1.src.rpm"/><source-package last-modified="1174931028" id="rhn-source-package-41809" source-rpm="nss_ldap-253-3.src.rpm"/><source-package last-modified="1174931028" id="rhn-source-package-41810" source-rpm="bridge-utils-1.1-2.src.rpm"/><source-package last-modified="1174931029" id="rhn-source-package-41811" source-rpm="oddjob-0.27-7.src.rpm"/><source-package last-modified="1174931030" id="rhn-source-package-41812" source-rpm="bug-buddy-2.16.0-2.el5.src.rpm"/><source-package last-modified="1174931031" id="rhn-source-package-41813" source-rpm="vconfig-1.9-2.1.src.rpm"/><source-package last-modified="1174931031" id="rhn-source-package-41814" source-rpm="system-config-samba-1.2.39-1.el5.src.rpm"/><source-package last-modified="1174931032" id="rhn-source-package-41815" source-rpm="xrestop-0.2-6.2.2.src.rpm"/><source-package last-modified="1174931032" id="rhn-source-package-41816" source-rpm="symlinks-1.2-24.2.2.src.rpm"/><source-package last-modified="1174931033" id="rhn-source-package-41817" source-rpm="system-config-boot-0.2.13-1.el5.src.rpm"/><source-package last-modified="1174931033" id="rhn-source-package-41818" source-rpm="aspell-br-0.50-4.2.2.src.rpm"/><source-package last-modified="1174931034" id="rhn-source-package-41819" source-rpm="gnome-volume-manager-2.15.0-4.el5.src.rpm"/><source-package last-modified="1174931035" id="rhn-source-package-41820" source-rpm="libgconf-java-2.12.4-6.el5.src.rpm"/><source-package last-modified="1174931038" id="rhn-source-package-41821" source-rpm="gnome-media-2.16.1-3.el5.src.rpm"/><source-package last-modified="1174931041" id="rhn-source-package-41822" source-rpm="am-utils-6.1.5-4.1.el5.src.rpm"/><source-package last-modified="1174931046" id="rhn-source-package-41823" source-rpm="gimp-data-extras-2.0.1-1.1.1.src.rpm"/><source-package last-modified="1174931046" id="rhn-source-package-41824" source-rpm="perl-DateManip-5.44-1.2.1.src.rpm"/><source-package last-modified="1174931050" id="rhn-source-package-41825" source-rpm="man-pages-ja-20060815-2.src.rpm"/><source-package last-modified="1174931052" id="rhn-source-package-41826" source-rpm="xorg-x11-apps-7.1-4.el5.src.rpm"/><source-package last-modified="1174931053" id="rhn-source-package-41828" source-rpm="setarch-2.0-1.1.src.rpm"/><source-package last-modified="1174931066" id="rhn-source-package-41829" source-rpm="binutils-2.17.50.0.6-2.el5.src.rpm"/><source-package last-modified="1174931066" id="rhn-source-package-41830" source-rpm="iptstate-1.4-1.1.2.2.src.rpm"/><source-package last-modified="1174931072" id="rhn-source-package-41831" source-rpm="dasher-4.2.0-2.el5.src.rpm"/><source-package last-modified="1174931075" id="rhn-source-package-41832" source-rpm="gnome-screensaver-2.16.1-5.el5.src.rpm"/><source-package last-modified="1174931076" id="rhn-source-package-41833" source-rpm="enscript-1.6.4-4.fc6.src.rpm"/><source-package last-modified="1174931079" id="rhn-source-package-41834" source-rpm="flex-2.5.4a-41.fc6.src.rpm"/><source-package last-modified="1174931079" id="rhn-source-package-41835" source-rpm="crontabs-1.10-8.src.rpm"/><source-package last-modified="1174931080" id="rhn-source-package-41836" source-rpm="lslk-1.29-17.src.rpm"/><source-package last-modified="1174931080" id="rhn-source-package-41837" source-rpm="eruby-1.0.5-6.1.src.rpm"/><source-package last-modified="1174931083" id="rhn-source-package-41838" source-rpm="a2ps-4.13b-57.1.el5.src.rpm"/><source-package last-modified="1174931084" id="rhn-source-package-41839" source-rpm="redhat-rpm-config-8.0.45-17.el5.src.rpm"/><source-package last-modified="1174931084" id="rhn-source-package-41840" source-rpm="logwatch-7.3-5.src.rpm"/><source-package last-modified="1174931085" id="rhn-source-package-41841" source-rpm="lv-4.51-8.1.src.rpm"/><source-package last-modified="1174931087" id="rhn-source-package-41842" source-rpm="xorg-x11-utils-7.1-2.fc6.src.rpm"/><source-package last-modified="1174931087" id="rhn-source-package-41843" source-rpm="joystick-1.2.15-20.2.2.src.rpm"/><source-package last-modified="1174931088" id="rhn-source-package-41844" source-rpm="libglade-java-2.12.5-3.fc6.src.rpm"/><source-package last-modified="1174931095" id="rhn-source-package-41845" source-rpm="gnome-applets-2.16.0.1-19.el5.src.rpm"/><source-package last-modified="1174931096" id="rhn-source-package-41846" source-rpm="iptraf-3.0.0-5.el5.src.rpm"/><source-package last-modified="1174931098" id="rhn-source-package-41847" source-rpm="emacspeak-23.0-2.1.src.rpm"/><source-package last-modified="1174931099" id="rhn-source-package-41848" source-rpm="aspell-cy-0.50-4.2.2.src.rpm"/><source-package last-modified="1174931099" id="rhn-source-package-41849" source-rpm="units-1.85-1.2.2.src.rpm"/><source-package last-modified="1174931101" id="rhn-source-package-41850" source-rpm="strace-4.5.15-1.el5.src.rpm"/><source-package last-modified="1174931107" id="rhn-source-package-41851" source-rpm="cadaver-0.22.3-4.el5.src.rpm"/><source-package last-modified="1174931109" id="rhn-source-package-41852" source-rpm="xchat-2.6.6-8.el5.src.rpm"/><source-package last-modified="1174931111" id="rhn-source-package-41853" source-rpm="xmlsec1-1.2.9-8.1.src.rpm"/><source-package last-modified="1174931111" id="rhn-source-package-41854" source-rpm="traceroute-2.0.1-2.el5.src.rpm"/><source-package last-modified="1174931115" id="rhn-source-package-41855" source-rpm="man-pages-pl-0.24-2.1.src.rpm"/><source-package last-modified="1174931117" id="rhn-source-package-41856" source-rpm="exim-4.63-3.el5.src.rpm"/><source-package last-modified="1174931159" id="rhn-source-package-41859" source-rpm="xen-3.0.3-25.el5.src.rpm"/><source-package last-modified="1174931169" id="rhn-source-package-41863" source-rpm="ant-1.6.5-2jpp.2.src.rpm"/><source-package last-modified="1174931170" id="rhn-source-package-41864" source-rpm="ctags-5.6-1.1.src.rpm"/><source-package last-modified="1174931172" id="rhn-source-package-41865" source-rpm="libchewing-0.3.0-7.el5.src.rpm"/><source-package last-modified="1174931174" id="rhn-source-package-41866" source-rpm="xml-commons-1.3.02-0.b2.7jpp.10.src.rpm"/><source-package last-modified="1174931175" id="rhn-source-package-41867" source-rpm="javacc-4.0-3jpp.3.src.rpm"/><source-package last-modified="1174931176" id="rhn-source-package-41868" source-rpm="junit-3.8.2-3jpp.1.src.rpm"/><source-package last-modified="1174931189" id="rhn-source-package-41869" source-rpm="boost-1.33.1-10.el5.src.rpm"/><source-package last-modified="1174931191" id="rhn-source-package-41870" source-rpm="bison-2.3-2.1.src.rpm"/><source-package last-modified="1174931193" id="rhn-source-package-41871" source-rpm="libwvstreams-4.2.2-2.1.src.rpm"/><source-package last-modified="1174931199" id="rhn-source-package-41872" source-rpm="tomcat5-5.5.17-8jpp.2.src.rpm"/><source-package last-modified="1174931204" id="rhn-source-package-41873" source-rpm="xalan-j2-2.7.0-6jpp.1.src.rpm"/><source-package last-modified="1174931206" id="rhn-source-package-41874" source-rpm="castor-0.9.5-1jpp.7.src.rpm"/><source-package last-modified="1174931208" id="rhn-source-package-41875" source-rpm="libgnomeui-2.16.0-5.el5.src.rpm"/><source-package last-modified="1174931209" id="rhn-source-package-41876" source-rpm="velocity-1.4-6jpp.1.src.rpm"/><source-package last-modified="1174931211" id="rhn-source-package-41877" source-rpm="m17n-lib-1.3.3-1.1.fc6.src.rpm"/><source-package last-modified="1174931212" id="rhn-source-package-41878" source-rpm="libdv-0.104-4.fc6.1.src.rpm"/><source-package last-modified="1174931220" id="rhn-source-package-41879" source-rpm="lam-7.1.2-8.fc6.src.rpm"/><source-package last-modified="1174931233" id="rhn-source-package-41880" source-rpm="openib-1.1-5.el5.src.rpm"/><source-package last-modified="1174931234" id="rhn-source-package-41881" source-rpm="gtkspell-2.0.11-2.1.src.rpm"/><source-package last-modified="1174931238" id="rhn-source-package-41882" source-rpm="tk-8.4.13-3.fc6.src.rpm"/><source-package last-modified="1174931241" id="rhn-source-package-41883" source-rpm="ncurses-5.5-24.20060715.src.rpm"/><source-package last-modified="1174931244" id="rhn-source-package-41884" source-rpm="splint-3.1.1-16.el5.src.rpm"/><source-package last-modified="1174931245" id="rhn-source-package-41885" source-rpm="Xaw3d-1.5E-10.1.src.rpm"/><source-package last-modified="1174931246" id="rhn-source-package-41886" source-rpm="libmusicbrainz-2.1.1-4.1.src.rpm"/><source-package last-modified="1174931272" id="rhn-source-package-41887" source-rpm="emacs-21.4-17.src.rpm"/><source-package last-modified="1174931274" id="rhn-source-package-41888" source-rpm="libexif-0.6.13-4.el5.src.rpm"/><source-package last-modified="1174931276" id="rhn-source-package-41889" source-rpm="libtheora-1.0alpha7-1.src.rpm"/><source-package last-modified="1174931277" id="rhn-source-package-41890" source-rpm="libXtst-1.0.1-3.1.src.rpm"/><source-package last-modified="1174931278" id="rhn-source-package-41891" source-rpm="audiofile-0.2.6-5.src.rpm"/><source-package last-modified="1174931279" id="rhn-source-package-41892" source-rpm="imake-1.0.2-3.src.rpm"/><source-package last-modified="1174931281" id="rhn-source-package-41893" source-rpm="avalon-logkit-1.2-4jpp.3.src.rpm"/><source-package last-modified="1174931282" id="rhn-source-package-41894" source-rpm="xorg-x11-drv-via-0.2.1-9.src.rpm"/><source-package last-modified="1174931283" id="rhn-source-package-41895" source-rpm="mx4j-3.0.1-6jpp.4.src.rpm"/><source-package last-modified="1174931287" id="rhn-source-package-41896" source-rpm="lm_sensors-2.10.0-3.1.src.rpm"/><source-package last-modified="1174931296" id="rhn-source-package-41897" source-rpm="php-5.1.6-5.el5.src.rpm"/><source-package last-modified="1174931305" id="rhn-source-package-41898" source-rpm="iso-codes-0.53-1.src.rpm"/><source-package last-modified="1174931305" id="rhn-source-package-41899" source-rpm="libiec61883-1.0.0-11.fc6.src.rpm"/><source-package last-modified="1174931307" id="rhn-source-package-41900" source-rpm="cman-2.0.60-1.el5.src.rpm"/><source-package last-modified="1174931307" id="rhn-source-package-41901" source-rpm="jakarta-commons-pool-1.3-5jpp.1.src.rpm"/><source-package last-modified="1174931314" id="rhn-source-package-41902" source-rpm="subversion-1.4.2-2.el5.src.rpm"/><source-package last-modified="1174931393" id="rhn-source-package-41903" source-rpm="eclipse-3.2.1-18.el5.src.rpm"/><source-package last-modified="1174931396" id="rhn-source-package-41904" source-rpm="jlex-1.2.6-5jpp.1.src.rpm"/><source-package last-modified="1174931398" id="rhn-source-package-41905" source-rpm="jakarta-commons-lang-2.1-5jpp.1.src.rpm"/><source-package last-modified="1174931399" id="rhn-source-package-41906" source-rpm="indent-2.2.9-14.fc6.src.rpm"/><source-package last-modified="1174931399" id="rhn-source-package-41907" source-rpm="byacc-1.9-29.2.2.src.rpm"/><source-package last-modified="1174931400" id="rhn-source-package-41908" source-rpm="libcroco-0.6.1-2.1.src.rpm"/><source-package last-modified="1174931401" id="rhn-source-package-41909" source-rpm="libXi-1.0.1-3.1.src.rpm"/><source-package last-modified="1174931407" id="rhn-source-package-41910" source-rpm="lapack-3.0-37.el5.src.rpm"/><source-package last-modified="1174931415" id="rhn-source-package-41911" source-rpm="freeradius-1.1.3-1.1.el5.src.rpm"/><source-package last-modified="1174931416" id="rhn-source-package-41912" source-rpm="classpathx-mail-1.1.1-4jpp.2.src.rpm"/><source-package last-modified="1174931438" id="rhn-source-package-41913" source-rpm="python-docs-2.4.3-1.1.src.rpm"/><source-package last-modified="1174931445" id="rhn-source-package-41914" source-rpm="libXft-2.1.10-1.1.src.rpm"/><source-package last-modified="1174931450" id="rhn-source-package-41915" source-rpm="kdesdk-3.5.4-3.el5.src.rpm"/><source-package last-modified="1174931461" id="rhn-source-package-41916" source-rpm="jakarta-commons-collections-3.1-6jpp.1.src.rpm"/><source-package last-modified="1174931468" id="rhn-source-package-41917" source-rpm="pam-0.99.6.2-3.14.el5.src.rpm"/><source-package last-modified="1174931469" id="rhn-source-package-41918" source-rpm="radvd-0.9.1-4.src.rpm"/><source-package last-modified="1174931471" id="rhn-source-package-41919" source-rpm="libidn-0.6.5-1.1.src.rpm"/><source-package last-modified="1174931474" id="rhn-source-package-41920" source-rpm="libxslt-1.1.17-2.src.rpm"/><source-package last-modified="1174931475" id="rhn-source-package-41921" source-rpm="libdhcp-1.17-1.el5.src.rpm"/><source-package last-modified="1174931479" id="rhn-source-package-41922" source-rpm="axis-1.2.1-2jpp.6.src.rpm"/><source-package last-modified="1174931480" id="rhn-source-package-41923" source-rpm="jakarta-commons-logging-1.0.4-6jpp.1.src.rpm"/><source-package last-modified="1174931488" id="rhn-source-package-41924" source-rpm="python-2.4.3-19.el5.src.rpm"/><source-package last-modified="1174931490" id="rhn-source-package-41925" source-rpm="xdoclet-1.2.3-7jpp.2.src.rpm"/><source-package last-modified="1174931494" id="rhn-source-package-41926" source-rpm="libSM-1.0.1-3.1.src.rpm"/><source-package last-modified="1174931494" id="rhn-source-package-41927" source-rpm="jakarta-commons-el-1.0-7jpp.1.src.rpm"/><source-package last-modified="1174931495" id="rhn-source-package-41928" source-rpm="libraw1394-1.2.1-1.fc6.src.rpm"/><source-package last-modified="1174931499" id="rhn-source-package-41929" source-rpm="mod_perl-2.0.2-6.1.src.rpm"/><source-package last-modified="1174931502" id="rhn-source-package-41930" source-rpm="squid-2.6.STABLE6-3.el5.src.rpm"/><source-package last-modified="1174931505" id="rhn-source-package-41931" source-rpm="xerces-j2-2.7.1-7jpp.2.src.rpm"/><source-package last-modified="1174931507" id="rhn-source-package-41932" source-rpm="nasm-0.98.39-3.2.2.src.rpm"/><source-package last-modified="1174931512" id="rhn-source-package-41933" source-rpm="valgrind-3.2.1-6.el5.src.rpm"/><source-package last-modified="1174931517" id="rhn-source-package-41934" source-rpm="gphoto2-2.2.0-3.el5.src.rpm"/><source-package last-modified="1174931519" id="rhn-source-package-41935" source-rpm="gnome-desktop-2.16.0-1.fc6.src.rpm"/><source-package last-modified="1174931520" id="rhn-source-package-41936" source-rpm="libICE-1.0.1-2.1.src.rpm"/><source-package last-modified="1174931521" id="rhn-source-package-41937" source-rpm="zlib-1.2.3-3.src.rpm"/><source-package last-modified="1174931523" id="rhn-source-package-41938" source-rpm="libwmf-0.2.8.4-10.1.src.rpm"/><source-package last-modified="1174931524" id="rhn-source-package-41939" source-rpm="jsch-0.1.28-1jpp.5.src.rpm"/><source-package last-modified="1174931526" id="rhn-source-package-41940" source-rpm="pvm-3.4.5-7.fc6.1.src.rpm"/><source-package last-modified="1174931529" id="rhn-source-package-41941" source-rpm="ORBit2-2.14.3-4.el5.src.rpm"/><source-package last-modified="1174931529" id="rhn-source-package-41942" source-rpm="hardlink-1.0-1.26.src.rpm"/><source-package last-modified="1174931530" id="rhn-source-package-41943" source-rpm="avalon-framework-4.1.4-2jpp.13.src.rpm"/><source-package last-modified="1174931530" id="rhn-source-package-41944" source-rpm="libXext-1.0.1-2.1.src.rpm"/><source-package last-modified="1174931531" id="rhn-source-package-41945" source-rpm="device-mapper-multipath-0.4.7-8.el5.src.rpm"/><source-package last-modified="1174931532" id="rhn-source-package-41946" source-rpm="xml-commons-resolver-1.1-1jpp.12.src.rpm"/><source-package last-modified="1174931533" id="rhn-source-package-41947" source-rpm="libgsf-1.14.1-6.1.src.rpm"/><source-package last-modified="1174931533" id="rhn-source-package-41948" source-rpm="gob2-2.0.14-1.1.src.rpm"/><source-package last-modified="1174931536" id="rhn-source-package-41949" source-rpm="cyrus-imapd-2.3.7-1.1.el5.src.rpm"/><source-package last-modified="1174931537" id="rhn-source-package-41950" source-rpm="mtr-0.71-3.1.src.rpm"/><source-package last-modified="1174931538" id="rhn-source-package-41951" source-rpm="gdk-pixbuf-0.22.0-25.el5.src.rpm"/><source-package last-modified="1174931540" id="rhn-source-package-41952" source-rpm="expat-1.95.8-8.2.1.src.rpm"/><source-package last-modified="1174931543" id="rhn-source-package-41953" source-rpm="antlr-2.7.6-4jpp.2.src.rpm"/><source-package last-modified="1174931544" id="rhn-source-package-41954" source-rpm="jakarta-commons-modeler-1.1-8jpp.1.src.rpm"/><source-package last-modified="1174931544" id="rhn-source-package-41955" source-rpm="ElectricFence-2.2.2-20.2.2.src.rpm"/><source-package last-modified="1174931546" id="rhn-source-package-41956" source-rpm="sqlite-3.3.6-2.src.rpm"/><source-package last-modified="1174931547" id="rhn-source-package-41957" source-rpm="jakarta-oro-2.0.8-3jpp.1.src.rpm"/><source-package last-modified="1174931549" id="rhn-source-package-41958" source-rpm="scim-1.4.4-39.el5.src.rpm"/><source-package last-modified="1174931566" id="rhn-source-package-41961" source-rpm="giflib-4.1.3-7.1.el5.1.src.rpm"/><source-package last-modified="1174931568" id="rhn-source-package-41962" source-rpm="fontconfig-2.4.1-6.el5.src.rpm"/><source-package last-modified="1174931570" id="rhn-source-package-41963" source-rpm="GConf2-2.14.0-9.el5.src.rpm"/><source-package last-modified="1174931572" id="rhn-source-package-41964" source-rpm="libgnome-2.16.0-6.el5.src.rpm"/><source-package last-modified="1174931582" id="rhn-source-package-41965" source-rpm="system-config-bind-4.0.3-2.el5.src.rpm"/><source-package last-modified="1174931583" id="rhn-source-package-41966" source-rpm="speex-1.0.5-4.src.rpm"/><source-package last-modified="1174931585" id="rhn-source-package-41967" source-rpm="elfutils-0.125-3.el5.src.rpm"/><source-package last-modified="1174931585" id="rhn-source-package-41968" source-rpm="libXvMC-1.0.2-2.1.src.rpm"/><source-package last-modified="1174931589" id="rhn-source-package-41969" source-rpm="ksh-20060214-1.4.src.rpm"/><source-package last-modified="1174931594" id="rhn-source-package-41970" source-rpm="poppler-0.5.4-4.el5.src.rpm"/><source-package last-modified="1174931594" id="rhn-source-package-41971" source-rpm="jakarta-commons-digester-1.7-5jpp.1.src.rpm"/><source-package last-modified="1174931596" id="rhn-source-package-41972" source-rpm="apr-1.2.7-11.src.rpm"/><source-package last-modified="1174931599" id="rhn-source-package-41973" source-rpm="openmpi-1.1.1-5.el5.src.rpm"/><source-package last-modified="1174931600" id="rhn-source-package-41974" source-rpm="libXrandr-1.1.1-3.1.src.rpm"/><source-package last-modified="1174931601" id="rhn-source-package-41975" source-rpm="libgssapi-0.10-2.src.rpm"/><source-package last-modified="1174931603" id="rhn-source-package-41976" source-rpm="jakarta-commons-httpclient-3.0-7jpp.1.src.rpm"/><source-package last-modified="1174931604" id="rhn-source-package-41977" source-rpm="gnome-keyring-0.6.0-1.fc6.src.rpm"/><source-package last-modified="1174931605" id="rhn-source-package-41978" source-rpm="jakarta-taglibs-standard-1.1.1-7jpp.1.src.rpm"/><source-package last-modified="1174931610" id="rhn-source-package-41979" source-rpm="log4j-1.2.13-3jpp.2.src.rpm"/><source-package last-modified="1174931611" id="rhn-source-package-41980" source-rpm="PyQt-3.16-4.src.rpm"/><source-package last-modified="1174931612" id="rhn-source-package-41981" source-rpm="lockdev-1.0.1-10.src.rpm"/><source-package last-modified="1174931612" id="rhn-source-package-41982" source-rpm="xjavadoc-1.1-4jpp.1.src.rpm"/><source-package last-modified="1174931613" id="rhn-source-package-41983" source-rpm="libdrm-2.0.2-1.1.src.rpm"/><source-package last-modified="1174931614" id="rhn-source-package-41984" source-rpm="libXmu-1.0.2-5.src.rpm"/><source-package last-modified="1174931616" id="rhn-source-package-41985" source-rpm="libgtop2-2.14.4-3.el5.src.rpm"/><source-package last-modified="1174931616" id="rhn-source-package-41986" source-rpm="xferstats-2.16-14.1.src.rpm"/><source-package last-modified="1174931617" id="rhn-source-package-41987" source-rpm="libIDL-0.8.7-1.fc6.src.rpm"/><source-package last-modified="1174931632" id="rhn-source-package-41988" source-rpm="kdelibs-3.5.4-11.el5.src.rpm"/><source-package last-modified="1174931634" id="rhn-source-package-41989" source-rpm="libbonobo-2.16.0-1.fc6.src.rpm"/><source-package last-modified="1174931636" id="rhn-source-package-41990" source-rpm="pygtk2-2.10.1-8.el5.src.rpm"/><source-package last-modified="1174931639" id="rhn-source-package-41991" source-rpm="sip-4.4.5-3.src.rpm"/><source-package last-modified="1174931640" id="rhn-source-package-41992" source-rpm="esound-0.2.36-3.src.rpm"/><source-package last-modified="1174931653" id="rhn-source-package-41995" source-rpm="icu-3.6-5.9.src.rpm"/><source-package last-modified="1174931654" id="rhn-source-package-41996" source-rpm="gd-2.0.33-9.3.fc6.src.rpm"/><source-package last-modified="1174931655" id="rhn-source-package-41997" source-rpm="tclx-8.4.0-5.fc6.src.rpm"/><source-package last-modified="1174931656" id="rhn-source-package-41998" source-rpm="cairo-java-1.0.5-3.fc6.src.rpm"/><source-package last-modified="1174931657" id="rhn-source-package-41999" source-rpm="mgetty-1.1.33-9.fc6.src.rpm"/><source-package last-modified="1174931658" id="rhn-source-package-42000" source-rpm="tux-3.2.18-9.fc6.src.rpm"/><source-package last-modified="1174931661" id="rhn-source-package-42001" source-rpm="bcel-5.1-8jpp.1.src.rpm"/><source-package last-modified="1174931662" id="rhn-source-package-42002" source-rpm="gnome-menus-2.16.0-2.fc6.src.rpm"/><source-package last-modified="1174931663" id="rhn-source-package-42003" source-rpm="jakarta-commons-daemon-1.0.1-6jpp.1.src.rpm"/><source-package last-modified="1174931664" id="rhn-source-package-42004" source-rpm="libXaw-1.0.2-8.1.src.rpm"/><source-package last-modified="1174931700" id="rhn-source-package-42022" source-rpm="ibmasm-3.0-9.src.rpm"/><source-package last-modified="1174931702" id="rhn-source-package-42023" source-rpm="pycairo-1.2.0-1.1.src.rpm"/><source-package last-modified="1174931703" id="rhn-source-package-42024" source-rpm="libbtctl-0.6.0-9.2.el5.src.rpm"/><source-package last-modified="1174931705" id="rhn-source-package-42025" source-rpm="libpng-1.2.10-7.src.rpm"/><source-package last-modified="1174931705" id="rhn-source-package-42026" source-rpm="libavc1394-0.5.3-1.fc6.src.rpm"/><source-package last-modified="1174931707" id="rhn-source-package-42027" source-rpm="xorg-x11-proto-devel-7.1-9.fc6.src.rpm"/><source-package last-modified="1174931708" id="rhn-source-package-42028" source-rpm="mockobjects-0.09-14jpp.3.src.rpm"/><source-package last-modified="1174931708" id="rhn-source-package-42029" source-rpm="mod_auth_pgsql-2.0.3-2.3.1.src.rpm"/><source-package last-modified="1174931709" id="rhn-source-package-42030" source-rpm="mtx-1.2.18-8.2.2.src.rpm"/><source-package last-modified="1174931710" id="rhn-source-package-42031" source-rpm="libmng-1.0.9-5.1.src.rpm"/><source-package last-modified="1174931720" id="rhn-source-package-42037" source-rpm="libXxf86misc-1.0.1-3.1.src.rpm"/><source-package last-modified="1174931723" id="rhn-source-package-42038" source-rpm="htdig-3.2.0b6-9.el5.src.rpm"/><source-package last-modified="1174931726" id="rhn-source-package-42039" source-rpm="inn-2.4.3-6.fc6.src.rpm"/><source-package last-modified="1174931727" id="rhn-source-package-42040" source-rpm="liboil-0.3.8-2.1.src.rpm"/><source-package last-modified="1174931729" id="rhn-source-package-42041" source-rpm="libX11-1.0.3-8.el5.src.rpm"/><source-package last-modified="1174931730" id="rhn-source-package-42042" source-rpm="bluez-libs-3.7-1.src.rpm"/><source-package last-modified="1174931732" id="rhn-source-package-42043" source-rpm="autoconf-2.59-12.src.rpm"/><source-package last-modified="1174931735" id="rhn-source-package-42044" source-rpm="tix-8.4.0-11.fc6.src.rpm"/><source-package last-modified="1174931739" id="rhn-source-package-42045" source-rpm="cairo-1.2.4-1.fc6.src.rpm"/><source-package last-modified="1174931741" id="rhn-source-package-42046" source-rpm="libpfm-3.2-0.060926.4.el5.src.rpm"/><source-package last-modified="1174931741" id="rhn-source-package-42047" source-rpm="libFS-1.0.0-3.1.src.rpm"/><source-package last-modified="1174931742" id="rhn-source-package-42048" source-rpm="libvte-java-0.12.1-6.el5.src.rpm"/><source-package last-modified="1174931743" id="rhn-source-package-42049" source-rpm="libgnomecanvas-2.14.0-4.1.src.rpm"/><source-package last-modified="1174931745" id="rhn-source-package-42050" source-rpm="neon-0.25.5-5.1.src.rpm"/><source-package last-modified="1174931745" id="rhn-source-package-42051" source-rpm="jakarta-commons-codec-1.3-7jpp.2.src.rpm"/><source-package last-modified="1174931746" id="rhn-source-package-42052" source-rpm="libevent-1.1a-3.2.1.src.rpm"/><source-package last-modified="1174931748" id="rhn-source-package-42053" source-rpm="automake17-1.7.9-7.src.rpm"/><source-package last-modified="1174931749" id="rhn-source-package-42054" source-rpm="regexp-1.4-2jpp.2.src.rpm"/><source-package last-modified="1174931758" id="rhn-source-package-42055" source-rpm="kdevelop-3.3.4-1.fc6.src.rpm"/><source-package last-modified="1174931759" id="rhn-source-package-42056" source-rpm="libgail-gnome-1.1.3-1.2.1.src.rpm"/><source-package last-modified="1174931759" id="rhn-source-package-42057" source-rpm="diffstat-1.41-1.2.2.src.rpm"/><source-package last-modified="1174931760" id="rhn-source-package-42058" source-rpm="check-0.9.3-5.fc6.src.rpm"/><source-package last-modified="1174931761" id="rhn-source-package-42059" source-rpm="libXinerama-1.0.1-2.1.src.rpm"/><source-package last-modified="1174931762" id="rhn-source-package-42060" source-rpm="slang-2.0.6-4.el5.src.rpm"/><source-package last-modified="1174931762" id="rhn-source-package-42061" source-rpm="pstack-1.2-7.2.2.src.rpm"/><source-package last-modified="1174931763" id="rhn-source-package-42063" source-rpm="rdate-1.4-6.src.rpm"/><source-package last-modified="1174931764" id="rhn-source-package-42064" source-rpm="libXp-1.0.0-8.src.rpm"/><source-package last-modified="1174931767" id="rhn-source-package-42065" source-rpm="glib2-2.12.3-2.fc6.src.rpm"/><source-package last-modified="1174931768" id="rhn-source-package-42066" source-rpm="gtksourceview-1.8.0-1.fc6.src.rpm"/><source-package last-modified="1174931769" id="rhn-source-package-42067" source-rpm="openais-0.80.2-1.el5.src.rpm"/><source-package last-modified="1174931771" id="rhn-source-package-42068" source-rpm="libgpg-error-1.4-2.src.rpm"/><source-package last-modified="1174931772" id="rhn-source-package-42069" source-rpm="libxklavier-3.0-3.el5.src.rpm"/><source-package last-modified="1174931773" id="rhn-source-package-42070" source-rpm="libXfontcache-1.0.2-3.1.src.rpm"/><source-package last-modified="1174931773" id="rhn-source-package-42071" source-rpm="libselinux-1.33.4-2.el5.src.rpm"/><source-package last-modified="1174931779" id="rhn-source-package-42072" source-rpm="struts-1.2.9-4jpp.5.src.rpm"/><source-package last-modified="1174931780" id="rhn-source-package-42073" source-rpm="pcsc-lite-1.3.1-7.src.rpm"/><source-package last-modified="1174931783" id="rhn-source-package-42075" source-rpm="libusb-0.1.12-5.1.src.rpm"/><source-package last-modified="1174931783" id="rhn-source-package-42076" source-rpm="hesiod-3.1.0-8.src.rpm"/><source-package last-modified="1174931785" id="rhn-source-package-42077" source-rpm="lucene-1.4.3-1jpp.16.src.rpm"/><source-package last-modified="1174931786" id="rhn-source-package-42078" source-rpm="libXv-1.0.1-4.1.src.rpm"/><source-package last-modified="1174931786" id="rhn-source-package-42079" source-rpm="rcs-5.7-30.1.src.rpm"/><source-package last-modified="1174931789" id="rhn-source-package-42080" source-rpm="ibutils-1.0-3.el5.src.rpm"/><source-package last-modified="1174931790" id="rhn-source-package-42081" source-rpm="php-pear-1.4.9-4.src.rpm"/><source-package last-modified="1174931794" id="rhn-source-package-42082" source-rpm="sane-backends-1.0.18-5.el5.src.rpm"/><source-package last-modified="1174931795" id="rhn-source-package-42083" source-rpm="lcms-1.15-1.2.2.src.rpm"/><source-package last-modified="1174931796" id="rhn-source-package-42084" source-rpm="libxkbfile-1.0.3-3.1.src.rpm"/><source-package last-modified="1174931797" id="rhn-source-package-42085" source-rpm="system-config-nfs-1.3.23-1.el5.src.rpm"/><source-package last-modified="1174931798" id="rhn-source-package-42086" source-rpm="uucp-1.07-12.src.rpm"/><source-package last-modified="1174931799" id="rhn-source-package-42087" source-rpm="libXt-1.0.2-3.1.fc6.src.rpm"/><source-package last-modified="1174931802" id="rhn-source-package-42088" source-rpm="quagga-0.98.6-2.1.src.rpm"/><source-package last-modified="1174931802" id="rhn-source-package-42089" source-rpm="Pyrex-0.9.4-2.fc6.src.rpm"/><source-package last-modified="1174931803" id="rhn-source-package-42090" source-rpm="pygobject2-2.12.1-5.el5.src.rpm"/><source-package last-modified="1174931804" id="rhn-source-package-42091" source-rpm="kdbg-2.0.2-1.2.1.src.rpm"/><source-package last-modified="1174931806" id="rhn-source-package-42092" source-rpm="beecrypt-4.1.2-10.1.1.src.rpm"/><source-package last-modified="1174931807" id="rhn-source-package-42093" source-rpm="pango-1.14.9-3.el5.src.rpm"/><source-package last-modified="1174931809" id="rhn-source-package-42094" source-rpm="mrtg-2.14.5-2.src.rpm"/><source-package last-modified="1174931811" id="rhn-source-package-42095" source-rpm="jdom-1.0-4jpp.1.src.rpm"/><source-package last-modified="1174931812" id="rhn-source-package-42096" source-rpm="jakarta-commons-validator-1.1.4-5jpp.1.src.rpm"/><source-package last-modified="1174931818" id="rhn-source-package-42097" source-rpm="tcl-8.4.13-3.fc6.src.rpm"/><source-package last-modified="1174931820" id="rhn-source-package-42098" source-rpm="fetchmail-6.3.6-1.el5.src.rpm"/><source-package last-modified="1174931824" id="rhn-source-package-42101" source-rpm="libXpm-3.5.5-3.src.rpm"/><source-package last-modified="1174931827" id="rhn-source-package-42102" source-rpm="doxygen-1.4.7-1.1.src.rpm"/><source-package last-modified="1174931828" id="rhn-source-package-42103" source-rpm="mod_authz_ldap-0.26-7.1.src.rpm"/><source-package last-modified="1174931829" id="rhn-source-package-42104" source-rpm="jakarta-commons-launcher-0.9-6jpp.1.src.rpm"/><source-package last-modified="1174931829" id="rhn-source-package-42105" source-rpm="ypserv-2.19-3.src.rpm"/><source-package last-modified="1174931830" id="rhn-source-package-42106" source-rpm="atk-1.12.2-1.fc6.src.rpm"/><source-package last-modified="1174931831" id="rhn-source-package-42107" source-rpm="bootparamd-0.17-24.devel.2.1.src.rpm"/><source-package last-modified="1174931834" id="rhn-source-package-42108" source-rpm="nss-3.11.5-1.el5.src.rpm"/><source-package last-modified="1174931836" id="rhn-source-package-42109" source-rpm="dbus-glib-0.70-5.src.rpm"/><source-package last-modified="1174931836" id="rhn-source-package-42110" source-rpm="openobex-1.3-3.1.src.rpm"/><source-package last-modified="1174931841" id="rhn-source-package-42111" source-rpm="guile-1.8.0-8.20060831cvs.src.rpm"/><source-package last-modified="1174931842" id="rhn-source-package-42112" source-rpm="system-config-httpd-1.3.3.1-1.el5.src.rpm"/><source-package last-modified="1174931844" id="rhn-source-package-42113" source-rpm="libXfixes-4.0.1-2.1.src.rpm"/><source-package last-modified="1174931845" id="rhn-source-package-42114" source-rpm="jdepend-2.6-6jpp.2.src.rpm"/><source-package last-modified="1174931846" id="rhn-source-package-42115" source-rpm="libvorbis-1.1.2-2.src.rpm"/><source-package last-modified="1174931848" id="rhn-source-package-42116" source-rpm="automake-1.9.6-2.1.src.rpm"/><source-package last-modified="1174931848" id="rhn-source-package-42117" source-rpm="webalizer-2.01_10-30.1.src.rpm"/><source-package last-modified="1174931849" id="rhn-source-package-42118" source-rpm="java_cup-0.10-0.k.6jpp.1.src.rpm"/><source-package last-modified="1174931849" id="rhn-source-package-42119" source-rpm="gnu-efi-3.0c-1.1.src.rpm"/><source-package last-modified="1174931850" id="rhn-source-package-42120" source-rpm="rarpd-ss981107-22.2.2.src.rpm"/><source-package last-modified="1174931850" id="rhn-source-package-42121" source-rpm="libsepol-1.15.2-1.el5.src.rpm"/><source-package last-modified="1174931851" id="rhn-source-package-42122" source-rpm="libdaemon-0.10-5.el5.src.rpm"/><source-package last-modified="1174931852" id="rhn-source-package-42123" source-rpm="mod_auth_kerb-5.1-3.src.rpm"/><source-package last-modified="1174931854" id="rhn-source-package-42124" source-rpm="glade2-2.12.1-6.el5.src.rpm"/><source-package last-modified="1174931856" id="rhn-source-package-42126" source-rpm="glib-1.2.10-20.el5.src.rpm"/><source-package last-modified="1174931856" id="rhn-source-package-42127" source-rpm="libXdmcp-1.0.1-2.1.src.rpm"/><source-package last-modified="1174931857" id="rhn-source-package-42128" source-rpm="libao-0.8.6-5.src.rpm"/><source-package last-modified="1174931864" id="rhn-source-package-42129" source-rpm="db4-4.3.29-9.fc6.src.rpm"/><source-package last-modified="1174931865" id="rhn-source-package-42130" source-rpm="apr-util-1.2.7-6.src.rpm"/><source-package last-modified="1174931868" id="rhn-source-package-42131" source-rpm="SDL-1.2.10-8.el5.src.rpm"/><source-package last-modified="1174931869" id="rhn-source-package-42132" source-rpm="libnl-1.0-0.10.pre5.4.src.rpm"/><source-package last-modified="1174931870" id="rhn-source-package-42133" source-rpm="librsvg2-2.16.1-1.el5.src.rpm"/><source-package last-modified="1174931870" id="rhn-source-package-42134" source-rpm="numactl-0.9.8-2.el5.src.rpm"/><source-package last-modified="1174931872" id="rhn-source-package-42135" source-rpm="icon-slicer-0.3-7.2.2.src.rpm"/><source-package last-modified="1174931872" id="rhn-source-package-42136" source-rpm="libfontenc-1.0.2-2.2.el5.src.rpm"/><source-package last-modified="1174931874" id="rhn-source-package-42137" source-rpm="mod_python-3.2.8-3.1.src.rpm"/><source-package last-modified="1174931878" id="rhn-source-package-42138" source-rpm="gnome-mount-0.5-3.el5.src.rpm"/><source-package last-modified="1174931880" id="rhn-source-package-42139" source-rpm="gstreamer-plugins-good-0.10.4-2.el5.src.rpm"/><source-package last-modified="1174931881" id="rhn-source-package-42140" source-rpm="wsdl4j-1.5.2-4jpp.1.src.rpm"/><source-package last-modified="1174931882" id="rhn-source-package-42141" source-rpm="gnome-speech-0.4.5-1.fc6.src.rpm"/><source-package last-modified="1174931883" id="rhn-source-package-42142" source-rpm="jakarta-commons-fileupload-1.0-6jpp.1.src.rpm"/><source-package last-modified="1174931890" id="rhn-source-package-42143" source-rpm="evolution-data-server-1.8.0-15.el5.src.rpm"/><source-package last-modified="1174931890" id="rhn-source-package-42144" source-rpm="libXevie-1.0.1-3.1.src.rpm"/><source-package last-modified="1174931891" id="rhn-source-package-42145" source-rpm="jakarta-commons-beanutils-1.7.0-5jpp.1.src.rpm"/><source-package last-modified="1174931892" id="rhn-source-package-42146" source-rpm="classpathx-jaf-1.0-9jpp.1.src.rpm"/><source-package last-modified="1174931894" id="rhn-source-package-42147" source-rpm="libXxf86dga-1.0.1-3.1.src.rpm"/><source-package last-modified="1174931894" id="rhn-source-package-42148" source-rpm="bsf-2.3.0-11jpp.1.src.rpm"/><source-package last-modified="1174931895" id="rhn-source-package-42149" source-rpm="pfmon-3.2-0.060926.4.el5.src.rpm"/><source-package last-modified="1174931896" id="rhn-source-package-42150" source-rpm="gtkhtml2-2.11.0-3.src.rpm"/><source-package last-modified="1174931897" id="rhn-source-package-42151" source-rpm="gamin-0.1.7-8.el5.src.rpm"/><source-package last-modified="1174931898" id="rhn-source-package-42152" source-rpm="libglade2-2.6.0-2.src.rpm"/><source-package last-modified="1174931898" id="rhn-source-package-42153" source-rpm="libXScrnSaver-1.1.0-3.1.src.rpm"/><source-package last-modified="1174931899" id="rhn-source-package-42154" source-rpm="libXdamage-1.0.3-2.1.src.rpm"/><source-package last-modified="1174931904" id="rhn-source-package-42155" source-rpm="gucharmap-1.8.0-1.fc6.src.rpm"/><source-package last-modified="1174931905" id="rhn-source-package-42156" source-rpm="startup-notification-0.8-4.1.src.rpm"/><source-package last-modified="1174931910" id="rhn-source-package-42157" source-rpm="kdebindings-3.5.4-1.fc6.src.rpm"/><source-package last-modified="1174931912" id="rhn-source-package-42158" source-rpm="pyorbit-2.14.1-1.1.src.rpm"/><source-package last-modified="1174931913" id="rhn-source-package-42159" source-rpm="libXcursor-1.1.7-1.1.src.rpm"/><source-package last-modified="1174931913" id="rhn-source-package-42160" source-rpm="mod_auth_mysql-3.0.0-3.1.src.rpm"/><source-package last-modified="1174931915" id="rhn-source-package-42161" source-rpm="dovecot-1.0-1.2.rc15.el5.src.rpm"/><source-package last-modified="1174931918" id="rhn-source-package-42162" source-rpm="dbus-1.0.0-6.el5.src.rpm"/><source-package last-modified="1174931918" id="rhn-source-package-42163" source-rpm="automake16-1.6.3-8.src.rpm"/><source-package last-modified="1174931921" id="rhn-source-package-42164" source-rpm="pcre-6.6-1.1.src.rpm"/><source-package last-modified="1174931929" id="rhn-source-package-42165" source-rpm="kdewebdev-3.5.4-2.fc6.src.rpm"/><source-package last-modified="1174931935" id="rhn-source-package-42166" source-rpm="gail-1.9.2-1.fc6.src.rpm"/><source-package last-modified="1174931936" id="rhn-source-package-42167" source-rpm="libXxf86vm-1.0.1-3.1.src.rpm"/><source-package last-modified="1174931936" id="rhn-source-package-42168" source-rpm="jakarta-commons-discovery-0.3-4jpp.1.src.rpm"/><source-package last-modified="1174931937" id="rhn-source-package-42169" source-rpm="adaptx-0.9.13-3jpp.1.src.rpm"/><source-package last-modified="1174931938" id="rhn-source-package-42170" source-rpm="vsftpd-2.0.5-10.el5.src.rpm"/><source-package last-modified="1174931940" id="rhn-source-package-42171" source-rpm="werken-xpath-0.9.4-0.beta.12jpp.1.src.rpm"/><source-package last-modified="1174931944" id="rhn-source-package-42172" source-rpm="glib-java-0.2.6-3.fc6.src.rpm"/><source-package last-modified="1174931945" id="rhn-source-package-42173" source-rpm="eel2-2.16.1-1.el5.src.rpm"/><source-package last-modified="1174931947" id="rhn-source-package-42174" source-rpm="curl-7.15.5-2.el5.src.rpm"/><source-package last-modified="1174931948" id="rhn-source-package-42175" source-rpm="newt-0.52.2-9.src.rpm"/><source-package last-modified="1174931948" id="rhn-source-package-42176" source-rpm="unifdef-1.171-5.fc6.src.rpm"/><source-package last-modified="1174931950" id="rhn-source-package-42177" source-rpm="libgcrypt-1.2.3-1.src.rpm"/><source-package last-modified="1174931951" id="rhn-source-package-42178" source-rpm="alchemist-1.0.36-2.el5.src.rpm"/><source-package last-modified="1174931952" id="rhn-source-package-42179" source-rpm="nfs-utils-lib-1.0.8-7.2.src.rpm"/><source-package last-modified="1174931953" id="rhn-source-package-42180" source-rpm="libXcomposite-0.3-5.1.src.rpm"/><source-package last-modified="1174931954" id="rhn-source-package-42181" source-rpm="libtiff-3.8.2-7.el5.src.rpm"/><source-package last-modified="1174931955" id="rhn-source-package-42182" source-rpm="libXau-1.0.1-3.1.src.rpm"/><source-package last-modified="1174931956" id="rhn-source-package-42183" source-rpm="libieee1284-0.2.9-4.el5.src.rpm"/><source-package last-modified="1174931958" id="rhn-source-package-42184" source-rpm="opensp-1.5.2-4.src.rpm"/><source-package last-modified="1174931959" id="rhn-source-package-42185" source-rpm="libbonoboui-2.16.0-1.fc6.src.rpm"/><source-package last-modified="1174931962" id="rhn-source-package-42186" source-rpm="libXfont-1.2.2-1.fc6.src.rpm"/><source-package last-modified="1174931962" id="rhn-source-package-42187" source-rpm="libXTrap-1.0.0-3.1.src.rpm"/><source-package last-modified="1174931963" id="rhn-source-package-42188" source-rpm="libjpeg-6b-37.src.rpm"/><source-package last-modified="1174931964" id="rhn-source-package-42189" source-rpm="psgml-1.2.5-4.3.src.rpm"/><source-package last-modified="1174931966" id="rhn-source-package-42190" source-rpm="privoxy-3.0.3-9.2.2.src.rpm"/><source-package last-modified="1174931967" id="rhn-source-package-42191" source-rpm="libgnomeprintui22-2.12.1-6.src.rpm"/><source-package last-modified="1174931968" id="rhn-source-package-42192" source-rpm="automake14-1.4p6-13.src.rpm"/><source-package last-modified="1174931970" id="rhn-source-package-42193" source-rpm="libc-client-2004g-2.2.1.src.rpm"/><source-package last-modified="1174931972" id="rhn-source-package-42194" source-rpm="libsoup-2.2.98-2.el5.src.rpm"/><source-package last-modified="1174931972" id="rhn-source-package-42195" source-rpm="libXrender-0.9.1-3.1.src.rpm"/><source-package last-modified="1174931975" id="rhn-source-package-42196" source-rpm="openssl-0.9.8b-8.3.el5.src.rpm"/><source-package last-modified="1174931989" id="rhn-source-package-42197" source-rpm="wireshark-0.99.4-2.el5.src.rpm"/><source-package last-modified="1174931990" id="rhn-source-package-42198" source-rpm="libgnomecups-0.2.2-8.src.rpm"/><source-package last-modified="1174931990" id="rhn-source-package-42199" source-rpm="libdmx-1.0.2-3.1.src.rpm"/><source-package last-modified="1174931991" id="rhn-source-package-42200" source-rpm="libwnck-2.16.0-4.fc6.src.rpm"/><source-package last-modified="1174931993" id="rhn-source-package-42201" source-rpm="flac-1.1.2-27.src.rpm"/><source-package last-modified="1174931994" id="rhn-source-package-42202" source-rpm="libgnomeprint22-2.12.1-9.el5.src.rpm"/><source-package last-modified="1174931996" id="rhn-source-package-42203" source-rpm="xorg-x11-drv-i810-1.6.5-9.2.el5.src.rpm"/><source-package last-modified="1174932000" id="rhn-source-package-42204" source-rpm="libxml2-2.6.26-2.1.2.src.rpm"/><source-package last-modified="1174932002" id="rhn-source-package-42205" source-rpm="dev86-0.16.17-2.2.src.rpm"/><source-package last-modified="1174932002" id="rhn-source-package-42206" source-rpm="libcap-1.10-26.src.rpm"/><source-package last-modified="1174932006" id="rhn-source-package-42207" source-rpm="MySQL-python-1.2.1-1.src.rpm"/><source-package last-modified="1174932021" id="rhn-source-package-42208" source-rpm="gmp-4.1.4-10.el5.src.rpm"/><source-package last-modified="1174932024" id="rhn-source-package-42209" source-rpm="PyXML-0.8.4-4.src.rpm"/><source-package last-modified="1174932025" id="rhn-source-package-42210" source-rpm="checkpolicy-1.33.1-2.el5.src.rpm"/><source-package last-modified="1174932040" id="rhn-source-package-42211" source-rpm="cracklib-2.8.9-3.1.src.rpm"/><source-package last-modified="1174932045" id="rhn-source-package-42212" source-rpm="dbus-python-0.70-7.el5.src.rpm"/><source-package last-modified="1174932046" id="rhn-source-package-42213" source-rpm="desktop-file-utils-0.10-7.src.rpm"/><source-package last-modified="1174932047" id="rhn-source-package-42214" source-rpm="device-mapper-1.02.13-1.el5.src.rpm"/><source-package last-modified="1174932047" id="rhn-source-package-42215" source-rpm="dhcdbd-2.2-1.el5.src.rpm"/><source-package last-modified="1174932060" id="rhn-source-package-42216" source-rpm="diffutils-2.8.1-15.2.2.src.rpm"/><source-package last-modified="1174932061" id="rhn-source-package-42217" source-rpm="docbook-dtds-1.0-30.1.src.rpm"/><source-package last-modified="1174932063" id="rhn-source-package-42218" source-rpm="findutils-4.2.27-4.1.src.rpm"/><source-package last-modified="1174932066" id="rhn-source-package-42219" source-rpm="gawk-3.1.5-14.el5.src.rpm"/><source-package last-modified="1174932070" id="rhn-source-package-42220" source-rpm="geronimo-specs-1.0-0.M2.2jpp.12.src.rpm"/><source-package last-modified="1174932072" id="rhn-source-package-42221" source-rpm="gjdoc-0.7.7-12.el5.src.rpm"/><source-package last-modified="1174932073" id="rhn-source-package-42222" source-rpm="gnome-doc-utils-0.8.0-2.fc6.src.rpm"/><source-package last-modified="1174932075" id="rhn-source-package-42223" source-rpm="gnome-icon-theme-2.16.0.1-4.el5.src.rpm"/><source-package last-modified="1174932080" id="rhn-source-package-42224" source-rpm="gnome-mime-data-2.4.2-3.1.src.rpm"/><source-package last-modified="1174932081" id="rhn-source-package-42225" source-rpm="gnome-python2-2.16.0-1.fc6.src.rpm"/><source-package last-modified="1174932082" id="rhn-source-package-42226" source-rpm="gnome-python2-desktop-2.16.0-1.fc6.src.rpm"/><source-package last-modified="1174932094" id="rhn-source-package-42227" source-rpm="gnu-crypto-2.1.0-2jpp.1.src.rpm"/><source-package last-modified="1174932096" id="rhn-source-package-42228" source-rpm="gperf-3.0.1-7.2.2.src.rpm"/><source-package last-modified="1174932098" id="rhn-source-package-42229" source-rpm="grep-2.5.1-54.2.el5.src.rpm"/><source-package last-modified="1174932101" id="rhn-source-package-42230" source-rpm="groff-1.18.1.1-11.1.src.rpm"/><source-package last-modified="1174932102" id="rhn-source-package-42231" source-rpm="gzip-1.3.5-9.el5.src.rpm"/><source-package last-modified="1174932102" id="rhn-source-package-42232" source-rpm="htmlview-4.0.0-1.el5.src.rpm"/><source-package last-modified="1174932103" id="rhn-source-package-42233" source-rpm="hwdata-0.194-1.src.rpm"/><source-package last-modified="1174932104" id="rhn-source-package-42234" source-rpm="intltool-0.35.0-2.src.rpm"/><source-package last-modified="1174932104" id="rhn-source-package-42235" source-rpm="jadetex-3.12-13.1.1.src.rpm"/><source-package last-modified="1174932105" id="rhn-source-package-42236" source-rpm="jpackage-utils-1.7.3-1jpp.2.el5.src.rpm"/><source-package last-modified="1174932108" id="rhn-source-package-42237" source-rpm="jrefactory-2.8.9-6jpp.3.src.rpm"/><source-package last-modified="1174932109" id="rhn-source-package-42238" source-rpm="latex2html-2002.2.1-6.src.rpm"/><source-package last-modified="1174932110" id="rhn-source-package-42239" source-rpm="less-394-5.el5.src.rpm"/><source-package last-modified="1174932111" id="rhn-source-package-42240" source-rpm="m4-1.4.5-3.el5.1.src.rpm"/><source-package last-modified="1174932112" id="rhn-source-package-42241" source-rpm="mailx-8.1.1-44.2.2.src.rpm"/><source-package last-modified="1174932112" id="rhn-source-package-42242" source-rpm="mktemp-1.5-23.2.2.src.rpm"/><source-package last-modified="1174932113" id="rhn-source-package-42243" source-rpm="module-init-tools-3.3-0.pre3.1.16.el5.src.rpm"/><source-package last-modified="1174932117" id="rhn-source-package-42246" source-rpm="patch-2.5.4-29.2.2.src.rpm"/><source-package last-modified="1174932118" id="rhn-source-package-42247" source-rpm="perl-Compress-Zlib-1.42-1.fc6.src.rpm"/><source-package last-modified="1174932118" id="rhn-source-package-42248" source-rpm="perl-DBI-1.52-1.fc6.src.rpm"/><source-package last-modified="1174932119" id="rhn-source-package-42249" source-rpm="perl-HTML-Parser-3.55-1.fc6.src.rpm"/><source-package last-modified="1174932120" id="rhn-source-package-42250" source-rpm="perl-IO-Socket-SSL-1.01-1.fc6.src.rpm"/><source-package last-modified="1174932121" id="rhn-source-package-42251" source-rpm="perl-Net-DNS-0.59-1.fc6.src.rpm"/><source-package last-modified="1174932122" id="rhn-source-package-42252" source-rpm="perl-SGMLSpm-1.03ii-16.2.1.src.rpm"/><source-package last-modified="1174932123" id="rhn-source-package-42253" source-rpm="perl-URI-1.35-3.src.rpm"/><source-package last-modified="1174932123" id="rhn-source-package-42254" source-rpm="perl-XML-LibXML-1.58-5.src.rpm"/><source-package last-modified="1174932124" id="rhn-source-package-42255" source-rpm="perl-XML-LibXML-Common-0.13-8.2.2.src.rpm"/><source-package last-modified="1174932124" id="rhn-source-package-42256" source-rpm="perl-XML-Parser-2.34-6.1.2.2.1.src.rpm"/><source-package last-modified="1174932125" id="rhn-source-package-42257" source-rpm="perl-XML-Simple-2.14-4.fc6.src.rpm"/><source-package last-modified="1174932126" id="rhn-source-package-42259" source-rpm="pykickstart-0.43-1.el5.src.rpm"/><source-package last-modified="1174932127" id="rhn-source-package-42260" source-rpm="python-numeric-23.7-2.2.2.src.rpm"/><source-package last-modified="1174932127" id="rhn-source-package-42261" source-rpm="python-urlgrabber-3.1.0-2.src.rpm"/><source-package last-modified="1174932129" id="rhn-source-package-42263" source-rpm="scrollkeeper-0.3.14-9.el5.src.rpm"/><source-package last-modified="1174932130" id="rhn-source-package-42264" source-rpm="sed-4.1.5-5.fc6.src.rpm"/><source-package last-modified="1174932130" id="rhn-source-package-42265" source-rpm="sgml-common-0.6.3-18.src.rpm"/><source-package last-modified="1174932131" id="rhn-source-package-42266" source-rpm="sharutils-4.6.1-2.src.rpm"/><source-package last-modified="1174932134" id="rhn-source-package-42267" source-rpm="tar-1.15.1-23.el5.src.rpm"/><source-package last-modified="1174932135" id="rhn-source-package-42268" source-rpm="texi2html-1.76-4.fc6.src.rpm"/><source-package last-modified="1174932136" id="rhn-source-package-42269" source-rpm="transfig-3.2.4-16.src.rpm"/><source-package last-modified="1174932137" id="rhn-source-package-42270" source-rpm="usermode-1.88-3.el5.src.rpm"/><source-package last-modified="1174932140" id="rhn-source-package-42271" source-rpm="w3m-0.5.1-15.el5.src.rpm"/><source-package last-modified="1174932141" id="rhn-source-package-42272" source-rpm="wpa_supplicant-0.4.8-10.1.fc6.src.rpm"/><source-package last-modified="1174932144" id="rhn-source-package-42277" source-rpm="net-tools-1.60-73.src.rpm"/><source-package last-modified="1174932144" id="rhn-source-package-42278" source-rpm="chkfontpath-1.10.1-1.1.src.rpm"/><source-package last-modified="1174932146" id="rhn-source-package-42279" source-rpm="xorg-x11-drv-jamstudio-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932146" id="rhn-source-package-42280" source-rpm="xorg-x11-drv-microtouch-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932147" id="rhn-source-package-42281" source-rpm="xorg-x11-drv-evdev-1.0.0.5-2.el5.src.rpm"/><source-package last-modified="1174932148" id="rhn-source-package-42282" source-rpm="xorg-x11-drv-calcomp-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932148" id="rhn-source-package-42283" source-rpm="xorg-x11-drv-tseng-1.1.0-3.1.src.rpm"/><source-package last-modified="1174932149" id="rhn-source-package-42284" source-rpm="xorg-x11-drv-elographics-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932149" id="rhn-source-package-42285" source-rpm="yp-tools-2.9-0.1.src.rpm"/><source-package last-modified="1174932150" id="rhn-source-package-42286" source-rpm="comps-extras-11.1-1.1.src.rpm"/><source-package last-modified="1174932151" id="rhn-source-package-42287" source-rpm="xorg-x11-drv-dmc-1.1.0-2.src.rpm"/><source-package last-modified="1174932151" id="rhn-source-package-42288" source-rpm="perl-IO-Socket-INET6-2.51-2.fc6.src.rpm"/><source-package last-modified="1174932151" id="rhn-source-package-42289" source-rpm="mingetty-1.07-5.2.2.src.rpm"/><source-package last-modified="1174932152" id="rhn-source-package-42290" source-rpm="MAKEDEV-3.23-1.2.src.rpm"/><source-package last-modified="1174932153" id="rhn-source-package-42291" source-rpm="ethtool-5-1.el5.src.rpm"/><source-package last-modified="1174932153" id="rhn-source-package-42292" source-rpm="xorg-x11-drv-v4l-0.1.1-4.src.rpm"/><source-package last-modified="1174932154" id="rhn-source-package-42293" source-rpm="xorg-x11-drv-i740-1.1.0-2.1.src.rpm"/><source-package last-modified="1174932154" id="rhn-source-package-42294" source-rpm="xorg-x11-drv-joystick-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932165" id="rhn-source-package-42295" source-rpm="redhat-artwork-5.0.9-1.el5.src.rpm"/><source-package last-modified="1174932165" id="rhn-source-package-42296" source-rpm="perl-Digest-HMAC-1.01-15.src.rpm"/><source-package last-modified="1174932166" id="rhn-source-package-42297" source-rpm="ifd-egate-0.05-15.src.rpm"/><source-package last-modified="1174932167" id="rhn-source-package-42298" source-rpm="notify-python-0.1.0-3.fc6.src.rpm"/><source-package last-modified="1174932167" id="rhn-source-package-42299" source-rpm="docbook-simple-1.0-2.1.1.src.rpm"/><source-package last-modified="1174932171" id="rhn-source-package-42300" source-rpm="passivetex-1.25-5.1.1.src.rpm"/><source-package last-modified="1174932172" id="rhn-source-package-42301" source-rpm="gnome-python2-extras-2.14.2-4.fc6.src.rpm"/><source-package last-modified="1174932172" id="rhn-source-package-42302" source-rpm="perl-Net-IP-1.25-2.fc6.src.rpm"/><source-package last-modified="1174932173" id="rhn-source-package-42304" source-rpm="xorg-x11-drv-sisusb-0.8.1-4.1.src.rpm"/><source-package last-modified="1174932314" id="rhn-source-package-42313" source-rpm="perl-String-CRC32-1.4-2.fc6.src.rpm"/><source-package last-modified="1174932316" id="rhn-source-package-42315" source-rpm="gcalctool-5.8.25-1.el5.src.rpm"/><source-package last-modified="1174932317" id="rhn-source-package-42316" source-rpm="xorg-x11-drv-apm-1.1.1-2.1.src.rpm"/><source-package last-modified="1174932318" id="rhn-source-package-42318" source-rpm="pyparted-1.8.1-4.el5.src.rpm"/><source-package last-modified="1174932319" id="rhn-source-package-42319" source-rpm="python-pyblock-0.25-1.src.rpm"/><source-package last-modified="1174932319" id="rhn-source-package-42320" source-rpm="perl-Archive-Tar-1.30-1.fc6.src.rpm"/><source-package last-modified="1174932320" id="rhn-source-package-42321" source-rpm="tzdata-2006m-2.fc6.src.rpm"/><source-package last-modified="1174932320" id="rhn-source-package-42322" source-rpm="pyspi-0.6.1-1.el5.src.rpm"/><source-package last-modified="1174932321" id="rhn-source-package-42323" source-rpm="xorg-x11-drv-elo2300-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932322" id="rhn-source-package-42324" source-rpm="xorg-x11-drv-keyboard-1.1.0-2.1.src.rpm"/><source-package last-modified="1174932323" id="rhn-source-package-42325" source-rpm="xorg-x11-drv-dummy-0.2.0-2.1.src.rpm"/><source-package last-modified="1174932323" id="rhn-source-package-42326" source-rpm="xorg-x11-drv-vesa-1.2.1-5.2.el5.src.rpm"/><source-package last-modified="1174932324" id="rhn-source-package-42327" source-rpm="xorg-x11-drv-digitaledge-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932325" id="rhn-source-package-42328" source-rpm="rhnlib-2.2.5-1.el5.src.rpm"/><source-package last-modified="1174932327" id="rhn-source-package-42329" source-rpm="xorg-x11-drv-i128-1.2.0-4.src.rpm"/><source-package last-modified="1174932327" id="rhn-source-package-42330" source-rpm="perl-Socket6-0.19-3.fc6.src.rpm"/><source-package last-modified="1174932329" id="rhn-source-package-42331" source-rpm="xorg-x11-drv-glint-1.1.1-4.1.src.rpm"/><source-package last-modified="1174932329" id="rhn-source-package-42332" source-rpm="xorg-x11-drv-ark-0.6.0-2.1.src.rpm"/><source-package last-modified="1174932330" id="rhn-source-package-42333" source-rpm="xorg-x11-drv-vmware-10.13.0-2.1.src.rpm"/><source-package last-modified="1174932331" id="rhn-source-package-42334" source-rpm="ghostscript-fonts-5.50-13.1.1.src.rpm"/><source-package last-modified="1174932332" id="rhn-source-package-42335" source-rpm="xorg-x11-drv-penmount-1.1.0-2.1.src.rpm"/><source-package last-modified="1174932333" id="rhn-source-package-42336" source-rpm="dialog-1.0.20051107-1.2.2.src.rpm"/><source-package last-modified="1174932333" id="rhn-source-package-42337" source-rpm="xorg-x11-drv-neomagic-1.1.1-2.1.src.rpm"/><source-package last-modified="1174932335" id="rhn-source-package-42338" source-rpm="perl-Net-SSLeay-1.30-4.fc6.src.rpm"/><source-package last-modified="1174932335" id="rhn-source-package-42339" source-rpm="xorg-x11-drv-tdfx-1.2.1-3.1.src.rpm"/><source-package last-modified="1174932336" id="rhn-source-package-42340" source-rpm="xorg-x11-drv-nv-1.2.0-4.fc6.src.rpm"/><source-package last-modified="1174932337" id="rhn-source-package-42341" source-rpm="perl-IO-Zlib-1.04-4.2.1.src.rpm"/><source-package last-modified="1174932337" id="rhn-source-package-42342" source-rpm="xorg-x11-drv-magictouch-1.0.0.5-2.1.src.rpm"/><source-package last-modified="1174932339" id="rhn-source-package-42343" source-rpm="xorg-x11-drv-sis-0.9.1-7.src.rpm"/><source-package last-modified="1174932339" id="rhn-source-package-42344" source-rpm="xorg-x11-drv-fbdev-0.3.0-2.src.rpm"/><source-package last-modified="1174932343" id="rhn-source-package-42345" source-rpm="notification-daemon-0.3.5-8.el5.src.rpm"/><source-package last-modified="1174932344" id="rhn-source-package-42346" source-rpm="redhat-menus-6.7.8-1.el5.src.rpm"/><source-package last-modified="1174932345" id="rhn-source-package-42347" source-rpm="lvm2-2.02.16-3.el5.src.rpm"/><source-package last-modified="1174932346" id="rhn-source-package-42348" source-rpm="xorg-x11-drv-ati-6.6.3-3.2.el5.src.rpm"/><source-package last-modified="1174932347" id="rhn-source-package-42349" source-rpm="procmail-3.22-17.1.src.rpm"/><source-package last-modified="1174932348" id="rhn-source-package-42350" source-rpm="xorg-x11-drv-chips-1.1.1-2.1.src.rpm"/><source-package last-modified="1174932349" id="rhn-source-package-42351" source-rpm="xorg-x11-drv-ur98-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932349" id="rhn-source-package-42352" source-rpm="xorg-x11-drv-magellan-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932350" id="rhn-source-package-42353" source-rpm="xorg-x11-drv-void-1.1.0-3.1.src.rpm"/><source-package last-modified="1174932350" id="rhn-source-package-42354" source-rpm="dmidecode-2.7-1.28.2.el5.src.rpm"/><source-package last-modified="1174932351" id="rhn-source-package-42355" source-rpm="xorg-x11-drv-mouse-1.1.1-1.1.src.rpm"/><source-package last-modified="1174932351" id="rhn-source-package-42356" source-rpm="perl-Carp-Clan-5.3-1.2.1.src.rpm"/><source-package last-modified="1174932352" id="rhn-source-package-42357" source-rpm="perl-HTML-Tagset-3.10-2.1.1.src.rpm"/><source-package last-modified="1174932352" id="rhn-source-package-42358" source-rpm="perl-libwww-perl-5.805-1.1.1.src.rpm"/><source-package last-modified="1174932354" id="rhn-source-package-42359" source-rpm="mx-2.0.6-2.2.2.src.rpm"/><source-package last-modified="1174932356" id="rhn-source-package-42360" source-rpm="xorg-x11-drv-dynapro-1.1.0-2.src.rpm"/><source-package last-modified="1174932357" id="rhn-source-package-42361" source-rpm="psmisc-22.2-5.src.rpm"/><source-package last-modified="1174932358" id="rhn-source-package-42362" source-rpm="xorg-x11-drv-vga-4.1.0-2.1.src.rpm"/><source-package last-modified="1174932358" id="rhn-source-package-42363" source-rpm="perl-BSD-Resource-1.28-1.fc6.1.src.rpm"/><source-package last-modified="1174932359" id="rhn-source-package-42364" source-rpm="kasumi-2.0.1-1.1.fc6.src.rpm"/><source-package last-modified="1174932359" id="rhn-source-package-42365" source-rpm="xorg-x11-drv-spaceorb-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932360" id="rhn-source-package-42366" source-rpm="python-sqlite-1.1.7-1.2.1.src.rpm"/><source-package last-modified="1174932360" id="rhn-source-package-42367" source-rpm="xorg-x11-drv-fpit-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932361" id="rhn-source-package-42368" source-rpm="xmltex-20020625-8.src.rpm"/><source-package last-modified="1174932361" id="rhn-source-package-42369" source-rpm="ttmkfdir-3.0.9-23.el5.src.rpm"/><source-package last-modified="1174932361" id="rhn-source-package-42370" source-rpm="rhnsd-4.6.1-1.el5.src.rpm"/><source-package last-modified="1174932363" id="rhn-source-package-42371" source-rpm="xorg-x11-xkb-utils-1.0.2-2.1.src.rpm"/><source-package last-modified="1174932366" id="rhn-source-package-42372" source-rpm="xorg-x11-drv-savage-2.1.1-5.fc6.src.rpm"/><source-package last-modified="1174932369" id="rhn-source-package-42373" source-rpm="ntp-4.2.2p1-5.el5.src.rpm"/><source-package last-modified="1174932370" id="rhn-source-package-42374" source-rpm="xorg-x11-drv-trident-1.2.1-3.fc6.src.rpm"/><source-package last-modified="1174932371" id="rhn-source-package-42375" source-rpm="xorg-x11-drv-ast-0.81.0-3.src.rpm"/><source-package last-modified="1174932371" id="rhn-source-package-42376" source-rpm="xorg-x11-drv-summa-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932372" id="rhn-source-package-42377" source-rpm="perl-Bit-Vector-6.4-2.2.2.1.src.rpm"/><source-package last-modified="1174932373" id="rhn-source-package-42378" source-rpm="xorg-x11-drv-palmax-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932373" id="rhn-source-package-42379" source-rpm="xorg-x11-drv-cirrus-1.1.0-2.fc6.src.rpm"/><source-package last-modified="1174932379" id="rhn-source-package-42380" source-rpm="urw-fonts-2.3-6.1.1.src.rpm"/><source-package last-modified="1174932379" id="rhn-source-package-42381" source-rpm="xorg-x11-drv-vmmouse-12.4.0-2.1.src.rpm"/><source-package last-modified="1174932380" id="rhn-source-package-42382" source-rpm="xorg-x11-drv-hyperpen-1.1.0-2.src.rpm"/><source-package last-modified="1174932381" id="rhn-source-package-42383" source-rpm="xorg-x11-drv-rendition-4.1.0-3.1.src.rpm"/><source-package last-modified="1174932383" id="rhn-source-package-42384" source-rpm="xorg-x11-drv-siliconmotion-1.4.1-2.1.src.rpm"/><source-package last-modified="1174932383" id="rhn-source-package-42385" source-rpm="python-elementtree-1.2.6-5.src.rpm"/><source-package last-modified="1174932384" id="rhn-source-package-42386" source-rpm="xorg-x11-drv-s3virge-1.9.1-2.1.src.rpm"/><source-package last-modified="1174932385" id="rhn-source-package-42387" source-rpm="xkeyboard-config-0.8-7.fc6.src.rpm"/><source-package last-modified="1174932388" id="rhn-source-package-42388" source-rpm="xorg-x11-server-utils-7.1-4.fc6.src.rpm"/><source-package last-modified="1174932391" id="rhn-source-package-42389" source-rpm="gthumb-2.7.8-5.el5.src.rpm"/><source-package last-modified="1174932392" id="rhn-source-package-42390" source-rpm="xorg-x11-drv-nsc-2.8.1-2.1.src.rpm"/><source-package last-modified="1174932392" id="rhn-source-package-42391" source-rpm="portmap-4.0-65.2.2.1.src.rpm"/><source-package last-modified="1174932394" id="rhn-source-package-42392" source-rpm="cdrdao-1.2.1-2.src.rpm"/><source-package last-modified="1174932394" id="rhn-source-package-42393" source-rpm="perl-Digest-SHA1-2.11-1.2.1.src.rpm"/><source-package last-modified="1174932395" id="rhn-source-package-42394" source-rpm="xorg-x11-drv-cyrix-1.1.0-4.src.rpm"/><source-package last-modified="1174932396" id="rhn-source-package-42395" source-rpm="xorg-x11-drv-tek4957-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932396" id="rhn-source-package-42396" source-rpm="xorg-x11-drv-citron-2.2.0-1.1.src.rpm"/><source-package last-modified="1174932397" id="rhn-source-package-42397" source-rpm="xorg-x11-drv-mutouch-1.1.0-2.src.rpm"/><source-package last-modified="1174932398" id="rhn-source-package-42398" source-rpm="xorg-x11-drv-s3-0.4.1-2.1.src.rpm"/><source-package last-modified="1174932398" id="rhn-source-package-42399" source-rpm="rhpxl-0.41-1.el5.src.rpm"/><source-package last-modified="1174932399" id="rhn-source-package-42400" source-rpm="xorg-x11-drv-aiptek-1.0.1-2.src.rpm"/><source-package last-modified="1174932400" id="rhn-source-package-42401" source-rpm="shared-mime-info-0.19-3.el5.src.rpm"/><source-package last-modified="1174932401" id="rhn-source-package-42402" source-rpm="xorg-x11-drv-mga-1.4.2-5.el5.src.rpm"/><source-package last-modified="1174932401" id="rhn-source-package-42403" source-rpm="mpage-2.5.4-7.1.src.rpm"/><source-package last-modified="1174932402" id="rhn-source-package-42404" source-rpm="perl-IO-String-1.08-1.1.1.src.rpm"/><source-package last-modified="1174932472" id="rhn-source-package-42406" source-rpm="redhat-release-5Server-5.0.0.9.src.rpm"/><source-package last-modified="1174932476" id="rhn-source-package-42407" source-rpm="redhat-release-notes-5Server-5.src.rpm"/><source-package last-modified="1175179614" id="rhn-source-package-42450" source-rpm="net-snmp-5.3.1-14.0.1.el5.src.rpm"/><source-package last-modified="1175623874" id="rhn-source-package-42475" source-rpm="krb5-1.5-23.src.rpm"/><source-package last-modified="1175624969" id="rhn-source-package-42476" source-rpm="libXfont-1.2.2-1.0.2.el5.src.rpm"/><source-package last-modified="1175625793" id="rhn-source-package-42478" source-rpm="xorg-x11-server-1.1.1-48.13.0.1.el5.src.rpm"/><source-package last-modified="1175626387" id="rhn-source-package-42479" source-rpm="squid-2.6.STABLE6-4.el5.src.rpm"/><source-package last-modified="1176722952" id="rhn-source-package-42503" source-rpm="freetype-2.2.1-17.el5.src.rpm"/><source-package last-modified="1176723787" id="rhn-source-package-42506" source-rpm="cups-1.2.4-11.5.1.el5.src.rpm"/><source-package last-modified="1176738095" id="rhn-source-package-42511" source-rpm="xorg-x11-apps-7.1-4.0.1.el5.src.rpm"/><source-package last-modified="1176738095" id="rhn-source-package-42512" source-rpm="libX11-1.0.3-8.0.1.el5.src.rpm"/><source-package last-modified="1177062384" id="rhn-source-package-42525" source-rpm="php-5.1.6-11.el5.src.rpm"/><source-package last-modified="1177950686" id="rhn-source-package-42751" source-rpm="kernel-2.6.18-8.1.3.el5.src.rpm"/><source-package last-modified="1178637852" id="rhn-source-package-42780" source-rpm="postgresql-8.1.9-1.el5.src.rpm"/><source-package last-modified="1178639068" id="rhn-source-package-42782" source-rpm="php-5.1.6-12.el5.src.rpm"/><source-package last-modified="1178716269" id="rhn-source-package-42791" source-rpm="vim-7.0.109-3.el5.3.src.rpm"/><source-package last-modified="1178804159" id="rhn-source-package-42796" source-rpm="cman-2.0.62-1.el5.src.rpm"/><source-package last-modified="1178812686" id="rhn-source-package-42800" source-rpm="freeradius-1.1.3-1.2.el5.src.rpm"/><source-package last-modified="1179155325" id="rhn-source-package-42833" source-rpm="samba-3.0.23c-2.el5.2.0.2.src.rpm"/><source-package last-modified="1179161928" id="rhn-source-package-42836" source-rpm="tomcat5-5.5.23-0jpp.1.0.3.el5.src.rpm"/><source-package last-modified="1179161928" id="rhn-source-package-42837" source-rpm="jakarta-commons-modeler-1.1-8jpp.1.0.2.el5.src.rpm"/><source-package last-modified="1179338448" id="rhn-source-package-42843" source-rpm="yum-rhn-plugin-0.4.3-2.el5.src.rpm"/><source-package last-modified="1179340066" id="rhn-source-package-42844" source-rpm="kernel-2.6.18-8.1.4.el5.src.rpm"/><source-package last-modified="1179411401" id="rhn-source-package-42848" source-rpm="ipsec-tools-0.6.5-8.el5.src.rpm"/><source-package last-modified="1179411519" id="rhn-source-package-42851" source-rpm="vixie-cron-4.1-70.el5.src.rpm"/><source-package last-modified="1179413374" id="rhn-source-package-42856" source-rpm="squirrelmail-1.4.8-4.0.1.el5.src.rpm"/><source-package last-modified="1179437773" id="rhn-source-package-42859" source-rpm="libpng-1.2.10-7.0.2.src.rpm"/><source-package last-modified="1179496299" id="rhn-source-package-42865" source-rpm="cman-2.0.64-1.el5.src.rpm"/><source-package last-modified="1179751939" id="rhn-source-package-42871" source-rpm="gimp-2.2.13-2.el5.src.rpm"/><source-package last-modified="1180011489" id="rhn-source-package-42900" source-rpm="redhat-rpm-config-8.0.45-17.0.1.el5.src.rpm"/><source-package last-modified="1180516316" id="rhn-source-package-42905" source-rpm="evolution-data-server-1.8.0-15.0.3.el5.src.rpm"/><source-package last-modified="1180517266" id="rhn-source-package-42907" source-rpm="quagga-0.98.6-2.1.0.1.el5.src.rpm"/><source-package last-modified="1180517957" id="rhn-source-package-42910" source-rpm="file-4.17-9.0.1.el5.src.rpm"/><source-package last-modified="1180574784" id="rhn-source-package-42915" source-rpm="firefox-1.5.0.12-1.el5.src.rpm"/><source-package last-modified="1180574784" id="rhn-source-package-42916" source-rpm="devhelp-0.12-11.el5.src.rpm"/><source-package last-modified="1180574784" id="rhn-source-package-42918" source-rpm="yelp-2.16.0-15.el5.src.rpm"/><source-package last-modified="1180943776" id="rhn-source-package-42927" source-rpm="mutt-1.4.2.2-3.0.2.el5.src.rpm"/><source-package last-modified="1181203175" id="rhn-source-package-42930" source-rpm="fetchmail-6.3.6-1.0.1.el5.src.rpm"/><source-package last-modified="1181549495" id="rhn-source-package-42999" source-rpm="freetype-2.2.1-19.el5.src.rpm"/><source-package last-modified="1181750122" id="rhn-source-package-43026" source-rpm="spamassassin-3.1.9-1.el5.src.rpm"/><source-package last-modified="1181814996" id="rhn-source-package-43032" source-rpm="iscsi-initiator-utils-6.2.0.742-0.6.el5.src.rpm"/><source-package last-modified="1181815313" id="rhn-source-package-43034" source-rpm="mod_perl-2.0.2-6.3.el5.src.rpm"/><source-package last-modified="1181832624" id="rhn-source-package-43041" source-rpm="kernel-2.6.18-8.1.6.el5.src.rpm"/><source-package last-modified="1181844745" id="rhn-source-package-43043" source-rpm="libexif-0.6.13-4.0.2.el5.src.rpm"/><source-package last-modified="1182155397" id="rhn-source-package-43056" source-rpm="nspr-4.6.5-1.0.1.el5.src.rpm"/><source-package last-modified="1182778701" id="rhn-source-package-43067" source-rpm="evolution-data-server-1.8.0-15.0.4.el5.src.rpm"/><source-package last-modified="1182871284" id="rhn-source-package-43073" source-rpm="httpd-2.2.3-7.el5.src.rpm"/><source-package last-modified="1182883654" id="rhn-source-package-43077" source-rpm="krb5-1.5-26.src.rpm"/><source-package last-modified="1182947345" id="rhn-source-package-43078" source-rpm="sysreport-1.4.3-12.el5.src.rpm"/><source-package last-modified="1182947428" id="rhn-source-package-43079" source-rpm="xterm-215-5.el5.src.rpm"/><source-package last-modified="1182947522" id="rhn-source-package-43080" source-rpm="hardlink-1.0-1.27.src.rpm"/><source-package last-modified="1182947568" id="rhn-source-package-43081" source-rpm="enscript-1.6.4-4.1.el5.src.rpm"/><source-package last-modified="1182947709" id="rhn-source-package-43082" source-rpm="fonts-chinese-3.02-9.9.el5.src.rpm"/><source-package last-modified="1182947876" id="rhn-source-package-43084" source-rpm="sos-1.5-1.el5.src.rpm"/><source-package last-modified="1182948057" id="rhn-source-package-43085" source-rpm="cracklib-2.8.9-3.3.src.rpm"/><source-package last-modified="1182948234" id="rhn-source-package-43086" source-rpm="rhpxl-0.41.1-1.el5.src.rpm"/><source-package last-modified="1182948319" id="rhn-source-package-43087" source-rpm="mc-4.6.1a-35.el5.src.rpm"/><source-package last-modified="1183015999" id="rhn-source-package-43102" source-rpm="cman-2.0.64-1.0.1.el5.src.rpm"/><source-package last-modified="1183649434" id="rhn-source-package-43182" source-rpm="perl-TimeDate-1.16-5.el5.src.rpm"/><source-package last-modified="1183649540" id="rhn-source-package-43183" source-rpm="prelink-0.3.9-2.1.src.rpm"/><source-package last-modified="1183649671" id="rhn-source-package-43184" source-rpm="conman-0.1.9.2-8.el5.src.rpm"/><source-package last-modified="1183649777" id="rhn-source-package-43185" source-rpm="mod_auth_kerb-5.1-3.el5.src.rpm"/><source-package last-modified="1183649876" id="rhn-source-package-43186" source-rpm="mod_authz_ldap-0.26-8.el5.src.rpm"/><source-package last-modified="1184039694" id="rhn-source-package-43188" source-rpm="kernel-2.6.18-8.1.8.el5.src.rpm"/><source-package last-modified="1184230888" id="rhn-source-package-43193" source-rpm="perl-Net-DNS-0.59-3.el5.src.rpm"/><source-package last-modified="1184231901" id="rhn-source-package-43194" source-rpm="xorg-x11-xfs-1.0.2-4.src.rpm"/><source-package last-modified="1184668510" id="rhn-source-package-43216" source-rpm="tomcat5-5.5.23-0jpp.1.0.4.el5.src.rpm"/><source-package last-modified="1184770290" id="rhn-source-package-43218" source-rpm="man-pages-2.39-10.el5.src.rpm"/><source-package last-modified="1184770575" id="rhn-source-package-43219" source-rpm="system-config-kdump-1.0.10-1.el5.src.rpm"/><source-package last-modified="1184770766" id="rhn-source-package-43220" source-rpm="fetchmail-6.3.6-1.1.el5.src.rpm"/><source-package last-modified="1184792490" id="rhn-source-package-43228" source-rpm="man-pages-ja-20060815-5.src.rpm"/><source-package last-modified="1184812911" id="rhn-source-package-43234" source-rpm="firefox-1.5.0.12-3.el5.src.rpm"/><source-package last-modified="1184850750" id="rhn-source-package-43238" source-rpm="tzdata-2007f-1.el5.src.rpm"/><source-package last-modified="1185284803" id="rhn-source-package-43497" source-rpm="bind-9.3.3-9.0.1.el5.src.rpm"/><source-package last-modified="1185484552" id="rhn-source-package-43504" source-rpm="acl-2.2.39-2.1.el5.src.rpm"/><source-package last-modified="1185484595" id="rhn-source-package-43512" source-rpm="binutils-2.17.50.0.6-5.el5.src.rpm"/><source-package last-modified="1185484602" id="rhn-source-package-43515" source-rpm="cairo-1.2.4-2.el5.src.rpm"/><source-package last-modified="1185484885" id="rhn-source-package-43526" source-rpm="dhcp-3.0.5-7.el5.src.rpm"/><source-package last-modified="1185484931" id="rhn-source-package-43531" source-rpm="emacs-21.4-19.el5.src.rpm"/><source-package last-modified="1185485009" id="rhn-source-package-43534" source-rpm="evolution-data-server-1.8.0-25.el5.src.rpm"/><source-package last-modified="1185485193" id="rhn-source-package-43549" source-rpm="icu-3.6-5.11.src.rpm"/><source-package last-modified="1185485303" id="rhn-source-package-43559" source-rpm="liberation-fonts-0.2-2.el5.src.rpm"/><source-package last-modified="1185485304" id="rhn-source-package-43560" source-rpm="libselinux-1.33.4-4.el5.src.rpm"/><source-package last-modified="1185485336" id="rhn-source-package-43573" source-rpm="nspr-4.6.5-3.el5.src.rpm"/><source-package last-modified="1185485344" id="rhn-source-package-43575" source-rpm="nss_ldap-253-5.el5.src.rpm"/><source-package last-modified="1185485349" id="rhn-source-package-43576" source-rpm="ntp-4.2.2p1-7.el5.src.rpm"/><source-package last-modified="1185485352" id="rhn-source-package-43578" source-rpm="openCryptoki-2.2.4-16.el5.src.rpm"/><source-package last-modified="1185485398" id="rhn-source-package-43582" source-rpm="openldap-2.3.27-8.src.rpm"/><source-package last-modified="1185819966" id="rhn-source-package-43595" source-rpm="cups-1.2.4-11.5.3.el5.src.rpm"/><source-package last-modified="1185821879" id="rhn-source-package-43596" source-rpm="poppler-0.5.4-4.1.el5.src.rpm"/><source-package last-modified="1185828304" id="rhn-source-package-43601" source-rpm="openssh-4.3p2-24.el5.src.rpm"/><source-package last-modified="1185828315" id="rhn-source-package-43603" source-rpm="pam_krb5-2.2.14-1.src.rpm"/><source-package last-modified="1185828327" id="rhn-source-package-43610" source-rpm="redhat-lsb-3.1-12.3.EL.src.rpm"/><source-package last-modified="1185828372" id="rhn-source-package-43620" source-rpm="sysklogd-1.4.1-40.el5.src.rpm"/><source-package last-modified="1185828373" id="rhn-source-package-43621" source-rpm="sysreport-1.4.3-13.el5.src.rpm"/><source-package last-modified="1185828376" id="rhn-source-package-43622" source-rpm="systemtap-0.5.14-1.el5.src.rpm"/><source-package last-modified="1185828398" id="rhn-source-package-43628" source-rpm="util-linux-2.13-0.45.el5.src.rpm"/><source-package last-modified="1185904157" id="rhn-source-package-43650" source-rpm="qt-3.3.6-21.el5.src.rpm"/><source-package last-modified="1185960834" id="rhn-source-package-43677" source-rpm="tetex-3.0-33.1.el5.src.rpm"/><source-package last-modified="1186514351" id="rhn-source-package-43700" source-rpm="gdm-2.16.0-31.0.1.el5.src.rpm"/><source-package last-modified="1187872660" id="rhn-source-package-43759" source-rpm="tar-1.15.1-23.0.1.el5.src.rpm"/><source-package last-modified="1188480717" id="rhn-source-package-43905" source-rpm="mysql-5.0.22-2.1.0.1.src.rpm"/><source-package last-modified="1188914520" id="rhn-source-package-43908" source-rpm="aide-0.13.1-2.0.4.el5.src.rpm"/><source-package last-modified="1188917451" id="rhn-source-package-43913" source-rpm="star-1.5a75-2.src.rpm"/><source-package last-modified="1188929562" id="rhn-source-package-43915" source-rpm="krb5-1.5-28.src.rpm"/><source-package last-modified="1189167226" id="rhn-source-package-43928" source-rpm="krb5-1.5-29.src.rpm"/><source-package last-modified="1189674517" id="rhn-source-package-43933" source-rpm="kernel-2.6.18-8.1.10.el5.src.rpm"/><source-package last-modified="1189699429" id="rhn-source-package-43937" source-rpm="qt-3.3.6-23.el5.src.rpm"/><source-package last-modified="1190222218" id="rhn-source-package-44015" source-rpm="libvorbis-1.1.2-3.el5.0.src.rpm"/><source-package last-modified="1190293563" id="rhn-source-package-44016" source-rpm="php-5.1.6-15.el5.src.rpm"/><source-package last-modified="1190794387" id="rhn-source-package-44055" source-rpm="gimp-2.2.13-2.0.7.el5.src.rpm"/><source-package last-modified="1190794572" id="rhn-source-package-44058" source-rpm="tomcat5-5.5.23-0jpp.3.0.2.el5.src.rpm"/><source-package last-modified="1190924207" id="rhn-source-package-44061" source-rpm="kernel-2.6.18-8.1.14.el5.src.rpm"/><source-package last-modified="1191358376" id="rhn-source-package-44075" source-rpm="xen-3.0.3-25.0.4.el5.src.rpm"/><source-package last-modified="1191358472" id="rhn-source-package-44076" source-rpm="nfs-utils-lib-1.0.8-7.2.z2.src.rpm"/><source-package last-modified="1191426218" id="rhn-source-package-44078" source-rpm="elinks-0.11.1-5.1.0.1.el5.src.rpm"/><source-package last-modified="1191505134" id="rhn-source-package-44084" source-rpm="tzdata-2007h-1.el5.src.rpm"/><source-package last-modified="1191829373" id="rhn-source-package-44085" source-rpm="kdebase-3.5.4-15.el5.src.rpm"/><source-package last-modified="1191830694" id="rhn-source-package-44088" source-rpm="kdelibs-3.5.4-13.el5.src.rpm"/><source-package last-modified="1192127121" id="rhn-source-package-44098" source-rpm="hplip-1.6.7-4.1.el5_0.3.src.rpm"/><source-package last-modified="1192186797" id="rhn-source-package-44099" source-rpm="openssl-0.9.8b-8.3.el5_0.2.src.rpm"/><source-package last-modified="1192807897" id="rhn-source-package-44104" source-rpm="firefox-1.5.0.12-6.el5.src.rpm"/><source-package last-modified="1193050083" id="rhn-source-package-44113" source-rpm="kernel-2.6.18-8.1.15.el5.src.rpm"/><source-package last-modified="1193067711" id="rhn-source-package-44115" source-rpm="flac-1.1.2-28.el5_0.1.src.rpm"/><source-package last-modified="1193157868" id="rhn-source-package-44132" source-rpm="libpng-1.2.10-7.1.el5_0.1.src.rpm"/><source-package last-modified="1193755341" id="rhn-source-package-44156" source-rpm="net-snmp-5.3.1-19.el5.src.rpm"/><source-package last-modified="1193756229" id="rhn-source-package-44158" source-rpm="mozldap-6.0.4-1.el5.src.rpm"/><source-package last-modified="1193756241" id="rhn-source-package-44159" source-rpm="svrcore-4.0.4-3.el5.src.rpm"/><source-package last-modified="1193756255" id="rhn-source-package-44160" source-rpm="perl-Mozilla-LDAP-1.5.2-4.el5.src.rpm"/><source-package last-modified="1193756264" id="rhn-source-package-44161" source-rpm="nfs4-acl-tools-0.3.1-1.el5.1.src.rpm"/><source-package last-modified="1193756276" id="rhn-source-package-44162" source-rpm="system-config-kdump-1.0.12-1.el5.src.rpm"/><source-package last-modified="1193756310" id="rhn-source-package-44163" source-rpm="sos-1.7-9.1.el5.src.rpm"/><source-package last-modified="1193756320" id="rhn-source-package-44165" source-rpm="redhat-release-5Server-5.1.0.2.src.rpm"/><source-package last-modified="1193756356" id="rhn-source-package-44166" source-rpm="ldapjdk-4.18-2jpp.3.el5.src.rpm"/><source-package last-modified="1193756646" id="rhn-source-package-44167" source-rpm="module-init-tools-3.3-0.pre3.1.34.el5.src.rpm"/><source-package last-modified="1193756657" id="rhn-source-package-44168" source-rpm="strace-4.5.16-1.el5.1.src.rpm"/><source-package last-modified="1193756723" id="rhn-source-package-44169" source-rpm="nss-3.11.7-1.3.el5.src.rpm"/><source-package last-modified="1193756782" id="rhn-source-package-44170" source-rpm="system-config-network-1.3.99-2.el5.src.rpm"/><source-package last-modified="1193756818" id="rhn-source-package-44171" source-rpm="ypbind-1.19-8.el5.src.rpm"/><source-package last-modified="1193756831" id="rhn-source-package-44172" source-rpm="xorg-x11-drv-mga-1.4.2-6.el5.src.rpm"/><source-package last-modified="1193756839" id="rhn-source-package-44173" source-rpm="redhat-menus-6.7.8-2.el5.src.rpm"/><source-package last-modified="1193757031" id="rhn-source-package-44176" source-rpm="cachefilesd-0.8-2.el5.src.rpm"/><source-package last-modified="1193757051" id="rhn-source-package-44177" source-rpm="initscripts-8.45.17.EL-1.src.rpm"/><source-package last-modified="1193757081" id="rhn-source-package-44178" source-rpm="krb5-1.6.1-17.el5.src.rpm"/><source-package last-modified="1193757109" id="rhn-source-package-44179" source-rpm="kernel-2.6.18-53.el5.src.rpm"/><source-package last-modified="1193757177" id="rhn-source-package-44180" source-rpm="gdb-6.5-25.el5.src.rpm"/><source-package last-modified="1193757205" id="rhn-source-package-44181" source-rpm="crash-4.0-4.6.1.src.rpm"/><source-package last-modified="1193757223" id="rhn-source-package-44182" source-rpm="quagga-0.98.6-5.el5.src.rpm"/><source-package last-modified="1193757238" id="rhn-source-package-44183" source-rpm="openhpi-2.8.1-2.el5.7.src.rpm"/><source-package last-modified="1193757388" id="rhn-source-package-44184" source-rpm="gfs2-utils-0.1.38-1.el5.src.rpm"/><source-package last-modified="1193757398" id="rhn-source-package-44185" source-rpm="cman-2.0.73-1.el5.src.rpm"/><source-package last-modified="1193757411" id="rhn-source-package-44186" source-rpm="openais-0.80.3-7.el5.src.rpm"/><source-package last-modified="1193758413" id="rhn-source-package-44187" source-rpm="edac-utils-0.9-5.el5.src.rpm"/><source-package last-modified="1193758527" id="rhn-source-package-44188" source-rpm="audit-1.5.5-7.el5.src.rpm"/><source-package last-modified="1193758661" id="rhn-source-package-44192" source-rpm="kudzu-1.2.57.1.15-1.src.rpm"/><source-package last-modified="1193758877" id="rhn-source-package-44194" source-rpm="mesa-6.5.1-7.5.el5.src.rpm"/><source-package last-modified="1193758955" id="rhn-source-package-44197" source-rpm="openib-1.2-6.el5.src.rpm"/><source-package last-modified="1193758983" id="rhn-source-package-44198" source-rpm="mkinitrd-5.1.19.6-19.src.rpm"/><source-package last-modified="1193759079" id="rhn-source-package-44199" source-rpm="cups-1.2.4-11.14.el5.src.rpm"/><source-package last-modified="1193759272" id="rhn-source-package-44203" source-rpm="cpufreq-utils-002-1.1.43.el5.src.rpm"/><source-package last-modified="1193759331" id="rhn-source-package-44204" source-rpm="xen-3.0.3-41.el5.src.rpm"/><source-package last-modified="1193759547" id="rhn-source-package-44206" source-rpm="yum-utils-1.0.4-3.el5.src.rpm"/><source-package last-modified="1193759566" id="rhn-source-package-44207" source-rpm="hwdata-0.211-1.src.rpm"/><source-package last-modified="1193759599" id="rhn-source-package-44208" source-rpm="xorg-x11-drv-i810-1.6.5-9.6.el5.src.rpm"/><source-package last-modified="1193759612" id="rhn-source-package-44209" source-rpm="xorg-x11-drv-nv-2.1.2-1.el5.src.rpm"/><source-package last-modified="1193760216" id="rhn-source-package-44211" source-rpm="parted-1.8.1-12.el5.src.rpm"/><source-package last-modified="1193760232" id="rhn-source-package-44212" source-rpm="device-mapper-multipath-0.4.7-12.el5.src.rpm"/><source-package last-modified="1193760233" id="rhn-source-package-44213" source-rpm="rpm-4.4.2-47.el5.src.rpm"/><source-package last-modified="1193760434" id="rhn-source-package-44215" source-rpm="kexec-tools-1.101-194.4.el5.src.rpm"/><source-package last-modified="1193760626" id="rhn-source-package-44216" source-rpm="gtk2-2.10.4-19.el5.src.rpm"/><source-package last-modified="1193760685" id="rhn-source-package-44217" source-rpm="nfs-utils-1.0.9-24.el5.src.rpm"/><source-package last-modified="1193760688" id="rhn-source-package-44218" source-rpm="selinux-policy-2.4.6-104.el5.src.rpm"/><source-package last-modified="1193760707" id="rhn-source-package-44220" source-rpm="fonts-chinese-3.02-12.el5.src.rpm"/><source-package last-modified="1193760734" id="rhn-source-package-44221" source-rpm="hal-0.5.8.1-25.el5.src.rpm"/><source-package last-modified="1193760951" id="rhn-source-package-44222" source-rpm="sblim-1-29.EL5.src.rpm"/><source-package last-modified="1193760965" id="rhn-source-package-44223" source-rpm="Deployment_Guide-5.1.0-11.src.rpm"/><source-package last-modified="1193760992" id="rhn-source-package-44224" source-rpm="jakarta-commons-modeler-1.1-8jpp.3.el5.src.rpm"/><source-package last-modified="1193761007" id="rhn-source-package-44225" source-rpm="pm-utils-0.99.3-6.el5.17.src.rpm"/><source-package last-modified="1193761011" id="rhn-source-package-44226" source-rpm="autofs-5.0.1-0.rc2.55.src.rpm"/><source-package last-modified="1193761028" id="rhn-source-package-44227" source-rpm="sabayon-2.12.4-5.el5.src.rpm"/><source-package last-modified="1193761040" id="rhn-source-package-44229" source-rpm="irqbalance-0.55-6.el5.src.rpm"/><source-package last-modified="1193761055" id="rhn-source-package-44230" source-rpm="tog-pegasus-2.6.1-2.el5.src.rpm"/><source-package last-modified="1193761105" id="rhn-source-package-44232" source-rpm="lvm2-2.02.26-3.el5.src.rpm"/><source-package last-modified="1193761167" id="rhn-source-package-44233" source-rpm="redhat-release-notes-5Server-9.src.rpm"/><source-package last-modified="1193761264" id="rhn-source-package-44235" source-rpm="dmraid-1.0.0.rc13-4.el5.src.rpm"/><source-package last-modified="1193761300" id="rhn-source-package-44236" source-rpm="newt-perl-1.08-9.2.2.src.rpm"/><source-package last-modified="1193761300" id="rhn-source-package-44237" source-rpm="crypto-utils-2.3-1.src.rpm"/><source-package last-modified="1193761338" id="rhn-source-package-44238" source-rpm="iscsi-initiator-utils-6.2.0.865-0.8.el5.src.rpm"/><source-package last-modified="1193761352" id="rhn-source-package-44239" source-rpm="yum-rhn-plugin-0.5.2-3.el5.src.rpm"/><source-package last-modified="1193761659" id="rhn-source-package-44240" source-rpm="wireshark-0.99.6-1.el5.src.rpm"/><source-package last-modified="1193770704" id="rhn-source-package-44253" source-rpm="rhn-client-tools-0.4.16-1.el5.src.rpm"/><source-package last-modified="1193771307" id="rhn-source-package-44255" source-rpm="OpenIPMI-2.0.6-5.el5.4.src.rpm"/><source-package last-modified="1193771537" id="rhn-source-package-44256" source-rpm="pkinit-nss-0.7.3-1.el5.src.rpm"/><source-package last-modified="1193779644" id="rhn-source-package-44257" source-rpm="watchdog-5.3.1-7.el5.src.rpm"/><source-package last-modified="1193779865" id="rhn-source-package-44258" source-rpm="openmpi-1.2.3-4.el5.src.rpm"/><source-package last-modified="1193779875" id="rhn-source-package-44259" source-rpm="ibutils-1.2-2.el5.src.rpm"/><source-package last-modified="1193780050" id="rhn-source-package-44260" source-rpm="libdhcp-1.20-2.el5.src.rpm"/><source-package last-modified="1193784223" id="rhn-source-package-44262" source-rpm="esc-1.0.0-32.el5.src.rpm"/><source-package last-modified="1193784320" id="rhn-source-package-44264" source-rpm="frysk-0.0.1.2007.06.21.rh2-4.el5.src.rpm"/><source-package last-modified="1193784641" id="rhn-source-package-44265" source-rpm="libXp-1.0.0-8.1.el5.src.rpm"/><source-package last-modified="1193784999" id="rhn-source-package-44269" source-rpm="python-pyblock-0.26-1.el5.src.rpm"/><source-package last-modified="1193784999" id="rhn-source-package-44270" source-rpm="anaconda-11.1.2.87-1.src.rpm"/><source-package last-modified="1193785039" id="rhn-source-package-44271" source-rpm="microcode_ctl-1.17-1.42.el5.src.rpm"/><source-package last-modified="1193785052" id="rhn-source-package-44272" source-rpm="xorg-x11-drv-evdev-1.0.0.5-3.el5.src.rpm"/><source-package last-modified="1193785106" id="rhn-source-package-44273" source-rpm="totem-2.16.7-1.el5.src.rpm"/><source-package last-modified="1193785111" id="rhn-source-package-44274" source-rpm="device-mapper-1.02.20-1.el5.src.rpm"/><source-package last-modified="1193785171" id="rhn-source-package-44275" source-rpm="policycoreutils-1.33.12-12.el5.src.rpm"/><source-package last-modified="1193785194" id="rhn-source-package-44276" source-rpm="bind-9.3.3-10.el5.src.rpm"/><source-package last-modified="1193785230" id="rhn-source-package-44277" source-rpm="xorg-x11-drv-vesa-1.3.0-8.1.el5.src.rpm"/><source-package last-modified="1193785242" id="rhn-source-package-44278" source-rpm="firstboot-1.4.27.3-1.el5.src.rpm"/><source-package last-modified="1193785257" id="rhn-source-package-44279" source-rpm="alsa-utils-1.0.14-2.rc4.el5.src.rpm"/><source-package last-modified="1193785257" id="rhn-source-package-44280" source-rpm="alsa-lib-1.0.14-1.rc4.el5.src.rpm"/><source-package last-modified="1193785275" id="rhn-source-package-44281" source-rpm="gnome-power-manager-2.16.0-8.el5.src.rpm"/><source-package last-modified="1193785290" id="rhn-source-package-44282" source-rpm="udev-095-14.9.el5.src.rpm"/><source-package last-modified="1193785323" id="rhn-source-package-44283" source-rpm="glibc-2.5-18.src.rpm"/><source-package last-modified="1193785415" id="rhn-source-package-44284" source-rpm="tcp_wrappers-7.6-40.4.el5.src.rpm"/><source-package last-modified="1193785428" id="rhn-source-package-44285" source-rpm="vixie-cron-4.1-72.el5.src.rpm"/><source-package last-modified="1193785443" id="rhn-source-package-44286" source-rpm="e2fsprogs-1.39-10.el5.src.rpm"/><source-package last-modified="1193785475" id="rhn-source-package-44287" source-rpm="samba-3.0.25b-0.el5.4.src.rpm"/><source-package last-modified="1193785502" id="rhn-source-package-44288" source-rpm="libuser-0.54.7-2.el5.2.src.rpm"/><source-package last-modified="1193785559" id="rhn-source-package-44289" source-rpm="gcc-4.1.2-14.el5.src.rpm"/><source-package last-modified="1193785639" id="rhn-source-package-44290" source-rpm="gstreamer-plugins-good-0.10.4-4.el5.src.rpm"/><source-package last-modified="1193785961" id="rhn-source-package-44291" source-rpm="pam-0.99.6.2-3.26.el5.src.rpm"/><source-package last-modified="1193838431" id="rhn-source-package-44292" source-rpm="cups-1.2.4-11.14.el5_1.1.src.rpm"/><source-package last-modified="1194278790" id="rhn-source-package-44307" source-rpm="pcre-6.6-2.el5_0.1.src.rpm"/><source-package last-modified="1194279147" id="rhn-source-package-44310" source-rpm="perl-5.8.8-10.el5_0.2.src.rpm"/><source-package last-modified="1194453806" id="rhn-source-package-44322" source-rpm="glibc-2.5-18.el5_1.1.src.rpm"/><source-package last-modified="1194454259" id="rhn-source-package-44323" source-rpm="openib-1.2-6.el5_1.1.src.rpm"/><source-package last-modified="1194454347" id="rhn-source-package-44324" source-rpm="cman-2.0.73-1.el5_1.1.src.rpm"/><source-package last-modified="1194454435" id="rhn-source-package-44325" source-rpm="selinux-policy-2.4.6-106.el5_1.3.src.rpm"/><source-package last-modified="1194454555" id="rhn-source-package-44326" source-rpm="hal-0.5.8.1-25.el5_1.1.src.rpm"/><source-package last-modified="1194457459" id="rhn-source-package-44327" source-rpm="cups-1.2.4-11.14.el5_1.3.src.rpm"/><source-package last-modified="1194458911" id="rhn-source-package-44331" source-rpm="poppler-0.5.4-4.3.el5_1.src.rpm"/><source-package last-modified="1194528992" id="rhn-source-package-44337" source-rpm="tetex-3.0-33.2.el5_1.2.src.rpm"/><source-package last-modified="1194540736" id="rhn-source-package-44339" source-rpm="openldap-2.3.27-8.el5_1.1.src.rpm"/><source-package last-modified="1194668039" id="rhn-source-package-44348" source-rpm="pcre-6.6-2.el5_1.1.src.rpm"/><source-package last-modified="1194946597" id="rhn-source-package-44369" source-rpm="ruby-1.8.5-5.el5_1.1.src.rpm"/><source-package last-modified="1195133181" id="rhn-source-package-44505" source-rpm="rsh-0.17-38.el5.src.rpm"/><source-package last-modified="1195134460" id="rhn-source-package-44506" source-rpm="libchewing-0.3.0-8.el5.src.rpm"/><source-package last-modified="1195135587" id="rhn-source-package-44507" source-rpm="logrotate-3.7.4-8.src.rpm"/><source-package last-modified="1195136668" id="rhn-source-package-44508" source-rpm="xorg-x11-drv-keyboard-1.1.0-3.src.rpm"/><source-package last-modified="1195137186" id="rhn-source-package-44509" source-rpm="telnet-0.17-39.el5.src.rpm"/><source-package last-modified="1195141427" id="rhn-source-package-44515" source-rpm="util-linux-2.13-0.45.el5_1.1.src.rpm"/><source-package last-modified="1195144012" id="rhn-source-package-44517" source-rpm="samba-3.0.25b-1.el5_1.2.src.rpm"/><source-package last-modified="1195145236" id="rhn-source-package-44520" source-rpm="net-snmp-5.3.1-19.el5_1.1.src.rpm"/><source-package last-modified="1195582425" id="rhn-source-package-44532" source-rpm="net-snmp-5.3.1-19.el5_1.2.src.rpm"/><source-package last-modified="1195646301" id="rhn-source-package-44533" source-rpm="php-pear-1.4.9-4.el5.1.src.rpm"/><source-package last-modified="1195646529" id="rhn-source-package-44534" source-rpm="psmisc-22.2-6.src.rpm"/><source-package last-modified="1195646607" id="rhn-source-package-44535" source-rpm="acl-2.2.39-3.el5.src.rpm"/><source-package last-modified="1195646677" id="rhn-source-package-44536" source-rpm="desktop-printing-0.19-20.1.el5.src.rpm"/><source-package last-modified="1195648561" id="rhn-source-package-44540" source-rpm="emacspeak-23.0-3.el5.src.rpm"/><source-package last-modified="1195652988" id="rhn-source-package-44541" source-rpm="rhn-client-tools-0.4.16-2.el5_1.9.src.rpm"/><source-package last-modified="1196117002" id="rhn-source-package-44587" source-rpm="firefox-1.5.0.12-7.el5.src.rpm"/><source-package last-modified="1196278273" id="rhn-source-package-44588" source-rpm="ltrace-0.5-7.45svn.el5.src.rpm"/><source-package last-modified="1196278311" id="rhn-source-package-44589" source-rpm="xorg-x11-xinit-1.0.2-15.el5.src.rpm"/><source-package last-modified="1196347202" id="rhn-source-package-44592" source-rpm="kernel-2.6.18-53.1.4.el5.src.rpm"/><source-package last-modified="1196347771" id="rhn-source-package-44593" source-rpm="pcre-6.6-2.el5_1.7.src.rpm"/><source-package last-modified="1196349673" id="rhn-source-package-44597" source-rpm="cairo-1.2.4-3.el5_1.src.rpm"/><source-package last-modified="1197473868" id="rhn-source-package-44665" source-rpm="x3270-3.3.4p7-3.el5.3.src.rpm"/><source-package last-modified="1197473994" id="rhn-source-package-44666" source-rpm="openhpi-2.8.1-2.el5.9.src.rpm"/><source-package last-modified="1197474450" id="rhn-source-package-44667" source-rpm="openmotif-2.3.0-0.4.el5.src.rpm"/><source-package last-modified="1197474582" id="rhn-source-package-44668" source-rpm="traceroute-2.0.1-3.el5.src.rpm"/><source-package last-modified="1197474711" id="rhn-source-package-44669" source-rpm="system-config-users-1.2.51-3.el5.src.rpm"/><source-package last-modified="1197476266" id="rhn-source-package-44670" source-rpm="net-snmp-5.3.1-19.el5_1.3.src.rpm"/><source-package last-modified="1197577108" id="rhn-source-package-44672" source-rpm="mcstrans-0.2.6-1.el5_1.1.src.rpm"/><source-package last-modified="1197662794" id="rhn-source-package-44673" source-rpm="mozldap-6.0.5-1.el5.src.rpm"/><source-package last-modified="1197993449" id="rhn-source-package-44679" source-rpm="squid-2.6.STABLE6-5.el5_1.2.src.rpm"/><source-package last-modified="1197994882" id="rhn-source-package-44681" source-rpm="mysql-5.0.22-2.2.el5_1.1.src.rpm"/><source-package last-modified="1198078376" id="rhn-source-package-44685" source-rpm="libexif-0.6.13-4.0.2.el5_1.1.src.rpm"/><source-package last-modified="1198168654" id="rhn-source-package-44693" source-rpm="metacity-2.16.0-9.el5.src.rpm"/><source-package last-modified="1198168765" id="rhn-source-package-44694" source-rpm="nss_db-2.2-35.3.src.rpm"/><source-package last-modified="1198169149" id="rhn-source-package-44696" source-rpm="createrepo-0.4.11-1.el5.src.rpm"/><source-package last-modified="1198169182" id="rhn-source-package-44697" source-rpm="gthumb-2.7.8-8.el5.src.rpm"/><source-package last-modified="1198169274" id="rhn-source-package-44698" source-rpm="xsane-0.991-5.el5.src.rpm"/><source-package last-modified="1198178547" id="rhn-source-package-44699" source-rpm="autofs-5.0.1-0.rc2.55.el5.2.src.rpm"/><source-package last-modified="1199357948" id="rhn-source-package-44709" source-rpm="shared-mime-info-0.19-5.el5.src.rpm"/><source-package last-modified="1199358062" id="rhn-source-package-44710" source-rpm="totem-2.16.7-2.el5.src.rpm"/><source-package last-modified="1199358304" id="rhn-source-package-44711" source-rpm="emacs-21.4-20.el5.src.rpm"/><source-package last-modified="1199358465" id="rhn-source-package-44712" source-rpm="libraw1394-1.3.0-1.el5.src.rpm"/><source-package last-modified="1199358465" id="rhn-source-package-44713" source-rpm="dvgrab-3.0-1.el5.src.rpm"/><source-package last-modified="1199385189" id="rhn-source-package-44717" source-rpm="tzdata-2007k-1.el5.src.rpm"/><source-package last-modified="1199473237" id="rhn-source-package-44719" source-rpm="fontconfig-2.4.1-7.el5.src.rpm"/><source-package last-modified="1199730173" id="rhn-source-package-44722" source-rpm="tog-pegasus-2.6.1-2.el5_1.1.src.rpm"/><source-package last-modified="1199731096" id="rhn-source-package-44725" source-rpm="e2fsprogs-1.39-10.el5_1.1.src.rpm"/><source-package last-modified="1199892494" id="rhn-source-package-44779" source-rpm="man-pages-ja-20060815-6.el5.src.rpm"/><source-package last-modified="1199892526" id="rhn-source-package-44780" source-rpm="htmlview-4.0.0-2.el5.src.rpm"/><source-package last-modified="1200053596" id="rhn-source-package-44790" source-rpm="libxml2-2.6.26-2.1.2.1.src.rpm"/><source-package last-modified="1200054531" id="rhn-source-package-44793" source-rpm="postgresql-8.1.11-1.el5_1.1.src.rpm"/><source-package last-modified="1200389808" id="rhn-source-package-44827" source-rpm="httpd-2.2.3-11.el5_1.3.src.rpm"/><source-package last-modified="1200492281" id="rhn-source-package-44834" source-rpm="oddjob-0.27-9.el5.src.rpm"/><source-package last-modified="1200492437" id="rhn-source-package-44835" source-rpm="m17n-db-1.3.3-48.el5.src.rpm"/><source-package last-modified="1200492585" id="rhn-source-package-44836" source-rpm="amtu-1.0.6-1.el5.src.rpm"/><source-package last-modified="1200492713" id="rhn-source-package-44837" source-rpm="gedit-2.16.0-9.el5.src.rpm"/><source-package last-modified="1200492892" id="rhn-source-package-44838" source-rpm="gnome-utils-2.16.0-5.el5.src.rpm"/><source-package last-modified="1200493128" id="rhn-source-package-44839" source-rpm="m2crypto-0.16-6.el5.2.src.rpm"/><source-package last-modified="1200493256" id="rhn-source-package-44840" source-rpm="apr-util-1.2.7-7.el5.src.rpm"/><source-package last-modified="1200493392" id="rhn-source-package-44841" source-rpm="crypto-utils-2.3-2.el5.src.rpm"/><source-package last-modified="1200498845" id="rhn-source-package-44842" source-rpm="sysklogd-1.4.1-42.el5.src.rpm"/><source-package last-modified="1200599925" id="rhn-source-package-44843" source-rpm="libXfont-1.2.2-1.0.3.el5_1.src.rpm"/><source-package last-modified="1200600196" id="rhn-source-package-44844" source-rpm="xorg-x11-server-1.1.1-48.26.el5_1.4.src.rpm"/><source-package last-modified="1200706007" id="rhn-source-package-44848" source-rpm="xorg-x11-server-1.1.1-48.26.el5_1.5.src.rpm"/><source-package last-modified="1200903768" id="rhn-source-package-44854" source-rpm="wireshark-0.99.7-1.el5.src.rpm"/><source-package last-modified="1201077990" id="rhn-source-package-44861" source-rpm="yum-rhn-plugin-0.5.2-5.el5_1.2.src.rpm"/><source-package last-modified="1201096656" id="rhn-source-package-44862" source-rpm="hwbrowser-0.30-2.el5.src.rpm"/><source-package last-modified="1201096764" id="rhn-source-package-44863" source-rpm="pygtk2-2.10.1-11.el5.src.rpm"/><source-package last-modified="1201096862" id="rhn-source-package-44864" source-rpm="ntp-4.2.2p1-8.el5.src.rpm"/><source-package last-modified="1201097059" id="rhn-source-package-44865" source-rpm="kdeadmin-3.5.4-3.el5.src.rpm"/><source-package last-modified="1201097551" id="rhn-source-package-44868" source-rpm="a2ps-4.13b-57.2.el5.src.rpm"/><source-package last-modified="1201097658" id="rhn-source-package-44869" source-rpm="gnome-screensaver-2.16.1-6.el5.src.rpm"/><source-package last-modified="1201097861" id="rhn-source-package-44870" source-rpm="gnome-panel-2.16.1-7.el5.src.rpm"/><source-package last-modified="1201098308" id="rhn-source-package-44871" source-rpm="scim-pinyin-0.5.91-16.el5.src.rpm"/><source-package last-modified="1201100324" id="rhn-source-package-44872" source-rpm="kernel-2.6.18-53.1.6.el5.src.rpm"/><source-package last-modified="1201267616" id="rhn-source-package-44875" source-rpm="icu-3.6-5.11.1.src.rpm"/><source-package last-modified="1201705440" id="rhn-source-package-44890" source-rpm="gnome-python2-desktop-2.16.0-2.el5.src.rpm"/><source-package last-modified="1201705555" id="rhn-source-package-44891" source-rpm="gzip-1.3.5-10.el5.src.rpm"/><source-package last-modified="1201705649" id="rhn-source-package-44892" source-rpm="system-config-printer-0.7.32.8-1.el5.src.rpm"/><source-package last-modified="1201705986" id="rhn-source-package-44894" source-rpm="pygtk2-2.10.1-12.el5.src.rpm"/><source-package last-modified="1201706926" id="rhn-source-package-44896" source-rpm="device-mapper-multipath-0.4.7-12.el5_1.2.src.rpm"/><source-package last-modified="1201868812" id="rhn-source-package-44902" source-rpm="autofs-5.0.1-0.rc2.55.el5.3.src.rpm"/><source-package last-modified="1202324388" id="rhn-source-package-44918" source-rpm="liberation-fonts-1.0-1.el5.src.rpm"/><source-package last-modified="1202324417" id="rhn-source-package-44919" source-rpm="pkgconfig-0.21-2.el5.src.rpm"/><source-package last-modified="1202324456" id="rhn-source-package-44920" source-rpm="libgnomeprint22-2.12.1-10.el5.src.rpm"/><source-package last-modified="1202409597" id="rhn-source-package-44923" source-rpm="gdb-6.5-25.el5_1.1.src.rpm"/><source-package last-modified="1202436957" id="rhn-source-package-44930" source-rpm="firefox-1.5.0.12-9.el5.src.rpm"/><source-package last-modified="1202834773" id="rhn-source-package-44932" source-rpm="kernel-2.6.18-53.1.13.el5.src.rpm"/><source-package last-modified="1202937428" id="rhn-source-package-44937" source-rpm="libao-0.8.6-7.src.rpm"/><source-package last-modified="1203077022" id="rhn-source-package-44945" source-rpm="net-snmp-5.3.1-19.el5_1.4.src.rpm"/><source-package last-modified="1203135432" id="rhn-source-package-44982" source-rpm="firefox-1.5.0.12-11.el5_1.src.rpm"/><source-package last-modified="1203542257" id="rhn-source-package-44986" source-rpm="lam-7.1.2-11.el5.src.rpm"/><source-package last-modified="1203627947" id="rhn-source-package-44990" source-rpm="openldap-2.3.27-8.el5_1.3.src.rpm"/><source-package last-modified="1203628854" id="rhn-source-package-44993" source-rpm="tk-8.4.13-5.el5_1.1.src.rpm"/><source-package last-modified="1203629330" id="rhn-source-package-44994" source-rpm="cups-1.2.4-11.14.el5_1.4.src.rpm"/><source-package last-modified="1204129778" id="rhn-source-package-45009" source-rpm="gnome-volume-manager-2.15.0-5.el5.src.rpm"/><source-package last-modified="1204129820" id="rhn-source-package-45010" source-rpm="x3270-3.3.4p7-3.el5.4.src.rpm"/><source-package last-modified="1204133388" id="rhn-source-package-45012" source-rpm="system-config-users-1.2.51-4.el5.src.rpm"/><source-package last-modified="1204147656" id="rhn-source-package-45013" source-rpm="dbus-1.0.0-6.3.el5_1.src.rpm"/><source-package last-modified="1204149429" id="rhn-source-package-45016" source-rpm="ghostscript-8.15.2-9.1.el5_1.1.src.rpm"/><source-package last-modified="1204191646" id="rhn-source-package-45019" source-rpm="gd-2.0.33-9.4.el5_1.1.src.rpm"/><source-package last-modified="1204725003" id="rhn-source-package-45093" source-rpm="kernel-2.6.18-53.1.14.el5.src.rpm"/><source-package last-modified="1205158981" id="rhn-source-package-45098" source-rpm="tzdata-2007k-2.el5.src.rpm"/><source-package last-modified="1205166269" id="rhn-source-package-45101" source-rpm="device-mapper-multipath-0.4.7-12.el5_1.3.src.rpm"/><source-package last-modified="1205182885" id="rhn-source-package-45102" source-rpm="paps-0.6.6-17.el5.src.rpm"/><source-package last-modified="1205182907" id="rhn-source-package-45108" source-rpm="logwatch-7.3-6.el5.src.rpm"/><source-package last-modified="1205182925" id="rhn-source-package-45119" source-rpm="sg3_utils-1.25-1.el5.src.rpm"/><source-package last-modified="1205183006" id="rhn-source-package-45124" source-rpm="nautilus-2.16.2-7.el5.src.rpm"/><source-package last-modified="1205183008" id="rhn-source-package-45126" source-rpm="aspell-es-0.50-13.2.2.src.rpm"/><source-package last-modified="1205183020" id="rhn-source-package-45128" source-rpm="tcpdump-3.9.4-12.el5.src.rpm"/><source-package last-modified="1205183021" id="rhn-source-package-45129" source-rpm="kbd-1.12-20.el5.src.rpm"/><source-package last-modified="1205183056" id="rhn-source-package-45131" source-rpm="aspell-nl-0.1e-1.fc6.src.rpm"/><source-package last-modified="1205183306" id="rhn-source-package-45146" source-rpm="kdeartwork-3.5.4-1.fc6.src.rpm"/><source-package last-modified="1205183307" id="rhn-source-package-45147" source-rpm="dstat-0.6.6-3.el5.src.rpm"/><source-package last-modified="1205183391" id="rhn-source-package-45154" source-rpm="kdebase-3.5.4-18.el5.src.rpm"/><source-package last-modified="1205183396" id="rhn-source-package-45159" source-rpm="xorg-x11-twm-1.0.1-3.1.src.rpm"/><source-package last-modified="1205183396" id="rhn-source-package-45160" source-rpm="rhel-instnum-1.0.8-1.el5.src.rpm"/><source-package last-modified="1205183449" id="rhn-source-package-45164" source-rpm="rpm-4.4.2-48.el5.src.rpm"/><source-package last-modified="1205183719" id="rhn-source-package-45172" source-rpm="shadow-utils-4.0.17-13.el5.src.rpm"/><source-package last-modified="1205183743" id="rhn-source-package-45176" source-rpm="smartmontools-5.36-4.el5.src.rpm"/><source-package last-modified="1205183743" id="rhn-source-package-45177" source-rpm="iptables-1.3.5-4.el5.src.rpm"/><source-package last-modified="1205183751" id="rhn-source-package-45180" source-rpm="fonts-indic-2.1.7-2.el5.src.rpm"/><source-package last-modified="1205183758" id="rhn-source-package-45183" source-rpm="sblim-1-31.el5.src.rpm"/><source-package last-modified="1205183766" id="rhn-source-package-45190" source-rpm="system-config-keyboard-1.2.11-1.el5.src.rpm"/><source-package last-modified="1205183767" id="rhn-source-package-45191" source-rpm="notification-daemon-0.3.5-9.el5.src.rpm"/><source-package last-modified="1205183774" id="rhn-source-package-45193" source-rpm="coreutils-5.97-14.el5.src.rpm"/><source-package last-modified="1205183780" id="rhn-source-package-45196" source-rpm="sysstat-7.0.2-1.el5.src.rpm"/><source-package last-modified="1205183794" id="rhn-source-package-45201" source-rpm="redhat-rpm-config-8.0.45-24.el5.src.rpm"/><source-package last-modified="1205183801" id="rhn-source-package-45205" source-rpm="spamassassin-3.2.4-1.el5.src.rpm"/><source-package last-modified="1205183812" id="rhn-source-package-45211" source-rpm="pciutils-2.2.3-5.src.rpm"/><source-package last-modified="1205183817" id="rhn-source-package-45215" source-rpm="scim-anthy-1.2.0-6.el5.src.rpm"/><source-package last-modified="1205183819" id="rhn-source-package-45216" source-rpm="openssh-4.3p2-26.el5.src.rpm"/><source-package last-modified="1205183824" id="rhn-source-package-45220" source-rpm="busybox-1.2.0-4.el5.src.rpm"/><source-package last-modified="1205183899" id="rhn-source-package-45225" source-rpm="procps-3.2.7-9.el5.src.rpm"/><source-package last-modified="1205183971" id="rhn-source-package-45238" source-rpm="libtool-1.5.22-6.1.src.rpm"/><source-package last-modified="1205183974" id="rhn-source-package-45239" source-rpm="gstreamer-0.10.9-3.el5.src.rpm"/><source-package last-modified="1205183978" id="rhn-source-package-45240" source-rpm="ksh-20060214-1.7.src.rpm"/><source-package last-modified="1205183980" id="rhn-source-package-45242" source-rpm="vte-0.14.0-2.el5.src.rpm"/><source-package last-modified="1205183981" id="rhn-source-package-45243" source-rpm="xorg-x11-xtrans-devel-1.0.1-1.1.fc6.src.rpm"/><source-package last-modified="1205183981" id="rhn-source-package-45244" source-rpm="libart_lgpl-2.3.17-4.src.rpm"/><source-package last-modified="1205183998" id="rhn-source-package-45246" source-rpm="gtk2-2.10.4-20.el5.src.rpm"/><source-package last-modified="1205184000" id="rhn-source-package-45249" source-rpm="kdnssd-avahi-0.1.3-0.1.20060713svn.fc6.src.rpm"/><source-package last-modified="1205184011" id="rhn-source-package-45253" source-rpm="mailman-2.1.9-4.el5.src.rpm"/><source-package last-modified="1205184106" id="rhn-source-package-45257" source-rpm="pcsc-lite-1.4.4-0.1.el5.src.rpm"/><source-package last-modified="1205184127" id="rhn-source-package-45259" source-rpm="kdelibs-3.5.4-16.el5.src.rpm"/><source-package last-modified="1205184129" id="rhn-source-package-45261" source-rpm="cscope-15.5-15.fc6.1.src.rpm"/><source-package last-modified="1205184132" id="rhn-source-package-45262" source-rpm="cairo-1.2.4-5.el5.src.rpm"/><source-package last-modified="1205184134" id="rhn-source-package-45264" source-rpm="libogg-1.1.3-3.el5.src.rpm"/><source-package last-modified="1205184142" id="rhn-source-package-45265" source-rpm="python-2.4.3-21.el5.src.rpm"/><source-package last-modified="1205184147" id="rhn-source-package-45269" source-rpm="libX11-1.0.3-9.el5.src.rpm"/><source-package last-modified="1205184185" id="rhn-source-package-45272" source-rpm="libXres-1.0.1-3.1.src.rpm"/><source-package last-modified="1205184185" id="rhn-source-package-45273" source-rpm="automake15-1.5-16.src.rpm"/><source-package last-modified="1205184188" id="rhn-source-package-45274" source-rpm="nmap-4.11-1.1.src.rpm"/><source-package last-modified="1205184207" id="rhn-source-package-45283" source-rpm="pam-0.99.6.2-3.27.el5.src.rpm"/><source-package last-modified="1205184211" id="rhn-source-package-45286" source-rpm="libsemanage-1.9.1-3.el5.src.rpm"/><source-package last-modified="1205184214" id="rhn-source-package-45289" source-rpm="jakarta-commons-dbcp-1.2.1-7jpp.1.src.rpm"/><source-package last-modified="1205184214" id="rhn-source-package-45290" source-rpm="vsftpd-2.0.5-12.el5.src.rpm"/><source-package last-modified="1205184227" id="rhn-source-package-45294" source-rpm="php-5.1.6-20.el5.src.rpm"/><source-package last-modified="1205184230" id="rhn-source-package-45296" source-rpm="gdbm-1.8.0-26.2.1.src.rpm"/><source-package last-modified="1205184231" id="rhn-source-package-45297" source-rpm="bsh-1.3.0-9jpp.1.src.rpm"/><source-package last-modified="1205184234" id="rhn-source-package-45301" source-rpm="newt-0.52.2-10.el5.src.rpm"/><source-package last-modified="1205184252" id="rhn-source-package-45308" source-rpm="libselinux-1.33.4-5.el5.src.rpm"/><source-package last-modified="1205184253" id="rhn-source-package-45309" source-rpm="xorg-x11-font-utils-7.1-2.src.rpm"/><source-package last-modified="1205184255" id="rhn-source-package-45313" source-rpm="xorg-x11-filesystem-7.1-2.fc6.src.rpm"/><source-package last-modified="1205184261" id="rhn-source-package-45319" source-rpm="module-init-tools-3.3-0.pre3.1.37.el5.src.rpm"/><source-package last-modified="1205184262" id="rhn-source-package-45320" source-rpm="openjade-1.3.2-27.src.rpm"/><source-package last-modified="1205184262" id="rhn-source-package-45321" source-rpm="python-iniparse-0.2.3-4.el5.src.rpm"/><source-package last-modified="1205184263" id="rhn-source-package-45322" source-rpm="ncompress-4.2.4-47.src.rpm"/><source-package last-modified="1205184263" id="rhn-source-package-45323" source-rpm="xorg-x11-util-macros-1.0.2-4.fc6.src.rpm"/><source-package last-modified="1205184263" id="rhn-source-package-45324" source-rpm="hicolor-icon-theme-0.9-2.1.src.rpm"/><source-package last-modified="1205184264" id="rhn-source-package-45325" source-rpm="psutils-1.17-26.1.src.rpm"/><source-package last-modified="1205184268" id="rhn-source-package-45328" source-rpm="xorg-x11-drv-sis-0.9.1-7.1.el5.src.rpm"/><source-package last-modified="1205184277" id="rhn-source-package-45334" source-rpm="python-setuptools-0.6c5-2.el5.src.rpm"/><source-package last-modified="1205232584" id="rhn-source-package-45356" source-rpm="tomcat5-5.5.23-0jpp.3.0.3.el5_1.src.rpm"/><source-package last-modified="1205868261" id="rhn-source-package-45384" source-rpm="krb5-1.6.1-17.el5_1.1.src.rpm"/><source-package last-modified="1206398593" id="rhn-source-package-45400" source-rpm="cman-2.0.73-1.el5_1.5.src.rpm"/><source-package last-modified="1206578483" id="rhn-source-package-45401" source-rpm="firefox-1.5.0.12-14.el5_1.src.rpm"/><source-package last-modified="1207058891" id="rhn-source-package-45408" source-rpm="cups-1.2.4-11.14.el5_1.6.src.rpm"/><source-package last-modified="1207135924" id="rhn-source-package-45413" source-rpm="gnome-screensaver-2.16.1-5.el5_1.1.src.rpm"/><source-package last-modified="1207234634" id="rhn-source-package-45416" source-rpm="gnome-screensaver-2.16.1-8.el5.src.rpm"/><source-package last-modified="1207670166" id="rhn-source-package-45428" source-rpm="sos-1.7-9.2.el5.src.rpm"/><source-package last-modified="1207697341" id="rhn-source-package-45432" source-rpm="squid-2.6.STABLE6-5.el5_1.3.src.rpm"/><source-package last-modified="1208389641" id="rhn-source-package-45550" source-rpm="speex-1.0.5-4.el5_1.1.src.rpm"/><source-package last-modified="1208393492" id="rhn-source-package-45555" source-rpm="firefox-1.5.0.12-15.el5_1.src.rpm"/><source-package last-modified="1208394648" id="rhn-source-package-45558" source-rpm="ImageMagick-6.2.8.0-4.el5_1.1.src.rpm"/><source-package last-modified="1208452524" id="rhn-source-package-45574" source-rpm="poppler-0.5.4-4.4.el5_1.src.rpm"/><source-package last-modified="1210145414" id="rhn-source-package-45677" source-rpm="kernel-2.6.18-53.1.19.el5.src.rpm"/><source-package last-modified="1210341530" id="rhn-source-package-45685" source-rpm="mcstrans-0.2.7-1.el5.src.rpm"/><source-package last-modified="1210681609" id="rhn-source-package-45753" source-rpm="xen-3.0.3-41.el5_1.5.src.rpm"/><source-package last-modified="1210750482" id="rhn-source-package-45756" source-rpm="libvorbis-1.1.2-3.el5_1.2.src.rpm"/><source-package last-modified="1210934130" id="rhn-source-package-45766" source-rpm="device-mapper-multipath-0.4.7-12.el5_1.4.src.rpm"/><source-package last-modified="1211226849" id="rhn-source-package-45793" source-rpm="ipsec-tools-0.6.5-9.el5.src.rpm"/><source-package last-modified="1211226892" id="rhn-source-package-45794" source-rpm="mkinitrd-5.1.19.6-28.src.rpm"/><source-package last-modified="1211226923" id="rhn-source-package-45795" source-rpm="system-config-lvm-1.1.3-2.0.el5.src.rpm"/><source-package last-modified="1211226957" id="rhn-source-package-45796" source-rpm="metacity-2.16.0-10.el5.src.rpm"/><source-package last-modified="1211226981" id="rhn-source-package-45797" source-rpm="libnl-1.0-0.10.pre5.5.src.rpm"/><source-package last-modified="1211227043" id="rhn-source-package-45798" source-rpm="openmotif-2.3.0-0.5.el5.src.rpm"/><source-package last-modified="1211227220" id="rhn-source-package-45802" source-rpm="dbus-1.0.0-7.el5.src.rpm"/><source-package last-modified="1211227437" id="rhn-source-package-45805" source-rpm="java-1.4.2-gcj-compat-1.4.2.0-40jpp.115.src.rpm"/><source-package last-modified="1211227505" id="rhn-source-package-45807" source-rpm="redhat-release-5Server-5.2.0.4.src.rpm"/><source-package last-modified="1211230462" id="rhn-source-package-45809" source-rpm="Deployment_Guide-5.2-9.src.rpm"/><source-package last-modified="1211230589" id="rhn-source-package-45811" source-rpm="mpi-selector-1.0.0-2.el5.src.rpm"/><source-package last-modified="1211230589" id="rhn-source-package-45812" source-rpm="lam-7.1.2-14.el5.src.rpm"/><source-package last-modified="1211230589" id="rhn-source-package-45813" source-rpm="openmpi-1.2.5-5.el5.src.rpm"/><source-package last-modified="1211230623" id="rhn-source-package-45814" source-rpm="iscsi-initiator-utils-6.2.0.868-0.7.el5.src.rpm"/><source-package last-modified="1211230753" id="rhn-source-package-45815" source-rpm="tomcat5-5.5.23-0jpp.7.el5.src.rpm"/><source-package last-modified="1211230871" id="rhn-source-package-45817" source-rpm="nss-3.11.99.5-2.el5.src.rpm"/><source-package last-modified="1211230899" id="rhn-source-package-45818" source-rpm="ecryptfs-utils-41-1.el5.src.rpm"/><source-package last-modified="1211236221" id="rhn-source-package-45820" source-rpm="sysklogd-1.4.1-44.el5.src.rpm"/><source-package last-modified="1211236259" id="rhn-source-package-45821" source-rpm="cachefilesd-0.8-5.el5.src.rpm"/><source-package last-modified="1211236300" id="rhn-source-package-45822" source-rpm="openhpi-2.10.2-1.el5.src.rpm"/><source-package last-modified="1211236324" id="rhn-source-package-45823" source-rpm="irqbalance-0.55-10.el5.src.rpm"/><source-package last-modified="1211236346" id="rhn-source-package-45824" source-rpm="freeipmi-0.5.1-5.el5.src.rpm"/><source-package last-modified="1211236358" id="rhn-source-package-45825" source-rpm="xorg-x11-drv-nv-2.1.6-6.el5.src.rpm"/><source-package last-modified="1211236518" id="rhn-source-package-45827" source-rpm="openais-0.80.3-15.el5.src.rpm"/><source-package last-modified="1211236536" id="rhn-source-package-45828" source-rpm="xorg-x11-drv-i810-1.6.5-9.13.el5.src.rpm"/><source-package last-modified="1211236571" id="rhn-source-package-45829" source-rpm="nfs-utils-1.0.9-33.el5.src.rpm"/><source-package last-modified="1211238541" id="rhn-source-package-45831" source-rpm="gdm-2.16.0-46.el5.src.rpm"/><source-package last-modified="1211238551" id="rhn-source-package-45832" source-rpm="system-config-kdump-1.0.14-1.el5.src.rpm"/><source-package last-modified="1211238584" id="rhn-source-package-45833" source-rpm="openswan-2.6.12-2.el5.src.rpm"/><source-package last-modified="1211238675" id="rhn-source-package-45834" source-rpm="anaconda-11.1.2.113-1.src.rpm"/><source-package last-modified="1211238693" id="rhn-source-package-45835" source-rpm="createrepo-0.4.11-3.el5.src.rpm"/><source-package last-modified="1211238761" id="rhn-source-package-45836" source-rpm="microcode_ctl-1.17-1.47.el5.src.rpm"/><source-package last-modified="1211260138" id="rhn-source-package-45844" source-rpm="NetworkManager-0.6.4-8.el5.src.rpm"/><source-package last-modified="1211260139" id="rhn-source-package-45845" source-rpm="audit-1.6.5-9.el5.src.rpm"/><source-package last-modified="1211260140" id="rhn-source-package-45846" source-rpm="authconfig-5.3.21-3.el5.src.rpm"/><source-package last-modified="1211260141" id="rhn-source-package-45847" source-rpm="autofs-5.0.1-0.rc2.88.src.rpm"/><source-package last-modified="1211260146" id="rhn-source-package-45848" source-rpm="bind-9.3.4-6.P1.el5.src.rpm"/><source-package last-modified="1211260147" id="rhn-source-package-45849" source-rpm="cman-2.0.84-2.el5.src.rpm"/><source-package last-modified="1211260148" id="rhn-source-package-45850" source-rpm="device-mapper-multipath-0.4.7-17.el5.src.rpm"/><source-package last-modified="1211260186" id="rhn-source-package-45852" source-rpm="control-center-2.16.0-16.el5.src.rpm"/><source-package last-modified="1211260204" id="rhn-source-package-45853" source-rpm="crash-4.0-5.0.3.src.rpm"/><source-package last-modified="1211260209" id="rhn-source-package-45854" source-rpm="cups-1.2.4-11.18.el5.src.rpm"/><source-package last-modified="1211260211" id="rhn-source-package-45855" source-rpm="dapl-2.0.7-2.el5.src.rpm"/><source-package last-modified="1211260212" id="rhn-source-package-45856" source-rpm="devhelp-0.12-16.el5.src.rpm"/><source-package last-modified="1211260214" id="rhn-source-package-45857" source-rpm="dhcp-3.0.5-13.el5.src.rpm"/><source-package last-modified="1211260223" id="rhn-source-package-45859" source-rpm="dhcpv6-1.0.10-4.el5.src.rpm"/><source-package last-modified="1211260225" id="rhn-source-package-45860" source-rpm="dovecot-1.0.7-2.el5.src.rpm"/><source-package last-modified="1211260229" id="rhn-source-package-45861" source-rpm="e2fsprogs-1.39-15.el5.src.rpm"/><source-package last-modified="1211260229" id="rhn-source-package-45862" source-rpm="efax-0.9-27.2.1.src.rpm"/><source-package last-modified="1211260257" id="rhn-source-package-45864" source-rpm="file-4.17-13.src.rpm"/><source-package last-modified="1211260297" id="rhn-source-package-45865" source-rpm="firefox-3.0-0.beta5.6.el5.src.rpm"/><source-package last-modified="1211260312" id="rhn-source-package-45866" source-rpm="frysk-0.0.1.2008.03.19.rh1-1.el5.src.rpm"/><source-package last-modified="1211260350" id="rhn-source-package-45867" source-rpm="gcc-4.1.2-42.el5.src.rpm"/><source-package last-modified="1211260351" id="rhn-source-package-45868" source-rpm="gfs2-utils-0.1.44-1.el5.src.rpm"/><source-package last-modified="1211260367" id="rhn-source-package-45869" source-rpm="glibc-2.5-24.src.rpm"/><source-package last-modified="1211260370" id="rhn-source-package-45870" source-rpm="gstreamer-plugins-base-0.10.9-6.el5.src.rpm"/><source-package last-modified="1211260372" id="rhn-source-package-45871" source-rpm="hal-0.5.8.1-35.el5.src.rpm"/><source-package last-modified="1211260372" id="rhn-source-package-45872" source-rpm="hal-cups-utils-0.6.2-5.2.el5.src.rpm"/><source-package last-modified="1211260373" id="rhn-source-package-45873" source-rpm="hwdata-0.213.6-1.el5.src.rpm"/><source-package last-modified="1211260374" id="rhn-source-package-45874" source-rpm="infiniband-diags-1.3.6-1.el5.src.rpm"/><source-package last-modified="1211260434" id="rhn-source-package-45875" source-rpm="kernel-2.6.18-92.el5.src.rpm"/><source-package last-modified="1211260436" id="rhn-source-package-45876" source-rpm="kexec-tools-1.102pre-21.el5.src.rpm"/><source-package last-modified="1211260451" id="rhn-source-package-45877" source-rpm="krb5-1.6.1-25.el5.src.rpm"/><source-package last-modified="1211260452" id="rhn-source-package-45878" source-rpm="kudzu-1.2.57.1.17-1.src.rpm"/><source-package last-modified="1211260452" id="rhn-source-package-45879" source-rpm="libcxgb3-1.1.4-1.el5.src.rpm"/><source-package last-modified="1211260454" id="rhn-source-package-45880" source-rpm="libdbi-0.8.1-2.1.src.rpm"/><source-package last-modified="1211260454" id="rhn-source-package-45881" source-rpm="libdhcp-1.20-5.el5.src.rpm"/><source-package last-modified="1211260455" id="rhn-source-package-45882" source-rpm="libibcm-1.0.2-1.el5.src.rpm"/><source-package last-modified="1211260456" id="rhn-source-package-45883" source-rpm="libibcommon-1.0.8-1.el5.src.rpm"/><source-package last-modified="1211260457" id="rhn-source-package-45884" source-rpm="libibmad-1.1.6-1.el5.src.rpm"/><source-package last-modified="1211260458" id="rhn-source-package-45885" source-rpm="libibumad-1.1.7-1.el5.src.rpm"/><source-package last-modified="1211260459" id="rhn-source-package-45886" source-rpm="libibverbs-1.1.1-9.el5.src.rpm"/><source-package last-modified="1211260461" id="rhn-source-package-45888" source-rpm="libmlx4-1.0-3.el5.src.rpm"/><source-package last-modified="1211260462" id="rhn-source-package-45889" source-rpm="librdmacm-1.0.7-1.el5.src.rpm"/><source-package last-modified="1211260463" id="rhn-source-package-45890" source-rpm="libsdp-1.1.99-9.el5.src.rpm"/><source-package last-modified="1211260465" id="rhn-source-package-45891" source-rpm="libuser-0.54.7-2.el5.5.src.rpm"/><source-package last-modified="1211260469" id="rhn-source-package-45893" source-rpm="lvm2-2.02.32-4.el5.src.rpm"/><source-package last-modified="1211260470" id="rhn-source-package-45894" source-rpm="make-3.81-3.el5.src.rpm"/><source-package last-modified="1211260472" id="rhn-source-package-45895" source-rpm="mstflint-1.3-1.el5.src.rpm"/><source-package last-modified="1211260495" id="rhn-source-package-45896" source-rpm="mysql-5.0.45-7.el5.src.rpm"/><source-package last-modified="1211260500" id="rhn-source-package-45897" source-rpm="net-snmp-5.3.1-24.el5.src.rpm"/><source-package last-modified="1211260501" id="rhn-source-package-45898" source-rpm="net-tools-1.60-78.el5.src.rpm"/><source-package last-modified="1211260502" id="rhn-source-package-45899" source-rpm="nspluginwrapper-0.9.91.5-21.el5.src.rpm"/><source-package last-modified="1211260504" id="rhn-source-package-45900" source-rpm="nspr-4.7.0.99.2-1.el5.src.rpm"/><source-package last-modified="1211260505" id="rhn-source-package-45901" source-rpm="nss_ldap-253-12.el5.src.rpm"/><source-package last-modified="1211260505" id="rhn-source-package-45902" source-rpm="ofed-docs-1.3-3.el5.src.rpm"/><source-package last-modified="1211260507" id="rhn-source-package-45903" source-rpm="openCryptoki-2.2.4-21.el5.src.rpm"/><source-package last-modified="1211260507" id="rhn-source-package-45904" source-rpm="openib-1.3-3.el5.src.rpm"/><source-package last-modified="1211260740" id="rhn-source-package-45906" source-rpm="parted-1.8.1-17.el5.src.rpm"/><source-package last-modified="1211260740" id="rhn-source-package-45907" source-rpm="perftest-1.2-10.el5.src.rpm"/><source-package last-modified="1211260742" id="rhn-source-package-45909" source-rpm="qlvnictools-0.0.1-8.el5.src.rpm"/><source-package last-modified="1211260749" id="rhn-source-package-45913" source-rpm="rhpxl-0.41.1-6.el5.src.rpm"/><source-package last-modified="1211260767" id="rhn-source-package-45914" source-rpm="samba-3.0.28-0.el5.8.src.rpm"/><source-package last-modified="1211260768" id="rhn-source-package-45915" source-rpm="selinux-policy-2.4.6-137.el5.src.rpm"/><source-package last-modified="1211260769" id="rhn-source-package-45916" source-rpm="srptools-0.0.4-2.el5.src.rpm"/><source-package last-modified="1211260771" id="rhn-source-package-45917" source-rpm="setroubleshoot-2.0.5-3.el5.src.rpm"/><source-package last-modified="1211260773" id="rhn-source-package-45918" source-rpm="setroubleshoot-plugins-2.0.4-2.el5.src.rpm"/><source-package last-modified="1211260774" id="rhn-source-package-45919" source-rpm="sudo-1.6.8p12-12.el5.src.rpm"/><source-package last-modified="1211260777" id="rhn-source-package-45920" source-rpm="systemtap-0.6.2-1.el5.src.rpm"/><source-package last-modified="1211260778" id="rhn-source-package-45921" source-rpm="system-config-kickstart-2.6.19.6-1.el5.src.rpm"/><source-package last-modified="1211260779" id="rhn-source-package-45922" source-rpm="system-config-netboot-0.1.45.1-1.el5.src.rpm"/><source-package last-modified="1211260782" id="rhn-source-package-45923" source-rpm="system-config-network-1.3.99.10-2.el5.src.rpm"/><source-package last-modified="1211260783" id="rhn-source-package-45924" source-rpm="tmpwatch-2.9.7-1.1.el5.1.src.rpm"/><source-package last-modified="1211260783" id="rhn-source-package-45925" source-rpm="system-config-securitylevel-1.6.29.1-2.1.el5.src.rpm"/><source-package last-modified="1211260790" id="rhn-source-package-45926" source-rpm="tog-pegasus-2.7.0-2.el5.src.rpm"/><source-package last-modified="1211260792" id="rhn-source-package-45927" source-rpm="trousers-0.3.1-4.el5.src.rpm"/><source-package last-modified="1211260793" id="rhn-source-package-45928" source-rpm="tvflash-0.9.0-2.el5.src.rpm"/><source-package last-modified="1211260794" id="rhn-source-package-45929" source-rpm="udev-095-14.16.el5.src.rpm"/><source-package last-modified="1211260852" id="rhn-source-package-45933" source-rpm="xen-3.0.3-64.el5.src.rpm"/><source-package last-modified="1211260854" id="rhn-source-package-45934" source-rpm="yelp-2.16.0-18.el5.src.rpm"/><source-package last-modified="1211260855" id="rhn-source-package-45935" source-rpm="yum-3.2.8-9.el5.src.rpm"/><source-package last-modified="1211260857" id="rhn-source-package-45936" source-rpm="xorg-x11-drv-ati-6.6.3-3.13.el5.src.rpm"/><source-package last-modified="1211260867" id="rhn-source-package-45937" source-rpm="xorg-x11-server-1.1.1-48.41.el5.src.rpm"/><source-package last-modified="1211260868" id="rhn-source-package-45938" source-rpm="yum-utils-1.1.10-9.el5.src.rpm"/><source-package last-modified="1211260902" id="rhn-source-package-45939" source-rpm="xulrunner-1.9-0.beta5.6.el5.src.rpm"/><source-package last-modified="1211260903" id="rhn-source-package-45940" source-rpm="yum-rhn-plugin-0.5.3-6.el5.src.rpm"/><source-package last-modified="1211260906" id="rhn-source-package-45944" source-rpm="gtk-vnc-0.3.2-3.el5.src.rpm"/><source-package last-modified="1211260911" id="rhn-source-package-45949" source-rpm="pirut-1.3.28-13.el5.src.rpm"/><source-package last-modified="1211260912" id="rhn-source-package-45950" source-rpm="qperf-0.4.0-1.el5.src.rpm"/><source-package last-modified="1211260921" id="rhn-source-package-45951" source-rpm="redhat-release-notes-5Server-12.src.rpm"/><source-package last-modified="1211268671" id="rhn-source-package-45958" source-rpm="xenpv-0.1-9.el5.src.rpm"/><source-package last-modified="1211271106" id="rhn-source-package-45960" source-rpm="xen-3.0.3-41.el5_1.6.src.rpm"/><source-package last-modified="1211294723" id="rhn-source-package-45968" source-rpm="OpenIPMI-2.0.6-6.el5.src.rpm"/><source-package last-modified="1211294724" id="rhn-source-package-45969" source-rpm="alsa-utils-1.0.14-3.rc4.el5.src.rpm"/><source-package last-modified="1211294726" id="rhn-source-package-45970" source-rpm="at-spi-1.7.11-3.el5.src.rpm"/><source-package last-modified="1211294730" id="rhn-source-package-45971" source-rpm="bash-3.2-21.el5.src.rpm"/><source-package last-modified="1211294743" id="rhn-source-package-45972" source-rpm="binutils-2.17.50.0.6-6.el5.src.rpm"/><source-package last-modified="1211294745" id="rhn-source-package-45973" source-rpm="booty-0.80.4-6.src.rpm"/><source-package last-modified="1211294745" id="rhn-source-package-45974" source-rpm="coolkey-1.1.0-6.el5.src.rpm"/><source-package last-modified="1211294746" id="rhn-source-package-45975" source-rpm="cpuspeed-1.2.1-3.el5.src.rpm"/><source-package last-modified="1211294746" id="rhn-source-package-45976" source-rpm="device-mapper-1.02.24-1.el5.src.rpm"/><source-package last-modified="1211294747" id="rhn-source-package-45977" source-rpm="dmraid-1.0.0.rc13-9.el5.src.rpm"/><source-package last-modified="1211294811" id="rhn-source-package-45978" source-rpm="gnutls-1.4.1-3.el5_1.src.rpm"/><source-package last-modified="1211294826" id="rhn-source-package-45979" source-rpm="eclipse-3.2.1-19.el5.src.rpm"/><source-package last-modified="1211294859" id="rhn-source-package-45980" source-rpm="esc-1.0.0-33.el5.src.rpm"/><source-package last-modified="1211294875" id="rhn-source-package-45982" source-rpm="gdb-6.5-37.el5.src.rpm"/><source-package last-modified="1211294878" id="rhn-source-package-45983" source-rpm="gnome-power-manager-2.16.0-9.el5.src.rpm"/><source-package last-modified="1211294879" id="rhn-source-package-45984" source-rpm="gnome-python2-extras-2.14.2-6.el5.src.rpm"/><source-package last-modified="1211294880" id="rhn-source-package-45985" source-rpm="grub-0.97-13.2.src.rpm"/><source-package last-modified="1211294882" id="rhn-source-package-45986" source-rpm="gtkhtml3-3.16.3-1.el5.src.rpm"/><source-package last-modified="1211294886" id="rhn-source-package-45988" source-rpm="ibsim-0.4-2.el5.src.rpm"/><source-package last-modified="1211294890" id="rhn-source-package-45989" source-rpm="ibutils-1.2-3.el5.src.rpm"/><source-package last-modified="1211294892" id="rhn-source-package-45990" source-rpm="initscripts-8.45.19.EL-1.src.rpm"/><source-package last-modified="1211294893" id="rhn-source-package-45991" source-rpm="libmthca-1.0.4-9.el5.src.rpm"/><source-package last-modified="1211294894" id="rhn-source-package-45992" source-rpm="libnes-0.5-2.el5.src.rpm"/><source-package last-modified="1211294895" id="rhn-source-package-45993" source-rpm="mdadm-2.6.4-1.el5.src.rpm"/><source-package last-modified="1211294897" id="rhn-source-package-45994" source-rpm="opensm-3.1.8-1.el5.src.rpm"/><source-package last-modified="1211294900" id="rhn-source-package-45995" source-rpm="openssl-0.9.8b-10.el5.src.rpm"/><source-package last-modified="1211294901" id="rhn-source-package-45996" source-rpm="oprofile-0.9.3-16.el5.src.rpm"/><source-package last-modified="1211294902" id="rhn-source-package-45997" source-rpm="pexpect-2.3-1.el5.src.rpm"/><source-package last-modified="1211294903" id="rhn-source-package-45998" source-rpm="policycoreutils-1.33.12-14.el5.src.rpm"/><source-package last-modified="1211294904" id="rhn-source-package-45999" source-rpm="rsyslog-2.0.0-11.el5.src.rpm"/><source-package last-modified="1211294916" id="rhn-source-package-46001" source-rpm="system-config-language-1.1.18-2.el5.src.rpm"/><source-package last-modified="1211294918" id="rhn-source-package-46002" source-rpm="totem-2.16.7-4.el5.src.rpm"/><source-package last-modified="1211294919" id="rhn-source-package-46003" source-rpm="tpm-tools-1.3.1-1.el5.src.rpm"/><source-package last-modified="1211294920" id="rhn-source-package-46004" source-rpm="udftools-1.0.0b3-0.1.el5.src.rpm"/><source-package last-modified="1211294921" id="rhn-source-package-46005" source-rpm="usermode-1.88-3.el5.1.src.rpm"/><source-package last-modified="1211294924" id="rhn-source-package-46006" source-rpm="util-linux-2.13-0.47.el5.src.rpm"/><source-package last-modified="1211294924" id="rhn-source-package-46007" source-rpm="wdaemon-0.13-1.src.rpm"/><source-package last-modified="1211294926" id="rhn-source-package-46008" source-rpm="wpa_supplicant-0.4.8-10.2.el5.src.rpm"/><source-package last-modified="1211294927" id="rhn-source-package-46009" source-rpm="yum-updatesd-0.9-2.el5.src.rpm"/><source-package last-modified="1211294928" id="rhn-source-package-46010" source-rpm="xorg-x11-drv-mga-1.4.2-7.el5.src.rpm"/><source-package last-modified="1211294928" id="rhn-source-package-46011" source-rpm="yum-metadata-parser-1.1.2-2.el5.src.rpm"/><source-package last-modified="1211294929" id="rhn-source-package-46013" source-rpm="libhugetlbfs-1.2-5.el5.src.rpm"/><source-package last-modified="1211354109" id="rhn-source-package-46019" source-rpm="libxslt-1.1.17-2.el5_1.1.src.rpm"/><source-package last-modified="1211382848" id="rhn-source-package-46024" source-rpm="gdb-6.5-37.el5_2.1.src.rpm"/><source-package last-modified="1211383741" id="rhn-source-package-46026" source-rpm="xen-3.0.3-64.el5_2.1.src.rpm"/><source-package last-modified="1211385351" id="rhn-source-package-46027" source-rpm="redhat-release-notes-5Server-15.src.rpm"/><source-package last-modified="1211386924" id="rhn-source-package-46029" source-rpm="yum-rhn-plugin-0.5.3-6.el5_2.6.src.rpm"/><source-package last-modified="1211387661" id="rhn-source-package-46030" source-rpm="yum-3.2.8-9.el5_2.1.src.rpm"/><source-package last-modified="1211964965" id="rhn-source-package-46062" source-rpm="tzdata-2008b-3.el5.src.rpm"/><source-package last-modified="1211973546" id="rhn-source-package-46070" source-rpm="samba-3.0.28-1.el5_2.1.src.rpm"/><source-package last-modified="1212589109" id="rhn-source-package-46299" source-rpm="cups-1.2.4-11.18.el5_2.1.src.rpm"/><source-package last-modified="1212659133" id="rhn-source-package-46302" source-rpm="kernel-2.6.18-92.1.1.el5.src.rpm"/><source-package last-modified="1212670179" id="rhn-source-package-46304" source-rpm="ipsec-tools-0.6.5-9.el5_2.1.src.rpm"/><source-package last-modified="1213012868" id="rhn-source-package-46311" source-rpm="dhcpv6-1.0.10-4.el5_2.2.src.rpm"/><source-package last-modified="1213105959" id="rhn-source-package-46330" source-rpm="net-snmp-5.3.1-24.el5_2.1.src.rpm"/><source-package last-modified="1213169390" id="rhn-source-package-46345" source-rpm="openswan-2.6.14-1.el5_2.1.src.rpm"/><source-package last-modified="1213210291" id="rhn-source-package-46352" source-rpm="perl-5.8.8-10.el5_2.3.src.rpm"/><source-package last-modified="1213212743" id="rhn-source-package-46354" source-rpm="xorg-x11-server-1.1.1-48.41.el5_2.1.src.rpm"/><source-package last-modified="1213261305" id="rhn-source-package-46390" source-rpm="ghostscript-8.15.2-9.3.el5.src.rpm"/><source-package last-modified="1213266148" id="rhn-source-package-46392" source-rpm="gdb-6.5-37.el5_2.2.src.rpm"/><source-package last-modified="1213969756" id="rhn-source-package-46464" source-rpm="freetype-2.2.1-20.el5_2.src.rpm"/><source-package last-modified="1214298543" id="rhn-source-package-46470" source-rpm="sblim-1-31.el5_2.1.src.rpm"/><source-package last-modified="1214402850" id="rhn-source-package-46493" source-rpm="Deployment_Guide-5.2-11.src.rpm"/><source-package last-modified="1214408093" id="rhn-source-package-46495" source-rpm="kernel-2.6.18-92.1.6.el5.src.rpm"/><source-package last-modified="1214589715" id="rhn-source-package-46532" source-rpm="gfs2-utils-0.1.44-1.el5_2.1.src.rpm"/><source-package last-modified="1215002041" id="rhn-source-package-46538" source-rpm="yelp-2.16.0-19.el5.src.rpm"/><source-package last-modified="1215002042" id="rhn-source-package-46539" source-rpm="xulrunner-1.9-1.el5.src.rpm"/><source-package last-modified="1215002042" id="rhn-source-package-46540" source-rpm="devhelp-0.12-17.el5.src.rpm"/><source-package last-modified="1215002042" id="rhn-source-package-46541" source-rpm="firefox-3.0-2.el5.src.rpm"/><source-package last-modified="1215022644" id="rhn-source-package-46567" source-rpm="nss-3.12.0.3-1.el5.src.rpm"/><source-package last-modified="1215022644" id="rhn-source-package-46568" source-rpm="nspr-4.7.1-1.el5.src.rpm"/><source-package last-modified="1215539655" id="rhn-source-package-46621" source-rpm="bind-9.3.4-6.0.1.P1.el5_2.src.rpm"/><source-package last-modified="1215539655" id="rhn-source-package-46622" source-rpm="selinux-policy-2.4.6-137.1.el5_2.src.rpm"/><source-package last-modified="1215612901" id="rhn-source-package-46628" source-rpm="openldap-2.3.27-8.el5_2.4.src.rpm"/><source-package last-modified="1215719366" id="rhn-source-package-46633" source-rpm="bind-9.3.4-6.0.2.P1.el5_2.src.rpm"/><source-package last-modified="1215766216" id="rhn-source-package-46639" source-rpm="libsdp-1.1.99-10.el5_2.src.rpm"/><source-package last-modified="1215766216" id="rhn-source-package-46640" source-rpm="openib-mstflint-1.3-1.el5_2.src.rpm"/><source-package last-modified="1215766216" id="rhn-source-package-46641" source-rpm="openib-perftest-1.2-11.el5_2.src.rpm"/><source-package last-modified="1215766216" id="rhn-source-package-46642" source-rpm="openib-tvflash-0.9.2-8.el5_2.src.rpm"/><source-package last-modified="1216041282" id="rhn-source-package-46670" source-rpm="ruby-1.8.5-5.el5_2.3.src.rpm"/><source-package last-modified="1216043252" id="rhn-source-package-46674" source-rpm="bluez-utils-3.7-2.2.src.rpm"/><source-package last-modified="1216043252" id="rhn-source-package-46675" source-rpm="bluez-libs-3.7-1.1.src.rpm"/><source-package last-modified="1216200464" id="rhn-source-package-46707" source-rpm="php-5.1.6-20.el5_2.1.src.rpm"/><source-package last-modified="1216212868" id="rhn-source-package-46716" source-rpm="devhelp-0.12-18.el5.src.rpm"/><source-package last-modified="1216212868" id="rhn-source-package-46717" source-rpm="xulrunner-1.9.0.1-1.el5.src.rpm"/><source-package last-modified="1216212868" id="rhn-source-package-46718" source-rpm="yelp-2.16.0-20.el5.src.rpm"/><source-package last-modified="1216212868" id="rhn-source-package-46719" source-rpm="firefox-3.0.1-1.el5.src.rpm"/><source-package last-modified="1216250700" id="rhn-source-package-46725" source-rpm="nspluginwrapper-0.9.91.5-22.el5.src.rpm"/><source-package last-modified="1216919509" id="rhn-source-package-47332" source-rpm="rdesktop-1.4.1-6.src.rpm"/><source-package last-modified="1217260790" id="rhn-source-package-47370" source-rpm="nss_ldap-253-13.el5_2.1.src.rpm"/><source-package last-modified="1217517944" id="rhn-source-package-47401" source-rpm="libxslt-1.1.17-2.el5_2.2.src.rpm"/><source-package last-modified="1217518293" id="rhn-source-package-47403" source-rpm="nfs-utils-1.0.9-35z.el5_2.src.rpm"/><source-package last-modified="1217872472" id="rhn-source-package-47429" source-rpm="kernel-2.6.18-92.1.10.el5.src.rpm"/><source-package last-modified="1218016252" id="rhn-source-package-47438" source-rpm="strace-4.5.16-1.el5_2.2.src.rpm"/><source-package last-modified="1218439751" id="rhn-source-package-47452" source-rpm="kexec-tools-1.102pre-21.el5_2.2.src.rpm"/><source-package last-modified="1218473987" id="rhn-source-package-47456" source-rpm="dnsmasq-2.45-1.el5_2.1.src.rpm"/><source-package last-modified="1218572058" id="rhn-source-package-47467" source-rpm="hplip-1.6.7-4.1.el5_2.4.src.rpm"/><source-package last-modified="1218719167" id="rhn-source-package-47480" source-rpm="yum-rhn-plugin-0.5.3-12.el5_2.9.src.rpm"/><source-package last-modified="1218741244" id="rhn-source-package-47484" source-rpm="postfix-2.3.3-2.1.el5_2.src.rpm"/><source-package last-modified="1219333859" id="rhn-source-package-47500" source-rpm="libxml2-2.6.26-2.1.2.3.src.rpm"/><source-package last-modified="1219406231" id="rhn-source-package-47505" source-rpm="openssh-4.3p2-26.el5_2.1.src.rpm"/><source-package last-modified="1219738263" id="rhn-source-package-47514" source-rpm="libxml2-2.6.26-2.1.2.4.src.rpm"/><source-package last-modified="1219777490" id="rhn-source-package-47523" source-rpm="ipsec-tools-0.6.5-9.el5_2.3.src.rpm"/><source-package last-modified="1219857059" id="rhn-source-package-47539" source-rpm="tomcat5-5.5.23-0jpp.7.el5_2.1.src.rpm"/><source-package last-modified="1219961389" id="rhn-source-package-47557" source-rpm="libtiff-3.8.2-7.el5_2.2.src.rpm"/><source-package last-modified="1220043919" id="rhn-source-package-47564" source-rpm="tzdata-2008e-1.el5.src.rpm"/><source-package last-modified="1220342022" id="rhn-source-package-47567" source-rpm="sos-1.7-9.2.el5_2.2.src.rpm"/><source-package last-modified="1220375950" id="rhn-source-package-47568" source-rpm="libxml2-2.6.26-2.1.2.5.src.rpm"/><source-package last-modified="1221139827" id="rhn-source-package-47665" source-rpm="libxml2-2.6.26-2.1.2.6.src.rpm"/><source-package last-modified="1221568092" id="rhn-source-package-47703" source-rpm="bzip2-1.0.3-4.el5_2.src.rpm"/><source-package last-modified="1221666493" id="rhn-source-package-47724" source-rpm="perl-5.8.8-15.el5_2.1.src.rpm"/><source-package last-modified="1222219744" id="rhn-source-package-47832" source-rpm="firefox-3.0.2-3.el5.src.rpm"/><source-package last-modified="1222219744" id="rhn-source-package-47834" source-rpm="nss-3.12.1.1-1.el5.src.rpm"/><source-package last-modified="1222219744" id="rhn-source-package-47835" source-rpm="devhelp-0.12-19.el5.src.rpm"/><source-package last-modified="1222219744" id="rhn-source-package-47836" source-rpm="yelp-2.16.0-21.el5.src.rpm"/><source-package last-modified="1222219744" id="rhn-source-package-47837" source-rpm="xulrunner-1.9.0.2-5.el5.src.rpm"/><source-package last-modified="1222280505" id="rhn-source-package-47850" source-rpm="kernel-2.6.18-92.1.13.el5.src.rpm"/><source-package last-modified="1222371764" id="rhn-source-package-47864" source-rpm="cman-2.0.84-2.el5_2.1.src.rpm"/><source-package last-modified="1222771381" id="rhn-source-package-47912" source-rpm="initscripts-8.45.19.1.EL-1.src.rpm"/><source-package last-modified="1222873571" id="rhn-source-package-47919" source-rpm="xen-3.0.3-64.el5_2.3.src.rpm"/><source-package last-modified="1222873605" id="rhn-source-package-47920" source-rpm="wireshark-1.0.3-4.el5_2.src.rpm"/><source-package last-modified="1222944609" id="rhn-source-package-47926" source-rpm="dhcpv6-1.0.10-4.el5_2.3.src.rpm"/><source-package last-modified="1222951063" id="rhn-source-package-47927" source-rpm="krb5-1.6.1-25.el5_2.1.src.rpm"/><source-package last-modified="1222955826" id="rhn-source-package-47928" source-rpm="pam_krb5-2.2.14-1.el5_2.1.src.rpm"/><source-package last-modified="1223470078" id="rhn-source-package-47964" source-rpm="tzdata-2008f-3.el5.src.rpm"/><source-package last-modified="1223623400" id="rhn-source-package-47983" source-rpm="cups-1.2.4-11.18.el5_2.2.src.rpm"/><source-package last-modified="1223912332" id="rhn-source-package-47993" source-rpm="libdhcp-1.20-5.el5_2.1.src.rpm"/><source-package last-modified="1224058135" id="rhn-source-package-48108" source-rpm="OpenIPMI-2.0.6-6.el5_2.2.src.rpm"/><source-package last-modified="1224599859" id="rhn-source-package-48134" source-rpm="ruby-1.8.5-5.el5_2.5.src.rpm"/><source-package last-modified="1224601649" id="rhn-source-package-48142" source-rpm="ed-0.2-39.el5_2.src.rpm"/><source-package last-modified="1225126270" id="rhn-source-package-48193" source-rpm="lynx-2.8.5-28.1.el5_2.1.src.rpm"/><source-package last-modified="1225722984" id="rhn-source-package-48447" source-rpm="net-snmp-5.3.1-24.el5_2.2.src.rpm"/><source-package last-modified="1225792914" id="rhn-source-package-48451" source-rpm="kernel-2.6.18-92.1.17.el5.src.rpm"/><source-package last-modified="1225826680" id="rhn-source-package-48452" source-rpm="systemtap-0.6.2-1.el5_2.2.src.rpm"/><source-package last-modified="1225888921" id="rhn-source-package-48462" source-rpm="tzdata-2008i-1.el5.src.rpm"/><source-package last-modified="1225907248" id="rhn-source-package-48464" source-rpm="lvm2-2.02.32-4.el5_2.1.src.rpm"/><source-package last-modified="1225909972" id="rhn-source-package-48466" source-rpm="dmraid-1.0.0.rc13-14.el5_2.1.src.rpm"/><source-package last-modified="1226426860" id="rhn-source-package-48529" source-rpm="httpd-2.2.3-11.el5_2.4.src.rpm"/><source-package last-modified="1226427696" id="rhn-source-package-48530" source-rpm="gnutls-1.4.1-3.el5_2.1.src.rpm"/><source-package last-modified="1226481673" id="rhn-source-package-48540" source-rpm="kernel-2.6.18-92.1.18.el5.src.rpm"/><source-package last-modified="1226541211" id="rhn-source-package-48552" source-rpm="yelp-2.16.0-22.el5.src.rpm"/><source-package last-modified="1226541211" id="rhn-source-package-48553" source-rpm="firefox-3.0.4-1.el5.src.rpm"/><source-package last-modified="1226541211" id="rhn-source-package-48554" source-rpm="nss-3.12.1.1-3.el5.src.rpm"/><source-package last-modified="1226541211" id="rhn-source-package-48555" source-rpm="devhelp-0.12-20.el5.src.rpm"/><source-package last-modified="1226541211" id="rhn-source-package-48556" source-rpm="xulrunner-1.9.0.4-1.el5.src.rpm"/><source-package last-modified="1226937458" id="rhn-source-package-48563" source-rpm="libxml2-2.6.26-2.1.2.7.src.rpm"/><source-package last-modified="1227602325" id="rhn-source-package-48598" source-rpm="vim-7.0.109-4.el5_2.4z.src.rpm"/><source-package last-modified="1227603768" id="rhn-source-package-48602" source-rpm="tog-pegasus-2.7.0-2.el5_2.1.src.rpm"/><source-package last-modified="1227605042" id="rhn-source-package-48603" source-rpm="dmraid-1.0.0.rc13-15.el5_2.1.src.rpm"/><source-package last-modified="1227646398" id="rhn-source-package-48605" source-rpm="cman-2.0.84-2.el5_2.2.src.rpm"/><source-package last-modified="1228131828" id="rhn-source-package-48607" source-rpm="evolution-data-server-1.12.3-6.el5_2.3.src.rpm"/><source-package last-modified="1228236988" id="rhn-source-package-48610" source-rpm="glibc-2.5-24.el5_2.2.src.rpm"/><source-package last-modified="1228405398" id="rhn-source-package-48633" source-rpm="ruby-1.8.5-5.el5_2.6.src.rpm"/><source-package last-modified="1228941420" id="rhn-source-package-48662" source-rpm="cman-2.0.84-2.el5_2.3.src.rpm"/><source-package last-modified="1228992862" id="rhn-source-package-48663" source-rpm="autofs-5.0.1-0.rc2.88.el5_2.1.src.rpm"/><source-package last-modified="1229345375" id="rhn-source-package-48672" source-rpm="enscript-1.6.4-4.1.1.el5_2.src.rpm"/><source-package last-modified="1229347397" id="rhn-source-package-48676" source-rpm="cups-1.2.4-11.18.el5_2.3.src.rpm"/><source-package last-modified="1229412119" id="rhn-source-package-48680" source-rpm="kernel-2.6.18-92.1.22.el5.src.rpm"/><source-package last-modified="1229475848" id="rhn-source-package-48686" source-rpm="nss-3.12.2.0-2.el5.src.rpm"/><source-package last-modified="1229475848" id="rhn-source-package-48687" source-rpm="nspr-4.7.3-2.el5.src.rpm"/><source-package last-modified="1229475848" id="rhn-source-package-48688" source-rpm="xulrunner-1.9.0.5-1.el5_2.src.rpm"/><source-package last-modified="1229475848" id="rhn-source-package-48690" source-rpm="firefox-3.0.5-1.el5_2.src.rpm"/><source-package last-modified="1231324322" id="rhn-source-package-48766" source-rpm="xen-3.0.3-64.el5_2.9.src.rpm"/><source-package last-modified="1231325528" id="rhn-source-package-48772" source-rpm="xterm-215-5.el5_2.2.src.rpm"/><source-package last-modified="1231333540" id="rhn-source-package-48776" source-rpm="openssl097a-0.9.7a-9.el5_2.1.src.rpm"/><source-package last-modified="1231333540" id="rhn-source-package-48782" source-rpm="openssl-0.9.8b-10.el5_2.1.src.rpm"/><source-package last-modified="1231334901" id="rhn-source-package-48783" source-rpm="dbus-1.0.0-7.el5_2.1.src.rpm"/><source-package last-modified="1231335395" id="rhn-source-package-48784" source-rpm="lcms-1.15-1.2.2.el5_2.2.src.rpm"/><source-package last-modified="1231438002" id="rhn-source-package-48793" source-rpm="bind-9.3.4-6.0.3.P1.el5_2.src.rpm"/><source-package last-modified="1231750545" id="rhn-source-package-48803" source-rpm="krb5-1.6.1-25.el5_2.2.src.rpm"/><source-package last-modified="1231769161" id="rhn-source-package-48804" source-rpm="squirrelmail-1.4.8-5.el5_2.2.src.rpm"/><source-package last-modified="1231769191" id="rhn-source-package-48807" source-rpm="avahi-0.6.16-1.el5_2.1.src.rpm"/><source-package last-modified="1231970739" id="rhn-source-package-48833" source-rpm="xterm-215-8.el5.src.rpm"/><source-package last-modified="1232398062" id="rhn-source-package-48852" source-rpm="rhnlib-2.2.6-2.el5.src.rpm"/><source-package last-modified="1232398112" id="rhn-source-package-48853" source-rpm="php-5.1.6-23.el5.src.rpm"/><source-package last-modified="1232398135" id="rhn-source-package-48855" source-rpm="dosfstools-2.11-7.el5.src.rpm"/><source-package last-modified="1232398809" id="rhn-source-package-48856" source-rpm="squirrelmail-1.4.8-5.el5_2.3.src.rpm"/><source-package last-modified="1232399255" id="rhn-source-package-48860" source-rpm="libutempter-1.1.4-4.el5.src.rpm"/><source-package last-modified="1232399314" id="rhn-source-package-48861" source-rpm="unzip-5.52-3.el5.src.rpm"/><source-package last-modified="1232399524" id="rhn-source-package-48862" source-rpm="audit-1.7.7-6.el5.src.rpm"/><source-package last-modified="1232399603" id="rhn-source-package-48863" source-rpm="pykickstart-0.43.3-1.el5.src.rpm"/><source-package last-modified="1232399685" id="rhn-source-package-48865" source-rpm="ypserv-2.19-5.el5.src.rpm"/><source-package last-modified="1232399741" id="rhn-source-package-48867" source-rpm="iscsi-initiator-utils-6.2.0.868-0.18.el5.src.rpm"/><source-package last-modified="1232399782" id="rhn-source-package-48868" source-rpm="initscripts-8.45.25-1.el5.src.rpm"/><source-package last-modified="1232399899" id="rhn-source-package-48870" source-rpm="neon-0.25.5-10.el5.src.rpm"/><source-package last-modified="1232399931" id="rhn-source-package-48871" source-rpm="libcxgb3-1.2.2-1.el5.src.rpm"/><source-package last-modified="1232399968" id="rhn-source-package-48872" source-rpm="diffstat-1.41-1.2.3.el5.src.rpm"/><source-package last-modified="1232400032" id="rhn-source-package-48873" source-rpm="gcc43-4.3.2-7.el5.src.rpm"/><source-package last-modified="1232400170" id="rhn-source-package-48876" source-rpm="pm-utils-0.99.3-10.el5.src.rpm"/><source-package last-modified="1232400278" id="rhn-source-package-48877" source-rpm="yum-utils-1.1.16-13.el5.src.rpm"/><source-package last-modified="1232400292" id="rhn-source-package-48878" source-rpm="paps-0.6.6-18.el5.src.rpm"/><source-package last-modified="1232400343" id="rhn-source-package-48879" source-rpm="smartmontools-5.38-2.el5.src.rpm"/><source-package last-modified="1232400350" id="rhn-source-package-48880" source-rpm="ksh-20080202-2.el5.src.rpm"/><source-package last-modified="1232400359" id="rhn-source-package-48881" source-rpm="bind-9.3.4-10.P1.el5.src.rpm"/><source-package last-modified="1232400525" id="rhn-source-package-48883" source-rpm="ppp-2.4.4-2.el5.src.rpm"/><source-package last-modified="1232400571" id="rhn-source-package-48884" source-rpm="rdate-1.4-8.el5.src.rpm"/><source-package last-modified="1232400580" id="rhn-source-package-48885" source-rpm="scim-bridge-0.4.5-8.el5.src.rpm"/><source-package last-modified="1232400664" id="rhn-source-package-48886" source-rpm="gnuplot-4.0.0-14.el5.src.rpm"/><source-package last-modified="1232400782" id="rhn-source-package-48887" source-rpm="mesa-6.5.1-7.7.el5.src.rpm"/><source-package last-modified="1232400788" id="rhn-source-package-48888" source-rpm="dovecot-1.0.7-7.el5.src.rpm"/><source-package last-modified="1232400789" id="rhn-source-package-48889" source-rpm="cryptsetup-luks-1.0.3-4.el5.src.rpm"/><source-package last-modified="1232400790" id="rhn-source-package-48890" source-rpm="xorg-x11-drv-mga-1.4.2-10.el5.src.rpm"/><source-package last-modified="1232400808" id="rhn-source-package-48891" source-rpm="kexec-tools-1.102pre-56.el5.src.rpm"/><source-package last-modified="1232400918" id="rhn-source-package-48892" source-rpm="vnc-4.1.2-14.el5.src.rpm"/><source-package last-modified="1232401045" id="rhn-source-package-48894" source-rpm="kdebindings-3.5.4-6.el5.src.rpm"/><source-package last-modified="1232401068" id="rhn-source-package-48895" source-rpm="iputils-20020927-45.el5.src.rpm"/><source-package last-modified="1232401090" id="rhn-source-package-48896" source-rpm="rhn-client-tools-0.4.19-17.el5.src.rpm"/><source-package last-modified="1232401095" id="rhn-source-package-48898" source-rpm="dapl-2.0.13-4.el5.src.rpm"/><source-package last-modified="1232401103" id="rhn-source-package-48899" source-rpm="e4fsprogs-1.41.1-2.el5.src.rpm"/><source-package last-modified="1232401125" id="rhn-source-package-48900" source-rpm="vixie-cron-4.1-76.el5.src.rpm"/><source-package last-modified="1232401129" id="rhn-source-package-48901" source-rpm="gstreamer-plugins-good-0.10.9-1.el5.src.rpm"/><source-package last-modified="1232401130" id="rhn-source-package-48902" source-rpm="m2crypto-0.16-6.el5.3.src.rpm"/><source-package last-modified="1232401200" id="rhn-source-package-48903" source-rpm="usermode-1.88-3.el5.2.src.rpm"/><source-package last-modified="1232401226" id="rhn-source-package-48904" source-rpm="man-pages-2.39-12.el5.src.rpm"/><source-package last-modified="1232401234" id="rhn-source-package-48905" source-rpm="libibcommon-1.1.1-1.el5.src.rpm"/><source-package last-modified="1232401284" id="rhn-source-package-48906" source-rpm="binutils-2.17.50.0.6-9.el5.src.rpm"/><source-package last-modified="1232401316" id="rhn-source-package-48907" source-rpm="nfs-utils-1.0.9-40.el5.src.rpm"/><source-package last-modified="1232401321" id="rhn-source-package-48908" source-rpm="lvm2-2.02.40-6.el5.src.rpm"/><source-package last-modified="1232401350" id="rhn-source-package-48909" source-rpm="procps-3.2.7-11.1.el5.src.rpm"/><source-package last-modified="1232401355" id="rhn-source-package-48910" source-rpm="bash-3.2-24.el5.src.rpm"/><source-package last-modified="1232401405" id="rhn-source-package-48912" source-rpm="tcsh-6.14-14.el5.src.rpm"/><source-package last-modified="1232401466" id="rhn-source-package-48913" source-rpm="libhugetlbfs-1.3-3.el5.src.rpm"/><source-package last-modified="1232401545" id="rhn-source-package-48916" source-rpm="ypbind-1.19-11.el5.src.rpm"/><source-package last-modified="1232401658" id="rhn-source-package-48917" source-rpm="nss_ldap-253-17.el5.src.rpm"/><source-package last-modified="1232401660" id="rhn-source-package-48918" source-rpm="module-init-tools-3.3-0.pre3.1.42.el5.src.rpm"/><source-package last-modified="1232401737" id="rhn-source-package-48919" source-rpm="openssh-4.3p2-29.el5.src.rpm"/><source-package last-modified="1232401792" id="rhn-source-package-48920" source-rpm="freeradius-1.1.3-1.4.el5.src.rpm"/><source-package last-modified="1232401800" id="rhn-source-package-48921" source-rpm="edac-utils-0.9-6.el5.src.rpm"/><source-package last-modified="1232401814" id="rhn-source-package-48922" source-rpm="openmotif-2.3.1-2.el5.src.rpm"/><source-package last-modified="1232401844" id="rhn-source-package-48923" source-rpm="man-pages-ja-20060815-9.el5.src.rpm"/><source-package last-modified="1232401900" id="rhn-source-package-48924" source-rpm="libdhcp-1.20-6.el5.src.rpm"/><source-package last-modified="1232402028" id="rhn-source-package-48926" source-rpm="pam-0.99.6.2-4.el5.src.rpm"/><source-package last-modified="1232402043" id="rhn-source-package-48927" source-rpm="python-2.4.3-24.el5.src.rpm"/><source-package last-modified="1232402046" id="rhn-source-package-48928" source-rpm="redhat-rpm-config-8.0.45-29.el5.src.rpm"/><source-package last-modified="1232402058" id="rhn-source-package-48929" source-rpm="mlocate-0.15-1.el5.1.src.rpm"/><source-package last-modified="1232402083" id="rhn-source-package-48930" source-rpm="device-mapper-multipath-0.4.7-23.el5.src.rpm"/><source-package last-modified="1232402098" id="rhn-source-package-48931" source-rpm="python-pyblock-0.26-3.el5.src.rpm"/><source-package last-modified="1232402325" id="rhn-source-package-48932" source-rpm="quota-3.13-1.2.5.el5.src.rpm"/><source-package last-modified="1232402326" id="rhn-source-package-48933" source-rpm="libibmad-1.2.1-1.el5.src.rpm"/><source-package last-modified="1232402333" id="rhn-source-package-48934" source-rpm="words-3.0-9.1.src.rpm"/><source-package last-modified="1232402451" id="rhn-source-package-48935" source-rpm="ntp-4.2.2p1-9.el5.src.rpm"/><source-package last-modified="1232402456" id="rhn-source-package-48936" source-rpm="ibutils-1.2-9.el5.src.rpm"/><source-package last-modified="1232402515" id="rhn-source-package-48937" source-rpm="desktop-printing-0.19-20.2.el5.src.rpm"/><source-package last-modified="1232402551" id="rhn-source-package-48938" source-rpm="ORBit2-2.14.3-5.el5.src.rpm"/><source-package last-modified="1232402568" id="rhn-source-package-48939" source-rpm="strace-4.5.18-2.el5.src.rpm"/><source-package last-modified="1232402607" id="rhn-source-package-48940" source-rpm="cman-2.0.98-1.el5.src.rpm"/><source-package last-modified="1232402680" id="rhn-source-package-48942" source-rpm="xorg-x11-drv-mutouch-1.1.0-3.src.rpm"/><source-package last-modified="1232402694" id="rhn-source-package-48943" source-rpm="freeipmi-0.5.1-6.el5.src.rpm"/><source-package last-modified="1232402809" id="rhn-source-package-48944" source-rpm="file-4.17-15.src.rpm"/><source-package last-modified="1232402820" id="rhn-source-package-48945" source-rpm="zip-2.31-2.el5.src.rpm"/><source-package last-modified="1232402823" id="rhn-source-package-48948" source-rpm="acpid-1.0.4-7.el5.src.rpm"/><source-package last-modified="1232402862" id="rhn-source-package-48949" source-rpm="mvapich-1.1.0-0.2931.3.el5.src.rpm"/><source-package last-modified="1232402939" id="rhn-source-package-48951" source-rpm="ktune-0.2-3.el5.src.rpm"/><source-package last-modified="1232402952" id="rhn-source-package-48952" source-rpm="rhpxl-0.41.1-7.el5.src.rpm"/><source-package last-modified="1232402959" id="rhn-source-package-48953" source-rpm="perl-DBD-MySQL-3.0007-2.el5.src.rpm"/><source-package last-modified="1232402963" id="rhn-source-package-48954" source-rpm="python-urlgrabber-3.1.0-5.el5.src.rpm"/><source-package last-modified="1232402965" id="rhn-source-package-48955" source-rpm="dbus-1.1.2-12.el5.src.rpm"/><source-package last-modified="1232403002" id="rhn-source-package-48956" source-rpm="mpitests-3.0-2.el5.src.rpm"/><source-package last-modified="1232403020" id="rhn-source-package-48957" source-rpm="traceroute-2.0.1-5.el5.src.rpm"/><source-package last-modified="1232403078" id="rhn-source-package-48959" source-rpm="hwdata-0.213.11-1.el5.src.rpm"/><source-package last-modified="1232403091" id="rhn-source-package-48960" source-rpm="pkinit-nss-0.7.6-1.el5.src.rpm"/><source-package last-modified="1232403093" id="rhn-source-package-48961" source-rpm="iproute-2.6.18-9.el5.src.rpm"/><source-package last-modified="1232403110" id="rhn-source-package-48962" source-rpm="parted-1.8.1-23.el5.src.rpm"/><source-package last-modified="1232403138" id="rhn-source-package-48963" source-rpm="anaconda-11.1.2.168-1.src.rpm"/><source-package last-modified="1232403164" id="rhn-source-package-48964" source-rpm="xorg-x11-drv-ati-6.6.3-3.22.el5.src.rpm"/><source-package last-modified="1232403218" id="rhn-source-package-48965" source-rpm="samba-3.0.33-3.7.el5.src.rpm"/><source-package last-modified="1232403220" id="rhn-source-package-48966" source-rpm="ofed-docs-1.3.2-0.20080728.0355.1.el5.src.rpm"/><source-package last-modified="1232403232" id="rhn-source-package-48968" source-rpm="elfutils-0.137-3.el5.src.rpm"/><source-package last-modified="1232403241" id="rhn-source-package-48969" source-rpm="dhcp-3.0.5-18.el5.src.rpm"/><source-package last-modified="1232403285" id="rhn-source-package-48970" source-rpm="gdb-6.8-27.el5.src.rpm"/><source-package last-modified="1232403299" id="rhn-source-package-48971" source-rpm="libibumad-1.2.1-1.el5.src.rpm"/><source-package last-modified="1232403336" id="rhn-source-package-48973" source-rpm="mod_perl-2.0.4-6.el5.src.rpm"/><source-package last-modified="1232403346" id="rhn-source-package-48974" source-rpm="gstreamer-plugins-base-0.10.20-3.el5.src.rpm"/><source-package last-modified="1232403377" id="rhn-source-package-48975" source-rpm="libibverbs-1.1.2-1.el5.src.rpm"/><source-package last-modified="1232403430" id="rhn-source-package-48976" source-rpm="libselinux-1.33.4-5.1.el5.src.rpm"/><source-package last-modified="1232403474" id="rhn-source-package-48977" source-rpm="qlvnictools-0.0.1-10.el5.src.rpm"/><source-package last-modified="1232403540" id="rhn-source-package-48978" source-rpm="gstreamer-0.10.20-3.el5.src.rpm"/><source-package last-modified="1232403564" id="rhn-source-package-48979" source-rpm="authconfig-5.3.21-5.el5.src.rpm"/><source-package last-modified="1232403566" id="rhn-source-package-48980" source-rpm="dbus-glib-0.73-8.el5.src.rpm"/><source-package last-modified="1232403605" id="rhn-source-package-48981" source-rpm="qperf-0.4.1-2.el5.src.rpm"/><source-package last-modified="1232403644" id="rhn-source-package-48982" source-rpm="shadow-utils-4.0.17-14.el5.src.rpm"/><source-package last-modified="1232403649" id="rhn-source-package-48983" source-rpm="readline-5.1-1.1.src.rpm"/><source-package last-modified="1232403761" id="rhn-source-package-48984" source-rpm="dmraid-1.0.0.rc13-33.el5.src.rpm"/><source-package last-modified="1232403762" id="rhn-source-package-48985" source-rpm="pam_krb5-2.2.14-10.src.rpm"/><source-package last-modified="1232403792" id="rhn-source-package-48986" source-rpm="net-snmp-5.3.2.2-5.el5.src.rpm"/><source-package last-modified="1232403807" id="rhn-source-package-48987" source-rpm="librdmacm-1.0.8-1.el5.src.rpm"/><source-package last-modified="1232403809" id="rhn-source-package-48988" source-rpm="sabayon-2.12.4-6.el5.src.rpm"/><source-package last-modified="1232403867" id="rhn-source-package-48989" source-rpm="krb5-1.6.1-31.el5.src.rpm"/><source-package last-modified="1232403875" id="rhn-source-package-48990" source-rpm="fonts-indic-2.3.1-1.el5.src.rpm"/><source-package last-modified="1232403879" id="rhn-source-package-48991" source-rpm="system-config-printer-0.7.32.10-1.el5.src.rpm"/><source-package last-modified="1232404483" id="rhn-source-package-48993" source-rpm="cpufreq-utils-005-1.el5.src.rpm"/><source-package last-modified="1232404487" id="rhn-source-package-48994" source-rpm="udev-095-14.19.el5.src.rpm"/><source-package last-modified="1232404495" id="rhn-source-package-48995" source-rpm="xorg-x11-drv-i810-1.6.5-9.21.el5.src.rpm"/><source-package last-modified="1232404587" id="rhn-source-package-48996" source-rpm="newt-0.52.2-12.el5.src.rpm"/><source-package last-modified="1232404615" id="rhn-source-package-48997" source-rpm="perl-DBI-1.52-2.el5.src.rpm"/><source-package last-modified="1232404647" id="rhn-source-package-48998" source-rpm="scim-1.4.4-41.el5.src.rpm"/><source-package last-modified="1232404651" id="rhn-source-package-48999" source-rpm="gnupg-1.4.5-14.src.rpm"/><source-package last-modified="1232404665" id="rhn-source-package-49000" source-rpm="tmpwatch-2.9.7-1.1.el5.2.src.rpm"/><source-package last-modified="1232404697" id="rhn-source-package-49001" source-rpm="tog-pegasus-2.7.1-2.el5.src.rpm"/><source-package last-modified="1232404728" id="rhn-source-package-49002" source-rpm="perl-DBD-Pg-1.49-2.el5.src.rpm"/><source-package last-modified="1232404914" id="rhn-source-package-49006" source-rpm="sos-1.7-9.16.el5.src.rpm"/><source-package last-modified="1232404917" id="rhn-source-package-49007" source-rpm="mpi-selector-1.0.1-1.el5.src.rpm"/><source-package last-modified="1232404921" id="rhn-source-package-49008" source-rpm="alsa-utils-1.0.17-1.el5.src.rpm"/><source-package last-modified="1232404925" id="rhn-source-package-49009" source-rpm="opensm-3.2.2-3.el5.src.rpm"/><source-package last-modified="1232404928" id="rhn-source-package-49010" source-rpm="system-config-samba-1.2.41-3.el5.src.rpm"/><source-package last-modified="1232404970" id="rhn-source-package-49011" source-rpm="redhat-menus-6.7.8-3.el5.src.rpm"/><source-package last-modified="1232405062" id="rhn-source-package-49014" source-rpm="hal-0.5.8.1-38.el5.src.rpm"/><source-package last-modified="1232405067" id="rhn-source-package-49015" source-rpm="gfs2-utils-0.1.53-1.el5.src.rpm"/><source-package last-modified="1232405124" id="rhn-source-package-49017" source-rpm="perftest-1.2-11.el5.src.rpm"/><source-package last-modified="1232405133" id="rhn-source-package-49018" source-rpm="dhcdbd-2.2-2.el5.src.rpm"/><source-package last-modified="1232405136" id="rhn-source-package-49019" source-rpm="wdaemon-0.14-2.src.rpm"/><source-package last-modified="1232405182" id="rhn-source-package-49021" source-rpm="logrotate-3.7.4-9.src.rpm"/><source-package last-modified="1232405218" id="rhn-source-package-49022" source-rpm="kdelibs-3.5.4-18.el5.src.rpm"/><source-package last-modified="1232405242" id="rhn-source-package-49023" source-rpm="mkinitrd-5.1.19.6-44.src.rpm"/><source-package last-modified="1232405257" id="rhn-source-package-49024" source-rpm="xen-3.0.3-80.el5.src.rpm"/><source-package last-modified="1232405662" id="rhn-source-package-49025" source-rpm="device-mapper-1.02.28-2.el5.src.rpm"/><source-package last-modified="1232405668" id="rhn-source-package-49026" source-rpm="libsmi-0.4.5-2.el5.src.rpm"/><source-package last-modified="1232405716" id="rhn-source-package-49027" source-rpm="openib-1.3.2-0.20080728.0355.3.el5.src.rpm"/><source-package last-modified="1232405722" id="rhn-source-package-49028" source-rpm="mod_nss-1.0.3-6.el5.src.rpm"/><source-package last-modified="1232405729" id="rhn-source-package-49029" source-rpm="util-linux-2.13-0.50.el5.src.rpm"/><source-package last-modified="1232405828" id="rhn-source-package-49030" source-rpm="pfmon-3.2-0.060926.5.el5.src.rpm"/><source-package last-modified="1232405833" id="rhn-source-package-49031" source-rpm="gimp-print-4.2.7-22.2.el5.src.rpm"/><source-package last-modified="1232405837" id="rhn-source-package-49032" source-rpm="openais-0.80.3-22.el5.src.rpm"/><source-package last-modified="1232405842" id="rhn-source-package-49033" source-rpm="xorg-x11-drv-nv-2.1.12-3.el5.src.rpm"/><source-package last-modified="1232405854" id="rhn-source-package-49034" source-rpm="system-config-network-1.3.99.12-1.el5.src.rpm"/><source-package last-modified="1232405931" id="rhn-source-package-49035" source-rpm="spamassassin-3.2.5-1.el5.src.rpm"/><source-package last-modified="1232405978" id="rhn-source-package-49038" source-rpm="systemtap-0.7.2-2.el5.src.rpm"/><source-package last-modified="1232405991" id="rhn-source-package-49039" source-rpm="subversion-1.4.2-4.el5.src.rpm"/><source-package last-modified="1232406043" id="rhn-source-package-49041" source-rpm="tcp_wrappers-7.6-40.6.el5.src.rpm"/><source-package last-modified="1232406050" id="rhn-source-package-49042" source-rpm="setup-2.5.58-4.el5.src.rpm"/><source-package last-modified="1232406063" id="rhn-source-package-49043" source-rpm="rpm-4.4.2.3-9.el5.src.rpm"/><source-package last-modified="1232406068" id="rhn-source-package-49044" source-rpm="ipsec-tools-0.6.5-13.el5.src.rpm"/><source-package last-modified="1232406107" id="rhn-source-package-49045" source-rpm="glibc-2.5-34.src.rpm"/><source-package last-modified="1232406213" id="rhn-source-package-49046" source-rpm="openmpi-1.2.7-6.el5.src.rpm"/><source-package last-modified="1232406256" id="rhn-source-package-49047" source-rpm="yum-rhn-plugin-0.5.3-30.el5.src.rpm"/><source-package last-modified="1232406281" id="rhn-source-package-49048" source-rpm="infiniband-diags-1.4.1-2.el5.src.rpm"/><source-package last-modified="1232406352" id="rhn-source-package-49049" source-rpm="patch-2.5.4-29.2.3.el5.src.rpm"/><source-package last-modified="1232406387" id="rhn-source-package-49050" source-rpm="libmthca-1.0.5-1.el5.src.rpm"/><source-package last-modified="1232406400" id="rhn-source-package-49051" source-rpm="policycoreutils-1.33.12-14.2.el5.src.rpm"/><source-package last-modified="1232406449" id="rhn-source-package-49052" source-rpm="perl-5.8.8-18.el5.src.rpm"/><source-package last-modified="1232406458" id="rhn-source-package-49053" source-rpm="tcpdump-3.9.4-14.el5.src.rpm"/><source-package last-modified="1232406485" id="rhn-source-package-49054" source-rpm="cups-1.3.7-8.el5.src.rpm"/><source-package last-modified="1232406489" id="rhn-source-package-49055" source-rpm="inn-2.4.3-8.el5.src.rpm"/><source-package last-modified="1232406521" id="rhn-source-package-49056" source-rpm="crash-4.0-7.2.3.src.rpm"/><source-package last-modified="1232406531" id="rhn-source-package-49057" source-rpm="nedit-5.5-21.el5.src.rpm"/><source-package last-modified="1232406554" id="rhn-source-package-49059" source-rpm="openldap-2.3.43-3.el5.src.rpm"/><source-package last-modified="1232406569" id="rhn-source-package-49060" source-rpm="gnome-power-manager-2.16.0-10.el5.src.rpm"/><source-package last-modified="1232406590" id="rhn-source-package-49061" source-rpm="yum-3.2.19-18.el5.src.rpm"/><source-package last-modified="1232406630" id="rhn-source-package-49062" source-rpm="system-config-kdump-1.0.14-4.el5.src.rpm"/><source-package last-modified="1232406661" id="rhn-source-package-49063" source-rpm="kdebase-3.5.4-19.el5.src.rpm"/><source-package last-modified="1232406664" id="rhn-source-package-49064" source-rpm="system-config-kickstart-2.6.19.8-2.el5.src.rpm"/><source-package last-modified="1232406679" id="rhn-source-package-49065" source-rpm="mvapich2-1.0.3-3.el5.src.rpm"/><source-package last-modified="1232406682" id="rhn-source-package-49066" source-rpm="ibsim-0.4-3.el5.src.rpm"/><source-package last-modified="1232406703" id="rhn-source-package-49067" source-rpm="system-config-bind-4.0.3-4.el5.src.rpm"/><source-package last-modified="1232406726" id="rhn-source-package-49069" source-rpm="sudo-1.6.9p17-3.el5.src.rpm"/><source-package last-modified="1232406743" id="rhn-source-package-49070" source-rpm="xfig-3.2.4-21.3.el5.src.rpm"/><source-package last-modified="1232406750" id="rhn-source-package-49071" source-rpm="privoxy-3.0.3-9.3.el5.src.rpm"/><source-package last-modified="1232406758" id="rhn-source-package-49072" source-rpm="httpd-2.2.3-22.el5.src.rpm"/><source-package last-modified="1232406763" id="rhn-source-package-49073" source-rpm="ethtool-6-2.el5.src.rpm"/><source-package last-modified="1232406807" id="rhn-source-package-49074" source-rpm="stunnel-4.15-2.el5.1.src.rpm"/><source-package last-modified="1232406818" id="rhn-source-package-49075" source-rpm="libmlx4-1.0-4.el5.src.rpm"/><source-package last-modified="1232406828" id="rhn-source-package-49076" source-rpm="dhcpv6-1.0.10-16.el5.src.rpm"/><source-package last-modified="1232406852" id="rhn-source-package-49077" source-rpm="redhat-release-notes-5Server-25.src.rpm"/><source-package last-modified="1232406898" id="rhn-source-package-49078" source-rpm="xorg-x11-server-1.1.1-48.52.el5.src.rpm"/><source-package last-modified="1232406903" id="rhn-source-package-49079" source-rpm="firstboot-1.4.27.7-1.el5.src.rpm"/><source-package last-modified="1232406913" id="rhn-source-package-49080" source-rpm="compat-libcom_err-1.0-7.src.rpm"/><source-package last-modified="1232406980" id="rhn-source-package-49081" source-rpm="gcc-4.1.2-44.el5.src.rpm"/><source-package last-modified="1232407197" id="rhn-source-package-49082" source-rpm="java-1.6.0-openjdk-1.6.0.0-0.25.b09.el5.src.rpm"/><source-package last-modified="1232407202" id="rhn-source-package-49083" source-rpm="rsyslog-2.0.6-1.el5.src.rpm"/><source-package last-modified="1232407244" id="rhn-source-package-49084" source-rpm="libibcm-1.0.3-1.el5.src.rpm"/><source-package last-modified="1232407251" id="rhn-source-package-49085" source-rpm="fipscheck-1.0.3-1.el5.src.rpm"/><source-package last-modified="1232408485" id="rhn-source-package-49086" source-rpm="rhel-instnum-1.0.9-1.el5.src.rpm"/><source-package last-modified="1232408511" id="rhn-source-package-49087" source-rpm="SysVinit-2.86-15.el5.src.rpm"/><source-package last-modified="1232408545" id="rhn-source-package-49088" source-rpm="squid-2.6.STABLE21-3.el5.src.rpm"/><source-package last-modified="1232408577" id="rhn-source-package-49089" source-rpm="ftp-0.17-35.el5.src.rpm"/><source-package last-modified="1232408590" id="rhn-source-package-49090" source-rpm="kdenetwork-3.5.4-8.el5.src.rpm"/><source-package last-modified="1232408595" id="rhn-source-package-49091" source-rpm="kbd-1.12-21.el5.src.rpm"/><source-package last-modified="1232408688" id="rhn-source-package-49092" source-rpm="NetworkManager-0.7.0-3.el5.src.rpm"/><source-package last-modified="1232408899" id="rhn-source-package-49093" source-rpm="sgpio-1.2.0_10-2.el5.src.rpm"/><source-package last-modified="1232408943" id="rhn-source-package-49094" source-rpm="ccid-1.3.8-1.el5.src.rpm"/><source-package last-modified="1232408961" id="rhn-source-package-49095" source-rpm="booty-0.80.6-5.src.rpm"/><source-package last-modified="1232408977" id="rhn-source-package-49096" source-rpm="libnes-0.5-4.el5.src.rpm"/><source-package last-modified="1232408987" id="rhn-source-package-49097" source-rpm="cdrtools-2.01-10.7.el5.src.rpm"/><source-package last-modified="1232408995" id="rhn-source-package-49098" source-rpm="selinux-policy-2.4.6-203.el5.src.rpm"/><source-package last-modified="1232409022" id="rhn-source-package-49100" source-rpm="kudzu-1.2.57.1.21-1.src.rpm"/><source-package last-modified="1232409066" id="rhn-source-package-49101" source-rpm="openCryptoki-2.2.4-22.el5.src.rpm"/><source-package last-modified="1232409101" id="rhn-source-package-49102" source-rpm="filesystem-2.4.0-2.src.rpm"/><source-package last-modified="1232409108" id="rhn-source-package-49103" source-rpm="OpenIPMI-2.0.6-11.el5.src.rpm"/><source-package last-modified="1232409137" id="rhn-source-package-49104" source-rpm="system-config-lvm-1.1.5-1.0.el5.src.rpm"/><source-package last-modified="1232409171" id="rhn-source-package-49106" source-rpm="redhat-release-5Server-5.3.0.3.src.rpm"/><source-package last-modified="1232409174" id="rhn-source-package-49107" source-rpm="psacct-6.3.2-44.el5.src.rpm"/><source-package last-modified="1232409270" id="rhn-source-package-49109" source-rpm="oprofile-0.9.3-18.el5.src.rpm"/><source-package last-modified="1232409276" id="rhn-source-package-49110" source-rpm="openssl-0.9.8e-7.el5.src.rpm"/><source-package last-modified="1232409282" id="rhn-source-package-49111" source-rpm="ecryptfs-utils-56-8.el5.src.rpm"/><source-package last-modified="1232409352" id="rhn-source-package-49113" source-rpm="libgcrypt-1.2.4-1.el5.src.rpm"/><source-package last-modified="1232409404" id="rhn-source-package-49114" source-rpm="wpa_supplicant-0.5.10-8.el5.src.rpm"/><source-package last-modified="1232409406" id="rhn-source-package-49115" source-rpm="findutils-4.2.27-5.el5.src.rpm"/><source-package last-modified="1232409454" id="rhn-source-package-49116" source-rpm="linuxwacom-0.7.8.3-5.el5.src.rpm"/><source-package last-modified="1232409605" id="rhn-source-package-49117" source-rpm="mcstrans-0.2.11-3.el5.src.rpm"/><source-package last-modified="1232409671" id="rhn-source-package-49118" source-rpm="numactl-0.9.8-7.el5.src.rpm"/><source-package last-modified="1232409739" id="rhn-source-package-49119" source-rpm="sysstat-7.0.2-3.el5.src.rpm"/><source-package last-modified="1232409742" id="rhn-source-package-49120" source-rpm="gnome-terminal-2.16.0-5.3.el5.src.rpm"/><source-package last-modified="1232409747" id="rhn-source-package-49121" source-rpm="cpuspeed-1.2.1-5.el5.src.rpm"/><source-package last-modified="1232410156" id="rhn-source-package-49123" source-rpm="prelink-0.4.0-2.el5.src.rpm"/><source-package last-modified="1232410159" id="rhn-source-package-49124" source-rpm="lm_sensors-2.10.7-4.el5.src.rpm"/><source-package last-modified="1232410176" id="rhn-source-package-49125" source-rpm="autofs-5.0.1-0.rc2.102.src.rpm"/><source-package last-modified="1232410229" id="rhn-source-package-49126" source-rpm="wacomexpresskeys-0.4.1-1.el5.src.rpm"/><source-package last-modified="1232410237" id="rhn-source-package-49127" source-rpm="metacity-2.16.0-12.el5.src.rpm"/><source-package last-modified="1232410250" id="rhn-source-package-49128" source-rpm="alsa-lib-1.0.17-1.el5.src.rpm"/><source-package last-modified="1232410251" id="rhn-source-package-49129" source-rpm="perl-Archive-Zip-1.16-1.2.1.src.rpm"/><source-package last-modified="1232410284" id="rhn-source-package-49130" source-rpm="coreutils-5.97-19.el5.src.rpm"/><source-package last-modified="1232410341" id="rhn-source-package-49131" source-rpm="ghostscript-8.15.2-9.4.el5.src.rpm"/><source-package last-modified="1232410344" id="rhn-source-package-49132" source-rpm="esc-1.0.0-39.el5.src.rpm"/><source-package last-modified="1232459632" id="rhn-source-package-49137" source-rpm="module-init-tools-3.3-0.pre3.1.37.el5_2.1.src.rpm"/><source-package last-modified="1232489751" id="rhn-source-package-49141" source-rpm="crash-4.0-7.2.3.el5_3.1.src.rpm"/><source-package last-modified="1232489764" id="rhn-source-package-49142" source-rpm="kexec-tools-1.102pre-56.el5_3.1.src.rpm"/><source-package last-modified="1232490104" id="rhn-source-package-49143" source-rpm="strace-4.5.18-2.el5_3.2.src.rpm"/><source-package last-modified="1233221465" id="rhn-source-package-49260" source-rpm="ntp-4.2.2p1-9.el5_3.1.src.rpm"/><source-package last-modified="1233737075" id="rhn-source-package-49576" source-rpm="firefox-3.0.6-1.el5.src.rpm"/><source-package last-modified="1233737075" id="rhn-source-package-49577" source-rpm="nss-3.12.2.0-4.el5.src.rpm"/><source-package last-modified="1233737075" id="rhn-source-package-49578" source-rpm="xulrunner-1.9.0.6-1.el5.src.rpm"/><source-package last-modified="1233849341" id="rhn-source-package-49631" source-rpm="sudo-1.6.9p17-3.el5_3.1.src.rpm"/><source-package last-modified="1233923900" id="rhn-source-package-49636" source-rpm="gstreamer-plugins-good-0.10.9-1.el5_3.1.src.rpm"/><source-package last-modified="1234280500" id="rhn-source-package-49644" source-rpm="kernel-2.6.18-128.1.1.el5.src.rpm"/><source-package last-modified="1234362522" id="rhn-source-package-49645" source-rpm="dos2unix-3.1-27.2.el5.src.rpm"/><source-package last-modified="1234362529" id="rhn-source-package-49646" source-rpm="hwbrowser-0.30-3.el5.src.rpm"/><source-package last-modified="1234362542" id="rhn-source-package-49647" source-rpm="system-config-date-1.8.12-4.el5.src.rpm"/><source-package last-modified="1234370305" id="rhn-source-package-49650" source-rpm="netpbm-10.35-6.1.el5_3.1.src.rpm"/><source-package last-modified="1234371327" id="rhn-source-package-49651" source-rpm="mod_auth_mysql-3.0.0-3.2.el5_3.src.rpm"/><source-package last-modified="1234371517" id="rhn-source-package-49653" source-rpm="vnc-4.1.2-14.el5_3.1.src.rpm"/><source-package last-modified="1234951245" id="rhn-source-package-49666" source-rpm="unix2dos-2.2-26.2.3.el5.src.rpm"/><source-package last-modified="1234975295" id="rhn-source-package-49667" source-rpm="strace-4.5.18-2.el5_3.3.src.rpm"/><source-package last-modified="1235512939" id="rhn-source-package-49682" source-rpm="gfs2-utils-0.1.53-1.el5_3.1.src.rpm"/><source-package last-modified="1235749521" id="rhn-source-package-49687" source-rpm="device-mapper-multipath-0.4.7-23.el5_3.1.src.rpm"/><source-package last-modified="1236193446" id="rhn-source-package-49701" source-rpm="wireshark-1.0.6-2.el5_3.src.rpm"/><source-package last-modified="1236193625" id="rhn-source-package-49704" source-rpm="libpng-1.2.10-7.1.el5_3.2.src.rpm"/><source-package last-modified="1236210974" id="rhn-source-package-49709" source-rpm="xulrunner-1.9.0.7-1.el5.src.rpm"/><source-package last-modified="1236210974" id="rhn-source-package-49710" source-rpm="firefox-3.0.7-1.el5.src.rpm"/><source-package last-modified="1236787732" id="rhn-source-package-49976" source-rpm="mod_authz_ldap-0.26-9.el5.src.rpm"/><source-package last-modified="1236787878" id="rhn-source-package-49977" source-rpm="htdig-3.2.0b6-11.el5.src.rpm"/><source-package last-modified="1236866978" id="rhn-source-package-49998" source-rpm="icu-3.6-5.11.2.src.rpm"/><source-package last-modified="1237210830" id="rhn-source-package-50003" source-rpm="libsoup-2.2.98-2.el5_3.1.src.rpm"/><source-package last-modified="1237211194" id="rhn-source-package-50005" source-rpm="evolution-data-server-1.12.3-10.el5_3.3.src.rpm"/><source-package last-modified="1237388126" id="rhn-source-package-50010" source-rpm="jadetex-3.12-15.el5.src.rpm"/><source-package last-modified="1237388248" id="rhn-source-package-50011" source-rpm="cpio-2.6-23.el5.src.rpm"/><source-package last-modified="1237388438" id="rhn-source-package-50012" source-rpm="ltrace-0.5-13.45svn.el5.src.rpm"/><source-package last-modified="1237474961" id="rhn-source-package-50018" source-rpm="lcms-1.18-0.1.beta1.el5_3.2.src.rpm"/><source-package last-modified="1237475352" id="rhn-source-package-50022" source-rpm="curl-7.15.5-2.1.el5_3.4.src.rpm"/><source-package last-modified="1237476796" id="rhn-source-package-50025" source-rpm="ghostscript-8.15.2-9.4.el5_3.4.src.rpm"/><source-package last-modified="1237895801" id="rhn-source-package-50044" source-rpm="glib2-2.12.3-4.el5_3.1.src.rpm"/><source-package last-modified="1237984158" id="rhn-source-package-50050" source-rpm="numactl-0.9.8-8.el5.src.rpm"/><source-package last-modified="1237984344" id="rhn-source-package-50051" source-rpm="db4-4.3.29-10.el5.src.rpm"/><source-package last-modified="1237989317" id="rhn-source-package-50053" source-rpm="NetworkManager-0.7.0-4.el5_3.src.rpm"/><source-package last-modified="1238082570" id="rhn-source-package-50055" source-rpm="systemtap-0.7.2-3.el5_3.src.rpm"/><source-package last-modified="1238195400" id="rhn-source-package-50087" source-rpm="xulrunner-1.9.0.7-3.el5.src.rpm"/><source-package last-modified="1238423485" id="rhn-source-package-50101" source-rpm="xen-3.0.3-80.el5_3.2.src.rpm"/><source-package last-modified="1238431767" id="rhn-source-package-50102" source-rpm="openswan-2.6.14-1.el5_3.2.src.rpm"/><source-package last-modified="1238488706" id="rhn-source-package-50103" source-rpm="mod_nss-1.0.3-7.el5_3.1.src.rpm"/><source-package last-modified="1238573732" id="rhn-source-package-50106" source-rpm="kernel-2.6.18-128.1.6.el5.src.rpm"/><source-package last-modified="1238575521" id="rhn-source-package-50107" source-rpm="iproute-2.6.18-10.el5.src.rpm"/><source-package last-modified="1238575797" id="rhn-source-package-50108" source-rpm="gnome-python2-desktop-2.16.0-3.el5.src.rpm"/><source-package last-modified="1238684145" id="rhn-source-package-50148" source-rpm="perl-5.8.8-18.el5_3.1.src.rpm"/><source-package last-modified="1239035288" id="rhn-source-package-50154" source-rpm="gstreamer-plugins-base-0.10.20-3.0.1.el5_3.src.rpm"/><source-package last-modified="1239035300" id="rhn-source-package-50155" source-rpm="php-5.1.6-23.2.el5_3.src.rpm"/><source-package last-modified="1239129265" id="rhn-source-package-50163" source-rpm="krb5-1.6.1-31.el5_3.3.src.rpm"/><source-package last-modified="1239129272" id="rhn-source-package-50167" source-rpm="java-1.6.0-openjdk-1.6.0.0-0.30.b09.el5.src.rpm"/><source-package last-modified="1239129436" id="rhn-source-package-50168" source-rpm="device-mapper-multipath-0.4.7-23.el5_3.2.src.rpm"/><source-package last-modified="1239176743" id="rhn-source-package-50171" source-rpm="lksctp-tools-1.0.6-3.el5.src.rpm"/><source-package last-modified="1239176764" id="rhn-source-package-50172" source-rpm="less-394-6.el5.src.rpm"/><source-package last-modified="1239176867" id="rhn-source-package-50173" source-rpm="tcl-8.4.13-4.el5.src.rpm"/><source-package last-modified="1239307153" id="rhn-source-package-50183" source-rpm="cman-2.0.98-1.el5_3.1.src.rpm"/><source-package last-modified="1239307231" id="rhn-source-package-50184" source-rpm="openais-0.80.3-22.el5_3.4.src.rpm"/><source-package last-modified="1239307432" id="rhn-source-package-50185" source-rpm="gfs2-utils-0.1.53-1.el5_3.2.src.rpm"/><source-package last-modified="1239731456" id="rhn-source-package-50193" source-rpm="ghostscript-8.15.2-9.4.el5_3.7.src.rpm"/><source-package last-modified="1239786942" id="rhn-source-package-50197" source-rpm="tzdata-2009f-1.el5.src.rpm"/><source-package last-modified="1239789435" id="rhn-source-package-50198" source-rpm="rsh-0.17-40.el5.src.rpm"/><source-package last-modified="1239790480" id="rhn-source-package-50200" source-rpm="dump-0.4b41-4.el5.src.rpm"/><source-package last-modified="1239791165" id="rhn-source-package-50201" source-rpm="scim-bridge-0.4.5-9.el5.src.rpm"/><source-package last-modified="1239910316" id="rhn-source-package-50209" source-rpm="udev-095-14.20.el5_3.src.rpm"/><source-package last-modified="1239919080" id="rhn-source-package-50212" source-rpm="cups-1.3.7-8.el5_3.4.src.rpm"/><source-package last-modified="1239975231" id="rhn-source-package-50218" source-rpm="device-mapper-multipath-0.4.7-23.el5_3.4.src.rpm"/><source-package last-modified="1240363553" id="rhn-source-package-50265" source-rpm="firefox-3.0.9-1.el5.src.rpm"/><source-package last-modified="1240363553" id="rhn-source-package-50267" source-rpm="xulrunner-1.9.0.9-1.el5.src.rpm"/><source-package last-modified="1240404139" id="rhn-source-package-50268" source-rpm="sudo-1.6.9p17-5.el5.src.rpm"/><source-package last-modified="1240404250" id="rhn-source-package-50269" source-rpm="psmisc-22.2-7.src.rpm"/><source-package last-modified="1240404398" id="rhn-source-package-50270" source-rpm="yum-metadata-parser-1.1.2-3.el5.src.rpm"/><source-package last-modified="1240404603" id="rhn-source-package-50271" source-rpm="sqlite-3.3.6-5.src.rpm"/><source-package last-modified="1240404715" id="rhn-source-package-50272" source-rpm="authd-1.4.3-14.src.rpm"/><source-package last-modified="1240404886" id="rhn-source-package-50273" source-rpm="audit-1.7.7-6.el5_3.2.src.rpm"/><source-package last-modified="1240421649" id="rhn-source-package-50274" source-rpm="giflib-4.1.3-7.1.el5_3.1.src.rpm"/><source-package last-modified="1240864918" id="rhn-source-package-50284" source-rpm="firefox-3.0.10-1.el5.src.rpm"/><source-package last-modified="1240864918" id="rhn-source-package-50285" source-rpm="xulrunner-1.9.0.10-1.el5.src.rpm"/><source-package last-modified="1241012373" id="rhn-source-package-50291" source-rpm="kdenetwork-3.5.4-9.el5.src.rpm"/><source-package last-modified="1241012560" id="rhn-source-package-50292" source-rpm="tcp_wrappers-7.6-40.7.el5.src.rpm"/><source-package last-modified="1241095412" id="rhn-source-package-50317" source-rpm="file-4.17-15.el5_3.1.src.rpm"/><source-package last-modified="1241122231" id="rhn-source-package-50324" source-rpm="libwmf-0.2.8.4-10.2.src.rpm"/><source-package last-modified="1241606742" id="rhn-source-package-50341" source-rpm="sos-1.7-9.16.el5_3.5.src.rpm"/><source-package last-modified="1241623776" id="rhn-source-package-50344" source-rpm="ypbind-1.19-12.el5.src.rpm"/><source-package last-modified="1241623888" id="rhn-source-package-50345" source-rpm="zsh-4.2.6-3.el5.src.rpm"/><source-package last-modified="1241624111" id="rhn-source-package-50347" source-rpm="binutils-2.17.50.0.6-12.el5.src.rpm"/><source-package last-modified="1241689733" id="rhn-source-package-50349" source-rpm="kexec-tools-1.102pre-56.el5_3.2.src.rpm"/><source-package last-modified="1241693068" id="rhn-source-package-50355" source-rpm="kernel-2.6.18-128.1.10.el5.src.rpm"/><source-package last-modified="1241696250" id="rhn-source-package-50359" source-rpm="acpid-1.0.4-7.el5_3.1.src.rpm"/><source-package last-modified="1241697346" id="rhn-source-package-50360" source-rpm="audit-1.7.7-6.el5_3.3.src.rpm"/><source-package last-modified="1241772894" id="rhn-source-package-50366" source-rpm="pango-1.14.9-5.el5_3.src.rpm"/><source-package last-modified="1241804597" id="rhn-source-package-50367" source-rpm="gfs2-utils-0.1.53-1.el5_3.3.src.rpm"/><source-package last-modified="1242224643" id="rhn-source-package-50372" source-rpm="perl-DBD-Pg-1.49-2.el5_3.1.src.rpm"/><source-package last-modified="1242224949" id="rhn-source-package-50373" source-rpm="poppler-0.5.4-4.4.el5_3.9.src.rpm"/><source-package last-modified="1242286340" id="rhn-source-package-50382" source-rpm="grep-2.5.1-55.el5.src.rpm"/><source-package last-modified="1242286522" id="rhn-source-package-50383" source-rpm="authconfig-5.3.21-6.el5.src.rpm"/><source-package last-modified="1242286685" id="rhn-source-package-50384" source-rpm="man-pages-ja-20060815-11.el5.src.rpm"/><source-package last-modified="1242286854" id="rhn-source-package-50385" source-rpm="setup-2.5.58-7.el5.src.rpm"/><source-package last-modified="1242677163" id="rhn-source-package-50489" source-rpm="ipsec-tools-0.6.5-13.el5_3.1.src.rpm"/><source-package last-modified="1242678540" id="rhn-source-package-50490" source-rpm="ntp-4.2.2p1-9.el5_3.2.src.rpm"/><source-package last-modified="1242811334" id="rhn-source-package-50509" source-rpm="pyorbit-2.14.1-3.el5.src.rpm"/><source-package last-modified="1242813826" id="rhn-source-package-50511" source-rpm="cpuspeed-1.2.1-8.el5.src.rpm"/><source-package last-modified="1242993563" id="rhn-source-package-50521" source-rpm="freetype-2.2.1-21.el5_3.src.rpm"/><source-package last-modified="1243357474" id="rhn-source-package-50528" source-rpm="squirrelmail-1.4.8-5.el5_3.7.src.rpm"/><source-package last-modified="1243411419" id="rhn-source-package-50540" source-rpm="vsftpd-2.0.5-12.el5_3.1.src.rpm"/><source-package last-modified="1243412086" id="rhn-source-package-50541" source-rpm="net-snmp-5.3.2.2-5.el5_3.1.src.rpm"/><source-package last-modified="1243431955" id="rhn-source-package-50542" source-rpm="aspell-nl-0.1e-2.el5.src.rpm"/><source-package last-modified="1243432018" id="rhn-source-package-50543" source-rpm="php-pear-1.4.9-6.el5.src.rpm"/><source-package last-modified="1243432116" id="rhn-source-package-50544" source-rpm="dvd+rw-tools-7.0-1.el5.src.rpm"/><source-package last-modified="1243432180" id="rhn-source-package-50545" source-rpm="aide-0.13.1-4.el5.src.rpm"/><source-package last-modified="1243432235" id="rhn-source-package-50546" source-rpm="system-config-language-1.1.18-3.el5.src.rpm"/><source-package last-modified="1243433692" id="rhn-source-package-50547" source-rpm="httpd-2.2.3-22.el5_3.1.src.rpm"/><source-package last-modified="1244033497" id="rhn-source-package-50556" source-rpm="readline-5.1-3.el5.src.rpm"/><source-package last-modified="1244033616" id="rhn-source-package-50557" source-rpm="gnome-session-2.16.0-7.el5.src.rpm"/><source-package last-modified="1244033684" id="rhn-source-package-50558" source-rpm="setroubleshoot-2.0.5-5.el5.src.rpm"/><source-package last-modified="1244043021" id="rhn-source-package-50564" source-rpm="cups-1.3.7-8.el5_3.6.src.rpm"/><source-package last-modified="1244633001" id="rhn-source-package-50576" source-rpm="redhat-rpm-config-8.0.45-32.el5.src.rpm"/><source-package last-modified="1244633082" id="rhn-source-package-50577" source-rpm="iputils-20020927-46.el5.src.rpm"/><source-package last-modified="1244647648" id="rhn-source-package-50578" source-rpm="mkinitrd-5.1.19.6-44.1.src.rpm"/><source-package last-modified="1244712474" id="rhn-source-package-50615" source-rpm="xen-3.0.3-80.el5_3.3.src.rpm"/><source-package last-modified="1244759193" id="rhn-source-package-50617" source-rpm="firefox-3.0.11-2.el5_3.src.rpm"/><source-package last-modified="1244759193" id="rhn-source-package-50618" source-rpm="xulrunner-1.9.0.11-3.el5_3.src.rpm"/><source-package last-modified="1245049819" id="rhn-source-package-50629" source-rpm="iscsi-initiator-utils-6.2.0.868-0.18.el5_3.1.src.rpm"/><source-package last-modified="1245096858" id="rhn-source-package-50638" source-rpm="wireshark-1.0.8-1.el5_3.1.src.rpm"/><source-package last-modified="1245100039" id="rhn-source-package-50642" source-rpm="cscope-15.5-15.1.el5_3.1.src.rpm"/><source-package last-modified="1245137388" id="rhn-source-package-50643" source-rpm="cman-2.0.98-1.el5_3.4.src.rpm"/><source-package last-modified="1245156936" id="rhn-source-package-50644" source-rpm="openais-0.80.3-22.el5_3.8.src.rpm"/><source-package last-modified="1245167499" id="rhn-source-package-50647" source-rpm="tzdata-2009i-2.el5.src.rpm"/><source-package last-modified="1245186787" id="rhn-source-package-50648" source-rpm="kernel-2.6.18-128.1.14.el5.src.rpm"/><source-package last-modified="1245188091" id="rhn-source-package-50650" source-rpm="apr-util-1.2.7-7.el5_3.1.src.rpm"/><source-package last-modified="1245249782" id="rhn-source-package-50652" source-rpm="pciutils-2.2.3-7.el5.src.rpm"/><source-package last-modified="1245249881" id="rhn-source-package-50653" source-rpm="wdaemon-0.14-4.src.rpm"/><source-package last-modified="1245250064" id="rhn-source-package-50654" source-rpm="isdn4k-utils-3.2-56.el5.src.rpm"/><source-package last-modified="1245250076" id="rhn-source-package-50655" source-rpm="efax-0.9-28.el5.src.rpm"/><source-package last-modified="1245345072" id="rhn-source-package-50661" source-rpm="cyrus-imapd-2.3.7-2.el5_3.2.src.rpm"/><source-package last-modified="1245691628" id="rhn-source-package-50667" source-rpm="vim-7.0.109-6.el5.src.rpm"/><source-package last-modified="1245694218" id="rhn-source-package-50668" source-rpm="tetex-3.0-33.8.el5.src.rpm"/><source-package last-modified="1245694415" id="rhn-source-package-50669" source-rpm="avahi-0.6.16-6.el5.src.rpm"/><source-package last-modified="1245694565" id="rhn-source-package-50670" source-rpm="cyrus-imapd-2.3.7-7.el5.src.rpm"/><source-package last-modified="1245694660" id="rhn-source-package-50671" source-rpm="vino-2.13.5-7.el5.src.rpm"/><source-package last-modified="1245938594" id="rhn-source-package-50674" source-rpm="icu-3.6-5.11.4.src.rpm"/><source-package last-modified="1245939029" id="rhn-source-package-50675" source-rpm="gstreamer-plugins-good-0.10.9-1.el5_3.2.src.rpm"/><source-package last-modified="1245944161" id="rhn-source-package-50679" source-rpm="kdelibs-3.5.4-22.el5_3.src.rpm"/><source-package last-modified="1246018238" id="rhn-source-package-50687" source-rpm="autofs-5.0.1-0.rc2.102.el5_3.1.src.rpm"/><source-package last-modified="1246350314" id="rhn-source-package-50689" source-rpm="kernel-2.6.18-128.1.16.el5.src.rpm"/><source-package last-modified="1246362442" id="rhn-source-package-50706" source-rpm="pango-1.14.9-6.el5.src.rpm"/><source-package last-modified="1246364605" id="rhn-source-package-50753" source-rpm="crash-4.0-8.9.1.el5.src.rpm"/><source-package last-modified="1246366355" id="rhn-source-package-50784" source-rpm="evince-0.6.0-9.el5.src.rpm"/><source-package last-modified="1246367075" id="rhn-source-package-50798" source-rpm="cryptsetup-luks-1.0.3-5.el5.src.rpm"/><source-package last-modified="1246368582" id="rhn-source-package-50809" source-rpm="kdebase-3.5.4-20.el5.src.rpm"/><source-package last-modified="1246368782" id="rhn-source-package-50813" source-rpm="irqbalance-0.55-15.el5.src.rpm"/><source-package last-modified="1246372650" id="rhn-source-package-50860" source-rpm="foomatic-3.0.2-38.3.el5.src.rpm"/><source-package last-modified="1246374642" id="rhn-source-package-50880" source-rpm="xorg-x11-xdm-1.0.5-6.el5.src.rpm"/><source-package last-modified="1246530866" id="rhn-source-package-50909" source-rpm="bind-9.3.4-10.P1.el5_3.1.src.rpm"/><source-package last-modified="1246546767" id="rhn-source-package-50910" source-rpm="openswan-2.6.14-1.el5_3.3.src.rpm"/><source-package last-modified="1246552727" id="rhn-source-package-50913" source-rpm="ruby-1.8.5-5.el5_3.7.src.rpm"/><source-package last-modified="1246606077" id="rhn-source-package-50916" source-rpm="yum-3.2.19-18.el5_3.1.src.rpm"/><source-package last-modified="1247155587" id="rhn-source-package-50978" source-rpm="httpd-2.2.3-22.el5_3.2.src.rpm"/><source-package last-modified="1247238073" id="rhn-source-package-51000" source-rpm="samba-3.0.33-3.7.el5_3.1.src.rpm"/><source-package last-modified="1247562136" id="rhn-source-package-51006" source-rpm="kernel-2.6.18-128.2.1.el5.src.rpm"/><source-package last-modified="1247771313" id="rhn-source-package-51027" source-rpm="libtiff-3.8.2-7.el5_3.4.src.rpm"/><source-package last-modified="1248074800" id="rhn-source-package-51036" source-rpm="nss-3.12.3.99.3-1.el5_3.2.src.rpm"/><source-package last-modified="1248074800" id="rhn-source-package-51037" source-rpm="nspr-4.7.4-1.el5_3.1.src.rpm"/><source-package last-modified="1248209166" id="rhn-source-package-51041" source-rpm="tomcat5-5.5.23-0jpp.7.el5_3.2.src.rpm"/><source-package last-modified="1248221589" id="rhn-source-package-51042" source-rpm="xulrunner-1.9.0.12-1.el5_3.src.rpm"/><source-package last-modified="1248221589" id="rhn-source-package-51043" source-rpm="firefox-3.0.12-1.el5_3.src.rpm"/><source-package last-modified="1248246871" id="rhn-source-package-51047" source-rpm="ksh-20080202-2.el5_3.1.src.rpm"/><source-package last-modified="1248282282" id="rhn-source-package-51062" source-rpm="esc-1.1.0-9.el5.src.rpm"/><source-package last-modified="1248686340" id="rhn-source-package-51095" source-rpm="python-2.4.3-24.el5_3.6.src.rpm"/><source-package last-modified="1248889231" id="rhn-source-package-51101" source-rpm="bind-9.3.4-10.P1.el5_3.2.src.rpm"/><source-package last-modified="1248907966" id="rhn-source-package-51107" source-rpm="bind-9.3.4-10.P1.el5_3.3.src.rpm"/><source-package last-modified="1249284752" id="rhn-source-package-51120" source-rpm="openais-0.80.3-22.el5_3.9.src.rpm"/><source-package last-modified="1249285048" id="rhn-source-package-51121" source-rpm="cman-2.0.98-1.el5_3.7.src.rpm"/><source-package last-modified="1249390877" id="rhn-source-package-51124" source-rpm="kernel-2.6.18-128.4.1.el5.src.rpm"/><source-package last-modified="1249593151" id="rhn-source-package-51140" source-rpm="java-1.6.0-openjdk-1.6.0.0-1.2.b09.el5.src.rpm"/><source-package last-modified="1249634951" id="rhn-source-package-51141" source-rpm="glibc-2.5-34.el5_3.1.src.rpm"/><source-package last-modified="1249922126" id="rhn-source-package-51142" source-rpm="subversion-1.4.2-4.el5_3.1.src.rpm"/><source-package last-modified="1249923708" id="rhn-source-package-51144" source-rpm="apr-1.2.7-11.el5_3.1.src.rpm"/><source-package last-modified="1249923708" id="rhn-source-package-51147" source-rpm="apr-util-1.2.7-7.el5_3.2.src.rpm"/><source-package last-modified="1249926432" id="rhn-source-package-51152" source-rpm="libxml2-2.6.26-2.1.2.8.src.rpm"/><source-package last-modified="1250172789" id="rhn-source-package-51159" source-rpm="curl-7.15.5-2.1.el5_3.5.src.rpm"/><source-package last-modified="1250513801" id="rhn-source-package-51166" source-rpm="tzdata-2009k-1.el5.src.rpm"/><source-package last-modified="1250586921" id="rhn-source-package-51169" source-rpm="net-snmp-5.3.2.2-5.el5_3.2.src.rpm"/><source-package last-modified="1250618136" id="rhn-source-package-51176" source-rpm="libvorbis-1.1.2-3.el5_3.3.src.rpm"/><source-package last-modified="1251112134" id="rhn-source-package-51187" source-rpm="kernel-2.6.18-128.7.1.el5.src.rpm"/><source-package last-modified="1251297019" id="rhn-source-package-51206" source-rpm="gnutls-1.4.1-3.el5_3.5.src.rpm"/><source-package last-modified="1251378276" id="rhn-source-package-51207" source-rpm="mdadm-2.6.9-2.el5.src.rpm"/><source-package last-modified="1251378334" id="rhn-source-package-51208" source-rpm="device-mapper-multipath-0.4.7-30.el5.src.rpm"/><source-package last-modified="1251378342" id="rhn-source-package-51209" source-rpm="nfs4-acl-tools-0.3.3-1.el5.src.rpm"/><source-package last-modified="1251378387" id="rhn-source-package-51210" source-rpm="util-linux-2.13-0.52.el5.src.rpm"/><source-package last-modified="1251378442" id="rhn-source-package-51212" source-rpm="xorg-x11-server-1.1.1-48.67.el5.src.rpm"/><source-package last-modified="1251378492" id="rhn-source-package-51213" source-rpm="xorg-x11-drv-mga-1.4.10-5.el5.src.rpm"/><source-package last-modified="1251378707" id="rhn-source-package-51214" source-rpm="openswan-2.6.21-5.el5.src.rpm"/><source-package last-modified="1251378735" id="rhn-source-package-51215" source-rpm="xen-3.0.3-94.el5.src.rpm"/><source-package last-modified="1251378932" id="rhn-source-package-51217" source-rpm="perl-5.8.8-27.el5.src.rpm"/><source-package last-modified="1251379084" id="rhn-source-package-51218" source-rpm="anaconda-11.1.2.195-1.src.rpm"/><source-package last-modified="1251379266" id="rhn-source-package-51219" source-rpm="oprofile-0.9.4-11.el5.src.rpm"/><source-package last-modified="1251379271" id="rhn-source-package-51220" source-rpm="libcxgb3-1.2.3-1.el5.src.rpm"/><source-package last-modified="1251379350" id="rhn-source-package-51221" source-rpm="openssl-0.9.8e-12.el5.src.rpm"/><source-package last-modified="1251379372" id="rhn-source-package-51222" source-rpm="rhnsd-4.7.0-4.el5.src.rpm"/><source-package last-modified="1251379410" id="rhn-source-package-51223" source-rpm="yum-rhn-plugin-0.5.4-13.el5.src.rpm"/><source-package last-modified="1251379604" id="rhn-source-package-51224" source-rpm="glibc-2.5-42.src.rpm"/><source-package last-modified="1251379751" id="rhn-source-package-51225" source-rpm="grub-0.97-13.5.src.rpm"/><source-package last-modified="1251379956" id="rhn-source-package-51226" source-rpm="bind-9.3.6-4.P1.el5.src.rpm"/><source-package last-modified="1251380315" id="rhn-source-package-51228" source-rpm="m2crypto-0.16-6.el5.6.src.rpm"/><source-package last-modified="1251380332" id="rhn-source-package-51229" source-rpm="OpenIPMI-2.0.16-5.el5.src.rpm"/><source-package last-modified="1251380784" id="rhn-source-package-51231" source-rpm="sblim-1-35.el5.src.rpm"/><source-package last-modified="1251380785" id="rhn-source-package-51232" source-rpm="pykickstart-0.43.5-1.el5.src.rpm"/><source-package last-modified="1251381084" id="rhn-source-package-51233" source-rpm="openais-0.80.6-8.el5.src.rpm"/><source-package last-modified="1251381138" id="rhn-source-package-51234" source-rpm="rdesktop-1.6.0-3.src.rpm"/><source-package last-modified="1251381327" id="rhn-source-package-51235" source-rpm="xorg-x11-proto-devel-7.1-13.el5.src.rpm"/><source-package last-modified="1251381399" id="rhn-source-package-51236" source-rpm="hwdata-0.213.16-1.el5.src.rpm"/><source-package last-modified="1251381471" id="rhn-source-package-51237" source-rpm="gfs2-utils-0.1.62-1.el5.src.rpm"/><source-package last-modified="1251381485" id="rhn-source-package-51238" source-rpm="autofs-5.0.1-0.rc2.131.el5.src.rpm"/><source-package last-modified="1251381702" id="rhn-source-package-51239" source-rpm="selinux-policy-2.4.6-255.el5.src.rpm"/><source-package last-modified="1251382174" id="rhn-source-package-51240" source-rpm="mysql-5.0.77-3.el5.src.rpm"/><source-package last-modified="1251382392" id="rhn-source-package-51242" source-rpm="kernel-2.6.18-164.el5.src.rpm"/><source-package last-modified="1251382562" id="rhn-source-package-51243" source-rpm="sos-1.7-9.27.el5.src.rpm"/><source-package last-modified="1251382771" id="rhn-source-package-51244" source-rpm="sg3_utils-1.25-4.el5.src.rpm"/><source-package last-modified="1251382887" id="rhn-source-package-51245" source-rpm="system-config-network-1.3.99.18-1.el5.src.rpm"/><source-package last-modified="1251383081" id="rhn-source-package-51246" source-rpm="kexec-tools-1.102pre-77.el5.src.rpm"/><source-package last-modified="1251383831" id="rhn-source-package-51247" source-rpm="net-snmp-5.3.2.2-7.el5.src.rpm"/><source-package last-modified="1251384753" id="rhn-source-package-51249" source-rpm="system-config-samba-1.2.41-5.el5.src.rpm"/><source-package last-modified="1251384904" id="rhn-source-package-51252" source-rpm="rpm-4.4.2.3-18.el5.src.rpm"/><source-package last-modified="1251385028" id="rhn-source-package-51253" source-rpm="cman-2.0.115-1.el5.src.rpm"/><source-package last-modified="1251385221" id="rhn-source-package-51254" source-rpm="evolution-data-server-1.12.3-18.el5.src.rpm"/><source-package last-modified="1251385906" id="rhn-source-package-51256" source-rpm="pth-2.0.7-6.el5.src.rpm"/><source-package last-modified="1251386048" id="rhn-source-package-51257" source-rpm="httpd-2.2.3-31.el5.src.rpm"/><source-package last-modified="1251386996" id="rhn-source-package-51260" source-rpm="module-init-tools-3.3-0.pre3.1.54.el5.src.rpm"/><source-package last-modified="1251387058" id="rhn-source-package-51261" source-rpm="findutils-4.2.27-6.el5.src.rpm"/><source-package last-modified="1251388299" id="rhn-source-package-51264" source-rpm="ethtool-6-3.el5.src.rpm"/><source-package last-modified="1251388769" id="rhn-source-package-51267" source-rpm="busybox-1.2.0-7.el5.src.rpm"/><source-package last-modified="1251389199" id="rhn-source-package-51268" source-rpm="iscsi-initiator-utils-6.2.0.871-0.10.el5.src.rpm"/><source-package last-modified="1251389370" id="rhn-source-package-51269" source-rpm="hal-0.5.8.1-52.el5.src.rpm"/><source-package last-modified="1251389709" id="rhn-source-package-51270" source-rpm="rhn-client-tools-0.4.20-9.el5.src.rpm"/><source-package last-modified="1251390130" id="rhn-source-package-51271" source-rpm="dhcpv6-1.0.10-17.el5.src.rpm"/><source-package last-modified="1251390242" id="rhn-source-package-51273" source-rpm="ksh-20080202-14.el5.src.rpm"/><source-package last-modified="1251390924" id="rhn-source-package-51276" source-rpm="amanda-2.5.0p2-8.el5.src.rpm"/><source-package last-modified="1251391067" id="rhn-source-package-51277" source-rpm="yum-3.2.22-20.el5.src.rpm"/><source-package last-modified="1251391969" id="rhn-source-package-51278" source-rpm="openib-1.4.1-3.el5.src.rpm"/><source-package last-modified="1251392244" id="rhn-source-package-51279" source-rpm="openssh-4.3p2-36.el5.src.rpm"/><source-package last-modified="1251393000" id="rhn-source-package-51282" source-rpm="coreutils-5.97-23.el5.src.rpm"/><source-package last-modified="1251393088" id="rhn-source-package-51283" source-rpm="xorg-x11-drv-qxl-0.0.4-1.1.el5.src.rpm"/><source-package last-modified="1251393231" id="rhn-source-package-51284" source-rpm="xorg-x11-drv-ati-6.6.3-3.27.el5.src.rpm"/><source-package last-modified="1251393279" id="rhn-source-package-51285" source-rpm="libksba-1.0.5-2.el5.src.rpm"/><source-package last-modified="1251394307" id="rhn-source-package-51286" source-rpm="rds-tools-1.4-2.el5.src.rpm"/><source-package last-modified="1251395284" id="rhn-source-package-51287" source-rpm="gtk-vnc-0.3.8-3.el5.src.rpm"/><source-package last-modified="1251395433" id="rhn-source-package-51288" source-rpm="redhat-release-5Server-5.4.0.3.src.rpm"/><source-package last-modified="1251396677" id="rhn-source-package-51290" source-rpm="dmraid-1.0.0.rc13-53.el5.src.rpm"/><source-package last-modified="1251397261" id="rhn-source-package-51291" source-rpm="policycoreutils-1.33.12-14.6.el5.src.rpm"/><source-package last-modified="1251397325" id="rhn-source-package-51292" source-rpm="libsemanage-1.9.1-4.4.el5.src.rpm"/><source-package last-modified="1251397720" id="rhn-source-package-51293" source-rpm="initscripts-8.45.30-2.el5.src.rpm"/><source-package last-modified="1251398606" id="rhn-source-package-51295" source-rpm="e4fsprogs-1.41.5-3.el5.src.rpm"/><source-package last-modified="1251399102" id="rhn-source-package-51296" source-rpm="redhat-release-notes-5Server-29.src.rpm"/><source-package last-modified="1251399725" id="rhn-source-package-51297" source-rpm="e2fsprogs-1.39-23.el5.src.rpm"/><source-package last-modified="1251449616" id="rhn-source-package-51299" source-rpm="xorg-x11-drv-nv-2.1.12-6.el5.src.rpm"/><source-package last-modified="1251449622" id="rhn-source-package-51301" source-rpm="libsdp-1.1.99-11.el5.src.rpm"/><source-package last-modified="1251449623" id="rhn-source-package-51302" source-rpm="mkinitrd-5.1.19.6-54.src.rpm"/><source-package last-modified="1251449625" id="rhn-source-package-51303" source-rpm="libdhcp-1.20-10.el5.src.rpm"/><source-package last-modified="1251449627" id="rhn-source-package-51304" source-rpm="iptables-1.3.5-5.3.el5.src.rpm"/><source-package last-modified="1251449629" id="rhn-source-package-51305" source-rpm="libhbaapi-2.2-4.el5.src.rpm"/><source-package last-modified="1251449634" id="rhn-source-package-51307" source-rpm="libassuan-1.0.4-5.el5.src.rpm"/><source-package last-modified="1251449639" id="rhn-source-package-51308" source-rpm="blktrace-1.0.0-6.el5.src.rpm"/><source-package last-modified="1251449642" id="rhn-source-package-51309" source-rpm="microcode_ctl-1.17-1.48.el5.src.rpm"/><source-package last-modified="1251449646" id="rhn-source-package-51310" source-rpm="opensm-3.2.6-2.el5.src.rpm"/><source-package last-modified="1251449649" id="rhn-source-package-51311" source-rpm="lvm2-2.02.46-8.el5.src.rpm"/><source-package last-modified="1251449650" id="rhn-source-package-51312" source-rpm="perftest-1.2-14.el5.src.rpm"/><source-package last-modified="1251449653" id="rhn-source-package-51313" source-rpm="nfs-utils-lib-1.0.8-7.6.el5.src.rpm"/><source-package last-modified="1251449690" id="rhn-source-package-51314" source-rpm="mvapich-1.1.0-0.3355.2.el5.src.rpm"/><source-package last-modified="1251449692" id="rhn-source-package-51315" source-rpm="nss_ldap-253-21.el5.src.rpm"/><source-package last-modified="1251449704" id="rhn-source-package-51317" source-rpm="gnupg2-2.0.10-3.el5.src.rpm"/><source-package last-modified="1251449708" id="rhn-source-package-51318" source-rpm="libgcrypt-1.4.4-5.el5.src.rpm"/><source-package last-modified="1251449711" id="rhn-source-package-51319" source-rpm="linuxwacom-0.7.8.3-6.el5.src.rpm"/><source-package last-modified="1251449719" id="rhn-source-package-51320" source-rpm="NetworkManager-0.7.0-9.el5.src.rpm"/><source-package last-modified="1251449726" id="rhn-source-package-51321" source-rpm="netpbm-10.35.58-8.el5.src.rpm"/><source-package last-modified="1251449728" id="rhn-source-package-51322" source-rpm="libibmad-1.2.3-1.el5.src.rpm"/><source-package last-modified="1251449731" id="rhn-source-package-51323" source-rpm="ecryptfs-utils-75-5.el5.src.rpm"/><source-package last-modified="1251449735" id="rhn-source-package-51325" source-rpm="librdmacm-1.0.8-5.el5.src.rpm"/><source-package last-modified="1251449737" id="rhn-source-package-51326" source-rpm="fipscheck-1.2.0-1.el5.src.rpm"/><source-package last-modified="1251449753" id="rhn-source-package-51327" source-rpm="pam-0.99.6.2-6.el5.src.rpm"/><source-package last-modified="1251449758" id="rhn-source-package-51329" source-rpm="libmlx4-1.0.1-2.el5.src.rpm"/><source-package last-modified="1251449761" id="rhn-source-package-51330" source-rpm="fuse-2.7.4-8.el5.src.rpm"/><source-package last-modified="1251449777" id="rhn-source-package-51332" source-rpm="openmpi-1.3.2-2.el5.src.rpm"/><source-package last-modified="1251449794" id="rhn-source-package-51333" source-rpm="cyrus-sasl-2.1.22-5.el5.src.rpm"/><source-package last-modified="1251449795" id="rhn-source-package-51334" source-rpm="acpid-1.0.4-9.el5.src.rpm"/><source-package last-modified="1251449814" id="rhn-source-package-51335" source-rpm="python-2.4.3-27.el5.src.rpm"/><source-package last-modified="1251449818" id="rhn-source-package-51336" source-rpm="libX11-1.0.3-11.el5.src.rpm"/><source-package last-modified="1251449821" id="rhn-source-package-51337" source-rpm="infiniband-diags-1.4.4-1.el5.src.rpm"/><source-package last-modified="1251449826" id="rhn-source-package-51338" source-rpm="dapl-2.0.19-2.el5.src.rpm"/><source-package last-modified="1251449837" id="rhn-source-package-51339" source-rpm="openhpi-2.14.0-5.el5.src.rpm"/><source-package last-modified="1251449840" id="rhn-source-package-51340" source-rpm="libnes-0.6-2.el5.src.rpm"/><source-package last-modified="1251449853" id="rhn-source-package-51341" source-rpm="gdm-2.16.0-56.el5.src.rpm"/><source-package last-modified="1251449855" id="rhn-source-package-51342" source-rpm="libsepol-1.15.2-2.el5.src.rpm"/><source-package last-modified="1251449859" id="rhn-source-package-51343" source-rpm="wget-1.11.4-2.el5.src.rpm"/><source-package last-modified="1251449868" id="rhn-source-package-51344" source-rpm="ibutils-1.2-10.el5.src.rpm"/><source-package last-modified="1251449870" id="rhn-source-package-51345" source-rpm="qlvnictools-0.0.1-11.el5.src.rpm"/><source-package last-modified="1251449872" id="rhn-source-package-51346" source-rpm="libibverbs-1.1.2-4.el5.src.rpm"/><source-package last-modified="1251449874" id="rhn-source-package-51347" source-rpm="udev-095-14.21.el5.src.rpm"/><source-package last-modified="1251449876" id="rhn-source-package-51348" source-rpm="device-mapper-1.02.32-1.el5.src.rpm"/><source-package last-modified="1251449880" id="rhn-source-package-51349" source-rpm="mstflint-1.4-1.el5.src.rpm"/><source-package last-modified="1251449917" id="rhn-source-package-51350" source-rpm="krb5-1.6.1-36.el5.src.rpm"/><source-package last-modified="1251449920" id="rhn-source-package-51351" source-rpm="xkeyboard-config-0.8-9.el5.src.rpm"/><source-package last-modified="1251450034" id="rhn-source-package-51353" source-rpm="samba-3.0.33-3.14.el5.src.rpm"/><source-package last-modified="1251450040" id="rhn-source-package-51354" source-rpm="libibcommon-1.1.2-1.el5.src.rpm"/><source-package last-modified="1251450042" id="rhn-source-package-51355" source-rpm="libibumad-1.2.3-1.el5.src.rpm"/><source-package last-modified="1251450048" id="rhn-source-package-51357" source-rpm="mpitests-3.1-3.el5.src.rpm"/><source-package last-modified="1251450049" id="rhn-source-package-51358" source-rpm="srptools-0.0.4-6.el5.src.rpm"/><source-package last-modified="1251450058" id="rhn-source-package-51359" source-rpm="cvs-1.11.22-7.el5.src.rpm"/><source-package last-modified="1251450110" id="rhn-source-package-51361" source-rpm="mvapich2-1.2-0.p1.3.el5.src.rpm"/><source-package last-modified="1251450113" id="rhn-source-package-51362" source-rpm="pinentry-0.7.3-3.el5.src.rpm"/><source-package last-modified="1251450114" id="rhn-source-package-51363" source-rpm="fcoe-utils-1.0.7-4.el5.src.rpm"/><source-package last-modified="1251450117" id="rhn-source-package-51364" source-rpm="pdksh-5.2.14-36.el5.src.rpm"/><source-package last-modified="1251450122" id="rhn-source-package-51365" source-rpm="totem-2.16.7-6.el5.src.rpm"/><source-package last-modified="1251450123" id="rhn-source-package-51366" source-rpm="python-pyblock-0.26-4.el5.src.rpm"/><source-package last-modified="1251450157" id="rhn-source-package-51367" source-rpm="gdb-6.8-37.el5.src.rpm"/><source-package last-modified="1251450159" id="rhn-source-package-51368" source-rpm="hmaccalc-0.9.6-1.el5.src.rpm"/><source-package last-modified="1251450163" id="rhn-source-package-51370" source-rpm="tftp-0.49-2.src.rpm"/><source-package last-modified="1251450166" id="rhn-source-package-51371" source-rpm="dhcp-3.0.5-21.el5.src.rpm"/><source-package last-modified="1251450168" id="rhn-source-package-51372" source-rpm="vsftpd-2.0.5-16.el5.src.rpm"/><source-package last-modified="1251450170" id="rhn-source-package-51373" source-rpm="mlocate-0.15-1.el5.2.src.rpm"/><source-package last-modified="1251450172" id="rhn-source-package-51374" source-rpm="mod_nss-1.0.3-8.el5.src.rpm"/><source-package last-modified="1251450174" id="rhn-source-package-51375" source-rpm="libhbalinux-1.0.7-3.el5.src.rpm"/><source-package last-modified="1251450177" id="rhn-source-package-51376" source-rpm="nfs-utils-1.0.9-42.el5.src.rpm"/><source-package last-modified="1251450181" id="rhn-source-package-51377" source-rpm="libibcm-1.0.4-3.el5.src.rpm"/><source-package last-modified="1251450182" id="rhn-source-package-51378" source-rpm="ofed-docs-1.4.1-2.el5.src.rpm"/><source-package last-modified="1251450185" id="rhn-source-package-51379" source-rpm="strace-4.5.18-5.el5.src.rpm"/><source-package last-modified="1251450193" id="rhn-source-package-51380" source-rpm="systemtap-0.9.7-5.el5.src.rpm"/><source-package last-modified="1251450197" id="rhn-source-package-51382" source-rpm="dmidecode-2.9-1.el5.src.rpm"/><source-package last-modified="1251450199" id="rhn-source-package-51383" source-rpm="libpciaccess-0.10.5-2.el5.src.rpm"/><source-package last-modified="1251450200" id="rhn-source-package-51384" source-rpm="watchdog-5.6-1.el5.src.rpm"/><source-package last-modified="1251450201" id="rhn-source-package-51385" source-rpm="rhnlib-2.2.7-2.el5.src.rpm"/><source-package last-modified="1251450205" id="rhn-source-package-51387" source-rpm="mpi-selector-1.0.2-1.el5.src.rpm"/><source-package last-modified="1251450215" id="rhn-source-package-51388" source-rpm="cups-1.3.7-11.el5.src.rpm"/><source-package last-modified="1251450345" id="rhn-source-package-51389" source-rpm="gcc44-4.4.0-6.el5.src.rpm"/><source-package last-modified="1251450347" id="rhn-source-package-51390" source-rpm="qperf-0.4.4-3.el5.src.rpm"/><source-package last-modified="1251450351" id="rhn-source-package-51391" source-rpm="lftp-3.7.11-4.el5.src.rpm"/><source-package last-modified="1251450432" id="rhn-source-package-51392" source-rpm="gcc-4.1.2-46.el5.src.rpm"/><source-package last-modified="1251450436" id="rhn-source-package-51394" source-rpm="libselinux-1.33.4-5.5.el5.src.rpm"/><source-package last-modified="1251450438" id="rhn-source-package-51395" source-rpm="libmthca-1.0.5-4.el5.src.rpm"/><source-package last-modified="1251450439" id="rhn-source-package-51396" source-rpm="ibsim-0.5-1.el5.src.rpm"/><source-package last-modified="1251450443" id="rhn-source-package-51397" source-rpm="xorg-x11-drv-i810-1.6.5-9.25.el5.src.rpm"/><source-package last-modified="1251450459" id="rhn-source-package-51398" source-rpm="tog-pegasus-2.7.2-1.el5.src.rpm"/><source-package last-modified="1251450463" id="rhn-source-package-51399" source-rpm="audit-1.7.13-2.el5.src.rpm"/><source-package last-modified="1251450467" id="rhn-source-package-51400" source-rpm="mysql-connector-odbc-3.51.26r1127-1.el5.src.rpm"/><source-package last-modified="1251450540" id="rhn-source-package-51404" source-rpm="ghostscript-8.15.2-9.11.el5.src.rpm"/><source-package last-modified="1251899746" id="rhn-source-package-51422" source-rpm="ktune-0.2-4.el5_4.3.src.rpm"/><source-package last-modified="1252421014" id="rhn-source-package-51439" source-rpm="fetchmail-6.3.6-1.1.el5_3.1.src.rpm"/><source-package last-modified="1252423508" id="rhn-source-package-51440" source-rpm="xmlsec1-1.2.9-8.1.1.src.rpm"/><source-package last-modified="1252537523" id="rhn-source-package-51552" source-rpm="nspr-4.7.5-1.el5_4.src.rpm"/><source-package last-modified="1252537523" id="rhn-source-package-51553" source-rpm="firefox-3.0.14-1.el5_4.src.rpm"/><source-package last-modified="1252537523" id="rhn-source-package-51554" source-rpm="xulrunner-1.9.0.14-1.el5_4.src.rpm"/><source-package last-modified="1252608416" id="rhn-source-package-51603" source-rpm="cman-2.0.115-1.el5_4.2.src.rpm"/><source-package last-modified="1252657160" id="rhn-source-package-51605" source-rpm="net-snmp-5.3.2.2-7.el5_4.2.src.rpm"/><source-package last-modified="1253198035" id="rhn-source-package-51629" source-rpm="freeradius-1.1.3-1.5.el5_4.src.rpm"/><source-package last-modified="1253545119" id="rhn-source-package-51633" source-rpm="neon-0.25.5-10.el5_4.1.src.rpm"/><source-package last-modified="1253610673" id="rhn-source-package-51640" source-rpm="dmidecode-2.10-2.el5.src.rpm"/><source-package last-modified="1253716552" id="rhn-source-package-51648" source-rpm="cyrus-imapd-2.3.7-7.el5_4.3.src.rpm"/><source-package last-modified="1253818201" id="rhn-source-package-51657" source-rpm="newt-0.52.2-12.el5_4.1.src.rpm"/><source-package last-modified="1254210412" id="rhn-source-package-51668" source-rpm="kdelibs-3.5.4-22.el5_4.1.src.rpm"/><source-package last-modified="1254252004" id="rhn-source-package-51670" source-rpm="kernel-2.6.18-164.2.1.el5.src.rpm"/><source-package last-modified="1254298538" id="rhn-source-package-51672" source-rpm="tzdata-2009m-1.el5.src.rpm"/><source-package last-modified="1254299200" id="rhn-source-package-51674" source-rpm="autofs-5.0.1-0.rc2.131.el5_4.1.src.rpm"/><source-package last-modified="1254323011" id="rhn-source-package-51676" source-rpm="openssh-4.3p2-36.el5_4.2.src.rpm"/><source-package last-modified="1254416076" id="rhn-source-package-51678" source-rpm="elinks-0.11.1-6.el5_4.1.src.rpm"/><source-package last-modified="1254419558" id="rhn-source-package-51679" source-rpm="xen-3.0.3-94.el5_4.1.src.rpm"/><source-package last-modified="1254490262" id="rhn-source-package-51751" source-rpm="openais-0.80.6-8.el5_4.1.src.rpm"/><source-package last-modified="1254726884" id="rhn-source-package-51754" source-rpm="lvm2-2.02.46-8.el5_4.1.src.rpm"/><source-package last-modified="1254928154" id="rhn-source-package-51764" source-rpm="postgresql-8.1.18-2.el5_4.1.src.rpm"/><source-package last-modified="1254997670" id="rhn-source-package-51767" source-rpm="OpenIPMI-2.0.16-5.el5_4.1.src.rpm"/><source-package last-modified="1255031432" id="rhn-source-package-51775" source-rpm="squirrelmail-1.4.8-5.el5_4.10.src.rpm"/><source-package last-modified="1255418970" id="rhn-source-package-51785" source-rpm="tcsh-6.14-14.el5_4.2.src.rpm"/><source-package last-modified="1255421490" id="rhn-source-package-51786" source-rpm="selinux-policy-2.4.6-255.el5_4.1.src.rpm"/><source-package last-modified="1255591926" id="rhn-source-package-51815" source-rpm="coreutils-5.97-23.el5_4.1.src.rpm"/><source-package last-modified="1255596254" id="rhn-source-package-51820" source-rpm="poppler-0.5.4-4.4.el5_4.11.src.rpm"/><source-package last-modified="1255596858" id="rhn-source-package-51822" source-rpm="cups-1.3.7-11.el5_4.3.src.rpm"/><source-package last-modified="1255609237" id="rhn-source-package-51823" source-rpm="xen-3.0.3-94.el5_4.2.src.rpm"/></source-packages><rhn-channel-errata><erratum last-modified="1173884075" id="rhn-erratum-5388" advisory-name="RHSA-2007:0075"/><erratum last-modified="1173884812" id="rhn-erratum-5390" advisory-name="RHSA-2007:0107"/><erratum last-modified="1173884788" id="rhn-erratum-5392" advisory-name="RHEA-2007:0105"/><erratum last-modified="1173885139" id="rhn-erratum-5393" advisory-name="RHBA-2007:0109"/><erratum last-modified="1173884466" id="rhn-erratum-5394" advisory-name="RHBA-2007:0098"/><erratum last-modified="1173884228" id="rhn-erratum-5396" advisory-name="RHSA-2007:0082"/><erratum last-modified="1173884120" id="rhn-erratum-5397" advisory-name="RHSA-2007:0057"/><erratum last-modified="1173884286" id="rhn-erratum-5398" advisory-name="RHSA-2007:0061"/><erratum last-modified="1173884494" id="rhn-erratum-5399" advisory-name="RHSA-2007:0097"/><erratum last-modified="1173885169" id="rhn-erratum-5400" advisory-name="RHBA-2007:0113"/><erratum last-modified="1173885206" id="rhn-erratum-5401" advisory-name="RHSA-2007:0114"/><erratum last-modified="1173884509" id="rhn-erratum-5402" advisory-name="RHSA-2007:0068"/><erratum last-modified="1173884663" id="rhn-erratum-5403" advisory-name="RHBA-2007:0103"/><erratum last-modified="1173885044" id="rhn-erratum-5404" advisory-name="RHBA-2007:0100"/><erratum last-modified="1173884681" id="rhn-erratum-5405" advisory-name="RHSA-2007:0099"/><erratum last-modified="1173885203" id="rhn-erratum-5406" advisory-name="RHEA-2007:0115"/><erratum last-modified="1173885075" id="rhn-erratum-5407" advisory-name="RHBA-2007:0110"/><erratum last-modified="1173887436" id="rhn-erratum-5411" advisory-name="RHEA-2007:0121"/><erratum last-modified="1173889743" id="rhn-erratum-5412" advisory-name="RHSA-2007:0066"/><erratum last-modified="1174644491" id="rhn-erratum-5427" advisory-name="RHSA-2007:0124"/><erratum last-modified="1174688135" id="rhn-erratum-5428" advisory-name="RHEA-2007:0128"/><erratum last-modified="1175179674" id="rhn-erratum-5431" advisory-name="RHBA-2007:0129"/><erratum last-modified="1175624424" id="rhn-erratum-5443" advisory-name="RHSA-2007:0095"/><erratum last-modified="1175625002" id="rhn-erratum-5444" advisory-name="RHSA-2007:0132"/><erratum last-modified="1175625829" id="rhn-erratum-5445" advisory-name="RHSA-2007:0127"/><erratum last-modified="1175626420" id="rhn-erratum-5447" advisory-name="RHSA-2007:0131"/><erratum last-modified="1176723344" id="rhn-erratum-5465" advisory-name="RHSA-2007:0150"/><erratum last-modified="1176724173" id="rhn-erratum-5466" advisory-name="RHSA-2007:0123"/><erratum last-modified="1176738127" id="rhn-erratum-5470" advisory-name="RHSA-2007:0157"/><erratum last-modified="1177062426" id="rhn-erratum-5475" advisory-name="RHSA-2007:0153"/><erratum last-modified="1177951006" id="rhn-erratum-5619" advisory-name="RHSA-2007:0169"/><erratum last-modified="1199735207" id="rhn-erratum-5645" advisory-name="RHSA-2007:0336"/><erratum last-modified="1178639124" id="rhn-erratum-5646" advisory-name="RHSA-2007:0348"/><erratum last-modified="1178716315" id="rhn-erratum-5647" advisory-name="RHSA-2007:0346"/><erratum last-modified="1179496330" id="rhn-erratum-5655" advisory-name="RHBA-2007:0161"/><erratum last-modified="1199735373" id="rhn-erratum-5656" advisory-name="RHSA-2007:0338"/><erratum last-modified="1199906533" id="rhn-erratum-5676" advisory-name="RHSA-2007:0354"/><erratum last-modified="1179161981" id="rhn-erratum-5677" advisory-name="RHSA-2007:0327"/><erratum last-modified="1179338483" id="rhn-erratum-5689" advisory-name="RHBA-2007:0352"/><erratum last-modified="1179340366" id="rhn-erratum-5690" advisory-name="RHSA-2007:0347"/><erratum last-modified="1179411433" id="rhn-erratum-5694" advisory-name="RHSA-2007:0342"/><erratum last-modified="1199735437" id="rhn-erratum-5695" advisory-name="RHSA-2007:0345"/><erratum last-modified="1199742173" id="rhn-erratum-5697" advisory-name="RHSA-2007:0358"/><erratum last-modified="1199743831" id="rhn-erratum-5698" advisory-name="RHSA-2007:0356"/><erratum last-modified="1199735668" id="rhn-erratum-5707" advisory-name="RHSA-2007:0343"/><erratum last-modified="1180011522" id="rhn-erratum-5710" advisory-name="RHBA-2007:0365"/><erratum last-modified="1180516364" id="rhn-erratum-5718" advisory-name="RHSA-2007:0344"/><erratum last-modified="1199742671" id="rhn-erratum-5720" advisory-name="RHSA-2007:0389"/><erratum last-modified="1199742298" id="rhn-erratum-5721" advisory-name="RHSA-2007:0391"/><erratum last-modified="1199897038" id="rhn-erratum-5724" advisory-name="RHSA-2007:0400"/><erratum last-modified="1199743349" id="rhn-erratum-5728" advisory-name="RHSA-2007:0386"/><erratum last-modified="1199743812" id="rhn-erratum-5730" advisory-name="RHSA-2007:0385"/><erratum last-modified="1199893698" id="rhn-erratum-5800" advisory-name="RHSA-2007:0403"/><erratum last-modified="1199900997" id="rhn-erratum-5806" advisory-name="RHSA-2007:0494"/><erratum last-modified="1199891884" id="rhn-erratum-5807" advisory-name="RHSA-2007:0492"/><erratum last-modified="1181815032" id="rhn-erratum-5809" advisory-name="RHSA-2007:0497"/><erratum last-modified="1199729488" id="rhn-erratum-5812" advisory-name="RHSA-2007:0395"/><erratum last-modified="1181832884" id="rhn-erratum-5816" advisory-name="RHSA-2007:0376"/><erratum last-modified="1199744532" id="rhn-erratum-5817" advisory-name="RHSA-2007:0501"/><erratum last-modified="1182155439" id="rhn-erratum-5820" advisory-name="RHBA-2007:0504"/><erratum last-modified="1182778752" id="rhn-erratum-5825" advisory-name="RHSA-2007:0510"/><erratum last-modified="1182871332" id="rhn-erratum-5833" advisory-name="RHSA-2007:0556"/><erratum last-modified="1199744251" id="rhn-erratum-5835" advisory-name="RHSA-2007:0562"/><erratum last-modified="1211378384" id="rhn-erratum-5836" advisory-name="RHBA-2007:0373"/><erratum last-modified="1211378384" id="rhn-erratum-5837" advisory-name="RHBA-2007:0370"/><erratum last-modified="1211378431" id="rhn-erratum-5838" advisory-name="RHBA-2007:0357"/><erratum last-modified="1211378384" id="rhn-erratum-5839" advisory-name="RHBA-2007:0339"/><erratum last-modified="1211378384" id="rhn-erratum-5840" advisory-name="RHBA-2007:0333"/><erratum last-modified="1211378384" id="rhn-erratum-5842" advisory-name="RHBA-2007:0496"/><erratum last-modified="1211378384" id="rhn-erratum-5843" advisory-name="RHBA-2007:0407"/><erratum last-modified="1211378384" id="rhn-erratum-5844" advisory-name="RHEA-2007:0399"/><erratum last-modified="1211378384" id="rhn-erratum-5845" advisory-name="RHBA-2007:0382"/><erratum last-modified="1183016029" id="rhn-erratum-5854" advisory-name="RHSA-2007:0559"/><erratum last-modified="1211378384" id="rhn-erratum-5859" advisory-name="RHEA-2007:0629"/><erratum last-modified="1211378384" id="rhn-erratum-5860" advisory-name="RHBA-2007:0622"/><erratum last-modified="1211378384" id="rhn-erratum-5861" advisory-name="RHBA-2007:0585"/><erratum last-modified="1211378431" id="rhn-erratum-5862" advisory-name="RHBA-2007:0517"/><erratum last-modified="1211378431" id="rhn-erratum-5863" advisory-name="RHBA-2007:0515"/><erratum last-modified="1184040025" id="rhn-erratum-5865" advisory-name="RHSA-2007:0595"/><erratum last-modified="1184231207" id="rhn-erratum-5870" advisory-name="RHSA-2007:0674"/><erratum last-modified="1184231932" id="rhn-erratum-5871" advisory-name="RHSA-2007:0520"/><erratum last-modified="1184668567" id="rhn-erratum-5877" advisory-name="RHSA-2007:0569"/><erratum last-modified="1211378384" id="rhn-erratum-5879" advisory-name="RHBA-2007:0529"/><erratum last-modified="1211378384" id="rhn-erratum-5880" advisory-name="RHBA-2007:0527"/><erratum last-modified="1211378431" id="rhn-erratum-5881" advisory-name="RHBA-2007:0495"/><erratum last-modified="1211378384" id="rhn-erratum-5887" advisory-name="RHBA-2007:0693"/><erratum last-modified="1199899221" id="rhn-erratum-5890" advisory-name="RHSA-2007:0724"/><erratum last-modified="1184852000" id="rhn-erratum-5891" advisory-name="RHEA-2007:0689"/><erratum last-modified="1199898988" id="rhn-erratum-5892" advisory-name="RHSA-2007:0740"/><erratum last-modified="1199746499" id="rhn-erratum-5915" advisory-name="RHSA-2007:0720"/><erratum last-modified="1185821923" id="rhn-erratum-5916" advisory-name="RHSA-2007:0732"/><erratum last-modified="1199746097" id="rhn-erratum-5919" advisory-name="RHSA-2007:0721"/><erratum last-modified="1199734585" id="rhn-erratum-5920" advisory-name="RHSA-2007:0731"/><erratum last-modified="1186514400" id="rhn-erratum-5928" advisory-name="RHSA-2007:0777"/><erratum last-modified="1199753089" id="rhn-erratum-5960" advisory-name="RHSA-2007:0860"/><erratum last-modified="1199753000" id="rhn-erratum-5969" advisory-name="RHSA-2007:0875"/><erratum last-modified="1188914573" id="rhn-erratum-5970" advisory-name="RHSA-2007:0539"/><erratum last-modified="1199750666" id="rhn-erratum-5973" advisory-name="RHSA-2007:0873"/><erratum last-modified="1188929617" id="rhn-erratum-5975" advisory-name="RHSA-2007:0858"/><erratum last-modified="1189167282" id="rhn-erratum-5982" advisory-name="RHSA-2007:0892"/><erratum last-modified="1189674787" id="rhn-erratum-5984" advisory-name="RHSA-2007:0705"/><erratum last-modified="1199750631" id="rhn-erratum-5985" advisory-name="RHSA-2007:0883"/><erratum last-modified="1199753060" id="rhn-erratum-5992" advisory-name="RHSA-2007:0845"/><erratum last-modified="1199749936" id="rhn-erratum-5993" advisory-name="RHSA-2007:0890"/><erratum last-modified="1199733043" id="rhn-erratum-5998" advisory-name="RHSA-2007:0513"/><erratum last-modified="1190795252" id="rhn-erratum-5999" advisory-name="RHSA-2007:0871"/><erratum last-modified="1190924497" id="rhn-erratum-6027" advisory-name="RHSA-2007:0936"/><erratum last-modified="1191358414" id="rhn-erratum-6038" advisory-name="RHSA-2007:0323"/><erratum last-modified="1191358509" id="rhn-erratum-6039" advisory-name="RHSA-2007:0951"/><erratum last-modified="1199814823" id="rhn-erratum-6040" advisory-name="RHSA-2007:0933"/><erratum last-modified="1191510370" id="rhn-erratum-6043" advisory-name="RHEA-2007:0928"/><erratum last-modified="1199814624" id="rhn-erratum-6045" advisory-name="RHSA-2007:0905"/><erratum last-modified="1199841433" id="rhn-erratum-6048" advisory-name="RHSA-2007:0909"/><erratum last-modified="1192127161" id="rhn-erratum-6052" advisory-name="RHSA-2007:0960"/><erratum last-modified="1192198966" id="rhn-erratum-6054" advisory-name="RHSA-2007:0964"/><erratum last-modified="1199839438" id="rhn-erratum-6056" advisory-name="RHSA-2007:0979"/><erratum last-modified="1193050357" id="rhn-erratum-6060" advisory-name="RHSA-2007:0940"/><erratum last-modified="1199814764" id="rhn-erratum-6061" advisory-name="RHSA-2007:0975"/><erratum last-modified="1199840209" id="rhn-erratum-6065" advisory-name="RHSA-2007:0992"/><erratum last-modified="1194449155" id="rhn-erratum-6071" advisory-name="RHBA-2007:0383"/><erratum last-modified="1194449155" id="rhn-erratum-6072" advisory-name="RHBA-2007:0499"/><erratum last-modified="1194449155" id="rhn-erratum-6073" advisory-name="RHEA-2007:0374"/><erratum last-modified="1194449155" id="rhn-erratum-6074" advisory-name="RHBA-2007:0500"/><erratum last-modified="1194449155" id="rhn-erratum-6075" advisory-name="RHBA-2007:0498"/><erratum last-modified="1194449155" id="rhn-erratum-6076" advisory-name="RHBA-2007:0381"/><erratum last-modified="1194449155" id="rhn-erratum-6078" advisory-name="RHBA-2007:0325"/><erratum last-modified="1194449155" id="rhn-erratum-6079" advisory-name="RHEA-2007:0900"/><erratum last-modified="1194449155" id="rhn-erratum-6080" advisory-name="RHEA-2007:0899"/><erratum last-modified="1194449155" id="rhn-erratum-6081" advisory-name="RHEA-2007:0901"/><erratum last-modified="1194449155" id="rhn-erratum-6082" advisory-name="RHEA-2007:0874"/><erratum last-modified="1194449155" id="rhn-erratum-6083" advisory-name="RHEA-2007:0882"/><erratum last-modified="1194449155" id="rhn-erratum-6084" advisory-name="RHEA-2007:0855"/><erratum last-modified="1194449155" id="rhn-erratum-6085" advisory-name="RHEA-2007:0854"/><erratum last-modified="1194449155" id="rhn-erratum-6086" advisory-name="RHBA-2007:0887"/><erratum last-modified="1194449155" id="rhn-erratum-6087" advisory-name="RHBA-2007:0659"/><erratum last-modified="1194531234" id="rhn-erratum-6088" advisory-name="RHBA-2007:0826"/><erratum last-modified="1194449155" id="rhn-erratum-6090" advisory-name="RHBA-2007:0821"/><erratum last-modified="1194449155" id="rhn-erratum-6091" advisory-name="RHBA-2007:0692"/><erratum last-modified="1194449155" id="rhn-erratum-6092" advisory-name="RHEA-2007:0852"/><erratum last-modified="1194449155" id="rhn-erratum-6094" advisory-name="RHBA-2007:0676"/><erratum last-modified="1194449155" id="rhn-erratum-6095" advisory-name="RHBA-2007:0719"/><erratum last-modified="1194446118" id="rhn-erratum-6096" advisory-name="RHBA-2007:0836"/><erratum last-modified="1194449155" id="rhn-erratum-6097" advisory-name="RHBA-2007:0760"/><erratum last-modified="1194449155" id="rhn-erratum-6099" advisory-name="RHBA-2007:0718"/><erratum last-modified="1194449155" id="rhn-erratum-6101" advisory-name="RHBA-2007:0712"/><erratum last-modified="1194449155" id="rhn-erratum-6102" advisory-name="RHBA-2007:0663"/><erratum last-modified="1194449155" id="rhn-erratum-6103" advisory-name="RHEA-2007:0678"/><erratum last-modified="1194449155" id="rhn-erratum-6104" advisory-name="RHEA-2007:0893"/><erratum last-modified="1194449155" id="rhn-erratum-6105" advisory-name="RHBA-2007:0561"/><erratum last-modified="1194449155" id="rhn-erratum-6106" advisory-name="RHBA-2007:0560"/><erratum last-modified="1194449155" id="rhn-erratum-6107" advisory-name="RHBA-2007:0554"/><erratum last-modified="1194449155" id="rhn-erratum-6108" advisory-name="RHEA-2007:0568"/><erratum last-modified="1194449155" id="rhn-erratum-6109" advisory-name="RHBA-2007:0553"/><erratum last-modified="1194476961" id="rhn-erratum-6110" advisory-name="RHBA-2007:0563"/><erratum last-modified="1194449155" id="rhn-erratum-6111" advisory-name="RHEA-2007:0567"/><erratum last-modified="1194531182" id="rhn-erratum-6112" advisory-name="RHBA-2007:0579"/><erratum last-modified="1194449155" id="rhn-erratum-6113" advisory-name="RHBA-2007:0575"/><erratum last-modified="1194449155" id="rhn-erratum-6114" advisory-name="RHBA-2007:0599"/><erratum last-modified="1194482853" id="rhn-erratum-6115" advisory-name="RHBA-2007:0959"/><erratum last-modified="1194449155" id="rhn-erratum-6116" advisory-name="RHBA-2007:0397"/><erratum last-modified="1194446118" id="rhn-erratum-6117" advisory-name="RHEA-2007:0601"/><erratum last-modified="1194449155" id="rhn-erratum-6119" advisory-name="RHBA-2007:0603"/><erratum last-modified="1194449155" id="rhn-erratum-6120" advisory-name="RHBA-2007:0602"/><erratum last-modified="1194449155" id="rhn-erratum-6124" advisory-name="RHEA-2007:0551"/><erratum last-modified="1194449155" id="rhn-erratum-6126" advisory-name="RHEA-2007:0641"/><erratum last-modified="1194449155" id="rhn-erratum-6129" advisory-name="RHEA-2007:0645"/><erratum last-modified="1194449155" id="rhn-erratum-6130" advisory-name="RHBA-2007:0656"/><erratum last-modified="1194449155" id="rhn-erratum-6132" advisory-name="RHBA-2007:0511"/><erratum last-modified="1194449155" id="rhn-erratum-6136" advisory-name="RHEA-2007:0630"/><erratum last-modified="1194446125" id="rhn-erratum-6137" advisory-name="RHEA-2007:0635"/><erratum last-modified="1194449155" id="rhn-erratum-6138" advisory-name="RHEA-2007:0607"/><erratum last-modified="1194449155" id="rhn-erratum-6139" advisory-name="RHEA-2007:0524"/><erratum last-modified="1194446118" id="rhn-erratum-6140" advisory-name="RHEA-2007:0587"/><erratum last-modified="1194449155" id="rhn-erratum-6142" advisory-name="RHEA-2007:0583"/><erratum last-modified="1194449155" id="rhn-erratum-6144" advisory-name="RHBA-2007:0598"/><erratum last-modified="1194449155" id="rhn-erratum-6146" advisory-name="RHEA-2007:0531"/><erratum last-modified="1194449155" id="rhn-erratum-6148" advisory-name="RHBA-2007:0620"/><erratum last-modified="1194449155" id="rhn-erratum-6149" advisory-name="RHBA-2007:0548"/><erratum last-modified="1194449155" id="rhn-erratum-6150" advisory-name="RHEA-2007:0521"/><erratum last-modified="1194449155" id="rhn-erratum-6151" advisory-name="RHBA-2007:0549"/><erratum last-modified="1194449155" id="rhn-erratum-6152" advisory-name="RHBA-2007:0541"/><erratum last-modified="1194449155" id="rhn-erratum-6153" advisory-name="RHBA-2007:0651"/><erratum last-modified="1194531406" id="rhn-erratum-6154" advisory-name="RHBA-2007:0544"/><erratum last-modified="1194449155" id="rhn-erratum-6156" advisory-name="RHBA-2007:0834"/><erratum last-modified="1194449155" id="rhn-erratum-6157" advisory-name="RHBA-2007:0632"/><erratum last-modified="1194449155" id="rhn-erratum-6158" advisory-name="RHBA-2007:0523"/><erratum last-modified="1194449155" id="rhn-erratum-6159" advisory-name="RHBA-2007:0610"/><erratum last-modified="1194449155" id="rhn-erratum-6160" advisory-name="RHBA-2007:0545"/><erratum last-modified="1194449155" id="rhn-erratum-6161" advisory-name="RHBA-2007:0538"/><erratum last-modified="1194449155" id="rhn-erratum-6162" advisory-name="RHBA-2007:0621"/><erratum last-modified="1194449155" id="rhn-erratum-6163" advisory-name="RHBA-2007:0536"/><erratum last-modified="1194449155" id="rhn-erratum-6164" advisory-name="RHBA-2007:0550"/><erratum last-modified="1194449155" id="rhn-erratum-6166" advisory-name="RHBA-2007:0522"/><erratum last-modified="1194449155" id="rhn-erratum-6168" advisory-name="RHBA-2007:0516"/><erratum last-modified="1194449155" id="rhn-erratum-6169" advisory-name="RHBA-2007:0614"/><erratum last-modified="1194449155" id="rhn-erratum-6170" advisory-name="RHBA-2007:0618"/><erratum last-modified="1194449155" id="rhn-erratum-6171" advisory-name="RHEA-2007:0617"/><erratum last-modified="1194449155" id="rhn-erratum-6172" advisory-name="RHBA-2007:0626"/><erratum last-modified="1194449155" id="rhn-erratum-6173" advisory-name="RHBA-2007:0594"/><erratum last-modified="1194449155" id="rhn-erratum-6174" advisory-name="RHBA-2007:0590"/><erratum last-modified="1194452816" id="rhn-erratum-6175" advisory-name="RHSA-2007:0710"/><erratum last-modified="1194452863" id="rhn-erratum-6176" advisory-name="RHSA-2007:0746"/><erratum last-modified="1194452580" id="rhn-erratum-6177" advisory-name="RHSA-2007:0631"/><erratum last-modified="1194452300" id="rhn-erratum-6178" advisory-name="RHSA-2007:0368"/><erratum last-modified="1194453594" id="rhn-erratum-6179" advisory-name="RHSA-2007:0542"/><erratum last-modified="1194449155" id="rhn-erratum-6181" advisory-name="RHBA-2007:0573"/><erratum last-modified="1194449155" id="rhn-erratum-6182" advisory-name="RHEA-2007:0653"/><erratum last-modified="1194449155" id="rhn-erratum-6183" advisory-name="RHBA-2007:0748"/><erratum last-modified="1194452355" id="rhn-erratum-6184" advisory-name="RHSA-2007:0540"/><erratum last-modified="1194531242" id="rhn-erratum-6185" advisory-name="RHEA-2007:0658"/><erratum last-modified="1194449155" id="rhn-erratum-6186" advisory-name="RHEA-2007:0609"/><erratum last-modified="1194444943" id="rhn-erratum-6187" advisory-name="RHEA-2007:0646"/><erratum last-modified="1194449155" id="rhn-erratum-6189" advisory-name="RHBA-2007:0591"/><erratum last-modified="1194449155" id="rhn-erratum-6191" advisory-name="RHBA-2007:0537"/><erratum last-modified="1194449155" id="rhn-erratum-6192" advisory-name="RHBA-2007:0572"/><erratum last-modified="1194449155" id="rhn-erratum-6193" advisory-name="RHEA-2007:0715"/><erratum last-modified="1194449155" id="rhn-erratum-6195" advisory-name="RHEA-2007:0649"/><erratum last-modified="1194449155" id="rhn-erratum-6196" advisory-name="RHEA-2007:0648"/><erratum last-modified="1194449155" id="rhn-erratum-6197" advisory-name="RHBA-2007:0596"/><erratum last-modified="1194449155" id="rhn-erratum-6198" advisory-name="RHBA-2007:0597"/><erratum last-modified="1194449155" id="rhn-erratum-6199" advisory-name="RHBA-2007:0634"/><erratum last-modified="1194446118" id="rhn-erratum-6201" advisory-name="RHEA-2007:0592"/><erratum last-modified="1194531426" id="rhn-erratum-6202" advisory-name="RHBA-2007:0574"/><erratum last-modified="1194449155" id="rhn-erratum-6206" advisory-name="RHBA-2007:0644"/><erratum last-modified="1194446118" id="rhn-erratum-6208" advisory-name="RHEA-2007:0657"/><erratum last-modified="1194449155" id="rhn-erratum-6209" advisory-name="RHEA-2007:0528"/><erratum last-modified="1194449155" id="rhn-erratum-6210" advisory-name="RHBA-2007:0628"/><erratum last-modified="1194449155" id="rhn-erratum-6211" advisory-name="RHBA-2007:0514"/><erratum last-modified="1194449155" id="rhn-erratum-6212" advisory-name="RHBA-2007:0543"/><erratum last-modified="1194449155" id="rhn-erratum-6213" advisory-name="RHBA-2007:0744"/><erratum last-modified="1194449155" id="rhn-erratum-6214" advisory-name="RHBA-2007:0581"/><erratum last-modified="1194449155" id="rhn-erratum-6215" advisory-name="RHBA-2007:0661"/><erratum last-modified="1194449155" id="rhn-erratum-6216" advisory-name="RHBA-2007:0480"/><erratum last-modified="1194449155" id="rhn-erratum-6217" advisory-name="RHBA-2007:0633"/><erratum last-modified="1194449155" id="rhn-erratum-6218" advisory-name="RHBA-2007:0404"/><erratum last-modified="1194449155" id="rhn-erratum-6219" advisory-name="RHBA-2007:0619"/><erratum last-modified="1194449155" id="rhn-erratum-6220" advisory-name="RHBA-2007:0565"/><erratum last-modified="1194449155" id="rhn-erratum-6221" advisory-name="RHBA-2007:0564"/><erratum last-modified="1194449155" id="rhn-erratum-6222" advisory-name="RHBA-2007:0571"/><erratum last-modified="1194449155" id="rhn-erratum-6223" advisory-name="RHEA-2007:0638"/><erratum last-modified="1194449155" id="rhn-erratum-6224" advisory-name="RHEA-2007:0558"/><erratum last-modified="1194449155" id="rhn-erratum-6225" advisory-name="RHBA-2007:0616"/><erratum last-modified="1194449155" id="rhn-erratum-6226" advisory-name="RHBA-2007:0627"/><erratum last-modified="1194452539" id="rhn-erratum-6227" advisory-name="RHSA-2007:0555"/><erratum last-modified="1193838510" id="rhn-erratum-6228" advisory-name="RHSA-2007:1020"/><erratum last-modified="1194281157" id="rhn-erratum-6236" advisory-name="RHSA-2007:0967"/><erratum last-modified="1199815247" id="rhn-erratum-6238" advisory-name="RHSA-2007:0966"/><erratum last-modified="1194453985" id="rhn-erratum-6240" advisory-name="RHBA-2007:0989"/><erratum last-modified="1194454329" id="rhn-erratum-6241" advisory-name="RHBA-2007:0974"/><erratum last-modified="1194454418" id="rhn-erratum-6242" advisory-name="RHBA-2007:0987"/><erratum last-modified="1194454517" id="rhn-erratum-6243" advisory-name="RHBA-2007:0985"/><erratum last-modified="1194454641" id="rhn-erratum-6244" advisory-name="RHBA-2007:0976"/><erratum last-modified="1194457548" id="rhn-erratum-6245" advisory-name="RHSA-2007:1021"/><erratum last-modified="1194459002" id="rhn-erratum-6249" advisory-name="RHSA-2007:1026"/><erratum last-modified="1194529544" id="rhn-erratum-6254" advisory-name="RHSA-2007:1027"/><erratum last-modified="1194540840" id="rhn-erratum-6255" advisory-name="RHSA-2007:1037"/><erratum last-modified="1195129236" id="rhn-erratum-6256" advisory-name="RHSA-2007:1052"/><erratum last-modified="1194946761" id="rhn-erratum-6263" advisory-name="RHSA-2007:0965"/><erratum last-modified="1195133259" id="rhn-erratum-6383" advisory-name="RHBA-2007:0972"/><erratum last-modified="1195134535" id="rhn-erratum-6389" advisory-name="RHBA-2007:0984"/><erratum last-modified="1195135655" id="rhn-erratum-6390" advisory-name="RHBA-2007:1002"/><erratum last-modified="1195136724" id="rhn-erratum-6392" advisory-name="RHBA-2007:1010"/><erratum last-modified="1195137230" id="rhn-erratum-6393" advisory-name="RHBA-2007:1012"/><erratum last-modified="1195142859" id="rhn-erratum-6396" advisory-name="RHSA-2007:0969"/><erratum last-modified="1195144149" id="rhn-erratum-6398" advisory-name="RHSA-2007:1017"/><erratum last-modified="1195146693" id="rhn-erratum-6400" advisory-name="RHSA-2007:1045"/><erratum last-modified="1195582547" id="rhn-erratum-6404" advisory-name="RHBA-2007:1073"/><erratum last-modified="1211378431" id="rhn-erratum-6405" advisory-name="RHBA-2007:0958"/><erratum last-modified="1211378384" id="rhn-erratum-6406" advisory-name="RHBA-2007:1009"/><erratum last-modified="1211378431" id="rhn-erratum-6407" advisory-name="RHBA-2007:1033"/><erratum last-modified="1211378384" id="rhn-erratum-6408" advisory-name="RHBA-2007:1039"/><erratum last-modified="1211378384" id="rhn-erratum-6412" advisory-name="RHBA-2007:0971"/><erratum last-modified="1195653093" id="rhn-erratum-6413" advisory-name="RHBA-2007:1067"/><erratum last-modified="1196119399" id="rhn-erratum-6435" advisory-name="RHSA-2007:1082"/><erratum last-modified="1211378384" id="rhn-erratum-6436" advisory-name="RHBA-2007:1057"/><erratum last-modified="1211378384" id="rhn-erratum-6437" advisory-name="RHBA-2007:1046"/><erratum last-modified="1196347593" id="rhn-erratum-6439" advisory-name="RHSA-2007:0993"/><erratum last-modified="1196347858" id="rhn-erratum-6440" advisory-name="RHSA-2007:1059"/><erratum last-modified="1196350728" id="rhn-erratum-6444" advisory-name="RHSA-2007:1078"/><erratum last-modified="1196696817" id="rhn-erratum-6448" advisory-name="RHSA-2007:1095"/><erratum last-modified="1211378384" id="rhn-erratum-6452" advisory-name="RHBA-2007:1072"/><erratum last-modified="1211378431" id="rhn-erratum-6453" advisory-name="RHBA-2007:1066"/><erratum last-modified="1211378431" id="rhn-erratum-6454" advisory-name="RHBA-2007:1075"/><erratum last-modified="1211378384" id="rhn-erratum-6455" advisory-name="RHBA-2007:1089"/><erratum last-modified="1197050972" id="rhn-erratum-6464" advisory-name="RHEA-2007:1132"/><erratum last-modified="1197305586" id="rhn-erratum-6466" advisory-name="RHSA-2007:1114"/><erratum last-modified="1197463014" id="rhn-erratum-6473" advisory-name="RHSA-2007:1128"/><erratum last-modified="1211378384" id="rhn-erratum-6476" advisory-name="RHBA-2007:1047"/><erratum last-modified="1211378431" id="rhn-erratum-6477" advisory-name="RHBA-2007:1064"/><erratum last-modified="1211378431" id="rhn-erratum-6478" advisory-name="RHBA-2007:1102"/><erratum last-modified="1211378384" id="rhn-erratum-6479" advisory-name="RHBA-2007:1103"/><erratum last-modified="1211378384" id="rhn-erratum-6480" advisory-name="RHBA-2007:1110"/><erratum last-modified="1197476377" id="rhn-erratum-6481" advisory-name="RHBA-2007:1131"/><erratum last-modified="1197577209" id="rhn-erratum-6482" advisory-name="RHBA-2007:1133"/><erratum last-modified="1197662892" id="rhn-erratum-6483" advisory-name="RHBA-2007:1127"/><erratum last-modified="1197994745" id="rhn-erratum-6485" advisory-name="RHSA-2007:1130"/><erratum last-modified="1197995854" id="rhn-erratum-6486" advisory-name="RHSA-2007:1155"/><erratum last-modified="1198078495" id="rhn-erratum-6488" advisory-name="RHSA-2007:1165"/><erratum last-modified="1211378384" id="rhn-erratum-6494" advisory-name="RHBA-2007:1146"/><erratum last-modified="1211378384" id="rhn-erratum-6495" advisory-name="RHBA-2007:1145"/><erratum last-modified="1211378384" id="rhn-erratum-6497" advisory-name="RHEA-2007:1125"/><erratum last-modified="1211378384" id="rhn-erratum-6498" advisory-name="RHBA-2007:1115"/><erratum last-modified="1211378384" id="rhn-erratum-6499" advisory-name="RHBA-2007:1109"/><erratum last-modified="1198178650" id="rhn-erratum-6500" advisory-name="RHSA-2007:1176"/><erratum last-modified="1211378384" id="rhn-erratum-6516" advisory-name="RHBA-2008:0015"/><erratum last-modified="1211378431" id="rhn-erratum-6517" advisory-name="RHBA-2008:0014"/><erratum last-modified="1211378384" id="rhn-erratum-6518" advisory-name="RHBA-2008:0012"/><erratum last-modified="1211378431" id="rhn-erratum-6519" advisory-name="RHEA-2008:0011"/><erratum last-modified="1199387416" id="rhn-erratum-6520" advisory-name="RHEA-2008:0028"/><erratum last-modified="1199473380" id="rhn-erratum-6522" advisory-name="RHEA-2008:0001"/><erratum last-modified="1199731010" id="rhn-erratum-6524" advisory-name="RHSA-2008:0002"/><erratum last-modified="1199732110" id="rhn-erratum-6525" advisory-name="RHSA-2008:0003"/><erratum last-modified="1211378384" id="rhn-erratum-6527" advisory-name="RHBA-2008:0020"/><erratum last-modified="1211378384" id="rhn-erratum-6528" advisory-name="RHBA-2008:0017"/><erratum last-modified="1200054423" id="rhn-erratum-6537" advisory-name="RHSA-2008:0032"/><erratum last-modified="1200055042" id="rhn-erratum-6538" advisory-name="RHSA-2008:0038"/><erratum last-modified="1200389908" id="rhn-erratum-6544" advisory-name="RHSA-2008:0008"/><erratum last-modified="1211378431" id="rhn-erratum-6550" advisory-name="RHBA-2008:0021"/><erratum last-modified="1211378384" id="rhn-erratum-6551" advisory-name="RHBA-2008:0010"/><erratum last-modified="1211378384" id="rhn-erratum-6552" advisory-name="RHBA-2008:0016"/><erratum last-modified="1211378431" id="rhn-erratum-6553" advisory-name="RHBA-2008:0019"/><erratum last-modified="1211378431" id="rhn-erratum-6554" advisory-name="RHBA-2008:0044"/><erratum last-modified="1211378384" id="rhn-erratum-6555" advisory-name="RHBA-2008:0041"/><erratum last-modified="1211378431" id="rhn-erratum-6556" advisory-name="RHBA-2008:0047"/><erratum last-modified="1211378384" id="rhn-erratum-6557" advisory-name="RHBA-2008:0056"/><erratum last-modified="1211378384" id="rhn-erratum-6558" advisory-name="RHBA-2008:0043"/><erratum last-modified="1200600032" id="rhn-erratum-6560" advisory-name="RHSA-2008:0064"/><erratum last-modified="1200706116" id="rhn-erratum-6561" advisory-name="RHSA-2008:0031"/><erratum last-modified="1200904274" id="rhn-erratum-6564" advisory-name="RHSA-2008:0058"/><erratum last-modified="1201078075" id="rhn-erratum-6568" advisory-name="RHBA-2008:0057"/><erratum last-modified="1211378384" id="rhn-erratum-6569" advisory-name="RHBA-2008:0085"/><erratum last-modified="1211378431" id="rhn-erratum-6570" advisory-name="RHBA-2008:0079"/><erratum last-modified="1211378384" id="rhn-erratum-6571" advisory-name="RHBA-2008:0077"/><erratum last-modified="1211378384" id="rhn-erratum-6572" advisory-name="RHBA-2008:0073"/><erratum last-modified="1211378384" id="rhn-erratum-6573" advisory-name="RHBA-2008:0072"/><erratum last-modified="1211378384" id="rhn-erratum-6574" advisory-name="RHBA-2008:0068"/><erratum last-modified="1211378384" id="rhn-erratum-6575" advisory-name="RHBA-2008:0067"/><erratum last-modified="1211378384" id="rhn-erratum-6576" advisory-name="RHBA-2008:0046"/><erratum last-modified="1211378431" id="rhn-erratum-6577" advisory-name="RHBA-2008:0045"/><erratum last-modified="1211378384" id="rhn-erratum-6578" advisory-name="RHBA-2008:0013"/><erratum last-modified="1201100825" id="rhn-erratum-6579" advisory-name="RHSA-2008:0089"/><erratum last-modified="1201267716" id="rhn-erratum-6580" advisory-name="RHSA-2008:0090"/><erratum last-modified="1211378384" id="rhn-erratum-6596" advisory-name="RHBA-2008:0078"/><erratum last-modified="1211378384" id="rhn-erratum-6597" advisory-name="RHBA-2008:0065"/><erratum last-modified="1211378384" id="rhn-erratum-6598" advisory-name="RHBA-2008:0063"/><erratum last-modified="1201707073" id="rhn-erratum-6601" advisory-name="RHBA-2008:0050"/><erratum last-modified="1201868901" id="rhn-erratum-6603" advisory-name="RHBA-2008:0099"/><erratum last-modified="1211378384" id="rhn-erratum-6618" advisory-name="RHBA-2008:0071"/><erratum last-modified="1211378384" id="rhn-erratum-6619" advisory-name="RHBA-2008:0108"/><erratum last-modified="1211378431" id="rhn-erratum-6620" advisory-name="RHBA-2008:0109"/><erratum last-modified="1202409708" id="rhn-erratum-6622" advisory-name="RHBA-2008:0102"/><erratum last-modified="1202438303" id="rhn-erratum-6625" advisory-name="RHSA-2008:0103"/><erratum last-modified="1202835190" id="rhn-erratum-6628" advisory-name="RHSA-2008:0129"/><erratum last-modified="1211378431" id="rhn-erratum-6631" advisory-name="RHBA-2008:0101"/><erratum last-modified="1203077128" id="rhn-erratum-6638" advisory-name="RHBA-2008:0143"/><erratum last-modified="1203135547" id="rhn-erratum-6642" advisory-name="RHBA-2008:0147"/><erratum last-modified="1211378431" id="rhn-erratum-6659" advisory-name="RHBA-2008:0087"/><erratum last-modified="1203628528" id="rhn-erratum-6662" advisory-name="RHSA-2008:0110"/><erratum last-modified="1203628947" id="rhn-erratum-6664" advisory-name="RHSA-2008:0136"/><erratum last-modified="1203629444" id="rhn-erratum-6665" advisory-name="RHSA-2008:0157"/><erratum last-modified="1211378384" id="rhn-erratum-6680" advisory-name="RHBA-2008:0106"/><erratum last-modified="1204147755" id="rhn-erratum-6681" advisory-name="RHSA-2008:0159"/><erratum last-modified="1204150462" id="rhn-erratum-6682" advisory-name="RHSA-2008:0155"/><erratum last-modified="1204192756" id="rhn-erratum-6683" advisory-name="RHSA-2008:0146"/><erratum last-modified="1204725396" id="rhn-erratum-6697" advisory-name="RHSA-2008:0154"/><erratum last-modified="1205160912" id="rhn-erratum-6717" advisory-name="RHEA-2008:0185"/><erratum last-modified="1205166351" id="rhn-erratum-6718" advisory-name="RHBA-2008:0128"/><erratum last-modified="1205232700" id="rhn-erratum-6719" advisory-name="RHSA-2008:0042"/><erratum last-modified="1205868372" id="rhn-erratum-6739" advisory-name="RHSA-2008:0164"/><erratum last-modified="1206398670" id="rhn-erratum-6747" advisory-name="RHBA-2008:0188"/><erratum last-modified="1206580098" id="rhn-erratum-6748" advisory-name="RHSA-2008:0207"/><erratum last-modified="1207059008" id="rhn-erratum-6752" advisory-name="RHSA-2008:0192"/><erratum last-modified="1207136024" id="rhn-erratum-6756" advisory-name="RHSA-2008:0197"/><erratum last-modified="1211378384" id="rhn-erratum-6764" advisory-name="RHSA-2008:0218"/><erratum last-modified="1207670266" id="rhn-erratum-6777" advisory-name="RHBA-2008:8237"/><erratum last-modified="1207698438" id="rhn-erratum-6779" advisory-name="RHSA-2008:0214"/><erratum last-modified="1208390558" id="rhn-erratum-6795" advisory-name="RHSA-2008:0235"/><erratum last-modified="1208396243" id="rhn-erratum-6797" advisory-name="RHSA-2008:0222"/><erratum last-modified="1208395929" id="rhn-erratum-6798" advisory-name="RHSA-2008:0145"/><erratum last-modified="1208453661" id="rhn-erratum-6803" advisory-name="RHSA-2008:0239"/><erratum last-modified="1210145958" id="rhn-erratum-6860" advisory-name="RHSA-2008:0233"/><erratum last-modified="1210341648" id="rhn-erratum-6868" advisory-name="RHBA-2008:0258"/><erratum last-modified="1210681682" id="rhn-erratum-6898" advisory-name="RHSA-2008:0194"/><erratum last-modified="1210751665" id="rhn-erratum-6902" advisory-name="RHSA-2008:0270"/><erratum last-modified="1210934227" id="rhn-erratum-6903" advisory-name="RHBA-2008:0219"/><erratum last-modified="1211378688" id="rhn-erratum-6919" advisory-name="RHBA-2008:0455"/><erratum last-modified="1211378688" id="rhn-erratum-6920" advisory-name="RHBA-2008:0437"/><erratum last-modified="1211378688" id="rhn-erratum-6921" advisory-name="RHBA-2008:0442"/><erratum last-modified="1211378688" id="rhn-erratum-6922" advisory-name="RHBA-2008:0484"/><erratum last-modified="1211378688" id="rhn-erratum-6923" advisory-name="RHBA-2008:0457"/><erratum last-modified="1211378688" id="rhn-erratum-6924" advisory-name="RHBA-2008:0453"/><erratum last-modified="1211378688" id="rhn-erratum-6925" advisory-name="RHBA-2008:0450"/><erratum last-modified="1211378688" id="rhn-erratum-6926" advisory-name="RHBA-2008:0459"/><erratum last-modified="1211378688" id="rhn-erratum-6928" advisory-name="RHBA-2008:0458"/><erratum last-modified="1211378688" id="rhn-erratum-6929" advisory-name="RHEA-2008:0454"/><erratum last-modified="1211378688" id="rhn-erratum-6930" advisory-name="RHEA-2008:0451"/><erratum last-modified="1211378688" id="rhn-erratum-6931" advisory-name="RHBA-2008:0462"/><erratum last-modified="1211392488" id="rhn-erratum-6932" advisory-name="RHEA-2008:0436"/><erratum last-modified="1211378688" id="rhn-erratum-6934" advisory-name="RHBA-2008:0434"/><erratum last-modified="1211378688" id="rhn-erratum-6935" advisory-name="RHBA-2008:0481"/><erratum last-modified="1211378688" id="rhn-erratum-6936" advisory-name="RHBA-2008:0424"/><erratum last-modified="1211378688" id="rhn-erratum-6937" advisory-name="RHBA-2008:0431"/><erratum last-modified="1211378688" id="rhn-erratum-6939" advisory-name="RHEA-2008:0427"/><erratum last-modified="1211378688" id="rhn-erratum-6940" advisory-name="RHEA-2008:0430"/><erratum last-modified="1211378688" id="rhn-erratum-6941" advisory-name="RHEA-2008:0418"/><erratum last-modified="1211378688" id="rhn-erratum-6942" advisory-name="RHBA-2008:0404"/><erratum last-modified="1211378688" id="rhn-erratum-6943" advisory-name="RHBA-2008:0412"/><erratum last-modified="1211378688" id="rhn-erratum-6944" advisory-name="RHEA-2008:0422"/><erratum last-modified="1211378688" id="rhn-erratum-6945" advisory-name="RHBA-2008:0419"/><erratum last-modified="1211378688" id="rhn-erratum-6946" advisory-name="RHEA-2008:0413"/><erratum last-modified="1211378688" id="rhn-erratum-6947" advisory-name="RHBA-2008:0403"/><erratum last-modified="1211378688" id="rhn-erratum-6949" advisory-name="RHBA-2008:0416"/><erratum last-modified="1211378688" id="rhn-erratum-6950" advisory-name="RHBA-2008:0414"/><erratum last-modified="1211378688" id="rhn-erratum-6951" advisory-name="RHBA-2008:0411"/><erratum last-modified="1211378688" id="rhn-erratum-6952" advisory-name="RHEA-2008:0420"/><erratum last-modified="1211378688" id="rhn-erratum-6954" advisory-name="RHBA-2008:0408"/><erratum last-modified="1211378688" id="rhn-erratum-6956" advisory-name="RHBA-2008:0470"/><erratum last-modified="1211378688" id="rhn-erratum-6957" advisory-name="RHBA-2008:0398"/><erratum last-modified="1211378688" id="rhn-erratum-6958" advisory-name="RHBA-2008:0396"/><erratum last-modified="1211378688" id="rhn-erratum-6959" advisory-name="RHBA-2008:0395"/><erratum last-modified="1211378688" id="rhn-erratum-6960" advisory-name="RHBA-2008:0397"/><erratum last-modified="1211378688" id="rhn-erratum-6961" advisory-name="RHBA-2008:0394"/><erratum last-modified="1211378688" id="rhn-erratum-6962" advisory-name="RHBA-2008:0393"/><erratum last-modified="1211378688" id="rhn-erratum-6963" advisory-name="RHEA-2008:0399"/><erratum last-modified="1211378688" id="rhn-erratum-6964" advisory-name="RHBA-2008:0386"/><erratum last-modified="1211378688" id="rhn-erratum-6965" advisory-name="RHEA-2008:0392"/><erratum last-modified="1211271165" id="rhn-erratum-6967" advisory-name="RHBA-2008:0280"/><erratum last-modified="1211277450" id="rhn-erratum-6968" advisory-name="RHSA-2008:0275"/><erratum last-modified="1211378688" id="rhn-erratum-6969" advisory-name="RHEA-2008:0387"/><erratum last-modified="1211378688" id="rhn-erratum-6970" advisory-name="RHEA-2008:0384"/><erratum last-modified="1211378688" id="rhn-erratum-6971" advisory-name="RHBA-2008:0446"/><erratum last-modified="1211378688" id="rhn-erratum-6972" advisory-name="RHBA-2008:0377"/><erratum last-modified="1211378688" id="rhn-erratum-6973" advisory-name="RHBA-2008:0381"/><erratum last-modified="1211378688" id="rhn-erratum-6974" advisory-name="RHBA-2008:0362"/><erratum last-modified="1211378688" id="rhn-erratum-6975" advisory-name="RHBA-2008:0382"/><erratum last-modified="1211378688" id="rhn-erratum-6976" advisory-name="RHEA-2008:0390"/><erratum last-modified="1211378688" id="rhn-erratum-6977" advisory-name="RHBA-2008:0461"/><erratum last-modified="1211378688" id="rhn-erratum-6978" advisory-name="RHBA-2008:0385"/><erratum last-modified="1211378688" id="rhn-erratum-6979" advisory-name="RHBA-2008:0347"/><erratum last-modified="1211378688" id="rhn-erratum-6980" advisory-name="RHBA-2008:0343"/><erratum last-modified="1211378688" id="rhn-erratum-6981" advisory-name="RHEA-2008:0356"/><erratum last-modified="1211379958" id="rhn-erratum-6983" advisory-name="RHSA-2008:0364"/><erratum last-modified="1211378688" id="rhn-erratum-6984" advisory-name="RHBA-2008:0350"/><erratum last-modified="1211378688" id="rhn-erratum-6985" advisory-name="RHBA-2008:0360"/><erratum last-modified="1211378688" id="rhn-erratum-6986" advisory-name="RHBA-2008:0346"/><erratum last-modified="1211378688" id="rhn-erratum-6987" advisory-name="RHBA-2008:0340"/><erratum last-modified="1211378688" id="rhn-erratum-6989" advisory-name="RHEA-2008:0358"/><erratum last-modified="1211378688" id="rhn-erratum-6990" advisory-name="RHBA-2008:0363"/><erratum last-modified="1211378688" id="rhn-erratum-6993" advisory-name="RHBA-2008:0357"/><erratum last-modified="1211378688" id="rhn-erratum-6995" advisory-name="RHBA-2008:0351"/><erratum last-modified="1211378688" id="rhn-erratum-6996" advisory-name="RHEA-2008:0468"/><erratum last-modified="1211378688" id="rhn-erratum-6998" advisory-name="RHBA-2008:0354"/><erratum last-modified="1211378688" id="rhn-erratum-7000" advisory-name="RHBA-2008:0333"/><erratum last-modified="1211378688" id="rhn-erratum-7001" advisory-name="RHBA-2008:0341"/><erratum last-modified="1211378688" id="rhn-erratum-7002" advisory-name="RHBA-2008:0083"/><erratum last-modified="1211378688" id="rhn-erratum-7003" advisory-name="RHEA-2008:0084"/><erratum last-modified="1211378688" id="rhn-erratum-7004" advisory-name="RHBA-2008:0376"/><erratum last-modified="1211378688" id="rhn-erratum-7005" advisory-name="RHBA-2008:0322"/><erratum last-modified="1211378688" id="rhn-erratum-7006" advisory-name="RHBA-2008:0334"/><erratum last-modified="1211378688" id="rhn-erratum-7007" advisory-name="RHBA-2008:0323"/><erratum last-modified="1211379958" id="rhn-erratum-7008" advisory-name="RHSA-2008:0061"/><erratum last-modified="1211378688" id="rhn-erratum-7009" advisory-name="RHBA-2008:0335"/><erratum last-modified="1211378688" id="rhn-erratum-7010" advisory-name="RHEA-2008:0331"/><erratum last-modified="1211378688" id="rhn-erratum-7011" advisory-name="RHBA-2008:0374"/><erratum last-modified="1211378688" id="rhn-erratum-7012" advisory-name="RHBA-2008:0336"/><erratum last-modified="1211378688" id="rhn-erratum-7014" advisory-name="RHBA-2008:0329"/><erratum last-modified="1211378688" id="rhn-erratum-7015" advisory-name="RHBA-2008:0324"/><erratum last-modified="1211378688" id="rhn-erratum-7016" advisory-name="RHBA-2008:0327"/><erratum last-modified="1211378688" id="rhn-erratum-7017" advisory-name="RHBA-2008:0337"/><erratum last-modified="1211378688" id="rhn-erratum-7018" advisory-name="RHBA-2008:0325"/><erratum last-modified="1211378688" id="rhn-erratum-7019" advisory-name="RHEA-2008:0477"/><erratum last-modified="1211378688" id="rhn-erratum-7020" advisory-name="RHBA-2008:0054"/><erratum last-modified="1211378688" id="rhn-erratum-7021" advisory-name="RHEA-2008:0338"/><erratum last-modified="1211378688" id="rhn-erratum-7022" advisory-name="RHBA-2008:0328"/><erratum last-modified="1214319667" id="rhn-erratum-7023" advisory-name="RHEA-2008:0479"/><erratum last-modified="1211378688" id="rhn-erratum-7026" advisory-name="RHBA-2008:0372"/><erratum last-modified="1211378688" id="rhn-erratum-7027" advisory-name="RHBA-2008:0375"/><erratum last-modified="1211378688" id="rhn-erratum-7028" advisory-name="RHBA-2008:0369"/><erratum last-modified="1211379302" id="rhn-erratum-7034" advisory-name="RHSA-2008:0389"/><erratum last-modified="1211378688" id="rhn-erratum-7035" advisory-name="RHBA-2008:0366"/><erratum last-modified="1211378688" id="rhn-erratum-7036" advisory-name="RHBA-2008:0367"/><erratum last-modified="1211378688" id="rhn-erratum-7037" advisory-name="RHBA-2008:0460"/><erratum last-modified="1211378688" id="rhn-erratum-7039" advisory-name="RHBA-2008:0368"/><erratum last-modified="1211378688" id="rhn-erratum-7040" advisory-name="RHBA-2008:0476"/><erratum last-modified="1211378688" id="rhn-erratum-7041" advisory-name="RHEA-2008:0474"/><erratum last-modified="1211378688" id="rhn-erratum-7042" advisory-name="RHBA-2008:0482"/><erratum last-modified="1211378688" id="rhn-erratum-7044" advisory-name="RHBA-2008:0326"/><erratum last-modified="1211378688" id="rhn-erratum-7045" advisory-name="RHEA-2008:0370"/><erratum last-modified="1211378688" id="rhn-erratum-7046" advisory-name="RHBA-2008:0383"/><erratum last-modified="1211378688" id="rhn-erratum-7047" advisory-name="RHBA-2008:0321"/><erratum last-modified="1211379607" id="rhn-erratum-7048" advisory-name="RHSA-2008:0297"/><erratum last-modified="1211378688" id="rhn-erratum-7049" advisory-name="RHBA-2008:0456"/><erratum last-modified="1211378688" id="rhn-erratum-7050" advisory-name="RHBA-2008:0312"/><erratum last-modified="1211379437" id="rhn-erratum-7051" advisory-name="RHSA-2008:0300"/><erratum last-modified="1211378688" id="rhn-erratum-7052" advisory-name="RHBA-2008:0465"/><erratum last-modified="1211378688" id="rhn-erratum-7053" advisory-name="RHBA-2008:0373"/><erratum last-modified="1211378688" id="rhn-erratum-7054" advisory-name="RHBA-2008:0307"/><erratum last-modified="1211378688" id="rhn-erratum-7055" advisory-name="RHBA-2008:0472"/><erratum last-modified="1211378688" id="rhn-erratum-7056" advisory-name="RHBA-2008:0296"/><erratum last-modified="1211294907" id="rhn-erratum-7058" advisory-name="RHSA-2008:0489"/><erratum last-modified="1211378688" id="rhn-erratum-7059" advisory-name="RHBA-2008:0314"/><erratum last-modified="1211378688" id="rhn-erratum-7061" advisory-name="RHBA-2008:0445"/><erratum last-modified="1211378688" id="rhn-erratum-7062" advisory-name="RHBA-2008:0444"/><erratum last-modified="1211378688" id="rhn-erratum-7063" advisory-name="RHBA-2008:0440"/><erratum last-modified="1211378688" id="rhn-erratum-7064" advisory-name="RHBA-2008:0309"/><erratum last-modified="1211378688" id="rhn-erratum-7065" advisory-name="RHBA-2008:0316"/><erratum last-modified="1211378688" id="rhn-erratum-7066" advisory-name="RHBA-2008:0306"/><erratum last-modified="1211378688" id="rhn-erratum-7067" advisory-name="RHBA-2008:0313"/><erratum last-modified="1211378688" id="rhn-erratum-7068" advisory-name="RHBA-2008:0311"/><erratum last-modified="1211378688" id="rhn-erratum-7069" advisory-name="RHBA-2008:0319"/><erratum last-modified="1211378688" id="rhn-erratum-7070" advisory-name="RHBA-2008:0308"/><erratum last-modified="1211378688" id="rhn-erratum-7071" advisory-name="RHBA-2008:0220"/><erratum last-modified="1211378688" id="rhn-erratum-7073" advisory-name="RHBA-2008:0388"/><erratum last-modified="1211378688" id="rhn-erratum-7074" advisory-name="RHBA-2008:0428"/><erratum last-modified="1211378688" id="rhn-erratum-7075" advisory-name="RHBA-2008:0449"/><erratum last-modified="1211378688" id="rhn-erratum-7076" advisory-name="RHEA-2008:0438"/><erratum last-modified="1211378688" id="rhn-erratum-7077" advisory-name="RHBA-2008:0475"/><erratum last-modified="1211378688" id="rhn-erratum-7078" advisory-name="RHBA-2008:0447"/><erratum last-modified="1211378688" id="rhn-erratum-7079" advisory-name="RHBA-2008:0405"/><erratum last-modified="1211378688" id="rhn-erratum-7080" advisory-name="RHBA-2008:0443"/><erratum last-modified="1211378688" id="rhn-erratum-7081" advisory-name="RHBA-2008:0432"/><erratum last-modified="1211378688" id="rhn-erratum-7082" advisory-name="RHBA-2008:0410"/><erratum last-modified="1211378688" id="rhn-erratum-7083" advisory-name="RHEA-2008:0402"/><erratum last-modified="1211378688" id="rhn-erratum-7084" advisory-name="RHBA-2008:0380"/><erratum last-modified="1211378688" id="rhn-erratum-7085" advisory-name="RHEA-2008:0429"/><erratum last-modified="1211378688" id="rhn-erratum-7087" advisory-name="RHEA-2008:0435"/><erratum last-modified="1211378688" id="rhn-erratum-7088" advisory-name="RHEA-2008:0439"/><erratum last-modified="1211378688" id="rhn-erratum-7089" advisory-name="RHEA-2008:0391"/><erratum last-modified="1211378688" id="rhn-erratum-7091" advisory-name="RHEA-2008:0417"/><erratum last-modified="1211378688" id="rhn-erratum-7092" advisory-name="RHBA-2008:0441"/><erratum last-modified="1211378688" id="rhn-erratum-7093" advisory-name="RHEA-2008:0400"/><erratum last-modified="1211378688" id="rhn-erratum-7095" advisory-name="RHBA-2008:0339"/><erratum last-modified="1211378688" id="rhn-erratum-7096" advisory-name="RHBA-2008:0345"/><erratum last-modified="1211378688" id="rhn-erratum-7098" advisory-name="RHBA-2008:0303"/><erratum last-modified="1211378688" id="rhn-erratum-7099" advisory-name="RHBA-2008:0332"/><erratum last-modified="1211465127" id="rhn-erratum-7100" advisory-name="RHBA-2008:0361"/><erratum last-modified="1211378711" id="rhn-erratum-7101" advisory-name="RHBA-2008:0305"/><erratum last-modified="1211378688" id="rhn-erratum-7102" advisory-name="RHBA-2008:0302"/><erratum last-modified="1211378688" id="rhn-erratum-7103" advisory-name="RHEA-2008:0304"/><erratum last-modified="1211378688" id="rhn-erratum-7104" advisory-name="RHEA-2008:0452"/><erratum last-modified="1211378688" id="rhn-erratum-7106" advisory-name="RHBA-2008:0478"/><erratum last-modified="1211378688" id="rhn-erratum-7107" advisory-name="RHBA-2008:0344"/><erratum last-modified="1211378688" id="rhn-erratum-7108" advisory-name="RHBA-2008:0081"/><erratum last-modified="1211378688" id="rhn-erratum-7109" advisory-name="RHBA-2008:0330"/><erratum last-modified="1211378688" id="rhn-erratum-7110" advisory-name="RHBA-2008:0301"/><erratum last-modified="1211378688" id="rhn-erratum-7112" advisory-name="RHBA-2008:0469"/><erratum last-modified="1211378688" id="rhn-erratum-7114" advisory-name="RHBA-2008:0466"/><erratum last-modified="1211378688" id="rhn-erratum-7115" advisory-name="RHBA-2008:0473"/><erratum last-modified="1211378688" id="rhn-erratum-7116" advisory-name="RHEA-2008:0317"/><erratum last-modified="1211378688" id="rhn-erratum-7117" advisory-name="RHBA-2008:0298"/><erratum last-modified="1211378688" id="rhn-erratum-7118" advisory-name="RHBA-2008:0294"/><erratum last-modified="1211378688" id="rhn-erratum-7119" advisory-name="RHBA-2008:0292"/><erratum last-modified="1211378688" id="rhn-erratum-7120" advisory-name="RHBA-2008:0293"/><erratum last-modified="1211378688" id="rhn-erratum-7121" advisory-name="RHBA-2008:0299"/><erratum last-modified="1211378688" id="rhn-erratum-7122" advisory-name="RHBA-2008:0310"/><erratum last-modified="1211378688" id="rhn-erratum-7123" advisory-name="RHBA-2008:0401"/><erratum last-modified="1211378688" id="rhn-erratum-7124" advisory-name="RHBA-2008:0378"/><erratum last-modified="1211355036" id="rhn-erratum-7126" advisory-name="RHSA-2008:0287"/><erratum last-modified="1211392804" id="rhn-erratum-7127" advisory-name="RHBA-2008:0464"/><erratum last-modified="1211378688" id="rhn-erratum-7128" advisory-name="RHBA-2008:0365"/><erratum last-modified="1211379396" id="rhn-erratum-7130" advisory-name="RHSA-2008:0295"/><erratum last-modified="1211386894" id="rhn-erratum-7131" advisory-name="RHBA-2008:0283"/><erratum last-modified="1211385551" id="rhn-erratum-7133" advisory-name="RHBA-2008:0279"/><erratum last-modified="1211386850" id="rhn-erratum-7134" advisory-name="RHBA-2008:0278"/><erratum last-modified="1211386980" id="rhn-erratum-7135" advisory-name="RHBA-2008:0488"/><erratum last-modified="1211387731" id="rhn-erratum-7136" advisory-name="RHBA-2008:0487"/><erratum last-modified="1211966851" id="rhn-erratum-7144" advisory-name="RHEA-2008:0506"/><erratum last-modified="1211973628" id="rhn-erratum-7147" advisory-name="RHSA-2008:0290"/><erratum last-modified="1232480208" id="rhn-erratum-7178" advisory-name="RHBA-2008:0286"/><erratum last-modified="1232480208" id="rhn-erratum-7179" advisory-name="RHBA-2008:0490"/><erratum last-modified="1232480208" id="rhn-erratum-7180" advisory-name="RHBA-2008:0491"/><erratum last-modified="1212652858" id="rhn-erratum-7185" advisory-name="RHSA-2008:0498"/><erratum last-modified="1212659953" id="rhn-erratum-7186" advisory-name="RHBA-2008:0499"/><erratum last-modified="1212670283" id="rhn-erratum-7188" advisory-name="RHBA-2008:0513"/><erratum last-modified="1213012998" id="rhn-erratum-7189" advisory-name="RHBA-2008:0526"/><erratum last-modified="1213106876" id="rhn-erratum-7191" advisory-name="RHSA-2008:0529"/><erratum last-modified="1213169531" id="rhn-erratum-7192" advisory-name="RHBA-2008:0536"/><erratum last-modified="1213211574" id="rhn-erratum-7194" advisory-name="RHSA-2008:0522"/><erratum last-modified="1213212894" id="rhn-erratum-7196" advisory-name="RHSA-2008:0504"/><erratum last-modified="1232480208" id="rhn-erratum-7198" advisory-name="RHBA-2008:0534"/><erratum last-modified="1232480208" id="rhn-erratum-7199" advisory-name="RHBA-2008:0531"/><erratum last-modified="1232480208" id="rhn-erratum-7200" advisory-name="RHBA-2008:0530"/><erratum last-modified="1213266274" id="rhn-erratum-7201" advisory-name="RHBA-2008:0527"/><erratum last-modified="1214393985" id="rhn-erratum-7219" advisory-name="RHSA-2008:0556"/><erratum last-modified="1214299895" id="rhn-erratum-7223" advisory-name="RHSA-2008:0497"/><erratum last-modified="1232480208" id="rhn-erratum-7225" advisory-name="RHBA-2008:0567"/><erratum last-modified="1214402999" id="rhn-erratum-7226" advisory-name="RHBA-2008:0551"/><erratum last-modified="1214408624" id="rhn-erratum-7228" advisory-name="RHSA-2008:0519"/><erratum last-modified="1214589842" id="rhn-erratum-7237" advisory-name="RHBA-2008:0573"/><erratum last-modified="1215002227" id="rhn-erratum-7259" advisory-name="RHSA-2008:0569"/><erratum last-modified="1215022795" id="rhn-erratum-7265" advisory-name="RHBA-2008:0557"/><erratum last-modified="1215719579" id="rhn-erratum-7269" advisory-name="RHSA-2008:0533"/><erratum last-modified="1232480208" id="rhn-erratum-7271" advisory-name="RHBA-2008:0559"/><erratum last-modified="1215614648" id="rhn-erratum-7272" advisory-name="RHSA-2008:0583"/><erratum last-modified="1215766327" id="rhn-erratum-7273" advisory-name="RHBA-2008:0565"/><erratum last-modified="1216041981" id="rhn-erratum-7275" advisory-name="RHSA-2008:0561"/><erratum last-modified="1216043746" id="rhn-erratum-7277" advisory-name="RHSA-2008:0581"/><erratum last-modified="1216200981" id="rhn-erratum-7280" advisory-name="RHSA-2008:0544"/><erratum last-modified="1216250824" id="rhn-erratum-7284" advisory-name="RHSA-2008:0597"/><erratum last-modified="1232480208" id="rhn-erratum-7287" advisory-name="RHBA-2008:0587"/><erratum last-modified="1232470477" id="rhn-erratum-7292" advisory-name="RHBA-2008:0613"/><erratum last-modified="1232469848" id="rhn-erratum-7293" advisory-name="RHBA-2008:0610"/><erratum last-modified="1232480208" id="rhn-erratum-7294" advisory-name="RHBA-2008:0600"/><erratum last-modified="1232471900" id="rhn-erratum-7295" advisory-name="RHBA-2008:0589"/><erratum last-modified="1232471827" id="rhn-erratum-7296" advisory-name="RHBA-2008:0586"/><erratum last-modified="1216919718" id="rhn-erratum-7435" advisory-name="RHSA-2008:0575"/><erratum last-modified="1217260961" id="rhn-erratum-7459" advisory-name="RHBA-2008:0611"/><erratum last-modified="1232480208" id="rhn-erratum-7479" advisory-name="RHBA-2008:0535"/><erratum last-modified="1232480208" id="rhn-erratum-7480" advisory-name="RHBA-2008:0593"/><erratum last-modified="1232480208" id="rhn-erratum-7481" advisory-name="RHBA-2008:0609"/><erratum last-modified="1232480208" id="rhn-erratum-7482" advisory-name="RHBA-2008:0626"/><erratum last-modified="1232471506" id="rhn-erratum-7483" advisory-name="RHBA-2008:0637"/><erratum last-modified="1218054405" id="rhn-erratum-7487" advisory-name="RHSA-2008:0649"/><erratum last-modified="1217518732" id="rhn-erratum-7488" advisory-name="RHSA-2008:0486"/><erratum last-modified="1218051005" id="rhn-erratum-7498" advisory-name="RHSA-2008:0612"/><erratum last-modified="1218016403" id="rhn-erratum-7511" advisory-name="RHBA-2008:0824"/><erratum last-modified="1232480208" id="rhn-erratum-7512" advisory-name="RHBA-2008:0786"/><erratum last-modified="1232471750" id="rhn-erratum-7513" advisory-name="RHBA-2008:0652"/><erratum last-modified="1232480208" id="rhn-erratum-7515" advisory-name="RHBA-2008:0644"/><erratum last-modified="1232480208" id="rhn-erratum-7516" advisory-name="RHBA-2008:0614"/><erratum last-modified="1218439900" id="rhn-erratum-7517" advisory-name="RHBA-2008:0829"/><erratum last-modified="1218474123" id="rhn-erratum-7518" advisory-name="RHSA-2008:0789"/><erratum last-modified="1218573097" id="rhn-erratum-7521" advisory-name="RHSA-2008:0818"/><erratum last-modified="1232480208" id="rhn-erratum-7527" advisory-name="RHBA-2008:0830"/><erratum last-modified="1232471959" id="rhn-erratum-7530" advisory-name="RHBA-2008:0809"/><erratum last-modified="1232480208" id="rhn-erratum-7531" advisory-name="RHBA-2008:0574"/><erratum last-modified="1218721404" id="rhn-erratum-7532" advisory-name="RHSA-2008:0815"/><erratum last-modified="1218742318" id="rhn-erratum-7533" advisory-name="RHSA-2008:0839"/><erratum last-modified="1219739888" id="rhn-erratum-7538" advisory-name="RHSA-2008:0836"/><erratum last-modified="1219407017" id="rhn-erratum-7539" advisory-name="RHSA-2008:0855"/><erratum last-modified="1219778653" id="rhn-erratum-7560" advisory-name="RHSA-2008:0849"/><erratum last-modified="1232469934" id="rhn-erratum-7562" advisory-name="RHBA-2008:0840"/><erratum last-modified="1232480208" id="rhn-erratum-7563" advisory-name="RHEA-2008:0838"/><erratum last-modified="1232480208" id="rhn-erratum-7564" advisory-name="RHBA-2008:0811"/><erratum last-modified="1232471170" id="rhn-erratum-7565" advisory-name="RHBA-2008:0631"/><erratum last-modified="1219857228" id="rhn-erratum-7568" advisory-name="RHSA-2008:0648"/><erratum last-modified="1219961566" id="rhn-erratum-7574" advisory-name="RHSA-2008:0847"/><erratum last-modified="1220439894" id="rhn-erratum-7578" advisory-name="RHEA-2008:0875"/><erratum last-modified="1220342177" id="rhn-erratum-7590" advisory-name="RHBA-2008:0639"/><erratum last-modified="1220380576" id="rhn-erratum-7591" advisory-name="RHBA-2008:0878"/><erratum last-modified="1232480208" id="rhn-erratum-7592" advisory-name="RHBA-2008:0266"/><erratum last-modified="1232471669" id="rhn-erratum-7593" advisory-name="RHBA-2008:0646"/><erratum last-modified="1232480208" id="rhn-erratum-7594" advisory-name="RHBA-2008:0844"/><erratum last-modified="1232480208" id="rhn-erratum-7595" advisory-name="RHBA-2008:0853"/><erratum last-modified="1232471607" id="rhn-erratum-7596" advisory-name="RHBA-2008:0866"/><erratum last-modified="1221141028" id="rhn-erratum-7607" advisory-name="RHSA-2008:0884"/><erratum last-modified="1221569125" id="rhn-erratum-7618" advisory-name="RHSA-2008:0893"/><erratum last-modified="1221666679" id="rhn-erratum-7619" advisory-name="RHBA-2008:0876"/><erratum last-modified="1232480208" id="rhn-erratum-7620" advisory-name="RHBA-2008:0881"/><erratum last-modified="1232480208" id="rhn-erratum-7621" advisory-name="RHBA-2008:0889"/><erratum last-modified="1222220548" id="rhn-erratum-7638" advisory-name="RHSA-2008:0879"/><erratum last-modified="1232472306" id="rhn-erratum-7640" advisory-name="RHBA-2008:0913"/><erratum last-modified="1232480208" id="rhn-erratum-7641" advisory-name="RHBA-2008:0931"/><erratum last-modified="1232480208" id="rhn-erratum-7642" advisory-name="RHBA-2008:0894"/><erratum last-modified="1222281827" id="rhn-erratum-7643" advisory-name="RHSA-2008:0885"/><erratum last-modified="1222371933" id="rhn-erratum-7646" advisory-name="RHBA-2008:0898"/><erratum last-modified="1222771548" id="rhn-erratum-7658" advisory-name="RHBA-2008:0933"/><erratum last-modified="1222875066" id="rhn-erratum-7659" advisory-name="RHSA-2008:0890"/><erratum last-modified="1222874832" id="rhn-erratum-7660" advisory-name="RHSA-2008:0892"/><erratum last-modified="1232480208" id="rhn-erratum-7662" advisory-name="RHBA-2008:0914"/><erratum last-modified="1222944761" id="rhn-erratum-7663" advisory-name="RHBA-2008:0647"/><erratum last-modified="1222951493" id="rhn-erratum-7664" advisory-name="RHBA-2008:0902"/><erratum last-modified="1222955994" id="rhn-erratum-7665" advisory-name="RHSA-2008:0907"/><erratum last-modified="1232480208" id="rhn-erratum-7704" advisory-name="RHBA-2008:0920"/><erratum last-modified="1232472272" id="rhn-erratum-7705" advisory-name="RHBA-2008:0912"/><erratum last-modified="1232472188" id="rhn-erratum-7707" advisory-name="RHBA-2008:0905"/><erratum last-modified="1232480208" id="rhn-erratum-7708" advisory-name="RHBA-2008:0899"/><erratum last-modified="1223471927" id="rhn-erratum-7710" advisory-name="RHEA-2008:0941"/><erratum last-modified="1223624846" id="rhn-erratum-7717" advisory-name="RHSA-2008:0937"/><erratum last-modified="1223912487" id="rhn-erratum-7719" advisory-name="RHBA-2008:0850"/><erratum last-modified="1224058340" id="rhn-erratum-7721" advisory-name="RHBA-2008:0909"/><erratum last-modified="1232480208" id="rhn-erratum-7725" advisory-name="RHBA-2008:0921"/><erratum last-modified="1232480208" id="rhn-erratum-7726" advisory-name="RHBA-2008:0917"/><erratum last-modified="1232480208" id="rhn-erratum-7727" advisory-name="RHBA-2008:0900"/><erratum last-modified="1232480208" id="rhn-erratum-7728" advisory-name="RHBA-2008:0845"/><erratum last-modified="1232472902" id="rhn-erratum-7738" advisory-name="RHBA-2008:0918"/><erratum last-modified="1224600759" id="rhn-erratum-7739" advisory-name="RHSA-2008:0897"/><erratum last-modified="1224602762" id="rhn-erratum-7742" advisory-name="RHSA-2008:0946"/><erratum last-modified="1225127389" id="rhn-erratum-7778" advisory-name="RHSA-2008:0965"/><erratum last-modified="1225723995" id="rhn-erratum-7799" advisory-name="RHSA-2008:0971"/><erratum last-modified="1226482482" id="rhn-erratum-7800" advisory-name="RHSA-2008:0957"/><erratum last-modified="1225826819" id="rhn-erratum-7801" advisory-name="RHBA-2008:0923"/><erratum last-modified="1225897383" id="rhn-erratum-7803" advisory-name="RHEA-2008:0969"/><erratum last-modified="1225907418" id="rhn-erratum-7805" advisory-name="RHBA-2008:0947"/><erratum last-modified="1225910118" id="rhn-erratum-7806" advisory-name="RHBA-2008:0956"/><erratum last-modified="1226428000" id="rhn-erratum-7820" advisory-name="RHSA-2008:0967"/><erratum last-modified="1226427998" id="rhn-erratum-7821" advisory-name="RHSA-2008:0982"/><erratum last-modified="1226542692" id="rhn-erratum-7828" advisory-name="RHSA-2008:0978"/><erratum last-modified="1226938556" id="rhn-erratum-7830" advisory-name="RHSA-2008:0988"/><erratum last-modified="1227602466" id="rhn-erratum-7863" advisory-name="RHSA-2008:0580"/><erratum last-modified="1227603932" id="rhn-erratum-7866" advisory-name="RHSA-2008:1001"/><erratum last-modified="1227605180" id="rhn-erratum-7867" advisory-name="RHBA-2008:0992"/><erratum last-modified="1227646521" id="rhn-erratum-7870" advisory-name="RHBA-2008:1009"/><erratum last-modified="1228132653" id="rhn-erratum-7879" advisory-name="RHBA-2008:0996"/><erratum last-modified="1228237181" id="rhn-erratum-7880" advisory-name="RHBA-2008:0962"/><erratum last-modified="1229103319" id="rhn-erratum-7901" advisory-name="RHSA-2008:0981"/><erratum last-modified="1228942168" id="rhn-erratum-7906" advisory-name="RHBA-2008:1030"/><erratum last-modified="1228992998" id="rhn-erratum-7918" advisory-name="RHBA-2008:0999"/><erratum last-modified="1229345508" id="rhn-erratum-7919" advisory-name="RHSA-2008:1016"/><erratum last-modified="1229347540" id="rhn-erratum-7922" advisory-name="RHSA-2008:1029"/><erratum last-modified="1229481511" id="rhn-erratum-7924" advisory-name="RHSA-2008:1017"/><erratum last-modified="1229477477" id="rhn-erratum-7926" advisory-name="RHSA-2008:1036"/><erratum last-modified="1231324405" id="rhn-erratum-7959" advisory-name="RHSA-2009:0003"/><erratum last-modified="1231326579" id="rhn-erratum-7961" advisory-name="RHSA-2009:0018"/><erratum last-modified="1231334838" id="rhn-erratum-7962" advisory-name="RHSA-2009:0004"/><erratum last-modified="1231335043" id="rhn-erratum-7963" advisory-name="RHSA-2009:0008"/><erratum last-modified="1231335537" id="rhn-erratum-7964" advisory-name="RHSA-2009:0011"/><erratum last-modified="1231439171" id="rhn-erratum-7979" advisory-name="RHSA-2009:0020"/><erratum last-modified="1231750715" id="rhn-erratum-7980" advisory-name="RHBA-2008:1034"/><erratum last-modified="1231769347" id="rhn-erratum-7981" advisory-name="RHSA-2009:0013"/><erratum last-modified="1231770400" id="rhn-erratum-7982" advisory-name="RHSA-2009:0010"/><erratum last-modified="1232399801" id="rhn-erratum-8007" advisory-name="RHSA-2009:0057"/><erratum last-modified="1232459797" id="rhn-erratum-8008" advisory-name="RHBA-2009:0056"/><erratum last-modified="1232480208" id="rhn-erratum-8009" advisory-name="RHBA-2009:0058"/><erratum last-modified="1232480208" id="rhn-erratum-8011" advisory-name="RHBA-2009:0060"/><erratum last-modified="1232480208" id="rhn-erratum-8012" advisory-name="RHBA-2009:0062"/><erratum last-modified="1232480208" id="rhn-erratum-8013" advisory-name="RHEA-2009:0063"/><erratum last-modified="1232480208" id="rhn-erratum-8016" advisory-name="RHBA-2009:0066"/><erratum last-modified="1232480208" id="rhn-erratum-8017" advisory-name="RHBA-2009:0067"/><erratum last-modified="1232480208" id="rhn-erratum-8018" advisory-name="RHBA-2009:0068"/><erratum last-modified="1232480208" id="rhn-erratum-8019" advisory-name="RHBA-2009:0069"/><erratum last-modified="1232480208" id="rhn-erratum-8020" advisory-name="RHBA-2009:0070"/><erratum last-modified="1232480208" id="rhn-erratum-8021" advisory-name="RHBA-2009:0071"/><erratum last-modified="1232480208" id="rhn-erratum-8022" advisory-name="RHBA-2009:0072"/><erratum last-modified="1232480208" id="rhn-erratum-8023" advisory-name="RHBA-2009:0073"/><erratum last-modified="1232480208" id="rhn-erratum-8024" advisory-name="RHBA-2009:0074"/><erratum last-modified="1232480208" id="rhn-erratum-8025" advisory-name="RHEA-2009:0075"/><erratum last-modified="1232480208" id="rhn-erratum-8026" advisory-name="RHBA-2009:0076"/><erratum last-modified="1232480208" id="rhn-erratum-8027" advisory-name="RHEA-2009:0077"/><erratum last-modified="1232480208" id="rhn-erratum-8028" advisory-name="RHEA-2009:0078"/><erratum last-modified="1232480208" id="rhn-erratum-8029" advisory-name="RHBA-2009:0079"/><erratum last-modified="1232480208" id="rhn-erratum-8030" advisory-name="RHBA-2009:0080"/><erratum last-modified="1232480208" id="rhn-erratum-8031" advisory-name="RHBA-2009:0082"/><erratum last-modified="1232480208" id="rhn-erratum-8032" advisory-name="RHEA-2009:0083"/><erratum last-modified="1232480208" id="rhn-erratum-8033" advisory-name="RHBA-2009:0084"/><erratum last-modified="1232480208" id="rhn-erratum-8034" advisory-name="RHBA-2009:0085"/><erratum last-modified="1232480208" id="rhn-erratum-8036" advisory-name="RHBA-2009:0087"/><erratum last-modified="1232480208" id="rhn-erratum-8037" advisory-name="RHBA-2009:0088"/><erratum last-modified="1232480208" id="rhn-erratum-8038" advisory-name="RHEA-2009:0089"/><erratum last-modified="1232480208" id="rhn-erratum-8039" advisory-name="RHBA-2009:0090"/><erratum last-modified="1232480208" id="rhn-erratum-8040" advisory-name="RHBA-2009:0091"/><erratum last-modified="1232480208" id="rhn-erratum-8041" advisory-name="RHEA-2009:0092"/><erratum last-modified="1232480208" id="rhn-erratum-8042" advisory-name="RHBA-2009:0093"/><erratum last-modified="1232480208" id="rhn-erratum-8043" advisory-name="RHBA-2009:0094"/><erratum last-modified="1232480208" id="rhn-erratum-8045" advisory-name="RHEA-2009:0096"/><erratum last-modified="1232480208" id="rhn-erratum-8046" advisory-name="RHEA-2009:0097"/><erratum last-modified="1232480208" id="rhn-erratum-8047" advisory-name="RHEA-2009:0098"/><erratum last-modified="1232480208" id="rhn-erratum-8052" advisory-name="RHBA-2009:0103"/><erratum last-modified="1232480208" id="rhn-erratum-8054" advisory-name="RHBA-2009:0105"/><erratum last-modified="1232480208" id="rhn-erratum-8055" advisory-name="RHEA-2009:0106"/><erratum last-modified="1232480208" id="rhn-erratum-8056" advisory-name="RHBA-2009:0107"/><erratum last-modified="1232480208" id="rhn-erratum-8057" advisory-name="RHEA-2009:0108"/><erratum last-modified="1232480208" id="rhn-erratum-8058" advisory-name="RHBA-2009:0109"/><erratum last-modified="1232480208" id="rhn-erratum-8059" advisory-name="RHBA-2009:0110"/><erratum last-modified="1232480208" id="rhn-erratum-8060" advisory-name="RHBA-2009:0111"/><erratum last-modified="1232480208" id="rhn-erratum-8061" advisory-name="RHBA-2009:0112"/><erratum last-modified="1232480208" id="rhn-erratum-8062" advisory-name="RHBA-2009:0113"/><erratum last-modified="1232480208" id="rhn-erratum-8063" advisory-name="RHBA-2009:0114"/><erratum last-modified="1232480208" id="rhn-erratum-8064" advisory-name="RHBA-2009:0115"/><erratum last-modified="1232480208" id="rhn-erratum-8065" advisory-name="RHBA-2009:0116"/><erratum last-modified="1232480208" id="rhn-erratum-8066" advisory-name="RHBA-2009:0117"/><erratum last-modified="1232480224" id="rhn-erratum-8067" advisory-name="RHBA-2009:0118"/><erratum last-modified="1232480208" id="rhn-erratum-8068" advisory-name="RHBA-2009:0119"/><erratum last-modified="1232480208" id="rhn-erratum-8069" advisory-name="RHBA-2009:0120"/><erratum last-modified="1232480208" id="rhn-erratum-8070" advisory-name="RHEA-2009:0123"/><erratum last-modified="1232480208" id="rhn-erratum-8072" advisory-name="RHEA-2009:0124"/><erratum last-modified="1232480208" id="rhn-erratum-8073" advisory-name="RHBA-2009:0125"/><erratum last-modified="1232480208" id="rhn-erratum-8074" advisory-name="RHBA-2009:0126"/><erratum last-modified="1232480208" id="rhn-erratum-8075" advisory-name="RHBA-2009:0127"/><erratum last-modified="1232480208" id="rhn-erratum-8076" advisory-name="RHBA-2009:0128"/><erratum last-modified="1232480208" id="rhn-erratum-8077" advisory-name="RHBA-2009:0130"/><erratum last-modified="1232480208" id="rhn-erratum-8078" advisory-name="RHBA-2009:0131"/><erratum last-modified="1232480208" id="rhn-erratum-8080" advisory-name="RHEA-2009:0133"/><erratum last-modified="1232480208" id="rhn-erratum-8081" advisory-name="RHBA-2009:0134"/><erratum last-modified="1232480208" id="rhn-erratum-8082" advisory-name="RHBA-2009:0135"/><erratum last-modified="1232480208" id="rhn-erratum-8083" advisory-name="RHBA-2009:0136"/><erratum last-modified="1232480208" id="rhn-erratum-8085" advisory-name="RHBA-2009:0138"/><erratum last-modified="1232480208" id="rhn-erratum-8086" advisory-name="RHBA-2009:0139"/><erratum last-modified="1232480208" id="rhn-erratum-8090" advisory-name="RHBA-2009:0143"/><erratum last-modified="1232480208" id="rhn-erratum-8091" advisory-name="RHBA-2009:0144"/><erratum last-modified="1232480208" id="rhn-erratum-8092" advisory-name="RHBA-2009:0145"/><erratum last-modified="1232480208" id="rhn-erratum-8093" advisory-name="RHBA-2009:0146"/><erratum last-modified="1232480208" id="rhn-erratum-8094" advisory-name="RHBA-2009:0147"/><erratum last-modified="1232480208" id="rhn-erratum-8095" advisory-name="RHBA-2009:0148"/><erratum last-modified="1232480208" id="rhn-erratum-8096" advisory-name="RHBA-2009:0149"/><erratum last-modified="1232480208" id="rhn-erratum-8098" advisory-name="RHEA-2009:0151"/><erratum last-modified="1232480208" id="rhn-erratum-8099" advisory-name="RHEA-2009:0152"/><erratum last-modified="1232480208" id="rhn-erratum-8100" advisory-name="RHEA-2009:0153"/><erratum last-modified="1232480208" id="rhn-erratum-8101" advisory-name="RHEA-2009:0154"/><erratum last-modified="1232480208" id="rhn-erratum-8103" advisory-name="RHBA-2009:0156"/><erratum last-modified="1232480208" id="rhn-erratum-8104" advisory-name="RHBA-2009:0157"/><erratum last-modified="1232480208" id="rhn-erratum-8107" advisory-name="RHEA-2009:0160"/><erratum last-modified="1232480208" id="rhn-erratum-8108" advisory-name="RHEA-2009:0161"/><erratum last-modified="1232480208" id="rhn-erratum-8109" advisory-name="RHBA-2009:0162"/><erratum last-modified="1232480208" id="rhn-erratum-8110" advisory-name="RHBA-2009:0163"/><erratum last-modified="1232480208" id="rhn-erratum-8111" advisory-name="RHBA-2009:0164"/><erratum last-modified="1232480208" id="rhn-erratum-8112" advisory-name="RHBA-2009:0165"/><erratum last-modified="1232480208" id="rhn-erratum-8113" advisory-name="RHEA-2009:0166"/><erratum last-modified="1232480208" id="rhn-erratum-8114" advisory-name="RHBA-2009:0167"/><erratum last-modified="1232480208" id="rhn-erratum-8115" advisory-name="RHBA-2009:0168"/><erratum last-modified="1232480208" id="rhn-erratum-8116" advisory-name="RHBA-2009:0170"/><erratum last-modified="1232480208" id="rhn-erratum-8117" advisory-name="RHBA-2009:0171"/><erratum last-modified="1232480208" id="rhn-erratum-8118" advisory-name="RHBA-2009:0172"/><erratum last-modified="1232480208" id="rhn-erratum-8119" advisory-name="RHBA-2009:0173"/><erratum last-modified="1232480208" id="rhn-erratum-8120" advisory-name="RHEA-2009:0174"/><erratum last-modified="1232480208" id="rhn-erratum-8121" advisory-name="RHBA-2009:0175"/><erratum last-modified="1232480208" id="rhn-erratum-8122" advisory-name="RHBA-2009:0176"/><erratum last-modified="1232480208" id="rhn-erratum-8124" advisory-name="RHBA-2009:0178"/><erratum last-modified="1232480208" id="rhn-erratum-8125" advisory-name="RHBA-2009:0179"/><erratum last-modified="1232480208" id="rhn-erratum-8126" advisory-name="RHBA-2009:0180"/><erratum last-modified="1232480208" id="rhn-erratum-8127" advisory-name="RHBA-2009:0181"/><erratum last-modified="1232480208" id="rhn-erratum-8128" advisory-name="RHBA-2009:0182"/><erratum last-modified="1232480208" id="rhn-erratum-8129" advisory-name="RHEA-2009:0183"/><erratum last-modified="1232480208" id="rhn-erratum-8130" advisory-name="RHEA-2009:0184"/><erratum last-modified="1232480208" id="rhn-erratum-8131" advisory-name="RHBA-2009:0186"/><erratum last-modified="1232480208" id="rhn-erratum-8132" advisory-name="RHEA-2009:0187"/><erratum last-modified="1232480208" id="rhn-erratum-8134" advisory-name="RHBA-2009:0189"/><erratum last-modified="1232480208" id="rhn-erratum-8135" advisory-name="RHEA-2009:0190"/><erratum last-modified="1232480208" id="rhn-erratum-8136" advisory-name="RHEA-2009:0191"/><erratum last-modified="1232480208" id="rhn-erratum-8137" advisory-name="RHEA-2009:0192"/><erratum last-modified="1232480208" id="rhn-erratum-8138" advisory-name="RHBA-2009:0193"/><erratum last-modified="1232480208" id="rhn-erratum-8139" advisory-name="RHEA-2009:0194"/><erratum last-modified="1232480208" id="rhn-erratum-8140" advisory-name="RHBA-2009:0195"/><erratum last-modified="1232480208" id="rhn-erratum-8142" advisory-name="RHEA-2009:0197"/><erratum last-modified="1232480208" id="rhn-erratum-8143" advisory-name="RHBA-2009:0198"/><erratum last-modified="1232480208" id="rhn-erratum-8144" advisory-name="RHEA-2009:0199"/><erratum last-modified="1232480208" id="rhn-erratum-8145" advisory-name="RHBA-2009:0200"/><erratum last-modified="1232480208" id="rhn-erratum-8146" advisory-name="RHEA-2009:0201"/><erratum last-modified="1232480208" id="rhn-erratum-8147" advisory-name="RHBA-2009:0202"/><erratum last-modified="1232480208" id="rhn-erratum-8148" advisory-name="RHBA-2009:0203"/><erratum last-modified="1232480208" id="rhn-erratum-8149" advisory-name="RHBA-2009:0204"/><erratum last-modified="1232479510" id="rhn-erratum-8150" advisory-name="RHSA-2009:0205"/><erratum last-modified="1232480208" id="rhn-erratum-8151" advisory-name="RHBA-2009:0206"/><erratum last-modified="1232480208" id="rhn-erratum-8152" advisory-name="RHBA-2009:0207"/><erratum last-modified="1232480208" id="rhn-erratum-8153" advisory-name="RHBA-2009:0208"/><erratum last-modified="1232480208" id="rhn-erratum-8154" advisory-name="RHBA-2009:0209"/><erratum last-modified="1232480208" id="rhn-erratum-8155" advisory-name="RHBA-2009:0210"/><erratum last-modified="1232480208" id="rhn-erratum-8156" advisory-name="RHEA-2009:0211"/><erratum last-modified="1232480208" id="rhn-erratum-8157" advisory-name="RHEA-2009:0212"/><erratum last-modified="1232480208" id="rhn-erratum-8158" advisory-name="RHBA-2009:0213"/><erratum last-modified="1232480208" id="rhn-erratum-8159" advisory-name="RHBA-2009:0214"/><erratum last-modified="1232480208" id="rhn-erratum-8162" advisory-name="RHEA-2009:0217"/><erratum last-modified="1232480208" id="rhn-erratum-8163" advisory-name="RHEA-2009:0218"/><erratum last-modified="1232480208" id="rhn-erratum-8164" advisory-name="RHBA-2009:0220"/><erratum last-modified="1232480208" id="rhn-erratum-8165" advisory-name="RHBA-2009:0221"/><erratum last-modified="1232480208" id="rhn-erratum-8166" advisory-name="RHBA-2009:0222"/><erratum last-modified="1232480208" id="rhn-erratum-8167" advisory-name="RHBA-2009:0224"/><erratum last-modified="1232659228" id="rhn-erratum-8168" advisory-name="RHSA-2009:0225"/><erratum last-modified="1232480208" id="rhn-erratum-8169" advisory-name="RHBA-2009:0226"/><erratum last-modified="1232480208" id="rhn-erratum-8170" advisory-name="RHBA-2009:0227"/><erratum last-modified="1232480208" id="rhn-erratum-8171" advisory-name="RHBA-2009:0228"/><erratum last-modified="1232480208" id="rhn-erratum-8172" advisory-name="RHBA-2009:0229"/><erratum last-modified="1232480208" id="rhn-erratum-8173" advisory-name="RHBA-2009:0230"/><erratum last-modified="1232480208" id="rhn-erratum-8174" advisory-name="RHBA-2009:0231"/><erratum last-modified="1232480208" id="rhn-erratum-8175" advisory-name="RHEA-2009:0232"/><erratum last-modified="1232480208" id="rhn-erratum-8176" advisory-name="RHBA-2009:0233"/><erratum last-modified="1232480208" id="rhn-erratum-8177" advisory-name="RHBA-2009:0234"/><erratum last-modified="1232480208" id="rhn-erratum-8178" advisory-name="RHEA-2009:0235"/><erratum last-modified="1232480208" id="rhn-erratum-8179" advisory-name="RHEA-2009:0236"/><erratum last-modified="1232480208" id="rhn-erratum-8180" advisory-name="RHBA-2009:0237"/><erratum last-modified="1232480208" id="rhn-erratum-8182" advisory-name="RHBA-2009:0239"/><erratum last-modified="1232480208" id="rhn-erratum-8183" advisory-name="RHBA-2009:0240"/><erratum last-modified="1232480208" id="rhn-erratum-8184" advisory-name="RHBA-2009:0241"/><erratum last-modified="1232480208" id="rhn-erratum-8185" advisory-name="RHBA-2009:0242"/><erratum last-modified="1232480208" id="rhn-erratum-8187" advisory-name="RHBA-2009:0245"/><erratum last-modified="1232480208" id="rhn-erratum-8188" advisory-name="RHBA-2009:0246"/><erratum last-modified="1232480208" id="rhn-erratum-8189" advisory-name="RHBA-2009:0247"/><erratum last-modified="1232480208" id="rhn-erratum-8190" advisory-name="RHBA-2009:0248"/><erratum last-modified="1232480208" id="rhn-erratum-8191" advisory-name="RHBA-2009:0249"/><erratum last-modified="1232480208" id="rhn-erratum-8192" advisory-name="RHBA-2009:0250"/><erratum last-modified="1232470005" id="rhn-erratum-8193" advisory-name="RHBA-2009:0252"/><erratum last-modified="1232480208" id="rhn-erratum-8194" advisory-name="RHBA-2009:0185"/><erratum last-modified="1232495455" id="rhn-erratum-8195" advisory-name="RHBA-2009:0169"/><erratum last-modified="1232497996" id="rhn-erratum-8203" advisory-name="RHBA-2009:0017"/><erratum last-modified="1232503970" id="rhn-erratum-8204" advisory-name="RHBA-2009:0048"/><erratum last-modified="1232495619" id="rhn-erratum-8205" advisory-name="RHBA-2009:0049"/><erratum last-modified="1233222316" id="rhn-erratum-8243" advisory-name="RHSA-2009:0046"/><erratum last-modified="1233737974" id="rhn-erratum-8266" advisory-name="RHSA-2009:0256"/><erratum last-modified="1233849544" id="rhn-erratum-8276" advisory-name="RHSA-2009:0267"/><erratum last-modified="1233925487" id="rhn-erratum-8279" advisory-name="RHSA-2009:0271"/><erratum last-modified="1234281035" id="rhn-erratum-8283" advisory-name="RHSA-2009:0264"/><erratum last-modified="1251890453" id="rhn-erratum-8284" advisory-name="RHBA-2009:0276"/><erratum last-modified="1251890602" id="rhn-erratum-8285" advisory-name="RHBA-2009:0277"/><erratum last-modified="1251890770" id="rhn-erratum-8286" advisory-name="RHBA-2009:0279"/><erratum last-modified="1234371093" id="rhn-erratum-8288" advisory-name="RHSA-2009:0012"/><erratum last-modified="1234371489" id="rhn-erratum-8289" advisory-name="RHSA-2009:0259"/><erratum last-modified="1234374733" id="rhn-erratum-8291" advisory-name="RHSA-2009:0261"/><erratum last-modified="1251891421" id="rhn-erratum-8301" advisory-name="RHBA-2009:0294"/><erratum last-modified="1234975480" id="rhn-erratum-8304" advisory-name="RHBA-2009:0309"/><erratum last-modified="1235513125" id="rhn-erratum-8319" advisory-name="RHBA-2009:0280"/><erratum last-modified="1235749692" id="rhn-erratum-8325" advisory-name="RHBA-2009:0283"/><erratum last-modified="1236194593" id="rhn-erratum-8327" advisory-name="RHSA-2009:0313"/><erratum last-modified="1236196706" id="rhn-erratum-8328" advisory-name="RHSA-2009:0333"/><erratum last-modified="1236211859" id="rhn-erratum-8330" advisory-name="RHSA-2009:0315"/><erratum last-modified="1251891574" id="rhn-erratum-8338" advisory-name="RHBA-2009:0305"/><erratum last-modified="1251891276" id="rhn-erratum-8339" advisory-name="RHBA-2009:0291"/><erratum last-modified="1236867191" id="rhn-erratum-8358" advisory-name="RHSA-2009:0296"/><erratum last-modified="1237211621" id="rhn-erratum-8362" advisory-name="RHSA-2009:0344"/><erratum last-modified="1237212400" id="rhn-erratum-8363" advisory-name="RHSA-2009:0354"/><erratum last-modified="1251892651" id="rhn-erratum-8378" advisory-name="RHBA-2009:0378"/><erratum last-modified="1251901881" id="rhn-erratum-8379" advisory-name="RHBA-2009:0379"/><erratum last-modified="1251892890" id="rhn-erratum-8380" advisory-name="RHBA-2009:0380"/><erratum last-modified="1237475158" id="rhn-erratum-8382" advisory-name="RHSA-2009:0339"/><erratum last-modified="1237476611" id="rhn-erratum-8383" advisory-name="RHSA-2009:0341"/><erratum last-modified="1237478023" id="rhn-erratum-8384" advisory-name="RHSA-2009:0345"/><erratum last-modified="1237896260" id="rhn-erratum-8399" advisory-name="RHSA-2009:0336"/><erratum last-modified="1251892784" id="rhn-erratum-8400" advisory-name="RHBA-2009:0389"/><erratum last-modified="1251891869" id="rhn-erratum-8401" advisory-name="RHBA-2009:0390"/><erratum last-modified="1237989484" id="rhn-erratum-8403" advisory-name="RHSA-2009:0361"/><erratum last-modified="1238083248" id="rhn-erratum-8409" advisory-name="RHSA-2009:0373"/><erratum last-modified="1238196859" id="rhn-erratum-8423" advisory-name="RHSA-2009:0397"/><erratum last-modified="1238423623" id="rhn-erratum-8424" advisory-name="RHBA-2009:0401"/><erratum last-modified="1238431951" id="rhn-erratum-8425" advisory-name="RHSA-2009:0402"/><erratum last-modified="1238488903" id="rhn-erratum-8426" advisory-name="RHEA-2009:0403"/><erratum last-modified="1238574216" id="rhn-erratum-8427" advisory-name="RHSA-2009:0326"/><erratum last-modified="1251893018" id="rhn-erratum-8428" advisory-name="RHBA-2009:0404"/><erratum last-modified="1251901555" id="rhn-erratum-8429" advisory-name="RHBA-2009:0405"/><erratum last-modified="1238684368" id="rhn-erratum-8431" advisory-name="RHBA-2009:0406"/><erratum last-modified="1239035514" id="rhn-erratum-8437" advisory-name="RHSA-2009:0352"/><erratum last-modified="1239035685" id="rhn-erratum-8438" advisory-name="RHSA-2009:0338"/><erratum last-modified="1239129395" id="rhn-erratum-8440" advisory-name="RHSA-2009:0377"/><erratum last-modified="1239129589" id="rhn-erratum-8441" advisory-name="RHSA-2009:0408"/><erratum last-modified="1239131002" id="rhn-erratum-8444" advisory-name="RHSA-2009:0411"/><erratum last-modified="1251893998" id="rhn-erratum-8445" advisory-name="RHBA-2009:0412"/><erratum last-modified="1251893770" id="rhn-erratum-8446" advisory-name="RHBA-2009:0413"/><erratum last-modified="1251893573" id="rhn-erratum-8447" advisory-name="RHBA-2009:0414"/><erratum last-modified="1239307344" id="rhn-erratum-8449" advisory-name="RHBA-2009:0416"/><erratum last-modified="1239307510" id="rhn-erratum-8450" advisory-name="RHBA-2009:0417"/><erratum last-modified="1239307689" id="rhn-erratum-8451" advisory-name="RHBA-2009:0418"/><erratum last-modified="1239731641" id="rhn-erratum-8461" advisory-name="RHSA-2009:0421"/><erratum last-modified="1239788525" id="rhn-erratum-8462" advisory-name="RHEA-2009:0422"/><erratum last-modified="1251894185" id="rhn-erratum-8463" advisory-name="RHBA-2009:0423"/><erratum last-modified="1251893153" id="rhn-erratum-8464" advisory-name="RHBA-2009:0424"/><erratum last-modified="1251892498" id="rhn-erratum-8465" advisory-name="RHBA-2009:0425"/><erratum last-modified="1251892034" id="rhn-erratum-8466" advisory-name="RHBA-2009:0426"/><erratum last-modified="1239910537" id="rhn-erratum-8467" advisory-name="RHSA-2009:0427"/><erratum last-modified="1239919907" id="rhn-erratum-8469" advisory-name="RHSA-2009:0429"/><erratum last-modified="1239975414" id="rhn-erratum-8472" advisory-name="RHBA-2009:0432"/><erratum last-modified="1240364412" id="rhn-erratum-8476" advisory-name="RHSA-2009:0436"/><erratum last-modified="1251895891" id="rhn-erratum-8477" advisory-name="RHBA-2009:0438"/><erratum last-modified="1251895717" id="rhn-erratum-8478" advisory-name="RHBA-2009:0439"/><erratum last-modified="1251895285" id="rhn-erratum-8479" advisory-name="RHBA-2009:0440"/><erratum last-modified="1251894684" id="rhn-erratum-8480" advisory-name="RHBA-2009:0441"/><erratum last-modified="1251894498" id="rhn-erratum-8481" advisory-name="RHBA-2009:0442"/><erratum last-modified="1240405100" id="rhn-erratum-8482" advisory-name="RHBA-2009:0443"/><erratum last-modified="1240421850" id="rhn-erratum-8483" advisory-name="RHSA-2009:0444"/><erratum last-modified="1240866192" id="rhn-erratum-8521" advisory-name="RHSA-2009:0449"/><erratum last-modified="1251897739" id="rhn-erratum-8524" advisory-name="RHBA-2009:0452"/><erratum last-modified="1251895441" id="rhn-erratum-8525" advisory-name="RHBA-2009:0453"/><erratum last-modified="1241095601" id="rhn-erratum-8528" advisory-name="RHBA-2009:0456"/><erratum last-modified="1241124168" id="rhn-erratum-8529" advisory-name="RHSA-2009:0457"/><erratum last-modified="1241606946" id="rhn-erratum-8538" advisory-name="RHBA-2009:0461"/><erratum last-modified="1251896232" id="rhn-erratum-8539" advisory-name="RHBA-2009:0462"/><erratum last-modified="1251896081" id="rhn-erratum-8540" advisory-name="RHBA-2009:0463"/><erratum last-modified="1251895131" id="rhn-erratum-8542" advisory-name="RHBA-2009:0465"/><erratum last-modified="1241689947" id="rhn-erratum-8543" advisory-name="RHBA-2009:0467"/><erratum last-modified="1241693590" id="rhn-erratum-8549" advisory-name="RHSA-2009:0473"/><erratum last-modified="1241697393" id="rhn-erratum-8551" advisory-name="RHSA-2009:0474"/><erratum last-modified="1241698624" id="rhn-erratum-8552" advisory-name="RHBA-2009:0475"/><erratum last-modified="1241774754" id="rhn-erratum-8558" advisory-name="RHSA-2009:0476"/><erratum last-modified="1241804814" id="rhn-erratum-8559" advisory-name="RHBA-2009:0477"/><erratum last-modified="1242224830" id="rhn-erratum-8561" advisory-name="RHSA-2009:0479"/><erratum last-modified="1242225153" id="rhn-erratum-8562" advisory-name="RHSA-2009:0480"/><erratum last-modified="1251902269" id="rhn-erratum-8563" advisory-name="RHBA-2009:0481"/><erratum last-modified="1251896851" id="rhn-erratum-8564" advisory-name="RHBA-2009:0482"/><erratum last-modified="1251896558" id="rhn-erratum-8565" advisory-name="RHBA-2009:0483"/><erratum last-modified="1251894347" id="rhn-erratum-8566" advisory-name="RHBA-2009:0484"/><erratum last-modified="1242677390" id="rhn-erratum-8671" advisory-name="RHSA-2009:1036"/><erratum last-modified="1242678906" id="rhn-erratum-8673" advisory-name="RHSA-2009:1039"/><erratum last-modified="1251898985" id="rhn-erratum-8690" advisory-name="RHBA-2009:1056"/><erratum last-modified="1242993962" id="rhn-erratum-8703" advisory-name="RHSA-2009:1061"/><erratum last-modified="1243358818" id="rhn-erratum-8724" advisory-name="RHSA-2009:1066"/><erratum last-modified="1243411642" id="rhn-erratum-8725" advisory-name="RHBA-2009:1068"/><erratum last-modified="1243412316" id="rhn-erratum-8726" advisory-name="RHBA-2009:1069"/><erratum last-modified="1251902639" id="rhn-erratum-8727" advisory-name="RHBA-2009:1070"/><erratum last-modified="1251902447" id="rhn-erratum-8728" advisory-name="RHBA-2009:1071"/><erratum last-modified="1251899735" id="rhn-erratum-8729" advisory-name="RHBA-2009:1072"/><erratum last-modified="1251898792" id="rhn-erratum-8730" advisory-name="RHEA-2009:1073"/><erratum last-modified="1251898432" id="rhn-erratum-8731" advisory-name="RHBA-2009:1074"/><erratum last-modified="1243433945" id="rhn-erratum-8732" advisory-name="RHSA-2009:1075"/><erratum last-modified="1251899215" id="rhn-erratum-8742" advisory-name="RHBA-2009:1078"/><erratum last-modified="1251896388" id="rhn-erratum-8743" advisory-name="RHBA-2009:1079"/><erratum last-modified="1251894855" id="rhn-erratum-8744" advisory-name="RHBA-2009:1080"/><erratum last-modified="1244043269" id="rhn-erratum-8745" advisory-name="RHSA-2009:1082"/><erratum last-modified="1251902372" id="rhn-erratum-8765" advisory-name="RHBA-2009:1089"/><erratum last-modified="1251898633" id="rhn-erratum-8766" advisory-name="RHBA-2009:1090"/><erratum last-modified="1244712708" id="rhn-erratum-8769" advisory-name="RHBA-2009:1092"/><erratum last-modified="1244760082" id="rhn-erratum-8772" advisory-name="RHSA-2009:1095"/><erratum last-modified="1245049997" id="rhn-erratum-8776" advisory-name="RHBA-2009:1099"/><erratum last-modified="1245098247" id="rhn-erratum-8777" advisory-name="RHSA-2009:1100"/><erratum last-modified="1245099386" id="rhn-erratum-8778" advisory-name="RHBA-2009:1088"/><erratum last-modified="1245100252" id="rhn-erratum-8780" advisory-name="RHSA-2009:1102"/><erratum last-modified="1245137587" id="rhn-erratum-8781" advisory-name="RHBA-2009:1103"/><erratum last-modified="1245157126" id="rhn-erratum-8782" advisory-name="RHBA-2009:1104"/><erratum last-modified="1245169236" id="rhn-erratum-8783" advisory-name="RHEA-2009:1105"/><erratum last-modified="1245191652" id="rhn-erratum-8784" advisory-name="RHSA-2009:1106"/><erratum last-modified="1245188970" id="rhn-erratum-8785" advisory-name="RHSA-2009:1107"/><erratum last-modified="1251898283" id="rhn-erratum-8788" advisory-name="RHBA-2009:1110"/><erratum last-modified="1251898086" id="rhn-erratum-8789" advisory-name="RHBA-2009:1111"/><erratum last-modified="1251897375" id="rhn-erratum-8790" advisory-name="RHBA-2009:1112"/><erratum last-modified="1251893281" id="rhn-erratum-8791" advisory-name="RHBA-2009:1113"/><erratum last-modified="1245345978" id="rhn-erratum-8794" advisory-name="RHSA-2009:1116"/><erratum last-modified="1251903394" id="rhn-erratum-8796" advisory-name="RHBA-2009:1117"/><erratum last-modified="1251904193" id="rhn-erratum-8797" advisory-name="RHBA-2009:1118"/><erratum last-modified="1251901978" id="rhn-erratum-8798" advisory-name="RHBA-2009:1119"/><erratum last-modified="1251897187" id="rhn-erratum-8799" advisory-name="RHBA-2009:1120"/><erratum last-modified="1251896704" id="rhn-erratum-8800" advisory-name="RHEA-2009:1121"/><erratum last-modified="1245938790" id="rhn-erratum-8816" advisory-name="RHSA-2009:1122"/><erratum last-modified="1245939212" id="rhn-erratum-8817" advisory-name="RHSA-2009:1123"/><erratum last-modified="1245948118" id="rhn-erratum-8821" advisory-name="RHSA-2009:1127"/><erratum last-modified="1246018455" id="rhn-erratum-8836" advisory-name="RHBA-2009:1131"/><erratum last-modified="1246351025" id="rhn-erratum-8838" advisory-name="RHBA-2009:1133"/><erratum last-modified="1246531095" id="rhn-erratum-8856" advisory-name="RHBA-2009:1137"/><erratum last-modified="1246546970" id="rhn-erratum-8857" advisory-name="RHSA-2009:1138"/><erratum last-modified="1246554217" id="rhn-erratum-8859" advisory-name="RHSA-2009:1140"/><erratum last-modified="1246606281" id="rhn-erratum-8861" advisory-name="RHBA-2009:1142"/><erratum last-modified="1247155814" id="rhn-erratum-8883" advisory-name="RHSA-2009:1148"/><erratum last-modified="1247238297" id="rhn-erratum-8885" advisory-name="RHBA-2009:1150"/><erratum last-modified="1247562642" id="rhn-erratum-8886" advisory-name="RHBA-2009:1151"/><erratum last-modified="1247772613" id="rhn-erratum-8895" advisory-name="RHSA-2009:1159"/><erratum last-modified="1248075024" id="rhn-erratum-8897" advisory-name="RHBA-2009:1161"/><erratum last-modified="1248209788" id="rhn-erratum-8898" advisory-name="RHSA-2009:1164"/><erratum last-modified="1248225956" id="rhn-erratum-8899" advisory-name="RHSA-2009:1162"/><erratum last-modified="1248247063" id="rhn-erratum-8901" advisory-name="RHBA-2009:1165"/><erratum last-modified="1248686569" id="rhn-erratum-8912" advisory-name="RHSA-2009:1176"/><erratum last-modified="1248908176" id="rhn-erratum-8915" advisory-name="RHSA-2009:1179"/><erratum last-modified="1248992401" id="rhn-erratum-8923" advisory-name="RHSA-2009:1186"/><erratum last-modified="1249284929" id="rhn-erratum-8927" advisory-name="RHBA-2009:1191"/><erratum last-modified="1249285235" id="rhn-erratum-8928" advisory-name="RHBA-2009:1192"/><erratum last-modified="1249391447" id="rhn-erratum-8929" advisory-name="RHSA-2009:1193"/><erratum last-modified="1249593283" id="rhn-erratum-8936" advisory-name="RHSA-2009:1201"/><erratum last-modified="1249635208" id="rhn-erratum-8938" advisory-name="RHBA-2009:1202"/><erratum last-modified="1249923570" id="rhn-erratum-8939" advisory-name="RHSA-2009:1203"/><erratum last-modified="1249924960" id="rhn-erratum-8940" advisory-name="RHSA-2009:1204"/><erratum last-modified="1249928065" id="rhn-erratum-8942" advisory-name="RHSA-2009:1206"/><erratum last-modified="1250174015" id="rhn-erratum-8946" advisory-name="RHSA-2009:1209"/><erratum last-modified="1250515305" id="rhn-erratum-8960" advisory-name="RHEA-2009:1214"/><erratum last-modified="1250587186" id="rhn-erratum-8961" advisory-name="RHBA-2009:1215"/><erratum last-modified="1250619786" id="rhn-erratum-8965" advisory-name="RHSA-2009:1219"/><erratum last-modified="1251112218" id="rhn-erratum-8968" advisory-name="RHSA-2009:1222"/><erratum last-modified="1251298026" id="rhn-erratum-8978" advisory-name="RHSA-2009:1232"/><erratum last-modified="1251764323" id="rhn-erratum-8985" advisory-name="RHSA-2009:1238"/><erratum last-modified="1251874953" id="rhn-erratum-8988" advisory-name="RHBA-2009:1240"/><erratum last-modified="1251899232" id="rhn-erratum-8989" advisory-name="RHBA-2009:1241"/><erratum last-modified="1251874953" id="rhn-erratum-8990" advisory-name="RHBA-2009:1242"/><erratum last-modified="1252518575" id="rhn-erratum-8991" advisory-name="RHSA-2009:1243"/><erratum last-modified="1251874953" id="rhn-erratum-8992" advisory-name="RHBA-2009:1244"/><erratum last-modified="1251874953" id="rhn-erratum-8993" advisory-name="RHEA-2009:1245"/><erratum last-modified="1251874953" id="rhn-erratum-8996" advisory-name="RHBA-2009:1249"/><erratum last-modified="1251899232" id="rhn-erratum-8997" advisory-name="RHBA-2009:1250"/><erratum last-modified="1251874953" id="rhn-erratum-8998" advisory-name="RHBA-2009:1251"/><erratum last-modified="1251899232" id="rhn-erratum-8999" advisory-name="RHBA-2009:1256"/><erratum last-modified="1251899232" id="rhn-erratum-9000" advisory-name="RHBA-2009:1257"/><erratum last-modified="1251874953" id="rhn-erratum-9001" advisory-name="RHBA-2009:1258"/><erratum last-modified="1251899232" id="rhn-erratum-9002" advisory-name="RHBA-2009:1259"/><erratum last-modified="1251874953" id="rhn-erratum-9004" advisory-name="RHBA-2009:1262"/><erratum last-modified="1251899232" id="rhn-erratum-9006" advisory-name="RHEA-2009:1264"/><erratum last-modified="1251874953" id="rhn-erratum-9007" advisory-name="RHBA-2009:1265"/><erratum last-modified="1251899232" id="rhn-erratum-9008" advisory-name="RHEA-2009:1266"/><erratum last-modified="1251899232" id="rhn-erratum-9009" advisory-name="RHBA-2009:1267"/><erratum last-modified="1251899232" id="rhn-erratum-9010" advisory-name="RHBA-2009:1268"/><erratum last-modified="1251899232" id="rhn-erratum-9013" advisory-name="RHBA-2009:1273"/><erratum last-modified="1251899232" id="rhn-erratum-9014" advisory-name="RHEA-2009:1274"/><erratum last-modified="1251899232" id="rhn-erratum-9017" advisory-name="RHBA-2009:1277"/><erratum last-modified="1251874953" id="rhn-erratum-9018" advisory-name="RHSA-2009:1278"/><erratum last-modified="1251899232" id="rhn-erratum-9019" advisory-name="RHEA-2009:1279"/><erratum last-modified="1251874953" id="rhn-erratum-9020" advisory-name="RHBA-2009:1280"/><erratum last-modified="1251874953" id="rhn-erratum-9021" advisory-name="RHEA-2009:1281"/><erratum last-modified="1251899232" id="rhn-erratum-9022" advisory-name="RHBA-2009:1282"/><erratum last-modified="1251899232" id="rhn-erratum-9023" advisory-name="RHBA-2009:1283"/><erratum last-modified="1251899232" id="rhn-erratum-9024" advisory-name="RHEA-2009:1284"/><erratum last-modified="1251899232" id="rhn-erratum-9026" advisory-name="RHBA-2009:1286"/><erratum last-modified="1251874953" id="rhn-erratum-9027" advisory-name="RHSA-2009:1287"/><erratum last-modified="1251899232" id="rhn-erratum-9028" advisory-name="RHBA-2009:1288"/><erratum last-modified="1251874953" id="rhn-erratum-9029" advisory-name="RHBA-2009:1290"/><erratum last-modified="1251899232" id="rhn-erratum-9030" advisory-name="RHBA-2009:1291"/><erratum last-modified="1251874953" id="rhn-erratum-9031" advisory-name="RHBA-2009:1292"/><erratum last-modified="1251874953" id="rhn-erratum-9032" advisory-name="RHEA-2009:1293"/><erratum last-modified="1251899232" id="rhn-erratum-9033" advisory-name="RHEA-2009:1294"/><erratum last-modified="1251899232" id="rhn-erratum-9034" advisory-name="RHEA-2009:1295"/><erratum last-modified="1251899232" id="rhn-erratum-9035" advisory-name="RHEA-2009:1296"/><erratum last-modified="1251874953" id="rhn-erratum-9036" advisory-name="RHEA-2009:1297"/><erratum last-modified="1251899232" id="rhn-erratum-9037" advisory-name="RHBA-2009:1298"/><erratum last-modified="1251899232" id="rhn-erratum-9039" advisory-name="RHBA-2009:1300"/><erratum last-modified="1251899232" id="rhn-erratum-9040" advisory-name="RHBA-2009:1301"/><erratum last-modified="1251899232" id="rhn-erratum-9042" advisory-name="RHEA-2009:1303"/><erratum last-modified="1251899232" id="rhn-erratum-9043" advisory-name="RHBA-2009:1304"/><erratum last-modified="1251874953" id="rhn-erratum-9045" advisory-name="RHBA-2009:1306"/><erratum last-modified="1251899232" id="rhn-erratum-9046" advisory-name="RHSA-2009:1307"/><erratum last-modified="1251874953" id="rhn-erratum-9047" advisory-name="RHEA-2009:1308"/><erratum last-modified="1251874953" id="rhn-erratum-9049" advisory-name="RHBA-2009:1310"/><erratum last-modified="1251899232" id="rhn-erratum-9051" advisory-name="RHEA-2009:1312"/><erratum last-modified="1251899232" id="rhn-erratum-9052" advisory-name="RHBA-2009:1313"/><erratum last-modified="1251899232" id="rhn-erratum-9053" advisory-name="RHEA-2009:1314"/><erratum last-modified="1251899232" id="rhn-erratum-9054" advisory-name="RHEA-2009:1315"/><erratum last-modified="1251874953" id="rhn-erratum-9055" advisory-name="RHEA-2009:1316"/><erratum last-modified="1251874953" id="rhn-erratum-9056" advisory-name="RHBA-2009:1317"/><erratum last-modified="1251874953" id="rhn-erratum-9057" advisory-name="RHEA-2009:1318"/><erratum last-modified="1251874953" id="rhn-erratum-9058" advisory-name="RHBA-2009:1319"/><erratum last-modified="1251899232" id="rhn-erratum-9059" advisory-name="RHEA-2009:1320"/><erratum last-modified="1251874953" id="rhn-erratum-9060" advisory-name="RHSA-2009:1321"/><erratum last-modified="1251899232" id="rhn-erratum-9061" advisory-name="RHBA-2009:1322"/><erratum last-modified="1251874953" id="rhn-erratum-9063" advisory-name="RHBA-2009:1324"/><erratum last-modified="1251874953" id="rhn-erratum-9066" advisory-name="RHEA-2009:1327"/><erratum last-modified="1251899263" id="rhn-erratum-9067" advisory-name="RHBA-2009:1328"/><erratum last-modified="1251874953" id="rhn-erratum-9068" advisory-name="RHBA-2009:1329"/><erratum last-modified="1251899232" id="rhn-erratum-9069" advisory-name="RHBA-2009:1330"/><erratum last-modified="1251899232" id="rhn-erratum-9070" advisory-name="RHBA-2009:1331"/><erratum last-modified="1251899232" id="rhn-erratum-9071" advisory-name="RHEA-2009:1332"/><erratum last-modified="1251899232" id="rhn-erratum-9072" advisory-name="RHBA-2009:1333"/><erratum last-modified="1251899232" id="rhn-erratum-9074" advisory-name="RHSA-2009:1335"/><erratum last-modified="1251874953" id="rhn-erratum-9076" advisory-name="RHSA-2009:1337"/><erratum last-modified="1251899232" id="rhn-erratum-9080" advisory-name="RHSA-2009:1341"/><erratum last-modified="1251874953" id="rhn-erratum-9081" advisory-name="RHEA-2009:1342"/><erratum last-modified="1251874953" id="rhn-erratum-9082" advisory-name="RHBA-2009:1343"/><erratum last-modified="1251874953" id="rhn-erratum-9083" advisory-name="RHBA-2009:1344"/><erratum last-modified="1251899232" id="rhn-erratum-9084" advisory-name="RHBA-2009:1345"/><erratum last-modified="1251899232" id="rhn-erratum-9085" advisory-name="RHBA-2009:1346"/><erratum last-modified="1251899232" id="rhn-erratum-9086" advisory-name="RHBA-2009:1347"/><erratum last-modified="1251874953" id="rhn-erratum-9087" advisory-name="RHEA-2009:1348"/><erratum last-modified="1251899232" id="rhn-erratum-9088" advisory-name="RHBA-2009:1349"/><erratum last-modified="1251874953" id="rhn-erratum-9089" advisory-name="RHEA-2009:1350"/><erratum last-modified="1251874953" id="rhn-erratum-9090" advisory-name="RHBA-2009:1351"/><erratum last-modified="1251874953" id="rhn-erratum-9091" advisory-name="RHBA-2009:1352"/><erratum last-modified="1251874953" id="rhn-erratum-9092" advisory-name="RHBA-2009:1353"/><erratum last-modified="1251874953" id="rhn-erratum-9093" advisory-name="RHBA-2009:1354"/><erratum last-modified="1251874953" id="rhn-erratum-9094" advisory-name="RHBA-2009:1355"/><erratum last-modified="1251874953" id="rhn-erratum-9095" advisory-name="RHBA-2009:1356"/><erratum last-modified="1254425146" id="rhn-erratum-9096" advisory-name="RHBA-2009:1357"/><erratum last-modified="1251899232" id="rhn-erratum-9097" advisory-name="RHBA-2009:1358"/><erratum last-modified="1251899232" id="rhn-erratum-9098" advisory-name="RHBA-2009:1359"/><erratum last-modified="1251899232" id="rhn-erratum-9099" advisory-name="RHBA-2009:1360"/><erratum last-modified="1251874953" id="rhn-erratum-9100" advisory-name="RHBA-2009:1361"/><erratum last-modified="1251874953" id="rhn-erratum-9101" advisory-name="RHBA-2009:1362"/><erratum last-modified="1251874953" id="rhn-erratum-9102" advisory-name="RHEA-2009:1363"/><erratum last-modified="1251874953" id="rhn-erratum-9103" advisory-name="RHSA-2009:1364"/><erratum last-modified="1251874953" id="rhn-erratum-9104" advisory-name="RHBA-2009:1365"/><erratum last-modified="1251899232" id="rhn-erratum-9105" advisory-name="RHBA-2009:1366"/><erratum last-modified="1251874953" id="rhn-erratum-9107" advisory-name="RHBA-2009:1368"/><erratum last-modified="1251874953" id="rhn-erratum-9108" advisory-name="RHEA-2009:1369"/><erratum last-modified="1251874953" id="rhn-erratum-9109" advisory-name="RHBA-2009:1370"/><erratum last-modified="1251899232" id="rhn-erratum-9110" advisory-name="RHBA-2009:1371"/><erratum last-modified="1251899232" id="rhn-erratum-9111" advisory-name="RHBA-2009:1372"/><erratum last-modified="1251899232" id="rhn-erratum-9112" advisory-name="RHBA-2009:1373"/><erratum last-modified="1251899232" id="rhn-erratum-9114" advisory-name="RHBA-2009:1375"/><erratum last-modified="1251899232" id="rhn-erratum-9115" advisory-name="RHBA-2009:1376"/><erratum last-modified="1251899232" id="rhn-erratum-9116" advisory-name="RHBA-2009:1378"/><erratum last-modified="1251874953" id="rhn-erratum-9117" advisory-name="RHBA-2009:1379"/><erratum last-modified="1251899232" id="rhn-erratum-9118" advisory-name="RHBA-2009:1380"/><erratum last-modified="1251874953" id="rhn-erratum-9120" advisory-name="RHBA-2009:1382"/><erratum last-modified="1251899232" id="rhn-erratum-9121" advisory-name="RHEA-2009:1384"/><erratum last-modified="1251874953" id="rhn-erratum-9122" advisory-name="RHEA-2009:1385"/><erratum last-modified="1251874953" id="rhn-erratum-9124" advisory-name="RHBA-2009:1387"/><erratum last-modified="1251874953" id="rhn-erratum-9125" advisory-name="RHBA-2009:1388"/><erratum last-modified="1251899232" id="rhn-erratum-9126" advisory-name="RHBA-2009:1389"/><erratum last-modified="1251874953" id="rhn-erratum-9127" advisory-name="RHBA-2009:1390"/><erratum last-modified="1251899232" id="rhn-erratum-9128" advisory-name="RHBA-2009:1391"/><erratum last-modified="1251874953" id="rhn-erratum-9129" advisory-name="RHBA-2009:1392"/><erratum last-modified="1251874953" id="rhn-erratum-9130" advisory-name="RHBA-2009:1393"/><erratum last-modified="1251899232" id="rhn-erratum-9132" advisory-name="RHBA-2009:1395"/><erratum last-modified="1251874953" id="rhn-erratum-9134" advisory-name="RHBA-2009:1397"/><erratum last-modified="1251874953" id="rhn-erratum-9136" advisory-name="RHEA-2009:1400"/><erratum last-modified="1251899232" id="rhn-erratum-9138" advisory-name="RHBA-2009:1402"/><erratum last-modified="1251874953" id="rhn-erratum-9139" advisory-name="RHBA-2009:1403"/><erratum last-modified="1251874953" id="rhn-erratum-9140" advisory-name="RHBA-2009:1404"/><erratum last-modified="1251874953" id="rhn-erratum-9141" advisory-name="RHBA-2009:1405"/><erratum last-modified="1251874953" id="rhn-erratum-9142" advisory-name="RHEA-2009:1406"/><erratum last-modified="1251874953" id="rhn-erratum-9143" advisory-name="RHEA-2009:1407"/><erratum last-modified="1251874953" id="rhn-erratum-9144" advisory-name="RHEA-2009:1408"/><erratum last-modified="1251899232" id="rhn-erratum-9145" advisory-name="RHBA-2009:1409"/><erratum last-modified="1251874953" id="rhn-erratum-9146" advisory-name="RHEA-2009:1410"/><erratum last-modified="1251899232" id="rhn-erratum-9147" advisory-name="RHEA-2009:1411"/><erratum last-modified="1251874953" id="rhn-erratum-9150" advisory-name="RHEA-2009:1377"/><erratum last-modified="1251899232" id="rhn-erratum-9157" advisory-name="RHSA-2009:1289"/><erratum last-modified="1251874953" id="rhn-erratum-9158" advisory-name="RHBA-2009:1413"/><erratum last-modified="1251899232" id="rhn-erratum-9159" advisory-name="RHBA-2009:1414"/><erratum last-modified="1251874953" id="rhn-erratum-9162" advisory-name="RHBA-2009:1415"/><erratum last-modified="1251874953" id="rhn-erratum-9163" advisory-name="RHBA-2009:1416"/><erratum last-modified="1251874953" id="rhn-erratum-9164" advisory-name="RHEA-2009:1417"/><erratum last-modified="1251876580" id="rhn-erratum-9166" advisory-name="RHBA-2009:1418"/><erratum last-modified="1251876776" id="rhn-erratum-9167" advisory-name="RHBA-2009:1419"/><erratum last-modified="1251876999" id="rhn-erratum-9168" advisory-name="RHBA-2009:1420"/><erratum last-modified="1251899854" id="rhn-erratum-9170" advisory-name="RHBA-2009:1422"/><erratum last-modified="1252422602" id="rhn-erratum-9175" advisory-name="RHSA-2009:1427"/><erratum last-modified="1252424580" id="rhn-erratum-9176" advisory-name="RHSA-2009:1428"/><erratum last-modified="1252538566" id="rhn-erratum-9179" advisory-name="RHSA-2009:1430"/><erratum last-modified="1252608717" id="rhn-erratum-9184" advisory-name="RHEA-2009:1435"/><erratum last-modified="1252657598" id="rhn-erratum-9185" advisory-name="RHBA-2009:1437"/><erratum last-modified="1253294999" id="rhn-erratum-9199" advisory-name="RHBA-2009:1435"/><erratum last-modified="1253198298" id="rhn-erratum-9200" advisory-name="RHSA-2009:1451"/><erratum last-modified="1253546063" id="rhn-erratum-9203" advisory-name="RHSA-2009:1452"/><erratum last-modified="1253610836" id="rhn-erratum-9206" advisory-name="RHEA-2009:1456"/><erratum last-modified="1253719476" id="rhn-erratum-9211" advisory-name="RHSA-2009:1459"/><erratum last-modified="1253820091" id="rhn-erratum-9215" advisory-name="RHSA-2009:1463"/><erratum last-modified="1254210796" id="rhn-erratum-9216" advisory-name="RHBA-2009:1464"/><erratum last-modified="1254252620" id="rhn-erratum-9219" advisory-name="RHSA-2009:1455"/><erratum last-modified="1254300291" id="rhn-erratum-9220" advisory-name="RHEA-2009:1467"/><erratum last-modified="1254306914" id="rhn-erratum-9221" advisory-name="RHBA-2009:1468"/><erratum last-modified="1254323283" id="rhn-erratum-9223" advisory-name="RHSA-2009:1470"/><erratum last-modified="1254417983" id="rhn-erratum-9224" advisory-name="RHSA-2009:1471"/><erratum last-modified="1254419726" id="rhn-erratum-9225" advisory-name="RHSA-2009:1472"/><erratum last-modified="1254490488" id="rhn-erratum-9227" advisory-name="RHBA-2009:1474"/><erratum last-modified="1254727120" id="rhn-erratum-9229" advisory-name="RHBA-2009:1476"/><erratum last-modified="1254932561" id="rhn-erratum-9237" advisory-name="RHSA-2009:1484"/><erratum last-modified="1254931779" id="rhn-erratum-9240" advisory-name="RHBA-2009:1417"/><erratum last-modified="1254997927" id="rhn-erratum-9241" advisory-name="RHBA-2009:1487"/><erratum last-modified="1255033032" id="rhn-erratum-9244" advisory-name="RHSA-2009:1490"/><erratum last-modified="1255419221" id="rhn-erratum-9248" advisory-name="RHBA-2009:1494"/><erratum last-modified="1255421818" id="rhn-erratum-9249" advisory-name="RHBA-2009:1495"/><erratum last-modified="1255592166" id="rhn-erratum-9260" advisory-name="RHBA-2009:1511"/><erratum last-modified="1255596673" id="rhn-erratum-9265" advisory-name="RHSA-2009:1504"/><erratum last-modified="1255597236" id="rhn-erratum-9266" advisory-name="RHSA-2009:1513"/><erratum last-modified="1255609387" id="rhn-erratum-9268" advisory-name="RHBA-2009:1514"/></rhn-channel-errata><rhn-release/></rhn-channel><rhn-channel channel-arch="channel-x86_64" has-comps="True" channel-errata="rhn-erratum-5388 rhn-erratum-5390 rhn-erratum-5392 rhn-erratum-5393 rhn-erratum-5394 rhn-erratum-5396 rhn-erratum-5397 rhn-erratum-5398 rhn-erratum-5399 rhn-erratum-5400 rhn-erratum-5401 rhn-erratum-5402 rhn-erratum-5403 rhn-erratum-5404 rhn-erratum-5405 rhn-erratum-5406 rhn-erratum-5407 rhn-erratum-5411 rhn-erratum-5412 rhn-erratum-5427 rhn-erratum-5428 rhn-erratum-5431 rhn-erratum-5443 rhn-erratum-5444 rhn-erratum-5445 rhn-erratum-5447 rhn-erratum-5465 rhn-erratum-5466 rhn-erratum-5470 rhn-erratum-5475 rhn-erratum-5619 rhn-erratum-5645 rhn-erratum-5646 rhn-erratum-5647 rhn-erratum-5655 rhn-erratum-5656 rhn-erratum-5676 rhn-erratum-5677 rhn-erratum-5689 rhn-erratum-5690 rhn-erratum-5694 rhn-erratum-5695 rhn-erratum-5697 rhn-erratum-5698 rhn-erratum-5707 rhn-erratum-5710 rhn-erratum-5718 rhn-erratum-5720 rhn-erratum-5721 rhn-erratum-5724 rhn-erratum-5728 rhn-erratum-5730 rhn-erratum-5800 rhn-erratum-5806 rhn-erratum-5807 rhn-erratum-5809 rhn-erratum-5812 rhn-erratum-5816 rhn-erratum-5817 rhn-erratum-5820 rhn-erratum-5825 rhn-erratum-5833 rhn-erratum-5835 rhn-erratum-5836 rhn-erratum-5837 rhn-erratum-5838 rhn-erratum-5839 rhn-erratum-5840 rhn-erratum-5842 rhn-erratum-5843 rhn-erratum-5844 rhn-erratum-5845 rhn-erratum-5854 rhn-erratum-5859 rhn-erratum-5860 rhn-erratum-5861 rhn-erratum-5862 rhn-erratum-5863 rhn-erratum-5865 rhn-erratum-5870 rhn-erratum-5871 rhn-erratum-5877 rhn-erratum-5879 rhn-erratum-5880 rhn-erratum-5881 rhn-erratum-5887 rhn-erratum-5890 rhn-erratum-5891 rhn-erratum-5892 rhn-erratum-5915 rhn-erratum-5916 rhn-erratum-5919 rhn-erratum-5920 rhn-erratum-5928 rhn-erratum-5960 rhn-erratum-5969 rhn-erratum-5970 rhn-erratum-5973 rhn-erratum-5975 rhn-erratum-5982 rhn-erratum-5984 rhn-erratum-5985 rhn-erratum-5992 rhn-erratum-5993 rhn-erratum-5998 rhn-erratum-5999 rhn-erratum-6027 rhn-erratum-6038 rhn-erratum-6039 rhn-erratum-6040 rhn-erratum-6043 rhn-erratum-6045 rhn-erratum-6048 rhn-erratum-6052 rhn-erratum-6054 rhn-erratum-6056 rhn-erratum-6060 rhn-erratum-6061 rhn-erratum-6065 rhn-erratum-6071 rhn-erratum-6072 rhn-erratum-6073 rhn-erratum-6074 rhn-erratum-6075 rhn-erratum-6076 rhn-erratum-6078 rhn-erratum-6079 rhn-erratum-6080 rhn-erratum-6081 rhn-erratum-6082 rhn-erratum-6083 rhn-erratum-6084 rhn-erratum-6085 rhn-erratum-6086 rhn-erratum-6087 rhn-erratum-6088 rhn-erratum-6090 rhn-erratum-6091 rhn-erratum-6092 rhn-erratum-6094 rhn-erratum-6095 rhn-erratum-6096 rhn-erratum-6097 rhn-erratum-6099 rhn-erratum-6101 rhn-erratum-6102 rhn-erratum-6103 rhn-erratum-6104 rhn-erratum-6105 rhn-erratum-6106 rhn-erratum-6107 rhn-erratum-6108 rhn-erratum-6109 rhn-erratum-6110 rhn-erratum-6111 rhn-erratum-6112 rhn-erratum-6113 rhn-erratum-6114 rhn-erratum-6115 rhn-erratum-6116 rhn-erratum-6117 rhn-erratum-6119 rhn-erratum-6120 rhn-erratum-6124 rhn-erratum-6126 rhn-erratum-6129 rhn-erratum-6130 rhn-erratum-6132 rhn-erratum-6136 rhn-erratum-6137 rhn-erratum-6138 rhn-erratum-6139 rhn-erratum-6140 rhn-erratum-6142 rhn-erratum-6144 rhn-erratum-6146 rhn-erratum-6148 rhn-erratum-6149 rhn-erratum-6150 rhn-erratum-6151 rhn-erratum-6152 rhn-erratum-6153 rhn-erratum-6154 rhn-erratum-6156 rhn-erratum-6157 rhn-erratum-6158 rhn-erratum-6159 rhn-erratum-6160 rhn-erratum-6161 rhn-erratum-6162 rhn-erratum-6163 rhn-erratum-6164 rhn-erratum-6166 rhn-erratum-6168 rhn-erratum-6169 rhn-erratum-6170 rhn-erratum-6171 rhn-erratum-6172 rhn-erratum-6173 rhn-erratum-6174 rhn-erratum-6175 rhn-erratum-6176 rhn-erratum-6177 rhn-erratum-6178 rhn-erratum-6179 rhn-erratum-6181 rhn-erratum-6182 rhn-erratum-6183 rhn-erratum-6184 rhn-erratum-6185 rhn-erratum-6186 rhn-erratum-6189 rhn-erratum-6191 rhn-erratum-6192 rhn-erratum-6193 rhn-erratum-6195 rhn-erratum-6196 rhn-erratum-6197 rhn-erratum-6198 rhn-erratum-6199 rhn-erratum-6201 rhn-erratum-6202 rhn-erratum-6206 rhn-erratum-6208 rhn-erratum-6209 rhn-erratum-6210 rhn-erratum-6211 rhn-erratum-6212 rhn-erratum-6213 rhn-erratum-6214 rhn-erratum-6215 rhn-erratum-6216 rhn-erratum-6217 rhn-erratum-6218 rhn-erratum-6219 rhn-erratum-6220 rhn-erratum-6221 rhn-erratum-6222 rhn-erratum-6223 rhn-erratum-6224 rhn-erratum-6225 rhn-erratum-6226 rhn-erratum-6227 rhn-erratum-6228 rhn-erratum-6236 rhn-erratum-6238 rhn-erratum-6240 rhn-erratum-6241 rhn-erratum-6242 rhn-erratum-6243 rhn-erratum-6244 rhn-erratum-6245 rhn-erratum-6249 rhn-erratum-6254 rhn-erratum-6255 rhn-erratum-6256 rhn-erratum-6263 rhn-erratum-6383 rhn-erratum-6389 rhn-erratum-6390 rhn-erratum-6392 rhn-erratum-6393 rhn-erratum-6396 rhn-erratum-6398 rhn-erratum-6400 rhn-erratum-6404 rhn-erratum-6405 rhn-erratum-6406 rhn-erratum-6407 rhn-erratum-6408 rhn-erratum-6412 rhn-erratum-6413 rhn-erratum-6435 rhn-erratum-6436 rhn-erratum-6437 rhn-erratum-6439 rhn-erratum-6440 rhn-erratum-6444 rhn-erratum-6448 rhn-erratum-6452 rhn-erratum-6453 rhn-erratum-6454 rhn-erratum-6455 rhn-erratum-6464 rhn-erratum-6466 rhn-erratum-6473 rhn-erratum-6476 rhn-erratum-6477 rhn-erratum-6478 rhn-erratum-6479 rhn-erratum-6480 rhn-erratum-6481 rhn-erratum-6482 rhn-erratum-6483 rhn-erratum-6485 rhn-erratum-6486 rhn-erratum-6488 rhn-erratum-6494 rhn-erratum-6495 rhn-erratum-6497 rhn-erratum-6498 rhn-erratum-6499 rhn-erratum-6500 rhn-erratum-6516 rhn-erratum-6517 rhn-erratum-6518 rhn-erratum-6519 rhn-erratum-6520 rhn-erratum-6522 rhn-erratum-6524 rhn-erratum-6525 rhn-erratum-6527 rhn-erratum-6528 rhn-erratum-6537 rhn-erratum-6538 rhn-erratum-6544 rhn-erratum-6550 rhn-erratum-6551 rhn-erratum-6552 rhn-erratum-6553 rhn-erratum-6554 rhn-erratum-6555 rhn-erratum-6556 rhn-erratum-6557 rhn-erratum-6558 rhn-erratum-6560 rhn-erratum-6561 rhn-erratum-6564 rhn-erratum-6568 rhn-erratum-6569 rhn-erratum-6570 rhn-erratum-6571 rhn-erratum-6572 rhn-erratum-6573 rhn-erratum-6574 rhn-erratum-6575 rhn-erratum-6576 rhn-erratum-6577 rhn-erratum-6578 rhn-erratum-6579 rhn-erratum-6580 rhn-erratum-6596 rhn-erratum-6597 rhn-erratum-6598 rhn-erratum-6601 rhn-erratum-6603 rhn-erratum-6618 rhn-erratum-6619 rhn-erratum-6620 rhn-erratum-6622 rhn-erratum-6625 rhn-erratum-6628 rhn-erratum-6631 rhn-erratum-6638 rhn-erratum-6642 rhn-erratum-6659 rhn-erratum-6662 rhn-erratum-6664 rhn-erratum-6665 rhn-erratum-6680 rhn-erratum-6681 rhn-erratum-6682 rhn-erratum-6683 rhn-erratum-6697 rhn-erratum-6717 rhn-erratum-6718 rhn-erratum-6719 rhn-erratum-6739 rhn-erratum-6747 rhn-erratum-6748 rhn-erratum-6752 rhn-erratum-6756 rhn-erratum-6764 rhn-erratum-6777 rhn-erratum-6779 rhn-erratum-6795 rhn-erratum-6797 rhn-erratum-6798 rhn-erratum-6803 rhn-erratum-6860 rhn-erratum-6868 rhn-erratum-6898 rhn-erratum-6902 rhn-erratum-6903 rhn-erratum-6919 rhn-erratum-6920 rhn-erratum-6921 rhn-erratum-6922 rhn-erratum-6923 rhn-erratum-6924 rhn-erratum-6925 rhn-erratum-6926 rhn-erratum-6928 rhn-erratum-6929 rhn-erratum-6930 rhn-erratum-6931 rhn-erratum-6932 rhn-erratum-6934 rhn-erratum-6935 rhn-erratum-6936 rhn-erratum-6937 rhn-erratum-6939 rhn-erratum-6940 rhn-erratum-6941 rhn-erratum-6942 rhn-erratum-6943 rhn-erratum-6944 rhn-erratum-6945 rhn-erratum-6946 rhn-erratum-6947 rhn-erratum-6949 rhn-erratum-6950 rhn-erratum-6951 rhn-erratum-6952 rhn-erratum-6954 rhn-erratum-6956 rhn-erratum-6957 rhn-erratum-6958 rhn-erratum-6959 rhn-erratum-6960 rhn-erratum-6961 rhn-erratum-6962 rhn-erratum-6963 rhn-erratum-6964 rhn-erratum-6965 rhn-erratum-6967 rhn-erratum-6968 rhn-erratum-6969 rhn-erratum-6970 rhn-erratum-6971 rhn-erratum-6972 rhn-erratum-6973 rhn-erratum-6974 rhn-erratum-6975 rhn-erratum-6976 rhn-erratum-6977 rhn-erratum-6978 rhn-erratum-6979 rhn-erratum-6980 rhn-erratum-6981 rhn-erratum-6983 rhn-erratum-6984 rhn-erratum-6985 rhn-erratum-6986 rhn-erratum-6987 rhn-erratum-6989 rhn-erratum-6990 rhn-erratum-6993 rhn-erratum-6995 rhn-erratum-6996 rhn-erratum-6998 rhn-erratum-7000 rhn-erratum-7001 rhn-erratum-7002 rhn-erratum-7003 rhn-erratum-7004 rhn-erratum-7005 rhn-erratum-7006 rhn-erratum-7007 rhn-erratum-7008 rhn-erratum-7009 rhn-erratum-7010 rhn-erratum-7011 rhn-erratum-7012 rhn-erratum-7014 rhn-erratum-7015 rhn-erratum-7016 rhn-erratum-7017 rhn-erratum-7018 rhn-erratum-7019 rhn-erratum-7020 rhn-erratum-7021 rhn-erratum-7022 rhn-erratum-7023 rhn-erratum-7026 rhn-erratum-7027 rhn-erratum-7028 rhn-erratum-7034 rhn-erratum-7035 rhn-erratum-7036 rhn-erratum-7037 rhn-erratum-7039 rhn-erratum-7040 rhn-erratum-7041 rhn-erratum-7042 rhn-erratum-7044 rhn-erratum-7045 rhn-erratum-7046 rhn-erratum-7047 rhn-erratum-7048 rhn-erratum-7049 rhn-erratum-7050 rhn-erratum-7051 rhn-erratum-7052 rhn-erratum-7053 rhn-erratum-7054 rhn-erratum-7055 rhn-erratum-7056 rhn-erratum-7058 rhn-erratum-7059 rhn-erratum-7061 rhn-erratum-7062 rhn-erratum-7063 rhn-erratum-7064 rhn-erratum-7065 rhn-erratum-7066 rhn-erratum-7067 rhn-erratum-7068 rhn-erratum-7069 rhn-erratum-7070 rhn-erratum-7071 rhn-erratum-7073 rhn-erratum-7074 rhn-erratum-7075 rhn-erratum-7076 rhn-erratum-7077 rhn-erratum-7078 rhn-erratum-7079 rhn-erratum-7080 rhn-erratum-7081 rhn-erratum-7082 rhn-erratum-7083 rhn-erratum-7084 rhn-erratum-7085 rhn-erratum-7087 rhn-erratum-7088 rhn-erratum-7089 rhn-erratum-7091 rhn-erratum-7092 rhn-erratum-7093 rhn-erratum-7095 rhn-erratum-7096 rhn-erratum-7098 rhn-erratum-7099 rhn-erratum-7100 rhn-erratum-7101 rhn-erratum-7102 rhn-erratum-7103 rhn-erratum-7104 rhn-erratum-7106 rhn-erratum-7107 rhn-erratum-7108 rhn-erratum-7109 rhn-erratum-7110 rhn-erratum-7112 rhn-erratum-7114 rhn-erratum-7115 rhn-erratum-7116 rhn-erratum-7117 rhn-erratum-7118 rhn-erratum-7119 rhn-erratum-7120 rhn-erratum-7121 rhn-erratum-7122 rhn-erratum-7123 rhn-erratum-7124 rhn-erratum-7126 rhn-erratum-7127 rhn-erratum-7128 rhn-erratum-7130 rhn-erratum-7131 rhn-erratum-7133 rhn-erratum-7134 rhn-erratum-7135 rhn-erratum-7136 rhn-erratum-7144 rhn-erratum-7147 rhn-erratum-7178 rhn-erratum-7179 rhn-erratum-7180 rhn-erratum-7185 rhn-erratum-7186 rhn-erratum-7188 rhn-erratum-7189 rhn-erratum-7191 rhn-erratum-7192 rhn-erratum-7194 rhn-erratum-7196 rhn-erratum-7198 rhn-erratum-7199 rhn-erratum-7200 rhn-erratum-7201 rhn-erratum-7219 rhn-erratum-7223 rhn-erratum-7225 rhn-erratum-7226 rhn-erratum-7228 rhn-erratum-7237 rhn-erratum-7259 rhn-erratum-7265 rhn-erratum-7269 rhn-erratum-7271 rhn-erratum-7272 rhn-erratum-7273 rhn-erratum-7275 rhn-erratum-7277 rhn-erratum-7280 rhn-erratum-7284 rhn-erratum-7287 rhn-erratum-7292 rhn-erratum-7293 rhn-erratum-7294 rhn-erratum-7295 rhn-erratum-7296 rhn-erratum-7435 rhn-erratum-7459 rhn-erratum-7479 rhn-erratum-7480 rhn-erratum-7481 rhn-erratum-7482 rhn-erratum-7483 rhn-erratum-7487 rhn-erratum-7488 rhn-erratum-7498 rhn-erratum-7511 rhn-erratum-7512 rhn-erratum-7513 rhn-erratum-7515 rhn-erratum-7516 rhn-erratum-7517 rhn-erratum-7518 rhn-erratum-7521 rhn-erratum-7527 rhn-erratum-7530 rhn-erratum-7531 rhn-erratum-7532 rhn-erratum-7533 rhn-erratum-7538 rhn-erratum-7539 rhn-erratum-7560 rhn-erratum-7562 rhn-erratum-7563 rhn-erratum-7564 rhn-erratum-7565 rhn-erratum-7568 rhn-erratum-7574 rhn-erratum-7578 rhn-erratum-7590 rhn-erratum-7591 rhn-erratum-7592 rhn-erratum-7593 rhn-erratum-7594 rhn-erratum-7595 rhn-erratum-7596 rhn-erratum-7607 rhn-erratum-7618 rhn-erratum-7619 rhn-erratum-7620 rhn-erratum-7621 rhn-erratum-7638 rhn-erratum-7640 rhn-erratum-7641 rhn-erratum-7642 rhn-erratum-7643 rhn-erratum-7646 rhn-erratum-7658 rhn-erratum-7659 rhn-erratum-7660 rhn-erratum-7662 rhn-erratum-7663 rhn-erratum-7664 rhn-erratum-7665 rhn-erratum-7704 rhn-erratum-7705 rhn-erratum-7707 rhn-erratum-7708 rhn-erratum-7710 rhn-erratum-7717 rhn-erratum-7719 rhn-erratum-7721 rhn-erratum-7725 rhn-erratum-7726 rhn-erratum-7727 rhn-erratum-7728 rhn-erratum-7738 rhn-erratum-7739 rhn-erratum-7742 rhn-erratum-7778 rhn-erratum-7799 rhn-erratum-7800 rhn-erratum-7801 rhn-erratum-7803 rhn-erratum-7805 rhn-erratum-7806 rhn-erratum-7820 rhn-erratum-7821 rhn-erratum-7828 rhn-erratum-7830 rhn-erratum-7863 rhn-erratum-7866 rhn-erratum-7867 rhn-erratum-7870 rhn-erratum-7879 rhn-erratum-7880 rhn-erratum-7901 rhn-erratum-7906 rhn-erratum-7918 rhn-erratum-7919 rhn-erratum-7922 rhn-erratum-7924 rhn-erratum-7926 rhn-erratum-7959 rhn-erratum-7961 rhn-erratum-7962 rhn-erratum-7963 rhn-erratum-7964 rhn-erratum-7979 rhn-erratum-7980 rhn-erratum-7981 rhn-erratum-7982 rhn-erratum-8007 rhn-erratum-8008 rhn-erratum-8009 rhn-erratum-8011 rhn-erratum-8012 rhn-erratum-8013 rhn-erratum-8016 rhn-erratum-8017 rhn-erratum-8018 rhn-erratum-8019 rhn-erratum-8020 rhn-erratum-8021 rhn-erratum-8022 rhn-erratum-8023 rhn-erratum-8024 rhn-erratum-8025 rhn-erratum-8026 rhn-erratum-8027 rhn-erratum-8028 rhn-erratum-8029 rhn-erratum-8030 rhn-erratum-8031 rhn-erratum-8032 rhn-erratum-8033 rhn-erratum-8034 rhn-erratum-8036 rhn-erratum-8037 rhn-erratum-8038 rhn-erratum-8039 rhn-erratum-8040 rhn-erratum-8041 rhn-erratum-8042 rhn-erratum-8043 rhn-erratum-8045 rhn-erratum-8046 rhn-erratum-8047 rhn-erratum-8052 rhn-erratum-8054 rhn-erratum-8055 rhn-erratum-8056 rhn-erratum-8057 rhn-erratum-8058 rhn-erratum-8059 rhn-erratum-8060 rhn-erratum-8061 rhn-erratum-8062 rhn-erratum-8063 rhn-erratum-8064 rhn-erratum-8065 rhn-erratum-8066 rhn-erratum-8067 rhn-erratum-8068 rhn-erratum-8069 rhn-erratum-8070 rhn-erratum-8072 rhn-erratum-8073 rhn-erratum-8074 rhn-erratum-8075 rhn-erratum-8076 rhn-erratum-8077 rhn-erratum-8078 rhn-erratum-8080 rhn-erratum-8081 rhn-erratum-8082 rhn-erratum-8083 rhn-erratum-8085 rhn-erratum-8086 rhn-erratum-8090 rhn-erratum-8091 rhn-erratum-8092 rhn-erratum-8093 rhn-erratum-8094 rhn-erratum-8095 rhn-erratum-8096 rhn-erratum-8098 rhn-erratum-8099 rhn-erratum-8100 rhn-erratum-8101 rhn-erratum-8103 rhn-erratum-8104 rhn-erratum-8107 rhn-erratum-8108 rhn-erratum-8109 rhn-erratum-8110 rhn-erratum-8111 rhn-erratum-8112 rhn-erratum-8113 rhn-erratum-8114 rhn-erratum-8115 rhn-erratum-8116 rhn-erratum-8117 rhn-erratum-8118 rhn-erratum-8119 rhn-erratum-8120 rhn-erratum-8121 rhn-erratum-8122 rhn-erratum-8124 rhn-erratum-8125 rhn-erratum-8126 rhn-erratum-8127 rhn-erratum-8128 rhn-erratum-8129 rhn-erratum-8130 rhn-erratum-8131 rhn-erratum-8132 rhn-erratum-8134 rhn-erratum-8135 rhn-erratum-8136 rhn-erratum-8137 rhn-erratum-8138 rhn-erratum-8139 rhn-erratum-8140 rhn-erratum-8142 rhn-erratum-8143 rhn-erratum-8144 rhn-erratum-8145 rhn-erratum-8146 rhn-erratum-8147 rhn-erratum-8148 rhn-erratum-8149 rhn-erratum-8150 rhn-erratum-8151 rhn-erratum-8152 rhn-erratum-8153 rhn-erratum-8154 rhn-erratum-8155 rhn-erratum-8156 rhn-erratum-8157 rhn-erratum-8158 rhn-erratum-8159 rhn-erratum-8162 rhn-erratum-8163 rhn-erratum-8164 rhn-erratum-8165 rhn-erratum-8166 rhn-erratum-8167 rhn-erratum-8168 rhn-erratum-8169 rhn-erratum-8170 rhn-erratum-8171 rhn-erratum-8172 rhn-erratum-8173 rhn-erratum-8174 rhn-erratum-8175 rhn-erratum-8176 rhn-erratum-8177 rhn-erratum-8178 rhn-erratum-8179 rhn-erratum-8180 rhn-erratum-8182 rhn-erratum-8183 rhn-erratum-8184 rhn-erratum-8185 rhn-erratum-8187 rhn-erratum-8188 rhn-erratum-8189 rhn-erratum-8190 rhn-erratum-8191 rhn-erratum-8192 rhn-erratum-8193 rhn-erratum-8194 rhn-erratum-8195 rhn-erratum-8203 rhn-erratum-8204 rhn-erratum-8205 rhn-erratum-8243 rhn-erratum-8266 rhn-erratum-8276 rhn-erratum-8279 rhn-erratum-8283 rhn-erratum-8284 rhn-erratum-8285 rhn-erratum-8286 rhn-erratum-8288 rhn-erratum-8289 rhn-erratum-8291 rhn-erratum-8301 rhn-erratum-8304 rhn-erratum-8319 rhn-erratum-8325 rhn-erratum-8327 rhn-erratum-8328 rhn-erratum-8330 rhn-erratum-8338 rhn-erratum-8339 rhn-erratum-8358 rhn-erratum-8362 rhn-erratum-8363 rhn-erratum-8378 rhn-erratum-8379 rhn-erratum-8380 rhn-erratum-8382 rhn-erratum-8383 rhn-erratum-8384 rhn-erratum-8399 rhn-erratum-8400 rhn-erratum-8401 rhn-erratum-8403 rhn-erratum-8409 rhn-erratum-8423 rhn-erratum-8424 rhn-erratum-8425 rhn-erratum-8426 rhn-erratum-8427 rhn-erratum-8428 rhn-erratum-8429 rhn-erratum-8431 rhn-erratum-8437 rhn-erratum-8438 rhn-erratum-8440 rhn-erratum-8441 rhn-erratum-8444 rhn-erratum-8445 rhn-erratum-8446 rhn-erratum-8447 rhn-erratum-8449 rhn-erratum-8450 rhn-erratum-8451 rhn-erratum-8461 rhn-erratum-8462 rhn-erratum-8463 rhn-erratum-8464 rhn-erratum-8465 rhn-erratum-8466 rhn-erratum-8467 rhn-erratum-8469 rhn-erratum-8472 rhn-erratum-8476 rhn-erratum-8477 rhn-erratum-8478 rhn-erratum-8479 rhn-erratum-8480 rhn-erratum-8481 rhn-erratum-8482 rhn-erratum-8483 rhn-erratum-8521 rhn-erratum-8524 rhn-erratum-8525 rhn-erratum-8528 rhn-erratum-8529 rhn-erratum-8538 rhn-erratum-8539 rhn-erratum-8540 rhn-erratum-8542 rhn-erratum-8543 rhn-erratum-8549 rhn-erratum-8551 rhn-erratum-8552 rhn-erratum-8558 rhn-erratum-8559 rhn-erratum-8561 rhn-erratum-8562 rhn-erratum-8563 rhn-erratum-8564 rhn-erratum-8565 rhn-erratum-8566 rhn-erratum-8671 rhn-erratum-8673 rhn-erratum-8690 rhn-erratum-8703 rhn-erratum-8724 rhn-erratum-8725 rhn-erratum-8726 rhn-erratum-8727 rhn-erratum-8728 rhn-erratum-8729 rhn-erratum-8730 rhn-erratum-8731 rhn-erratum-8732 rhn-erratum-8742 rhn-erratum-8743 rhn-erratum-8744 rhn-erratum-8745 rhn-erratum-8765 rhn-erratum-8766 rhn-erratum-8769 rhn-erratum-8772 rhn-erratum-8776 rhn-erratum-8777 rhn-erratum-8778 rhn-erratum-8780 rhn-erratum-8781 rhn-erratum-8782 rhn-erratum-8783 rhn-erratum-8784 rhn-erratum-8785 rhn-erratum-8788 rhn-erratum-8789 rhn-erratum-8790 rhn-erratum-8791 rhn-erratum-8794 rhn-erratum-8796 rhn-erratum-8797 rhn-erratum-8798 rhn-erratum-8799 rhn-erratum-8800 rhn-erratum-8816 rhn-erratum-8817 rhn-erratum-8821 rhn-erratum-8836 rhn-erratum-8838 rhn-erratum-8856 rhn-erratum-8857 rhn-erratum-8859 rhn-erratum-8861 rhn-erratum-8883 rhn-erratum-8885 rhn-erratum-8886 rhn-erratum-8895 rhn-erratum-8897 rhn-erratum-8898 rhn-erratum-8899 rhn-erratum-8901 rhn-erratum-8912 rhn-erratum-8915 rhn-erratum-8923 rhn-erratum-8927 rhn-erratum-8928 rhn-erratum-8929 rhn-erratum-8936 rhn-erratum-8938 rhn-erratum-8939 rhn-erratum-8940 rhn-erratum-8942 rhn-erratum-8946 rhn-erratum-8960 rhn-erratum-8961 rhn-erratum-8965 rhn-erratum-8968 rhn-erratum-8978 rhn-erratum-8985 rhn-erratum-8988 rhn-erratum-8989 rhn-erratum-8990 rhn-erratum-8991 rhn-erratum-8992 rhn-erratum-8993 rhn-erratum-8996 rhn-erratum-8997 rhn-erratum-8998 rhn-erratum-8999 rhn-erratum-9000 rhn-erratum-9001 rhn-erratum-9002 rhn-erratum-9004 rhn-erratum-9006 rhn-erratum-9007 rhn-erratum-9008 rhn-erratum-9009 rhn-erratum-9010 rhn-erratum-9013 rhn-erratum-9014 rhn-erratum-9017 rhn-erratum-9018 rhn-erratum-9019 rhn-erratum-9020 rhn-erratum-9021 rhn-erratum-9022 rhn-erratum-9023 rhn-erratum-9024 rhn-erratum-9026 rhn-erratum-9027 rhn-erratum-9028 rhn-erratum-9029 rhn-erratum-9030 rhn-erratum-9031 rhn-erratum-9032 rhn-erratum-9033 rhn-erratum-9034 rhn-erratum-9035 rhn-erratum-9036 rhn-erratum-9037 rhn-erratum-9039 rhn-erratum-9040 rhn-erratum-9042 rhn-erratum-9043 rhn-erratum-9045 rhn-erratum-9046 rhn-erratum-9047 rhn-erratum-9049 rhn-erratum-9051 rhn-erratum-9052 rhn-erratum-9053 rhn-erratum-9054 rhn-erratum-9055 rhn-erratum-9056 rhn-erratum-9057 rhn-erratum-9058 rhn-erratum-9059 rhn-erratum-9060 rhn-erratum-9061 rhn-erratum-9063 rhn-erratum-9066 rhn-erratum-9067 rhn-erratum-9068 rhn-erratum-9069 rhn-erratum-9070 rhn-erratum-9071 rhn-erratum-9072 rhn-erratum-9074 rhn-erratum-9076 rhn-erratum-9080 rhn-erratum-9081 rhn-erratum-9082 rhn-erratum-9083 rhn-erratum-9084 rhn-erratum-9085 rhn-erratum-9086 rhn-erratum-9087 rhn-erratum-9088 rhn-erratum-9089 rhn-erratum-9090 rhn-erratum-9091 rhn-erratum-9092 rhn-erratum-9093 rhn-erratum-9094 rhn-erratum-9095 rhn-erratum-9096 rhn-erratum-9097 rhn-erratum-9098 rhn-erratum-9099 rhn-erratum-9100 rhn-erratum-9101 rhn-erratum-9102 rhn-erratum-9103 rhn-erratum-9104 rhn-erratum-9105 rhn-erratum-9107 rhn-erratum-9108 rhn-erratum-9109 rhn-erratum-9110 rhn-erratum-9111 rhn-erratum-9112 rhn-erratum-9113 rhn-erratum-9114 rhn-erratum-9115 rhn-erratum-9116 rhn-erratum-9117 rhn-erratum-9118 rhn-erratum-9120 rhn-erratum-9121 rhn-erratum-9122 rhn-erratum-9124 rhn-erratum-9125 rhn-erratum-9126 rhn-erratum-9127 rhn-erratum-9128 rhn-erratum-9129 rhn-erratum-9130 rhn-erratum-9132 rhn-erratum-9134 rhn-erratum-9136 rhn-erratum-9138 rhn-erratum-9139 rhn-erratum-9140 rhn-erratum-9141 rhn-erratum-9142 rhn-erratum-9143 rhn-erratum-9144 rhn-erratum-9145 rhn-erratum-9146 rhn-erratum-9147 rhn-erratum-9150 rhn-erratum-9157 rhn-erratum-9158 rhn-erratum-9159 rhn-erratum-9162 rhn-erratum-9163 rhn-erratum-9164 rhn-erratum-9166 rhn-erratum-9167 rhn-erratum-9168 rhn-erratum-9170 rhn-erratum-9175 rhn-erratum-9176 rhn-erratum-9179 rhn-erratum-9184 rhn-erratum-9185 rhn-erratum-9199 rhn-erratum-9200 rhn-erratum-9203 rhn-erratum-9206 rhn-erratum-9211 rhn-erratum-9215 rhn-erratum-9216 rhn-erratum-9219 rhn-erratum-9220 rhn-erratum-9221 rhn-erratum-9223 rhn-erratum-9224 rhn-erratum-9225 rhn-erratum-9227 rhn-erratum-9229 rhn-erratum-9237 rhn-erratum-9240 rhn-erratum-9241 rhn-erratum-9244 rhn-erratum-9248 rhn-erratum-9249 rhn-erratum-9260 rhn-erratum-9265 rhn-erratum-9266 rhn-erratum-9268" kickstartable-trees="ks-rhel-x86_64-server-5 ks-rhel-x86_64-server-5-u1 ks-rhel-x86_64-server-5-u2 ks-rhel-x86_64-server-5-u3 ks-rhel-x86_64-server-5-u4" label="rhel-x86_64-server-5" packages="rhn-package-386982 rhn-package-386983 rhn-package-386987 rhn-package-386988 rhn-package-386990 rhn-package-386994 rhn-package-386995 rhn-package-386996 rhn-package-386997 rhn-package-387001 rhn-package-387003 rhn-package-387004 rhn-package-387007 rhn-package-387008 rhn-package-387009 rhn-package-387010 rhn-package-387011 rhn-package-387013 rhn-package-387014 rhn-package-387017 rhn-package-387019 rhn-package-387020 rhn-package-387021 rhn-package-387023 rhn-package-387025 rhn-package-387029 rhn-package-387032 rhn-package-387034 rhn-package-387035 rhn-package-387038 rhn-package-387039 rhn-package-387040 rhn-package-387041 rhn-package-387042 rhn-package-387043 rhn-package-387046 rhn-package-387048 rhn-package-387050 rhn-package-387051 rhn-package-387052 rhn-package-387054 rhn-package-387055 rhn-package-387057 rhn-package-387064 rhn-package-387065 rhn-package-387070 rhn-package-387074 rhn-package-387075 rhn-package-387076 rhn-package-387082 rhn-package-387084 rhn-package-387085 rhn-package-387087 rhn-package-387092 rhn-package-387096 rhn-package-387107 rhn-package-387110 rhn-package-387114 rhn-package-387116 rhn-package-387122 rhn-package-387124 rhn-package-387127 rhn-package-387132 rhn-package-387135 rhn-package-387143 rhn-package-387144 rhn-package-387145 rhn-package-387149 rhn-package-387150 rhn-package-387151 rhn-package-387152 rhn-package-387153 rhn-package-387155 rhn-package-387157 rhn-package-387159 rhn-package-387162 rhn-package-387164 rhn-package-387168 rhn-package-387170 rhn-package-387172 rhn-package-387176 rhn-package-387183 rhn-package-387184 rhn-package-387189 rhn-package-387191 rhn-package-387192 rhn-package-387199 rhn-package-387201 rhn-package-387207 rhn-package-387216 rhn-package-387223 rhn-package-387224 rhn-package-387229 rhn-package-387232 rhn-package-387234 rhn-package-387235 rhn-package-387237 rhn-package-387239 rhn-package-387243 rhn-package-387245 rhn-package-387246 rhn-package-387249 rhn-package-387251 rhn-package-387252 rhn-package-387254 rhn-package-387257 rhn-package-387264 rhn-package-387265 rhn-package-387266 rhn-package-387271 rhn-package-387272 rhn-package-387274 rhn-package-387278 rhn-package-387280 rhn-package-387282 rhn-package-387285 rhn-package-387286 rhn-package-387288 rhn-package-387289 rhn-package-387290 rhn-package-387298 rhn-package-387300 rhn-package-387301 rhn-package-387302 rhn-package-387304 rhn-package-387306 rhn-package-387307 rhn-package-387310 rhn-package-387312 rhn-package-387313 rhn-package-387314 rhn-package-387317 rhn-package-387318 rhn-package-387322 rhn-package-387323 rhn-package-387327 rhn-package-387330 rhn-package-387332 rhn-package-387337 rhn-package-387340 rhn-package-387343 rhn-package-387346 rhn-package-387347 rhn-package-387356 rhn-package-387357 rhn-package-387360 rhn-package-387369 rhn-package-387370 rhn-package-387376 rhn-package-387379 rhn-package-387381 rhn-package-387382 rhn-package-387383 rhn-package-387384 rhn-package-387389 rhn-package-387393 rhn-package-387394 rhn-package-387395 rhn-package-387397 rhn-package-387402 rhn-package-387405 rhn-package-387407 rhn-package-387408 rhn-package-387410 rhn-package-387416 rhn-package-387427 rhn-package-387428 rhn-package-387429 rhn-package-387431 rhn-package-387432 rhn-package-387434 rhn-package-387435 rhn-package-387439 rhn-package-387444 rhn-package-387445 rhn-package-387446 rhn-package-387451 rhn-package-387452 rhn-package-387453 rhn-package-387454 rhn-package-387458 rhn-package-387459 rhn-package-387460 rhn-package-387461 rhn-package-387462 rhn-package-387470 rhn-package-387471 rhn-package-387473 rhn-package-387477 rhn-package-387481 rhn-package-387491 rhn-package-387493 rhn-package-387494 rhn-package-387497 rhn-package-387499 rhn-package-387502 rhn-package-387504 rhn-package-387505 rhn-package-387510 rhn-package-387512 rhn-package-387513 rhn-package-387516 rhn-package-387517 rhn-package-387525 rhn-package-387527 rhn-package-387530 rhn-package-387532 rhn-package-387533 rhn-package-387536 rhn-package-387539 rhn-package-387542 rhn-package-387547 rhn-package-387554 rhn-package-387556 rhn-package-387557 rhn-package-387564 rhn-package-387569 rhn-package-387571 rhn-package-387572 rhn-package-387576 rhn-package-387579 rhn-package-387583 rhn-package-387585 rhn-package-387586 rhn-package-387588 rhn-package-387591 rhn-package-387603 rhn-package-387605 rhn-package-387606 rhn-package-387607 rhn-package-387610 rhn-package-387611 rhn-package-387612 rhn-package-387621 rhn-package-387623 rhn-package-387624 rhn-package-387626 rhn-package-387634 rhn-package-387636 rhn-package-387641 rhn-package-387644 rhn-package-387646 rhn-package-387648 rhn-package-387651 rhn-package-387652 rhn-package-387653 rhn-package-387655 rhn-package-387656 rhn-package-387657 rhn-package-387660 rhn-package-387662 rhn-package-387663 rhn-package-387664 rhn-package-387669 rhn-package-387671 rhn-package-387673 rhn-package-387675 rhn-package-387676 rhn-package-387678 rhn-package-387681 rhn-package-387682 rhn-package-387683 rhn-package-387689 rhn-package-387690 rhn-package-387691 rhn-package-387692 rhn-package-387694 rhn-package-387695 rhn-package-387699 rhn-package-387709 rhn-package-387716 rhn-package-387721 rhn-package-387723 rhn-package-387724 rhn-package-387725 rhn-package-387726 rhn-package-387727 rhn-package-387731 rhn-package-387736 rhn-package-387742 rhn-package-387744 rhn-package-387748 rhn-package-387752 rhn-package-387753 rhn-package-387760 rhn-package-387761 rhn-package-387765 rhn-package-387768 rhn-package-387771 rhn-package-387774 rhn-package-387775 rhn-package-387776 rhn-package-387778 rhn-package-387779 rhn-package-387781 rhn-package-387784 rhn-package-387786 rhn-package-387787 rhn-package-387796 rhn-package-387798 rhn-package-387803 rhn-package-387804 rhn-package-387807 rhn-package-387808 rhn-package-387812 rhn-package-387813 rhn-package-387822 rhn-package-387828 rhn-package-387829 rhn-package-387831 rhn-package-387832 rhn-package-387833 rhn-package-387834 rhn-package-387836 rhn-package-387837 rhn-package-387838 rhn-package-387839 rhn-package-387840 rhn-package-387842 rhn-package-387844 rhn-package-387852 rhn-package-387853 rhn-package-387855 rhn-package-387856 rhn-package-387858 rhn-package-387860 rhn-package-387864 rhn-package-387866 rhn-package-387867 rhn-package-387871 rhn-package-387873 rhn-package-387876 rhn-package-387880 rhn-package-387884 rhn-package-387885 rhn-package-387887 rhn-package-387890 rhn-package-387893 rhn-package-387895 rhn-package-387896 rhn-package-387912 rhn-package-387915 rhn-package-387916 rhn-package-387917 rhn-package-387918 rhn-package-387920 rhn-package-387921 rhn-package-387922 rhn-package-387924 rhn-package-387926 rhn-package-387927 rhn-package-387929 rhn-package-387931 rhn-package-387932 rhn-package-387933 rhn-package-387935 rhn-package-387936 rhn-package-387937 rhn-package-387938 rhn-package-387942 rhn-package-387944 rhn-package-387946 rhn-package-387948 rhn-package-387952 rhn-package-387953 rhn-package-387954 rhn-package-387958 rhn-package-387959 rhn-package-387962 rhn-package-387964 rhn-package-387966 rhn-package-387967 rhn-package-387968 rhn-package-387972 rhn-package-387974 rhn-package-387977 rhn-package-387979 rhn-package-387981 rhn-package-387982 rhn-package-387983 rhn-package-387984 rhn-package-387986 rhn-package-387988 rhn-package-387989 rhn-package-387991 rhn-package-387992 rhn-package-387994 rhn-package-387996 rhn-package-387997 rhn-package-387998 rhn-package-388000 rhn-package-388001 rhn-package-388002 rhn-package-388004 rhn-package-388005 rhn-package-388006 rhn-package-388007 rhn-package-388008 rhn-package-388009 rhn-package-388012 rhn-package-388013 rhn-package-388015 rhn-package-388019 rhn-package-388021 rhn-package-388023 rhn-package-388024 rhn-package-388025 rhn-package-388026 rhn-package-388029 rhn-package-388030 rhn-package-388032 rhn-package-388035 rhn-package-388036 rhn-package-388037 rhn-package-388038 rhn-package-388039 rhn-package-388040 rhn-package-388042 rhn-package-388045 rhn-package-388048 rhn-package-388049 rhn-package-388050 rhn-package-388051 rhn-package-388052 rhn-package-388053 rhn-package-388054 rhn-package-388057 rhn-package-388058 rhn-package-388059 rhn-package-388060 rhn-package-388069 rhn-package-388071 rhn-package-388072 rhn-package-388073 rhn-package-388077 rhn-package-388081 rhn-package-388082 rhn-package-388083 rhn-package-388084 rhn-package-388085 rhn-package-388086 rhn-package-388087 rhn-package-388088 rhn-package-388089 rhn-package-388091 rhn-package-388092 rhn-package-388094 rhn-package-388096 rhn-package-388097 rhn-package-388099 rhn-package-388101 rhn-package-388103 rhn-package-388105 rhn-package-388106 rhn-package-388109 rhn-package-388110 rhn-package-388111 rhn-package-388113 rhn-package-388114 rhn-package-388115 rhn-package-388117 rhn-package-388118 rhn-package-388119 rhn-package-388120 rhn-package-388122 rhn-package-388123 rhn-package-388125 rhn-package-388126 rhn-package-388130 rhn-package-388131 rhn-package-388132 rhn-package-388137 rhn-package-388140 rhn-package-388142 rhn-package-388143 rhn-package-388145 rhn-package-388146 rhn-package-388147 rhn-package-388148 rhn-package-388149 rhn-package-388150 rhn-package-388153 rhn-package-388154 rhn-package-388155 rhn-package-388157 rhn-package-388158 rhn-package-388159 rhn-package-388161 rhn-package-388162 rhn-package-388165 rhn-package-388166 rhn-package-388167 rhn-package-388170 rhn-package-388171 rhn-package-388174 rhn-package-388175 rhn-package-388176 rhn-package-388177 rhn-package-388181 rhn-package-388182 rhn-package-388184 rhn-package-388185 rhn-package-388186 rhn-package-388189 rhn-package-388190 rhn-package-388191 rhn-package-388193 rhn-package-388195 rhn-package-388197 rhn-package-388198 rhn-package-388200 rhn-package-388202 rhn-package-388205 rhn-package-388206 rhn-package-388207 rhn-package-388209 rhn-package-388210 rhn-package-388211 rhn-package-388212 rhn-package-388214 rhn-package-388215 rhn-package-388217 rhn-package-388220 rhn-package-388222 rhn-package-388223 rhn-package-388225 rhn-package-388227 rhn-package-388229 rhn-package-388231 rhn-package-388233 rhn-package-388235 rhn-package-388237 rhn-package-388240 rhn-package-388245 rhn-package-388246 rhn-package-388247 rhn-package-388248 rhn-package-388249 rhn-package-388250 rhn-package-388251 rhn-package-388252 rhn-package-388254 rhn-package-388255 rhn-package-388256 rhn-package-388257 rhn-package-388259 rhn-package-388260 rhn-package-388261 rhn-package-388263 rhn-package-388265 rhn-package-388268 rhn-package-388270 rhn-package-388271 rhn-package-388273 rhn-package-388274 rhn-package-388276 rhn-package-388277 rhn-package-388282 rhn-package-388283 rhn-package-388284 rhn-package-388285 rhn-package-388287 rhn-package-388289 rhn-package-388290 rhn-package-388291 rhn-package-388292 rhn-package-388293 rhn-package-388296 rhn-package-388301 rhn-package-388302 rhn-package-388303 rhn-package-388305 rhn-package-388307 rhn-package-388308 rhn-package-388310 rhn-package-388311 rhn-package-388313 rhn-package-388314 rhn-package-388315 rhn-package-388316 rhn-package-388318 rhn-package-388319 rhn-package-388322 rhn-package-388323 rhn-package-388324 rhn-package-388325 rhn-package-388327 rhn-package-388328 rhn-package-388340 rhn-package-388342 rhn-package-388349 rhn-package-388350 rhn-package-388353 rhn-package-388355 rhn-package-388357 rhn-package-388358 rhn-package-388367 rhn-package-388377 rhn-package-388378 rhn-package-388385 rhn-package-388392 rhn-package-388401 rhn-package-388406 rhn-package-388416 rhn-package-388418 rhn-package-388419 rhn-package-388430 rhn-package-388442 rhn-package-388450 rhn-package-388462 rhn-package-388468 rhn-package-388520 rhn-package-388523 rhn-package-388525 rhn-package-388527 rhn-package-388528 rhn-package-388534 rhn-package-388536 rhn-package-388537 rhn-package-388538 rhn-package-388539 rhn-package-388541 rhn-package-388542 rhn-package-388543 rhn-package-388544 rhn-package-388545 rhn-package-388547 rhn-package-388549 rhn-package-388552 rhn-package-388554 rhn-package-388555 rhn-package-388556 rhn-package-388557 rhn-package-388563 rhn-package-388565 rhn-package-388567 rhn-package-388568 rhn-package-388569 rhn-package-388572 rhn-package-388578 rhn-package-388580 rhn-package-388586 rhn-package-388587 rhn-package-388588 rhn-package-388589 rhn-package-388590 rhn-package-388593 rhn-package-388594 rhn-package-388595 rhn-package-388596 rhn-package-388597 rhn-package-388598 rhn-package-388599 rhn-package-388600 rhn-package-388603 rhn-package-388605 rhn-package-388606 rhn-package-388608 rhn-package-388609 rhn-package-388613 rhn-package-388615 rhn-package-388620 rhn-package-388621 rhn-package-388627 rhn-package-388628 rhn-package-388629 rhn-package-388630 rhn-package-388631 rhn-package-388632 rhn-package-388633 rhn-package-388634 rhn-package-388635 rhn-package-388637 rhn-package-388639 rhn-package-388641 rhn-package-388642 rhn-package-388644 rhn-package-388645 rhn-package-388647 rhn-package-388650 rhn-package-388652 rhn-package-388657 rhn-package-388658 rhn-package-388659 rhn-package-388666 rhn-package-388667 rhn-package-388669 rhn-package-388672 rhn-package-388674 rhn-package-388676 rhn-package-388677 rhn-package-388679 rhn-package-388680 rhn-package-388681 rhn-package-388682 rhn-package-388683 rhn-package-388684 rhn-package-388685 rhn-package-388688 rhn-package-388689 rhn-package-388690 rhn-package-388691 rhn-package-388694 rhn-package-388696 rhn-package-388697 rhn-package-388698 rhn-package-388699 rhn-package-388701 rhn-package-388702 rhn-package-388704 rhn-package-388705 rhn-package-388706 rhn-package-388708 rhn-package-388711 rhn-package-388712 rhn-package-388713 rhn-package-388714 rhn-package-388722 rhn-package-388723 rhn-package-388724 rhn-package-388726 rhn-package-388727 rhn-package-388729 rhn-package-388730 rhn-package-388732 rhn-package-388733 rhn-package-388734 rhn-package-388736 rhn-package-388738 rhn-package-388739 rhn-package-388740 rhn-package-388741 rhn-package-388742 rhn-package-388743 rhn-package-388748 rhn-package-388752 rhn-package-388755 rhn-package-388759 rhn-package-388760 rhn-package-388761 rhn-package-388763 rhn-package-388766 rhn-package-388768 rhn-package-388771 rhn-package-388772 rhn-package-388773 rhn-package-388774 rhn-package-388776 rhn-package-388777 rhn-package-388778 rhn-package-388782 rhn-package-388783 rhn-package-388785 rhn-package-388786 rhn-package-388788 rhn-package-388790 rhn-package-388791 rhn-package-388792 rhn-package-388793 rhn-package-388794 rhn-package-388798 rhn-package-388799 rhn-package-388800 rhn-package-388802 rhn-package-388804 rhn-package-388805 rhn-package-388806 rhn-package-388807 rhn-package-388808 rhn-package-388809 rhn-package-388810 rhn-package-388811 rhn-package-388815 rhn-package-388818 rhn-package-388823 rhn-package-388824 rhn-package-388825 rhn-package-388826 rhn-package-388827 rhn-package-388828 rhn-package-388829 rhn-package-388830 rhn-package-388832 rhn-package-388833 rhn-package-388834 rhn-package-388836 rhn-package-388838 rhn-package-388840 rhn-package-388841 rhn-package-388844 rhn-package-388845 rhn-package-388846 rhn-package-388851 rhn-package-388852 rhn-package-388854 rhn-package-388858 rhn-package-388860 rhn-package-388861 rhn-package-388862 rhn-package-388863 rhn-package-388865 rhn-package-388866 rhn-package-388868 rhn-package-388872 rhn-package-388873 rhn-package-388874 rhn-package-388878 rhn-package-388879 rhn-package-388884 rhn-package-388887 rhn-package-388888 rhn-package-388889 rhn-package-388891 rhn-package-388892 rhn-package-388894 rhn-package-388896 rhn-package-388897 rhn-package-388898 rhn-package-388899 rhn-package-388901 rhn-package-388904 rhn-package-388905 rhn-package-388906 rhn-package-388907 rhn-package-388908 rhn-package-388909 rhn-package-388911 rhn-package-388914 rhn-package-388918 rhn-package-388920 rhn-package-388921 rhn-package-388922 rhn-package-388923 rhn-package-388927 rhn-package-388928 rhn-package-388929 rhn-package-388931 rhn-package-388933 rhn-package-388936 rhn-package-388937 rhn-package-388938 rhn-package-388940 rhn-package-388942 rhn-package-388945 rhn-package-388946 rhn-package-388950 rhn-package-388954 rhn-package-388960 rhn-package-388963 rhn-package-388966 rhn-package-388968 rhn-package-388970 rhn-package-388971 rhn-package-388977 rhn-package-388980 rhn-package-388981 rhn-package-388983 rhn-package-388984 rhn-package-388986 rhn-package-388987 rhn-package-388988 rhn-package-388989 rhn-package-388993 rhn-package-388994 rhn-package-388995 rhn-package-388997 rhn-package-388998 rhn-package-389000 rhn-package-389001 rhn-package-389004 rhn-package-389005 rhn-package-389009 rhn-package-389012 rhn-package-389015 rhn-package-389018 rhn-package-389019 rhn-package-389020 rhn-package-389021 rhn-package-389022 rhn-package-389026 rhn-package-389028 rhn-package-389031 rhn-package-389032 rhn-package-389034 rhn-package-389035 rhn-package-389036 rhn-package-389037 rhn-package-389040 rhn-package-389041 rhn-package-389044 rhn-package-389046 rhn-package-389047 rhn-package-389048 rhn-package-389049 rhn-package-389050 rhn-package-389052 rhn-package-389054 rhn-package-389055 rhn-package-389056 rhn-package-389057 rhn-package-389058 rhn-package-389061 rhn-package-389062 rhn-package-389064 rhn-package-389065 rhn-package-389066 rhn-package-389069 rhn-package-389073 rhn-package-389074 rhn-package-389083 rhn-package-389088 rhn-package-389090 rhn-package-389091 rhn-package-389092 rhn-package-389093 rhn-package-389095 rhn-package-389096 rhn-package-389097 rhn-package-389098 rhn-package-389099 rhn-package-389101 rhn-package-389102 rhn-package-389104 rhn-package-389105 rhn-package-389107 rhn-package-389111 rhn-package-389112 rhn-package-389113 rhn-package-389114 rhn-package-389117 rhn-package-389118 rhn-package-389121 rhn-package-389125 rhn-package-389128 rhn-package-389129 rhn-package-389132 rhn-package-389133 rhn-package-389134 rhn-package-389136 rhn-package-389138 rhn-package-389139 rhn-package-389140 rhn-package-389141 rhn-package-389146 rhn-package-389148 rhn-package-389149 rhn-package-389156 rhn-package-389159 rhn-package-389161 rhn-package-389162 rhn-package-389164 rhn-package-389167 rhn-package-389169 rhn-package-389171 rhn-package-389172 rhn-package-389173 rhn-package-389174 rhn-package-389176 rhn-package-389179 rhn-package-389183 rhn-package-389184 rhn-package-389185 rhn-package-389187 rhn-package-389188 rhn-package-389190 rhn-package-389192 rhn-package-389193 rhn-package-389197 rhn-package-389198 rhn-package-389200 rhn-package-389201 rhn-package-389202 rhn-package-389207 rhn-package-389209 rhn-package-389210 rhn-package-389211 rhn-package-389212 rhn-package-389213 rhn-package-389214 rhn-package-389215 rhn-package-389216 rhn-package-389218 rhn-package-389220 rhn-package-389221 rhn-package-389222 rhn-package-389225 rhn-package-389226 rhn-package-389227 rhn-package-389228 rhn-package-389229 rhn-package-389230 rhn-package-389231 rhn-package-389232 rhn-package-389235 rhn-package-389237 rhn-package-389238 rhn-package-389239 rhn-package-389240 rhn-package-389241 rhn-package-389243 rhn-package-389244 rhn-package-389249 rhn-package-389251 rhn-package-389252 rhn-package-389253 rhn-package-389256 rhn-package-389257 rhn-package-389258 rhn-package-389259 rhn-package-389260 rhn-package-389261 rhn-package-389262 rhn-package-389264 rhn-package-389265 rhn-package-389266 rhn-package-389267 rhn-package-389268 rhn-package-389269 rhn-package-389270 rhn-package-389272 rhn-package-389273 rhn-package-389274 rhn-package-389275 rhn-package-389276 rhn-package-389277 rhn-package-389278 rhn-package-389279 rhn-package-389280 rhn-package-389282 rhn-package-389283 rhn-package-389284 rhn-package-389285 rhn-package-389286 rhn-package-389287 rhn-package-389288 rhn-package-389289 rhn-package-389290 rhn-package-389291 rhn-package-389292 rhn-package-389293 rhn-package-389295 rhn-package-389296 rhn-package-389298 rhn-package-389299 rhn-package-389300 rhn-package-389301 rhn-package-389303 rhn-package-389304 rhn-package-389305 rhn-package-389306 rhn-package-389307 rhn-package-389308 rhn-package-389309 rhn-package-389310 rhn-package-389311 rhn-package-389312 rhn-package-389314 rhn-package-389315 rhn-package-389317 rhn-package-389318 rhn-package-389319 rhn-package-389320 rhn-package-389321 rhn-package-389323 rhn-package-389324 rhn-package-389325 rhn-package-389326 rhn-package-389327 rhn-package-389328 rhn-package-389329 rhn-package-389330 rhn-package-389331 rhn-package-389333 rhn-package-389334 rhn-package-389335 rhn-package-389336 rhn-package-389337 rhn-package-389338 rhn-package-389339 rhn-package-389340 rhn-package-389341 rhn-package-389342 rhn-package-389343 rhn-package-389344 rhn-package-389345 rhn-package-389346 rhn-package-389347 rhn-package-389349 rhn-package-389350 rhn-package-389352 rhn-package-389353 rhn-package-389356 rhn-package-389357 rhn-package-389358 rhn-package-389359 rhn-package-389361 rhn-package-389362 rhn-package-389363 rhn-package-389364 rhn-package-389365 rhn-package-389367 rhn-package-389368 rhn-package-389369 rhn-package-389370 rhn-package-389371 rhn-package-389372 rhn-package-389373 rhn-package-389374 rhn-package-389375 rhn-package-389376 rhn-package-389377 rhn-package-389378 rhn-package-389379 rhn-package-389380 rhn-package-389381 rhn-package-389382 rhn-package-389383 rhn-package-389384 rhn-package-389385 rhn-package-389387 rhn-package-389388 rhn-package-389389 rhn-package-389390 rhn-package-389391 rhn-package-389393 rhn-package-389394 rhn-package-389395 rhn-package-389399 rhn-package-389402 rhn-package-389403 rhn-package-389404 rhn-package-389405 rhn-package-389406 rhn-package-389407 rhn-package-389408 rhn-package-389410 rhn-package-389412 rhn-package-389413 rhn-package-389414 rhn-package-389415 rhn-package-389417 rhn-package-389418 rhn-package-389419 rhn-package-389420 rhn-package-389421 rhn-package-389422 rhn-package-389423 rhn-package-389424 rhn-package-389425 rhn-package-389427 rhn-package-389428 rhn-package-389430 rhn-package-389432 rhn-package-389433 rhn-package-389434 rhn-package-389435 rhn-package-389436 rhn-package-389437 rhn-package-389438 rhn-package-389439 rhn-package-389441 rhn-package-389442 rhn-package-389443 rhn-package-389445 rhn-package-389446 rhn-package-389447 rhn-package-389449 rhn-package-389457 rhn-package-389458 rhn-package-389459 rhn-package-389460 rhn-package-389461 rhn-package-389462 rhn-package-389463 rhn-package-389464 rhn-package-389465 rhn-package-389466 rhn-package-389467 rhn-package-389468 rhn-package-389469 rhn-package-389470 rhn-package-389471 rhn-package-389472 rhn-package-389473 rhn-package-389474 rhn-package-389475 rhn-package-389476 rhn-package-389477 rhn-package-389478 rhn-package-389479 rhn-package-389480 rhn-package-389481 rhn-package-389482 rhn-package-389483 rhn-package-389484 rhn-package-389485 rhn-package-389486 rhn-package-389487 rhn-package-389488 rhn-package-389489 rhn-package-389490 rhn-package-389491 rhn-package-389492 rhn-package-389493 rhn-package-389494 rhn-package-389495 rhn-package-389496 rhn-package-389497 rhn-package-389498 rhn-package-389499 rhn-package-389500 rhn-package-389501 rhn-package-389502 rhn-package-389503 rhn-package-389504 rhn-package-389505 rhn-package-389506 rhn-package-389507 rhn-package-389508 rhn-package-389509 rhn-package-389510 rhn-package-389511 rhn-package-389512 rhn-package-389513 rhn-package-389514 rhn-package-389516 rhn-package-389517 rhn-package-389518 rhn-package-389519 rhn-package-389520 rhn-package-389521 rhn-package-389522 rhn-package-389524 rhn-package-389525 rhn-package-389526 rhn-package-389527 rhn-package-389528 rhn-package-389529 rhn-package-389530 rhn-package-389531 rhn-package-389532 rhn-package-389533 rhn-package-389534 rhn-package-389535 rhn-package-389536 rhn-package-389537 rhn-package-389538 rhn-package-389539 rhn-package-389540 rhn-package-389541 rhn-package-389542 rhn-package-389543 rhn-package-389544 rhn-package-389545 rhn-package-389546 rhn-package-389547 rhn-package-389548 rhn-package-389549 rhn-package-389550 rhn-package-389551 rhn-package-389552 rhn-package-389553 rhn-package-389554 rhn-package-389556 rhn-package-389557 rhn-package-389558 rhn-package-389559 rhn-package-389560 rhn-package-389561 rhn-package-389562 rhn-package-389563 rhn-package-389564 rhn-package-389565 rhn-package-389566 rhn-package-389568 rhn-package-389569 rhn-package-389570 rhn-package-389571 rhn-package-389572 rhn-package-389573 rhn-package-389574 rhn-package-389575 rhn-package-389576 rhn-package-389577 rhn-package-389578 rhn-package-389579 rhn-package-389580 rhn-package-389581 rhn-package-389582 rhn-package-389583 rhn-package-389584 rhn-package-389585 rhn-package-389586 rhn-package-389587 rhn-package-389588 rhn-package-389589 rhn-package-389590 rhn-package-389591 rhn-package-389592 rhn-package-389593 rhn-package-389594 rhn-package-389595 rhn-package-389596 rhn-package-389597 rhn-package-389598 rhn-package-389599 rhn-package-389600 rhn-package-389601 rhn-package-389602 rhn-package-389604 rhn-package-389605 rhn-package-389606 rhn-package-389607 rhn-package-389608 rhn-package-389609 rhn-package-389610 rhn-package-389611 rhn-package-389612 rhn-package-389613 rhn-package-389614 rhn-package-389615 rhn-package-389616 rhn-package-389617 rhn-package-389618 rhn-package-389619 rhn-package-389620 rhn-package-389621 rhn-package-389622 rhn-package-389623 rhn-package-389624 rhn-package-389625 rhn-package-389626 rhn-package-389627 rhn-package-389628 rhn-package-389629 rhn-package-389630 rhn-package-389631 rhn-package-389632 rhn-package-389633 rhn-package-389634 rhn-package-389635 rhn-package-389636 rhn-package-389637 rhn-package-389638 rhn-package-389639 rhn-package-389640 rhn-package-389641 rhn-package-389642 rhn-package-389643 rhn-package-389644 rhn-package-389645 rhn-package-389646 rhn-package-389647 rhn-package-389648 rhn-package-389649 rhn-package-389650 rhn-package-389651 rhn-package-389652 rhn-package-389653 rhn-package-389654 rhn-package-389655 rhn-package-389656 rhn-package-389658 rhn-package-389659 rhn-package-389660 rhn-package-389661 rhn-package-389662 rhn-package-389663 rhn-package-389664 rhn-package-389665 rhn-package-389667 rhn-package-389668 rhn-package-389669 rhn-package-389670 rhn-package-389671 rhn-package-389672 rhn-package-389673 rhn-package-389674 rhn-package-389675 rhn-package-389676 rhn-package-389677 rhn-package-389678 rhn-package-389679 rhn-package-389680 rhn-package-389681 rhn-package-389682 rhn-package-389683 rhn-package-389684 rhn-package-389685 rhn-package-389686 rhn-package-389687 rhn-package-389688 rhn-package-389689 rhn-package-389690 rhn-package-389691 rhn-package-389692 rhn-package-389693 rhn-package-389694 rhn-package-389695 rhn-package-389697 rhn-package-389698 rhn-package-389699 rhn-package-389700 rhn-package-389701 rhn-package-389702 rhn-package-389703 rhn-package-389704 rhn-package-389705 rhn-package-389706 rhn-package-389707 rhn-package-389708 rhn-package-389709 rhn-package-389710 rhn-package-389711 rhn-package-389712 rhn-package-389713 rhn-package-389714 rhn-package-389715 rhn-package-389716 rhn-package-389717 rhn-package-389718 rhn-package-389719 rhn-package-389720 rhn-package-389721 rhn-package-389722 rhn-package-389723 rhn-package-389724 rhn-package-389725 rhn-package-389726 rhn-package-389727 rhn-package-389728 rhn-package-389729 rhn-package-389730 rhn-package-389731 rhn-package-389732 rhn-package-389733 rhn-package-389734 rhn-package-389735 rhn-package-389736 rhn-package-389737 rhn-package-389738 rhn-package-389739 rhn-package-389740 rhn-package-389741 rhn-package-389742 rhn-package-389743 rhn-package-389744 rhn-package-389745 rhn-package-389746 rhn-package-389747 rhn-package-389748 rhn-package-389749 rhn-package-389750 rhn-package-389752 rhn-package-389753 rhn-package-389754 rhn-package-389755 rhn-package-389756 rhn-package-389757 rhn-package-389758 rhn-package-389759 rhn-package-389760 rhn-package-389761 rhn-package-389762 rhn-package-389763 rhn-package-389764 rhn-package-389765 rhn-package-389766 rhn-package-389767 rhn-package-389768 rhn-package-389769 rhn-package-389771 rhn-package-389772 rhn-package-389773 rhn-package-389774 rhn-package-389775 rhn-package-389776 rhn-package-389777 rhn-package-389778 rhn-package-389779 rhn-package-389780 rhn-package-389781 rhn-package-389782 rhn-package-389783 rhn-package-389784 rhn-package-389785 rhn-package-390348 rhn-package-390349 rhn-package-390350 rhn-package-390351 rhn-package-390352 rhn-package-390353 rhn-package-390354 rhn-package-390355 rhn-package-390356 rhn-package-390357 rhn-package-390358 rhn-package-390359 rhn-package-390360 rhn-package-390361 rhn-package-390362 rhn-package-390363 rhn-package-390364 rhn-package-390365 rhn-package-390366 rhn-package-390367 rhn-package-390368 rhn-package-390369 rhn-package-390370 rhn-package-390371 rhn-package-390372 rhn-package-390373 rhn-package-390374 rhn-package-390375 rhn-package-390376 rhn-package-390377 rhn-package-390378 rhn-package-390379 rhn-package-390380 rhn-package-390381 rhn-package-390382 rhn-package-390383 rhn-package-390384 rhn-package-390385 rhn-package-390386 rhn-package-390387 rhn-package-390388 rhn-package-390389 rhn-package-390390 rhn-package-390391 rhn-package-390392 rhn-package-390393 rhn-package-390394 rhn-package-390395 rhn-package-390396 rhn-package-390397 rhn-package-390398 rhn-package-390399 rhn-package-390400 rhn-package-390401 rhn-package-390402 rhn-package-390403 rhn-package-390404 rhn-package-390405 rhn-package-390406 rhn-package-390407 rhn-package-390408 rhn-package-390409 rhn-package-390410 rhn-package-390411 rhn-package-390412 rhn-package-390413 rhn-package-390414 rhn-package-390415 rhn-package-390416 rhn-package-390417 rhn-package-390418 rhn-package-390419 rhn-package-390420 rhn-package-390421 rhn-package-390422 rhn-package-390423 rhn-package-390424 rhn-package-390425 rhn-package-390426 rhn-package-390427 rhn-package-390428 rhn-package-390429 rhn-package-390430 rhn-package-390431 rhn-package-390432 rhn-package-390433 rhn-package-390434 rhn-package-390435 rhn-package-390436 rhn-package-390437 rhn-package-390438 rhn-package-390439 rhn-package-390440 rhn-package-390441 rhn-package-390442 rhn-package-390443 rhn-package-390444 rhn-package-390445 rhn-package-390446 rhn-package-390447 rhn-package-390448 rhn-package-390449 rhn-package-390450 rhn-package-390451 rhn-package-390452 rhn-package-390453 rhn-package-390454 rhn-package-390455 rhn-package-390456 rhn-package-390457 rhn-package-390458 rhn-package-390459 rhn-package-390461 rhn-package-390462 rhn-package-390463 rhn-package-390464 rhn-package-390465 rhn-package-390466 rhn-package-390467 rhn-package-390468 rhn-package-390469 rhn-package-390470 rhn-package-390471 rhn-package-390472 rhn-package-390473 rhn-package-390474 rhn-package-390475 rhn-package-390476 rhn-package-390477 rhn-package-390478 rhn-package-390479 rhn-package-390480 rhn-package-390481 rhn-package-390488 rhn-package-390489 rhn-package-390490 rhn-package-390495 rhn-package-390498 rhn-package-390500 rhn-package-390502 rhn-package-390503 rhn-package-390504 rhn-package-390505 rhn-package-390506 rhn-package-390507 rhn-package-390509 rhn-package-390511 rhn-package-390513 rhn-package-390514 rhn-package-390517 rhn-package-390519 rhn-package-390522 rhn-package-390524 rhn-package-390525 rhn-package-390526 rhn-package-390527 rhn-package-390528 rhn-package-390530 rhn-package-390531 rhn-package-390532 rhn-package-390533 rhn-package-390534 rhn-package-390535 rhn-package-390536 rhn-package-390537 rhn-package-390538 rhn-package-390539 rhn-package-390540 rhn-package-390541 rhn-package-390542 rhn-package-390543 rhn-package-390544 rhn-package-390545 rhn-package-390546 rhn-package-390547 rhn-package-390548 rhn-package-390550 rhn-package-390551 rhn-package-390552 rhn-package-390558 rhn-package-390559 rhn-package-390560 rhn-package-390561 rhn-package-390562 rhn-package-390563 rhn-package-390564 rhn-package-390565 rhn-package-390566 rhn-package-390567 rhn-package-390568 rhn-package-390569 rhn-package-390570 rhn-package-390571 rhn-package-390572 rhn-package-390573 rhn-package-390574 rhn-package-390576 rhn-package-390586 rhn-package-390587 rhn-package-390588 rhn-package-390589 rhn-package-390590 rhn-package-390591 rhn-package-390593 rhn-package-390594 rhn-package-390595 rhn-package-390596 rhn-package-390597 rhn-package-390599 rhn-package-390600 rhn-package-390601 rhn-package-390602 rhn-package-390604 rhn-package-390606 rhn-package-390608 rhn-package-390609 rhn-package-390610 rhn-package-390611 rhn-package-390613 rhn-package-390614 rhn-package-390615 rhn-package-390616 rhn-package-390617 rhn-package-390618 rhn-package-390620 rhn-package-390621 rhn-package-390623 rhn-package-390624 rhn-package-390627 rhn-package-390628 rhn-package-390629 rhn-package-390630 rhn-package-390631 rhn-package-390632 rhn-package-390633 rhn-package-390634 rhn-package-390635 rhn-package-390636 rhn-package-390637 rhn-package-390639 rhn-package-390640 rhn-package-390641 rhn-package-390642 rhn-package-390651 rhn-package-390652 rhn-package-390653 rhn-package-390654 rhn-package-390655 rhn-package-390656 rhn-package-390658 rhn-package-390661 rhn-package-390662 rhn-package-390663 rhn-package-390664 rhn-package-390665 rhn-package-390666 rhn-package-390667 rhn-package-390668 rhn-package-390670 rhn-package-390671 rhn-package-390672 rhn-package-390674 rhn-package-390675 rhn-package-390676 rhn-package-390677 rhn-package-390678 rhn-package-390686 rhn-package-390688 rhn-package-390693 rhn-package-390694 rhn-package-390699 rhn-package-390700 rhn-package-390702 rhn-package-390703 rhn-package-390705 rhn-package-390706 rhn-package-390707 rhn-package-390708 rhn-package-390710 rhn-package-390711 rhn-package-390712 rhn-package-390713 rhn-package-390714 rhn-package-390715 rhn-package-390716 rhn-package-390717 rhn-package-390721 rhn-package-390724 rhn-package-390727 rhn-package-390729 rhn-package-390731 rhn-package-390732 rhn-package-390733 rhn-package-390734 rhn-package-390735 rhn-package-390736 rhn-package-390737 rhn-package-390738 rhn-package-390739 rhn-package-390740 rhn-package-390741 rhn-package-390743 rhn-package-390744 rhn-package-390745 rhn-package-390746 rhn-package-390747 rhn-package-390748 rhn-package-390749 rhn-package-390750 rhn-package-390751 rhn-package-390752 rhn-package-390753 rhn-package-390754 rhn-package-390756 rhn-package-390758 rhn-package-390760 rhn-package-390762 rhn-package-390763 rhn-package-390768 rhn-package-390769 rhn-package-390770 rhn-package-390773 rhn-package-390774 rhn-package-390778 rhn-package-390779 rhn-package-390780 rhn-package-390781 rhn-package-390782 rhn-package-390783 rhn-package-390784 rhn-package-390786 rhn-package-390790 rhn-package-390791 rhn-package-390792 rhn-package-390793 rhn-package-390794 rhn-package-390795 rhn-package-390796 rhn-package-390798 rhn-package-390800 rhn-package-390804 rhn-package-390805 rhn-package-390806 rhn-package-390807 rhn-package-390809 rhn-package-390810 rhn-package-390813 rhn-package-390814 rhn-package-390815 rhn-package-390816 rhn-package-390818 rhn-package-390836 rhn-package-390837 rhn-package-390839 rhn-package-390841 rhn-package-390842 rhn-package-390843 rhn-package-390845 rhn-package-390846 rhn-package-390850 rhn-package-390854 rhn-package-390855 rhn-package-390857 rhn-package-390859 rhn-package-390860 rhn-package-390862 rhn-package-390864 rhn-package-390870 rhn-package-390871 rhn-package-390872 rhn-package-390886 rhn-package-390892 rhn-package-390894 rhn-package-390895 rhn-package-390896 rhn-package-390897 rhn-package-390898 rhn-package-396712 rhn-package-396713 rhn-package-396714 rhn-package-396715 rhn-package-396716 rhn-package-396717 rhn-package-396718 rhn-package-396719 rhn-package-396720 rhn-package-396721 rhn-package-396722 rhn-package-396723 rhn-package-396724 rhn-package-396725 rhn-package-396726 rhn-package-396727 rhn-package-396728 rhn-package-396729 rhn-package-396730 rhn-package-396731 rhn-package-396732 rhn-package-396733 rhn-package-396734 rhn-package-396735 rhn-package-396736 rhn-package-396737 rhn-package-396738 rhn-package-396739 rhn-package-396740 rhn-package-396741 rhn-package-396742 rhn-package-396743 rhn-package-396744 rhn-package-396745 rhn-package-396746 rhn-package-396747 rhn-package-396748 rhn-package-396749 rhn-package-396750 rhn-package-396751 rhn-package-396752 rhn-package-396753 rhn-package-396754 rhn-package-396755 rhn-package-396756 rhn-package-396757 rhn-package-396758 rhn-package-396759 rhn-package-396760 rhn-package-396761 rhn-package-396762 rhn-package-396763 rhn-package-396764 rhn-package-396765 rhn-package-396766 rhn-package-396767 rhn-package-396768 rhn-package-396769 rhn-package-396770 rhn-package-396771 rhn-package-396772 rhn-package-396773 rhn-package-396774 rhn-package-396775 rhn-package-396776 rhn-package-396777 rhn-package-396778 rhn-package-396779 rhn-package-396780 rhn-package-396781 rhn-package-396782 rhn-package-396783 rhn-package-396784 rhn-package-396785 rhn-package-396786 rhn-package-396787 rhn-package-396788 rhn-package-396789 rhn-package-396790 rhn-package-396791 rhn-package-396792 rhn-package-396793 rhn-package-396794 rhn-package-396795 rhn-package-396796 rhn-package-396797 rhn-package-396798 rhn-package-396799 rhn-package-396800 rhn-package-396801 rhn-package-396802 rhn-package-396803 rhn-package-396804 rhn-package-396805 rhn-package-396806 rhn-package-396807 rhn-package-396808 rhn-package-396809 rhn-package-396810 rhn-package-396811 rhn-package-396812 rhn-package-396813 rhn-package-396814 rhn-package-396815 rhn-package-396816 rhn-package-396817 rhn-package-396818 rhn-package-396819 rhn-package-396820 rhn-package-396821 rhn-package-396822 rhn-package-396823 rhn-package-396824 rhn-package-396825 rhn-package-396826 rhn-package-396827 rhn-package-396828 rhn-package-396829 rhn-package-396830 rhn-package-396831 rhn-package-396832 rhn-package-396833 rhn-package-396834 rhn-package-396835 rhn-package-396836 rhn-package-396837 rhn-package-396838 rhn-package-396839 rhn-package-396840 rhn-package-396841 rhn-package-396842 rhn-package-396843 rhn-package-396844 rhn-package-396845 rhn-package-396846 rhn-package-396847 rhn-package-396848 rhn-package-396849 rhn-package-396850 rhn-package-396851 rhn-package-396852 rhn-package-396853 rhn-package-396854 rhn-package-396855 rhn-package-396856 rhn-package-396857 rhn-package-396858 rhn-package-396859 rhn-package-396860 rhn-package-396861 rhn-package-396862 rhn-package-396863 rhn-package-396864 rhn-package-396865 rhn-package-396866 rhn-package-396867 rhn-package-396868 rhn-package-396869 rhn-package-396870 rhn-package-396871 rhn-package-396872 rhn-package-396873 rhn-package-396874 rhn-package-396875 rhn-package-396876 rhn-package-396877 rhn-package-396878 rhn-package-396879 rhn-package-396880 rhn-package-396881 rhn-package-396882 rhn-package-396883 rhn-package-396884 rhn-package-396885 rhn-package-396886 rhn-package-396887 rhn-package-396888 rhn-package-396889 rhn-package-396890 rhn-package-396891 rhn-package-396892 rhn-package-396893 rhn-package-396894 rhn-package-396895 rhn-package-396896 rhn-package-396897 rhn-package-396898 rhn-package-396899 rhn-package-396900 rhn-package-396901 rhn-package-396902 rhn-package-396903 rhn-package-396904 rhn-package-396905 rhn-package-396906 rhn-package-396907 rhn-package-396908 rhn-package-396909 rhn-package-396910 rhn-package-396911 rhn-package-396912 rhn-package-396913 rhn-package-396914 rhn-package-396915 rhn-package-396916 rhn-package-396917 rhn-package-396918 rhn-package-396919 rhn-package-396920 rhn-package-396921 rhn-package-396922 rhn-package-396923 rhn-package-396924 rhn-package-396925 rhn-package-396926 rhn-package-396927 rhn-package-396928 rhn-package-396929 rhn-package-396930 rhn-package-396931 rhn-package-396932 rhn-package-396933 rhn-package-396934 rhn-package-396935 rhn-package-396936 rhn-package-396937 rhn-package-396938 rhn-package-396939 rhn-package-396940 rhn-package-396941 rhn-package-396942 rhn-package-396943 rhn-package-396944 rhn-package-396945 rhn-package-396946 rhn-package-396947 rhn-package-396948 rhn-package-396949 rhn-package-396950 rhn-package-396951 rhn-package-396952 rhn-package-396953 rhn-package-396954 rhn-package-396955 rhn-package-396956 rhn-package-396957 rhn-package-396958 rhn-package-396959 rhn-package-396960 rhn-package-396961 rhn-package-396962 rhn-package-396963 rhn-package-396964 rhn-package-396965 rhn-package-396966 rhn-package-396967 rhn-package-396968 rhn-package-396969 rhn-package-396970 rhn-package-396971 rhn-package-396972 rhn-package-396973 rhn-package-396974 rhn-package-396975 rhn-package-396976 rhn-package-396977 rhn-package-396978 rhn-package-396979 rhn-package-396980 rhn-package-396981 rhn-package-396982 rhn-package-396983 rhn-package-396984 rhn-package-396985 rhn-package-396986 rhn-package-396987 rhn-package-396988 rhn-package-396989 rhn-package-396990 rhn-package-396991 rhn-package-396992 rhn-package-396993 rhn-package-396994 rhn-package-396995 rhn-package-396996 rhn-package-396997 rhn-package-396998 rhn-package-396999 rhn-package-397000 rhn-package-397001 rhn-package-397002 rhn-package-397003 rhn-package-397004 rhn-package-397005 rhn-package-397006 rhn-package-397007 rhn-package-397008 rhn-package-397009 rhn-package-397010 rhn-package-397011 rhn-package-397012 rhn-package-397013 rhn-package-397014 rhn-package-397015 rhn-package-397016 rhn-package-397017 rhn-package-397018 rhn-package-397019 rhn-package-397020 rhn-package-397021 rhn-package-397022 rhn-package-397023 rhn-package-397024 rhn-package-397025 rhn-package-397026 rhn-package-397027 rhn-package-397028 rhn-package-397029 rhn-package-397030 rhn-package-397031 rhn-package-397032 rhn-package-397033 rhn-package-397034 rhn-package-397035 rhn-package-397036 rhn-package-397037 rhn-package-397038 rhn-package-397039 rhn-package-397040 rhn-package-397041 rhn-package-397042 rhn-package-397043 rhn-package-397044 rhn-package-397045 rhn-package-397046 rhn-package-397047 rhn-package-397048 rhn-package-397049 rhn-package-397050 rhn-package-397051 rhn-package-397052 rhn-package-397053 rhn-package-397054 rhn-package-397055 rhn-package-397056 rhn-package-397057 rhn-package-397058 rhn-package-397059 rhn-package-397060 rhn-package-397061 rhn-package-397062 rhn-package-397063 rhn-package-397064 rhn-package-397065 rhn-package-397066 rhn-package-397067 rhn-package-397068 rhn-package-397069 rhn-package-397070 rhn-package-397071 rhn-package-397072 rhn-package-397073 rhn-package-397074 rhn-package-397075 rhn-package-397076 rhn-package-397077 rhn-package-397078 rhn-package-397079 rhn-package-397080 rhn-package-397081 rhn-package-397082 rhn-package-397083 rhn-package-397084 rhn-package-397085 rhn-package-397086 rhn-package-397087 rhn-package-397088 rhn-package-397089 rhn-package-397090 rhn-package-397091 rhn-package-397092 rhn-package-397093 rhn-package-397094 rhn-package-397095 rhn-package-397096 rhn-package-397097 rhn-package-397098 rhn-package-397099 rhn-package-397100 rhn-package-397101 rhn-package-397102 rhn-package-397103 rhn-package-397104 rhn-package-397105 rhn-package-397106 rhn-package-397107 rhn-package-397108 rhn-package-397109 rhn-package-397110 rhn-package-397111 rhn-package-397112 rhn-package-397113 rhn-package-397114 rhn-package-397115 rhn-package-397116 rhn-package-397117 rhn-package-397118 rhn-package-397119 rhn-package-397120 rhn-package-397121 rhn-package-397122 rhn-package-397123 rhn-package-397124 rhn-package-397125 rhn-package-397126 rhn-package-397127 rhn-package-397128 rhn-package-397129 rhn-package-397130 rhn-package-397131 rhn-package-397132 rhn-package-397133 rhn-package-397134 rhn-package-397135 rhn-package-397136 rhn-package-397137 rhn-package-397138 rhn-package-397139 rhn-package-397140 rhn-package-397141 rhn-package-397142 rhn-package-397143 rhn-package-397144 rhn-package-397145 rhn-package-397146 rhn-package-397147 rhn-package-397148 rhn-package-397149 rhn-package-397150 rhn-package-397151 rhn-package-397152 rhn-package-397153 rhn-package-397154 rhn-package-397155 rhn-package-397156 rhn-package-397157 rhn-package-397158 rhn-package-397159 rhn-package-397160 rhn-package-397161 rhn-package-397162 rhn-package-397163 rhn-package-397164 rhn-package-397165 rhn-package-397166 rhn-package-397167 rhn-package-397168 rhn-package-397169 rhn-package-397170 rhn-package-397171 rhn-package-397172 rhn-package-397173 rhn-package-397174 rhn-package-397175 rhn-package-397176 rhn-package-397177 rhn-package-397178 rhn-package-397179 rhn-package-397180 rhn-package-397181 rhn-package-397182 rhn-package-397183 rhn-package-397184 rhn-package-397185 rhn-package-397186 rhn-package-397187 rhn-package-397188 rhn-package-397189 rhn-package-397190 rhn-package-397191 rhn-package-397192 rhn-package-397193 rhn-package-397194 rhn-package-397195 rhn-package-397196 rhn-package-397197 rhn-package-397198 rhn-package-397199 rhn-package-397200 rhn-package-397201 rhn-package-397202 rhn-package-397203 rhn-package-397204 rhn-package-397205 rhn-package-397206 rhn-package-397207 rhn-package-397208 rhn-package-397209 rhn-package-397210 rhn-package-397211 rhn-package-397212 rhn-package-397213 rhn-package-397214 rhn-package-397215 rhn-package-397216 rhn-package-397217 rhn-package-397218 rhn-package-397219 rhn-package-397220 rhn-package-397221 rhn-package-397222 rhn-package-397223 rhn-package-397224 rhn-package-397225 rhn-package-397226 rhn-package-397227 rhn-package-397228 rhn-package-397229 rhn-package-397230 rhn-package-397231 rhn-package-397232 rhn-package-397233 rhn-package-397234 rhn-package-397235 rhn-package-397236 rhn-package-397237 rhn-package-397238 rhn-package-397239 rhn-package-397240 rhn-package-397241 rhn-package-397242 rhn-package-397243 rhn-package-397244 rhn-package-397245 rhn-package-397246 rhn-package-397247 rhn-package-397248 rhn-package-397249 rhn-package-397250 rhn-package-397251 rhn-package-397252 rhn-package-397253 rhn-package-397254 rhn-package-397255 rhn-package-397256 rhn-package-397257 rhn-package-397258 rhn-package-397259 rhn-package-397260 rhn-package-397261 rhn-package-397262 rhn-package-397263 rhn-package-397264 rhn-package-397265 rhn-package-397266 rhn-package-397267 rhn-package-397268 rhn-package-397269 rhn-package-397270 rhn-package-397271 rhn-package-397272 rhn-package-397273 rhn-package-397274 rhn-package-397275 rhn-package-397276 rhn-package-397277 rhn-package-397278 rhn-package-397279 rhn-package-397280 rhn-package-397281 rhn-package-397282 rhn-package-397283 rhn-package-397284 rhn-package-397285 rhn-package-397286 rhn-package-397287 rhn-package-397288 rhn-package-397289 rhn-package-397290 rhn-package-397291 rhn-package-397292 rhn-package-397293 rhn-package-397294 rhn-package-397295 rhn-package-397296 rhn-package-397297 rhn-package-397298 rhn-package-397299 rhn-package-397300 rhn-package-397301 rhn-package-397302 rhn-package-397303 rhn-package-397304 rhn-package-397305 rhn-package-397306 rhn-package-397307 rhn-package-397308 rhn-package-397309 rhn-package-397310 rhn-package-397311 rhn-package-397312 rhn-package-397313 rhn-package-397314 rhn-package-397315 rhn-package-397316 rhn-package-397317 rhn-package-397318 rhn-package-397319 rhn-package-397320 rhn-package-397321 rhn-package-397322 rhn-package-397323 rhn-package-397324 rhn-package-397325 rhn-package-397326 rhn-package-397327 rhn-package-397328 rhn-package-397329 rhn-package-397330 rhn-package-397331 rhn-package-397332 rhn-package-397333 rhn-package-397334 rhn-package-397335 rhn-package-397336 rhn-package-397337 rhn-package-397338 rhn-package-397339 rhn-package-397340 rhn-package-397341 rhn-package-397342 rhn-package-397343 rhn-package-397344 rhn-package-397345 rhn-package-397346 rhn-package-397347 rhn-package-397348 rhn-package-397349 rhn-package-397350 rhn-package-397351 rhn-package-397352 rhn-package-397353 rhn-package-397354 rhn-package-397355 rhn-package-397356 rhn-package-397357 rhn-package-397358 rhn-package-397359 rhn-package-397360 rhn-package-397361 rhn-package-397362 rhn-package-397363 rhn-package-397364 rhn-package-397365 rhn-package-397366 rhn-package-397367 rhn-package-397368 rhn-package-397369 rhn-package-397370 rhn-package-397371 rhn-package-397372 rhn-package-397373 rhn-package-397374 rhn-package-397375 rhn-package-397376 rhn-package-397377 rhn-package-397378 rhn-package-397379 rhn-package-397380 rhn-package-397381 rhn-package-397382 rhn-package-397383 rhn-package-397384 rhn-package-397385 rhn-package-397386 rhn-package-397387 rhn-package-397388 rhn-package-397389 rhn-package-397390 rhn-package-397391 rhn-package-397392 rhn-package-397393 rhn-package-397394 rhn-package-397395 rhn-package-397396 rhn-package-397397 rhn-package-397398 rhn-package-397399 rhn-package-397400 rhn-package-397401 rhn-package-397402 rhn-package-397403 rhn-package-397404 rhn-package-397405 rhn-package-397406 rhn-package-397407 rhn-package-397408 rhn-package-397409 rhn-package-397410 rhn-package-397411 rhn-package-397412 rhn-package-397413 rhn-package-397414 rhn-package-397415 rhn-package-397416 rhn-package-397417 rhn-package-397418 rhn-package-397419 rhn-package-397420 rhn-package-397421 rhn-package-397422 rhn-package-397423 rhn-package-397424 rhn-package-397425 rhn-package-397426 rhn-package-397427 rhn-package-397428 rhn-package-397429 rhn-package-397430 rhn-package-397431 rhn-package-397432 rhn-package-397433 rhn-package-397434 rhn-package-397435 rhn-package-397436 rhn-package-397437 rhn-package-397438 rhn-package-397439 rhn-package-397440 rhn-package-397441 rhn-package-397442 rhn-package-397443 rhn-package-397444 rhn-package-397445 rhn-package-397446 rhn-package-397447 rhn-package-397448 rhn-package-397449 rhn-package-397450 rhn-package-397451 rhn-package-397452 rhn-package-397453 rhn-package-397454 rhn-package-397455 rhn-package-397456 rhn-package-397457 rhn-package-397458 rhn-package-397459 rhn-package-397460 rhn-package-397461 rhn-package-397462 rhn-package-397463 rhn-package-397464 rhn-package-397465 rhn-package-397466 rhn-package-397467 rhn-package-397468 rhn-package-397469 rhn-package-397470 rhn-package-397471 rhn-package-397472 rhn-package-397473 rhn-package-397474 rhn-package-397475 rhn-package-397476 rhn-package-397477 rhn-package-397478 rhn-package-397479 rhn-package-397480 rhn-package-397481 rhn-package-397482 rhn-package-397483 rhn-package-397484 rhn-package-397485 rhn-package-397486 rhn-package-397487 rhn-package-397488 rhn-package-397489 rhn-package-397490 rhn-package-397491 rhn-package-397492 rhn-package-397493 rhn-package-397494 rhn-package-397495 rhn-package-397496 rhn-package-397497 rhn-package-397498 rhn-package-397499 rhn-package-397500 rhn-package-397501 rhn-package-397502 rhn-package-397503 rhn-package-397504 rhn-package-397505 rhn-package-397506 rhn-package-397507 rhn-package-397508 rhn-package-397509 rhn-package-397510 rhn-package-397511 rhn-package-397512 rhn-package-397513 rhn-package-397514 rhn-package-397515 rhn-package-397516 rhn-package-397517 rhn-package-397518 rhn-package-397519 rhn-package-397520 rhn-package-397521 rhn-package-397522 rhn-package-397523 rhn-package-397524 rhn-package-397525 rhn-package-397526 rhn-package-397527 rhn-package-397528 rhn-package-397529 rhn-package-397530 rhn-package-397531 rhn-package-397532 rhn-package-397533 rhn-package-397534 rhn-package-397535 rhn-package-397536 rhn-package-397537 rhn-package-397538 rhn-package-397539 rhn-package-397540 rhn-package-397541 rhn-package-397542 rhn-package-397543 rhn-package-397544 rhn-package-397545 rhn-package-397546 rhn-package-397547 rhn-package-397548 rhn-package-397549 rhn-package-397550 rhn-package-397551 rhn-package-397552 rhn-package-397553 rhn-package-397554 rhn-package-397555 rhn-package-397556 rhn-package-397557 rhn-package-397558 rhn-package-397559 rhn-package-397560 rhn-package-397561 rhn-package-397562 rhn-package-397563 rhn-package-397564 rhn-package-397565 rhn-package-397566 rhn-package-397567 rhn-package-397568 rhn-package-397569 rhn-package-397570 rhn-package-397571 rhn-package-397572 rhn-package-397573 rhn-package-397574 rhn-package-397575 rhn-package-397576 rhn-package-397577 rhn-package-397578 rhn-package-397579 rhn-package-397580 rhn-package-397581 rhn-package-397582 rhn-package-397583 rhn-package-397584 rhn-package-397585 rhn-package-397586 rhn-package-397587 rhn-package-397588 rhn-package-397589 rhn-package-397590 rhn-package-397591 rhn-package-397592 rhn-package-397593 rhn-package-397594 rhn-package-397595 rhn-package-397596 rhn-package-397597 rhn-package-397598 rhn-package-397599 rhn-package-397600 rhn-package-397601 rhn-package-397602 rhn-package-397603 rhn-package-397604 rhn-package-397605 rhn-package-397606 rhn-package-397607 rhn-package-397608 rhn-package-397609 rhn-package-397610 rhn-package-397611 rhn-package-397612 rhn-package-397613 rhn-package-397614 rhn-package-397615 rhn-package-397616 rhn-package-397617 rhn-package-397618 rhn-package-397619 rhn-package-397620 rhn-package-397621 rhn-package-397622 rhn-package-397623 rhn-package-397624 rhn-package-397625 rhn-package-397626 rhn-package-397627 rhn-package-397628 rhn-package-397629 rhn-package-397630 rhn-package-397631 rhn-package-397632 rhn-package-397633 rhn-package-397634 rhn-package-397635 rhn-package-397636 rhn-package-397637 rhn-package-397638 rhn-package-397639 rhn-package-397640 rhn-package-397641 rhn-package-397642 rhn-package-397643 rhn-package-397644 rhn-package-397645 rhn-package-397646 rhn-package-397818 rhn-package-398167 rhn-package-398175 rhn-package-398181 rhn-package-398187 rhn-package-398188 rhn-package-398189 rhn-package-398190 rhn-package-398191 rhn-package-398208 rhn-package-398233 rhn-package-398234 rhn-package-398235 rhn-package-398236 rhn-package-398237 rhn-package-398238 rhn-package-398239 rhn-package-398240 rhn-package-398241 rhn-package-398242 rhn-package-398243 rhn-package-398244 rhn-package-398245 rhn-package-398246 rhn-package-398247 rhn-package-398248 rhn-package-398249 rhn-package-398250 rhn-package-398251 rhn-package-398311 rhn-package-398312 rhn-package-398313 rhn-package-398317 rhn-package-398318 rhn-package-398326 rhn-package-398327 rhn-package-398330 rhn-package-398332 rhn-package-398339 rhn-package-398341 rhn-package-398355 rhn-package-398359 rhn-package-398361 rhn-package-398363 rhn-package-398365 rhn-package-398377 rhn-package-398379 rhn-package-398380 rhn-package-398385 rhn-package-398388 rhn-package-398389 rhn-package-398391 rhn-package-398393 rhn-package-398397 rhn-package-398408 rhn-package-398409 rhn-package-398411 rhn-package-398413 rhn-package-398415 rhn-package-398421 rhn-package-398429 rhn-package-398435 rhn-package-398437 rhn-package-398443 rhn-package-398444 rhn-package-398445 rhn-package-398447 rhn-package-398449 rhn-package-398455 rhn-package-398458 rhn-package-398461 rhn-package-398462 rhn-package-398468 rhn-package-398478 rhn-package-398484 rhn-package-398499 rhn-package-398500 rhn-package-398501 rhn-package-398505 rhn-package-398512 rhn-package-398513 rhn-package-398514 rhn-package-398515 rhn-package-398518 rhn-package-398520 rhn-package-398521 rhn-package-398525 rhn-package-398528 rhn-package-398535 rhn-package-398538 rhn-package-398540 rhn-package-398542 rhn-package-398543 rhn-package-398546 rhn-package-398549 rhn-package-398555 rhn-package-398556 rhn-package-398558 rhn-package-398559 rhn-package-398563 rhn-package-398566 rhn-package-398567 rhn-package-398571 rhn-package-398573 rhn-package-398579 rhn-package-398585 rhn-package-398593 rhn-package-398597 rhn-package-398600 rhn-package-398602 rhn-package-398608 rhn-package-398619 rhn-package-398628 rhn-package-398637 rhn-package-398644 rhn-package-398646 rhn-package-398649 rhn-package-398650 rhn-package-398659 rhn-package-398663 rhn-package-398671 rhn-package-398673 rhn-package-398674 rhn-package-398676 rhn-package-398702 rhn-package-398711 rhn-package-398712 rhn-package-398881 rhn-package-398882 rhn-package-398883 rhn-package-398884 rhn-package-398885 rhn-package-398886 rhn-package-398887 rhn-package-398888 rhn-package-398889 rhn-package-398890 rhn-package-398891 rhn-package-398892 rhn-package-398893 rhn-package-398894 rhn-package-398895 rhn-package-398896 rhn-package-398897 rhn-package-398898 rhn-package-398899 rhn-package-398900 rhn-package-398901 rhn-package-398902 rhn-package-398903 rhn-package-398927 rhn-package-398929 rhn-package-399133 rhn-package-399134 rhn-package-399459 rhn-package-399500 rhn-package-399613 rhn-package-399614 rhn-package-399618 rhn-package-399621 rhn-package-399622 rhn-package-399623 rhn-package-399625 rhn-package-399843 rhn-package-399844 rhn-package-399850 rhn-package-399851 rhn-package-399879 rhn-package-399902 rhn-package-399925 rhn-package-399927 rhn-package-399933 rhn-package-399934 rhn-package-399947 rhn-package-399948 rhn-package-399950 rhn-package-399956 rhn-package-399962 rhn-package-399971 rhn-package-400075 rhn-package-400681 rhn-package-400685 rhn-package-400688 rhn-package-400690 rhn-package-400711 rhn-package-400742 rhn-package-400745 rhn-package-400755 rhn-package-400765 rhn-package-400769 rhn-package-400780 rhn-package-400945 rhn-package-400946 rhn-package-400951 rhn-package-400954 rhn-package-400959 rhn-package-401072 rhn-package-401075 rhn-package-401080 rhn-package-401082 rhn-package-401085 rhn-package-401088 rhn-package-401092 rhn-package-401094 rhn-package-401100 rhn-package-401102 rhn-package-401103 rhn-package-401105 rhn-package-401107 rhn-package-401110 rhn-package-401112 rhn-package-401121 rhn-package-401143 rhn-package-401146 rhn-package-401157 rhn-package-404177 rhn-package-404179 rhn-package-404182 rhn-package-404183 rhn-package-404194 rhn-package-404197 rhn-package-404880 rhn-package-404895 rhn-package-404898 rhn-package-404899 rhn-package-404927 rhn-package-404940 rhn-package-404955 rhn-package-404979 rhn-package-404980 rhn-package-404987 rhn-package-405009 rhn-package-405010 rhn-package-405060 rhn-package-405061 rhn-package-405063 rhn-package-405071 rhn-package-405076 rhn-package-405080 rhn-package-405085 rhn-package-405090 rhn-package-405095 rhn-package-405098 rhn-package-405101 rhn-package-405105 rhn-package-405108 rhn-package-405111 rhn-package-405118 rhn-package-405122 rhn-package-405125 rhn-package-405135 rhn-package-405137 rhn-package-405207 rhn-package-405215 rhn-package-405220 rhn-package-405223 rhn-package-405435 rhn-package-405436 rhn-package-405440 rhn-package-405474 rhn-package-405498 rhn-package-405499 rhn-package-405512 rhn-package-405724 rhn-package-405743 rhn-package-405756 rhn-package-405765 rhn-package-405768 rhn-package-405807 rhn-package-405810 rhn-package-405812 rhn-package-405819 rhn-package-405820 rhn-package-405825 rhn-package-405826 rhn-package-405828 rhn-package-405831 rhn-package-405841 rhn-package-405843 rhn-package-405846 rhn-package-405860 rhn-package-405934 rhn-package-405937 rhn-package-405938 rhn-package-405942 rhn-package-405945 rhn-package-405949 rhn-package-405950 rhn-package-406008 rhn-package-406021 rhn-package-406053 rhn-package-406060 rhn-package-406070 rhn-package-406096 rhn-package-406113 rhn-package-406159 rhn-package-406164 rhn-package-406165 rhn-package-406251 rhn-package-406273 rhn-package-406279 rhn-package-406292 rhn-package-406297 rhn-package-406472 rhn-package-406540 rhn-package-406541 rhn-package-406547 rhn-package-406548 rhn-package-406572 rhn-package-406580 rhn-package-406592 rhn-package-406600 rhn-package-406608 rhn-package-406645 rhn-package-406647 rhn-package-406650 rhn-package-406651 rhn-package-406654 rhn-package-406660 rhn-package-406661 rhn-package-406667 rhn-package-406668 rhn-package-406932 rhn-package-407002 rhn-package-407864 rhn-package-407869 rhn-package-407874 rhn-package-407897 rhn-package-407902 rhn-package-408228 rhn-package-408232 rhn-package-408233 rhn-package-408245 rhn-package-408272 rhn-package-408556 rhn-package-408568 rhn-package-408571 rhn-package-408574 rhn-package-408657 rhn-package-408658 rhn-package-408659 rhn-package-408661 rhn-package-408671 rhn-package-408672 rhn-package-408715 rhn-package-408719 rhn-package-408728 rhn-package-408730 rhn-package-408835 rhn-package-408837 rhn-package-408839 rhn-package-408845 rhn-package-408978 rhn-package-408979 rhn-package-408982 rhn-package-408987 rhn-package-409180 rhn-package-409183 rhn-package-409185 rhn-package-409188 rhn-package-409193 rhn-package-409239 rhn-package-409240 rhn-package-409256 rhn-package-409258 rhn-package-409281 rhn-package-409286 rhn-package-409305 rhn-package-409306 rhn-package-409313 rhn-package-409317 rhn-package-409321 rhn-package-409328 rhn-package-409333 rhn-package-409334 rhn-package-409337 rhn-package-409342 rhn-package-409346 rhn-package-409500 rhn-package-409501 rhn-package-409503 rhn-package-409690 rhn-package-409691 rhn-package-409695 rhn-package-409703 rhn-package-409708 rhn-package-409755 rhn-package-409757 rhn-package-409762 rhn-package-409763 rhn-package-409764 rhn-package-409768 rhn-package-409864 rhn-package-409868 rhn-package-409870 rhn-package-410187 rhn-package-410190 rhn-package-410194 rhn-package-410197 rhn-package-410200 rhn-package-410201 rhn-package-410206 rhn-package-410207 rhn-package-410212 rhn-package-410215 rhn-package-410238 rhn-package-410285 rhn-package-410286 rhn-package-410287 rhn-package-410320 rhn-package-410473 rhn-package-410476 rhn-package-410479 rhn-package-410483 rhn-package-410502 rhn-package-410570 rhn-package-410572 rhn-package-410574 rhn-package-410580 rhn-package-410583 rhn-package-410591 rhn-package-410595 rhn-package-410599 rhn-package-410607 rhn-package-410630 rhn-package-410653 rhn-package-410722 rhn-package-410723 rhn-package-410771 rhn-package-410822 rhn-package-410826 rhn-package-410832 rhn-package-410837 rhn-package-410862 rhn-package-410864 rhn-package-410867 rhn-package-410874 rhn-package-410954 rhn-package-410965 rhn-package-411002 rhn-package-411074 rhn-package-411076 rhn-package-411131 rhn-package-411151 rhn-package-411156 rhn-package-411165 rhn-package-412490 rhn-package-412492 rhn-package-412493 rhn-package-412511 rhn-package-412512 rhn-package-412513 rhn-package-412514 rhn-package-412515 rhn-package-412536 rhn-package-412561 rhn-package-412562 rhn-package-412591 rhn-package-412593 rhn-package-412595 rhn-package-412596 rhn-package-412603 rhn-package-412604 rhn-package-412684 rhn-package-412723 rhn-package-412724 rhn-package-412731 rhn-package-412758 rhn-package-412760 rhn-package-412814 rhn-package-412836 rhn-package-412841 rhn-package-412850 rhn-package-412851 rhn-package-412852 rhn-package-413075 rhn-package-413098 rhn-package-413099 rhn-package-413103 rhn-package-413105 rhn-package-413118 rhn-package-413128 rhn-package-413130 rhn-package-413131 rhn-package-413133 rhn-package-413139 rhn-package-413245 rhn-package-413269 rhn-package-413273 rhn-package-413274 rhn-package-413276 rhn-package-413297 rhn-package-413308 rhn-package-413309 rhn-package-413310 rhn-package-413337 rhn-package-413414 rhn-package-413428 rhn-package-413439 rhn-package-413440 rhn-package-413475 rhn-package-413492 rhn-package-413499 rhn-package-413748 rhn-package-414339 rhn-package-416550 rhn-package-416559 rhn-package-416562 rhn-package-416566 rhn-package-416574 rhn-package-416577 rhn-package-416587 rhn-package-416630 rhn-package-416724 rhn-package-416768 rhn-package-416769 rhn-package-416772 rhn-package-416774 rhn-package-416781 rhn-package-416786 rhn-package-416969 rhn-package-416970 rhn-package-416973 rhn-package-416974 rhn-package-416976 rhn-package-416985 rhn-package-417158 rhn-package-417162 rhn-package-417163 rhn-package-417169 rhn-package-417171 rhn-package-417179 rhn-package-417213 rhn-package-417218 rhn-package-417238 rhn-package-417250 rhn-package-417269 rhn-package-417270 rhn-package-417291 rhn-package-417297 rhn-package-417303 rhn-package-417310 rhn-package-418138 rhn-package-418141 rhn-package-418155 rhn-package-418158 rhn-package-418195 rhn-package-418201 rhn-package-418202 rhn-package-418204 rhn-package-418213 rhn-package-418225 rhn-package-418231 rhn-package-418241 rhn-package-418244 rhn-package-418245 rhn-package-418282 rhn-package-418288 rhn-package-418289 rhn-package-418295 rhn-package-418323 rhn-package-418330 rhn-package-418332 rhn-package-418333 rhn-package-418347 rhn-package-418486 rhn-package-418495 rhn-package-418502 rhn-package-418505 rhn-package-418506 rhn-package-418535 rhn-package-418539 rhn-package-418542 rhn-package-418545 rhn-package-418548 rhn-package-418555 rhn-package-418564 rhn-package-418568 rhn-package-418574 rhn-package-418577 rhn-package-418579 rhn-package-418790 rhn-package-418793 rhn-package-418795 rhn-package-418804 rhn-package-418805 rhn-package-418806 rhn-package-419032 rhn-package-419033 rhn-package-419041 rhn-package-419042 rhn-package-419043 rhn-package-419044 rhn-package-419067 rhn-package-419113 rhn-package-419260 rhn-package-419261 rhn-package-419262 rhn-package-419282 rhn-package-419291 rhn-package-419292 rhn-package-419295 rhn-package-419297 rhn-package-419305 rhn-package-419542 rhn-package-419546 rhn-package-419547 rhn-package-419581 rhn-package-419586 rhn-package-419587 rhn-package-419588 rhn-package-419590 rhn-package-419841 rhn-package-419847 rhn-package-419852 rhn-package-419854 rhn-package-420045 rhn-package-420050 rhn-package-420054 rhn-package-420057 rhn-package-420059 rhn-package-420062 rhn-package-420075 rhn-package-420082 rhn-package-420084 rhn-package-420099 rhn-package-420228 rhn-package-420233 rhn-package-420246 rhn-package-420259 rhn-package-420581 rhn-package-420584 rhn-package-420587 rhn-package-420589 rhn-package-420590 rhn-package-420592 rhn-package-420597 rhn-package-420599 rhn-package-420602 rhn-package-420603 rhn-package-420604 rhn-package-420607 rhn-package-420609 rhn-package-420631 rhn-package-420634 rhn-package-420642 rhn-package-420647 rhn-package-420648 rhn-package-420650 rhn-package-420660 rhn-package-420673 rhn-package-420675 rhn-package-420676 rhn-package-420679 rhn-package-420684 rhn-package-420690 rhn-package-420691 rhn-package-420698 rhn-package-420699 rhn-package-420707 rhn-package-420710 rhn-package-420711 rhn-package-420720 rhn-package-420722 rhn-package-420729 rhn-package-420731 rhn-package-420732 rhn-package-420739 rhn-package-420745 rhn-package-420746 rhn-package-420751 rhn-package-420758 rhn-package-420761 rhn-package-420764 rhn-package-420765 rhn-package-420766 rhn-package-420774 rhn-package-420783 rhn-package-420788 rhn-package-420790 rhn-package-420799 rhn-package-420805 rhn-package-420808 rhn-package-420812 rhn-package-420814 rhn-package-420817 rhn-package-420819 rhn-package-420833 rhn-package-420837 rhn-package-420840 rhn-package-420842 rhn-package-420847 rhn-package-420848 rhn-package-420850 rhn-package-420852 rhn-package-420864 rhn-package-420867 rhn-package-420868 rhn-package-420869 rhn-package-420872 rhn-package-420886 rhn-package-420891 rhn-package-420892 rhn-package-420900 rhn-package-420904 rhn-package-420908 rhn-package-420914 rhn-package-420915 rhn-package-420918 rhn-package-420919 rhn-package-420923 rhn-package-420927 rhn-package-420929 rhn-package-420930 rhn-package-420936 rhn-package-420944 rhn-package-420945 rhn-package-420946 rhn-package-420947 rhn-package-420951 rhn-package-420955 rhn-package-420956 rhn-package-420964 rhn-package-420965 rhn-package-420966 rhn-package-420968 rhn-package-420981 rhn-package-420999 rhn-package-421000 rhn-package-421002 rhn-package-421019 rhn-package-421021 rhn-package-421029 rhn-package-421030 rhn-package-421031 rhn-package-421032 rhn-package-421035 rhn-package-421036 rhn-package-421041 rhn-package-421042 rhn-package-421053 rhn-package-421054 rhn-package-421057 rhn-package-421058 rhn-package-421064 rhn-package-421070 rhn-package-421099 rhn-package-421100 rhn-package-421103 rhn-package-421108 rhn-package-421109 rhn-package-421111 rhn-package-421113 rhn-package-421114 rhn-package-421115 rhn-package-421117 rhn-package-421118 rhn-package-421121 rhn-package-421122 rhn-package-421124 rhn-package-421126 rhn-package-421128 rhn-package-421129 rhn-package-421131 rhn-package-421132 rhn-package-421135 rhn-package-421139 rhn-package-421141 rhn-package-421142 rhn-package-421149 rhn-package-421150 rhn-package-421151 rhn-package-421153 rhn-package-421154 rhn-package-421156 rhn-package-421159 rhn-package-421160 rhn-package-421161 rhn-package-421162 rhn-package-421165 rhn-package-421166 rhn-package-421169 rhn-package-421179 rhn-package-421180 rhn-package-421183 rhn-package-421186 rhn-package-421187 rhn-package-421194 rhn-package-421196 rhn-package-421197 rhn-package-421198 rhn-package-421200 rhn-package-421201 rhn-package-421203 rhn-package-421210 rhn-package-421212 rhn-package-421219 rhn-package-421220 rhn-package-421233 rhn-package-421253 rhn-package-421255 rhn-package-421259 rhn-package-421263 rhn-package-421268 rhn-package-421275 rhn-package-421276 rhn-package-421278 rhn-package-421280 rhn-package-421288 rhn-package-421297 rhn-package-421300 rhn-package-421304 rhn-package-421306 rhn-package-421321 rhn-package-421323 rhn-package-421329 rhn-package-421352 rhn-package-421353 rhn-package-421354 rhn-package-421355 rhn-package-421356 rhn-package-421358 rhn-package-421359 rhn-package-421360 rhn-package-421361 rhn-package-421461 rhn-package-421462 rhn-package-421464 rhn-package-421475 rhn-package-421515 rhn-package-421518 rhn-package-421519 rhn-package-421520 rhn-package-421547 rhn-package-421548 rhn-package-421556 rhn-package-421558 rhn-package-421565 rhn-package-421568 rhn-package-421569 rhn-package-421575 rhn-package-421578 rhn-package-421588 rhn-package-421592 rhn-package-421598 rhn-package-421599 rhn-package-421602 rhn-package-421611 rhn-package-421612 rhn-package-421615 rhn-package-421623 rhn-package-421626 rhn-package-421631 rhn-package-421632 rhn-package-421633 rhn-package-421634 rhn-package-421635 rhn-package-421639 rhn-package-421640 rhn-package-421648 rhn-package-421653 rhn-package-421655 rhn-package-421656 rhn-package-421658 rhn-package-421659 rhn-package-421661 rhn-package-421663 rhn-package-421664 rhn-package-421668 rhn-package-421670 rhn-package-421671 rhn-package-421676 rhn-package-421679 rhn-package-421681 rhn-package-421682 rhn-package-421686 rhn-package-421687 rhn-package-421691 rhn-package-421693 rhn-package-421694 rhn-package-421696 rhn-package-421697 rhn-package-421701 rhn-package-421704 rhn-package-421705 rhn-package-421706 rhn-package-421708 rhn-package-421710 rhn-package-421712 rhn-package-421713 rhn-package-421717 rhn-package-421718 rhn-package-421721 rhn-package-421729 rhn-package-421731 rhn-package-421734 rhn-package-421742 rhn-package-421743 rhn-package-421745 rhn-package-421747 rhn-package-421755 rhn-package-421756 rhn-package-421760 rhn-package-421764 rhn-package-421773 rhn-package-421776 rhn-package-421778 rhn-package-421784 rhn-package-421790 rhn-package-421796 rhn-package-421805 rhn-package-421820 rhn-package-421822 rhn-package-421853 rhn-package-421872 rhn-package-421873 rhn-package-421874 rhn-package-421875 rhn-package-421876 rhn-package-421877 rhn-package-421878 rhn-package-421879 rhn-package-421880 rhn-package-421881 rhn-package-421882 rhn-package-421883 rhn-package-421884 rhn-package-421885 rhn-package-421886 rhn-package-421887 rhn-package-421888 rhn-package-421889 rhn-package-421890 rhn-package-421891 rhn-package-421892 rhn-package-421893 rhn-package-421894 rhn-package-421899 rhn-package-421902 rhn-package-421905 rhn-package-421912 rhn-package-421916 rhn-package-421917 rhn-package-421924 rhn-package-421939 rhn-package-421955 rhn-package-421956 rhn-package-421959 rhn-package-421989 rhn-package-421997 rhn-package-422005 rhn-package-422007 rhn-package-422009 rhn-package-422017 rhn-package-422018 rhn-package-422022 rhn-package-422024 rhn-package-422030 rhn-package-422032 rhn-package-422039 rhn-package-422040 rhn-package-422045 rhn-package-422047 rhn-package-422053 rhn-package-422060 rhn-package-422064 rhn-package-422065 rhn-package-422067 rhn-package-422071 rhn-package-422076 rhn-package-422077 rhn-package-422080 rhn-package-422084 rhn-package-422096 rhn-package-422105 rhn-package-422111 rhn-package-422114 rhn-package-422117 rhn-package-422120 rhn-package-422121 rhn-package-422130 rhn-package-422136 rhn-package-422137 rhn-package-422138 rhn-package-422143 rhn-package-422151 rhn-package-422153 rhn-package-422155 rhn-package-422161 rhn-package-422162 rhn-package-422163 rhn-package-422164 rhn-package-422169 rhn-package-422173 rhn-package-422180 rhn-package-422182 rhn-package-422186 rhn-package-422187 rhn-package-422188 rhn-package-422198 rhn-package-422204 rhn-package-422212 rhn-package-422215 rhn-package-422216 rhn-package-422218 rhn-package-422221 rhn-package-422223 rhn-package-422229 rhn-package-422234 rhn-package-422235 rhn-package-422236 rhn-package-422237 rhn-package-422243 rhn-package-422249 rhn-package-422250 rhn-package-422251 rhn-package-422259 rhn-package-422260 rhn-package-422261 rhn-package-422264 rhn-package-422265 rhn-package-422267 rhn-package-422271 rhn-package-422273 rhn-package-422289 rhn-package-422292 rhn-package-422293 rhn-package-422294 rhn-package-422297 rhn-package-422300 rhn-package-422303 rhn-package-422304 rhn-package-422305 rhn-package-422321 rhn-package-422326 rhn-package-422331 rhn-package-422336 rhn-package-422340 rhn-package-422343 rhn-package-422346 rhn-package-422347 rhn-package-422353 rhn-package-422354 rhn-package-422361 rhn-package-422363 rhn-package-422374 rhn-package-422376 rhn-package-422378 rhn-package-422385 rhn-package-422387 rhn-package-422389 rhn-package-422395 rhn-package-422396 rhn-package-422401 rhn-package-422406 rhn-package-422411 rhn-package-422421 rhn-package-422423 rhn-package-422425 rhn-package-422431 rhn-package-422433 rhn-package-422434 rhn-package-422435 rhn-package-422439 rhn-package-422440 rhn-package-422441 rhn-package-422445 rhn-package-422454 rhn-package-422460 rhn-package-422463 rhn-package-422466 rhn-package-422470 rhn-package-422472 rhn-package-422480 rhn-package-422482 rhn-package-422487 rhn-package-422490 rhn-package-422491 rhn-package-422492 rhn-package-422502 rhn-package-422503 rhn-package-422514 rhn-package-422516 rhn-package-422522 rhn-package-422525 rhn-package-422527 rhn-package-422528 rhn-package-422531 rhn-package-422532 rhn-package-422545 rhn-package-422549 rhn-package-422553 rhn-package-422555 rhn-package-422560 rhn-package-422566 rhn-package-422567 rhn-package-422571 rhn-package-422572 rhn-package-422580 rhn-package-422583 rhn-package-422586 rhn-package-422588 rhn-package-422589 rhn-package-422590 rhn-package-422592 rhn-package-422595 rhn-package-422597 rhn-package-422599 rhn-package-422605 rhn-package-422606 rhn-package-422613 rhn-package-422617 rhn-package-422620 rhn-package-422624 rhn-package-422628 rhn-package-422635 rhn-package-422642 rhn-package-422644 rhn-package-422648 rhn-package-422649 rhn-package-422650 rhn-package-422651 rhn-package-422655 rhn-package-422657 rhn-package-422662 rhn-package-422666 rhn-package-422670 rhn-package-422678 rhn-package-422689 rhn-package-422701 rhn-package-422703 rhn-package-422706 rhn-package-422709 rhn-package-422714 rhn-package-422715 rhn-package-422719 rhn-package-422747 rhn-package-422748 rhn-package-422749 rhn-package-422750 rhn-package-422755 rhn-package-422759 rhn-package-422951 rhn-package-422955 rhn-package-422959 rhn-package-422960 rhn-package-422983 rhn-package-422990 rhn-package-423117 rhn-package-423118 rhn-package-423120 rhn-package-423121 rhn-package-423123 rhn-package-423126 rhn-package-423127 rhn-package-423134 rhn-package-423152 rhn-package-423153 rhn-package-423155 rhn-package-423156 rhn-package-423159 rhn-package-423162 rhn-package-423164 rhn-package-423165 rhn-package-423166 rhn-package-423167 rhn-package-423168 rhn-package-423170 rhn-package-423172 rhn-package-423177 rhn-package-423180 rhn-package-423182 rhn-package-423183 rhn-package-423184 rhn-package-423186 rhn-package-423187 rhn-package-423188 rhn-package-423191 rhn-package-423193 rhn-package-423194 rhn-package-423195 rhn-package-423197 rhn-package-423199 rhn-package-423200 rhn-package-423201 rhn-package-423203 rhn-package-423204 rhn-package-423206 rhn-package-423212 rhn-package-423213 rhn-package-423214 rhn-package-423215 rhn-package-423217 rhn-package-423219 rhn-package-423220 rhn-package-423230 rhn-package-423232 rhn-package-423234 rhn-package-423242 rhn-package-423244 rhn-package-423246 rhn-package-423252 rhn-package-423260 rhn-package-423262 rhn-package-423263 rhn-package-423264 rhn-package-423266 rhn-package-423273 rhn-package-423274 rhn-package-423310 rhn-package-423311 rhn-package-423314 rhn-package-423320 rhn-package-423321 rhn-package-423322 rhn-package-423323 rhn-package-423324 rhn-package-423326 rhn-package-423329 rhn-package-423333 rhn-package-423336 rhn-package-423339 rhn-package-423345 rhn-package-423346 rhn-package-423349 rhn-package-423351 rhn-package-423353 rhn-package-423357 rhn-package-423413 rhn-package-423414 rhn-package-423420 rhn-package-423426 rhn-package-423428 rhn-package-423527 rhn-package-423539 rhn-package-423550 rhn-package-423553 rhn-package-423561 rhn-package-423572 rhn-package-423584 rhn-package-423607 rhn-package-423611 rhn-package-423613 rhn-package-423615 rhn-package-423619 rhn-package-423622 rhn-package-423625 rhn-package-423633 rhn-package-423636 rhn-package-423684 rhn-package-423685 rhn-package-423697 rhn-package-423702 rhn-package-424953 rhn-package-424954 rhn-package-424957 rhn-package-424959 rhn-package-424962 rhn-package-424965 rhn-package-424967 rhn-package-424973 rhn-package-424974 rhn-package-424979 rhn-package-424987 rhn-package-425821 rhn-package-425828 rhn-package-425831 rhn-package-425835 rhn-package-425838 rhn-package-425840 rhn-package-425844 rhn-package-425851 rhn-package-425853 rhn-package-425860 rhn-package-425949 rhn-package-425982 rhn-package-425985 rhn-package-425991 rhn-package-425999 rhn-package-426002 rhn-package-426054 rhn-package-426067 rhn-package-426071 rhn-package-426077 rhn-package-426078 rhn-package-426118 rhn-package-426120 rhn-package-426276 rhn-package-426279 rhn-package-426280 rhn-package-426283 rhn-package-426285 rhn-package-426287 rhn-package-426296 rhn-package-426311 rhn-package-426315 rhn-package-426322 rhn-package-426325 rhn-package-426326 rhn-package-426328 rhn-package-426329 rhn-package-426340 rhn-package-426367 rhn-package-426370 rhn-package-426371 rhn-package-426372 rhn-package-426373 rhn-package-426897 rhn-package-426898 rhn-package-426903 rhn-package-426907 rhn-package-426993 rhn-package-427000 rhn-package-427038 rhn-package-427040 rhn-package-427047 rhn-package-427049 rhn-package-427055 rhn-package-427061 rhn-package-427062 rhn-package-427076 rhn-package-427092 rhn-package-427093 rhn-package-427098 rhn-package-427099 rhn-package-427145 rhn-package-427146 rhn-package-427147 rhn-package-427149 rhn-package-427644 rhn-package-427648 rhn-package-428032 rhn-package-428033 rhn-package-428034 rhn-package-428036 rhn-package-428038 rhn-package-428044 rhn-package-428050 rhn-package-428051 rhn-package-428470 rhn-package-428546 rhn-package-428563 rhn-package-428571 rhn-package-428581 rhn-package-428600 rhn-package-428759 rhn-package-428778 rhn-package-428780 rhn-package-428783 rhn-package-428789 rhn-package-428791 rhn-package-428793 rhn-package-428795 rhn-package-428796 rhn-package-428804 rhn-package-428805 rhn-package-428810 rhn-package-428811 rhn-package-428818 rhn-package-428823 rhn-package-428826 rhn-package-428827 rhn-package-428830 rhn-package-428832 rhn-package-428840 rhn-package-428841 rhn-package-428850 rhn-package-428868 rhn-package-428890 rhn-package-428893 rhn-package-428895 rhn-package-428899 rhn-package-428969 rhn-package-428992 rhn-package-428994 rhn-package-429001 rhn-package-429006 rhn-package-429010 rhn-package-429024 rhn-package-429029 rhn-package-429112 rhn-package-429114 rhn-package-429116 rhn-package-429120 rhn-package-429239 rhn-package-429241 rhn-package-429246 rhn-package-429247 rhn-package-429333 rhn-package-429336 rhn-package-429339 rhn-package-429341 rhn-package-429349 rhn-package-429504 rhn-package-429513 rhn-package-429516 rhn-package-429517 rhn-package-429520 rhn-package-429522 rhn-package-429529 rhn-package-429531 rhn-package-429533 rhn-package-429539 rhn-package-429546 rhn-package-429552 rhn-package-429554 rhn-package-429555 rhn-package-429556 rhn-package-429557 rhn-package-429569 rhn-package-429606 rhn-package-429611 rhn-package-429612 rhn-package-429613 rhn-package-429656 rhn-package-429661 rhn-package-429669 rhn-package-429680 rhn-package-429705 rhn-package-429709 rhn-package-429716 rhn-package-429719 rhn-package-429721 rhn-package-429918 rhn-package-429919 rhn-package-430000 rhn-package-430007 rhn-package-430008 rhn-package-430022 rhn-package-430039 rhn-package-430070 rhn-package-430080 rhn-package-430084 rhn-package-430090 rhn-package-430091 rhn-package-430093 rhn-package-430102 rhn-package-430115 rhn-package-430116 rhn-package-430117 rhn-package-430133 rhn-package-430146 rhn-package-430409 rhn-package-430410 rhn-package-430412 rhn-package-430424 rhn-package-430428 rhn-package-430524 rhn-package-430525 rhn-package-430527 rhn-package-430529 rhn-package-430531 rhn-package-430532 rhn-package-430533 rhn-package-430534 rhn-package-430535 rhn-package-430536 rhn-package-430537 rhn-package-430538 rhn-package-430539 rhn-package-430540 rhn-package-430541 rhn-package-430542 rhn-package-430543 rhn-package-430544 rhn-package-430545 rhn-package-430546 rhn-package-430547 rhn-package-430548 rhn-package-430549 rhn-package-430550 rhn-package-430551 rhn-package-430552 rhn-package-430553 rhn-package-430554 rhn-package-430555 rhn-package-430556 rhn-package-430557 rhn-package-430558 rhn-package-430559 rhn-package-430560 rhn-package-430561 rhn-package-430562 rhn-package-430563 rhn-package-430564 rhn-package-430565 rhn-package-430566 rhn-package-430567 rhn-package-430568 rhn-package-430569 rhn-package-430570 rhn-package-430571 rhn-package-430572 rhn-package-430573 rhn-package-430574 rhn-package-430576 rhn-package-430580 rhn-package-430585 rhn-package-430586 rhn-package-430592 rhn-package-430594 rhn-package-430599 rhn-package-430600 rhn-package-430608 rhn-package-430614 rhn-package-430616 rhn-package-430617 rhn-package-430619 rhn-package-430627 rhn-package-430630 rhn-package-430637 rhn-package-430661 rhn-package-430663 rhn-package-430664 rhn-package-430665 rhn-package-430682 rhn-package-430688 rhn-package-430691 rhn-package-430692 rhn-package-430694 rhn-package-430698 rhn-package-431072 rhn-package-431074 rhn-package-431075 rhn-package-431081 rhn-package-431084 rhn-package-431087 rhn-package-431475 rhn-package-431482 rhn-package-431486 rhn-package-431493 rhn-package-431494 rhn-package-431503 rhn-package-431604 rhn-package-431609 rhn-package-431615 rhn-package-431616 rhn-package-431617 rhn-package-431619 rhn-package-431629 rhn-package-431632 rhn-package-431638 rhn-package-431643 rhn-package-431648 rhn-package-431654 rhn-package-431658 rhn-package-431662 rhn-package-431664 rhn-package-431665 rhn-package-431667 rhn-package-431677 rhn-package-431686 rhn-package-431688 rhn-package-431697 rhn-package-431702 rhn-package-431705 rhn-package-431710 rhn-package-431711 rhn-package-431718 rhn-package-431745 rhn-package-431748 rhn-package-431753 rhn-package-431754 rhn-package-431755 rhn-package-431758 rhn-package-431873 rhn-package-431874 rhn-package-431875 rhn-package-431878 rhn-package-431879 rhn-package-431888 rhn-package-431889 rhn-package-431891 rhn-package-431897 rhn-package-431907 rhn-package-431910 rhn-package-431912 rhn-package-431934 rhn-package-431937 rhn-package-431940 rhn-package-431954 rhn-package-431956 rhn-package-431962 rhn-package-431963 rhn-package-431966 rhn-package-431986 rhn-package-431988 rhn-package-432222 rhn-package-432469 rhn-package-432471 rhn-package-432478 rhn-package-432480 rhn-package-432481 rhn-package-432483 rhn-package-432508 rhn-package-432668 rhn-package-432674 rhn-package-432676 rhn-package-432679 rhn-package-432805 rhn-package-432813 rhn-package-432818 rhn-package-432819 rhn-package-432825 rhn-package-432835 rhn-package-432837 rhn-package-432839 rhn-package-432909 rhn-package-432912 rhn-package-432915 rhn-package-432916 rhn-package-433072 rhn-package-433076 rhn-package-433077 rhn-package-433081 rhn-package-433085 rhn-package-433091 rhn-package-433093 rhn-package-433157 rhn-package-433158 rhn-package-433161 rhn-package-433162 rhn-package-433239 rhn-package-433241 rhn-package-433243 rhn-package-433249 rhn-package-433253 rhn-package-433383 rhn-package-433385 rhn-package-433409 rhn-package-433410 rhn-package-433414 rhn-package-433429 rhn-package-433432 rhn-package-433440 rhn-package-433450 rhn-package-433468 rhn-package-433469 rhn-package-433471 rhn-package-433474 rhn-package-433481 rhn-package-433482 rhn-package-433484 rhn-package-433485 rhn-package-433495 rhn-package-433497 rhn-package-433703 rhn-package-433706 rhn-package-433713 rhn-package-433716 rhn-package-433721 rhn-package-433730 rhn-package-433732 rhn-package-433733 rhn-package-433734 rhn-package-433739 rhn-package-433755 rhn-package-433762 rhn-package-433766 rhn-package-433767 rhn-package-433773 rhn-package-433828 rhn-package-433829 rhn-package-433834 rhn-package-433835 rhn-package-433840 rhn-package-434251 rhn-package-434258 rhn-package-434261 rhn-package-434267 rhn-package-434268 rhn-package-434269 rhn-package-434271 rhn-package-434283 rhn-package-434400 rhn-package-434406 rhn-package-434412 rhn-package-437307 rhn-package-437308 rhn-package-437309 rhn-package-437310 rhn-package-437311 rhn-package-437312 rhn-package-437318 rhn-package-437323 rhn-package-437340 rhn-package-437346 rhn-package-437355 rhn-package-437833 rhn-package-437837 rhn-package-437839 rhn-package-437840 rhn-package-437842 rhn-package-437845 rhn-package-437960 rhn-package-437961 rhn-package-437964 rhn-package-438018 rhn-package-438025 rhn-package-438026 rhn-package-438032 rhn-package-438216 rhn-package-438217 rhn-package-438219 rhn-package-438223 rhn-package-438224 rhn-package-438230 rhn-package-438282 rhn-package-438503 rhn-package-438606 rhn-package-438624 rhn-package-438996 rhn-package-439002 rhn-package-439009 rhn-package-439013 rhn-package-439162 rhn-package-439164 rhn-package-439170 rhn-package-439174 rhn-package-439181 rhn-package-439182 rhn-package-439185 rhn-package-439186 rhn-package-439196 rhn-package-439211 rhn-package-439240 rhn-package-439244 rhn-package-439254 rhn-package-439612 rhn-package-439616 rhn-package-439618 rhn-package-439619 rhn-package-439621 rhn-package-440233 rhn-package-440234 rhn-package-440237 rhn-package-440239 rhn-package-440241 rhn-package-440246 rhn-package-440250 rhn-package-440255 rhn-package-440322 rhn-package-440560 rhn-package-440563 rhn-package-440590 rhn-package-440591 rhn-package-440593 rhn-package-440594 rhn-package-440667 rhn-package-440668 rhn-package-440811 rhn-package-440813 rhn-package-440814 rhn-package-440817 rhn-package-440818 rhn-package-440820 rhn-package-440826 rhn-package-440837 rhn-package-440838 rhn-package-440839 rhn-package-440846 rhn-package-440848 rhn-package-440850 rhn-package-440851 rhn-package-440859 rhn-package-440860 rhn-package-440865 rhn-package-440867 rhn-package-440874 rhn-package-440878 rhn-package-440882 rhn-package-440886 rhn-package-440894 rhn-package-440895 rhn-package-440900 rhn-package-440902 rhn-package-440907 rhn-package-440908 rhn-package-440909 rhn-package-440921 rhn-package-440924 rhn-package-440931 rhn-package-440932 rhn-package-440937 rhn-package-440944 rhn-package-440953 rhn-package-440954 rhn-package-440955 rhn-package-440960 rhn-package-440962 rhn-package-440971 rhn-package-441004 rhn-package-441005 rhn-package-441006 rhn-package-441007 rhn-package-441008 rhn-package-441009 rhn-package-441010 rhn-package-441011 rhn-package-441012 rhn-package-441013 rhn-package-441014 rhn-package-441015 rhn-package-441016 rhn-package-441017 rhn-package-441018 rhn-package-441019 rhn-package-441020 rhn-package-441021 rhn-package-441022 rhn-package-441023 rhn-package-441024 rhn-package-441025 rhn-package-441026 rhn-package-441030 rhn-package-441034 rhn-package-441036 rhn-package-441038 rhn-package-441039 rhn-package-441040 rhn-package-441041 rhn-package-441044 rhn-package-441049 rhn-package-441050 rhn-package-441051 rhn-package-441052 rhn-package-441053 rhn-package-441067 rhn-package-441070 rhn-package-441071 rhn-package-441075 rhn-package-441080 rhn-package-441083 rhn-package-441089 rhn-package-441090 rhn-package-441095 rhn-package-441096 rhn-package-441105 rhn-package-441115 rhn-package-441130 rhn-package-441131 rhn-package-441133 rhn-package-441136 rhn-package-441137 rhn-package-441138 rhn-package-441140 rhn-package-441155 rhn-package-441156 rhn-package-441158 rhn-package-441159 rhn-package-441218 rhn-package-441221 rhn-package-441224 rhn-package-441226 rhn-package-441227 rhn-package-441231 rhn-package-441241 rhn-package-441245 rhn-package-441247 rhn-package-441253 rhn-package-441254 rhn-package-441255 rhn-package-441264 rhn-package-441268 rhn-package-441270 rhn-package-441271 rhn-package-441272 rhn-package-441274 rhn-package-441276 rhn-package-441280 rhn-package-441295 rhn-package-441299 rhn-package-441304 rhn-package-441307 rhn-package-441314 rhn-package-441316 rhn-package-441317 rhn-package-441319 rhn-package-441320 rhn-package-441325 rhn-package-441331 rhn-package-441333 rhn-package-441337 rhn-package-441339 rhn-package-441343 rhn-package-441350 rhn-package-441355 rhn-package-441358 rhn-package-441359 rhn-package-441362 rhn-package-441364 rhn-package-441365 rhn-package-441373 rhn-package-441374 rhn-package-441380 rhn-package-441391 rhn-package-441394 rhn-package-441399 rhn-package-441402 rhn-package-441409 rhn-package-441414 rhn-package-441415 rhn-package-441419 rhn-package-441422 rhn-package-441429 rhn-package-441431 rhn-package-441433 rhn-package-441436 rhn-package-441440 rhn-package-441441 rhn-package-441442 rhn-package-441443 rhn-package-441444 rhn-package-441445 rhn-package-441446 rhn-package-441452 rhn-package-441453 rhn-package-441454 rhn-package-441456 rhn-package-441458 rhn-package-441468 rhn-package-441469 rhn-package-441471 rhn-package-441472 rhn-package-441473 rhn-package-441474 rhn-package-441477 rhn-package-441483 rhn-package-441484 rhn-package-441486 rhn-package-441493 rhn-package-441499 rhn-package-441502 rhn-package-441504 rhn-package-441505 rhn-package-441506 rhn-package-441507 rhn-package-441508 rhn-package-441509 rhn-package-441510 rhn-package-441511 rhn-package-441512 rhn-package-441513 rhn-package-441515 rhn-package-441516 rhn-package-441522 rhn-package-441526 rhn-package-441528 rhn-package-441529 rhn-package-441533 rhn-package-441534 rhn-package-441535 rhn-package-441537 rhn-package-441617 rhn-package-441621 rhn-package-441625 rhn-package-441626 rhn-package-441631 rhn-package-441634 rhn-package-441635 rhn-package-441638 rhn-package-441639 rhn-package-441640 rhn-package-441641 rhn-package-441644 rhn-package-441651 rhn-package-441652 rhn-package-441653 rhn-package-441657 rhn-package-441660 rhn-package-441661 rhn-package-441662 rhn-package-441665 rhn-package-441666 rhn-package-441667 rhn-package-441668 rhn-package-441669 rhn-package-441670 rhn-package-441671 rhn-package-441673 rhn-package-441679 rhn-package-441680 rhn-package-441681 rhn-package-441688 rhn-package-441689 rhn-package-441690 rhn-package-441691 rhn-package-441693 rhn-package-441706 rhn-package-441712 rhn-package-441719 rhn-package-441721 rhn-package-441722 rhn-package-441723 rhn-package-441724 rhn-package-441725 rhn-package-441726 rhn-package-441727 rhn-package-441728 rhn-package-441730 rhn-package-441731 rhn-package-441732 rhn-package-441733 rhn-package-441734 rhn-package-441735 rhn-package-441736 rhn-package-441737 rhn-package-441738 rhn-package-441747 rhn-package-441748 rhn-package-441749 rhn-package-441751 rhn-package-441752 rhn-package-441754 rhn-package-441755 rhn-package-441756 rhn-package-441759 rhn-package-441760 rhn-package-441761 rhn-package-441763 rhn-package-441764 rhn-package-441765 rhn-package-441766 rhn-package-441767 rhn-package-441768 rhn-package-441771 rhn-package-441773 rhn-package-441777 rhn-package-441789 rhn-package-441791 rhn-package-441798 rhn-package-441799 rhn-package-441800 rhn-package-441801 rhn-package-441804 rhn-package-441805 rhn-package-441808 rhn-package-441810 rhn-package-441811 rhn-package-441812 rhn-package-441815 rhn-package-441816 rhn-package-441817 rhn-package-441819 rhn-package-441820 rhn-package-441821 rhn-package-441822 rhn-package-441824 rhn-package-441825 rhn-package-441826 rhn-package-441827 rhn-package-441828 rhn-package-441830 rhn-package-441831 rhn-package-441833 rhn-package-441834 rhn-package-441836 rhn-package-441837 rhn-package-441839 rhn-package-441840 rhn-package-441843 rhn-package-441845 rhn-package-441847 rhn-package-441848 rhn-package-441850 rhn-package-441851 rhn-package-441854 rhn-package-441855 rhn-package-441856 rhn-package-441857 rhn-package-441858 rhn-package-441859 rhn-package-441860 rhn-package-441861 rhn-package-441862 rhn-package-441863 rhn-package-441866 rhn-package-441867 rhn-package-441869 rhn-package-441870 rhn-package-441871 rhn-package-441872 rhn-package-441873 rhn-package-441874 rhn-package-441875 rhn-package-441899 rhn-package-441900 rhn-package-441901 rhn-package-441902 rhn-package-441903 rhn-package-441907 rhn-package-441908 rhn-package-441910 rhn-package-441911 rhn-package-441914 rhn-package-441915 rhn-package-441920 rhn-package-441924 rhn-package-441927 rhn-package-441928 rhn-package-441929 rhn-package-441931 rhn-package-441932 rhn-package-441933 rhn-package-441934 rhn-package-441935 rhn-package-441936 rhn-package-441941 rhn-package-441944 rhn-package-441945 rhn-package-441946 rhn-package-441947 rhn-package-441948 rhn-package-441949 rhn-package-441950 rhn-package-441951 rhn-package-441952 rhn-package-441953 rhn-package-441954 rhn-package-441955 rhn-package-441956 rhn-package-441957 rhn-package-441958 rhn-package-441959 rhn-package-441960 rhn-package-441961 rhn-package-441962 rhn-package-441963 rhn-package-441964 rhn-package-441965 rhn-package-441966 rhn-package-441967 rhn-package-441968 rhn-package-441969 rhn-package-441970 rhn-package-441971 rhn-package-441972 rhn-package-441973 rhn-package-441974 rhn-package-441975 rhn-package-441976 rhn-package-441977 rhn-package-441978 rhn-package-441979 rhn-package-441980 rhn-package-441981 rhn-package-441982 rhn-package-441983 rhn-package-441984 rhn-package-441985 rhn-package-441986 rhn-package-441987 rhn-package-441988 rhn-package-441989 rhn-package-441991 rhn-package-441992 rhn-package-441994 rhn-package-441995 rhn-package-441996 rhn-package-441997 rhn-package-441998 rhn-package-441999 rhn-package-442000 rhn-package-442001 rhn-package-442002 rhn-package-442003 rhn-package-442004 rhn-package-442005 rhn-package-442006 rhn-package-442007 rhn-package-442008 rhn-package-442009 rhn-package-442010 rhn-package-442011 rhn-package-442012 rhn-package-442013 rhn-package-442014 rhn-package-442015 rhn-package-442016 rhn-package-442017 rhn-package-442018 rhn-package-442019 rhn-package-442020 rhn-package-442021 rhn-package-442022 rhn-package-442023 rhn-package-442024 rhn-package-442025 rhn-package-442026 rhn-package-442027 rhn-package-442028 rhn-package-442029 rhn-package-442030 rhn-package-442031 rhn-package-442032 rhn-package-442033 rhn-package-442034 rhn-package-442035 rhn-package-442036 rhn-package-442037 rhn-package-442038 rhn-package-442039 rhn-package-442040 rhn-package-442041 rhn-package-442042 rhn-package-442043 rhn-package-442044 rhn-package-442045 rhn-package-442046 rhn-package-442047 rhn-package-442048 rhn-package-442049 rhn-package-442050 rhn-package-442051 rhn-package-442052 rhn-package-442053 rhn-package-442054 rhn-package-442055 rhn-package-442056 rhn-package-442057 rhn-package-442058 rhn-package-442059 rhn-package-442060 rhn-package-442061 rhn-package-442062 rhn-package-442063 rhn-package-442064 rhn-package-442065 rhn-package-442066 rhn-package-442067 rhn-package-442068 rhn-package-442069 rhn-package-442144 rhn-package-442145 rhn-package-442146 rhn-package-442147 rhn-package-442148 rhn-package-442149 rhn-package-442150 rhn-package-442151 rhn-package-442152 rhn-package-442153 rhn-package-442154 rhn-package-442155 rhn-package-442156 rhn-package-442157 rhn-package-442158 rhn-package-442159 rhn-package-442160 rhn-package-442161 rhn-package-442162 rhn-package-442163 rhn-package-442164 rhn-package-442165 rhn-package-442166 rhn-package-442169 rhn-package-442170 rhn-package-442171 rhn-package-442172 rhn-package-442173 rhn-package-442174 rhn-package-442175 rhn-package-442176 rhn-package-442177 rhn-package-442178 rhn-package-442179 rhn-package-442180 rhn-package-442181 rhn-package-442182 rhn-package-442183 rhn-package-442184 rhn-package-442185 rhn-package-442186 rhn-package-442187 rhn-package-442188 rhn-package-442189 rhn-package-442190 rhn-package-442191 rhn-package-442192 rhn-package-442193 rhn-package-442194 rhn-package-442195 rhn-package-442196 rhn-package-442197 rhn-package-442198 rhn-package-442199 rhn-package-442200 rhn-package-442201 rhn-package-442202 rhn-package-442203 rhn-package-442204 rhn-package-442205 rhn-package-442206 rhn-package-442207 rhn-package-442208 rhn-package-442209 rhn-package-442211 rhn-package-442212 rhn-package-442213 rhn-package-442214 rhn-package-442215 rhn-package-442216 rhn-package-442217 rhn-package-442218 rhn-package-442219 rhn-package-442220 rhn-package-442221 rhn-package-442222 rhn-package-442223 rhn-package-442224 rhn-package-442225 rhn-package-442226 rhn-package-442227 rhn-package-442228 rhn-package-442229 rhn-package-442230 rhn-package-442231 rhn-package-442232 rhn-package-442233 rhn-package-442234 rhn-package-442235 rhn-package-442236 rhn-package-442237 rhn-package-442245 rhn-package-442246 rhn-package-442247 rhn-package-442248 rhn-package-442249 rhn-package-442250 rhn-package-442251 rhn-package-442252 rhn-package-442253 rhn-package-442254 rhn-package-442255 rhn-package-442256 rhn-package-442257 rhn-package-442258 rhn-package-442259 rhn-package-442260 rhn-package-442261 rhn-package-442262 rhn-package-442263 rhn-package-442264 rhn-package-442265 rhn-package-442266 rhn-package-442267 rhn-package-442268 rhn-package-442269 rhn-package-442270 rhn-package-442271 rhn-package-442272 rhn-package-442273 rhn-package-442274 rhn-package-442275 rhn-package-442276 rhn-package-442277 rhn-package-442278 rhn-package-442279 rhn-package-442280 rhn-package-442281 rhn-package-442282 rhn-package-442283 rhn-package-442284 rhn-package-442285 rhn-package-442287 rhn-package-442288 rhn-package-442289 rhn-package-442290 rhn-package-442291 rhn-package-442292 rhn-package-442293 rhn-package-442294 rhn-package-442295 rhn-package-442296 rhn-package-442297 rhn-package-442298 rhn-package-442299 rhn-package-442300 rhn-package-442301 rhn-package-442302 rhn-package-442303 rhn-package-442304 rhn-package-442305 rhn-package-442306 rhn-package-442307 rhn-package-442308 rhn-package-442309 rhn-package-442311 rhn-package-442312 rhn-package-442313 rhn-package-442314 rhn-package-442315 rhn-package-442316 rhn-package-442317 rhn-package-442318 rhn-package-442319 rhn-package-442320 rhn-package-442321 rhn-package-442322 rhn-package-442323 rhn-package-442324 rhn-package-442325 rhn-package-442326 rhn-package-442327 rhn-package-442328 rhn-package-442329 rhn-package-442330 rhn-package-442331 rhn-package-442332 rhn-package-442333 rhn-package-442334 rhn-package-442335 rhn-package-442336 rhn-package-442337 rhn-package-442338 rhn-package-442339 rhn-package-442340 rhn-package-442341 rhn-package-442342 rhn-package-442343 rhn-package-442344 rhn-package-442345 rhn-package-442346 rhn-package-442347 rhn-package-442348 rhn-package-442349 rhn-package-442350 rhn-package-442351 rhn-package-442352 rhn-package-442353 rhn-package-442355 rhn-package-442356 rhn-package-442357 rhn-package-442358 rhn-package-442359 rhn-package-442360 rhn-package-442361 rhn-package-442362 rhn-package-442363 rhn-package-442364 rhn-package-442365 rhn-package-442366 rhn-package-442367 rhn-package-442368 rhn-package-442369 rhn-package-442370 rhn-package-442371 rhn-package-442372 rhn-package-442373 rhn-package-442374 rhn-package-442377 rhn-package-442378 rhn-package-442379 rhn-package-442380 rhn-package-442381 rhn-package-442383 rhn-package-442384 rhn-package-442386 rhn-package-442387 rhn-package-442388 rhn-package-442389 rhn-package-442390 rhn-package-442391 rhn-package-442392 rhn-package-442393 rhn-package-442394 rhn-package-442395 rhn-package-442396 rhn-package-442397 rhn-package-442398 rhn-package-442399 rhn-package-442400 rhn-package-442401 rhn-package-442402 rhn-package-442403 rhn-package-442404 rhn-package-442405 rhn-package-442406 rhn-package-442408 rhn-package-442409 rhn-package-442410 rhn-package-442411 rhn-package-442412 rhn-package-442413 rhn-package-442414 rhn-package-442415 rhn-package-442416 rhn-package-442417 rhn-package-442418 rhn-package-442419 rhn-package-442420 rhn-package-442421 rhn-package-442422 rhn-package-442423 rhn-package-442424 rhn-package-442425 rhn-package-442426 rhn-package-442427 rhn-package-442428 rhn-package-442429 rhn-package-442430 rhn-package-442431 rhn-package-442432 rhn-package-442433 rhn-package-442434 rhn-package-442435 rhn-package-442436 rhn-package-442438 rhn-package-442439 rhn-package-442440 rhn-package-442456 rhn-package-442504 rhn-package-442514 rhn-package-442517 rhn-package-442522 rhn-package-442527 rhn-package-442528 rhn-package-442530 rhn-package-442531 rhn-package-442538 rhn-package-442545 rhn-package-442548 rhn-package-443196 rhn-package-443385 rhn-package-443389 rhn-package-443392 rhn-package-443395 rhn-package-443398 rhn-package-444061 rhn-package-444062 rhn-package-444063 rhn-package-444065 rhn-package-444136 rhn-package-444143 rhn-package-444146 rhn-package-444149 rhn-package-444161 rhn-package-444210 rhn-package-444218 rhn-package-444219 rhn-package-444227 rhn-package-444232 rhn-package-444239 rhn-package-444343 rhn-package-444437 rhn-package-444440 rhn-package-444443 rhn-package-444444 rhn-package-444445 rhn-package-446646 rhn-package-446650 rhn-package-446651 rhn-package-446654 rhn-package-446656 rhn-package-446657 rhn-package-446666 rhn-package-446674 rhn-package-446676 rhn-package-446679 rhn-package-446765 rhn-package-446768 rhn-package-446769 rhn-package-446777 rhn-package-446782 rhn-package-446783 rhn-package-446845 rhn-package-446846 rhn-package-446848 rhn-package-446850 rhn-package-446853 rhn-package-446855 rhn-package-446864 rhn-package-446874 rhn-package-446889 rhn-package-446901 rhn-package-446903 rhn-package-446904 rhn-package-446907 rhn-package-446913 rhn-package-446914 rhn-package-447099 rhn-package-447104 rhn-package-447118 rhn-package-447131 rhn-package-447132 rhn-package-447144 rhn-package-447146 rhn-package-447263 rhn-package-447268 rhn-package-447422 rhn-package-447441 rhn-package-447633 rhn-package-447636 rhn-package-447642 rhn-package-447645 rhn-package-447647 rhn-package-447654 rhn-package-447659 rhn-package-447792 rhn-package-447795 rhn-package-447796 rhn-package-447799 rhn-package-447801 rhn-package-447803 rhn-package-447814 rhn-package-447819 rhn-package-448450 rhn-package-448461 rhn-package-448465 rhn-package-448470 rhn-package-448476 rhn-package-448501 rhn-package-448503 rhn-package-448505 rhn-package-448507 rhn-package-448509 rhn-package-448513 rhn-package-448526 rhn-package-448531 rhn-package-448537 rhn-package-448539 rhn-package-448542 rhn-package-448549 rhn-package-448550 rhn-package-448553 rhn-package-448556 rhn-package-448558 rhn-package-448568 rhn-package-448573 rhn-package-448581 rhn-package-448582 rhn-package-448584 rhn-package-448585 rhn-package-448587 rhn-package-448590 rhn-package-448596 rhn-package-448599 rhn-package-448602 rhn-package-448606 rhn-package-448610 rhn-package-448617 rhn-package-448625 rhn-package-448626 rhn-package-448627 rhn-package-448630 rhn-package-448663 rhn-package-448665 rhn-package-448666 rhn-package-448672 rhn-package-448688 rhn-package-448691 rhn-package-448694 rhn-package-448697 rhn-package-448699 rhn-package-448713 rhn-package-448733 rhn-package-448745 rhn-package-448748 rhn-package-448749 rhn-package-448756 rhn-package-448765 rhn-package-448771 rhn-package-448783 rhn-package-448835 rhn-package-449054 rhn-package-449057 rhn-package-449058 rhn-package-449061 rhn-package-449068 rhn-package-449069 rhn-package-449070 rhn-package-449071 rhn-package-449072 rhn-package-449073 rhn-package-449074 rhn-package-449075 rhn-package-449076 rhn-package-449077 rhn-package-449078 rhn-package-449079 rhn-package-449080 rhn-package-449081 rhn-package-449082 rhn-package-449083 rhn-package-449084 rhn-package-449085 rhn-package-449086 rhn-package-449087 rhn-package-449088 rhn-package-449089 rhn-package-449090 rhn-package-449132 rhn-package-449133 rhn-package-449134 rhn-package-449136 rhn-package-449137 rhn-package-449143 rhn-package-449144 rhn-package-449154 rhn-package-449354 rhn-package-449705 rhn-package-449709 rhn-package-449712 rhn-package-449713 rhn-package-449714 rhn-package-449718 rhn-package-449720 rhn-package-449728 rhn-package-449729 rhn-package-449733 rhn-package-449738 rhn-package-449742 rhn-package-449945 rhn-package-449947 rhn-package-449950 rhn-package-449952 rhn-package-449956 rhn-package-449958 rhn-package-449959 rhn-package-449960 rhn-package-449961 rhn-package-449967 rhn-package-449972 rhn-package-450117 rhn-package-450120 rhn-package-450122 rhn-package-450130 rhn-package-450131 rhn-package-450132 rhn-package-450133 rhn-package-450134 rhn-package-450135 rhn-package-450145 rhn-package-450161 rhn-package-450164 rhn-package-450168 rhn-package-450207 rhn-package-450208 rhn-package-450220 rhn-package-450263 rhn-package-450264 rhn-package-450265 rhn-package-450275 rhn-package-450284 rhn-package-450286 rhn-package-450302 rhn-package-450306 rhn-package-450321 rhn-package-450327 rhn-package-450329 rhn-package-450333 rhn-package-450395 rhn-package-450397 rhn-package-450401 rhn-package-450404 rhn-package-450405 rhn-package-450409 rhn-package-450411 rhn-package-450417 rhn-package-450420 rhn-package-450421 rhn-package-450424 rhn-package-450496 rhn-package-450500 rhn-package-450502 rhn-package-450505 rhn-package-450509 rhn-package-450849 rhn-package-450851 rhn-package-450854 rhn-package-450858 rhn-package-450860 rhn-package-450862 rhn-package-450865 rhn-package-450866 rhn-package-450867 rhn-package-450868 rhn-package-450869 rhn-package-450991 rhn-package-450995 rhn-package-450997 rhn-package-450999 rhn-package-451001 rhn-package-451002 rhn-package-451116 rhn-package-451122 rhn-package-451137 rhn-package-451138 rhn-package-451144 rhn-package-451145 rhn-package-451153 rhn-package-451160 rhn-package-451162 rhn-package-451166 rhn-package-451175 rhn-package-451180 rhn-package-451181 rhn-package-451185 rhn-package-451186 rhn-package-451190 rhn-package-451193 rhn-package-451196 rhn-package-451199 rhn-package-451487 rhn-package-451490 rhn-package-451493 rhn-package-451495 rhn-package-451499 rhn-package-451502 rhn-package-451505 rhn-package-451510 rhn-package-451511 rhn-package-451518 rhn-package-451524 rhn-package-451526 rhn-package-451531 rhn-package-451546 rhn-package-451548 rhn-package-453866 rhn-package-453871 rhn-package-453875 rhn-package-453881 rhn-package-453884 rhn-package-454062 rhn-package-454321 rhn-package-454325 rhn-package-454452 rhn-package-454454 rhn-package-454455 rhn-package-454459 rhn-package-454460 rhn-package-454472 rhn-package-454474 rhn-package-454483 rhn-package-454487 rhn-package-454492 rhn-package-454497 rhn-package-454593 rhn-package-454595 rhn-package-454596 rhn-package-454600 rhn-package-454603 rhn-package-454634 rhn-package-454769 rhn-package-454772 rhn-package-454775 rhn-package-454780 rhn-package-454784 rhn-package-454786 rhn-package-454798 rhn-package-454803 rhn-package-454950 rhn-package-454955 rhn-package-454956 rhn-package-454958 rhn-package-454963 rhn-package-454964 rhn-package-454975 rhn-package-454976 rhn-package-454980 rhn-package-454982 rhn-package-454989 rhn-package-454990 rhn-package-455150 rhn-package-455172 rhn-package-455222 rhn-package-455227 rhn-package-455229 rhn-package-455304 rhn-package-455315 rhn-package-455339 rhn-package-455353 rhn-package-455354 rhn-package-455602 rhn-package-455604 rhn-package-455607 rhn-package-455611 rhn-package-455615 rhn-package-455700 rhn-package-455703 rhn-package-455704 rhn-package-455705 rhn-package-455772 rhn-package-455773 rhn-package-455774 rhn-package-455777 rhn-package-455786 rhn-package-455965 rhn-package-456000 rhn-package-456005 rhn-package-456008 rhn-package-456009 rhn-package-456014 rhn-package-456017 rhn-package-456021 rhn-package-456029 rhn-package-456228 rhn-package-456232 rhn-package-456236 rhn-package-456237 rhn-package-456242 rhn-package-456248 rhn-package-456257 rhn-package-456261 rhn-package-456267 rhn-package-456268 rhn-package-456272 rhn-package-456342 rhn-package-456344 rhn-package-456347 rhn-package-456349 rhn-package-456412 rhn-package-456432 rhn-package-456449 rhn-package-456452 rhn-package-456455 rhn-package-456460 rhn-package-456461 rhn-package-456533 rhn-package-456534 rhn-package-456539 rhn-package-456543 rhn-package-456544 rhn-package-456547 rhn-package-456552 rhn-package-456559 rhn-package-457416 rhn-package-457417 rhn-package-457419 rhn-package-457427 rhn-package-457428 rhn-package-458030 rhn-package-458031 rhn-package-458032 rhn-package-458034 rhn-package-458036 rhn-package-458159 rhn-package-458160 rhn-package-458177 rhn-package-458184 rhn-package-458185 rhn-package-458381 rhn-package-458383 rhn-package-458384 rhn-package-458388 rhn-package-458390 rhn-package-458393 rhn-package-458394 rhn-package-458398 rhn-package-458401 rhn-package-458402 rhn-package-458406 rhn-package-458409 rhn-package-458411 rhn-package-458416 rhn-package-458419 rhn-package-458423 rhn-package-458427 rhn-package-458430 rhn-package-458439 rhn-package-458586 rhn-package-458588 rhn-package-458589 rhn-package-458590 rhn-package-458595 rhn-package-458597 rhn-package-458598 rhn-package-458603 rhn-package-458607 rhn-package-458613 rhn-package-458616 rhn-package-458619 rhn-package-458621 rhn-package-458626 rhn-package-458631 rhn-package-458632 rhn-package-458678 rhn-package-458679 rhn-package-458684 rhn-package-458797 rhn-package-458871 rhn-package-458877 rhn-package-458882 rhn-package-458896 rhn-package-458921 rhn-package-458938 rhn-package-458940 rhn-package-458941 rhn-package-458942 rhn-package-458949 rhn-package-458954 rhn-package-458961 rhn-package-458963 rhn-package-458965 rhn-package-458966 rhn-package-458969 rhn-package-458977 rhn-package-458990 rhn-package-458991 rhn-package-459230 rhn-package-459235 rhn-package-459236 rhn-package-459237 rhn-package-459242 rhn-package-459255 rhn-package-459256 rhn-package-459257 rhn-package-459258 rhn-package-459259 rhn-package-459260 rhn-package-459261 rhn-package-459262 rhn-package-459263 rhn-package-459265 rhn-package-459304 rhn-package-459412 rhn-package-459413 rhn-package-459421 rhn-package-459428 rhn-package-459443 rhn-package-459445 rhn-package-459490 rhn-package-459492 rhn-package-459493 rhn-package-459496 rhn-package-459807 rhn-package-459811 rhn-package-459814 rhn-package-459815 rhn-package-459817 rhn-package-459818 rhn-package-459825 rhn-package-459837 rhn-package-459877 rhn-package-459883 rhn-package-459892 rhn-package-459893 rhn-package-459896 rhn-package-459902 rhn-package-459903 rhn-package-459909 rhn-package-459911 rhn-package-459913 rhn-package-459915 rhn-package-459929 rhn-package-459933 rhn-package-459935 rhn-package-459941 rhn-package-459942 rhn-package-460232 rhn-package-460241 rhn-package-460242 rhn-package-460252 rhn-package-460253 rhn-package-460254 rhn-package-460268 rhn-package-460269 rhn-package-460278 rhn-package-460293 rhn-package-460302 rhn-package-460303 rhn-package-460307 rhn-package-460322 rhn-package-460424 rhn-package-460767 rhn-package-463500 rhn-package-463507 rhn-package-463513 rhn-package-463520 rhn-package-463525 rhn-package-463532 rhn-package-463537 rhn-package-463595 rhn-package-463596 rhn-package-463605 rhn-package-463615 rhn-package-463617 rhn-package-463621 rhn-package-463629 rhn-package-463633 rhn-package-463641 rhn-package-463642 rhn-package-463644 rhn-package-464556 rhn-package-464583 rhn-package-464594 rhn-package-464598 rhn-package-464737 rhn-package-464752 rhn-package-464757 rhn-package-464767 rhn-package-464807 rhn-package-464808 rhn-package-464810 rhn-package-464817 rhn-package-464818 rhn-package-464820 rhn-package-464853 rhn-package-464855 rhn-package-464858 rhn-package-464859 rhn-package-464860 rhn-package-464872 rhn-package-464874 rhn-package-464885 rhn-package-465046 rhn-package-465047 rhn-package-465050 rhn-package-465052 rhn-package-465054 rhn-package-465056 rhn-package-465063 rhn-package-465078 rhn-package-465091 rhn-package-465093 rhn-package-465095 rhn-package-465098 rhn-package-465099 rhn-package-465101 rhn-package-465104 rhn-package-465108 rhn-package-465110 rhn-package-465114 rhn-package-465121 rhn-package-465175 rhn-package-465197 rhn-package-465199 rhn-package-465204 rhn-package-465221 rhn-package-465413 rhn-package-465416 rhn-package-465418 rhn-package-465419 rhn-package-465490 rhn-package-465491 rhn-package-465492 rhn-package-465493 rhn-package-465501 rhn-package-465502 rhn-package-465615 rhn-package-465620 rhn-package-465622 rhn-package-465896 rhn-package-465900 rhn-package-465905 rhn-package-465908 rhn-package-465909 rhn-package-465928 rhn-package-465931 rhn-package-465933 rhn-package-465940 rhn-package-465941 rhn-package-465950 rhn-package-465951 rhn-package-465958 rhn-package-466116 rhn-package-466117 rhn-package-466118 rhn-package-466121 rhn-package-466122 rhn-package-466136 rhn-package-466150 rhn-package-466160 rhn-package-466161 rhn-package-466162 rhn-package-466184 rhn-package-466483 rhn-package-466485 rhn-package-466488 rhn-package-466514 rhn-package-466584 rhn-package-466659 rhn-package-466661 rhn-package-466662 rhn-package-466665 rhn-package-466667 rhn-package-466673 rhn-package-466705 rhn-package-466706 rhn-package-466709 rhn-package-466710 rhn-package-466711 rhn-package-466721 rhn-package-466726 rhn-package-466727 rhn-package-466866 rhn-package-466875 rhn-package-466876 rhn-package-466877 rhn-package-466879 rhn-package-466891 rhn-package-466898 rhn-package-466900 rhn-package-466901 rhn-package-466902 rhn-package-466910 rhn-package-466915 rhn-package-466916 rhn-package-466922 rhn-package-466930 rhn-package-466935 rhn-package-466940 rhn-package-466948 rhn-package-467190 rhn-package-467191 rhn-package-467236 rhn-package-467249 rhn-package-467254 rhn-package-467268 rhn-package-467272 rhn-package-467273 rhn-package-467312 rhn-package-467316 rhn-package-467335 rhn-package-467342 rhn-package-467344 rhn-package-467345 rhn-package-467349 rhn-package-467355 rhn-package-467359 rhn-package-467360 rhn-package-467362 rhn-package-467363 rhn-package-467417 rhn-package-467428 rhn-package-467442 rhn-package-467445 rhn-package-467451 rhn-package-467463 rhn-package-467473 rhn-package-467489 rhn-package-467492 rhn-package-467498 rhn-package-467510 rhn-package-467568 rhn-package-467571 rhn-package-467573 rhn-package-467576 rhn-package-467581 rhn-package-467590 rhn-package-467592 rhn-package-467597 rhn-package-467599 rhn-package-467600 rhn-package-467602 rhn-package-467603 rhn-package-467609 rhn-package-467614 rhn-package-467615 rhn-package-467619 rhn-package-467621 rhn-package-467625 rhn-package-467626 rhn-package-467627 rhn-package-467628 rhn-package-467630 rhn-package-467631 rhn-package-467632 rhn-package-467642 rhn-package-467655 rhn-package-467656 rhn-package-467665 rhn-package-467935 rhn-package-467971 rhn-package-467981 rhn-package-467983 rhn-package-467984 rhn-package-467985 rhn-package-467988 rhn-package-467992 rhn-package-467993 rhn-package-467994 rhn-package-467995 rhn-package-467998 rhn-package-468005 rhn-package-468008 rhn-package-468011 rhn-package-468014 rhn-package-468016 rhn-package-468024 rhn-package-468027 rhn-package-468030 rhn-package-468031 rhn-package-468037 rhn-package-468041 rhn-package-468043 rhn-package-468048 rhn-package-468049 rhn-package-468051 rhn-package-468052 rhn-package-468054 rhn-package-468075 rhn-package-468078 rhn-package-468079 rhn-package-468080 rhn-package-468085 rhn-package-468086 rhn-package-468096 rhn-package-468107 rhn-package-468115 rhn-package-468116 rhn-package-468118 rhn-package-468119 rhn-package-468124 rhn-package-468125 rhn-package-468127 rhn-package-468129 rhn-package-468133 rhn-package-468143 rhn-package-468144 rhn-package-468145 rhn-package-468147 rhn-package-468150 rhn-package-468151 rhn-package-468152 rhn-package-468160 rhn-package-468162 rhn-package-468163 rhn-package-468171 rhn-package-468173 rhn-package-468178 rhn-package-468179 rhn-package-468180 rhn-package-468181 rhn-package-468186 rhn-package-468190 rhn-package-468198 rhn-package-468204 rhn-package-468208 rhn-package-468218 rhn-package-468222 rhn-package-468224 rhn-package-468226 rhn-package-468227 rhn-package-468236 rhn-package-468239 rhn-package-468240 rhn-package-468248 rhn-package-468256 rhn-package-468261 rhn-package-468263 rhn-package-468264 rhn-package-468265 rhn-package-468274 rhn-package-468279 rhn-package-468281 rhn-package-468283 rhn-package-468286 rhn-package-468287 rhn-package-468288 rhn-package-468297 rhn-package-468304 rhn-package-468306 rhn-package-468307 rhn-package-468323 rhn-package-468324 rhn-package-468329 rhn-package-468332 rhn-package-468334 rhn-package-468336 rhn-package-468340 rhn-package-468343 rhn-package-468350 rhn-package-468353 rhn-package-468361 rhn-package-468362 rhn-package-468364 rhn-package-468365 rhn-package-468378 rhn-package-468383 rhn-package-468384 rhn-package-468385 rhn-package-468397 rhn-package-468404 rhn-package-468405 rhn-package-468406 rhn-package-468414 rhn-package-468418 rhn-package-468419 rhn-package-468420 rhn-package-468421 rhn-package-468422 rhn-package-468425 rhn-package-468428 rhn-package-468431 rhn-package-468432 rhn-package-468433 rhn-package-468435 rhn-package-468444 rhn-package-468446 rhn-package-468454 rhn-package-468458 rhn-package-468460 rhn-package-468466 rhn-package-468467 rhn-package-468479 rhn-package-468492 rhn-package-468494 rhn-package-468498 rhn-package-468502 rhn-package-468503 rhn-package-468505 rhn-package-468509 rhn-package-468510 rhn-package-468511 rhn-package-468515 rhn-package-468517 rhn-package-468521 rhn-package-468528 rhn-package-468533 rhn-package-468541 rhn-package-468543 rhn-package-468545 rhn-package-468558 rhn-package-468563 rhn-package-468565 rhn-package-468566 rhn-package-468568 rhn-package-468569 rhn-package-468570 rhn-package-468571 rhn-package-468573 rhn-package-468578 rhn-package-468587 rhn-package-468589 rhn-package-468594 rhn-package-468607 rhn-package-468610 rhn-package-468616 rhn-package-468617 rhn-package-468620 rhn-package-468621 rhn-package-468622 rhn-package-468624 rhn-package-468627 rhn-package-468631 rhn-package-468637 rhn-package-468638 rhn-package-468652 rhn-package-468654 rhn-package-468656 rhn-package-468658 rhn-package-468667 rhn-package-468669 rhn-package-468677 rhn-package-468678 rhn-package-468688 rhn-package-468693 rhn-package-468705 rhn-package-468706 rhn-package-468711 rhn-package-468712 rhn-package-468716 rhn-package-468722 rhn-package-468723 rhn-package-468724 rhn-package-468725 rhn-package-468728 rhn-package-468743 rhn-package-468750 rhn-package-468766 rhn-package-468767 rhn-package-468771 rhn-package-468779 rhn-package-468782 rhn-package-468793 rhn-package-468798 rhn-package-468800 rhn-package-468801 rhn-package-468808 rhn-package-468809 rhn-package-468813 rhn-package-468819 rhn-package-468820 rhn-package-468824 rhn-package-468827 rhn-package-468829 rhn-package-468832 rhn-package-468833 rhn-package-468838 rhn-package-468846 rhn-package-468849 rhn-package-468851 rhn-package-468856 rhn-package-468862 rhn-package-468867 rhn-package-468868 rhn-package-468883 rhn-package-468884 rhn-package-468886 rhn-package-468888 rhn-package-468893 rhn-package-468894 rhn-package-468895 rhn-package-468902 rhn-package-468904 rhn-package-468910 rhn-package-468923 rhn-package-468936 rhn-package-468937 rhn-package-468938 rhn-package-468945 rhn-package-468947 rhn-package-468949 rhn-package-468953 rhn-package-468957 rhn-package-468960 rhn-package-468961 rhn-package-468963 rhn-package-468965 rhn-package-468969 rhn-package-468971 rhn-package-468973 rhn-package-468978 rhn-package-468982 rhn-package-468983 rhn-package-468988 rhn-package-469002 rhn-package-469008 rhn-package-469016 rhn-package-469019 rhn-package-469026 rhn-package-469031 rhn-package-469032 rhn-package-469033 rhn-package-469041 rhn-package-469047 rhn-package-469048 rhn-package-469049 rhn-package-469051 rhn-package-469064 rhn-package-469070 rhn-package-469071 rhn-package-469073 rhn-package-469075 rhn-package-469076 rhn-package-469078 rhn-package-469079 rhn-package-469080 rhn-package-469084 rhn-package-469086 rhn-package-469087 rhn-package-469089 rhn-package-469092 rhn-package-469095 rhn-package-469097 rhn-package-469100 rhn-package-469101 rhn-package-469104 rhn-package-469106 rhn-package-469109 rhn-package-469114 rhn-package-469115 rhn-package-469117 rhn-package-469126 rhn-package-469127 rhn-package-469144 rhn-package-469145 rhn-package-469146 rhn-package-469150 rhn-package-469152 rhn-package-469172 rhn-package-469177 rhn-package-469178 rhn-package-469179 rhn-package-469180 rhn-package-469184 rhn-package-469188 rhn-package-469190 rhn-package-469195 rhn-package-469197 rhn-package-469203 rhn-package-469205 rhn-package-469221 rhn-package-469226 rhn-package-469228 rhn-package-469230 rhn-package-469232 rhn-package-469233 rhn-package-469237 rhn-package-469238 rhn-package-469244 rhn-package-469246 rhn-package-469264 rhn-package-469270 rhn-package-469277 rhn-package-469283 rhn-package-469284 rhn-package-469286 rhn-package-469289 rhn-package-469292 rhn-package-469293 rhn-package-469297 rhn-package-469306 rhn-package-469316 rhn-package-469317 rhn-package-469320 rhn-package-469322 rhn-package-469326 rhn-package-469327 rhn-package-469329 rhn-package-469331 rhn-package-469335 rhn-package-469336 rhn-package-469343 rhn-package-469344 rhn-package-469345 rhn-package-469349 rhn-package-469350 rhn-package-469366 rhn-package-469372 rhn-package-469375 rhn-package-469377 rhn-package-469378 rhn-package-469380 rhn-package-469381 rhn-package-469382 rhn-package-469385 rhn-package-469388 rhn-package-469391 rhn-package-469397 rhn-package-469405 rhn-package-469411 rhn-package-469412 rhn-package-469417 rhn-package-469421 rhn-package-469426 rhn-package-469427 rhn-package-469431 rhn-package-469432 rhn-package-469434 rhn-package-469436 rhn-package-469441 rhn-package-469442 rhn-package-469444 rhn-package-469450 rhn-package-469453 rhn-package-469459 rhn-package-469460 rhn-package-469470 rhn-package-469472 rhn-package-469474 rhn-package-469477 rhn-package-469478 rhn-package-469482 rhn-package-469487 rhn-package-469490 rhn-package-469492 rhn-package-469493 rhn-package-469495 rhn-package-469506 rhn-package-469509 rhn-package-469511 rhn-package-469518 rhn-package-469525 rhn-package-469526 rhn-package-469527 rhn-package-469530 rhn-package-469531 rhn-package-469533 rhn-package-469537 rhn-package-469544 rhn-package-469547 rhn-package-469551 rhn-package-469555 rhn-package-469556 rhn-package-469558 rhn-package-469560 rhn-package-469562 rhn-package-469575 rhn-package-469581 rhn-package-469587 rhn-package-469590 rhn-package-469591 rhn-package-469603 rhn-package-469609 rhn-package-469613 rhn-package-469620 rhn-package-469623 rhn-package-469625 rhn-package-469626 rhn-package-469628 rhn-package-469629 rhn-package-469633 rhn-package-469637 rhn-package-469638 rhn-package-469640 rhn-package-469644 rhn-package-469645 rhn-package-469646 rhn-package-469652 rhn-package-469659 rhn-package-469662 rhn-package-469668 rhn-package-469670 rhn-package-469672 rhn-package-469676 rhn-package-469679 rhn-package-469681 rhn-package-469687 rhn-package-469690 rhn-package-469700 rhn-package-469703 rhn-package-469704 rhn-package-469707 rhn-package-469709 rhn-package-469712 rhn-package-469719 rhn-package-469725 rhn-package-469741 rhn-package-469747 rhn-package-469749 rhn-package-469752 rhn-package-469755 rhn-package-469756 rhn-package-469761 rhn-package-469762 rhn-package-469769 rhn-package-469771 rhn-package-469772 rhn-package-469776 rhn-package-469777 rhn-package-469785 rhn-package-469790 rhn-package-469791 rhn-package-469795 rhn-package-469796 rhn-package-469797 rhn-package-469801 rhn-package-469803 rhn-package-469804 rhn-package-469805 rhn-package-469811 rhn-package-469814 rhn-package-469817 rhn-package-469824 rhn-package-469834 rhn-package-469836 rhn-package-469840 rhn-package-469844 rhn-package-469845 rhn-package-469856 rhn-package-469857 rhn-package-469870 rhn-package-469872 rhn-package-469878 rhn-package-469884 rhn-package-469886 rhn-package-469890 rhn-package-469897 rhn-package-469911 rhn-package-469912 rhn-package-469916 rhn-package-469918 rhn-package-469920 rhn-package-469924 rhn-package-469925 rhn-package-469926 rhn-package-469929 rhn-package-469944 rhn-package-469950 rhn-package-469960 rhn-package-469962 rhn-package-469963 rhn-package-469965 rhn-package-469969 rhn-package-469972 rhn-package-469975 rhn-package-469977 rhn-package-469980 rhn-package-469981 rhn-package-469984 rhn-package-469985 rhn-package-469989 rhn-package-469991 rhn-package-469994 rhn-package-469995 rhn-package-470001 rhn-package-470002 rhn-package-470016 rhn-package-470017 rhn-package-470019 rhn-package-470022 rhn-package-470027 rhn-package-470028 rhn-package-470029 rhn-package-470031 rhn-package-470036 rhn-package-470038 rhn-package-470042 rhn-package-470043 rhn-package-470045 rhn-package-470053 rhn-package-470067 rhn-package-470072 rhn-package-470076 rhn-package-470082 rhn-package-470088 rhn-package-470090 rhn-package-470091 rhn-package-470094 rhn-package-470099 rhn-package-470118 rhn-package-470123 rhn-package-470124 rhn-package-470130 rhn-package-470133 rhn-package-470134 rhn-package-470140 rhn-package-470148 rhn-package-470160 rhn-package-470162 rhn-package-470163 rhn-package-470168 rhn-package-470171 rhn-package-470174 rhn-package-470176 rhn-package-470182 rhn-package-470183 rhn-package-470191 rhn-package-470195 rhn-package-470196 rhn-package-470197 rhn-package-470201 rhn-package-470203 rhn-package-470205 rhn-package-470206 rhn-package-470208 rhn-package-470209 rhn-package-470214 rhn-package-470217 rhn-package-470221 rhn-package-470223 rhn-package-470228 rhn-package-470231 rhn-package-470235 rhn-package-470237 rhn-package-470239 rhn-package-470240 rhn-package-470241 rhn-package-470242 rhn-package-470245 rhn-package-470246 rhn-package-470251 rhn-package-470253 rhn-package-470259 rhn-package-470262 rhn-package-470272 rhn-package-470285 rhn-package-470286 rhn-package-470292 rhn-package-470305 rhn-package-470307 rhn-package-470311 rhn-package-470319 rhn-package-470320 rhn-package-470325 rhn-package-470328 rhn-package-470329 rhn-package-470330 rhn-package-470331 rhn-package-470335 rhn-package-470353 rhn-package-470356 rhn-package-470365 rhn-package-470370 rhn-package-470373 rhn-package-470375 rhn-package-470380 rhn-package-470392 rhn-package-470398 rhn-package-470400 rhn-package-470401 rhn-package-470412 rhn-package-470418 rhn-package-470426 rhn-package-470428 rhn-package-470431 rhn-package-470432 rhn-package-470444 rhn-package-470450 rhn-package-470452 rhn-package-470468 rhn-package-470475 rhn-package-470479 rhn-package-470485 rhn-package-470487 rhn-package-470496 rhn-package-470503 rhn-package-470505 rhn-package-470507 rhn-package-470510 rhn-package-470513 rhn-package-470536 rhn-package-470547 rhn-package-470561 rhn-package-470562 rhn-package-470563 rhn-package-470565 rhn-package-470572 rhn-package-470942 rhn-package-471599 rhn-package-471604 rhn-package-471605 rhn-package-471614 rhn-package-471618 rhn-package-471621 rhn-package-471623 rhn-package-471640 rhn-package-471641 rhn-package-471649 rhn-package-471651 rhn-package-471656 rhn-package-471665 rhn-package-471670 rhn-package-471955 rhn-package-472047 rhn-package-472049 rhn-package-472055 rhn-package-472093 rhn-package-472098 rhn-package-472099 rhn-package-472100 rhn-package-472102 rhn-package-472104 rhn-package-472124 rhn-package-472125 rhn-package-472210 rhn-package-472215 rhn-package-472216 rhn-package-472229 rhn-package-472233 rhn-package-472237 rhn-package-472245 rhn-package-472257 rhn-package-472266 rhn-package-472286 rhn-package-472299 rhn-package-472427 rhn-package-472457 rhn-package-472548 rhn-package-472622 rhn-package-472624 rhn-package-472677 rhn-package-472685 rhn-package-472712 rhn-package-472725 rhn-package-472727 rhn-package-472732 rhn-package-472773 rhn-package-472778 rhn-package-472781 rhn-package-472782 rhn-package-472783 rhn-package-472784 rhn-package-472797 rhn-package-474746 rhn-package-474750 rhn-package-474751 rhn-package-475007 rhn-package-475009 rhn-package-475011 rhn-package-475012 rhn-package-475019 rhn-package-475020 rhn-package-475100 rhn-package-475106 rhn-package-475107 rhn-package-475115 rhn-package-475128 rhn-package-475130 rhn-package-475132 rhn-package-475133 rhn-package-475143 rhn-package-475225 rhn-package-475226 rhn-package-475232 rhn-package-475266 rhn-package-475267 rhn-package-475268 rhn-package-475269 rhn-package-475272 rhn-package-475283 rhn-package-475285 rhn-package-475314 rhn-package-475320 rhn-package-475327 rhn-package-475340 rhn-package-475352 rhn-package-475359 rhn-package-475376 rhn-package-475937 rhn-package-475938 rhn-package-475939 rhn-package-475940 rhn-package-476031 rhn-package-476032 rhn-package-476033 rhn-package-476035 rhn-package-476041 rhn-package-476043 rhn-package-476045 rhn-package-476046 rhn-package-476048 rhn-package-476051 rhn-package-476068 rhn-package-476088 rhn-package-476089 rhn-package-476091 rhn-package-476092 rhn-package-476093 rhn-package-476095 rhn-package-476097 rhn-package-476098 rhn-package-476105 rhn-package-476252 rhn-package-476258 rhn-package-476260 rhn-package-476262 rhn-package-476263 rhn-package-476535 rhn-package-476537 rhn-package-476538 rhn-package-476546 rhn-package-476547 rhn-package-476564 rhn-package-476565 rhn-package-476570 rhn-package-476573 rhn-package-476582 rhn-package-476595 rhn-package-476598 rhn-package-476602 rhn-package-476604 rhn-package-476610 rhn-package-476612 rhn-package-476624 rhn-package-476625 rhn-package-476637 rhn-package-476646 rhn-package-476647 rhn-package-476649 rhn-package-476655 rhn-package-476657 rhn-package-476660 rhn-package-476664 rhn-package-476670 rhn-package-476677 rhn-package-476685 rhn-package-476687 rhn-package-476689 rhn-package-476948 rhn-package-476950 rhn-package-477036 rhn-package-477037 rhn-package-477039 rhn-package-477043 rhn-package-477052 rhn-package-477056 rhn-package-477057 rhn-package-477069 rhn-package-477077 rhn-package-477082 rhn-package-477087 rhn-package-477093 rhn-package-477095 rhn-package-477097 rhn-package-477101 rhn-package-477105 rhn-package-477106 rhn-package-477109 rhn-package-477110 rhn-package-477111 rhn-package-477113 rhn-package-477129 rhn-package-477140 rhn-package-477283 rhn-package-477286 rhn-package-477294 rhn-package-477302 rhn-package-477315 rhn-package-477323 rhn-package-477365 rhn-package-477366 rhn-package-477368 rhn-package-477369 rhn-package-477370 rhn-package-477376 rhn-package-477379 rhn-package-477397 rhn-package-477399 rhn-package-477400 rhn-package-477404 rhn-package-477407 rhn-package-477415 rhn-package-477416 rhn-package-477418 rhn-package-477420 rhn-package-477422 rhn-package-477425 rhn-package-477529 rhn-package-477530 rhn-package-477532 rhn-package-477540 rhn-package-477544 rhn-package-477546 rhn-package-477554 rhn-package-477652 rhn-package-477656 rhn-package-477657 rhn-package-477666 rhn-package-477667 rhn-package-477676 rhn-package-477678 rhn-package-477684 rhn-package-477692 rhn-package-477695 rhn-package-477701 rhn-package-477707 rhn-package-477710 rhn-package-477740 rhn-package-477745 rhn-package-477746 rhn-package-477747 rhn-package-477757 rhn-package-477778 rhn-package-477779 rhn-package-477781 rhn-package-477785 rhn-package-477803 rhn-package-477810 rhn-package-477851 rhn-package-477853 rhn-package-478144 rhn-package-478145 rhn-package-478146 rhn-package-478148 rhn-package-478150 rhn-package-478159 rhn-package-478160 rhn-package-478181 rhn-package-478184 rhn-package-478190 rhn-package-478194 rhn-package-478195 rhn-package-478199 rhn-package-478200 rhn-package-478207 rhn-package-478212 rhn-package-478213 rhn-package-478218 rhn-package-478220 rhn-package-478221 rhn-package-478222 rhn-package-478224 rhn-package-478226 rhn-package-478246 rhn-package-478247 rhn-package-478253 rhn-package-478262 rhn-package-478264 rhn-package-478392 rhn-package-478394 rhn-package-478396 rhn-package-478403 rhn-package-478407 rhn-package-478409 rhn-package-478412 rhn-package-478482 rhn-package-478483 rhn-package-478484 rhn-package-478489 rhn-package-478496 rhn-package-478497 rhn-package-478565 rhn-package-478602 rhn-package-478603 rhn-package-478615 rhn-package-478616 rhn-package-478886 rhn-package-478899 rhn-package-478903 rhn-package-478904 rhn-package-478911 rhn-package-478913 rhn-package-478916 rhn-package-478924 rhn-package-479003 rhn-package-479005 rhn-package-479007 rhn-package-479013 rhn-package-479015 rhn-package-479021 rhn-package-479022 rhn-package-479032 rhn-package-479046 rhn-package-479053 rhn-package-479054 rhn-package-479055 rhn-package-479058 rhn-package-479059 rhn-package-479062 rhn-package-479073 rhn-package-479077 rhn-package-479197 rhn-package-479199 rhn-package-479210 rhn-package-479233 rhn-package-479247 rhn-package-479284 rhn-package-479295 rhn-package-479296 rhn-package-479297 rhn-package-479298 rhn-package-479302 rhn-package-479329 rhn-package-479330 rhn-package-479333 rhn-package-479340 rhn-package-479341 rhn-package-480975 rhn-package-481049 rhn-package-481232 rhn-package-481235 rhn-package-481241 rhn-package-481251 rhn-package-481437 rhn-package-481438 rhn-package-481439 rhn-package-481446 rhn-package-481449 rhn-package-481952 rhn-package-482052 rhn-package-482059 rhn-package-482061 rhn-package-482062 rhn-package-482069 rhn-package-482071 rhn-package-482072 rhn-package-482077 rhn-package-482089 rhn-package-482091 rhn-package-482095 rhn-package-482099 rhn-package-482102 rhn-package-482104 rhn-package-482105 rhn-package-482107 rhn-package-482115 rhn-package-482118 rhn-package-482187 rhn-package-482189 rhn-package-482193 rhn-package-482195 rhn-package-482203 rhn-package-482206 rhn-package-482207 rhn-package-482225 rhn-package-482227 rhn-package-482229 rhn-package-482230 rhn-package-482239 rhn-package-482242 rhn-package-482374 rhn-package-482375 rhn-package-482382 rhn-package-482385 rhn-package-482389 rhn-package-482391 rhn-package-482393 rhn-package-482401 rhn-package-482514 rhn-package-482517 rhn-package-482546 rhn-package-482551 rhn-package-482555 rhn-package-482557 rhn-package-482559 rhn-package-482562 rhn-package-482570 rhn-package-482747 rhn-package-482790 rhn-package-482803 rhn-package-482829 rhn-package-482831 rhn-package-482835 rhn-package-482841 rhn-package-482846 rhn-package-482852 rhn-package-482854 rhn-package-482858 rhn-package-482875 rhn-package-482877 rhn-package-482879 rhn-package-482894 rhn-package-482895 rhn-package-482899 rhn-package-482900 rhn-package-482902 rhn-package-482916 rhn-package-482929 rhn-package-482931 rhn-package-482933 rhn-package-482941 rhn-package-482969 rhn-package-482970 rhn-package-482978 rhn-package-482983 rhn-package-482986 rhn-package-482990 rhn-package-482991 rhn-package-482992 rhn-package-482999 rhn-package-483005 rhn-package-483020 rhn-package-483022 rhn-package-483031 rhn-package-483048 rhn-package-483065 rhn-package-483293 rhn-package-483296 rhn-package-483304 rhn-package-483308 rhn-package-483313 rhn-package-483314 rhn-package-483326 rhn-package-483338 rhn-package-483339 rhn-package-483341 rhn-package-483342 rhn-package-483349 rhn-package-483351 rhn-package-483352 rhn-package-483356 rhn-package-483357 rhn-package-483358 rhn-package-483359 rhn-package-483360 rhn-package-483362 rhn-package-483366 rhn-package-483377 rhn-package-483379 rhn-package-483381 rhn-package-483384 rhn-package-483386 rhn-package-483387 rhn-package-483389 rhn-package-483392 rhn-package-483396 rhn-package-483407 rhn-package-483416 rhn-package-483423 rhn-package-483425 rhn-package-483427 rhn-package-483430 rhn-package-483431 rhn-package-483447 rhn-package-483497 rhn-package-483500 rhn-package-483505 rhn-package-483506 rhn-package-483507 rhn-package-483519 rhn-package-483521 rhn-package-483522 rhn-package-483523 rhn-package-483577 rhn-package-483582 rhn-package-483586 rhn-package-483593 rhn-package-483596 rhn-package-483647 rhn-package-483699 rhn-package-483706 rhn-package-483708 rhn-package-483711 rhn-package-483713 rhn-package-483721 rhn-package-483725 rhn-package-483731 rhn-package-486586 rhn-package-486587 rhn-package-486590 rhn-package-486591 rhn-package-486592 rhn-package-486602 rhn-package-486606 rhn-package-486610 rhn-package-486611 rhn-package-486612 rhn-package-486619 rhn-package-486629 rhn-package-486630 rhn-package-486693 rhn-package-486695 rhn-package-486696 rhn-package-486697 rhn-package-486711 rhn-package-486722 rhn-package-486731 rhn-package-486738 rhn-package-486740 rhn-package-486743 rhn-package-486765 rhn-package-486788 rhn-package-486935 rhn-package-486938 rhn-package-486941 rhn-package-486942 rhn-package-486947 rhn-package-486984 rhn-package-486987 rhn-package-486990 rhn-package-486991 rhn-package-487002 rhn-package-487041 rhn-package-487043 rhn-package-487044 rhn-package-487046 rhn-package-487056 rhn-package-487063 rhn-package-487065 rhn-package-487069 rhn-package-487348 rhn-package-487351 rhn-package-487353 rhn-package-487357 rhn-package-487414 rhn-package-487415 rhn-package-487416 rhn-package-487417 rhn-package-487420 rhn-package-487422 rhn-package-487426 rhn-package-487429 rhn-package-487433 rhn-package-487434 rhn-package-487439 rhn-package-487469 rhn-package-487482 rhn-package-487484 rhn-package-487485 rhn-package-487489 rhn-package-487492 rhn-package-487496 rhn-package-487501 rhn-package-487508 rhn-package-487509 rhn-package-487510 rhn-package-487525 rhn-package-487532 rhn-package-487533 rhn-package-487534 rhn-package-487535 rhn-package-487536 rhn-package-487537 rhn-package-487648 rhn-package-487768 rhn-package-487882 rhn-package-487886 rhn-package-487889 rhn-package-487890 rhn-package-487897 rhn-package-487992 rhn-package-487993 rhn-package-487995 rhn-package-487997 rhn-package-488002 rhn-package-488003 rhn-package-488004 rhn-package-488006 rhn-package-488012 rhn-package-488014 rhn-package-488024 rhn-package-488124 rhn-package-488126 rhn-package-488127 rhn-package-488133 rhn-package-488137 rhn-package-488138 rhn-package-488140 rhn-package-488145 rhn-package-488146 rhn-package-488158 rhn-package-488161 rhn-package-488326 rhn-package-488331 rhn-package-488335 rhn-package-488337 rhn-package-488343 rhn-package-488344 rhn-package-488435 rhn-package-488437 rhn-package-488441 rhn-package-488444 rhn-package-488446 rhn-package-488456 rhn-package-488459 rhn-package-488463 rhn-package-488582 rhn-package-488583 rhn-package-488585 rhn-package-488589 rhn-package-488590 rhn-package-488668 rhn-package-488669 rhn-package-488670 rhn-package-488672 rhn-package-488674 rhn-package-488680 rhn-package-488685 rhn-package-488692 rhn-package-488709 rhn-package-488713 rhn-package-488719 rhn-package-488721 rhn-package-488722 rhn-package-488729 rhn-package-488755 rhn-package-488759 rhn-package-488774 rhn-package-488775 rhn-package-488778 rhn-package-488780 rhn-package-488790 rhn-package-488791 rhn-package-488793 rhn-package-488799 rhn-package-488801 rhn-package-488810 rhn-package-488862 rhn-package-488863 rhn-package-488877 rhn-package-488890 rhn-package-488900 rhn-package-489006 rhn-package-489007 rhn-package-489017 rhn-package-489026 rhn-package-489135 rhn-package-489196 rhn-package-489197 rhn-package-489204 rhn-package-489205 rhn-package-489206 rhn-package-489207 rhn-package-489218 rhn-package-489321 rhn-package-489324 rhn-package-489328 rhn-package-489348 rhn-package-489448 rhn-package-489451 rhn-package-489454 rhn-package-489455 rhn-package-489459 rhn-package-489461 rhn-package-489462 rhn-package-489469 rhn-package-489711 rhn-package-489712 rhn-package-489715 rhn-package-489721 rhn-package-489725 rhn-package-489745 rhn-package-489748 rhn-package-489749 rhn-package-489751 rhn-package-489756 rhn-package-489757 rhn-package-489759 rhn-package-489764 rhn-package-489765 rhn-package-489769 rhn-package-489772 rhn-package-489773 rhn-package-489778 rhn-package-489779 rhn-package-489781 rhn-package-489784 rhn-package-489787 rhn-package-489788 rhn-package-489789 rhn-package-489790 rhn-package-489793 rhn-package-489795 rhn-package-489797 rhn-package-489800 rhn-package-489809 rhn-package-489810 rhn-package-489812 rhn-package-489815 rhn-package-489816 rhn-package-489820 rhn-package-489825 rhn-package-489827 rhn-package-489828 rhn-package-489829 rhn-package-489830 rhn-package-489831 rhn-package-489833 rhn-package-489835 rhn-package-489837 rhn-package-489838 rhn-package-489839 rhn-package-489843 rhn-package-489845 rhn-package-489848 rhn-package-489849 rhn-package-489852 rhn-package-489857 rhn-package-489859 rhn-package-489863 rhn-package-489865 rhn-package-489867 rhn-package-489872 rhn-package-489875 rhn-package-489885 rhn-package-489889 rhn-package-489891 rhn-package-489907 rhn-package-489908 rhn-package-489909 rhn-package-489911 rhn-package-489912 rhn-package-489915 rhn-package-489916 rhn-package-489918 rhn-package-489920 rhn-package-489921 rhn-package-489924 rhn-package-489927 rhn-package-489931 rhn-package-489935 rhn-package-489942 rhn-package-489943 rhn-package-489944 rhn-package-489946 rhn-package-489947 rhn-package-489952 rhn-package-489953 rhn-package-489957 rhn-package-489958 rhn-package-489959 rhn-package-489960 rhn-package-489963 rhn-package-489966 rhn-package-489967 rhn-package-489975 rhn-package-489979 rhn-package-489980 rhn-package-489984 rhn-package-489985 rhn-package-489986 rhn-package-489987 rhn-package-489991 rhn-package-489993 rhn-package-489994 rhn-package-489997 rhn-package-489998 rhn-package-490001 rhn-package-490003 rhn-package-490004 rhn-package-490005 rhn-package-490007 rhn-package-490009 rhn-package-490010 rhn-package-490014 rhn-package-490015 rhn-package-490019 rhn-package-490022 rhn-package-490024 rhn-package-490025 rhn-package-490026 rhn-package-490030 rhn-package-490035 rhn-package-490036 rhn-package-490037 rhn-package-490040 rhn-package-490042 rhn-package-490044 rhn-package-490046 rhn-package-490047 rhn-package-490048 rhn-package-490049 rhn-package-490050 rhn-package-490051 rhn-package-490053 rhn-package-490054 rhn-package-490055 rhn-package-490057 rhn-package-490058 rhn-package-490060 rhn-package-490061 rhn-package-490064 rhn-package-490066 rhn-package-490067 rhn-package-490069 rhn-package-490070 rhn-package-490074 rhn-package-490076 rhn-package-490081 rhn-package-490086 rhn-package-490088 rhn-package-490091 rhn-package-490094 rhn-package-490099 rhn-package-490100 rhn-package-490101 rhn-package-490103 rhn-package-490104 rhn-package-490109 rhn-package-490110 rhn-package-490112 rhn-package-490116 rhn-package-490120 rhn-package-490128 rhn-package-490132 rhn-package-490133 rhn-package-490134 rhn-package-490138 rhn-package-490140 rhn-package-490144 rhn-package-490147 rhn-package-490150 rhn-package-490152 rhn-package-490155 rhn-package-490158 rhn-package-490159 rhn-package-490162 rhn-package-490164 rhn-package-490165 rhn-package-490168 rhn-package-490172 rhn-package-490174 rhn-package-490175 rhn-package-490176 rhn-package-490177 rhn-package-490178 rhn-package-490179 rhn-package-490182 rhn-package-490184 rhn-package-490185 rhn-package-490186 rhn-package-490192 rhn-package-490193 rhn-package-490194 rhn-package-490195 rhn-package-490199 rhn-package-490200 rhn-package-490203 rhn-package-490204 rhn-package-490205 rhn-package-490210 rhn-package-490216 rhn-package-490223 rhn-package-490224 rhn-package-490227 rhn-package-490230 rhn-package-490238 rhn-package-490242 rhn-package-490245 rhn-package-490247 rhn-package-490248 rhn-package-490250 rhn-package-490253 rhn-package-490258 rhn-package-490259 rhn-package-490263 rhn-package-490265 rhn-package-490266 rhn-package-490267 rhn-package-490269 rhn-package-490272 rhn-package-490273 rhn-package-490274 rhn-package-490278 rhn-package-490284 rhn-package-490285 rhn-package-490286 rhn-package-490287 rhn-package-490290 rhn-package-490291 rhn-package-490294 rhn-package-490298 rhn-package-490299 rhn-package-490300 rhn-package-490301 rhn-package-490304 rhn-package-490306 rhn-package-490308 rhn-package-490309 rhn-package-490311 rhn-package-490312 rhn-package-490322 rhn-package-490323 rhn-package-490324 rhn-package-490328 rhn-package-490330 rhn-package-490331 rhn-package-490333 rhn-package-490335 rhn-package-490337 rhn-package-490338 rhn-package-490343 rhn-package-490346 rhn-package-490348 rhn-package-490349 rhn-package-490350 rhn-package-490351 rhn-package-490352 rhn-package-490353 rhn-package-490355 rhn-package-490357 rhn-package-490358 rhn-package-490362 rhn-package-490363 rhn-package-490364 rhn-package-490367 rhn-package-490368 rhn-package-490373 rhn-package-490377 rhn-package-490378 rhn-package-490380 rhn-package-490388 rhn-package-490389 rhn-package-490390 rhn-package-490394 rhn-package-490396 rhn-package-490402 rhn-package-490403 rhn-package-490406 rhn-package-490407 rhn-package-490412 rhn-package-490416 rhn-package-490424 rhn-package-490425 rhn-package-490429 rhn-package-490430 rhn-package-490432 rhn-package-490436 rhn-package-490442 rhn-package-490447 rhn-package-490453 rhn-package-490455 rhn-package-490456 rhn-package-490458 rhn-package-490462 rhn-package-490463 rhn-package-490466 rhn-package-490473 rhn-package-490476 rhn-package-490477 rhn-package-490481 rhn-package-490487 rhn-package-490488 rhn-package-490489 rhn-package-490490 rhn-package-490492 rhn-package-490500 rhn-package-490502 rhn-package-490511 rhn-package-490512 rhn-package-490517 rhn-package-490520 rhn-package-490521 rhn-package-490524 rhn-package-490527 rhn-package-490530 rhn-package-490536 rhn-package-490537 rhn-package-490538 rhn-package-490539 rhn-package-490541 rhn-package-490552 rhn-package-490560 rhn-package-490561 rhn-package-490568 rhn-package-490569 rhn-package-490571 rhn-package-490575 rhn-package-490584 rhn-package-490589 rhn-package-490591 rhn-package-490592 rhn-package-490598 rhn-package-490603 rhn-package-490609 rhn-package-490611 rhn-package-490615 rhn-package-490617 rhn-package-490619 rhn-package-490622 rhn-package-490623 rhn-package-490627 rhn-package-490628 rhn-package-490635 rhn-package-490638 rhn-package-490643 rhn-package-490647 rhn-package-490649 rhn-package-490650 rhn-package-490651 rhn-package-490655 rhn-package-490656 rhn-package-490667 rhn-package-490668 rhn-package-490672 rhn-package-490676 rhn-package-490677 rhn-package-490678 rhn-package-490679 rhn-package-490680 rhn-package-490681 rhn-package-490683 rhn-package-490684 rhn-package-490685 rhn-package-490690 rhn-package-490691 rhn-package-490692 rhn-package-490693 rhn-package-490699 rhn-package-490700 rhn-package-490702 rhn-package-490711 rhn-package-490712 rhn-package-490714 rhn-package-490718 rhn-package-490725 rhn-package-490728 rhn-package-490729 rhn-package-490730 rhn-package-490737 rhn-package-490742 rhn-package-490744 rhn-package-490748 rhn-package-490756 rhn-package-490760 rhn-package-490765 rhn-package-490768 rhn-package-490774 rhn-package-490775 rhn-package-490779 rhn-package-490784 rhn-package-490787 rhn-package-490796 rhn-package-490800 rhn-package-490801 rhn-package-490802 rhn-package-490822 rhn-package-490826 rhn-package-490827 rhn-package-490840 rhn-package-490842 rhn-package-490848 rhn-package-490852 rhn-package-490853 rhn-package-490855 rhn-package-490861 rhn-package-490870 rhn-package-490879 rhn-package-490889 rhn-package-490892 rhn-package-490895 rhn-package-490898 rhn-package-490904 rhn-package-490905 rhn-package-490908 rhn-package-490912 rhn-package-490921 rhn-package-490922 rhn-package-490924 rhn-package-490931 rhn-package-490932 rhn-package-490935 rhn-package-490937 rhn-package-490938 rhn-package-490941 rhn-package-490943 rhn-package-490948 rhn-package-490951 rhn-package-490952 rhn-package-490955 rhn-package-490957 rhn-package-490960 rhn-package-490964 rhn-package-490967 rhn-package-490974 rhn-package-490984 rhn-package-490985 rhn-package-490989 rhn-package-490992 rhn-package-490996 rhn-package-491000 rhn-package-491001 rhn-package-491002 rhn-package-491003 rhn-package-491007 rhn-package-491013 rhn-package-491025 rhn-package-491028 rhn-package-491032 rhn-package-491035 rhn-package-491038 rhn-package-491052 rhn-package-491057 rhn-package-491059 rhn-package-491065 rhn-package-491067 rhn-package-491071 rhn-package-491072 rhn-package-491074 rhn-package-491075 rhn-package-491077 rhn-package-491079 rhn-package-491080 rhn-package-491083 rhn-package-491086 rhn-package-491087 rhn-package-491094 rhn-package-491101 rhn-package-491102 rhn-package-491103 rhn-package-491107 rhn-package-491110 rhn-package-491120 rhn-package-491131 rhn-package-491146 rhn-package-491150 rhn-package-491153 rhn-package-491155 rhn-package-491160 rhn-package-491164 rhn-package-491165 rhn-package-491176 rhn-package-491186 rhn-package-491189 rhn-package-491190 rhn-package-491195 rhn-package-491199 rhn-package-491200 rhn-package-491201 rhn-package-491210 rhn-package-491211 rhn-package-491213 rhn-package-491220 rhn-package-491223 rhn-package-491226 rhn-package-491228 rhn-package-491231 rhn-package-491232 rhn-package-491233 rhn-package-491236 rhn-package-491239 rhn-package-491251 rhn-package-491253 rhn-package-491258 rhn-package-491268 rhn-package-491273 rhn-package-491276 rhn-package-491278 rhn-package-491279 rhn-package-491281 rhn-package-491301 rhn-package-491305 rhn-package-491307 rhn-package-491308 rhn-package-491313 rhn-package-491317 rhn-package-491325 rhn-package-491336 rhn-package-491341 rhn-package-491347 rhn-package-491353 rhn-package-491358 rhn-package-491363 rhn-package-491368 rhn-package-491370 rhn-package-491377 rhn-package-491381 rhn-package-491394 rhn-package-491396 rhn-package-491397 rhn-package-491411 rhn-package-491416 rhn-package-491423 rhn-package-491427 rhn-package-491429 rhn-package-491434 rhn-package-491438 rhn-package-491439 rhn-package-491442 rhn-package-491445 rhn-package-491447 rhn-package-491450 rhn-package-491451 rhn-package-491461 rhn-package-491464 rhn-package-491473 rhn-package-491476 rhn-package-491481 rhn-package-491490 rhn-package-491491 rhn-package-491510 rhn-package-491511 rhn-package-491517 rhn-package-491523 rhn-package-491528 rhn-package-491535 rhn-package-491540 rhn-package-491544 rhn-package-491547 rhn-package-491557 rhn-package-491563 rhn-package-491565 rhn-package-491566 rhn-package-491572 rhn-package-491579 rhn-package-491581 rhn-package-491583 rhn-package-491588 rhn-package-491590 rhn-package-491592 rhn-package-491594 rhn-package-491596 rhn-package-491625 rhn-package-491644 rhn-package-491654 rhn-package-491655 rhn-package-491656 rhn-package-491659 rhn-package-491660 rhn-package-491671 rhn-package-491673 rhn-package-491678 rhn-package-491694 rhn-package-491741 rhn-package-491743 rhn-package-491745 rhn-package-491775 rhn-package-491780 rhn-package-491785 rhn-package-491786 rhn-package-491798 rhn-package-491799 rhn-package-491802 rhn-package-491813 rhn-package-491815 rhn-package-491821 rhn-package-491825 rhn-package-491826 rhn-package-491828 rhn-package-491829 rhn-package-491835 rhn-package-491841 rhn-package-491845 rhn-package-491848 rhn-package-491856 rhn-package-491857 rhn-package-491868 rhn-package-491873 rhn-package-491877 rhn-package-491904 rhn-package-491916 rhn-package-491957 rhn-package-491959 rhn-package-491973 rhn-package-491990 rhn-package-491991 rhn-package-491995 rhn-package-491996 rhn-package-492003 rhn-package-492010 rhn-package-492038 rhn-package-492049 rhn-package-492082 rhn-package-492085 rhn-package-492100 rhn-package-492106 rhn-package-492121 rhn-package-492140 rhn-package-492150 rhn-package-492183 rhn-package-492212 rhn-package-492243 rhn-package-492244 rhn-package-492248 rhn-package-492273 rhn-package-492314 rhn-package-492316 rhn-package-492338 rhn-package-492354 rhn-package-492577 rhn-package-492640 rhn-package-493059 rhn-package-493063 rhn-package-493064 rhn-package-493065 rhn-package-493068 rhn-package-493069 rhn-package-493073 rhn-package-493083 rhn-package-493085 rhn-package-493088 rhn-package-493089 rhn-package-493091 rhn-package-493100 rhn-package-493112 rhn-package-493117 rhn-package-493129 rhn-package-493130 rhn-package-493331 rhn-package-493334 rhn-package-493339 rhn-package-493340 rhn-package-493342 rhn-package-493346 rhn-package-493348 rhn-package-493370 rhn-package-493371 rhn-package-493373 rhn-package-493381 rhn-package-493744 rhn-package-493747 rhn-package-493748 rhn-package-493757 rhn-package-493763 rhn-package-493765 rhn-package-493766 rhn-package-493767 rhn-package-493774 rhn-package-493784 rhn-package-494062 rhn-package-494063 rhn-package-494066 rhn-package-494076 rhn-package-494096 rhn-package-494101 rhn-package-494106 rhn-package-494108 rhn-package-494214 rhn-package-494282 rhn-package-494288 rhn-package-494304 rhn-package-494318 rhn-package-494322 rhn-package-494514 rhn-package-494516 rhn-package-494522 rhn-package-494547 rhn-package-494575 rhn-package-494576 rhn-package-494579 rhn-package-494582 rhn-package-494590 rhn-package-494646 rhn-package-494647 rhn-package-494653 rhn-package-494658 rhn-package-494660 rhn-package-494664 rhn-package-494665 rhn-package-494670 rhn-package-494687 rhn-package-494692 rhn-package-494731 rhn-package-494733 rhn-package-494737 rhn-package-494744 rhn-package-494763 rhn-package-494777 rhn-package-494781 rhn-package-494957 rhn-package-494962 rhn-package-494966 rhn-package-494995 rhn-package-495144 rhn-package-495155 rhn-package-495156 rhn-package-495160 rhn-package-495169 rhn-package-495170 rhn-package-495179 rhn-package-495183 rhn-package-495202 rhn-package-495205 rhn-package-495222 rhn-package-495233 rhn-package-495342 rhn-package-495343 rhn-package-495348 rhn-package-495350 rhn-package-495351 rhn-package-495352 rhn-package-495353 rhn-package-495361 rhn-package-495375 rhn-package-495445 rhn-package-495576 rhn-package-495579 rhn-package-495580 rhn-package-495581 rhn-package-495582 rhn-package-495583 rhn-package-495584 rhn-package-495787 rhn-package-495814 rhn-package-495815 rhn-package-495819 rhn-package-495821 rhn-package-495823 rhn-package-495845 rhn-package-495847 rhn-package-495848 rhn-package-495856 rhn-package-495858 rhn-package-495860 rhn-package-495870 rhn-package-495875" channel-id="rhn-channel-6957"><rhn-channel-parent-channel><rhn-null/></rhn-channel-parent-channel><rhn-channel-basedir>/</rhn-channel-basedir><rhn-channel-name>Red Hat Enterprise Linux (v. 5 for 64-bit x86_64)</rhn-channel-name><rhn-channel-summary>Red Hat Enterprise Linux (v. 5 for 64-bit AMD64 / Intel64 Server)</rhn-channel-summary><rhn-channel-description>Red Hat Enterprise Linux - Server core components (v. 5 for 64-bit AMD64 / Intel64)</rhn-channel-description><rhn-channel-gpg-key-url>file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release</rhn-channel-gpg-key-url><rhn-channel-receiving-updates>Y</rhn-channel-receiving-updates><rhn-channel-last-modified>1255609387</rhn-channel-last-modified><rhn-channel-product-name>rhel</rhn-channel-product-name><rhn-channel-product-version>5</rhn-channel-product-version><rhn-channel-product-beta>N</rhn-channel-product-beta><rhn-channel-families><rhn-channel-family virt-sub-level-name="Virtualization free content group,Virtualization Platform free content group" channel-labels="rhel-i386-as-3 rhel-i386-es-3 rhel-ia64-as-3 rhel-ia64-es-3 rhel-x86_64-as-3 rhel-x86_64-es-3 rhel-ppc-as-3 rhel-i386-as-4 rhel-i386-es-4 rhel-x86_64-as-4 rhel-x86_64-es-4 rhel-ia64-as-4 rhel-ia64-es-4 rhel-ppc-as-4 rhel-i386-server-5 rhel-x86_64-server-5 rhel-ia64-server-5 rhel-ppc-server-5" virt-sub-level-label="virtualization_free virtualization_platform_free" id="rhn-channel-family-5488" label="rhel-server"/></rhn-channel-families><rhn-dists><rhn-dist release="5Server" channel-arch="channel-x86_64" os="Red Hat Linux"/></rhn-dists><source-packages><source-package last-modified="1173828200" id="rhn-source-package-41213" source-rpm="spamassassin-3.1.8-2.el5.src.rpm"/><source-package last-modified="1173831490" id="rhn-source-package-41215" source-rpm="gnupg-1.4.5-13.src.rpm"/><source-package last-modified="1173831886" id="rhn-source-package-41217" source-rpm="tzdata-2007c-1.el5.src.rpm"/><source-package last-modified="1173831901" id="rhn-source-package-41218" source-rpm="emacs-21.4-18.1.el5.src.rpm"/><source-package last-modified="1173832223" id="rhn-source-package-41219" source-rpm="autofs-5.0.1-0.rc2.43.0.2.src.rpm"/><source-package last-modified="1173837656" id="rhn-source-package-41221" source-rpm="php-5.1.6-7.el5.src.rpm"/><source-package last-modified="1173847848" id="rhn-source-package-41222" source-rpm="bind-9.3.3-8.el5.src.rpm"/><source-package last-modified="1173848101" id="rhn-source-package-41223" source-rpm="samba-3.0.23c-2.el5.2.src.rpm"/><source-package last-modified="1173848491" id="rhn-source-package-41224" source-rpm="yelp-2.16.0-14.0.1.el5.src.rpm"/><source-package last-modified="1173848491" id="rhn-source-package-41226" source-rpm="devhelp-0.12-10.0.1.el5.src.rpm"/><source-package last-modified="1173848705" id="rhn-source-package-41227" source-rpm="nss-3.11.5-3.el5.src.rpm"/><source-package last-modified="1173848750" id="rhn-source-package-41228" source-rpm="xen-3.0.3-25.0.3.el5.src.rpm"/><source-package last-modified="1173848794" id="rhn-source-package-41229" source-rpm="postgresql-8.1.8-1.el5.src.rpm"/><source-package last-modified="1173849197" id="rhn-source-package-41230" source-rpm="gcc-4.1.1-52.el5.2.src.rpm"/><source-package last-modified="1173849238" id="rhn-source-package-41231" source-rpm="dhcp-3.0.5-5.el5.src.rpm"/><source-package last-modified="1173849420" id="rhn-source-package-41232" source-rpm="kernel-2.6.18-8.1.1.el5.src.rpm"/><source-package last-modified="1173850747" id="rhn-source-package-41233" source-rpm="evolution-data-server-1.8.0-15.0.2.el5.src.rpm"/><source-package last-modified="1173854091" id="rhn-source-package-41238" source-rpm="module-init-tools-3.3-0.pre3.1.16.0.1.el5.src.rpm"/><source-package last-modified="1173887371" id="rhn-source-package-41239" source-rpm="Deployment_Guide-5.0.0-21.src.rpm"/><source-package last-modified="1173889243" id="rhn-source-package-41243" source-rpm="wireshark-0.99.5-1.el5.src.rpm"/><source-package last-modified="1174644292" id="rhn-source-package-41256" source-rpm="file-4.17-9.el5.src.rpm"/><source-package last-modified="1174687064" id="rhn-source-package-41265" source-rpm="tzdata-2007d-1.el5.src.rpm"/><source-package last-modified="1174928008" id="rhn-source-package-41326" source-rpm="python-imaging-1.1.5-5.el5.src.rpm"/><source-package last-modified="1174928045" id="rhn-source-package-41329" source-rpm="libnotify-0.4.2-6.el5.src.rpm"/><source-package last-modified="1174928055" id="rhn-source-package-41330" source-rpm="perl-5.8.8-10.src.rpm"/><source-package last-modified="1174928802" id="rhn-source-package-41332" source-rpm="samba-3.0.23c-2.src.rpm"/><source-package last-modified="1174928806" id="rhn-source-package-41333" source-rpm="m17n-db-1.3.3-46.el5.src.rpm"/><source-package last-modified="1174928810" id="rhn-source-package-41334" source-rpm="gnome-user-docs-2.16.0-2.fc6.src.rpm"/><source-package last-modified="1174928813" id="rhn-source-package-41335" source-rpm="cdrtools-2.01-10.src.rpm"/><source-package last-modified="1174928815" id="rhn-source-package-41336" source-rpm="lsscsi-0.17-3.el5.src.rpm"/><source-package last-modified="1174928819" id="rhn-source-package-41337" source-rpm="OpenIPMI-2.0.6-5.el5.3.src.rpm"/><source-package last-modified="1174928824" id="rhn-source-package-41338" source-rpm="gnome-panel-2.16.1-6.el5.src.rpm"/><source-package last-modified="1174928846" id="rhn-source-package-41339" source-rpm="fonts-korean-1.0.11-10.el5.src.rpm"/><source-package last-modified="1174928852" id="rhn-source-package-41340" source-rpm="xsane-0.991-4.el5.src.rpm"/><source-package last-modified="1174928853" id="rhn-source-package-41341" source-rpm="setup-2.5.58-1.el5.src.rpm"/><source-package last-modified="1174928866" id="rhn-source-package-41342" source-rpm="vim-7.0.109-3.src.rpm"/><source-package last-modified="1174928869" id="rhn-source-package-41343" source-rpm="star-1.5a75-1.src.rpm"/><source-package last-modified="1174928872" id="rhn-source-package-41344" source-rpm="unixODBC-2.2.11-7.1.src.rpm"/><source-package last-modified="1174928872" id="rhn-source-package-41345" source-rpm="createrepo-0.4.4-2.fc6.src.rpm"/><source-package last-modified="1174928885" id="rhn-source-package-41346" source-rpm="xorg-x11-fonts-7.1-2.1.el5.src.rpm"/><source-package last-modified="1174928886" id="rhn-source-package-41347" source-rpm="perl-XML-SAX-0.14-5.src.rpm"/><source-package last-modified="1174928887" id="rhn-source-package-41348" source-rpm="eog-2.16.0.1-6.el5.src.rpm"/><source-package last-modified="1174928892" id="rhn-source-package-41349" source-rpm="sendmail-8.13.8-2.el5.src.rpm"/><source-package last-modified="1174928932" id="rhn-source-package-41351" source-rpm="gcc-4.1.1-52.el5.src.rpm"/><source-package last-modified="1174928933" id="rhn-source-package-41352" source-rpm="icon-naming-utils-0.8.1-1.fc6.src.rpm"/><source-package last-modified="1174928934" id="rhn-source-package-41353" source-rpm="man-pages-de-0.4-11.src.rpm"/><source-package last-modified="1174928936" id="rhn-source-package-41354" source-rpm="rsync-2.6.8-3.1.src.rpm"/><source-package last-modified="1174928937" id="rhn-source-package-41355" source-rpm="time-1.7-27.2.2.src.rpm"/><source-package last-modified="1174928938" id="rhn-source-package-41356" source-rpm="firstboot-1.4.27.2-1.el5.src.rpm"/><source-package last-modified="1174928945" id="rhn-source-package-41357" source-rpm="kdenetwork-3.5.4-4.fc6.src.rpm"/><source-package last-modified="1174928947" id="rhn-source-package-41358" source-rpm="arts-1.5.4-1.src.rpm"/><source-package last-modified="1174928956" id="rhn-source-package-41359" source-rpm="ghostscript-8.15.2-9.1.el5.src.rpm"/><source-package last-modified="1174929214" id="rhn-source-package-41360" source-rpm="kde-i18n-3.5.4-1.src.rpm"/><source-package last-modified="1174929242" id="rhn-source-package-41363" source-rpm="compat-gcc-32-3.2.3-61.src.rpm"/><source-package last-modified="1174929246" id="rhn-source-package-41364" source-rpm="frysk-0.0.1.2006.12.22.rh1-4.el5.src.rpm"/><source-package last-modified="1174929248" id="rhn-source-package-41365" source-rpm="openhpi-2.4.1-6.el5.1.src.rpm"/><source-package last-modified="1174929249" id="rhn-source-package-41366" source-rpm="bitstream-vera-fonts-1.10-7.src.rpm"/><source-package last-modified="1174929250" id="rhn-source-package-41367" source-rpm="fonts-indic-2.0.13-1.el5.src.rpm"/><source-package last-modified="1174929251" id="rhn-source-package-41368" source-rpm="pcmciautils-014-5.src.rpm"/><source-package last-modified="1174929251" id="rhn-source-package-41369" source-rpm="system-config-display-1.0.48-2.el5.src.rpm"/><source-package last-modified="1174929252" id="rhn-source-package-41370" source-rpm="rwho-0.17-26.src.rpm"/><source-package last-modified="1174929252" id="rhn-source-package-41371" source-rpm="man-pages-cs-0.16-6.src.rpm"/><source-package last-modified="1174929253" id="rhn-source-package-41372" source-rpm="jwhois-3.2.3-8.el5.src.rpm"/><source-package last-modified="1174929254" id="rhn-source-package-41373" source-rpm="nc-1.84-10.fc6.src.rpm"/><source-package last-modified="1174929261" id="rhn-source-package-41374" source-rpm="scim-tables-0.5.6-7.src.rpm"/><source-package last-modified="1174929261" id="rhn-source-package-41375" source-rpm="gtk-doc-1.7-1.fc6.src.rpm"/><source-package last-modified="1174929262" id="rhn-source-package-41376" source-rpm="irqbalance-1.13-9.el5.src.rpm"/><source-package last-modified="1174929263" id="rhn-source-package-41377" source-rpm="postgresql-jdbc-8.1.407-1jpp.4.src.rpm"/><source-package last-modified="1174929264" id="rhn-source-package-41378" source-rpm="fonts-KOI8-R-1.0-9.1.1.src.rpm"/><source-package last-modified="1174929265" id="rhn-source-package-41379" source-rpm="gpm-1.20.1-74.1.src.rpm"/><source-package last-modified="1174929266" id="rhn-source-package-41380" source-rpm="dmraid-1.0.0.rc13-2.el5.src.rpm"/><source-package last-modified="1174929426" id="rhn-source-package-41381" source-rpm="Deployment_Guide-5.0.0-19.src.rpm"/><source-package last-modified="1174929430" id="rhn-source-package-41382" source-rpm="yum-3.0.1-5.el5.src.rpm"/><source-package last-modified="1174929434" id="rhn-source-package-41383" source-rpm="gtk+-1.2.10-56.el5.src.rpm"/><source-package last-modified="1174929459" id="rhn-source-package-41384" source-rpm="compat-gcc-34-3.4.6-4.src.rpm"/><source-package last-modified="1174929461" id="rhn-source-package-41385" source-rpm="sox-12.18.1-1.src.rpm"/><source-package last-modified="1174929469" id="rhn-source-package-41386" source-rpm="openmotif22-2.2.3-18.src.rpm"/><source-package last-modified="1174929470" id="rhn-source-package-41387" source-rpm="aspell-pl-0.51-5.2.2.src.rpm"/><source-package last-modified="1174929484" id="rhn-source-package-41388" source-rpm="compat-gcc-296-2.96-138.src.rpm"/><source-package last-modified="1174929486" id="rhn-source-package-41389" source-rpm="libtermcap-2.0.8-46.1.src.rpm"/><source-package last-modified="1174929491" id="rhn-source-package-41390" source-rpm="gnutls-1.4.1-2.src.rpm"/><source-package last-modified="1174929494" id="rhn-source-package-41391" source-rpm="basesystem-8.0-5.1.1.src.rpm"/><source-package last-modified="1174929534" id="rhn-source-package-41392" source-rpm="firefox-1.5.0.9-10.el5.src.rpm"/><source-package last-modified="1174929535" id="rhn-source-package-41393" source-rpm="xorg-x11-xbitmaps-1.0.1-4.1.src.rpm"/><source-package last-modified="1174929537" id="rhn-source-package-41394" source-rpm="bitmap-fonts-0.3-5.1.1.src.rpm"/><source-package last-modified="1174929537" id="rhn-source-package-41395" source-rpm="dcraw-0.0.20060521-1.1.src.rpm"/><source-package last-modified="1174929538" id="rhn-source-package-41396" source-rpm="gfs2-utils-0.1.25-1.el5.src.rpm"/><source-package last-modified="1174929555" id="rhn-source-package-41397" source-rpm="postgresql-8.1.4-1.1.src.rpm"/><source-package last-modified="1174929565" id="rhn-source-package-41398" source-rpm="cyrus-sasl-2.1.22-4.src.rpm"/><source-package last-modified="1174929566" id="rhn-source-package-41399" source-rpm="pkinit-nss-0.3.5-1.el5.src.rpm"/><source-package last-modified="1174929567" id="rhn-source-package-41400" source-rpm="gnome-nettool-2.16.0-1.fc6.src.rpm"/><source-package last-modified="1174929568" id="rhn-source-package-41401" source-rpm="xorg-x11-xfs-1.0.2-3.1.src.rpm"/><source-package last-modified="1174929571" id="rhn-source-package-41402" source-rpm="man-pages-fr-2.39-4.fc6.src.rpm"/><source-package last-modified="1174929572" id="rhn-source-package-41403" source-rpm="mdadm-2.5.4-3.el5.src.rpm"/><source-package last-modified="1174929574" id="rhn-source-package-41404" source-rpm="tcpdump-3.9.4-8.1.src.rpm"/><source-package last-modified="1174929581" id="rhn-source-package-41406" source-rpm="perl-XML-Twig-3.26-1.fc6.src.rpm"/><source-package last-modified="1174929585" id="rhn-source-package-41408" source-rpm="java-1.4.2-gcj-compat-1.4.2.0-40jpp.112.src.rpm"/><source-package last-modified="1174929586" id="rhn-source-package-41410" source-rpm="pam_smb-1.1.7-7.2.1.src.rpm"/><source-package last-modified="1174929587" id="rhn-source-package-41411" source-rpm="bluez-hcidump-1.32-1.src.rpm"/><source-package last-modified="1174929587" id="rhn-source-package-41412" source-rpm="redhat-lsb-3.1-12.2.EL.src.rpm"/><source-package last-modified="1174929588" id="rhn-source-package-41413" source-rpm="docbook-utils-0.6.14-5.1.src.rpm"/><source-package last-modified="1174929624" id="rhn-source-package-41414" source-rpm="system-config-network-1.3.99-1.el5.src.rpm"/><source-package last-modified="1174929630" id="rhn-source-package-41415" source-rpm="rhgb-0.16.4-8.el5.src.rpm"/><source-package last-modified="1174929634" id="rhn-source-package-41416" source-rpm="zsh-4.2.6-1.src.rpm"/><source-package last-modified="1174929634" id="rhn-source-package-41417" source-rpm="unix2dos-2.2-26.2.2.src.rpm"/><source-package last-modified="1174929635" id="rhn-source-package-41418" source-rpm="pax-3.4-1.2.2.src.rpm"/><source-package last-modified="1174929636" id="rhn-source-package-41419" source-rpm="aide-0.12-7.src.rpm"/><source-package last-modified="1174929642" id="rhn-source-package-41420" source-rpm="ruby-1.8.5-5.el5.src.rpm"/><source-package last-modified="1174929643" id="rhn-source-package-41421" source-rpm="acl-2.2.39-1.1.src.rpm"/><source-package last-modified="1174929667" id="rhn-source-package-41423" source-rpm="mutt-1.4.2.2-3.el5.src.rpm"/><source-package last-modified="1174929668" id="rhn-source-package-41424" source-rpm="system-config-securitylevel-1.6.29.1-1.el5.src.rpm"/><source-package last-modified="1174929669" id="rhn-source-package-41425" source-rpm="screen-4.0.3-1.el5.src.rpm"/><source-package last-modified="1174929676" id="rhn-source-package-41426" source-rpm="xorg-x11-server-1.1.1-48.13.el5.src.rpm"/><source-package last-modified="1174929677" id="rhn-source-package-41427" source-rpm="dvgrab-2.0-1.2.2.src.rpm"/><source-package last-modified="1174929678" id="rhn-source-package-41428" source-rpm="yelp-2.16.0-13.el5.src.rpm"/><source-package last-modified="1174929678" id="rhn-source-package-41429" source-rpm="netlabel_tools-0.17-9.el5.src.rpm"/><source-package last-modified="1174929679" id="rhn-source-package-41430" source-rpm="aspell-ga-0.50-4.2.2.src.rpm"/><source-package last-modified="1174929684" id="rhn-source-package-41431" source-rpm="swig-1.3.29-2.el5.src.rpm"/><source-package last-modified="1174929692" id="rhn-source-package-41432" source-rpm="tog-pegasus-2.5.2-5.el5.src.rpm"/><source-package last-modified="1174929693" id="rhn-source-package-41433" source-rpm="patchutils-0.2.31-2.2.2.src.rpm"/><source-package last-modified="1174929694" id="rhn-source-package-41434" source-rpm="file-roller-2.16.0-2.fc6.src.rpm"/><source-package last-modified="1174929787" id="rhn-source-package-41435" source-rpm="tetex-3.0-32.fc6.src.rpm"/><source-package last-modified="1174929789" id="rhn-source-package-41436" source-rpm="scim-bridge-0.4.5-7.el5.src.rpm"/><source-package last-modified="1174929793" id="rhn-source-package-41437" source-rpm="alsa-utils-1.0.12-3.fc6.src.rpm"/><source-package last-modified="1174929794" id="rhn-source-package-41438" source-rpm="gtk2-engines-2.8.0-3.el5.src.rpm"/><source-package last-modified="1174929796" id="rhn-source-package-41439" source-rpm="wget-1.10.2-7.el5.src.rpm"/><source-package last-modified="1174929798" id="rhn-source-package-41440" source-rpm="fonts-ISO8859-2-1.0-17.1.src.rpm"/><source-package last-modified="1174929799" id="rhn-source-package-41441" source-rpm="sysfsutils-2.0.0-6.src.rpm"/><source-package last-modified="1174929799" id="rhn-source-package-41442" source-rpm="im-chooser-0.3.3-6.el5.src.rpm"/><source-package last-modified="1174929801" id="rhn-source-package-41443" source-rpm="aspell-sr-0.02-1.2.1.src.rpm"/><source-package last-modified="1174929803" id="rhn-source-package-41445" source-rpm="rootfiles-8.1-1.1.1.src.rpm"/><source-package last-modified="1174929804" id="rhn-source-package-41446" source-rpm="iscsi-initiator-utils-6.2.0.742-0.5.el5.src.rpm"/><source-package last-modified="1174929805" id="rhn-source-package-41447" source-rpm="mod_nss-1.0.3-4.el5.src.rpm"/><source-package last-modified="1174929821" id="rhn-source-package-41448" source-rpm="glibc-2.5-12.src.rpm"/><source-package last-modified="1174929823" id="rhn-source-package-41449" source-rpm="make-3.81-1.1.src.rpm"/><source-package last-modified="1174929823" id="rhn-source-package-41450" source-rpm="xorg-x11-xauth-1.0.1-2.1.src.rpm"/><source-package last-modified="1174929825" id="rhn-source-package-41451" source-rpm="evince-0.6.0-8.el5.src.rpm"/><source-package last-modified="1174929826" id="rhn-source-package-41452" source-rpm="kudzu-1.2.57.1.13-1.src.rpm"/><source-package last-modified="1174929826" id="rhn-source-package-41453" source-rpm="aspell-fr-0.50-9.2.2.src.rpm"/><source-package last-modified="1174929828" id="rhn-source-package-41454" source-rpm="pciutils-2.2.3-4.src.rpm"/><source-package last-modified="1174929830" id="rhn-source-package-41455" source-rpm="vorbis-tools-1.1.1-3.el5.src.rpm"/><source-package last-modified="1174929830" id="rhn-source-package-41456" source-rpm="wvdial-1.54.0-5.2.2.1.src.rpm"/><source-package last-modified="1174929832" id="rhn-source-package-41457" source-rpm="aspell-hr-0.51-4.2.2.src.rpm"/><source-package last-modified="1174929848" id="rhn-source-package-41458" source-rpm="desktop-backgrounds-2.0-37.src.rpm"/><source-package last-modified="1174929849" id="rhn-source-package-41459" source-rpm="perl-DBD-Pg-1.49-1.fc6.src.rpm"/><source-package last-modified="1174929853" id="rhn-source-package-41460" source-rpm="mc-4.6.1a-34.el5.src.rpm"/><source-package last-modified="1174929854" id="rhn-source-package-41461" source-rpm="policycoreutils-1.33.12-3.el5.src.rpm"/><source-package last-modified="1174929860" id="rhn-source-package-41462" source-rpm="gdm-2.16.0-30.el5.src.rpm"/><source-package last-modified="1174929862" id="rhn-source-package-41463" source-rpm="tftp-0.42-3.1.src.rpm"/><source-package last-modified="1174929866" id="rhn-source-package-41464" source-rpm="words-3.0-9.src.rpm"/><source-package last-modified="1174929867" id="rhn-source-package-41465" source-rpm="aspell-is-0.51.1-2.2.2.src.rpm"/><source-package last-modified="1174929870" id="rhn-source-package-41466" source-rpm="sblim-1-20.EL5.src.rpm"/><source-package last-modified="1174929879" id="rhn-source-package-41467" source-rpm="arptables_jf-0.0.8-8.src.rpm"/><source-package last-modified="1174929880" id="rhn-source-package-41468" source-rpm="eject-2.1.5-4.2.el5.src.rpm"/><source-package last-modified="1174929880" id="rhn-source-package-41469" source-rpm="xdelta-1.1.3-20.src.rpm"/><source-package last-modified="1174929885" id="rhn-source-package-41470" source-rpm="net-snmp-5.3.1-14.el5.src.rpm"/><source-package last-modified="1174929887" id="rhn-source-package-41471" source-rpm="bogl-0.1.18-11.2.1.el5.1.src.rpm"/><source-package last-modified="1174929890" id="rhn-source-package-41472" source-rpm="amanda-2.5.0p2-4.src.rpm"/><source-package last-modified="1174929893" id="rhn-source-package-41473" source-rpm="elinks-0.11.1-5.1.el5.src.rpm"/><source-package last-modified="1174929895" id="rhn-source-package-41474" source-rpm="metacity-2.16.0-8.el5.src.rpm"/><source-package last-modified="1174929911" id="rhn-source-package-41475" source-rpm="anaconda-11.1.2.36-1.src.rpm"/><source-package last-modified="1174929917" id="rhn-source-package-41476" source-rpm="xfig-3.2.4-21.2.el5.src.rpm"/><source-package last-modified="1174929923" id="rhn-source-package-41477" source-rpm="sysstat-7.0.0-3.el5.src.rpm"/><source-package last-modified="1174929923" id="rhn-source-package-41478" source-rpm="vlock-1.3-23.src.rpm"/><source-package last-modified="1174929924" id="rhn-source-package-41479" source-rpm="mtools-3.9.10-2.fc6.src.rpm"/><source-package last-modified="1174929925" id="rhn-source-package-41480" source-rpm="ppp-2.4.4-1.el5.src.rpm"/><source-package last-modified="1174929926" id="rhn-source-package-41481" source-rpm="aspell-ca-0.50-4.2.2.src.rpm"/><source-package last-modified="1174929926" id="rhn-source-package-41482" source-rpm="zisofs-tools-1.0.6-3.2.2.src.rpm"/><source-package last-modified="1174929927" id="rhn-source-package-41483" source-rpm="xmlrpc-2.0.1-3jpp.1.src.rpm"/><source-package last-modified="1174929927" id="rhn-source-package-41484" source-rpm="hwbrowser-0.30-1.el5.src.rpm"/><source-package last-modified="1174929928" id="rhn-source-package-41485" source-rpm="iputils-20020927-43.el5.src.rpm"/><source-package last-modified="1174929930" id="rhn-source-package-41486" source-rpm="gnome-system-monitor-2.16.0-3.el5.src.rpm"/><source-package last-modified="1174929931" id="rhn-source-package-41487" source-rpm="chkconfig-1.3.30.1-1.src.rpm"/><source-package last-modified="1174929937" id="rhn-source-package-41488" source-rpm="gimp-print-4.2.7-22.src.rpm"/><source-package last-modified="1174929938" id="rhn-source-package-41489" source-rpm="xorg-x11-xsm-1.0.2-4.fc6.src.rpm"/><source-package last-modified="1174929940" id="rhn-source-package-41490" source-rpm="fonts-arabic-2.0-4.el5.src.rpm"/><source-package last-modified="1174929941" id="rhn-source-package-41491" source-rpm="xorg-x11-xfwp-1.0.1-3.1.src.rpm"/><source-package last-modified="1174929945" id="rhn-source-package-41494" source-rpm="freeglut-2.4.0-7.1.el5.src.rpm"/><source-package last-modified="1174929954" id="rhn-source-package-41496" source-rpm="e2fsprogs-1.39-8.el5.src.rpm"/><source-package last-modified="1174929955" id="rhn-source-package-41497" source-rpm="gok-1.2.0-2.el5.src.rpm"/><source-package last-modified="1174929958" id="rhn-source-package-41498" source-rpm="openssl097a-0.9.7a-9.src.rpm"/><source-package last-modified="1174929959" id="rhn-source-package-41499" source-rpm="talk-0.17-29.2.2.src.rpm"/><source-package last-modified="1174929959" id="rhn-source-package-41500" source-rpm="libaio-0.3.106-3.2.src.rpm"/><source-package last-modified="1174929960" id="rhn-source-package-41501" source-rpm="mlocate-0.15-1.el5.src.rpm"/><source-package last-modified="1174929960" id="rhn-source-package-41502" source-rpm="logrotate-3.7.4-7.src.rpm"/><source-package last-modified="1174929962" id="rhn-source-package-41503" source-rpm="conman-0.1.9.2-4.el5.src.rpm"/><source-package last-modified="1174929966" id="rhn-source-package-41504" source-rpm="pkgconfig-0.21-1.fc6.src.rpm"/><source-package last-modified="1174929968" id="rhn-source-package-41505" source-rpm="openssh-4.3p2-16.el5.src.rpm"/><source-package last-modified="1174929969" id="rhn-source-package-41506" source-rpm="lksctp-tools-1.0.6-1.el5.1.src.rpm"/><source-package last-modified="1174929969" id="rhn-source-package-41507" source-rpm="dtach-0.7-1.2.2.src.rpm"/><source-package last-modified="1174929971" id="rhn-source-package-41508" source-rpm="bluez-utils-3.7-2.src.rpm"/><source-package last-modified="1174930010" id="rhn-source-package-41509" source-rpm="gimp-help-2-0.1.0.10.1.1.src.rpm"/><source-package last-modified="1174930012" id="rhn-source-package-41510" source-rpm="initscripts-8.45.14.EL-1.src.rpm"/><source-package last-modified="1174930014" id="rhn-source-package-41511" source-rpm="gnome-mag-0.13.1-1.fc6.src.rpm"/><source-package last-modified="1174930014" id="rhn-source-package-41512" source-rpm="krb5-auth-dialog-0.7-1.src.rpm"/><source-package last-modified="1174930015" id="rhn-source-package-41513" source-rpm="ipv6calc-0.61-1.src.rpm"/><source-package last-modified="1174930030" id="rhn-source-package-41514" source-rpm="qt-3.3.6-20.el5.src.rpm"/><source-package last-modified="1174930030" id="rhn-source-package-41515" source-rpm="man-pages-da-0.1.1-12.1.1.src.rpm"/><source-package last-modified="1174930031" id="rhn-source-package-41516" source-rpm="sabayon-2.12.4-3.el5.src.rpm"/><source-package last-modified="1174930032" id="rhn-source-package-41517" source-rpm="perl-libxml-perl-0.08-1.2.1.src.rpm"/><source-package last-modified="1174930033" id="rhn-source-package-41518" source-rpm="bc-1.06-21.src.rpm"/><source-package last-modified="1174930033" id="rhn-source-package-41519" source-rpm="perl-XML-Dumper-0.81-2.fc6.src.rpm"/><source-package last-modified="1174930033" id="rhn-source-package-41520" source-rpm="x86info-1.20-1.26.fc6.src.rpm"/><source-package last-modified="1174930034" id="rhn-source-package-41521" source-rpm="hesinfo-3.1.0-1.1.src.rpm"/><source-package last-modified="1174930036" id="rhn-source-package-41522" source-rpm="man-pages-2.39-9.el5.src.rpm"/><source-package last-modified="1174930038" id="rhn-source-package-41523" source-rpm="lftp-3.5.1-2.fc6.src.rpm"/><source-package last-modified="1174930039" id="rhn-source-package-41524" source-rpm="switchdesk-4.0.8-6.src.rpm"/><source-package last-modified="1174930040" id="rhn-source-package-41525" source-rpm="nautilus-cd-burner-2.16.0-7.el5.src.rpm"/><source-package last-modified="1174930041" id="rhn-source-package-41526" source-rpm="lrzsz-0.12.20-22.1.src.rpm"/><source-package last-modified="1174930041" id="rhn-source-package-41527" source-rpm="autofs-5.0.1-0.rc2.42.src.rpm"/><source-package last-modified="1174930043" id="rhn-source-package-41528" source-rpm="dejagnu-1.4.4-5.1.src.rpm"/><source-package last-modified="1174930046" id="rhn-source-package-41529" source-rpm="devhelp-0.12-9.el5.src.rpm"/><source-package last-modified="1174930047" id="rhn-source-package-41530" source-rpm="NetworkManager-0.6.4-6.el5.src.rpm"/><source-package last-modified="1174930048" id="rhn-source-package-41531" source-rpm="cryptsetup-luks-1.0.3-2.2.el5.src.rpm"/><source-package last-modified="1174930048" id="rhn-source-package-41532" source-rpm="dos2unix-3.1-27.1.src.rpm"/><source-package last-modified="1174930049" id="rhn-source-package-41533" source-rpm="perl-Crypt-SSLeay-0.51-11.el5.src.rpm"/><source-package last-modified="1174930053" id="rhn-source-package-41534" source-rpm="kdeutils-3.5.4-5.fc6.src.rpm"/><source-package last-modified="1174930053" id="rhn-source-package-41535" source-rpm="kcc-2.3-24.2.2.src.rpm"/><source-package last-modified="1174930066" id="rhn-source-package-41536" source-rpm="gettext-0.14.6-4.el5.src.rpm"/><source-package last-modified="1174930119" id="rhn-source-package-41537" source-rpm="kernel-2.6.18-8.el5.src.rpm"/><source-package last-modified="1174930121" id="rhn-source-package-41538" source-rpm="bzip2-1.0.3-3.src.rpm"/><source-package last-modified="1174930123" id="rhn-source-package-41539" source-rpm="ccid-1.0.1-6.el5.src.rpm"/><source-package last-modified="1174930126" id="rhn-source-package-41541" source-rpm="system-config-language-1.1.18-1.el5.src.rpm"/><source-package last-modified="1174930126" id="rhn-source-package-41542" source-rpm="ftp-0.17-33.fc6.src.rpm"/><source-package last-modified="1174930278" id="rhn-source-package-41543" source-rpm="specspo-13-1.el5.src.rpm"/><source-package last-modified="1174930278" id="rhn-source-package-41544" source-rpm="anacron-2.3-45.el5.src.rpm"/><source-package last-modified="1174930279" id="rhn-source-package-41545" source-rpm="aspell-sl-0.50-1.2.1.src.rpm"/><source-package last-modified="1174930281" id="rhn-source-package-41546" source-rpm="dhcp-3.0.5-3.el5.src.rpm"/><source-package last-modified="1174930284" id="rhn-source-package-41547" source-rpm="gnome-utils-2.16.0-3.el5.src.rpm"/><source-package last-modified="1174930285" id="rhn-source-package-41548" source-rpm="procps-3.2.7-8.1.el5.src.rpm"/><source-package last-modified="1174930285" id="rhn-source-package-41549" source-rpm="system-switch-mail-0.5.25-12.src.rpm"/><source-package last-modified="1174930286" id="rhn-source-package-41550" source-rpm="pam_krb5-2.2.11-1.src.rpm"/><source-package last-modified="1174930297" id="rhn-source-package-41551" source-rpm="krb5-1.5-17.src.rpm"/><source-package last-modified="1174930298" id="rhn-source-package-41552" source-rpm="compat-readline43-4.3-3.src.rpm"/><source-package last-modified="1174930299" id="rhn-source-package-41553" source-rpm="booty-0.80.4-1.src.rpm"/><source-package last-modified="1174930299" id="rhn-source-package-41554" source-rpm="which-2.16-7.src.rpm"/><source-package last-modified="1174930300" id="rhn-source-package-41555" source-rpm="usbutils-0.71-2.1.src.rpm"/><source-package last-modified="1174930300" id="rhn-source-package-41556" source-rpm="bluez-gnome-0.5-5.fc6.src.rpm"/><source-package last-modified="1174930301" id="rhn-source-package-41557" source-rpm="procinfo-18-19.src.rpm"/><source-package last-modified="1174930315" id="rhn-source-package-41558" source-rpm="gdb-6.5-16.el5.src.rpm"/><source-package last-modified="1174930316" id="rhn-source-package-41559" source-rpm="system-config-users-1.2.51-1.el5.src.rpm"/><source-package last-modified="1174930317" id="rhn-source-package-41560" source-rpm="aspell-ru-0.99f7-2.2.2.src.rpm"/><source-package last-modified="1174930317" id="rhn-source-package-41561" source-rpm="pam_ccreds-3-5.src.rpm"/><source-package last-modified="1174930321" id="rhn-source-package-41562" source-rpm="rhn-client-tools-0.4.13-1.el5.src.rpm"/><source-package last-modified="1174930322" id="rhn-source-package-41563" source-rpm="tree-1.5.0-4.src.rpm"/><source-package last-modified="1174930338" id="rhn-source-package-41564" source-rpm="crash-4.0-3.14.src.rpm"/><source-package last-modified="1174930340" id="rhn-source-package-41565" source-rpm="man-pages-es-1.28-10.1.1.src.rpm"/><source-package last-modified="1174930340" id="rhn-source-package-41566" source-rpm="aspell-pt-0.50-10.2.2.src.rpm"/><source-package last-modified="1174930341" id="rhn-source-package-41567" source-rpm="rdist-6.1.5-44.src.rpm"/><source-package last-modified="1174930342" id="rhn-source-package-41568" source-rpm="agg-2.4-2.1.src.rpm"/><source-package last-modified="1174930342" id="rhn-source-package-41569" source-rpm="hal-cups-utils-0.6.2-5.src.rpm"/><source-package last-modified="1174930343" id="rhn-source-package-41570" source-rpm="perl-LDAP-0.33-3.fc6.src.rpm"/><source-package last-modified="1174930358" id="rhn-source-package-41571" source-rpm="fonts-japanese-0.20061016-4.el5.src.rpm"/><source-package last-modified="1174930373" id="rhn-source-package-41572" source-rpm="openldap-2.3.27-5.src.rpm"/><source-package last-modified="1174930375" id="rhn-source-package-41574" source-rpm="scim-qtimm-0.9.4-5.src.rpm"/><source-package last-modified="1174930384" id="rhn-source-package-41575" source-rpm="hplip-1.6.7-4.1.el5.src.rpm"/><source-package last-modified="1174930385" id="rhn-source-package-41576" source-rpm="desktop-printing-0.19-20.el5.src.rpm"/><source-package last-modified="1174930394" id="rhn-source-package-41577" source-rpm="bind-9.3.3-7.el5.src.rpm"/><source-package last-modified="1174930399" id="rhn-source-package-41578" source-rpm="scim-pinyin-0.5.91-15.el5.src.rpm"/><source-package last-modified="1174930404" id="rhn-source-package-41579" source-rpm="gnome-vfs2-2.16.2-4.el5.src.rpm"/><source-package last-modified="1174930406" id="rhn-source-package-41580" source-rpm="pam_pkcs11-0.5.3-23.src.rpm"/><source-package last-modified="1174930407" id="rhn-source-package-41581" source-rpm="ypbind-1.19-7.el5.src.rpm"/><source-package last-modified="1174930457" id="rhn-source-package-41582" source-rpm="qt4-4.2.1-1.src.rpm"/><source-package last-modified="1174930459" id="rhn-source-package-41583" source-rpm="aspell-sv-0.51-1.2.1.src.rpm"/><source-package last-modified="1174930460" id="rhn-source-package-41584" source-rpm="system-config-date-1.8.12-1.el5.src.rpm"/><source-package last-modified="1174930460" id="rhn-source-package-41585" source-rpm="fbset-2.1-22.src.rpm"/><source-package last-modified="1174930461" id="rhn-source-package-41586" source-rpm="kexec-tools-1.101-164.el5.src.rpm"/><source-package last-modified="1174930462" id="rhn-source-package-41587" source-rpm="setuptool-1.19.2-1.src.rpm"/><source-package last-modified="1174930465" id="rhn-source-package-41588" source-rpm="util-linux-2.13-0.44.el5.src.rpm"/><source-package last-modified="1174930468" id="rhn-source-package-41589" source-rpm="gnuplot-4.0.0-12.src.rpm"/><source-package last-modified="1174930468" id="rhn-source-package-41590" source-rpm="rhel-instnum-1.0.7-1.el5.src.rpm"/><source-package last-modified="1174930472" id="rhn-source-package-41591" source-rpm="libhugetlbfs-1.0.1-1.el5.src.rpm"/><source-package last-modified="1174930472" id="rhn-source-package-41592" source-rpm="convmv-1.10-1.el5.src.rpm"/><source-package last-modified="1174930474" id="rhn-source-package-41593" source-rpm="epic-2.4-1.src.rpm"/><source-package last-modified="1174930475" id="rhn-source-package-41594" source-rpm="gconf-editor-2.16.0-3.el5.src.rpm"/><source-package last-modified="1174930476" id="rhn-source-package-41595" source-rpm="man-1.6d-1.1.src.rpm"/><source-package last-modified="1174930476" id="rhn-source-package-41596" source-rpm="xorg-x11-xinit-1.0.2-13.el5.src.rpm"/><source-package last-modified="1174930478" id="rhn-source-package-41597" source-rpm="slrn-0.9.8.1pl1-1.2.2.src.rpm"/><source-package last-modified="1174930480" id="rhn-source-package-41598" source-rpm="shadow-utils-4.0.17-12.el5.src.rpm"/><source-package last-modified="1174930482" id="rhn-source-package-41599" source-rpm="libdbi-drivers-0.8.1a-1.2.2.src.rpm"/><source-package last-modified="1174930483" id="rhn-source-package-41600" source-rpm="mikmod-3.1.6-38.1.src.rpm"/><source-package last-modified="1174930484" id="rhn-source-package-41601" source-rpm="squashfs-tools-3.0-4.src.rpm"/><source-package last-modified="1174930485" id="rhn-source-package-41602" source-rpm="iptables-1.3.5-1.2.1.src.rpm"/><source-package last-modified="1174930485" id="rhn-source-package-41603" source-rpm="amtu-1.0.4-4.src.rpm"/><source-package last-modified="1174930486" id="rhn-source-package-41604" source-rpm="linuxdoc-tools-0.9.21-7.1.src.rpm"/><source-package last-modified="1174930490" id="rhn-source-package-41605" source-rpm="postfix-2.3.3-2.src.rpm"/><source-package last-modified="1174930490" id="rhn-source-package-41606" source-rpm="rsh-0.17-37.el5.src.rpm"/><source-package last-modified="1174930491" id="rhn-source-package-41607" source-rpm="aspell-fo-0.51-4.2.2.src.rpm"/><source-package last-modified="1174930492" id="rhn-source-package-41608" source-rpm="dhcpv6-0.10-33.el5.src.rpm"/><source-package last-modified="1174930493" id="rhn-source-package-41609" source-rpm="tn5250-0.17.3-6.src.rpm"/><source-package last-modified="1174930495" id="rhn-source-package-41610" source-rpm="gnome-audio-2.0.0-3.1.1.src.rpm"/><source-package last-modified="1174930496" id="rhn-source-package-41611" source-rpm="docbook-slides-3.3.1-2.1.1.src.rpm"/><source-package last-modified="1174930499" id="rhn-source-package-41612" source-rpm="netpbm-10.35-6.fc6.src.rpm"/><source-package last-modified="1174930509" id="rhn-source-package-41614" source-rpm="libutempter-1.1.4-3.fc6.src.rpm"/><source-package last-modified="1174930509" id="rhn-source-package-41615" source-rpm="perl-DBD-MySQL-3.0007-1.fc6.src.rpm"/><source-package last-modified="1174930511" id="rhn-source-package-41616" source-rpm="busybox-1.2.0-3.src.rpm"/><source-package last-modified="1174930512" id="rhn-source-package-41617" source-rpm="man-pages-ru-0.97-1.1.1.src.rpm"/><source-package last-modified="1174930513" id="rhn-source-package-41618" source-rpm="docbook-style-dsssl-1.79-4.1.src.rpm"/><source-package last-modified="1174930536" id="rhn-source-package-41619" source-rpm="festival-1.95-5.2.1.src.rpm"/><source-package last-modified="1174930537" id="rhn-source-package-41620" source-rpm="mailcap-2.1.23-1.fc6.src.rpm"/><source-package last-modified="1174930537" id="rhn-source-package-41621" source-rpm="system-config-kdump-1.0.9-3.el5.src.rpm"/><source-package last-modified="1174930538" id="rhn-source-package-41622" source-rpm="ltrace-0.5-6.45svn.fc6.src.rpm"/><source-package last-modified="1174930541" id="rhn-source-package-41623" source-rpm="cvs-1.11.22-5.el5.src.rpm"/><source-package last-modified="1174930542" id="rhn-source-package-41624" source-rpm="adjtimex-1.20-2.1.src.rpm"/><source-package last-modified="1174930544" id="rhn-source-package-41625" source-rpm="kdeadmin-3.5.4-2.fc6.src.rpm"/><source-package last-modified="1174930545" id="rhn-source-package-41626" source-rpm="expect-5.43.0-5.1.src.rpm"/><source-package last-modified="1174930546" id="rhn-source-package-41627" source-rpm="libgnome-java-2.12.4-3.fc6.src.rpm"/><source-package last-modified="1174930547" id="rhn-source-package-41628" source-rpm="dosfstools-2.11-6.2.el5.src.rpm"/><source-package last-modified="1174930548" id="rhn-source-package-41629" source-rpm="nano-1.3.12-1.1.src.rpm"/><source-package last-modified="1174930549" id="rhn-source-package-41630" source-rpm="pinfo-0.6.9-1.fc6.src.rpm"/><source-package last-modified="1174930556" id="rhn-source-package-41631" source-rpm="mesa-6.5.1-7.2.el5.src.rpm"/><source-package last-modified="1174930557" id="rhn-source-package-41632" source-rpm="sysreport-1.4.3-10.el5.src.rpm"/><source-package last-modified="1174930558" id="rhn-source-package-41633" source-rpm="setserial-2.17-19.2.2.src.rpm"/><source-package last-modified="1174930576" id="rhn-source-package-41635" source-rpm="compat-glibc-2.3.4-2.26.src.rpm"/><source-package last-modified="1174930578" id="rhn-source-package-41636" source-rpm="docbook-style-xsl-1.69.1-5.1.src.rpm"/><source-package last-modified="1174930579" id="rhn-source-package-41637" source-rpm="mysql-connector-odbc-3.51.12-2.2.src.rpm"/><source-package last-modified="1174930582" id="rhn-source-package-41638" source-rpm="yum-rhn-plugin-0.4.3-1.el5.src.rpm"/><source-package last-modified="1174930583" id="rhn-source-package-41639" source-rpm="telnet-0.17-38.el5.src.rpm"/><source-package last-modified="1174930584" id="rhn-source-package-41640" source-rpm="audit-1.3.1-1.el5.src.rpm"/><source-package last-modified="1174930590" id="rhn-source-package-41641" source-rpm="isdn4k-utils-3.2-50.1.src.rpm"/><source-package last-modified="1174930594" id="rhn-source-package-41642" source-rpm="nautilus-2.16.2-6.el5.src.rpm"/><source-package last-modified="1174930596" id="rhn-source-package-41643" source-rpm="system-config-lvm-1.0.22-1.0.el5.src.rpm"/><source-package last-modified="1174930597" id="rhn-source-package-41644" source-rpm="nkf-2.07-1.1.fc6.src.rpm"/><source-package last-modified="1174930598" id="rhn-source-package-41645" source-rpm="hdparm-6.6-2.src.rpm"/><source-package last-modified="1174930599" id="rhn-source-package-41646" source-rpm="grub-0.97-13.src.rpm"/><source-package last-modified="1174930601" id="rhn-source-package-41647" source-rpm="tcsh-6.14-12.el5.src.rpm"/><source-package last-modified="1174930601" id="rhn-source-package-41648" source-rpm="xorg-x11-resutils-7.1-2.fc6.src.rpm"/><source-package last-modified="1174930603" id="rhn-source-package-41649" source-rpm="postgresql-odbc-08.01.0200-3.1.src.rpm"/><source-package last-modified="1174930604" id="rhn-source-package-41650" source-rpm="compat-slang-1.4.9-27.2.2.src.rpm"/><source-package last-modified="1174930604" id="rhn-source-package-41651" source-rpm="xmlto-0.0.18-13.1.src.rpm"/><source-package last-modified="1174930605" id="rhn-source-package-41652" source-rpm="statserial-1.1-38.2.2.src.rpm"/><source-package last-modified="1174930606" id="rhn-source-package-41653" source-rpm="openCryptoki-2.2.4-15.el5.src.rpm"/><source-package last-modified="1174930612" id="rhn-source-package-41654" source-rpm="httpd-2.2.3-6.el5.src.rpm"/><source-package last-modified="1174930613" id="rhn-source-package-41655" source-rpm="memtest86+-1.65-4.1.src.rpm"/><source-package last-modified="1174930613" id="rhn-source-package-41656" source-rpm="sos-1.3-1.el5.src.rpm"/><source-package last-modified="1174930614" id="rhn-source-package-41657" source-rpm="attr-2.4.32-1.1.src.rpm"/><source-package last-modified="1174930619" id="rhn-source-package-41658" source-rpm="coreutils-5.97-12.1.el5.src.rpm"/><source-package last-modified="1174930620" id="rhn-source-package-41659" source-rpm="authconfig-5.3.12-2.el5.src.rpm"/><source-package last-modified="1174930622" id="rhn-source-package-41660" source-rpm="system-config-soundcard-2.0.6-1.el5.src.rpm"/><source-package last-modified="1174930623" id="rhn-source-package-41661" source-rpm="psacct-6.3.2-41.1.src.rpm"/><source-package last-modified="1174930625" id="rhn-source-package-41662" source-rpm="gnome-keyring-manager-2.16.0-3.el5.src.rpm"/><source-package last-modified="1174930625" id="rhn-source-package-41663" source-rpm="aspell-id-0.50.1-4.2.2.src.rpm"/><source-package last-modified="1174930626" id="rhn-source-package-41664" source-rpm="system-config-services-0.9.4-1.el5.src.rpm"/><source-package last-modified="1174930629" id="rhn-source-package-41665" source-rpm="control-center-2.16.0-14.el5.src.rpm"/><source-package last-modified="1174930630" id="rhn-source-package-41666" source-rpm="rng-utils-2.0-1.14.1.fc6.src.rpm"/><source-package last-modified="1174930631" id="rhn-source-package-41667" source-rpm="sg3_utils-1.20-2.1.src.rpm"/><source-package last-modified="1174930631" id="rhn-source-package-41668" source-rpm="nautilus-open-terminal-0.6-6.el5.src.rpm"/><source-package last-modified="1174930632" id="rhn-source-package-41669" source-rpm="SysVinit-2.86-14.src.rpm"/><source-package last-modified="1174930632" id="rhn-source-package-41670" source-rpm="system-config-rootpassword-1.1.9.1-1.src.rpm"/><source-package last-modified="1174930637" id="rhn-source-package-41671" source-rpm="exim-doc-4.63-2.el5.src.rpm"/><source-package last-modified="1174930637" id="rhn-source-package-41672" source-rpm="perl-XML-NamespaceSupport-1.09-1.2.1.src.rpm"/><source-package last-modified="1174930640" id="rhn-source-package-41673" source-rpm="setroubleshoot-1.8.11-4.el5.src.rpm"/><source-package last-modified="1174930641" id="rhn-source-package-41674" source-rpm="systemtap-0.5.12-1.el5.src.rpm"/><source-package last-modified="1174930642" id="rhn-source-package-41675" source-rpm="aspell-it-0.53-4.2.1.src.rpm"/><source-package last-modified="1174930643" id="rhn-source-package-41676" source-rpm="system-config-printer-0.7.32.5-1.el5.src.rpm"/><source-package last-modified="1174930643" id="rhn-source-package-41677" source-rpm="perl-XML-Grove-0.46alpha-29.1.1.src.rpm"/><source-package last-modified="1174930671" id="rhn-source-package-41678" source-rpm="fonts-chinese-3.02-9.6.el5.src.rpm"/><source-package last-modified="1174930677" id="rhn-source-package-41679" source-rpm="ImageMagick-6.2.8.0-3.el5.4.src.rpm"/><source-package last-modified="1174930678" id="rhn-source-package-41680" source-rpm="hfsutils-3.2.6-7.2.2.src.rpm"/><source-package last-modified="1174930681" id="rhn-source-package-41681" source-rpm="linuxwacom-0.7.4.3-2.el5.src.rpm"/><source-package last-modified="1174930681" id="rhn-source-package-41682" source-rpm="readahead-1.3-7.el5.src.rpm"/><source-package last-modified="1174930682" id="rhn-source-package-41683" source-rpm="mt-st-0.9b-2.2.2.src.rpm"/><source-package last-modified="1174930683" id="rhn-source-package-41684" source-rpm="scim-sinhala-0.2.0-2.fc6.src.rpm"/><source-package last-modified="1174930690" id="rhn-source-package-41685" source-rpm="nss_db-2.2-35.1.src.rpm"/><source-package last-modified="1174930691" id="rhn-source-package-41686" source-rpm="gnome-netstatus-2.12.0-5.el5.src.rpm"/><source-package last-modified="1174930692" id="rhn-source-package-41687" source-rpm="cpio-2.6-20.src.rpm"/><source-package last-modified="1174930694" id="rhn-source-package-41689" source-rpm="dogtail-0.6.1-2.el5.src.rpm"/><source-package last-modified="1174930694" id="rhn-source-package-41690" source-rpm="mkbootdisk-1.5.3-2.1.src.rpm"/><source-package last-modified="1174930696" id="rhn-source-package-41691" source-rpm="iproute-2.6.18-4.el5.src.rpm"/><source-package last-modified="1174930697" id="rhn-source-package-41692" source-rpm="xterm-215-4.el5.src.rpm"/><source-package last-modified="1174930699" id="rhn-source-package-41693" source-rpm="gftp-2.0.18-3.2.2.src.rpm"/><source-package last-modified="1174930700" id="rhn-source-package-41694" source-rpm="pump-0.8.24-1.2.2.1.src.rpm"/><source-package last-modified="1174930700" id="rhn-source-package-41695" source-rpm="rhdb-utils-8.1.1-1.2.2.src.rpm"/><source-package last-modified="1174930705" id="rhn-source-package-41696" source-rpm="anthy-7900-4.el5.src.rpm"/><source-package last-modified="1174930714" id="rhn-source-package-41698" source-rpm="compat-db-4.2.52-5.1.src.rpm"/><source-package last-modified="1174930715" id="rhn-source-package-41699" source-rpm="minicom-2.1-3.src.rpm"/><source-package last-modified="1174930715" id="rhn-source-package-41700" source-rpm="aspell-gl-0.50-4.2.2.src.rpm"/><source-package last-modified="1174930718" id="rhn-source-package-41701" source-rpm="gnome-terminal-2.16.0-3.el5.src.rpm"/><source-package last-modified="1174930719" id="rhn-source-package-41702" source-rpm="aspell-de-0.50-11.2.2.src.rpm"/><source-package last-modified="1174930719" id="rhn-source-package-41703" source-rpm="at-3.1.8-82.fc6.src.rpm"/><source-package last-modified="1174930721" id="rhn-source-package-41704" source-rpm="texinfo-4.8-14.el5.src.rpm"/><source-package last-modified="1174930723" id="rhn-source-package-41705" source-rpm="aspell-0.60.3-7.1.src.rpm"/><source-package last-modified="1174930727" id="rhn-source-package-41706" source-rpm="scim-hangul-0.2.2-7.fc6.src.rpm"/><source-package last-modified="1174930727" id="rhn-source-package-41707" source-rpm="python-ldap-2.2.0-2.1.src.rpm"/><source-package last-modified="1174930728" id="rhn-source-package-41708" source-rpm="ed-0.2-38.2.2.src.rpm"/><source-package last-modified="1174930731" id="rhn-source-package-41709" source-rpm="gnome-themes-2.16.0-1.fc6.src.rpm"/><source-package last-modified="1174930732" id="rhn-source-package-41710" source-rpm="gnome-session-2.16.0-6.el5.src.rpm"/><source-package last-modified="1174930733" id="rhn-source-package-41711" source-rpm="scim-chewing-0.3.1-10.el5.src.rpm"/><source-package last-modified="1174930734" id="rhn-source-package-41712" source-rpm="man-pages-it-0.3.0-17.1.src.rpm"/><source-package last-modified="1174930747" id="rhn-source-package-41713" source-rpm="gimp-2.2.13-1.fc6.src.rpm"/><source-package last-modified="1174930748" id="rhn-source-package-41714" source-rpm="vixie-cron-4.1-66.1.el5.src.rpm"/><source-package last-modified="1174930748" id="rhn-source-package-41715" source-rpm="quota-3.13-1.2.3.2.el5.src.rpm"/><source-package last-modified="1174930750" id="rhn-source-package-41716" source-rpm="gnome-bluetooth-0.7.0-10.2.el5.src.rpm"/><source-package last-modified="1174930750" id="rhn-source-package-41717" source-rpm="xinetd-2.3.14-10.el5.src.rpm"/><source-package last-modified="1174930751" id="rhn-source-package-41718" source-rpm="tcp_wrappers-7.6-40.2.1.src.rpm"/><source-package last-modified="1174930752" id="rhn-source-package-41719" source-rpm="microcode_ctl-1.15-1.40.el5.src.rpm"/><source-package last-modified="1174930758" id="rhn-source-package-41720" source-rpm="openmotif-2.3.0-0.3.el5.src.rpm"/><source-package last-modified="1174930759" id="rhn-source-package-41721" source-rpm="tsclient-0.148-6.el5.src.rpm"/><source-package last-modified="1174930759" id="rhn-source-package-41722" source-rpm="rdesktop-1.4.1-4.src.rpm"/><source-package last-modified="1174930760" id="rhn-source-package-41723" source-rpm="mkinitrd-5.1.19.6-1.src.rpm"/><source-package last-modified="1174930761" id="rhn-source-package-41724" source-rpm="pm-utils-0.19-3.src.rpm"/><source-package last-modified="1174930791" id="rhn-source-package-41725" source-rpm="esc-1.0.0-20.el5.src.rpm"/><source-package last-modified="1174930793" id="rhn-source-package-41726" source-rpm="joe-3.4-3.src.rpm"/><source-package last-modified="1174930795" id="rhn-source-package-41727" source-rpm="totem-2.16.4-2.el5.src.rpm"/><source-package last-modified="1174930796" id="rhn-source-package-41728" source-rpm="irda-utils-0.9.17-2.fc6.src.rpm"/><source-package last-modified="1174930798" id="rhn-source-package-41729" source-rpm="setools-3.0-3.el5.src.rpm"/><source-package last-modified="1174930801" id="rhn-source-package-41730" source-rpm="termcap-5.5-1.20060701.1.src.rpm"/><source-package last-modified="1174930807" id="rhn-source-package-41731" source-rpm="cachefilesd-0.7-6.el5.src.rpm"/><source-package last-modified="1174930817" id="rhn-source-package-41732" source-rpm="nfs-utils-1.0.9-16.el5.src.rpm"/><source-package last-modified="1174930817" id="rhn-source-package-41733" source-rpm="pam_passwdqc-1.0.2-1.2.2.src.rpm"/><source-package last-modified="1174930859" id="rhn-source-package-41735" source-rpm="aspell-el-0.50-4.2.2.src.rpm"/><source-package last-modified="1174930862" id="rhn-source-package-41736" source-rpm="xcdroast-0.98a15-12.2.2.src.rpm"/><source-package last-modified="1174930864" id="rhn-source-package-41737" source-rpm="prelink-0.3.9-2.src.rpm"/><source-package last-modified="1174930865" id="rhn-source-package-41738" source-rpm="distcache-1.4.5-14.1.src.rpm"/><source-package last-modified="1174930866" id="rhn-source-package-41739" source-rpm="avahi-0.6.16-1.el5.src.rpm"/><source-package last-modified="1174930868" id="rhn-source-package-41740" source-rpm="gnome-backgrounds-2.15.92-1.fc6.src.rpm"/><source-package last-modified="1174930869" id="rhn-source-package-41741" source-rpm="aspell-en-6.0-2.1.src.rpm"/><source-package last-modified="1174930869" id="rhn-source-package-41742" source-rpm="xorg-x11-drivers-7.1-4.1.el5.src.rpm"/><source-package last-modified="1174930871" id="rhn-source-package-41743" source-rpm="aspell-cs-0.51-3.2.2.src.rpm"/><source-package last-modified="1174930873" id="rhn-source-package-41744" source-rpm="gnome-power-manager-2.16.0-7.el5.src.rpm"/><source-package last-modified="1174930880" id="rhn-source-package-41745" source-rpm="vnc-4.1.2-9.el5.src.rpm"/><source-package last-modified="1174930881" id="rhn-source-package-41746" source-rpm="aspell-bg-0.50-11.2.2.src.rpm"/><source-package last-modified="1174930884" id="rhn-source-package-41747" source-rpm="dejavu-lgc-fonts-2.10-1.src.rpm"/><source-package last-modified="1174930885" id="rhn-source-package-41748" source-rpm="dump-0.4b41-2.fc6.src.rpm"/><source-package last-modified="1174930887" id="rhn-source-package-41749" source-rpm="hal-0.5.8.1-19.el5.src.rpm"/><source-package last-modified="1174930905" id="rhn-source-package-41750" source-rpm="mysql-5.0.22-2.1.src.rpm"/><source-package last-modified="1174930930" id="rhn-source-package-41751" source-rpm="kdebase-3.5.4-13.5.el5.src.rpm"/><source-package last-modified="1174930933" id="rhn-source-package-41752" source-rpm="oprofile-0.9.2-6.el5.src.rpm"/><source-package last-modified="1174930935" id="rhn-source-package-41753" source-rpm="spamassassin-3.1.7-4.el5.src.rpm"/><source-package last-modified="1174930949" id="rhn-source-package-41754" source-rpm="redhat-logos-4.9.16-1.src.rpm"/><source-package last-modified="1174930950" id="rhn-source-package-41755" source-rpm="kbd-1.12-19.el5.src.rpm"/><source-package last-modified="1174930952" id="rhn-source-package-41756" source-rpm="parted-1.8.1-4.el5.src.rpm"/><source-package last-modified="1174930952" id="rhn-source-package-41757" source-rpm="sysklogd-1.4.1-39.2.src.rpm"/><source-package last-modified="1174930954" id="rhn-source-package-41758" source-rpm="unzip-5.52-2.2.1.src.rpm"/><source-package last-modified="1174930955" id="rhn-source-package-41759" source-rpm="scim-anthy-1.2.0-5.el5.src.rpm"/><source-package last-modified="1174930955" id="rhn-source-package-41760" source-rpm="perl-Convert-ASN1-0.20-1.1.src.rpm"/><source-package last-modified="1174930957" id="rhn-source-package-41761" source-rpm="synaptics-0.14.4-8.fc6.src.rpm"/><source-package last-modified="1174930957" id="rhn-source-package-41762" source-rpm="authd-1.4.3-9.src.rpm"/><source-package last-modified="1174930958" id="rhn-source-package-41763" source-rpm="aspell-da-0.50-12.2.2.src.rpm"/><source-package last-modified="1174930959" id="rhn-source-package-41764" source-rpm="file-4.17-8.src.rpm"/><source-package last-modified="1174930960" id="rhn-source-package-41765" source-rpm="aspell-no-0.50.1-9.2.2.src.rpm"/><source-package last-modified="1174930964" id="rhn-source-package-41766" source-rpm="cups-1.2.4-11.5.el5.src.rpm"/><source-package last-modified="1174930964" id="rhn-source-package-41767" source-rpm="rp-pppoe-3.5-32.1.src.rpm"/><source-package last-modified="1174930966" id="rhn-source-package-41768" source-rpm="brltty-3.7.2-1.fc6.src.rpm"/><source-package last-modified="1174930967" id="rhn-source-package-41769" source-rpm="sane-frontends-1.0.14-1.2.2.src.rpm"/><source-package last-modified="1174930969" id="rhn-source-package-41770" source-rpm="scim-m17n-0.2.0-6.fc6.src.rpm"/><source-package last-modified="1174930970" id="rhn-source-package-41771" source-rpm="sudo-1.6.8p12-10.src.rpm"/><source-package last-modified="1174930981" id="rhn-source-package-41772" source-rpm="rpm-4.4.2-37.el5.src.rpm"/><source-package last-modified="1174930982" id="rhn-source-package-41773" source-rpm="passwd-0.73-1.src.rpm"/><source-package last-modified="1174930983" id="rhn-source-package-41774" source-rpm="keyutils-1.2-1.el5.src.rpm"/><source-package last-modified="1174930984" id="rhn-source-package-41775" source-rpm="scim-chinese-standard-0.0.2-1.el5.src.rpm"/><source-package last-modified="1174930985" id="rhn-source-package-41776" source-rpm="libgtk-java-2.8.7-3.el5.src.rpm"/><source-package last-modified="1174930985" id="rhn-source-package-41777" source-rpm="finger-0.17-32.2.1.1.src.rpm"/><source-package last-modified="1174930994" id="rhn-source-package-41778" source-rpm="kdeaccessibility-3.5.4-1.fc6.src.rpm"/><source-package last-modified="1174930996" id="rhn-source-package-41779" source-rpm="sound-juicer-2.16.0-3.el5.src.rpm"/><source-package last-modified="1174930997" id="rhn-source-package-41780" source-rpm="stunnel-4.15-2.src.rpm"/><source-package last-modified="1174930997" id="rhn-source-package-41781" source-rpm="dvd+rw-tools-7.0-0.el5.3.src.rpm"/><source-package last-modified="1174931000" id="rhn-source-package-41782" source-rpm="lynx-2.8.5-28.1.src.rpm"/><source-package last-modified="1174931001" id="rhn-source-package-41783" source-rpm="man-pages-ko-1.48-15.1.1.src.rpm"/><source-package last-modified="1174931001" id="rhn-source-package-41784" source-rpm="cpuspeed-1.2.1-1.45.el5.src.rpm"/><source-package last-modified="1174931002" id="rhn-source-package-41785" source-rpm="alacarte-0.10.0-1.fc6.src.rpm"/><source-package last-modified="1174931003" id="rhn-source-package-41786" source-rpm="m2crypto-0.16-6.el5.1.src.rpm"/><source-package last-modified="1174931004" id="rhn-source-package-41787" source-rpm="aspell-af-0.50-4.2.2.src.rpm"/><source-package last-modified="1174931004" id="rhn-source-package-41788" source-rpm="aspell-gd-0.50-4.2.2.src.rpm"/><source-package last-modified="1174931005" id="rhn-source-package-41789" source-rpm="vino-2.13.5-6.el5.src.rpm"/><source-package last-modified="1174931006" id="rhn-source-package-41790" source-rpm="acpid-1.0.4-5.src.rpm"/><source-package last-modified="1174931007" id="rhn-source-package-41791" source-rpm="zip-2.31-1.2.2.src.rpm"/><source-package last-modified="1174931008" id="rhn-source-package-41792" source-rpm="lsof-4.78-3.src.rpm"/><source-package last-modified="1174931009" id="rhn-source-package-41793" source-rpm="pirut-1.2.10-1.el5.src.rpm"/><source-package last-modified="1174931009" id="rhn-source-package-41794" source-rpm="cdparanoia-alpha9.8-27.2.src.rpm"/><source-package last-modified="1174931011" id="rhn-source-package-41795" source-rpm="wireless-tools-28-2.el5.src.rpm"/><source-package last-modified="1174931012" id="rhn-source-package-41796" source-rpm="ipsec-tools-0.6.5-6.src.rpm"/><source-package last-modified="1174931016" id="rhn-source-package-41798" source-rpm="gnupg-1.4.5-12.src.rpm"/><source-package last-modified="1174931017" id="rhn-source-package-41799" source-rpm="stardict-2.4.5-5.src.rpm"/><source-package last-modified="1174931019" id="rhn-source-package-41800" source-rpm="coolkey-1.0.1-16.el5.src.rpm"/><source-package last-modified="1174931019" id="rhn-source-package-41801" source-rpm="filesystem-2.4.0-1.src.rpm"/><source-package last-modified="1174931021" id="rhn-source-package-41802" source-rpm="fonts-hebrew-0.100-4.1.1.src.rpm"/><source-package last-modified="1174931021" id="rhn-source-package-41803" source-rpm="xhtml1-dtds-1.0-7.1.1.src.rpm"/><source-package last-modified="1174931023" id="rhn-source-package-41804" source-rpm="x3270-3.3.4p7-3.el5.1.src.rpm"/><source-package last-modified="1174931025" id="rhn-source-package-41805" source-rpm="orca-1.0.0-5.el5.src.rpm"/><source-package last-modified="1174931026" id="rhn-source-package-41806" source-rpm="selinux-policy-2.4.6-30.el5.src.rpm"/><source-package last-modified="1174931026" id="rhn-source-package-41807" source-rpm="fonts-sinhala-0.2.2-1.src.rpm"/><source-package last-modified="1174931028" id="rhn-source-package-41809" source-rpm="nss_ldap-253-3.src.rpm"/><source-package last-modified="1174931028" id="rhn-source-package-41810" source-rpm="bridge-utils-1.1-2.src.rpm"/><source-package last-modified="1174931029" id="rhn-source-package-41811" source-rpm="oddjob-0.27-7.src.rpm"/><source-package last-modified="1174931030" id="rhn-source-package-41812" source-rpm="bug-buddy-2.16.0-2.el5.src.rpm"/><source-package last-modified="1174931031" id="rhn-source-package-41813" source-rpm="vconfig-1.9-2.1.src.rpm"/><source-package last-modified="1174931031" id="rhn-source-package-41814" source-rpm="system-config-samba-1.2.39-1.el5.src.rpm"/><source-package last-modified="1174931032" id="rhn-source-package-41815" source-rpm="xrestop-0.2-6.2.2.src.rpm"/><source-package last-modified="1174931032" id="rhn-source-package-41816" source-rpm="symlinks-1.2-24.2.2.src.rpm"/><source-package last-modified="1174931033" id="rhn-source-package-41817" source-rpm="system-config-boot-0.2.13-1.el5.src.rpm"/><source-package last-modified="1174931033" id="rhn-source-package-41818" source-rpm="aspell-br-0.50-4.2.2.src.rpm"/><source-package last-modified="1174931034" id="rhn-source-package-41819" source-rpm="gnome-volume-manager-2.15.0-4.el5.src.rpm"/><source-package last-modified="1174931035" id="rhn-source-package-41820" source-rpm="libgconf-java-2.12.4-6.el5.src.rpm"/><source-package last-modified="1174931038" id="rhn-source-package-41821" source-rpm="gnome-media-2.16.1-3.el5.src.rpm"/><source-package last-modified="1174931041" id="rhn-source-package-41822" source-rpm="am-utils-6.1.5-4.1.el5.src.rpm"/><source-package last-modified="1174931046" id="rhn-source-package-41823" source-rpm="gimp-data-extras-2.0.1-1.1.1.src.rpm"/><source-package last-modified="1174931046" id="rhn-source-package-41824" source-rpm="perl-DateManip-5.44-1.2.1.src.rpm"/><source-package last-modified="1174931050" id="rhn-source-package-41825" source-rpm="man-pages-ja-20060815-2.src.rpm"/><source-package last-modified="1174931052" id="rhn-source-package-41826" source-rpm="xorg-x11-apps-7.1-4.el5.src.rpm"/><source-package last-modified="1174931053" id="rhn-source-package-41828" source-rpm="setarch-2.0-1.1.src.rpm"/><source-package last-modified="1174931066" id="rhn-source-package-41829" source-rpm="binutils-2.17.50.0.6-2.el5.src.rpm"/><source-package last-modified="1174931066" id="rhn-source-package-41830" source-rpm="iptstate-1.4-1.1.2.2.src.rpm"/><source-package last-modified="1174931072" id="rhn-source-package-41831" source-rpm="dasher-4.2.0-2.el5.src.rpm"/><source-package last-modified="1174931075" id="rhn-source-package-41832" source-rpm="gnome-screensaver-2.16.1-5.el5.src.rpm"/><source-package last-modified="1174931076" id="rhn-source-package-41833" source-rpm="enscript-1.6.4-4.fc6.src.rpm"/><source-package last-modified="1174931079" id="rhn-source-package-41834" source-rpm="flex-2.5.4a-41.fc6.src.rpm"/><source-package last-modified="1174931079" id="rhn-source-package-41835" source-rpm="crontabs-1.10-8.src.rpm"/><source-package last-modified="1174931080" id="rhn-source-package-41836" source-rpm="lslk-1.29-17.src.rpm"/><source-package last-modified="1174931080" id="rhn-source-package-41837" source-rpm="eruby-1.0.5-6.1.src.rpm"/><source-package last-modified="1174931083" id="rhn-source-package-41838" source-rpm="a2ps-4.13b-57.1.el5.src.rpm"/><source-package last-modified="1174931084" id="rhn-source-package-41839" source-rpm="redhat-rpm-config-8.0.45-17.el5.src.rpm"/><source-package last-modified="1174931084" id="rhn-source-package-41840" source-rpm="logwatch-7.3-5.src.rpm"/><source-package last-modified="1174931085" id="rhn-source-package-41841" source-rpm="lv-4.51-8.1.src.rpm"/><source-package last-modified="1174931087" id="rhn-source-package-41842" source-rpm="xorg-x11-utils-7.1-2.fc6.src.rpm"/><source-package last-modified="1174931087" id="rhn-source-package-41843" source-rpm="joystick-1.2.15-20.2.2.src.rpm"/><source-package last-modified="1174931088" id="rhn-source-package-41844" source-rpm="libglade-java-2.12.5-3.fc6.src.rpm"/><source-package last-modified="1174931095" id="rhn-source-package-41845" source-rpm="gnome-applets-2.16.0.1-19.el5.src.rpm"/><source-package last-modified="1174931096" id="rhn-source-package-41846" source-rpm="iptraf-3.0.0-5.el5.src.rpm"/><source-package last-modified="1174931098" id="rhn-source-package-41847" source-rpm="emacspeak-23.0-2.1.src.rpm"/><source-package last-modified="1174931099" id="rhn-source-package-41848" source-rpm="aspell-cy-0.50-4.2.2.src.rpm"/><source-package last-modified="1174931099" id="rhn-source-package-41849" source-rpm="units-1.85-1.2.2.src.rpm"/><source-package last-modified="1174931101" id="rhn-source-package-41850" source-rpm="strace-4.5.15-1.el5.src.rpm"/><source-package last-modified="1174931107" id="rhn-source-package-41851" source-rpm="cadaver-0.22.3-4.el5.src.rpm"/><source-package last-modified="1174931109" id="rhn-source-package-41852" source-rpm="xchat-2.6.6-8.el5.src.rpm"/><source-package last-modified="1174931111" id="rhn-source-package-41853" source-rpm="xmlsec1-1.2.9-8.1.src.rpm"/><source-package last-modified="1174931111" id="rhn-source-package-41854" source-rpm="traceroute-2.0.1-2.el5.src.rpm"/><source-package last-modified="1174931115" id="rhn-source-package-41855" source-rpm="man-pages-pl-0.24-2.1.src.rpm"/><source-package last-modified="1174931117" id="rhn-source-package-41856" source-rpm="exim-4.63-3.el5.src.rpm"/><source-package last-modified="1174931159" id="rhn-source-package-41859" source-rpm="xen-3.0.3-25.el5.src.rpm"/><source-package last-modified="1174931169" id="rhn-source-package-41863" source-rpm="ant-1.6.5-2jpp.2.src.rpm"/><source-package last-modified="1174931170" id="rhn-source-package-41864" source-rpm="ctags-5.6-1.1.src.rpm"/><source-package last-modified="1174931172" id="rhn-source-package-41865" source-rpm="libchewing-0.3.0-7.el5.src.rpm"/><source-package last-modified="1174931174" id="rhn-source-package-41866" source-rpm="xml-commons-1.3.02-0.b2.7jpp.10.src.rpm"/><source-package last-modified="1174931175" id="rhn-source-package-41867" source-rpm="javacc-4.0-3jpp.3.src.rpm"/><source-package last-modified="1174931176" id="rhn-source-package-41868" source-rpm="junit-3.8.2-3jpp.1.src.rpm"/><source-package last-modified="1174931189" id="rhn-source-package-41869" source-rpm="boost-1.33.1-10.el5.src.rpm"/><source-package last-modified="1174931191" id="rhn-source-package-41870" source-rpm="bison-2.3-2.1.src.rpm"/><source-package last-modified="1174931193" id="rhn-source-package-41871" source-rpm="libwvstreams-4.2.2-2.1.src.rpm"/><source-package last-modified="1174931199" id="rhn-source-package-41872" source-rpm="tomcat5-5.5.17-8jpp.2.src.rpm"/><source-package last-modified="1174931204" id="rhn-source-package-41873" source-rpm="xalan-j2-2.7.0-6jpp.1.src.rpm"/><source-package last-modified="1174931206" id="rhn-source-package-41874" source-rpm="castor-0.9.5-1jpp.7.src.rpm"/><source-package last-modified="1174931208" id="rhn-source-package-41875" source-rpm="libgnomeui-2.16.0-5.el5.src.rpm"/><source-package last-modified="1174931209" id="rhn-source-package-41876" source-rpm="velocity-1.4-6jpp.1.src.rpm"/><source-package last-modified="1174931211" id="rhn-source-package-41877" source-rpm="m17n-lib-1.3.3-1.1.fc6.src.rpm"/><source-package last-modified="1174931212" id="rhn-source-package-41878" source-rpm="libdv-0.104-4.fc6.1.src.rpm"/><source-package last-modified="1174931220" id="rhn-source-package-41879" source-rpm="lam-7.1.2-8.fc6.src.rpm"/><source-package last-modified="1174931233" id="rhn-source-package-41880" source-rpm="openib-1.1-5.el5.src.rpm"/><source-package last-modified="1174931234" id="rhn-source-package-41881" source-rpm="gtkspell-2.0.11-2.1.src.rpm"/><source-package last-modified="1174931238" id="rhn-source-package-41882" source-rpm="tk-8.4.13-3.fc6.src.rpm"/><source-package last-modified="1174931241" id="rhn-source-package-41883" source-rpm="ncurses-5.5-24.20060715.src.rpm"/><source-package last-modified="1174931244" id="rhn-source-package-41884" source-rpm="splint-3.1.1-16.el5.src.rpm"/><source-package last-modified="1174931245" id="rhn-source-package-41885" source-rpm="Xaw3d-1.5E-10.1.src.rpm"/><source-package last-modified="1174931246" id="rhn-source-package-41886" source-rpm="libmusicbrainz-2.1.1-4.1.src.rpm"/><source-package last-modified="1174931272" id="rhn-source-package-41887" source-rpm="emacs-21.4-17.src.rpm"/><source-package last-modified="1174931274" id="rhn-source-package-41888" source-rpm="libexif-0.6.13-4.el5.src.rpm"/><source-package last-modified="1174931276" id="rhn-source-package-41889" source-rpm="libtheora-1.0alpha7-1.src.rpm"/><source-package last-modified="1174931277" id="rhn-source-package-41890" source-rpm="libXtst-1.0.1-3.1.src.rpm"/><source-package last-modified="1174931278" id="rhn-source-package-41891" source-rpm="audiofile-0.2.6-5.src.rpm"/><source-package last-modified="1174931279" id="rhn-source-package-41892" source-rpm="imake-1.0.2-3.src.rpm"/><source-package last-modified="1174931281" id="rhn-source-package-41893" source-rpm="avalon-logkit-1.2-4jpp.3.src.rpm"/><source-package last-modified="1174931282" id="rhn-source-package-41894" source-rpm="xorg-x11-drv-via-0.2.1-9.src.rpm"/><source-package last-modified="1174931283" id="rhn-source-package-41895" source-rpm="mx4j-3.0.1-6jpp.4.src.rpm"/><source-package last-modified="1174931287" id="rhn-source-package-41896" source-rpm="lm_sensors-2.10.0-3.1.src.rpm"/><source-package last-modified="1174931296" id="rhn-source-package-41897" source-rpm="php-5.1.6-5.el5.src.rpm"/><source-package last-modified="1174931305" id="rhn-source-package-41898" source-rpm="iso-codes-0.53-1.src.rpm"/><source-package last-modified="1174931305" id="rhn-source-package-41899" source-rpm="libiec61883-1.0.0-11.fc6.src.rpm"/><source-package last-modified="1174931307" id="rhn-source-package-41900" source-rpm="cman-2.0.60-1.el5.src.rpm"/><source-package last-modified="1174931307" id="rhn-source-package-41901" source-rpm="jakarta-commons-pool-1.3-5jpp.1.src.rpm"/><source-package last-modified="1174931314" id="rhn-source-package-41902" source-rpm="subversion-1.4.2-2.el5.src.rpm"/><source-package last-modified="1174931393" id="rhn-source-package-41903" source-rpm="eclipse-3.2.1-18.el5.src.rpm"/><source-package last-modified="1174931396" id="rhn-source-package-41904" source-rpm="jlex-1.2.6-5jpp.1.src.rpm"/><source-package last-modified="1174931398" id="rhn-source-package-41905" source-rpm="jakarta-commons-lang-2.1-5jpp.1.src.rpm"/><source-package last-modified="1174931399" id="rhn-source-package-41906" source-rpm="indent-2.2.9-14.fc6.src.rpm"/><source-package last-modified="1174931399" id="rhn-source-package-41907" source-rpm="byacc-1.9-29.2.2.src.rpm"/><source-package last-modified="1174931400" id="rhn-source-package-41908" source-rpm="libcroco-0.6.1-2.1.src.rpm"/><source-package last-modified="1174931401" id="rhn-source-package-41909" source-rpm="libXi-1.0.1-3.1.src.rpm"/><source-package last-modified="1174931407" id="rhn-source-package-41910" source-rpm="lapack-3.0-37.el5.src.rpm"/><source-package last-modified="1174931415" id="rhn-source-package-41911" source-rpm="freeradius-1.1.3-1.1.el5.src.rpm"/><source-package last-modified="1174931416" id="rhn-source-package-41912" source-rpm="classpathx-mail-1.1.1-4jpp.2.src.rpm"/><source-package last-modified="1174931438" id="rhn-source-package-41913" source-rpm="python-docs-2.4.3-1.1.src.rpm"/><source-package last-modified="1174931445" id="rhn-source-package-41914" source-rpm="libXft-2.1.10-1.1.src.rpm"/><source-package last-modified="1174931450" id="rhn-source-package-41915" source-rpm="kdesdk-3.5.4-3.el5.src.rpm"/><source-package last-modified="1174931461" id="rhn-source-package-41916" source-rpm="jakarta-commons-collections-3.1-6jpp.1.src.rpm"/><source-package last-modified="1174931468" id="rhn-source-package-41917" source-rpm="pam-0.99.6.2-3.14.el5.src.rpm"/><source-package last-modified="1174931469" id="rhn-source-package-41918" source-rpm="radvd-0.9.1-4.src.rpm"/><source-package last-modified="1174931471" id="rhn-source-package-41919" source-rpm="libidn-0.6.5-1.1.src.rpm"/><source-package last-modified="1174931474" id="rhn-source-package-41920" source-rpm="libxslt-1.1.17-2.src.rpm"/><source-package last-modified="1174931475" id="rhn-source-package-41921" source-rpm="libdhcp-1.17-1.el5.src.rpm"/><source-package last-modified="1174931479" id="rhn-source-package-41922" source-rpm="axis-1.2.1-2jpp.6.src.rpm"/><source-package last-modified="1174931480" id="rhn-source-package-41923" source-rpm="jakarta-commons-logging-1.0.4-6jpp.1.src.rpm"/><source-package last-modified="1174931488" id="rhn-source-package-41924" source-rpm="python-2.4.3-19.el5.src.rpm"/><source-package last-modified="1174931490" id="rhn-source-package-41925" source-rpm="xdoclet-1.2.3-7jpp.2.src.rpm"/><source-package last-modified="1174931494" id="rhn-source-package-41926" source-rpm="libSM-1.0.1-3.1.src.rpm"/><source-package last-modified="1174931494" id="rhn-source-package-41927" source-rpm="jakarta-commons-el-1.0-7jpp.1.src.rpm"/><source-package last-modified="1174931495" id="rhn-source-package-41928" source-rpm="libraw1394-1.2.1-1.fc6.src.rpm"/><source-package last-modified="1174931499" id="rhn-source-package-41929" source-rpm="mod_perl-2.0.2-6.1.src.rpm"/><source-package last-modified="1174931502" id="rhn-source-package-41930" source-rpm="squid-2.6.STABLE6-3.el5.src.rpm"/><source-package last-modified="1174931505" id="rhn-source-package-41931" source-rpm="xerces-j2-2.7.1-7jpp.2.src.rpm"/><source-package last-modified="1174931507" id="rhn-source-package-41932" source-rpm="nasm-0.98.39-3.2.2.src.rpm"/><source-package last-modified="1174931512" id="rhn-source-package-41933" source-rpm="valgrind-3.2.1-6.el5.src.rpm"/><source-package last-modified="1174931517" id="rhn-source-package-41934" source-rpm="gphoto2-2.2.0-3.el5.src.rpm"/><source-package last-modified="1174931519" id="rhn-source-package-41935" source-rpm="gnome-desktop-2.16.0-1.fc6.src.rpm"/><source-package last-modified="1174931520" id="rhn-source-package-41936" source-rpm="libICE-1.0.1-2.1.src.rpm"/><source-package last-modified="1174931521" id="rhn-source-package-41937" source-rpm="zlib-1.2.3-3.src.rpm"/><source-package last-modified="1174931523" id="rhn-source-package-41938" source-rpm="libwmf-0.2.8.4-10.1.src.rpm"/><source-package last-modified="1174931524" id="rhn-source-package-41939" source-rpm="jsch-0.1.28-1jpp.5.src.rpm"/><source-package last-modified="1174931526" id="rhn-source-package-41940" source-rpm="pvm-3.4.5-7.fc6.1.src.rpm"/><source-package last-modified="1174931529" id="rhn-source-package-41941" source-rpm="ORBit2-2.14.3-4.el5.src.rpm"/><source-package last-modified="1174931529" id="rhn-source-package-41942" source-rpm="hardlink-1.0-1.26.src.rpm"/><source-package last-modified="1174931530" id="rhn-source-package-41943" source-rpm="avalon-framework-4.1.4-2jpp.13.src.rpm"/><source-package last-modified="1174931530" id="rhn-source-package-41944" source-rpm="libXext-1.0.1-2.1.src.rpm"/><source-package last-modified="1174931531" id="rhn-source-package-41945" source-rpm="device-mapper-multipath-0.4.7-8.el5.src.rpm"/><source-package last-modified="1174931532" id="rhn-source-package-41946" source-rpm="xml-commons-resolver-1.1-1jpp.12.src.rpm"/><source-package last-modified="1174931533" id="rhn-source-package-41947" source-rpm="libgsf-1.14.1-6.1.src.rpm"/><source-package last-modified="1174931533" id="rhn-source-package-41948" source-rpm="gob2-2.0.14-1.1.src.rpm"/><source-package last-modified="1174931536" id="rhn-source-package-41949" source-rpm="cyrus-imapd-2.3.7-1.1.el5.src.rpm"/><source-package last-modified="1174931537" id="rhn-source-package-41950" source-rpm="mtr-0.71-3.1.src.rpm"/><source-package last-modified="1174931538" id="rhn-source-package-41951" source-rpm="gdk-pixbuf-0.22.0-25.el5.src.rpm"/><source-package last-modified="1174931540" id="rhn-source-package-41952" source-rpm="expat-1.95.8-8.2.1.src.rpm"/><source-package last-modified="1174931543" id="rhn-source-package-41953" source-rpm="antlr-2.7.6-4jpp.2.src.rpm"/><source-package last-modified="1174931544" id="rhn-source-package-41954" source-rpm="jakarta-commons-modeler-1.1-8jpp.1.src.rpm"/><source-package last-modified="1174931544" id="rhn-source-package-41955" source-rpm="ElectricFence-2.2.2-20.2.2.src.rpm"/><source-package last-modified="1174931546" id="rhn-source-package-41956" source-rpm="sqlite-3.3.6-2.src.rpm"/><source-package last-modified="1174931547" id="rhn-source-package-41957" source-rpm="jakarta-oro-2.0.8-3jpp.1.src.rpm"/><source-package last-modified="1174931549" id="rhn-source-package-41958" source-rpm="scim-1.4.4-39.el5.src.rpm"/><source-package last-modified="1174931566" id="rhn-source-package-41961" source-rpm="giflib-4.1.3-7.1.el5.1.src.rpm"/><source-package last-modified="1174931568" id="rhn-source-package-41962" source-rpm="fontconfig-2.4.1-6.el5.src.rpm"/><source-package last-modified="1174931570" id="rhn-source-package-41963" source-rpm="GConf2-2.14.0-9.el5.src.rpm"/><source-package last-modified="1174931572" id="rhn-source-package-41964" source-rpm="libgnome-2.16.0-6.el5.src.rpm"/><source-package last-modified="1174931582" id="rhn-source-package-41965" source-rpm="system-config-bind-4.0.3-2.el5.src.rpm"/><source-package last-modified="1174931583" id="rhn-source-package-41966" source-rpm="speex-1.0.5-4.src.rpm"/><source-package last-modified="1174931585" id="rhn-source-package-41967" source-rpm="elfutils-0.125-3.el5.src.rpm"/><source-package last-modified="1174931585" id="rhn-source-package-41968" source-rpm="libXvMC-1.0.2-2.1.src.rpm"/><source-package last-modified="1174931589" id="rhn-source-package-41969" source-rpm="ksh-20060214-1.4.src.rpm"/><source-package last-modified="1174931594" id="rhn-source-package-41970" source-rpm="poppler-0.5.4-4.el5.src.rpm"/><source-package last-modified="1174931594" id="rhn-source-package-41971" source-rpm="jakarta-commons-digester-1.7-5jpp.1.src.rpm"/><source-package last-modified="1174931596" id="rhn-source-package-41972" source-rpm="apr-1.2.7-11.src.rpm"/><source-package last-modified="1174931599" id="rhn-source-package-41973" source-rpm="openmpi-1.1.1-5.el5.src.rpm"/><source-package last-modified="1174931600" id="rhn-source-package-41974" source-rpm="libXrandr-1.1.1-3.1.src.rpm"/><source-package last-modified="1174931601" id="rhn-source-package-41975" source-rpm="libgssapi-0.10-2.src.rpm"/><source-package last-modified="1174931603" id="rhn-source-package-41976" source-rpm="jakarta-commons-httpclient-3.0-7jpp.1.src.rpm"/><source-package last-modified="1174931604" id="rhn-source-package-41977" source-rpm="gnome-keyring-0.6.0-1.fc6.src.rpm"/><source-package last-modified="1174931605" id="rhn-source-package-41978" source-rpm="jakarta-taglibs-standard-1.1.1-7jpp.1.src.rpm"/><source-package last-modified="1174931610" id="rhn-source-package-41979" source-rpm="log4j-1.2.13-3jpp.2.src.rpm"/><source-package last-modified="1174931611" id="rhn-source-package-41980" source-rpm="PyQt-3.16-4.src.rpm"/><source-package last-modified="1174931612" id="rhn-source-package-41981" source-rpm="lockdev-1.0.1-10.src.rpm"/><source-package last-modified="1174931612" id="rhn-source-package-41982" source-rpm="xjavadoc-1.1-4jpp.1.src.rpm"/><source-package last-modified="1174931613" id="rhn-source-package-41983" source-rpm="libdrm-2.0.2-1.1.src.rpm"/><source-package last-modified="1174931614" id="rhn-source-package-41984" source-rpm="libXmu-1.0.2-5.src.rpm"/><source-package last-modified="1174931616" id="rhn-source-package-41985" source-rpm="libgtop2-2.14.4-3.el5.src.rpm"/><source-package last-modified="1174931616" id="rhn-source-package-41986" source-rpm="xferstats-2.16-14.1.src.rpm"/><source-package last-modified="1174931617" id="rhn-source-package-41987" source-rpm="libIDL-0.8.7-1.fc6.src.rpm"/><source-package last-modified="1174931632" id="rhn-source-package-41988" source-rpm="kdelibs-3.5.4-11.el5.src.rpm"/><source-package last-modified="1174931634" id="rhn-source-package-41989" source-rpm="libbonobo-2.16.0-1.fc6.src.rpm"/><source-package last-modified="1174931636" id="rhn-source-package-41990" source-rpm="pygtk2-2.10.1-8.el5.src.rpm"/><source-package last-modified="1174931639" id="rhn-source-package-41991" source-rpm="sip-4.4.5-3.src.rpm"/><source-package last-modified="1174931640" id="rhn-source-package-41992" source-rpm="esound-0.2.36-3.src.rpm"/><source-package last-modified="1174931653" id="rhn-source-package-41995" source-rpm="icu-3.6-5.9.src.rpm"/><source-package last-modified="1174931654" id="rhn-source-package-41996" source-rpm="gd-2.0.33-9.3.fc6.src.rpm"/><source-package last-modified="1174931655" id="rhn-source-package-41997" source-rpm="tclx-8.4.0-5.fc6.src.rpm"/><source-package last-modified="1174931656" id="rhn-source-package-41998" source-rpm="cairo-java-1.0.5-3.fc6.src.rpm"/><source-package last-modified="1174931657" id="rhn-source-package-41999" source-rpm="mgetty-1.1.33-9.fc6.src.rpm"/><source-package last-modified="1174931658" id="rhn-source-package-42000" source-rpm="tux-3.2.18-9.fc6.src.rpm"/><source-package last-modified="1174931661" id="rhn-source-package-42001" source-rpm="bcel-5.1-8jpp.1.src.rpm"/><source-package last-modified="1174931662" id="rhn-source-package-42002" source-rpm="gnome-menus-2.16.0-2.fc6.src.rpm"/><source-package last-modified="1174931663" id="rhn-source-package-42003" source-rpm="jakarta-commons-daemon-1.0.1-6jpp.1.src.rpm"/><source-package last-modified="1174931664" id="rhn-source-package-42004" source-rpm="libXaw-1.0.2-8.1.src.rpm"/><source-package last-modified="1174931702" id="rhn-source-package-42023" source-rpm="pycairo-1.2.0-1.1.src.rpm"/><source-package last-modified="1174931703" id="rhn-source-package-42024" source-rpm="libbtctl-0.6.0-9.2.el5.src.rpm"/><source-package last-modified="1174931705" id="rhn-source-package-42025" source-rpm="libpng-1.2.10-7.src.rpm"/><source-package last-modified="1174931705" id="rhn-source-package-42026" source-rpm="libavc1394-0.5.3-1.fc6.src.rpm"/><source-package last-modified="1174931707" id="rhn-source-package-42027" source-rpm="xorg-x11-proto-devel-7.1-9.fc6.src.rpm"/><source-package last-modified="1174931708" id="rhn-source-package-42028" source-rpm="mockobjects-0.09-14jpp.3.src.rpm"/><source-package last-modified="1174931708" id="rhn-source-package-42029" source-rpm="mod_auth_pgsql-2.0.3-2.3.1.src.rpm"/><source-package last-modified="1174931709" id="rhn-source-package-42030" source-rpm="mtx-1.2.18-8.2.2.src.rpm"/><source-package last-modified="1174931710" id="rhn-source-package-42031" source-rpm="libmng-1.0.9-5.1.src.rpm"/><source-package last-modified="1174931720" id="rhn-source-package-42037" source-rpm="libXxf86misc-1.0.1-3.1.src.rpm"/><source-package last-modified="1174931723" id="rhn-source-package-42038" source-rpm="htdig-3.2.0b6-9.el5.src.rpm"/><source-package last-modified="1174931726" id="rhn-source-package-42039" source-rpm="inn-2.4.3-6.fc6.src.rpm"/><source-package last-modified="1174931727" id="rhn-source-package-42040" source-rpm="liboil-0.3.8-2.1.src.rpm"/><source-package last-modified="1174931729" id="rhn-source-package-42041" source-rpm="libX11-1.0.3-8.el5.src.rpm"/><source-package last-modified="1174931730" id="rhn-source-package-42042" source-rpm="bluez-libs-3.7-1.src.rpm"/><source-package last-modified="1174931732" id="rhn-source-package-42043" source-rpm="autoconf-2.59-12.src.rpm"/><source-package last-modified="1174931735" id="rhn-source-package-42044" source-rpm="tix-8.4.0-11.fc6.src.rpm"/><source-package last-modified="1174931739" id="rhn-source-package-42045" source-rpm="cairo-1.2.4-1.fc6.src.rpm"/><source-package last-modified="1174931741" id="rhn-source-package-42046" source-rpm="libpfm-3.2-0.060926.4.el5.src.rpm"/><source-package last-modified="1174931741" id="rhn-source-package-42047" source-rpm="libFS-1.0.0-3.1.src.rpm"/><source-package last-modified="1174931742" id="rhn-source-package-42048" source-rpm="libvte-java-0.12.1-6.el5.src.rpm"/><source-package last-modified="1174931743" id="rhn-source-package-42049" source-rpm="libgnomecanvas-2.14.0-4.1.src.rpm"/><source-package last-modified="1174931745" id="rhn-source-package-42050" source-rpm="neon-0.25.5-5.1.src.rpm"/><source-package last-modified="1174931745" id="rhn-source-package-42051" source-rpm="jakarta-commons-codec-1.3-7jpp.2.src.rpm"/><source-package last-modified="1174931746" id="rhn-source-package-42052" source-rpm="libevent-1.1a-3.2.1.src.rpm"/><source-package last-modified="1174931748" id="rhn-source-package-42053" source-rpm="automake17-1.7.9-7.src.rpm"/><source-package last-modified="1174931749" id="rhn-source-package-42054" source-rpm="regexp-1.4-2jpp.2.src.rpm"/><source-package last-modified="1174931758" id="rhn-source-package-42055" source-rpm="kdevelop-3.3.4-1.fc6.src.rpm"/><source-package last-modified="1174931759" id="rhn-source-package-42056" source-rpm="libgail-gnome-1.1.3-1.2.1.src.rpm"/><source-package last-modified="1174931759" id="rhn-source-package-42057" source-rpm="diffstat-1.41-1.2.2.src.rpm"/><source-package last-modified="1174931760" id="rhn-source-package-42058" source-rpm="check-0.9.3-5.fc6.src.rpm"/><source-package last-modified="1174931761" id="rhn-source-package-42059" source-rpm="libXinerama-1.0.1-2.1.src.rpm"/><source-package last-modified="1174931762" id="rhn-source-package-42060" source-rpm="slang-2.0.6-4.el5.src.rpm"/><source-package last-modified="1174931762" id="rhn-source-package-42061" source-rpm="pstack-1.2-7.2.2.src.rpm"/><source-package last-modified="1174931763" id="rhn-source-package-42063" source-rpm="rdate-1.4-6.src.rpm"/><source-package last-modified="1174931764" id="rhn-source-package-42064" source-rpm="libXp-1.0.0-8.src.rpm"/><source-package last-modified="1174931767" id="rhn-source-package-42065" source-rpm="glib2-2.12.3-2.fc6.src.rpm"/><source-package last-modified="1174931768" id="rhn-source-package-42066" source-rpm="gtksourceview-1.8.0-1.fc6.src.rpm"/><source-package last-modified="1174931769" id="rhn-source-package-42067" source-rpm="openais-0.80.2-1.el5.src.rpm"/><source-package last-modified="1174931771" id="rhn-source-package-42068" source-rpm="libgpg-error-1.4-2.src.rpm"/><source-package last-modified="1174931772" id="rhn-source-package-42069" source-rpm="libxklavier-3.0-3.el5.src.rpm"/><source-package last-modified="1174931773" id="rhn-source-package-42070" source-rpm="libXfontcache-1.0.2-3.1.src.rpm"/><source-package last-modified="1174931773" id="rhn-source-package-42071" source-rpm="libselinux-1.33.4-2.el5.src.rpm"/><source-package last-modified="1174931779" id="rhn-source-package-42072" source-rpm="struts-1.2.9-4jpp.5.src.rpm"/><source-package last-modified="1174931780" id="rhn-source-package-42073" source-rpm="pcsc-lite-1.3.1-7.src.rpm"/><source-package last-modified="1174931783" id="rhn-source-package-42075" source-rpm="libusb-0.1.12-5.1.src.rpm"/><source-package last-modified="1174931783" id="rhn-source-package-42076" source-rpm="hesiod-3.1.0-8.src.rpm"/><source-package last-modified="1174931785" id="rhn-source-package-42077" source-rpm="lucene-1.4.3-1jpp.16.src.rpm"/><source-package last-modified="1174931786" id="rhn-source-package-42078" source-rpm="libXv-1.0.1-4.1.src.rpm"/><source-package last-modified="1174931786" id="rhn-source-package-42079" source-rpm="rcs-5.7-30.1.src.rpm"/><source-package last-modified="1174931789" id="rhn-source-package-42080" source-rpm="ibutils-1.0-3.el5.src.rpm"/><source-package last-modified="1174931790" id="rhn-source-package-42081" source-rpm="php-pear-1.4.9-4.src.rpm"/><source-package last-modified="1174931794" id="rhn-source-package-42082" source-rpm="sane-backends-1.0.18-5.el5.src.rpm"/><source-package last-modified="1174931795" id="rhn-source-package-42083" source-rpm="lcms-1.15-1.2.2.src.rpm"/><source-package last-modified="1174931796" id="rhn-source-package-42084" source-rpm="libxkbfile-1.0.3-3.1.src.rpm"/><source-package last-modified="1174931797" id="rhn-source-package-42085" source-rpm="system-config-nfs-1.3.23-1.el5.src.rpm"/><source-package last-modified="1174931798" id="rhn-source-package-42086" source-rpm="uucp-1.07-12.src.rpm"/><source-package last-modified="1174931799" id="rhn-source-package-42087" source-rpm="libXt-1.0.2-3.1.fc6.src.rpm"/><source-package last-modified="1174931802" id="rhn-source-package-42088" source-rpm="quagga-0.98.6-2.1.src.rpm"/><source-package last-modified="1174931802" id="rhn-source-package-42089" source-rpm="Pyrex-0.9.4-2.fc6.src.rpm"/><source-package last-modified="1174931803" id="rhn-source-package-42090" source-rpm="pygobject2-2.12.1-5.el5.src.rpm"/><source-package last-modified="1174931804" id="rhn-source-package-42091" source-rpm="kdbg-2.0.2-1.2.1.src.rpm"/><source-package last-modified="1174931806" id="rhn-source-package-42092" source-rpm="beecrypt-4.1.2-10.1.1.src.rpm"/><source-package last-modified="1174931807" id="rhn-source-package-42093" source-rpm="pango-1.14.9-3.el5.src.rpm"/><source-package last-modified="1174931809" id="rhn-source-package-42094" source-rpm="mrtg-2.14.5-2.src.rpm"/><source-package last-modified="1174931811" id="rhn-source-package-42095" source-rpm="jdom-1.0-4jpp.1.src.rpm"/><source-package last-modified="1174931812" id="rhn-source-package-42096" source-rpm="jakarta-commons-validator-1.1.4-5jpp.1.src.rpm"/><source-package last-modified="1174931818" id="rhn-source-package-42097" source-rpm="tcl-8.4.13-3.fc6.src.rpm"/><source-package last-modified="1174931820" id="rhn-source-package-42098" source-rpm="fetchmail-6.3.6-1.el5.src.rpm"/><source-package last-modified="1174931824" id="rhn-source-package-42101" source-rpm="libXpm-3.5.5-3.src.rpm"/><source-package last-modified="1174931827" id="rhn-source-package-42102" source-rpm="doxygen-1.4.7-1.1.src.rpm"/><source-package last-modified="1174931828" id="rhn-source-package-42103" source-rpm="mod_authz_ldap-0.26-7.1.src.rpm"/><source-package last-modified="1174931829" id="rhn-source-package-42104" source-rpm="jakarta-commons-launcher-0.9-6jpp.1.src.rpm"/><source-package last-modified="1174931829" id="rhn-source-package-42105" source-rpm="ypserv-2.19-3.src.rpm"/><source-package last-modified="1174931830" id="rhn-source-package-42106" source-rpm="atk-1.12.2-1.fc6.src.rpm"/><source-package last-modified="1174931831" id="rhn-source-package-42107" source-rpm="bootparamd-0.17-24.devel.2.1.src.rpm"/><source-package last-modified="1174931834" id="rhn-source-package-42108" source-rpm="nss-3.11.5-1.el5.src.rpm"/><source-package last-modified="1174931836" id="rhn-source-package-42109" source-rpm="dbus-glib-0.70-5.src.rpm"/><source-package last-modified="1174931836" id="rhn-source-package-42110" source-rpm="openobex-1.3-3.1.src.rpm"/><source-package last-modified="1174931841" id="rhn-source-package-42111" source-rpm="guile-1.8.0-8.20060831cvs.src.rpm"/><source-package last-modified="1174931842" id="rhn-source-package-42112" source-rpm="system-config-httpd-1.3.3.1-1.el5.src.rpm"/><source-package last-modified="1174931844" id="rhn-source-package-42113" source-rpm="libXfixes-4.0.1-2.1.src.rpm"/><source-package last-modified="1174931845" id="rhn-source-package-42114" source-rpm="jdepend-2.6-6jpp.2.src.rpm"/><source-package last-modified="1174931846" id="rhn-source-package-42115" source-rpm="libvorbis-1.1.2-2.src.rpm"/><source-package last-modified="1174931848" id="rhn-source-package-42116" source-rpm="automake-1.9.6-2.1.src.rpm"/><source-package last-modified="1174931848" id="rhn-source-package-42117" source-rpm="webalizer-2.01_10-30.1.src.rpm"/><source-package last-modified="1174931849" id="rhn-source-package-42118" source-rpm="java_cup-0.10-0.k.6jpp.1.src.rpm"/><source-package last-modified="1174931850" id="rhn-source-package-42120" source-rpm="rarpd-ss981107-22.2.2.src.rpm"/><source-package last-modified="1174931850" id="rhn-source-package-42121" source-rpm="libsepol-1.15.2-1.el5.src.rpm"/><source-package last-modified="1174931851" id="rhn-source-package-42122" source-rpm="libdaemon-0.10-5.el5.src.rpm"/><source-package last-modified="1174931852" id="rhn-source-package-42123" source-rpm="mod_auth_kerb-5.1-3.src.rpm"/><source-package last-modified="1174931854" id="rhn-source-package-42124" source-rpm="glade2-2.12.1-6.el5.src.rpm"/><source-package last-modified="1174931856" id="rhn-source-package-42126" source-rpm="glib-1.2.10-20.el5.src.rpm"/><source-package last-modified="1174931856" id="rhn-source-package-42127" source-rpm="libXdmcp-1.0.1-2.1.src.rpm"/><source-package last-modified="1174931857" id="rhn-source-package-42128" source-rpm="libao-0.8.6-5.src.rpm"/><source-package last-modified="1174931864" id="rhn-source-package-42129" source-rpm="db4-4.3.29-9.fc6.src.rpm"/><source-package last-modified="1174931865" id="rhn-source-package-42130" source-rpm="apr-util-1.2.7-6.src.rpm"/><source-package last-modified="1174931868" id="rhn-source-package-42131" source-rpm="SDL-1.2.10-8.el5.src.rpm"/><source-package last-modified="1174931869" id="rhn-source-package-42132" source-rpm="libnl-1.0-0.10.pre5.4.src.rpm"/><source-package last-modified="1174931870" id="rhn-source-package-42133" source-rpm="librsvg2-2.16.1-1.el5.src.rpm"/><source-package last-modified="1174931870" id="rhn-source-package-42134" source-rpm="numactl-0.9.8-2.el5.src.rpm"/><source-package last-modified="1174931872" id="rhn-source-package-42135" source-rpm="icon-slicer-0.3-7.2.2.src.rpm"/><source-package last-modified="1174931872" id="rhn-source-package-42136" source-rpm="libfontenc-1.0.2-2.2.el5.src.rpm"/><source-package last-modified="1174931874" id="rhn-source-package-42137" source-rpm="mod_python-3.2.8-3.1.src.rpm"/><source-package last-modified="1174931878" id="rhn-source-package-42138" source-rpm="gnome-mount-0.5-3.el5.src.rpm"/><source-package last-modified="1174931880" id="rhn-source-package-42139" source-rpm="gstreamer-plugins-good-0.10.4-2.el5.src.rpm"/><source-package last-modified="1174931881" id="rhn-source-package-42140" source-rpm="wsdl4j-1.5.2-4jpp.1.src.rpm"/><source-package last-modified="1174931882" id="rhn-source-package-42141" source-rpm="gnome-speech-0.4.5-1.fc6.src.rpm"/><source-package last-modified="1174931883" id="rhn-source-package-42142" source-rpm="jakarta-commons-fileupload-1.0-6jpp.1.src.rpm"/><source-package last-modified="1174931890" id="rhn-source-package-42143" source-rpm="evolution-data-server-1.8.0-15.el5.src.rpm"/><source-package last-modified="1174931890" id="rhn-source-package-42144" source-rpm="libXevie-1.0.1-3.1.src.rpm"/><source-package last-modified="1174931891" id="rhn-source-package-42145" source-rpm="jakarta-commons-beanutils-1.7.0-5jpp.1.src.rpm"/><source-package last-modified="1174931892" id="rhn-source-package-42146" source-rpm="classpathx-jaf-1.0-9jpp.1.src.rpm"/><source-package last-modified="1174931894" id="rhn-source-package-42147" source-rpm="libXxf86dga-1.0.1-3.1.src.rpm"/><source-package last-modified="1174931894" id="rhn-source-package-42148" source-rpm="bsf-2.3.0-11jpp.1.src.rpm"/><source-package last-modified="1174931895" id="rhn-source-package-42149" source-rpm="pfmon-3.2-0.060926.4.el5.src.rpm"/><source-package last-modified="1174931896" id="rhn-source-package-42150" source-rpm="gtkhtml2-2.11.0-3.src.rpm"/><source-package last-modified="1174931897" id="rhn-source-package-42151" source-rpm="gamin-0.1.7-8.el5.src.rpm"/><source-package last-modified="1174931898" id="rhn-source-package-42152" source-rpm="libglade2-2.6.0-2.src.rpm"/><source-package last-modified="1174931898" id="rhn-source-package-42153" source-rpm="libXScrnSaver-1.1.0-3.1.src.rpm"/><source-package last-modified="1174931899" id="rhn-source-package-42154" source-rpm="libXdamage-1.0.3-2.1.src.rpm"/><source-package last-modified="1174931904" id="rhn-source-package-42155" source-rpm="gucharmap-1.8.0-1.fc6.src.rpm"/><source-package last-modified="1174931905" id="rhn-source-package-42156" source-rpm="startup-notification-0.8-4.1.src.rpm"/><source-package last-modified="1174931910" id="rhn-source-package-42157" source-rpm="kdebindings-3.5.4-1.fc6.src.rpm"/><source-package last-modified="1174931912" id="rhn-source-package-42158" source-rpm="pyorbit-2.14.1-1.1.src.rpm"/><source-package last-modified="1174931913" id="rhn-source-package-42159" source-rpm="libXcursor-1.1.7-1.1.src.rpm"/><source-package last-modified="1174931913" id="rhn-source-package-42160" source-rpm="mod_auth_mysql-3.0.0-3.1.src.rpm"/><source-package last-modified="1174931915" id="rhn-source-package-42161" source-rpm="dovecot-1.0-1.2.rc15.el5.src.rpm"/><source-package last-modified="1174931918" id="rhn-source-package-42162" source-rpm="dbus-1.0.0-6.el5.src.rpm"/><source-package last-modified="1174931918" id="rhn-source-package-42163" source-rpm="automake16-1.6.3-8.src.rpm"/><source-package last-modified="1174931921" id="rhn-source-package-42164" source-rpm="pcre-6.6-1.1.src.rpm"/><source-package last-modified="1174931929" id="rhn-source-package-42165" source-rpm="kdewebdev-3.5.4-2.fc6.src.rpm"/><source-package last-modified="1174931935" id="rhn-source-package-42166" source-rpm="gail-1.9.2-1.fc6.src.rpm"/><source-package last-modified="1174931936" id="rhn-source-package-42167" source-rpm="libXxf86vm-1.0.1-3.1.src.rpm"/><source-package last-modified="1174931936" id="rhn-source-package-42168" source-rpm="jakarta-commons-discovery-0.3-4jpp.1.src.rpm"/><source-package last-modified="1174931937" id="rhn-source-package-42169" source-rpm="adaptx-0.9.13-3jpp.1.src.rpm"/><source-package last-modified="1174931938" id="rhn-source-package-42170" source-rpm="vsftpd-2.0.5-10.el5.src.rpm"/><source-package last-modified="1174931940" id="rhn-source-package-42171" source-rpm="werken-xpath-0.9.4-0.beta.12jpp.1.src.rpm"/><source-package last-modified="1174931944" id="rhn-source-package-42172" source-rpm="glib-java-0.2.6-3.fc6.src.rpm"/><source-package last-modified="1174931945" id="rhn-source-package-42173" source-rpm="eel2-2.16.1-1.el5.src.rpm"/><source-package last-modified="1174931947" id="rhn-source-package-42174" source-rpm="curl-7.15.5-2.el5.src.rpm"/><source-package last-modified="1174931948" id="rhn-source-package-42175" source-rpm="newt-0.52.2-9.src.rpm"/><source-package last-modified="1174931948" id="rhn-source-package-42176" source-rpm="unifdef-1.171-5.fc6.src.rpm"/><source-package last-modified="1174931950" id="rhn-source-package-42177" source-rpm="libgcrypt-1.2.3-1.src.rpm"/><source-package last-modified="1174931951" id="rhn-source-package-42178" source-rpm="alchemist-1.0.36-2.el5.src.rpm"/><source-package last-modified="1174931952" id="rhn-source-package-42179" source-rpm="nfs-utils-lib-1.0.8-7.2.src.rpm"/><source-package last-modified="1174931953" id="rhn-source-package-42180" source-rpm="libXcomposite-0.3-5.1.src.rpm"/><source-package last-modified="1174931954" id="rhn-source-package-42181" source-rpm="libtiff-3.8.2-7.el5.src.rpm"/><source-package last-modified="1174931955" id="rhn-source-package-42182" source-rpm="libXau-1.0.1-3.1.src.rpm"/><source-package last-modified="1174931956" id="rhn-source-package-42183" source-rpm="libieee1284-0.2.9-4.el5.src.rpm"/><source-package last-modified="1174931958" id="rhn-source-package-42184" source-rpm="opensp-1.5.2-4.src.rpm"/><source-package last-modified="1174931959" id="rhn-source-package-42185" source-rpm="libbonoboui-2.16.0-1.fc6.src.rpm"/><source-package last-modified="1174931962" id="rhn-source-package-42186" source-rpm="libXfont-1.2.2-1.fc6.src.rpm"/><source-package last-modified="1174931962" id="rhn-source-package-42187" source-rpm="libXTrap-1.0.0-3.1.src.rpm"/><source-package last-modified="1174931963" id="rhn-source-package-42188" source-rpm="libjpeg-6b-37.src.rpm"/><source-package last-modified="1174931964" id="rhn-source-package-42189" source-rpm="psgml-1.2.5-4.3.src.rpm"/><source-package last-modified="1174931966" id="rhn-source-package-42190" source-rpm="privoxy-3.0.3-9.2.2.src.rpm"/><source-package last-modified="1174931967" id="rhn-source-package-42191" source-rpm="libgnomeprintui22-2.12.1-6.src.rpm"/><source-package last-modified="1174931968" id="rhn-source-package-42192" source-rpm="automake14-1.4p6-13.src.rpm"/><source-package last-modified="1174931970" id="rhn-source-package-42193" source-rpm="libc-client-2004g-2.2.1.src.rpm"/><source-package last-modified="1174931972" id="rhn-source-package-42194" source-rpm="libsoup-2.2.98-2.el5.src.rpm"/><source-package last-modified="1174931972" id="rhn-source-package-42195" source-rpm="libXrender-0.9.1-3.1.src.rpm"/><source-package last-modified="1174931975" id="rhn-source-package-42196" source-rpm="openssl-0.9.8b-8.3.el5.src.rpm"/><source-package last-modified="1174931989" id="rhn-source-package-42197" source-rpm="wireshark-0.99.4-2.el5.src.rpm"/><source-package last-modified="1174931990" id="rhn-source-package-42198" source-rpm="libgnomecups-0.2.2-8.src.rpm"/><source-package last-modified="1174931990" id="rhn-source-package-42199" source-rpm="libdmx-1.0.2-3.1.src.rpm"/><source-package last-modified="1174931991" id="rhn-source-package-42200" source-rpm="libwnck-2.16.0-4.fc6.src.rpm"/><source-package last-modified="1174931993" id="rhn-source-package-42201" source-rpm="flac-1.1.2-27.src.rpm"/><source-package last-modified="1174931994" id="rhn-source-package-42202" source-rpm="libgnomeprint22-2.12.1-9.el5.src.rpm"/><source-package last-modified="1174931996" id="rhn-source-package-42203" source-rpm="xorg-x11-drv-i810-1.6.5-9.2.el5.src.rpm"/><source-package last-modified="1174932000" id="rhn-source-package-42204" source-rpm="libxml2-2.6.26-2.1.2.src.rpm"/><source-package last-modified="1174932002" id="rhn-source-package-42205" source-rpm="dev86-0.16.17-2.2.src.rpm"/><source-package last-modified="1174932002" id="rhn-source-package-42206" source-rpm="libcap-1.10-26.src.rpm"/><source-package last-modified="1174932006" id="rhn-source-package-42207" source-rpm="MySQL-python-1.2.1-1.src.rpm"/><source-package last-modified="1174932021" id="rhn-source-package-42208" source-rpm="gmp-4.1.4-10.el5.src.rpm"/><source-package last-modified="1174932024" id="rhn-source-package-42209" source-rpm="PyXML-0.8.4-4.src.rpm"/><source-package last-modified="1174932025" id="rhn-source-package-42210" source-rpm="checkpolicy-1.33.1-2.el5.src.rpm"/><source-package last-modified="1174932040" id="rhn-source-package-42211" source-rpm="cracklib-2.8.9-3.1.src.rpm"/><source-package last-modified="1174932045" id="rhn-source-package-42212" source-rpm="dbus-python-0.70-7.el5.src.rpm"/><source-package last-modified="1174932046" id="rhn-source-package-42213" source-rpm="desktop-file-utils-0.10-7.src.rpm"/><source-package last-modified="1174932047" id="rhn-source-package-42214" source-rpm="device-mapper-1.02.13-1.el5.src.rpm"/><source-package last-modified="1174932047" id="rhn-source-package-42215" source-rpm="dhcdbd-2.2-1.el5.src.rpm"/><source-package last-modified="1174932060" id="rhn-source-package-42216" source-rpm="diffutils-2.8.1-15.2.2.src.rpm"/><source-package last-modified="1174932061" id="rhn-source-package-42217" source-rpm="docbook-dtds-1.0-30.1.src.rpm"/><source-package last-modified="1174932063" id="rhn-source-package-42218" source-rpm="findutils-4.2.27-4.1.src.rpm"/><source-package last-modified="1174932066" id="rhn-source-package-42219" source-rpm="gawk-3.1.5-14.el5.src.rpm"/><source-package last-modified="1174932070" id="rhn-source-package-42220" source-rpm="geronimo-specs-1.0-0.M2.2jpp.12.src.rpm"/><source-package last-modified="1174932072" id="rhn-source-package-42221" source-rpm="gjdoc-0.7.7-12.el5.src.rpm"/><source-package last-modified="1174932073" id="rhn-source-package-42222" source-rpm="gnome-doc-utils-0.8.0-2.fc6.src.rpm"/><source-package last-modified="1174932075" id="rhn-source-package-42223" source-rpm="gnome-icon-theme-2.16.0.1-4.el5.src.rpm"/><source-package last-modified="1174932080" id="rhn-source-package-42224" source-rpm="gnome-mime-data-2.4.2-3.1.src.rpm"/><source-package last-modified="1174932081" id="rhn-source-package-42225" source-rpm="gnome-python2-2.16.0-1.fc6.src.rpm"/><source-package last-modified="1174932082" id="rhn-source-package-42226" source-rpm="gnome-python2-desktop-2.16.0-1.fc6.src.rpm"/><source-package last-modified="1174932094" id="rhn-source-package-42227" source-rpm="gnu-crypto-2.1.0-2jpp.1.src.rpm"/><source-package last-modified="1174932096" id="rhn-source-package-42228" source-rpm="gperf-3.0.1-7.2.2.src.rpm"/><source-package last-modified="1174932098" id="rhn-source-package-42229" source-rpm="grep-2.5.1-54.2.el5.src.rpm"/><source-package last-modified="1174932101" id="rhn-source-package-42230" source-rpm="groff-1.18.1.1-11.1.src.rpm"/><source-package last-modified="1174932102" id="rhn-source-package-42231" source-rpm="gzip-1.3.5-9.el5.src.rpm"/><source-package last-modified="1174932102" id="rhn-source-package-42232" source-rpm="htmlview-4.0.0-1.el5.src.rpm"/><source-package last-modified="1174932103" id="rhn-source-package-42233" source-rpm="hwdata-0.194-1.src.rpm"/><source-package last-modified="1174932104" id="rhn-source-package-42234" source-rpm="intltool-0.35.0-2.src.rpm"/><source-package last-modified="1174932104" id="rhn-source-package-42235" source-rpm="jadetex-3.12-13.1.1.src.rpm"/><source-package last-modified="1174932105" id="rhn-source-package-42236" source-rpm="jpackage-utils-1.7.3-1jpp.2.el5.src.rpm"/><source-package last-modified="1174932108" id="rhn-source-package-42237" source-rpm="jrefactory-2.8.9-6jpp.3.src.rpm"/><source-package last-modified="1174932109" id="rhn-source-package-42238" source-rpm="latex2html-2002.2.1-6.src.rpm"/><source-package last-modified="1174932110" id="rhn-source-package-42239" source-rpm="less-394-5.el5.src.rpm"/><source-package last-modified="1174932111" id="rhn-source-package-42240" source-rpm="m4-1.4.5-3.el5.1.src.rpm"/><source-package last-modified="1174932112" id="rhn-source-package-42241" source-rpm="mailx-8.1.1-44.2.2.src.rpm"/><source-package last-modified="1174932112" id="rhn-source-package-42242" source-rpm="mktemp-1.5-23.2.2.src.rpm"/><source-package last-modified="1174932113" id="rhn-source-package-42243" source-rpm="module-init-tools-3.3-0.pre3.1.16.el5.src.rpm"/><source-package last-modified="1174932117" id="rhn-source-package-42246" source-rpm="patch-2.5.4-29.2.2.src.rpm"/><source-package last-modified="1174932118" id="rhn-source-package-42247" source-rpm="perl-Compress-Zlib-1.42-1.fc6.src.rpm"/><source-package last-modified="1174932118" id="rhn-source-package-42248" source-rpm="perl-DBI-1.52-1.fc6.src.rpm"/><source-package last-modified="1174932119" id="rhn-source-package-42249" source-rpm="perl-HTML-Parser-3.55-1.fc6.src.rpm"/><source-package last-modified="1174932120" id="rhn-source-package-42250" source-rpm="perl-IO-Socket-SSL-1.01-1.fc6.src.rpm"/><source-package last-modified="1174932121" id="rhn-source-package-42251" source-rpm="perl-Net-DNS-0.59-1.fc6.src.rpm"/><source-package last-modified="1174932122" id="rhn-source-package-42252" source-rpm="perl-SGMLSpm-1.03ii-16.2.1.src.rpm"/><source-package last-modified="1174932123" id="rhn-source-package-42253" source-rpm="perl-URI-1.35-3.src.rpm"/><source-package last-modified="1174932123" id="rhn-source-package-42254" source-rpm="perl-XML-LibXML-1.58-5.src.rpm"/><source-package last-modified="1174932124" id="rhn-source-package-42255" source-rpm="perl-XML-LibXML-Common-0.13-8.2.2.src.rpm"/><source-package last-modified="1174932124" id="rhn-source-package-42256" source-rpm="perl-XML-Parser-2.34-6.1.2.2.1.src.rpm"/><source-package last-modified="1174932125" id="rhn-source-package-42257" source-rpm="perl-XML-Simple-2.14-4.fc6.src.rpm"/><source-package last-modified="1174932126" id="rhn-source-package-42259" source-rpm="pykickstart-0.43-1.el5.src.rpm"/><source-package last-modified="1174932127" id="rhn-source-package-42260" source-rpm="python-numeric-23.7-2.2.2.src.rpm"/><source-package last-modified="1174932127" id="rhn-source-package-42261" source-rpm="python-urlgrabber-3.1.0-2.src.rpm"/><source-package last-modified="1174932129" id="rhn-source-package-42263" source-rpm="scrollkeeper-0.3.14-9.el5.src.rpm"/><source-package last-modified="1174932130" id="rhn-source-package-42264" source-rpm="sed-4.1.5-5.fc6.src.rpm"/><source-package last-modified="1174932130" id="rhn-source-package-42265" source-rpm="sgml-common-0.6.3-18.src.rpm"/><source-package last-modified="1174932131" id="rhn-source-package-42266" source-rpm="sharutils-4.6.1-2.src.rpm"/><source-package last-modified="1174932134" id="rhn-source-package-42267" source-rpm="tar-1.15.1-23.el5.src.rpm"/><source-package last-modified="1174932135" id="rhn-source-package-42268" source-rpm="texi2html-1.76-4.fc6.src.rpm"/><source-package last-modified="1174932136" id="rhn-source-package-42269" source-rpm="transfig-3.2.4-16.src.rpm"/><source-package last-modified="1174932137" id="rhn-source-package-42270" source-rpm="usermode-1.88-3.el5.src.rpm"/><source-package last-modified="1174932140" id="rhn-source-package-42271" source-rpm="w3m-0.5.1-15.el5.src.rpm"/><source-package last-modified="1174932141" id="rhn-source-package-42272" source-rpm="wpa_supplicant-0.4.8-10.1.fc6.src.rpm"/><source-package last-modified="1174932144" id="rhn-source-package-42277" source-rpm="net-tools-1.60-73.src.rpm"/><source-package last-modified="1174932144" id="rhn-source-package-42278" source-rpm="chkfontpath-1.10.1-1.1.src.rpm"/><source-package last-modified="1174932146" id="rhn-source-package-42279" source-rpm="xorg-x11-drv-jamstudio-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932146" id="rhn-source-package-42280" source-rpm="xorg-x11-drv-microtouch-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932147" id="rhn-source-package-42281" source-rpm="xorg-x11-drv-evdev-1.0.0.5-2.el5.src.rpm"/><source-package last-modified="1174932148" id="rhn-source-package-42282" source-rpm="xorg-x11-drv-calcomp-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932149" id="rhn-source-package-42284" source-rpm="xorg-x11-drv-elographics-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932149" id="rhn-source-package-42285" source-rpm="yp-tools-2.9-0.1.src.rpm"/><source-package last-modified="1174932150" id="rhn-source-package-42286" source-rpm="comps-extras-11.1-1.1.src.rpm"/><source-package last-modified="1174932151" id="rhn-source-package-42287" source-rpm="xorg-x11-drv-dmc-1.1.0-2.src.rpm"/><source-package last-modified="1174932151" id="rhn-source-package-42288" source-rpm="perl-IO-Socket-INET6-2.51-2.fc6.src.rpm"/><source-package last-modified="1174932151" id="rhn-source-package-42289" source-rpm="mingetty-1.07-5.2.2.src.rpm"/><source-package last-modified="1174932152" id="rhn-source-package-42290" source-rpm="MAKEDEV-3.23-1.2.src.rpm"/><source-package last-modified="1174932153" id="rhn-source-package-42291" source-rpm="ethtool-5-1.el5.src.rpm"/><source-package last-modified="1174932154" id="rhn-source-package-42294" source-rpm="xorg-x11-drv-joystick-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932165" id="rhn-source-package-42295" source-rpm="redhat-artwork-5.0.9-1.el5.src.rpm"/><source-package last-modified="1174932165" id="rhn-source-package-42296" source-rpm="perl-Digest-HMAC-1.01-15.src.rpm"/><source-package last-modified="1174932166" id="rhn-source-package-42297" source-rpm="ifd-egate-0.05-15.src.rpm"/><source-package last-modified="1174932167" id="rhn-source-package-42298" source-rpm="notify-python-0.1.0-3.fc6.src.rpm"/><source-package last-modified="1174932167" id="rhn-source-package-42299" source-rpm="docbook-simple-1.0-2.1.1.src.rpm"/><source-package last-modified="1174932171" id="rhn-source-package-42300" source-rpm="passivetex-1.25-5.1.1.src.rpm"/><source-package last-modified="1174932172" id="rhn-source-package-42301" source-rpm="gnome-python2-extras-2.14.2-4.fc6.src.rpm"/><source-package last-modified="1174932172" id="rhn-source-package-42302" source-rpm="perl-Net-IP-1.25-2.fc6.src.rpm"/><source-package last-modified="1174932173" id="rhn-source-package-42304" source-rpm="xorg-x11-drv-sisusb-0.8.1-4.1.src.rpm"/><source-package last-modified="1174932314" id="rhn-source-package-42313" source-rpm="perl-String-CRC32-1.4-2.fc6.src.rpm"/><source-package last-modified="1174932316" id="rhn-source-package-42315" source-rpm="gcalctool-5.8.25-1.el5.src.rpm"/><source-package last-modified="1174932318" id="rhn-source-package-42318" source-rpm="pyparted-1.8.1-4.el5.src.rpm"/><source-package last-modified="1174932319" id="rhn-source-package-42319" source-rpm="python-pyblock-0.25-1.src.rpm"/><source-package last-modified="1174932319" id="rhn-source-package-42320" source-rpm="perl-Archive-Tar-1.30-1.fc6.src.rpm"/><source-package last-modified="1174932320" id="rhn-source-package-42321" source-rpm="tzdata-2006m-2.fc6.src.rpm"/><source-package last-modified="1174932320" id="rhn-source-package-42322" source-rpm="pyspi-0.6.1-1.el5.src.rpm"/><source-package last-modified="1174932321" id="rhn-source-package-42323" source-rpm="xorg-x11-drv-elo2300-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932322" id="rhn-source-package-42324" source-rpm="xorg-x11-drv-keyboard-1.1.0-2.1.src.rpm"/><source-package last-modified="1174932323" id="rhn-source-package-42325" source-rpm="xorg-x11-drv-dummy-0.2.0-2.1.src.rpm"/><source-package last-modified="1174932323" id="rhn-source-package-42326" source-rpm="xorg-x11-drv-vesa-1.2.1-5.2.el5.src.rpm"/><source-package last-modified="1174932324" id="rhn-source-package-42327" source-rpm="xorg-x11-drv-digitaledge-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932325" id="rhn-source-package-42328" source-rpm="rhnlib-2.2.5-1.el5.src.rpm"/><source-package last-modified="1174932327" id="rhn-source-package-42330" source-rpm="perl-Socket6-0.19-3.fc6.src.rpm"/><source-package last-modified="1174932330" id="rhn-source-package-42333" source-rpm="xorg-x11-drv-vmware-10.13.0-2.1.src.rpm"/><source-package last-modified="1174932331" id="rhn-source-package-42334" source-rpm="ghostscript-fonts-5.50-13.1.1.src.rpm"/><source-package last-modified="1174932332" id="rhn-source-package-42335" source-rpm="xorg-x11-drv-penmount-1.1.0-2.1.src.rpm"/><source-package last-modified="1174932333" id="rhn-source-package-42336" source-rpm="dialog-1.0.20051107-1.2.2.src.rpm"/><source-package last-modified="1174932335" id="rhn-source-package-42338" source-rpm="perl-Net-SSLeay-1.30-4.fc6.src.rpm"/><source-package last-modified="1174932335" id="rhn-source-package-42339" source-rpm="xorg-x11-drv-tdfx-1.2.1-3.1.src.rpm"/><source-package last-modified="1174932336" id="rhn-source-package-42340" source-rpm="xorg-x11-drv-nv-1.2.0-4.fc6.src.rpm"/><source-package last-modified="1174932337" id="rhn-source-package-42341" source-rpm="perl-IO-Zlib-1.04-4.2.1.src.rpm"/><source-package last-modified="1174932337" id="rhn-source-package-42342" source-rpm="xorg-x11-drv-magictouch-1.0.0.5-2.1.src.rpm"/><source-package last-modified="1174932339" id="rhn-source-package-42343" source-rpm="xorg-x11-drv-sis-0.9.1-7.src.rpm"/><source-package last-modified="1174932339" id="rhn-source-package-42344" source-rpm="xorg-x11-drv-fbdev-0.3.0-2.src.rpm"/><source-package last-modified="1174932343" id="rhn-source-package-42345" source-rpm="notification-daemon-0.3.5-8.el5.src.rpm"/><source-package last-modified="1174932344" id="rhn-source-package-42346" source-rpm="redhat-menus-6.7.8-1.el5.src.rpm"/><source-package last-modified="1174932345" id="rhn-source-package-42347" source-rpm="lvm2-2.02.16-3.el5.src.rpm"/><source-package last-modified="1174932346" id="rhn-source-package-42348" source-rpm="xorg-x11-drv-ati-6.6.3-3.2.el5.src.rpm"/><source-package last-modified="1174932347" id="rhn-source-package-42349" source-rpm="procmail-3.22-17.1.src.rpm"/><source-package last-modified="1174932349" id="rhn-source-package-42351" source-rpm="xorg-x11-drv-ur98-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932349" id="rhn-source-package-42352" source-rpm="xorg-x11-drv-magellan-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932350" id="rhn-source-package-42353" source-rpm="xorg-x11-drv-void-1.1.0-3.1.src.rpm"/><source-package last-modified="1174932350" id="rhn-source-package-42354" source-rpm="dmidecode-2.7-1.28.2.el5.src.rpm"/><source-package last-modified="1174932351" id="rhn-source-package-42355" source-rpm="xorg-x11-drv-mouse-1.1.1-1.1.src.rpm"/><source-package last-modified="1174932351" id="rhn-source-package-42356" source-rpm="perl-Carp-Clan-5.3-1.2.1.src.rpm"/><source-package last-modified="1174932352" id="rhn-source-package-42357" source-rpm="perl-HTML-Tagset-3.10-2.1.1.src.rpm"/><source-package last-modified="1174932352" id="rhn-source-package-42358" source-rpm="perl-libwww-perl-5.805-1.1.1.src.rpm"/><source-package last-modified="1174932354" id="rhn-source-package-42359" source-rpm="mx-2.0.6-2.2.2.src.rpm"/><source-package last-modified="1174932356" id="rhn-source-package-42360" source-rpm="xorg-x11-drv-dynapro-1.1.0-2.src.rpm"/><source-package last-modified="1174932357" id="rhn-source-package-42361" source-rpm="psmisc-22.2-5.src.rpm"/><source-package last-modified="1174932358" id="rhn-source-package-42362" source-rpm="xorg-x11-drv-vga-4.1.0-2.1.src.rpm"/><source-package last-modified="1174932358" id="rhn-source-package-42363" source-rpm="perl-BSD-Resource-1.28-1.fc6.1.src.rpm"/><source-package last-modified="1174932359" id="rhn-source-package-42364" source-rpm="kasumi-2.0.1-1.1.fc6.src.rpm"/><source-package last-modified="1174932359" id="rhn-source-package-42365" source-rpm="xorg-x11-drv-spaceorb-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932360" id="rhn-source-package-42366" source-rpm="python-sqlite-1.1.7-1.2.1.src.rpm"/><source-package last-modified="1174932360" id="rhn-source-package-42367" source-rpm="xorg-x11-drv-fpit-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932361" id="rhn-source-package-42368" source-rpm="xmltex-20020625-8.src.rpm"/><source-package last-modified="1174932361" id="rhn-source-package-42369" source-rpm="ttmkfdir-3.0.9-23.el5.src.rpm"/><source-package last-modified="1174932361" id="rhn-source-package-42370" source-rpm="rhnsd-4.6.1-1.el5.src.rpm"/><source-package last-modified="1174932363" id="rhn-source-package-42371" source-rpm="xorg-x11-xkb-utils-1.0.2-2.1.src.rpm"/><source-package last-modified="1174932366" id="rhn-source-package-42372" source-rpm="xorg-x11-drv-savage-2.1.1-5.fc6.src.rpm"/><source-package last-modified="1174932369" id="rhn-source-package-42373" source-rpm="ntp-4.2.2p1-5.el5.src.rpm"/><source-package last-modified="1174932370" id="rhn-source-package-42374" source-rpm="xorg-x11-drv-trident-1.2.1-3.fc6.src.rpm"/><source-package last-modified="1174932371" id="rhn-source-package-42375" source-rpm="xorg-x11-drv-ast-0.81.0-3.src.rpm"/><source-package last-modified="1174932371" id="rhn-source-package-42376" source-rpm="xorg-x11-drv-summa-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932372" id="rhn-source-package-42377" source-rpm="perl-Bit-Vector-6.4-2.2.2.1.src.rpm"/><source-package last-modified="1174932373" id="rhn-source-package-42378" source-rpm="xorg-x11-drv-palmax-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932373" id="rhn-source-package-42379" source-rpm="xorg-x11-drv-cirrus-1.1.0-2.fc6.src.rpm"/><source-package last-modified="1174932379" id="rhn-source-package-42380" source-rpm="urw-fonts-2.3-6.1.1.src.rpm"/><source-package last-modified="1174932379" id="rhn-source-package-42381" source-rpm="xorg-x11-drv-vmmouse-12.4.0-2.1.src.rpm"/><source-package last-modified="1174932380" id="rhn-source-package-42382" source-rpm="xorg-x11-drv-hyperpen-1.1.0-2.src.rpm"/><source-package last-modified="1174932383" id="rhn-source-package-42384" source-rpm="xorg-x11-drv-siliconmotion-1.4.1-2.1.src.rpm"/><source-package last-modified="1174932383" id="rhn-source-package-42385" source-rpm="python-elementtree-1.2.6-5.src.rpm"/><source-package last-modified="1174932384" id="rhn-source-package-42386" source-rpm="xorg-x11-drv-s3virge-1.9.1-2.1.src.rpm"/><source-package last-modified="1174932385" id="rhn-source-package-42387" source-rpm="xkeyboard-config-0.8-7.fc6.src.rpm"/><source-package last-modified="1174932388" id="rhn-source-package-42388" source-rpm="xorg-x11-server-utils-7.1-4.fc6.src.rpm"/><source-package last-modified="1174932391" id="rhn-source-package-42389" source-rpm="gthumb-2.7.8-5.el5.src.rpm"/><source-package last-modified="1174932392" id="rhn-source-package-42391" source-rpm="portmap-4.0-65.2.2.1.src.rpm"/><source-package last-modified="1174932394" id="rhn-source-package-42392" source-rpm="cdrdao-1.2.1-2.src.rpm"/><source-package last-modified="1174932394" id="rhn-source-package-42393" source-rpm="perl-Digest-SHA1-2.11-1.2.1.src.rpm"/><source-package last-modified="1174932396" id="rhn-source-package-42395" source-rpm="xorg-x11-drv-tek4957-1.1.0-1.1.src.rpm"/><source-package last-modified="1174932396" id="rhn-source-package-42396" source-rpm="xorg-x11-drv-citron-2.2.0-1.1.src.rpm"/><source-package last-modified="1174932397" id="rhn-source-package-42397" source-rpm="xorg-x11-drv-mutouch-1.1.0-2.src.rpm"/><source-package last-modified="1174932398" id="rhn-source-package-42398" source-rpm="xorg-x11-drv-s3-0.4.1-2.1.src.rpm"/><source-package last-modified="1174932398" id="rhn-source-package-42399" source-rpm="rhpxl-0.41-1.el5.src.rpm"/><source-package last-modified="1174932399" id="rhn-source-package-42400" source-rpm="xorg-x11-drv-aiptek-1.0.1-2.src.rpm"/><source-package last-modified="1174932400" id="rhn-source-package-42401" source-rpm="shared-mime-info-0.19-3.el5.src.rpm"/><source-package last-modified="1174932401" id="rhn-source-package-42402" source-rpm="xorg-x11-drv-mga-1.4.2-5.el5.src.rpm"/><source-package last-modified="1174932401" id="rhn-source-package-42403" source-rpm="mpage-2.5.4-7.1.src.rpm"/><source-package last-modified="1174932402" id="rhn-source-package-42404" source-rpm="perl-IO-String-1.08-1.1.1.src.rpm"/><source-package last-modified="1174932402" id="rhn-source-package-42405" source-rpm="mcelog-0.7-1.22.fc6.src.rpm"/><source-package last-modified="1174932472" id="rhn-source-package-42406" source-rpm="redhat-release-5Server-5.0.0.9.src.rpm"/><source-package last-modified="1174932476" id="rhn-source-package-42407" source-rpm="redhat-release-notes-5Server-5.src.rpm"/><source-package last-modified="1175179614" id="rhn-source-package-42450" source-rpm="net-snmp-5.3.1-14.0.1.el5.src.rpm"/><source-package last-modified="1175623874" id="rhn-source-package-42475" source-rpm="krb5-1.5-23.src.rpm"/><source-package last-modified="1175624969" id="rhn-source-package-42476" source-rpm="libXfont-1.2.2-1.0.2.el5.src.rpm"/><source-package last-modified="1175625793" id="rhn-source-package-42478" source-rpm="xorg-x11-server-1.1.1-48.13.0.1.el5.src.rpm"/><source-package last-modified="1175626387" id="rhn-source-package-42479" source-rpm="squid-2.6.STABLE6-4.el5.src.rpm"/><source-package last-modified="1176722952" id="rhn-source-package-42503" source-rpm="freetype-2.2.1-17.el5.src.rpm"/><source-package last-modified="1176723787" id="rhn-source-package-42506" source-rpm="cups-1.2.4-11.5.1.el5.src.rpm"/><source-package last-modified="1176738095" id="rhn-source-package-42511" source-rpm="xorg-x11-apps-7.1-4.0.1.el5.src.rpm"/><source-package last-modified="1176738095" id="rhn-source-package-42512" source-rpm="libX11-1.0.3-8.0.1.el5.src.rpm"/><source-package last-modified="1177062384" id="rhn-source-package-42525" source-rpm="php-5.1.6-11.el5.src.rpm"/><source-package last-modified="1177950686" id="rhn-source-package-42751" source-rpm="kernel-2.6.18-8.1.3.el5.src.rpm"/><source-package last-modified="1178637852" id="rhn-source-package-42780" source-rpm="postgresql-8.1.9-1.el5.src.rpm"/><source-package last-modified="1178639068" id="rhn-source-package-42782" source-rpm="php-5.1.6-12.el5.src.rpm"/><source-package last-modified="1178716269" id="rhn-source-package-42791" source-rpm="vim-7.0.109-3.el5.3.src.rpm"/><source-package last-modified="1178804159" id="rhn-source-package-42796" source-rpm="cman-2.0.62-1.el5.src.rpm"/><source-package last-modified="1178812686" id="rhn-source-package-42800" source-rpm="freeradius-1.1.3-1.2.el5.src.rpm"/><source-package last-modified="1179155325" id="rhn-source-package-42833" source-rpm="samba-3.0.23c-2.el5.2.0.2.src.rpm"/><source-package last-modified="1179161928" id="rhn-source-package-42836" source-rpm="tomcat5-5.5.23-0jpp.1.0.3.el5.src.rpm"/><source-package last-modified="1179161928" id="rhn-source-package-42837" source-rpm="jakarta-commons-modeler-1.1-8jpp.1.0.2.el5.src.rpm"/><source-package last-modified="1179338448" id="rhn-source-package-42843" source-rpm="yum-rhn-plugin-0.4.3-2.el5.src.rpm"/><source-package last-modified="1179340066" id="rhn-source-package-42844" source-rpm="kernel-2.6.18-8.1.4.el5.src.rpm"/><source-package last-modified="1179411401" id="rhn-source-package-42848" source-rpm="ipsec-tools-0.6.5-8.el5.src.rpm"/><source-package last-modified="1179411519" id="rhn-source-package-42851" source-rpm="vixie-cron-4.1-70.el5.src.rpm"/><source-package last-modified="1179413374" id="rhn-source-package-42856" source-rpm="squirrelmail-1.4.8-4.0.1.el5.src.rpm"/><source-package last-modified="1179437773" id="rhn-source-package-42859" source-rpm="libpng-1.2.10-7.0.2.src.rpm"/><source-package last-modified="1179496299" id="rhn-source-package-42865" source-rpm="cman-2.0.64-1.el5.src.rpm"/><source-package last-modified="1179751939" id="rhn-source-package-42871" source-rpm="gimp-2.2.13-2.el5.src.rpm"/><source-package last-modified="1180011489" id="rhn-source-package-42900" source-rpm="redhat-rpm-config-8.0.45-17.0.1.el5.src.rpm"/><source-package last-modified="1180516316" id="rhn-source-package-42905" source-rpm="evolution-data-server-1.8.0-15.0.3.el5.src.rpm"/><source-package last-modified="1180517266" id="rhn-source-package-42907" source-rpm="quagga-0.98.6-2.1.0.1.el5.src.rpm"/><source-package last-modified="1180517957" id="rhn-source-package-42910" source-rpm="file-4.17-9.0.1.el5.src.rpm"/><source-package last-modified="1180574784" id="rhn-source-package-42915" source-rpm="firefox-1.5.0.12-1.el5.src.rpm"/><source-package last-modified="1180574784" id="rhn-source-package-42916" source-rpm="devhelp-0.12-11.el5.src.rpm"/><source-package last-modified="1180574784" id="rhn-source-package-42918" source-rpm="yelp-2.16.0-15.el5.src.rpm"/><source-package last-modified="1180943776" id="rhn-source-package-42927" source-rpm="mutt-1.4.2.2-3.0.2.el5.src.rpm"/><source-package last-modified="1181203175" id="rhn-source-package-42930" source-rpm="fetchmail-6.3.6-1.0.1.el5.src.rpm"/><source-package last-modified="1181549495" id="rhn-source-package-42999" source-rpm="freetype-2.2.1-19.el5.src.rpm"/><source-package last-modified="1181750122" id="rhn-source-package-43026" source-rpm="spamassassin-3.1.9-1.el5.src.rpm"/><source-package last-modified="1181814996" id="rhn-source-package-43032" source-rpm="iscsi-initiator-utils-6.2.0.742-0.6.el5.src.rpm"/><source-package last-modified="1181815313" id="rhn-source-package-43034" source-rpm="mod_perl-2.0.2-6.3.el5.src.rpm"/><source-package last-modified="1181832624" id="rhn-source-package-43041" source-rpm="kernel-2.6.18-8.1.6.el5.src.rpm"/><source-package last-modified="1181844745" id="rhn-source-package-43043" source-rpm="libexif-0.6.13-4.0.2.el5.src.rpm"/><source-package last-modified="1182155397" id="rhn-source-package-43056" source-rpm="nspr-4.6.5-1.0.1.el5.src.rpm"/><source-package last-modified="1182778701" id="rhn-source-package-43067" source-rpm="evolution-data-server-1.8.0-15.0.4.el5.src.rpm"/><source-package last-modified="1182871284" id="rhn-source-package-43073" source-rpm="httpd-2.2.3-7.el5.src.rpm"/><source-package last-modified="1182883654" id="rhn-source-package-43077" source-rpm="krb5-1.5-26.src.rpm"/><source-package last-modified="1182947345" id="rhn-source-package-43078" source-rpm="sysreport-1.4.3-12.el5.src.rpm"/><source-package last-modified="1182947428" id="rhn-source-package-43079" source-rpm="xterm-215-5.el5.src.rpm"/><source-package last-modified="1182947522" id="rhn-source-package-43080" source-rpm="hardlink-1.0-1.27.src.rpm"/><source-package last-modified="1182947568" id="rhn-source-package-43081" source-rpm="enscript-1.6.4-4.1.el5.src.rpm"/><source-package last-modified="1182947709" id="rhn-source-package-43082" source-rpm="fonts-chinese-3.02-9.9.el5.src.rpm"/><source-package last-modified="1182947876" id="rhn-source-package-43084" source-rpm="sos-1.5-1.el5.src.rpm"/><source-package last-modified="1182948057" id="rhn-source-package-43085" source-rpm="cracklib-2.8.9-3.3.src.rpm"/><source-package last-modified="1182948234" id="rhn-source-package-43086" source-rpm="rhpxl-0.41.1-1.el5.src.rpm"/><source-package last-modified="1182948319" id="rhn-source-package-43087" source-rpm="mc-4.6.1a-35.el5.src.rpm"/><source-package last-modified="1183015999" id="rhn-source-package-43102" source-rpm="cman-2.0.64-1.0.1.el5.src.rpm"/><source-package last-modified="1183649434" id="rhn-source-package-43182" source-rpm="perl-TimeDate-1.16-5.el5.src.rpm"/><source-package last-modified="1183649540" id="rhn-source-package-43183" source-rpm="prelink-0.3.9-2.1.src.rpm"/><source-package last-modified="1183649671" id="rhn-source-package-43184" source-rpm="conman-0.1.9.2-8.el5.src.rpm"/><source-package last-modified="1183649777" id="rhn-source-package-43185" source-rpm="mod_auth_kerb-5.1-3.el5.src.rpm"/><source-package last-modified="1183649876" id="rhn-source-package-43186" source-rpm="mod_authz_ldap-0.26-8.el5.src.rpm"/><source-package last-modified="1184039694" id="rhn-source-package-43188" source-rpm="kernel-2.6.18-8.1.8.el5.src.rpm"/><source-package last-modified="1184230888" id="rhn-source-package-43193" source-rpm="perl-Net-DNS-0.59-3.el5.src.rpm"/><source-package last-modified="1184231901" id="rhn-source-package-43194" source-rpm="xorg-x11-xfs-1.0.2-4.src.rpm"/><source-package last-modified="1184668510" id="rhn-source-package-43216" source-rpm="tomcat5-5.5.23-0jpp.1.0.4.el5.src.rpm"/><source-package last-modified="1184770290" id="rhn-source-package-43218" source-rpm="man-pages-2.39-10.el5.src.rpm"/><source-package last-modified="1184770575" id="rhn-source-package-43219" source-rpm="system-config-kdump-1.0.10-1.el5.src.rpm"/><source-package last-modified="1184770766" id="rhn-source-package-43220" source-rpm="fetchmail-6.3.6-1.1.el5.src.rpm"/><source-package last-modified="1184792490" id="rhn-source-package-43228" source-rpm="man-pages-ja-20060815-5.src.rpm"/><source-package last-modified="1184812911" id="rhn-source-package-43234" source-rpm="firefox-1.5.0.12-3.el5.src.rpm"/><source-package last-modified="1184850750" id="rhn-source-package-43238" source-rpm="tzdata-2007f-1.el5.src.rpm"/><source-package last-modified="1185284803" id="rhn-source-package-43497" source-rpm="bind-9.3.3-9.0.1.el5.src.rpm"/><source-package last-modified="1185484552" id="rhn-source-package-43504" source-rpm="acl-2.2.39-2.1.el5.src.rpm"/><source-package last-modified="1185484595" id="rhn-source-package-43512" source-rpm="binutils-2.17.50.0.6-5.el5.src.rpm"/><source-package last-modified="1185484602" id="rhn-source-package-43515" source-rpm="cairo-1.2.4-2.el5.src.rpm"/><source-package last-modified="1185484885" id="rhn-source-package-43526" source-rpm="dhcp-3.0.5-7.el5.src.rpm"/><source-package last-modified="1185484931" id="rhn-source-package-43531" source-rpm="emacs-21.4-19.el5.src.rpm"/><source-package last-modified="1185485009" id="rhn-source-package-43534" source-rpm="evolution-data-server-1.8.0-25.el5.src.rpm"/><source-package last-modified="1185485193" id="rhn-source-package-43549" source-rpm="icu-3.6-5.11.src.rpm"/><source-package last-modified="1185485303" id="rhn-source-package-43559" source-rpm="liberation-fonts-0.2-2.el5.src.rpm"/><source-package last-modified="1185485304" id="rhn-source-package-43560" source-rpm="libselinux-1.33.4-4.el5.src.rpm"/><source-package last-modified="1185485336" id="rhn-source-package-43573" source-rpm="nspr-4.6.5-3.el5.src.rpm"/><source-package last-modified="1185485344" id="rhn-source-package-43575" source-rpm="nss_ldap-253-5.el5.src.rpm"/><source-package last-modified="1185485349" id="rhn-source-package-43576" source-rpm="ntp-4.2.2p1-7.el5.src.rpm"/><source-package last-modified="1185485352" id="rhn-source-package-43578" source-rpm="openCryptoki-2.2.4-16.el5.src.rpm"/><source-package last-modified="1185485398" id="rhn-source-package-43582" source-rpm="openldap-2.3.27-8.src.rpm"/><source-package last-modified="1185819966" id="rhn-source-package-43595" source-rpm="cups-1.2.4-11.5.3.el5.src.rpm"/><source-package last-modified="1185821879" id="rhn-source-package-43596" source-rpm="poppler-0.5.4-4.1.el5.src.rpm"/><source-package last-modified="1185828304" id="rhn-source-package-43601" source-rpm="openssh-4.3p2-24.el5.src.rpm"/><source-package last-modified="1185828315" id="rhn-source-package-43603" source-rpm="pam_krb5-2.2.14-1.src.rpm"/><source-package last-modified="1185828327" id="rhn-source-package-43610" source-rpm="redhat-lsb-3.1-12.3.EL.src.rpm"/><source-package last-modified="1185828372" id="rhn-source-package-43620" source-rpm="sysklogd-1.4.1-40.el5.src.rpm"/><source-package last-modified="1185828373" id="rhn-source-package-43621" source-rpm="sysreport-1.4.3-13.el5.src.rpm"/><source-package last-modified="1185828376" id="rhn-source-package-43622" source-rpm="systemtap-0.5.14-1.el5.src.rpm"/><source-package last-modified="1185828398" id="rhn-source-package-43628" source-rpm="util-linux-2.13-0.45.el5.src.rpm"/><source-package last-modified="1185904157" id="rhn-source-package-43650" source-rpm="qt-3.3.6-21.el5.src.rpm"/><source-package last-modified="1185960834" id="rhn-source-package-43677" source-rpm="tetex-3.0-33.1.el5.src.rpm"/><source-package last-modified="1186514351" id="rhn-source-package-43700" source-rpm="gdm-2.16.0-31.0.1.el5.src.rpm"/><source-package last-modified="1187872660" id="rhn-source-package-43759" source-rpm="tar-1.15.1-23.0.1.el5.src.rpm"/><source-package last-modified="1188480717" id="rhn-source-package-43905" source-rpm="mysql-5.0.22-2.1.0.1.src.rpm"/><source-package last-modified="1188914520" id="rhn-source-package-43908" source-rpm="aide-0.13.1-2.0.4.el5.src.rpm"/><source-package last-modified="1188917451" id="rhn-source-package-43913" source-rpm="star-1.5a75-2.src.rpm"/><source-package last-modified="1188929562" id="rhn-source-package-43915" source-rpm="krb5-1.5-28.src.rpm"/><source-package last-modified="1189167226" id="rhn-source-package-43928" source-rpm="krb5-1.5-29.src.rpm"/><source-package last-modified="1189674517" id="rhn-source-package-43933" source-rpm="kernel-2.6.18-8.1.10.el5.src.rpm"/><source-package last-modified="1189699429" id="rhn-source-package-43937" source-rpm="qt-3.3.6-23.el5.src.rpm"/><source-package last-modified="1190222218" id="rhn-source-package-44015" source-rpm="libvorbis-1.1.2-3.el5.0.src.rpm"/><source-package last-modified="1190293563" id="rhn-source-package-44016" source-rpm="php-5.1.6-15.el5.src.rpm"/><source-package last-modified="1190794387" id="rhn-source-package-44055" source-rpm="gimp-2.2.13-2.0.7.el5.src.rpm"/><source-package last-modified="1190794572" id="rhn-source-package-44058" source-rpm="tomcat5-5.5.23-0jpp.3.0.2.el5.src.rpm"/><source-package last-modified="1190924207" id="rhn-source-package-44061" source-rpm="kernel-2.6.18-8.1.14.el5.src.rpm"/><source-package last-modified="1191358376" id="rhn-source-package-44075" source-rpm="xen-3.0.3-25.0.4.el5.src.rpm"/><source-package last-modified="1191358472" id="rhn-source-package-44076" source-rpm="nfs-utils-lib-1.0.8-7.2.z2.src.rpm"/><source-package last-modified="1191426218" id="rhn-source-package-44078" source-rpm="elinks-0.11.1-5.1.0.1.el5.src.rpm"/><source-package last-modified="1191505134" id="rhn-source-package-44084" source-rpm="tzdata-2007h-1.el5.src.rpm"/><source-package last-modified="1191829373" id="rhn-source-package-44085" source-rpm="kdebase-3.5.4-15.el5.src.rpm"/><source-package last-modified="1191830694" id="rhn-source-package-44088" source-rpm="kdelibs-3.5.4-13.el5.src.rpm"/><source-package last-modified="1192127121" id="rhn-source-package-44098" source-rpm="hplip-1.6.7-4.1.el5_0.3.src.rpm"/><source-package last-modified="1192186797" id="rhn-source-package-44099" source-rpm="openssl-0.9.8b-8.3.el5_0.2.src.rpm"/><source-package last-modified="1192807897" id="rhn-source-package-44104" source-rpm="firefox-1.5.0.12-6.el5.src.rpm"/><source-package last-modified="1193050083" id="rhn-source-package-44113" source-rpm="kernel-2.6.18-8.1.15.el5.src.rpm"/><source-package last-modified="1193067711" id="rhn-source-package-44115" source-rpm="flac-1.1.2-28.el5_0.1.src.rpm"/><source-package last-modified="1193157868" id="rhn-source-package-44132" source-rpm="libpng-1.2.10-7.1.el5_0.1.src.rpm"/><source-package last-modified="1193755341" id="rhn-source-package-44156" source-rpm="net-snmp-5.3.1-19.el5.src.rpm"/><source-package last-modified="1193756229" id="rhn-source-package-44158" source-rpm="mozldap-6.0.4-1.el5.src.rpm"/><source-package last-modified="1193756241" id="rhn-source-package-44159" source-rpm="svrcore-4.0.4-3.el5.src.rpm"/><source-package last-modified="1193756255" id="rhn-source-package-44160" source-rpm="perl-Mozilla-LDAP-1.5.2-4.el5.src.rpm"/><source-package last-modified="1193756264" id="rhn-source-package-44161" source-rpm="nfs4-acl-tools-0.3.1-1.el5.1.src.rpm"/><source-package last-modified="1193756276" id="rhn-source-package-44162" source-rpm="system-config-kdump-1.0.12-1.el5.src.rpm"/><source-package last-modified="1193756310" id="rhn-source-package-44163" source-rpm="sos-1.7-9.1.el5.src.rpm"/><source-package last-modified="1193756320" id="rhn-source-package-44165" source-rpm="redhat-release-5Server-5.1.0.2.src.rpm"/><source-package last-modified="1193756356" id="rhn-source-package-44166" source-rpm="ldapjdk-4.18-2jpp.3.el5.src.rpm"/><source-package last-modified="1193756646" id="rhn-source-package-44167" source-rpm="module-init-tools-3.3-0.pre3.1.34.el5.src.rpm"/><source-package last-modified="1193756657" id="rhn-source-package-44168" source-rpm="strace-4.5.16-1.el5.1.src.rpm"/><source-package last-modified="1193756723" id="rhn-source-package-44169" source-rpm="nss-3.11.7-1.3.el5.src.rpm"/><source-package last-modified="1193756782" id="rhn-source-package-44170" source-rpm="system-config-network-1.3.99-2.el5.src.rpm"/><source-package last-modified="1193756818" id="rhn-source-package-44171" source-rpm="ypbind-1.19-8.el5.src.rpm"/><source-package last-modified="1193756831" id="rhn-source-package-44172" source-rpm="xorg-x11-drv-mga-1.4.2-6.el5.src.rpm"/><source-package last-modified="1193756839" id="rhn-source-package-44173" source-rpm="redhat-menus-6.7.8-2.el5.src.rpm"/><source-package last-modified="1193757031" id="rhn-source-package-44176" source-rpm="cachefilesd-0.8-2.el5.src.rpm"/><source-package last-modified="1193757051" id="rhn-source-package-44177" source-rpm="initscripts-8.45.17.EL-1.src.rpm"/><source-package last-modified="1193757081" id="rhn-source-package-44178" source-rpm="krb5-1.6.1-17.el5.src.rpm"/><source-package last-modified="1193757109" id="rhn-source-package-44179" source-rpm="kernel-2.6.18-53.el5.src.rpm"/><source-package last-modified="1193757177" id="rhn-source-package-44180" source-rpm="gdb-6.5-25.el5.src.rpm"/><source-package last-modified="1193757205" id="rhn-source-package-44181" source-rpm="crash-4.0-4.6.1.src.rpm"/><source-package last-modified="1193757223" id="rhn-source-package-44182" source-rpm="quagga-0.98.6-5.el5.src.rpm"/><source-package last-modified="1193757238" id="rhn-source-package-44183" source-rpm="openhpi-2.8.1-2.el5.7.src.rpm"/><source-package last-modified="1193757388" id="rhn-source-package-44184" source-rpm="gfs2-utils-0.1.38-1.el5.src.rpm"/><source-package last-modified="1193757398" id="rhn-source-package-44185" source-rpm="cman-2.0.73-1.el5.src.rpm"/><source-package last-modified="1193757411" id="rhn-source-package-44186" source-rpm="openais-0.80.3-7.el5.src.rpm"/><source-package last-modified="1193758413" id="rhn-source-package-44187" source-rpm="edac-utils-0.9-5.el5.src.rpm"/><source-package last-modified="1193758527" id="rhn-source-package-44188" source-rpm="audit-1.5.5-7.el5.src.rpm"/><source-package last-modified="1193758661" id="rhn-source-package-44192" source-rpm="kudzu-1.2.57.1.15-1.src.rpm"/><source-package last-modified="1193758877" id="rhn-source-package-44194" source-rpm="mesa-6.5.1-7.5.el5.src.rpm"/><source-package last-modified="1193758955" id="rhn-source-package-44197" source-rpm="openib-1.2-6.el5.src.rpm"/><source-package last-modified="1193758983" id="rhn-source-package-44198" source-rpm="mkinitrd-5.1.19.6-19.src.rpm"/><source-package last-modified="1193759079" id="rhn-source-package-44199" source-rpm="cups-1.2.4-11.14.el5.src.rpm"/><source-package last-modified="1193759272" id="rhn-source-package-44203" source-rpm="cpufreq-utils-002-1.1.43.el5.src.rpm"/><source-package last-modified="1193759331" id="rhn-source-package-44204" source-rpm="xen-3.0.3-41.el5.src.rpm"/><source-package last-modified="1193759547" id="rhn-source-package-44206" source-rpm="yum-utils-1.0.4-3.el5.src.rpm"/><source-package last-modified="1193759566" id="rhn-source-package-44207" source-rpm="hwdata-0.211-1.src.rpm"/><source-package last-modified="1193759599" id="rhn-source-package-44208" source-rpm="xorg-x11-drv-i810-1.6.5-9.6.el5.src.rpm"/><source-package last-modified="1193759612" id="rhn-source-package-44209" source-rpm="xorg-x11-drv-nv-2.1.2-1.el5.src.rpm"/><source-package last-modified="1193760216" id="rhn-source-package-44211" source-rpm="parted-1.8.1-12.el5.src.rpm"/><source-package last-modified="1193760232" id="rhn-source-package-44212" source-rpm="device-mapper-multipath-0.4.7-12.el5.src.rpm"/><source-package last-modified="1193760233" id="rhn-source-package-44213" source-rpm="rpm-4.4.2-47.el5.src.rpm"/><source-package last-modified="1193760434" id="rhn-source-package-44215" source-rpm="kexec-tools-1.101-194.4.el5.src.rpm"/><source-package last-modified="1193760626" id="rhn-source-package-44216" source-rpm="gtk2-2.10.4-19.el5.src.rpm"/><source-package last-modified="1193760685" id="rhn-source-package-44217" source-rpm="nfs-utils-1.0.9-24.el5.src.rpm"/><source-package last-modified="1193760688" id="rhn-source-package-44218" source-rpm="selinux-policy-2.4.6-104.el5.src.rpm"/><source-package last-modified="1193760707" id="rhn-source-package-44220" source-rpm="fonts-chinese-3.02-12.el5.src.rpm"/><source-package last-modified="1193760734" id="rhn-source-package-44221" source-rpm="hal-0.5.8.1-25.el5.src.rpm"/><source-package last-modified="1193760951" id="rhn-source-package-44222" source-rpm="sblim-1-29.EL5.src.rpm"/><source-package last-modified="1193760965" id="rhn-source-package-44223" source-rpm="Deployment_Guide-5.1.0-11.src.rpm"/><source-package last-modified="1193760992" id="rhn-source-package-44224" source-rpm="jakarta-commons-modeler-1.1-8jpp.3.el5.src.rpm"/><source-package last-modified="1193761007" id="rhn-source-package-44225" source-rpm="pm-utils-0.99.3-6.el5.17.src.rpm"/><source-package last-modified="1193761011" id="rhn-source-package-44226" source-rpm="autofs-5.0.1-0.rc2.55.src.rpm"/><source-package last-modified="1193761028" id="rhn-source-package-44227" source-rpm="sabayon-2.12.4-5.el5.src.rpm"/><source-package last-modified="1193761040" id="rhn-source-package-44229" source-rpm="irqbalance-0.55-6.el5.src.rpm"/><source-package last-modified="1193761055" id="rhn-source-package-44230" source-rpm="tog-pegasus-2.6.1-2.el5.src.rpm"/><source-package last-modified="1193761105" id="rhn-source-package-44232" source-rpm="lvm2-2.02.26-3.el5.src.rpm"/><source-package last-modified="1193761167" id="rhn-source-package-44233" source-rpm="redhat-release-notes-5Server-9.src.rpm"/><source-package last-modified="1193761264" id="rhn-source-package-44235" source-rpm="dmraid-1.0.0.rc13-4.el5.src.rpm"/><source-package last-modified="1193761300" id="rhn-source-package-44236" source-rpm="newt-perl-1.08-9.2.2.src.rpm"/><source-package last-modified="1193761300" id="rhn-source-package-44237" source-rpm="crypto-utils-2.3-1.src.rpm"/><source-package last-modified="1193761338" id="rhn-source-package-44238" source-rpm="iscsi-initiator-utils-6.2.0.865-0.8.el5.src.rpm"/><source-package last-modified="1193761352" id="rhn-source-package-44239" source-rpm="yum-rhn-plugin-0.5.2-3.el5.src.rpm"/><source-package last-modified="1193761659" id="rhn-source-package-44240" source-rpm="wireshark-0.99.6-1.el5.src.rpm"/><source-package last-modified="1193770704" id="rhn-source-package-44253" source-rpm="rhn-client-tools-0.4.16-1.el5.src.rpm"/><source-package last-modified="1193771307" id="rhn-source-package-44255" source-rpm="OpenIPMI-2.0.6-5.el5.4.src.rpm"/><source-package last-modified="1193771537" id="rhn-source-package-44256" source-rpm="pkinit-nss-0.7.3-1.el5.src.rpm"/><source-package last-modified="1193779644" id="rhn-source-package-44257" source-rpm="watchdog-5.3.1-7.el5.src.rpm"/><source-package last-modified="1193779865" id="rhn-source-package-44258" source-rpm="openmpi-1.2.3-4.el5.src.rpm"/><source-package last-modified="1193779875" id="rhn-source-package-44259" source-rpm="ibutils-1.2-2.el5.src.rpm"/><source-package last-modified="1193780050" id="rhn-source-package-44260" source-rpm="libdhcp-1.20-2.el5.src.rpm"/><source-package last-modified="1193784223" id="rhn-source-package-44262" source-rpm="esc-1.0.0-32.el5.src.rpm"/><source-package last-modified="1193784320" id="rhn-source-package-44264" source-rpm="frysk-0.0.1.2007.06.21.rh2-4.el5.src.rpm"/><source-package last-modified="1193784641" id="rhn-source-package-44265" source-rpm="libXp-1.0.0-8.1.el5.src.rpm"/><source-package last-modified="1193784999" id="rhn-source-package-44269" source-rpm="python-pyblock-0.26-1.el5.src.rpm"/><source-package last-modified="1193784999" id="rhn-source-package-44270" source-rpm="anaconda-11.1.2.87-1.src.rpm"/><source-package last-modified="1193785039" id="rhn-source-package-44271" source-rpm="microcode_ctl-1.17-1.42.el5.src.rpm"/><source-package last-modified="1193785052" id="rhn-source-package-44272" source-rpm="xorg-x11-drv-evdev-1.0.0.5-3.el5.src.rpm"/><source-package last-modified="1193785106" id="rhn-source-package-44273" source-rpm="totem-2.16.7-1.el5.src.rpm"/><source-package last-modified="1193785111" id="rhn-source-package-44274" source-rpm="device-mapper-1.02.20-1.el5.src.rpm"/><source-package last-modified="1193785171" id="rhn-source-package-44275" source-rpm="policycoreutils-1.33.12-12.el5.src.rpm"/><source-package last-modified="1193785194" id="rhn-source-package-44276" source-rpm="bind-9.3.3-10.el5.src.rpm"/><source-package last-modified="1193785230" id="rhn-source-package-44277" source-rpm="xorg-x11-drv-vesa-1.3.0-8.1.el5.src.rpm"/><source-package last-modified="1193785242" id="rhn-source-package-44278" source-rpm="firstboot-1.4.27.3-1.el5.src.rpm"/><source-package last-modified="1193785257" id="rhn-source-package-44279" source-rpm="alsa-utils-1.0.14-2.rc4.el5.src.rpm"/><source-package last-modified="1193785257" id="rhn-source-package-44280" source-rpm="alsa-lib-1.0.14-1.rc4.el5.src.rpm"/><source-package last-modified="1193785275" id="rhn-source-package-44281" source-rpm="gnome-power-manager-2.16.0-8.el5.src.rpm"/><source-package last-modified="1193785290" id="rhn-source-package-44282" source-rpm="udev-095-14.9.el5.src.rpm"/><source-package last-modified="1193785323" id="rhn-source-package-44283" source-rpm="glibc-2.5-18.src.rpm"/><source-package last-modified="1193785415" id="rhn-source-package-44284" source-rpm="tcp_wrappers-7.6-40.4.el5.src.rpm"/><source-package last-modified="1193785428" id="rhn-source-package-44285" source-rpm="vixie-cron-4.1-72.el5.src.rpm"/><source-package last-modified="1193785443" id="rhn-source-package-44286" source-rpm="e2fsprogs-1.39-10.el5.src.rpm"/><source-package last-modified="1193785475" id="rhn-source-package-44287" source-rpm="samba-3.0.25b-0.el5.4.src.rpm"/><source-package last-modified="1193785502" id="rhn-source-package-44288" source-rpm="libuser-0.54.7-2.el5.2.src.rpm"/><source-package last-modified="1193785559" id="rhn-source-package-44289" source-rpm="gcc-4.1.2-14.el5.src.rpm"/><source-package last-modified="1193785639" id="rhn-source-package-44290" source-rpm="gstreamer-plugins-good-0.10.4-4.el5.src.rpm"/><source-package last-modified="1193785961" id="rhn-source-package-44291" source-rpm="pam-0.99.6.2-3.26.el5.src.rpm"/><source-package last-modified="1193838431" id="rhn-source-package-44292" source-rpm="cups-1.2.4-11.14.el5_1.1.src.rpm"/><source-package last-modified="1194278790" id="rhn-source-package-44307" source-rpm="pcre-6.6-2.el5_0.1.src.rpm"/><source-package last-modified="1194279147" id="rhn-source-package-44310" source-rpm="perl-5.8.8-10.el5_0.2.src.rpm"/><source-package last-modified="1194453806" id="rhn-source-package-44322" source-rpm="glibc-2.5-18.el5_1.1.src.rpm"/><source-package last-modified="1194454259" id="rhn-source-package-44323" source-rpm="openib-1.2-6.el5_1.1.src.rpm"/><source-package last-modified="1194454347" id="rhn-source-package-44324" source-rpm="cman-2.0.73-1.el5_1.1.src.rpm"/><source-package last-modified="1194454435" id="rhn-source-package-44325" source-rpm="selinux-policy-2.4.6-106.el5_1.3.src.rpm"/><source-package last-modified="1194454555" id="rhn-source-package-44326" source-rpm="hal-0.5.8.1-25.el5_1.1.src.rpm"/><source-package last-modified="1194457459" id="rhn-source-package-44327" source-rpm="cups-1.2.4-11.14.el5_1.3.src.rpm"/><source-package last-modified="1194458911" id="rhn-source-package-44331" source-rpm="poppler-0.5.4-4.3.el5_1.src.rpm"/><source-package last-modified="1194528992" id="rhn-source-package-44337" source-rpm="tetex-3.0-33.2.el5_1.2.src.rpm"/><source-package last-modified="1194540736" id="rhn-source-package-44339" source-rpm="openldap-2.3.27-8.el5_1.1.src.rpm"/><source-package last-modified="1194668039" id="rhn-source-package-44348" source-rpm="pcre-6.6-2.el5_1.1.src.rpm"/><source-package last-modified="1194946597" id="rhn-source-package-44369" source-rpm="ruby-1.8.5-5.el5_1.1.src.rpm"/><source-package last-modified="1195133181" id="rhn-source-package-44505" source-rpm="rsh-0.17-38.el5.src.rpm"/><source-package last-modified="1195134460" id="rhn-source-package-44506" source-rpm="libchewing-0.3.0-8.el5.src.rpm"/><source-package last-modified="1195135587" id="rhn-source-package-44507" source-rpm="logrotate-3.7.4-8.src.rpm"/><source-package last-modified="1195136668" id="rhn-source-package-44508" source-rpm="xorg-x11-drv-keyboard-1.1.0-3.src.rpm"/><source-package last-modified="1195137186" id="rhn-source-package-44509" source-rpm="telnet-0.17-39.el5.src.rpm"/><source-package last-modified="1195141427" id="rhn-source-package-44515" source-rpm="util-linux-2.13-0.45.el5_1.1.src.rpm"/><source-package last-modified="1195144012" id="rhn-source-package-44517" source-rpm="samba-3.0.25b-1.el5_1.2.src.rpm"/><source-package last-modified="1195145236" id="rhn-source-package-44520" source-rpm="net-snmp-5.3.1-19.el5_1.1.src.rpm"/><source-package last-modified="1195582425" id="rhn-source-package-44532" source-rpm="net-snmp-5.3.1-19.el5_1.2.src.rpm"/><source-package last-modified="1195646301" id="rhn-source-package-44533" source-rpm="php-pear-1.4.9-4.el5.1.src.rpm"/><source-package last-modified="1195646529" id="rhn-source-package-44534" source-rpm="psmisc-22.2-6.src.rpm"/><source-package last-modified="1195646607" id="rhn-source-package-44535" source-rpm="acl-2.2.39-3.el5.src.rpm"/><source-package last-modified="1195646677" id="rhn-source-package-44536" source-rpm="desktop-printing-0.19-20.1.el5.src.rpm"/><source-package last-modified="1195648561" id="rhn-source-package-44540" source-rpm="emacspeak-23.0-3.el5.src.rpm"/><source-package last-modified="1195652988" id="rhn-source-package-44541" source-rpm="rhn-client-tools-0.4.16-2.el5_1.9.src.rpm"/><source-package last-modified="1196117002" id="rhn-source-package-44587" source-rpm="firefox-1.5.0.12-7.el5.src.rpm"/><source-package last-modified="1196278273" id="rhn-source-package-44588" source-rpm="ltrace-0.5-7.45svn.el5.src.rpm"/><source-package last-modified="1196278311" id="rhn-source-package-44589" source-rpm="xorg-x11-xinit-1.0.2-15.el5.src.rpm"/><source-package last-modified="1196347202" id="rhn-source-package-44592" source-rpm="kernel-2.6.18-53.1.4.el5.src.rpm"/><source-package last-modified="1196347771" id="rhn-source-package-44593" source-rpm="pcre-6.6-2.el5_1.7.src.rpm"/><source-package last-modified="1196349673" id="rhn-source-package-44597" source-rpm="cairo-1.2.4-3.el5_1.src.rpm"/><source-package last-modified="1197473868" id="rhn-source-package-44665" source-rpm="x3270-3.3.4p7-3.el5.3.src.rpm"/><source-package last-modified="1197473994" id="rhn-source-package-44666" source-rpm="openhpi-2.8.1-2.el5.9.src.rpm"/><source-package last-modified="1197474450" id="rhn-source-package-44667" source-rpm="openmotif-2.3.0-0.4.el5.src.rpm"/><source-package last-modified="1197474582" id="rhn-source-package-44668" source-rpm="traceroute-2.0.1-3.el5.src.rpm"/><source-package last-modified="1197474711" id="rhn-source-package-44669" source-rpm="system-config-users-1.2.51-3.el5.src.rpm"/><source-package last-modified="1197476266" id="rhn-source-package-44670" source-rpm="net-snmp-5.3.1-19.el5_1.3.src.rpm"/><source-package last-modified="1197577108" id="rhn-source-package-44672" source-rpm="mcstrans-0.2.6-1.el5_1.1.src.rpm"/><source-package last-modified="1197662794" id="rhn-source-package-44673" source-rpm="mozldap-6.0.5-1.el5.src.rpm"/><source-package last-modified="1197993449" id="rhn-source-package-44679" source-rpm="squid-2.6.STABLE6-5.el5_1.2.src.rpm"/><source-package last-modified="1197994882" id="rhn-source-package-44681" source-rpm="mysql-5.0.22-2.2.el5_1.1.src.rpm"/><source-package last-modified="1198078376" id="rhn-source-package-44685" source-rpm="libexif-0.6.13-4.0.2.el5_1.1.src.rpm"/><source-package last-modified="1198168654" id="rhn-source-package-44693" source-rpm="metacity-2.16.0-9.el5.src.rpm"/><source-package last-modified="1198168765" id="rhn-source-package-44694" source-rpm="nss_db-2.2-35.3.src.rpm"/><source-package last-modified="1198169149" id="rhn-source-package-44696" source-rpm="createrepo-0.4.11-1.el5.src.rpm"/><source-package last-modified="1198169182" id="rhn-source-package-44697" source-rpm="gthumb-2.7.8-8.el5.src.rpm"/><source-package last-modified="1198169274" id="rhn-source-package-44698" source-rpm="xsane-0.991-5.el5.src.rpm"/><source-package last-modified="1198178547" id="rhn-source-package-44699" source-rpm="autofs-5.0.1-0.rc2.55.el5.2.src.rpm"/><source-package last-modified="1199357948" id="rhn-source-package-44709" source-rpm="shared-mime-info-0.19-5.el5.src.rpm"/><source-package last-modified="1199358062" id="rhn-source-package-44710" source-rpm="totem-2.16.7-2.el5.src.rpm"/><source-package last-modified="1199358304" id="rhn-source-package-44711" source-rpm="emacs-21.4-20.el5.src.rpm"/><source-package last-modified="1199358465" id="rhn-source-package-44712" source-rpm="libraw1394-1.3.0-1.el5.src.rpm"/><source-package last-modified="1199358465" id="rhn-source-package-44713" source-rpm="dvgrab-3.0-1.el5.src.rpm"/><source-package last-modified="1199385189" id="rhn-source-package-44717" source-rpm="tzdata-2007k-1.el5.src.rpm"/><source-package last-modified="1199473237" id="rhn-source-package-44719" source-rpm="fontconfig-2.4.1-7.el5.src.rpm"/><source-package last-modified="1199730173" id="rhn-source-package-44722" source-rpm="tog-pegasus-2.6.1-2.el5_1.1.src.rpm"/><source-package last-modified="1199731096" id="rhn-source-package-44725" source-rpm="e2fsprogs-1.39-10.el5_1.1.src.rpm"/><source-package last-modified="1199892494" id="rhn-source-package-44779" source-rpm="man-pages-ja-20060815-6.el5.src.rpm"/><source-package last-modified="1199892526" id="rhn-source-package-44780" source-rpm="htmlview-4.0.0-2.el5.src.rpm"/><source-package last-modified="1200053596" id="rhn-source-package-44790" source-rpm="libxml2-2.6.26-2.1.2.1.src.rpm"/><source-package last-modified="1200054531" id="rhn-source-package-44793" source-rpm="postgresql-8.1.11-1.el5_1.1.src.rpm"/><source-package last-modified="1200389808" id="rhn-source-package-44827" source-rpm="httpd-2.2.3-11.el5_1.3.src.rpm"/><source-package last-modified="1200492281" id="rhn-source-package-44834" source-rpm="oddjob-0.27-9.el5.src.rpm"/><source-package last-modified="1200492437" id="rhn-source-package-44835" source-rpm="m17n-db-1.3.3-48.el5.src.rpm"/><source-package last-modified="1200492585" id="rhn-source-package-44836" source-rpm="amtu-1.0.6-1.el5.src.rpm"/><source-package last-modified="1200492713" id="rhn-source-package-44837" source-rpm="gedit-2.16.0-9.el5.src.rpm"/><source-package last-modified="1200492892" id="rhn-source-package-44838" source-rpm="gnome-utils-2.16.0-5.el5.src.rpm"/><source-package last-modified="1200493128" id="rhn-source-package-44839" source-rpm="m2crypto-0.16-6.el5.2.src.rpm"/><source-package last-modified="1200493256" id="rhn-source-package-44840" source-rpm="apr-util-1.2.7-7.el5.src.rpm"/><source-package last-modified="1200493392" id="rhn-source-package-44841" source-rpm="crypto-utils-2.3-2.el5.src.rpm"/><source-package last-modified="1200498845" id="rhn-source-package-44842" source-rpm="sysklogd-1.4.1-42.el5.src.rpm"/><source-package last-modified="1200599925" id="rhn-source-package-44843" source-rpm="libXfont-1.2.2-1.0.3.el5_1.src.rpm"/><source-package last-modified="1200600196" id="rhn-source-package-44844" source-rpm="xorg-x11-server-1.1.1-48.26.el5_1.4.src.rpm"/><source-package last-modified="1200706007" id="rhn-source-package-44848" source-rpm="xorg-x11-server-1.1.1-48.26.el5_1.5.src.rpm"/><source-package last-modified="1200903768" id="rhn-source-package-44854" source-rpm="wireshark-0.99.7-1.el5.src.rpm"/><source-package last-modified="1201077990" id="rhn-source-package-44861" source-rpm="yum-rhn-plugin-0.5.2-5.el5_1.2.src.rpm"/><source-package last-modified="1201096656" id="rhn-source-package-44862" source-rpm="hwbrowser-0.30-2.el5.src.rpm"/><source-package last-modified="1201096764" id="rhn-source-package-44863" source-rpm="pygtk2-2.10.1-11.el5.src.rpm"/><source-package last-modified="1201096862" id="rhn-source-package-44864" source-rpm="ntp-4.2.2p1-8.el5.src.rpm"/><source-package last-modified="1201097059" id="rhn-source-package-44865" source-rpm="kdeadmin-3.5.4-3.el5.src.rpm"/><source-package last-modified="1201097551" id="rhn-source-package-44868" source-rpm="a2ps-4.13b-57.2.el5.src.rpm"/><source-package last-modified="1201097658" id="rhn-source-package-44869" source-rpm="gnome-screensaver-2.16.1-6.el5.src.rpm"/><source-package last-modified="1201097861" id="rhn-source-package-44870" source-rpm="gnome-panel-2.16.1-7.el5.src.rpm"/><source-package last-modified="1201098308" id="rhn-source-package-44871" source-rpm="scim-pinyin-0.5.91-16.el5.src.rpm"/><source-package last-modified="1201100324" id="rhn-source-package-44872" source-rpm="kernel-2.6.18-53.1.6.el5.src.rpm"/><source-package last-modified="1201267616" id="rhn-source-package-44875" source-rpm="icu-3.6-5.11.1.src.rpm"/><source-package last-modified="1201705440" id="rhn-source-package-44890" source-rpm="gnome-python2-desktop-2.16.0-2.el5.src.rpm"/><source-package last-modified="1201705555" id="rhn-source-package-44891" source-rpm="gzip-1.3.5-10.el5.src.rpm"/><source-package last-modified="1201705649" id="rhn-source-package-44892" source-rpm="system-config-printer-0.7.32.8-1.el5.src.rpm"/><source-package last-modified="1201705986" id="rhn-source-package-44894" source-rpm="pygtk2-2.10.1-12.el5.src.rpm"/><source-package last-modified="1201706926" id="rhn-source-package-44896" source-rpm="device-mapper-multipath-0.4.7-12.el5_1.2.src.rpm"/><source-package last-modified="1201868812" id="rhn-source-package-44902" source-rpm="autofs-5.0.1-0.rc2.55.el5.3.src.rpm"/><source-package last-modified="1202324388" id="rhn-source-package-44918" source-rpm="liberation-fonts-1.0-1.el5.src.rpm"/><source-package last-modified="1202324417" id="rhn-source-package-44919" source-rpm="pkgconfig-0.21-2.el5.src.rpm"/><source-package last-modified="1202324456" id="rhn-source-package-44920" source-rpm="libgnomeprint22-2.12.1-10.el5.src.rpm"/><source-package last-modified="1202409597" id="rhn-source-package-44923" source-rpm="gdb-6.5-25.el5_1.1.src.rpm"/><source-package last-modified="1202436957" id="rhn-source-package-44930" source-rpm="firefox-1.5.0.12-9.el5.src.rpm"/><source-package last-modified="1202834773" id="rhn-source-package-44932" source-rpm="kernel-2.6.18-53.1.13.el5.src.rpm"/><source-package last-modified="1202937428" id="rhn-source-package-44937" source-rpm="libao-0.8.6-7.src.rpm"/><source-package last-modified="1203077022" id="rhn-source-package-44945" source-rpm="net-snmp-5.3.1-19.el5_1.4.src.rpm"/><source-package last-modified="1203135432" id="rhn-source-package-44982" source-rpm="firefox-1.5.0.12-11.el5_1.src.rpm"/><source-package last-modified="1203542257" id="rhn-source-package-44986" source-rpm="lam-7.1.2-11.el5.src.rpm"/><source-package last-modified="1203627947" id="rhn-source-package-44990" source-rpm="openldap-2.3.27-8.el5_1.3.src.rpm"/><source-package last-modified="1203628854" id="rhn-source-package-44993" source-rpm="tk-8.4.13-5.el5_1.1.src.rpm"/><source-package last-modified="1203629330" id="rhn-source-package-44994" source-rpm="cups-1.2.4-11.14.el5_1.4.src.rpm"/><source-package last-modified="1204129778" id="rhn-source-package-45009" source-rpm="gnome-volume-manager-2.15.0-5.el5.src.rpm"/><source-package last-modified="1204129820" id="rhn-source-package-45010" source-rpm="x3270-3.3.4p7-3.el5.4.src.rpm"/><source-package last-modified="1204133388" id="rhn-source-package-45012" source-rpm="system-config-users-1.2.51-4.el5.src.rpm"/><source-package last-modified="1204147656" id="rhn-source-package-45013" source-rpm="dbus-1.0.0-6.3.el5_1.src.rpm"/><source-package last-modified="1204149429" id="rhn-source-package-45016" source-rpm="ghostscript-8.15.2-9.1.el5_1.1.src.rpm"/><source-package last-modified="1204191646" id="rhn-source-package-45019" source-rpm="gd-2.0.33-9.4.el5_1.1.src.rpm"/><source-package last-modified="1204725003" id="rhn-source-package-45093" source-rpm="kernel-2.6.18-53.1.14.el5.src.rpm"/><source-package last-modified="1205158981" id="rhn-source-package-45098" source-rpm="tzdata-2007k-2.el5.src.rpm"/><source-package last-modified="1205166269" id="rhn-source-package-45101" source-rpm="device-mapper-multipath-0.4.7-12.el5_1.3.src.rpm"/><source-package last-modified="1205182885" id="rhn-source-package-45102" source-rpm="paps-0.6.6-17.el5.src.rpm"/><source-package last-modified="1205182907" id="rhn-source-package-45108" source-rpm="logwatch-7.3-6.el5.src.rpm"/><source-package last-modified="1205182925" id="rhn-source-package-45119" source-rpm="sg3_utils-1.25-1.el5.src.rpm"/><source-package last-modified="1205183006" id="rhn-source-package-45124" source-rpm="nautilus-2.16.2-7.el5.src.rpm"/><source-package last-modified="1205183008" id="rhn-source-package-45126" source-rpm="aspell-es-0.50-13.2.2.src.rpm"/><source-package last-modified="1205183020" id="rhn-source-package-45128" source-rpm="tcpdump-3.9.4-12.el5.src.rpm"/><source-package last-modified="1205183021" id="rhn-source-package-45129" source-rpm="kbd-1.12-20.el5.src.rpm"/><source-package last-modified="1205183056" id="rhn-source-package-45131" source-rpm="aspell-nl-0.1e-1.fc6.src.rpm"/><source-package last-modified="1205183306" id="rhn-source-package-45146" source-rpm="kdeartwork-3.5.4-1.fc6.src.rpm"/><source-package last-modified="1205183307" id="rhn-source-package-45147" source-rpm="dstat-0.6.6-3.el5.src.rpm"/><source-package last-modified="1205183391" id="rhn-source-package-45154" source-rpm="kdebase-3.5.4-18.el5.src.rpm"/><source-package last-modified="1205183396" id="rhn-source-package-45159" source-rpm="xorg-x11-twm-1.0.1-3.1.src.rpm"/><source-package last-modified="1205183396" id="rhn-source-package-45160" source-rpm="rhel-instnum-1.0.8-1.el5.src.rpm"/><source-package last-modified="1205183449" id="rhn-source-package-45164" source-rpm="rpm-4.4.2-48.el5.src.rpm"/><source-package last-modified="1205183719" id="rhn-source-package-45172" source-rpm="shadow-utils-4.0.17-13.el5.src.rpm"/><source-package last-modified="1205183743" id="rhn-source-package-45176" source-rpm="smartmontools-5.36-4.el5.src.rpm"/><source-package last-modified="1205183743" id="rhn-source-package-45177" source-rpm="iptables-1.3.5-4.el5.src.rpm"/><source-package last-modified="1205183751" id="rhn-source-package-45180" source-rpm="fonts-indic-2.1.7-2.el5.src.rpm"/><source-package last-modified="1205183758" id="rhn-source-package-45183" source-rpm="sblim-1-31.el5.src.rpm"/><source-package last-modified="1205183766" id="rhn-source-package-45190" source-rpm="system-config-keyboard-1.2.11-1.el5.src.rpm"/><source-package last-modified="1205183767" id="rhn-source-package-45191" source-rpm="notification-daemon-0.3.5-9.el5.src.rpm"/><source-package last-modified="1205183774" id="rhn-source-package-45193" source-rpm="coreutils-5.97-14.el5.src.rpm"/><source-package last-modified="1205183780" id="rhn-source-package-45196" source-rpm="sysstat-7.0.2-1.el5.src.rpm"/><source-package last-modified="1205183794" id="rhn-source-package-45201" source-rpm="redhat-rpm-config-8.0.45-24.el5.src.rpm"/><source-package last-modified="1205183801" id="rhn-source-package-45205" source-rpm="spamassassin-3.2.4-1.el5.src.rpm"/><source-package last-modified="1205183812" id="rhn-source-package-45211" source-rpm="pciutils-2.2.3-5.src.rpm"/><source-package last-modified="1205183817" id="rhn-source-package-45215" source-rpm="scim-anthy-1.2.0-6.el5.src.rpm"/><source-package last-modified="1205183819" id="rhn-source-package-45216" source-rpm="openssh-4.3p2-26.el5.src.rpm"/><source-package last-modified="1205183824" id="rhn-source-package-45220" source-rpm="busybox-1.2.0-4.el5.src.rpm"/><source-package last-modified="1205183899" id="rhn-source-package-45225" source-rpm="procps-3.2.7-9.el5.src.rpm"/><source-package last-modified="1205183971" id="rhn-source-package-45238" source-rpm="libtool-1.5.22-6.1.src.rpm"/><source-package last-modified="1205183974" id="rhn-source-package-45239" source-rpm="gstreamer-0.10.9-3.el5.src.rpm"/><source-package last-modified="1205183978" id="rhn-source-package-45240" source-rpm="ksh-20060214-1.7.src.rpm"/><source-package last-modified="1205183980" id="rhn-source-package-45242" source-rpm="vte-0.14.0-2.el5.src.rpm"/><source-package last-modified="1205183981" id="rhn-source-package-45243" source-rpm="xorg-x11-xtrans-devel-1.0.1-1.1.fc6.src.rpm"/><source-package last-modified="1205183981" id="rhn-source-package-45244" source-rpm="libart_lgpl-2.3.17-4.src.rpm"/><source-package last-modified="1205183998" id="rhn-source-package-45246" source-rpm="gtk2-2.10.4-20.el5.src.rpm"/><source-package last-modified="1205184000" id="rhn-source-package-45249" source-rpm="kdnssd-avahi-0.1.3-0.1.20060713svn.fc6.src.rpm"/><source-package last-modified="1205184011" id="rhn-source-package-45253" source-rpm="mailman-2.1.9-4.el5.src.rpm"/><source-package last-modified="1205184106" id="rhn-source-package-45257" source-rpm="pcsc-lite-1.4.4-0.1.el5.src.rpm"/><source-package last-modified="1205184127" id="rhn-source-package-45259" source-rpm="kdelibs-3.5.4-16.el5.src.rpm"/><source-package last-modified="1205184129" id="rhn-source-package-45261" source-rpm="cscope-15.5-15.fc6.1.src.rpm"/><source-package last-modified="1205184132" id="rhn-source-package-45262" source-rpm="cairo-1.2.4-5.el5.src.rpm"/><source-package last-modified="1205184134" id="rhn-source-package-45264" source-rpm="libogg-1.1.3-3.el5.src.rpm"/><source-package last-modified="1205184142" id="rhn-source-package-45265" source-rpm="python-2.4.3-21.el5.src.rpm"/><source-package last-modified="1205184147" id="rhn-source-package-45269" source-rpm="libX11-1.0.3-9.el5.src.rpm"/><source-package last-modified="1205184185" id="rhn-source-package-45272" source-rpm="libXres-1.0.1-3.1.src.rpm"/><source-package last-modified="1205184185" id="rhn-source-package-45273" source-rpm="automake15-1.5-16.src.rpm"/><source-package last-modified="1205184188" id="rhn-source-package-45274" source-rpm="nmap-4.11-1.1.src.rpm"/><source-package last-modified="1205184207" id="rhn-source-package-45283" source-rpm="pam-0.99.6.2-3.27.el5.src.rpm"/><source-package last-modified="1205184211" id="rhn-source-package-45286" source-rpm="libsemanage-1.9.1-3.el5.src.rpm"/><source-package last-modified="1205184214" id="rhn-source-package-45289" source-rpm="jakarta-commons-dbcp-1.2.1-7jpp.1.src.rpm"/><source-package last-modified="1205184214" id="rhn-source-package-45290" source-rpm="vsftpd-2.0.5-12.el5.src.rpm"/><source-package last-modified="1205184227" id="rhn-source-package-45294" source-rpm="php-5.1.6-20.el5.src.rpm"/><source-package last-modified="1205184230" id="rhn-source-package-45296" source-rpm="gdbm-1.8.0-26.2.1.src.rpm"/><source-package last-modified="1205184231" id="rhn-source-package-45297" source-rpm="bsh-1.3.0-9jpp.1.src.rpm"/><source-package last-modified="1205184234" id="rhn-source-package-45301" source-rpm="newt-0.52.2-10.el5.src.rpm"/><source-package last-modified="1205184252" id="rhn-source-package-45308" source-rpm="libselinux-1.33.4-5.el5.src.rpm"/><source-package last-modified="1205184253" id="rhn-source-package-45309" source-rpm="xorg-x11-font-utils-7.1-2.src.rpm"/><source-package last-modified="1205184255" id="rhn-source-package-45313" source-rpm="xorg-x11-filesystem-7.1-2.fc6.src.rpm"/><source-package last-modified="1205184261" id="rhn-source-package-45319" source-rpm="module-init-tools-3.3-0.pre3.1.37.el5.src.rpm"/><source-package last-modified="1205184262" id="rhn-source-package-45320" source-rpm="openjade-1.3.2-27.src.rpm"/><source-package last-modified="1205184262" id="rhn-source-package-45321" source-rpm="python-iniparse-0.2.3-4.el5.src.rpm"/><source-package last-modified="1205184263" id="rhn-source-package-45322" source-rpm="ncompress-4.2.4-47.src.rpm"/><source-package last-modified="1205184263" id="rhn-source-package-45323" source-rpm="xorg-x11-util-macros-1.0.2-4.fc6.src.rpm"/><source-package last-modified="1205184263" id="rhn-source-package-45324" source-rpm="hicolor-icon-theme-0.9-2.1.src.rpm"/><source-package last-modified="1205184264" id="rhn-source-package-45325" source-rpm="psutils-1.17-26.1.src.rpm"/><source-package last-modified="1205184268" id="rhn-source-package-45328" source-rpm="xorg-x11-drv-sis-0.9.1-7.1.el5.src.rpm"/><source-package last-modified="1205184277" id="rhn-source-package-45334" source-rpm="python-setuptools-0.6c5-2.el5.src.rpm"/><source-package last-modified="1205232584" id="rhn-source-package-45356" source-rpm="tomcat5-5.5.23-0jpp.3.0.3.el5_1.src.rpm"/><source-package last-modified="1205868261" id="rhn-source-package-45384" source-rpm="krb5-1.6.1-17.el5_1.1.src.rpm"/><source-package last-modified="1206398593" id="rhn-source-package-45400" source-rpm="cman-2.0.73-1.el5_1.5.src.rpm"/><source-package last-modified="1206578483" id="rhn-source-package-45401" source-rpm="firefox-1.5.0.12-14.el5_1.src.rpm"/><source-package last-modified="1207058891" id="rhn-source-package-45408" source-rpm="cups-1.2.4-11.14.el5_1.6.src.rpm"/><source-package last-modified="1207135924" id="rhn-source-package-45413" source-rpm="gnome-screensaver-2.16.1-5.el5_1.1.src.rpm"/><source-package last-modified="1207234634" id="rhn-source-package-45416" source-rpm="gnome-screensaver-2.16.1-8.el5.src.rpm"/><source-package last-modified="1207670166" id="rhn-source-package-45428" source-rpm="sos-1.7-9.2.el5.src.rpm"/><source-package last-modified="1207697341" id="rhn-source-package-45432" source-rpm="squid-2.6.STABLE6-5.el5_1.3.src.rpm"/><source-package last-modified="1208389641" id="rhn-source-package-45550" source-rpm="speex-1.0.5-4.el5_1.1.src.rpm"/><source-package last-modified="1208393492" id="rhn-source-package-45555" source-rpm="firefox-1.5.0.12-15.el5_1.src.rpm"/><source-package last-modified="1208394648" id="rhn-source-package-45558" source-rpm="ImageMagick-6.2.8.0-4.el5_1.1.src.rpm"/><source-package last-modified="1208452524" id="rhn-source-package-45574" source-rpm="poppler-0.5.4-4.4.el5_1.src.rpm"/><source-package last-modified="1210145414" id="rhn-source-package-45677" source-rpm="kernel-2.6.18-53.1.19.el5.src.rpm"/><source-package last-modified="1210341530" id="rhn-source-package-45685" source-rpm="mcstrans-0.2.7-1.el5.src.rpm"/><source-package last-modified="1210681609" id="rhn-source-package-45753" source-rpm="xen-3.0.3-41.el5_1.5.src.rpm"/><source-package last-modified="1210750482" id="rhn-source-package-45756" source-rpm="libvorbis-1.1.2-3.el5_1.2.src.rpm"/><source-package last-modified="1210934130" id="rhn-source-package-45766" source-rpm="device-mapper-multipath-0.4.7-12.el5_1.4.src.rpm"/><source-package last-modified="1211226849" id="rhn-source-package-45793" source-rpm="ipsec-tools-0.6.5-9.el5.src.rpm"/><source-package last-modified="1211226892" id="rhn-source-package-45794" source-rpm="mkinitrd-5.1.19.6-28.src.rpm"/><source-package last-modified="1211226923" id="rhn-source-package-45795" source-rpm="system-config-lvm-1.1.3-2.0.el5.src.rpm"/><source-package last-modified="1211226957" id="rhn-source-package-45796" source-rpm="metacity-2.16.0-10.el5.src.rpm"/><source-package last-modified="1211226981" id="rhn-source-package-45797" source-rpm="libnl-1.0-0.10.pre5.5.src.rpm"/><source-package last-modified="1211227043" id="rhn-source-package-45798" source-rpm="openmotif-2.3.0-0.5.el5.src.rpm"/><source-package last-modified="1211227220" id="rhn-source-package-45802" source-rpm="dbus-1.0.0-7.el5.src.rpm"/><source-package last-modified="1211227437" id="rhn-source-package-45805" source-rpm="java-1.4.2-gcj-compat-1.4.2.0-40jpp.115.src.rpm"/><source-package last-modified="1211227505" id="rhn-source-package-45807" source-rpm="redhat-release-5Server-5.2.0.4.src.rpm"/><source-package last-modified="1211230462" id="rhn-source-package-45809" source-rpm="Deployment_Guide-5.2-9.src.rpm"/><source-package last-modified="1211230589" id="rhn-source-package-45811" source-rpm="mpi-selector-1.0.0-2.el5.src.rpm"/><source-package last-modified="1211230589" id="rhn-source-package-45812" source-rpm="lam-7.1.2-14.el5.src.rpm"/><source-package last-modified="1211230589" id="rhn-source-package-45813" source-rpm="openmpi-1.2.5-5.el5.src.rpm"/><source-package last-modified="1211230623" id="rhn-source-package-45814" source-rpm="iscsi-initiator-utils-6.2.0.868-0.7.el5.src.rpm"/><source-package last-modified="1211230753" id="rhn-source-package-45815" source-rpm="tomcat5-5.5.23-0jpp.7.el5.src.rpm"/><source-package last-modified="1211230871" id="rhn-source-package-45817" source-rpm="nss-3.11.99.5-2.el5.src.rpm"/><source-package last-modified="1211230899" id="rhn-source-package-45818" source-rpm="ecryptfs-utils-41-1.el5.src.rpm"/><source-package last-modified="1211236221" id="rhn-source-package-45820" source-rpm="sysklogd-1.4.1-44.el5.src.rpm"/><source-package last-modified="1211236259" id="rhn-source-package-45821" source-rpm="cachefilesd-0.8-5.el5.src.rpm"/><source-package last-modified="1211236300" id="rhn-source-package-45822" source-rpm="openhpi-2.10.2-1.el5.src.rpm"/><source-package last-modified="1211236324" id="rhn-source-package-45823" source-rpm="irqbalance-0.55-10.el5.src.rpm"/><source-package last-modified="1211236346" id="rhn-source-package-45824" source-rpm="freeipmi-0.5.1-5.el5.src.rpm"/><source-package last-modified="1211236358" id="rhn-source-package-45825" source-rpm="xorg-x11-drv-nv-2.1.6-6.el5.src.rpm"/><source-package last-modified="1211236518" id="rhn-source-package-45827" source-rpm="openais-0.80.3-15.el5.src.rpm"/><source-package last-modified="1211236536" id="rhn-source-package-45828" source-rpm="xorg-x11-drv-i810-1.6.5-9.13.el5.src.rpm"/><source-package last-modified="1211236571" id="rhn-source-package-45829" source-rpm="nfs-utils-1.0.9-33.el5.src.rpm"/><source-package last-modified="1211238541" id="rhn-source-package-45831" source-rpm="gdm-2.16.0-46.el5.src.rpm"/><source-package last-modified="1211238551" id="rhn-source-package-45832" source-rpm="system-config-kdump-1.0.14-1.el5.src.rpm"/><source-package last-modified="1211238584" id="rhn-source-package-45833" source-rpm="openswan-2.6.12-2.el5.src.rpm"/><source-package last-modified="1211238675" id="rhn-source-package-45834" source-rpm="anaconda-11.1.2.113-1.src.rpm"/><source-package last-modified="1211238693" id="rhn-source-package-45835" source-rpm="createrepo-0.4.11-3.el5.src.rpm"/><source-package last-modified="1211238761" id="rhn-source-package-45836" source-rpm="microcode_ctl-1.17-1.47.el5.src.rpm"/><source-package last-modified="1211260138" id="rhn-source-package-45844" source-rpm="NetworkManager-0.6.4-8.el5.src.rpm"/><source-package last-modified="1211260139" id="rhn-source-package-45845" source-rpm="audit-1.6.5-9.el5.src.rpm"/><source-package last-modified="1211260140" id="rhn-source-package-45846" source-rpm="authconfig-5.3.21-3.el5.src.rpm"/><source-package last-modified="1211260141" id="rhn-source-package-45847" source-rpm="autofs-5.0.1-0.rc2.88.src.rpm"/><source-package last-modified="1211260146" id="rhn-source-package-45848" source-rpm="bind-9.3.4-6.P1.el5.src.rpm"/><source-package last-modified="1211260147" id="rhn-source-package-45849" source-rpm="cman-2.0.84-2.el5.src.rpm"/><source-package last-modified="1211260148" id="rhn-source-package-45850" source-rpm="device-mapper-multipath-0.4.7-17.el5.src.rpm"/><source-package last-modified="1211260186" id="rhn-source-package-45852" source-rpm="control-center-2.16.0-16.el5.src.rpm"/><source-package last-modified="1211260204" id="rhn-source-package-45853" source-rpm="crash-4.0-5.0.3.src.rpm"/><source-package last-modified="1211260209" id="rhn-source-package-45854" source-rpm="cups-1.2.4-11.18.el5.src.rpm"/><source-package last-modified="1211260211" id="rhn-source-package-45855" source-rpm="dapl-2.0.7-2.el5.src.rpm"/><source-package last-modified="1211260212" id="rhn-source-package-45856" source-rpm="devhelp-0.12-16.el5.src.rpm"/><source-package last-modified="1211260214" id="rhn-source-package-45857" source-rpm="dhcp-3.0.5-13.el5.src.rpm"/><source-package last-modified="1211260223" id="rhn-source-package-45859" source-rpm="dhcpv6-1.0.10-4.el5.src.rpm"/><source-package last-modified="1211260225" id="rhn-source-package-45860" source-rpm="dovecot-1.0.7-2.el5.src.rpm"/><source-package last-modified="1211260229" id="rhn-source-package-45861" source-rpm="e2fsprogs-1.39-15.el5.src.rpm"/><source-package last-modified="1211260229" id="rhn-source-package-45862" source-rpm="efax-0.9-27.2.1.src.rpm"/><source-package last-modified="1211260257" id="rhn-source-package-45864" source-rpm="file-4.17-13.src.rpm"/><source-package last-modified="1211260297" id="rhn-source-package-45865" source-rpm="firefox-3.0-0.beta5.6.el5.src.rpm"/><source-package last-modified="1211260312" id="rhn-source-package-45866" source-rpm="frysk-0.0.1.2008.03.19.rh1-1.el5.src.rpm"/><source-package last-modified="1211260350" id="rhn-source-package-45867" source-rpm="gcc-4.1.2-42.el5.src.rpm"/><source-package last-modified="1211260351" id="rhn-source-package-45868" source-rpm="gfs2-utils-0.1.44-1.el5.src.rpm"/><source-package last-modified="1211260367" id="rhn-source-package-45869" source-rpm="glibc-2.5-24.src.rpm"/><source-package last-modified="1211260370" id="rhn-source-package-45870" source-rpm="gstreamer-plugins-base-0.10.9-6.el5.src.rpm"/><source-package last-modified="1211260372" id="rhn-source-package-45871" source-rpm="hal-0.5.8.1-35.el5.src.rpm"/><source-package last-modified="1211260372" id="rhn-source-package-45872" source-rpm="hal-cups-utils-0.6.2-5.2.el5.src.rpm"/><source-package last-modified="1211260373" id="rhn-source-package-45873" source-rpm="hwdata-0.213.6-1.el5.src.rpm"/><source-package last-modified="1211260374" id="rhn-source-package-45874" source-rpm="infiniband-diags-1.3.6-1.el5.src.rpm"/><source-package last-modified="1211260434" id="rhn-source-package-45875" source-rpm="kernel-2.6.18-92.el5.src.rpm"/><source-package last-modified="1211260436" id="rhn-source-package-45876" source-rpm="kexec-tools-1.102pre-21.el5.src.rpm"/><source-package last-modified="1211260451" id="rhn-source-package-45877" source-rpm="krb5-1.6.1-25.el5.src.rpm"/><source-package last-modified="1211260452" id="rhn-source-package-45878" source-rpm="kudzu-1.2.57.1.17-1.src.rpm"/><source-package last-modified="1211260452" id="rhn-source-package-45879" source-rpm="libcxgb3-1.1.4-1.el5.src.rpm"/><source-package last-modified="1211260454" id="rhn-source-package-45880" source-rpm="libdbi-0.8.1-2.1.src.rpm"/><source-package last-modified="1211260454" id="rhn-source-package-45881" source-rpm="libdhcp-1.20-5.el5.src.rpm"/><source-package last-modified="1211260455" id="rhn-source-package-45882" source-rpm="libibcm-1.0.2-1.el5.src.rpm"/><source-package last-modified="1211260456" id="rhn-source-package-45883" source-rpm="libibcommon-1.0.8-1.el5.src.rpm"/><source-package last-modified="1211260457" id="rhn-source-package-45884" source-rpm="libibmad-1.1.6-1.el5.src.rpm"/><source-package last-modified="1211260458" id="rhn-source-package-45885" source-rpm="libibumad-1.1.7-1.el5.src.rpm"/><source-package last-modified="1211260459" id="rhn-source-package-45886" source-rpm="libibverbs-1.1.1-9.el5.src.rpm"/><source-package last-modified="1211260460" id="rhn-source-package-45887" source-rpm="libipathverbs-1.1-10.el5.src.rpm"/><source-package last-modified="1211260461" id="rhn-source-package-45888" source-rpm="libmlx4-1.0-3.el5.src.rpm"/><source-package last-modified="1211260462" id="rhn-source-package-45889" source-rpm="librdmacm-1.0.7-1.el5.src.rpm"/><source-package last-modified="1211260463" id="rhn-source-package-45890" source-rpm="libsdp-1.1.99-9.el5.src.rpm"/><source-package last-modified="1211260465" id="rhn-source-package-45891" source-rpm="libuser-0.54.7-2.el5.5.src.rpm"/><source-package last-modified="1211260469" id="rhn-source-package-45893" source-rpm="lvm2-2.02.32-4.el5.src.rpm"/><source-package last-modified="1211260470" id="rhn-source-package-45894" source-rpm="make-3.81-3.el5.src.rpm"/><source-package last-modified="1211260472" id="rhn-source-package-45895" source-rpm="mstflint-1.3-1.el5.src.rpm"/><source-package last-modified="1211260495" id="rhn-source-package-45896" source-rpm="mysql-5.0.45-7.el5.src.rpm"/><source-package last-modified="1211260500" id="rhn-source-package-45897" source-rpm="net-snmp-5.3.1-24.el5.src.rpm"/><source-package last-modified="1211260501" id="rhn-source-package-45898" source-rpm="net-tools-1.60-78.el5.src.rpm"/><source-package last-modified="1211260502" id="rhn-source-package-45899" source-rpm="nspluginwrapper-0.9.91.5-21.el5.src.rpm"/><source-package last-modified="1211260504" id="rhn-source-package-45900" source-rpm="nspr-4.7.0.99.2-1.el5.src.rpm"/><source-package last-modified="1211260505" id="rhn-source-package-45901" source-rpm="nss_ldap-253-12.el5.src.rpm"/><source-package last-modified="1211260505" id="rhn-source-package-45902" source-rpm="ofed-docs-1.3-3.el5.src.rpm"/><source-package last-modified="1211260507" id="rhn-source-package-45903" source-rpm="openCryptoki-2.2.4-21.el5.src.rpm"/><source-package last-modified="1211260507" id="rhn-source-package-45904" source-rpm="openib-1.3-3.el5.src.rpm"/><source-package last-modified="1211260740" id="rhn-source-package-45906" source-rpm="parted-1.8.1-17.el5.src.rpm"/><source-package last-modified="1211260740" id="rhn-source-package-45907" source-rpm="perftest-1.2-10.el5.src.rpm"/><source-package last-modified="1211260742" id="rhn-source-package-45909" source-rpm="qlvnictools-0.0.1-8.el5.src.rpm"/><source-package last-modified="1211260749" id="rhn-source-package-45913" source-rpm="rhpxl-0.41.1-6.el5.src.rpm"/><source-package last-modified="1211260767" id="rhn-source-package-45914" source-rpm="samba-3.0.28-0.el5.8.src.rpm"/><source-package last-modified="1211260768" id="rhn-source-package-45915" source-rpm="selinux-policy-2.4.6-137.el5.src.rpm"/><source-package last-modified="1211260769" id="rhn-source-package-45916" source-rpm="srptools-0.0.4-2.el5.src.rpm"/><source-package last-modified="1211260771" id="rhn-source-package-45917" source-rpm="setroubleshoot-2.0.5-3.el5.src.rpm"/><source-package last-modified="1211260773" id="rhn-source-package-45918" source-rpm="setroubleshoot-plugins-2.0.4-2.el5.src.rpm"/><source-package last-modified="1211260774" id="rhn-source-package-45919" source-rpm="sudo-1.6.8p12-12.el5.src.rpm"/><source-package last-modified="1211260777" id="rhn-source-package-45920" source-rpm="systemtap-0.6.2-1.el5.src.rpm"/><source-package last-modified="1211260778" id="rhn-source-package-45921" source-rpm="system-config-kickstart-2.6.19.6-1.el5.src.rpm"/><source-package last-modified="1211260779" id="rhn-source-package-45922" source-rpm="system-config-netboot-0.1.45.1-1.el5.src.rpm"/><source-package last-modified="1211260782" id="rhn-source-package-45923" source-rpm="system-config-network-1.3.99.10-2.el5.src.rpm"/><source-package last-modified="1211260783" id="rhn-source-package-45924" source-rpm="tmpwatch-2.9.7-1.1.el5.1.src.rpm"/><source-package last-modified="1211260783" id="rhn-source-package-45925" source-rpm="system-config-securitylevel-1.6.29.1-2.1.el5.src.rpm"/><source-package last-modified="1211260790" id="rhn-source-package-45926" source-rpm="tog-pegasus-2.7.0-2.el5.src.rpm"/><source-package last-modified="1211260792" id="rhn-source-package-45927" source-rpm="trousers-0.3.1-4.el5.src.rpm"/><source-package last-modified="1211260793" id="rhn-source-package-45928" source-rpm="tvflash-0.9.0-2.el5.src.rpm"/><source-package last-modified="1211260794" id="rhn-source-package-45929" source-rpm="udev-095-14.16.el5.src.rpm"/><source-package last-modified="1211260852" id="rhn-source-package-45933" source-rpm="xen-3.0.3-64.el5.src.rpm"/><source-package last-modified="1211260854" id="rhn-source-package-45934" source-rpm="yelp-2.16.0-18.el5.src.rpm"/><source-package last-modified="1211260855" id="rhn-source-package-45935" source-rpm="yum-3.2.8-9.el5.src.rpm"/><source-package last-modified="1211260857" id="rhn-source-package-45936" source-rpm="xorg-x11-drv-ati-6.6.3-3.13.el5.src.rpm"/><source-package last-modified="1211260867" id="rhn-source-package-45937" source-rpm="xorg-x11-server-1.1.1-48.41.el5.src.rpm"/><source-package last-modified="1211260868" id="rhn-source-package-45938" source-rpm="yum-utils-1.1.10-9.el5.src.rpm"/><source-package last-modified="1211260902" id="rhn-source-package-45939" source-rpm="xulrunner-1.9-0.beta5.6.el5.src.rpm"/><source-package last-modified="1211260903" id="rhn-source-package-45940" source-rpm="yum-rhn-plugin-0.5.3-6.el5.src.rpm"/><source-package last-modified="1211260906" id="rhn-source-package-45944" source-rpm="gtk-vnc-0.3.2-3.el5.src.rpm"/><source-package last-modified="1211260911" id="rhn-source-package-45949" source-rpm="pirut-1.3.28-13.el5.src.rpm"/><source-package last-modified="1211260912" id="rhn-source-package-45950" source-rpm="qperf-0.4.0-1.el5.src.rpm"/><source-package last-modified="1211260921" id="rhn-source-package-45951" source-rpm="redhat-release-notes-5Server-12.src.rpm"/><source-package last-modified="1211268671" id="rhn-source-package-45958" source-rpm="xenpv-0.1-9.el5.src.rpm"/><source-package last-modified="1211271106" id="rhn-source-package-45960" source-rpm="xen-3.0.3-41.el5_1.6.src.rpm"/><source-package last-modified="1211294723" id="rhn-source-package-45968" source-rpm="OpenIPMI-2.0.6-6.el5.src.rpm"/><source-package last-modified="1211294724" id="rhn-source-package-45969" source-rpm="alsa-utils-1.0.14-3.rc4.el5.src.rpm"/><source-package last-modified="1211294726" id="rhn-source-package-45970" source-rpm="at-spi-1.7.11-3.el5.src.rpm"/><source-package last-modified="1211294730" id="rhn-source-package-45971" source-rpm="bash-3.2-21.el5.src.rpm"/><source-package last-modified="1211294743" id="rhn-source-package-45972" source-rpm="binutils-2.17.50.0.6-6.el5.src.rpm"/><source-package last-modified="1211294745" id="rhn-source-package-45973" source-rpm="booty-0.80.4-6.src.rpm"/><source-package last-modified="1211294745" id="rhn-source-package-45974" source-rpm="coolkey-1.1.0-6.el5.src.rpm"/><source-package last-modified="1211294746" id="rhn-source-package-45975" source-rpm="cpuspeed-1.2.1-3.el5.src.rpm"/><source-package last-modified="1211294746" id="rhn-source-package-45976" source-rpm="device-mapper-1.02.24-1.el5.src.rpm"/><source-package last-modified="1211294747" id="rhn-source-package-45977" source-rpm="dmraid-1.0.0.rc13-9.el5.src.rpm"/><source-package last-modified="1211294811" id="rhn-source-package-45978" source-rpm="gnutls-1.4.1-3.el5_1.src.rpm"/><source-package last-modified="1211294826" id="rhn-source-package-45979" source-rpm="eclipse-3.2.1-19.el5.src.rpm"/><source-package last-modified="1211294859" id="rhn-source-package-45980" source-rpm="esc-1.0.0-33.el5.src.rpm"/><source-package last-modified="1211294875" id="rhn-source-package-45982" source-rpm="gdb-6.5-37.el5.src.rpm"/><source-package last-modified="1211294878" id="rhn-source-package-45983" source-rpm="gnome-power-manager-2.16.0-9.el5.src.rpm"/><source-package last-modified="1211294879" id="rhn-source-package-45984" source-rpm="gnome-python2-extras-2.14.2-6.el5.src.rpm"/><source-package last-modified="1211294880" id="rhn-source-package-45985" source-rpm="grub-0.97-13.2.src.rpm"/><source-package last-modified="1211294882" id="rhn-source-package-45986" source-rpm="gtkhtml3-3.16.3-1.el5.src.rpm"/><source-package last-modified="1211294886" id="rhn-source-package-45988" source-rpm="ibsim-0.4-2.el5.src.rpm"/><source-package last-modified="1211294890" id="rhn-source-package-45989" source-rpm="ibutils-1.2-3.el5.src.rpm"/><source-package last-modified="1211294892" id="rhn-source-package-45990" source-rpm="initscripts-8.45.19.EL-1.src.rpm"/><source-package last-modified="1211294893" id="rhn-source-package-45991" source-rpm="libmthca-1.0.4-9.el5.src.rpm"/><source-package last-modified="1211294894" id="rhn-source-package-45992" source-rpm="libnes-0.5-2.el5.src.rpm"/><source-package last-modified="1211294895" id="rhn-source-package-45993" source-rpm="mdadm-2.6.4-1.el5.src.rpm"/><source-package last-modified="1211294897" id="rhn-source-package-45994" source-rpm="opensm-3.1.8-1.el5.src.rpm"/><source-package last-modified="1211294900" id="rhn-source-package-45995" source-rpm="openssl-0.9.8b-10.el5.src.rpm"/><source-package last-modified="1211294901" id="rhn-source-package-45996" source-rpm="oprofile-0.9.3-16.el5.src.rpm"/><source-package last-modified="1211294902" id="rhn-source-package-45997" source-rpm="pexpect-2.3-1.el5.src.rpm"/><source-package last-modified="1211294903" id="rhn-source-package-45998" source-rpm="policycoreutils-1.33.12-14.el5.src.rpm"/><source-package last-modified="1211294904" id="rhn-source-package-45999" source-rpm="rsyslog-2.0.0-11.el5.src.rpm"/><source-package last-modified="1211294916" id="rhn-source-package-46001" source-rpm="system-config-language-1.1.18-2.el5.src.rpm"/><source-package last-modified="1211294918" id="rhn-source-package-46002" source-rpm="totem-2.16.7-4.el5.src.rpm"/><source-package last-modified="1211294919" id="rhn-source-package-46003" source-rpm="tpm-tools-1.3.1-1.el5.src.rpm"/><source-package last-modified="1211294920" id="rhn-source-package-46004" source-rpm="udftools-1.0.0b3-0.1.el5.src.rpm"/><source-package last-modified="1211294921" id="rhn-source-package-46005" source-rpm="usermode-1.88-3.el5.1.src.rpm"/><source-package last-modified="1211294924" id="rhn-source-package-46006" source-rpm="util-linux-2.13-0.47.el5.src.rpm"/><source-package last-modified="1211294924" id="rhn-source-package-46007" source-rpm="wdaemon-0.13-1.src.rpm"/><source-package last-modified="1211294926" id="rhn-source-package-46008" source-rpm="wpa_supplicant-0.4.8-10.2.el5.src.rpm"/><source-package last-modified="1211294927" id="rhn-source-package-46009" source-rpm="yum-updatesd-0.9-2.el5.src.rpm"/><source-package last-modified="1211294928" id="rhn-source-package-46010" source-rpm="xorg-x11-drv-mga-1.4.2-7.el5.src.rpm"/><source-package last-modified="1211294928" id="rhn-source-package-46011" source-rpm="yum-metadata-parser-1.1.2-2.el5.src.rpm"/><source-package last-modified="1211294929" id="rhn-source-package-46013" source-rpm="libhugetlbfs-1.2-5.el5.src.rpm"/><source-package last-modified="1211354109" id="rhn-source-package-46019" source-rpm="libxslt-1.1.17-2.el5_1.1.src.rpm"/><source-package last-modified="1211382848" id="rhn-source-package-46024" source-rpm="gdb-6.5-37.el5_2.1.src.rpm"/><source-package last-modified="1211383741" id="rhn-source-package-46026" source-rpm="xen-3.0.3-64.el5_2.1.src.rpm"/><source-package last-modified="1211385351" id="rhn-source-package-46027" source-rpm="redhat-release-notes-5Server-15.src.rpm"/><source-package last-modified="1211386924" id="rhn-source-package-46029" source-rpm="yum-rhn-plugin-0.5.3-6.el5_2.6.src.rpm"/><source-package last-modified="1211387661" id="rhn-source-package-46030" source-rpm="yum-3.2.8-9.el5_2.1.src.rpm"/><source-package last-modified="1211964965" id="rhn-source-package-46062" source-rpm="tzdata-2008b-3.el5.src.rpm"/><source-package last-modified="1211973546" id="rhn-source-package-46070" source-rpm="samba-3.0.28-1.el5_2.1.src.rpm"/><source-package last-modified="1212589109" id="rhn-source-package-46299" source-rpm="cups-1.2.4-11.18.el5_2.1.src.rpm"/><source-package last-modified="1212659133" id="rhn-source-package-46302" source-rpm="kernel-2.6.18-92.1.1.el5.src.rpm"/><source-package last-modified="1212670179" id="rhn-source-package-46304" source-rpm="ipsec-tools-0.6.5-9.el5_2.1.src.rpm"/><source-package last-modified="1213012868" id="rhn-source-package-46311" source-rpm="dhcpv6-1.0.10-4.el5_2.2.src.rpm"/><source-package last-modified="1213105959" id="rhn-source-package-46330" source-rpm="net-snmp-5.3.1-24.el5_2.1.src.rpm"/><source-package last-modified="1213169390" id="rhn-source-package-46345" source-rpm="openswan-2.6.14-1.el5_2.1.src.rpm"/><source-package last-modified="1213210291" id="rhn-source-package-46352" source-rpm="perl-5.8.8-10.el5_2.3.src.rpm"/><source-package last-modified="1213212743" id="rhn-source-package-46354" source-rpm="xorg-x11-server-1.1.1-48.41.el5_2.1.src.rpm"/><source-package last-modified="1213261305" id="rhn-source-package-46390" source-rpm="ghostscript-8.15.2-9.3.el5.src.rpm"/><source-package last-modified="1213266148" id="rhn-source-package-46392" source-rpm="gdb-6.5-37.el5_2.2.src.rpm"/><source-package last-modified="1213969756" id="rhn-source-package-46464" source-rpm="freetype-2.2.1-20.el5_2.src.rpm"/><source-package last-modified="1214298543" id="rhn-source-package-46470" source-rpm="sblim-1-31.el5_2.1.src.rpm"/><source-package last-modified="1214402850" id="rhn-source-package-46493" source-rpm="Deployment_Guide-5.2-11.src.rpm"/><source-package last-modified="1214408093" id="rhn-source-package-46495" source-rpm="kernel-2.6.18-92.1.6.el5.src.rpm"/><source-package last-modified="1214589715" id="rhn-source-package-46532" source-rpm="gfs2-utils-0.1.44-1.el5_2.1.src.rpm"/><source-package last-modified="1215002041" id="rhn-source-package-46538" source-rpm="yelp-2.16.0-19.el5.src.rpm"/><source-package last-modified="1215002042" id="rhn-source-package-46539" source-rpm="xulrunner-1.9-1.el5.src.rpm"/><source-package last-modified="1215002042" id="rhn-source-package-46540" source-rpm="devhelp-0.12-17.el5.src.rpm"/><source-package last-modified="1215002042" id="rhn-source-package-46541" source-rpm="firefox-3.0-2.el5.src.rpm"/><source-package last-modified="1215022644" id="rhn-source-package-46567" source-rpm="nss-3.12.0.3-1.el5.src.rpm"/><source-package last-modified="1215022644" id="rhn-source-package-46568" source-rpm="nspr-4.7.1-1.el5.src.rpm"/><source-package last-modified="1215539655" id="rhn-source-package-46621" source-rpm="bind-9.3.4-6.0.1.P1.el5_2.src.rpm"/><source-package last-modified="1215539655" id="rhn-source-package-46622" source-rpm="selinux-policy-2.4.6-137.1.el5_2.src.rpm"/><source-package last-modified="1215612901" id="rhn-source-package-46628" source-rpm="openldap-2.3.27-8.el5_2.4.src.rpm"/><source-package last-modified="1215719366" id="rhn-source-package-46633" source-rpm="bind-9.3.4-6.0.2.P1.el5_2.src.rpm"/><source-package last-modified="1215766216" id="rhn-source-package-46639" source-rpm="libsdp-1.1.99-10.el5_2.src.rpm"/><source-package last-modified="1215766216" id="rhn-source-package-46640" source-rpm="openib-mstflint-1.3-1.el5_2.src.rpm"/><source-package last-modified="1215766216" id="rhn-source-package-46641" source-rpm="openib-perftest-1.2-11.el5_2.src.rpm"/><source-package last-modified="1215766216" id="rhn-source-package-46642" source-rpm="openib-tvflash-0.9.2-8.el5_2.src.rpm"/><source-package last-modified="1216041282" id="rhn-source-package-46670" source-rpm="ruby-1.8.5-5.el5_2.3.src.rpm"/><source-package last-modified="1216043252" id="rhn-source-package-46674" source-rpm="bluez-utils-3.7-2.2.src.rpm"/><source-package last-modified="1216043252" id="rhn-source-package-46675" source-rpm="bluez-libs-3.7-1.1.src.rpm"/><source-package last-modified="1216200464" id="rhn-source-package-46707" source-rpm="php-5.1.6-20.el5_2.1.src.rpm"/><source-package last-modified="1216212868" id="rhn-source-package-46716" source-rpm="devhelp-0.12-18.el5.src.rpm"/><source-package last-modified="1216212868" id="rhn-source-package-46717" source-rpm="xulrunner-1.9.0.1-1.el5.src.rpm"/><source-package last-modified="1216212868" id="rhn-source-package-46718" source-rpm="yelp-2.16.0-20.el5.src.rpm"/><source-package last-modified="1216212868" id="rhn-source-package-46719" source-rpm="firefox-3.0.1-1.el5.src.rpm"/><source-package last-modified="1216250700" id="rhn-source-package-46725" source-rpm="nspluginwrapper-0.9.91.5-22.el5.src.rpm"/><source-package last-modified="1216919509" id="rhn-source-package-47332" source-rpm="rdesktop-1.4.1-6.src.rpm"/><source-package last-modified="1217260790" id="rhn-source-package-47370" source-rpm="nss_ldap-253-13.el5_2.1.src.rpm"/><source-package last-modified="1217517944" id="rhn-source-package-47401" source-rpm="libxslt-1.1.17-2.el5_2.2.src.rpm"/><source-package last-modified="1217518293" id="rhn-source-package-47403" source-rpm="nfs-utils-1.0.9-35z.el5_2.src.rpm"/><source-package last-modified="1217872472" id="rhn-source-package-47429" source-rpm="kernel-2.6.18-92.1.10.el5.src.rpm"/><source-package last-modified="1218016252" id="rhn-source-package-47438" source-rpm="strace-4.5.16-1.el5_2.2.src.rpm"/><source-package last-modified="1218439751" id="rhn-source-package-47452" source-rpm="kexec-tools-1.102pre-21.el5_2.2.src.rpm"/><source-package last-modified="1218473987" id="rhn-source-package-47456" source-rpm="dnsmasq-2.45-1.el5_2.1.src.rpm"/><source-package last-modified="1218572058" id="rhn-source-package-47467" source-rpm="hplip-1.6.7-4.1.el5_2.4.src.rpm"/><source-package last-modified="1218719167" id="rhn-source-package-47480" source-rpm="yum-rhn-plugin-0.5.3-12.el5_2.9.src.rpm"/><source-package last-modified="1218741244" id="rhn-source-package-47484" source-rpm="postfix-2.3.3-2.1.el5_2.src.rpm"/><source-package last-modified="1219333859" id="rhn-source-package-47500" source-rpm="libxml2-2.6.26-2.1.2.3.src.rpm"/><source-package last-modified="1219406231" id="rhn-source-package-47505" source-rpm="openssh-4.3p2-26.el5_2.1.src.rpm"/><source-package last-modified="1219738263" id="rhn-source-package-47514" source-rpm="libxml2-2.6.26-2.1.2.4.src.rpm"/><source-package last-modified="1219777490" id="rhn-source-package-47523" source-rpm="ipsec-tools-0.6.5-9.el5_2.3.src.rpm"/><source-package last-modified="1219857059" id="rhn-source-package-47539" source-rpm="tomcat5-5.5.23-0jpp.7.el5_2.1.src.rpm"/><source-package last-modified="1219961389" id="rhn-source-package-47557" source-rpm="libtiff-3.8.2-7.el5_2.2.src.rpm"/><source-package last-modified="1220043919" id="rhn-source-package-47564" source-rpm="tzdata-2008e-1.el5.src.rpm"/><source-package last-modified="1220342022" id="rhn-source-package-47567" source-rpm="sos-1.7-9.2.el5_2.2.src.rpm"/><source-package last-modified="1220375950" id="rhn-source-package-47568" source-rpm="libxml2-2.6.26-2.1.2.5.src.rpm"/><source-package last-modified="1221139827" id="rhn-source-package-47665" source-rpm="libxml2-2.6.26-2.1.2.6.src.rpm"/><source-package last-modified="1221568092" id="rhn-source-package-47703" source-rpm="bzip2-1.0.3-4.el5_2.src.rpm"/><source-package last-modified="1221666493" id="rhn-source-package-47724" source-rpm="perl-5.8.8-15.el5_2.1.src.rpm"/><source-package last-modified="1222219744" id="rhn-source-package-47832" source-rpm="firefox-3.0.2-3.el5.src.rpm"/><source-package last-modified="1222219744" id="rhn-source-package-47834" source-rpm="nss-3.12.1.1-1.el5.src.rpm"/><source-package last-modified="1222219744" id="rhn-source-package-47835" source-rpm="devhelp-0.12-19.el5.src.rpm"/><source-package last-modified="1222219744" id="rhn-source-package-47836" source-rpm="yelp-2.16.0-21.el5.src.rpm"/><source-package last-modified="1222219744" id="rhn-source-package-47837" source-rpm="xulrunner-1.9.0.2-5.el5.src.rpm"/><source-package last-modified="1222280505" id="rhn-source-package-47850" source-rpm="kernel-2.6.18-92.1.13.el5.src.rpm"/><source-package last-modified="1222371764" id="rhn-source-package-47864" source-rpm="cman-2.0.84-2.el5_2.1.src.rpm"/><source-package last-modified="1222771381" id="rhn-source-package-47912" source-rpm="initscripts-8.45.19.1.EL-1.src.rpm"/><source-package last-modified="1222873571" id="rhn-source-package-47919" source-rpm="xen-3.0.3-64.el5_2.3.src.rpm"/><source-package last-modified="1222873605" id="rhn-source-package-47920" source-rpm="wireshark-1.0.3-4.el5_2.src.rpm"/><source-package last-modified="1222944609" id="rhn-source-package-47926" source-rpm="dhcpv6-1.0.10-4.el5_2.3.src.rpm"/><source-package last-modified="1222951063" id="rhn-source-package-47927" source-rpm="krb5-1.6.1-25.el5_2.1.src.rpm"/><source-package last-modified="1222955826" id="rhn-source-package-47928" source-rpm="pam_krb5-2.2.14-1.el5_2.1.src.rpm"/><source-package last-modified="1223470078" id="rhn-source-package-47964" source-rpm="tzdata-2008f-3.el5.src.rpm"/><source-package last-modified="1223623400" id="rhn-source-package-47983" source-rpm="cups-1.2.4-11.18.el5_2.2.src.rpm"/><source-package last-modified="1223912332" id="rhn-source-package-47993" source-rpm="libdhcp-1.20-5.el5_2.1.src.rpm"/><source-package last-modified="1224058135" id="rhn-source-package-48108" source-rpm="OpenIPMI-2.0.6-6.el5_2.2.src.rpm"/><source-package last-modified="1224599859" id="rhn-source-package-48134" source-rpm="ruby-1.8.5-5.el5_2.5.src.rpm"/><source-package last-modified="1224601649" id="rhn-source-package-48142" source-rpm="ed-0.2-39.el5_2.src.rpm"/><source-package last-modified="1225126270" id="rhn-source-package-48193" source-rpm="lynx-2.8.5-28.1.el5_2.1.src.rpm"/><source-package last-modified="1225722984" id="rhn-source-package-48447" source-rpm="net-snmp-5.3.1-24.el5_2.2.src.rpm"/><source-package last-modified="1225792914" id="rhn-source-package-48451" source-rpm="kernel-2.6.18-92.1.17.el5.src.rpm"/><source-package last-modified="1225826680" id="rhn-source-package-48452" source-rpm="systemtap-0.6.2-1.el5_2.2.src.rpm"/><source-package last-modified="1225888921" id="rhn-source-package-48462" source-rpm="tzdata-2008i-1.el5.src.rpm"/><source-package last-modified="1225907248" id="rhn-source-package-48464" source-rpm="lvm2-2.02.32-4.el5_2.1.src.rpm"/><source-package last-modified="1225909972" id="rhn-source-package-48466" source-rpm="dmraid-1.0.0.rc13-14.el5_2.1.src.rpm"/><source-package last-modified="1226426860" id="rhn-source-package-48529" source-rpm="httpd-2.2.3-11.el5_2.4.src.rpm"/><source-package last-modified="1226427696" id="rhn-source-package-48530" source-rpm="gnutls-1.4.1-3.el5_2.1.src.rpm"/><source-package last-modified="1226481673" id="rhn-source-package-48540" source-rpm="kernel-2.6.18-92.1.18.el5.src.rpm"/><source-package last-modified="1226541211" id="rhn-source-package-48552" source-rpm="yelp-2.16.0-22.el5.src.rpm"/><source-package last-modified="1226541211" id="rhn-source-package-48553" source-rpm="firefox-3.0.4-1.el5.src.rpm"/><source-package last-modified="1226541211" id="rhn-source-package-48554" source-rpm="nss-3.12.1.1-3.el5.src.rpm"/><source-package last-modified="1226541211" id="rhn-source-package-48555" source-rpm="devhelp-0.12-20.el5.src.rpm"/><source-package last-modified="1226541211" id="rhn-source-package-48556" source-rpm="xulrunner-1.9.0.4-1.el5.src.rpm"/><source-package last-modified="1226937458" id="rhn-source-package-48563" source-rpm="libxml2-2.6.26-2.1.2.7.src.rpm"/><source-package last-modified="1227602325" id="rhn-source-package-48598" source-rpm="vim-7.0.109-4.el5_2.4z.src.rpm"/><source-package last-modified="1227603768" id="rhn-source-package-48602" source-rpm="tog-pegasus-2.7.0-2.el5_2.1.src.rpm"/><source-package last-modified="1227605042" id="rhn-source-package-48603" source-rpm="dmraid-1.0.0.rc13-15.el5_2.1.src.rpm"/><source-package last-modified="1227646398" id="rhn-source-package-48605" source-rpm="cman-2.0.84-2.el5_2.2.src.rpm"/><source-package last-modified="1228131828" id="rhn-source-package-48607" source-rpm="evolution-data-server-1.12.3-6.el5_2.3.src.rpm"/><source-package last-modified="1228236988" id="rhn-source-package-48610" source-rpm="glibc-2.5-24.el5_2.2.src.rpm"/><source-package last-modified="1228405398" id="rhn-source-package-48633" source-rpm="ruby-1.8.5-5.el5_2.6.src.rpm"/><source-package last-modified="1228941420" id="rhn-source-package-48662" source-rpm="cman-2.0.84-2.el5_2.3.src.rpm"/><source-package last-modified="1228992862" id="rhn-source-package-48663" source-rpm="autofs-5.0.1-0.rc2.88.el5_2.1.src.rpm"/><source-package last-modified="1229345375" id="rhn-source-package-48672" source-rpm="enscript-1.6.4-4.1.1.el5_2.src.rpm"/><source-package last-modified="1229347397" id="rhn-source-package-48676" source-rpm="cups-1.2.4-11.18.el5_2.3.src.rpm"/><source-package last-modified="1229412119" id="rhn-source-package-48680" source-rpm="kernel-2.6.18-92.1.22.el5.src.rpm"/><source-package last-modified="1229475848" id="rhn-source-package-48686" source-rpm="nss-3.12.2.0-2.el5.src.rpm"/><source-package last-modified="1229475848" id="rhn-source-package-48687" source-rpm="nspr-4.7.3-2.el5.src.rpm"/><source-package last-modified="1229475848" id="rhn-source-package-48688" source-rpm="xulrunner-1.9.0.5-1.el5_2.src.rpm"/><source-package last-modified="1229475848" id="rhn-source-package-48690" source-rpm="firefox-3.0.5-1.el5_2.src.rpm"/><source-package last-modified="1231324322" id="rhn-source-package-48766" source-rpm="xen-3.0.3-64.el5_2.9.src.rpm"/><source-package last-modified="1231325528" id="rhn-source-package-48772" source-rpm="xterm-215-5.el5_2.2.src.rpm"/><source-package last-modified="1231333540" id="rhn-source-package-48776" source-rpm="openssl097a-0.9.7a-9.el5_2.1.src.rpm"/><source-package last-modified="1231333540" id="rhn-source-package-48782" source-rpm="openssl-0.9.8b-10.el5_2.1.src.rpm"/><source-package last-modified="1231334901" id="rhn-source-package-48783" source-rpm="dbus-1.0.0-7.el5_2.1.src.rpm"/><source-package last-modified="1231335395" id="rhn-source-package-48784" source-rpm="lcms-1.15-1.2.2.el5_2.2.src.rpm"/><source-package last-modified="1231438002" id="rhn-source-package-48793" source-rpm="bind-9.3.4-6.0.3.P1.el5_2.src.rpm"/><source-package last-modified="1231750545" id="rhn-source-package-48803" source-rpm="krb5-1.6.1-25.el5_2.2.src.rpm"/><source-package last-modified="1231769161" id="rhn-source-package-48804" source-rpm="squirrelmail-1.4.8-5.el5_2.2.src.rpm"/><source-package last-modified="1231769191" id="rhn-source-package-48807" source-rpm="avahi-0.6.16-1.el5_2.1.src.rpm"/><source-package last-modified="1231970739" id="rhn-source-package-48833" source-rpm="xterm-215-8.el5.src.rpm"/><source-package last-modified="1232398062" id="rhn-source-package-48852" source-rpm="rhnlib-2.2.6-2.el5.src.rpm"/><source-package last-modified="1232398112" id="rhn-source-package-48853" source-rpm="php-5.1.6-23.el5.src.rpm"/><source-package last-modified="1232398135" id="rhn-source-package-48855" source-rpm="dosfstools-2.11-7.el5.src.rpm"/><source-package last-modified="1232398809" id="rhn-source-package-48856" source-rpm="squirrelmail-1.4.8-5.el5_2.3.src.rpm"/><source-package last-modified="1232399255" id="rhn-source-package-48860" source-rpm="libutempter-1.1.4-4.el5.src.rpm"/><source-package last-modified="1232399314" id="rhn-source-package-48861" source-rpm="unzip-5.52-3.el5.src.rpm"/><source-package last-modified="1232399524" id="rhn-source-package-48862" source-rpm="audit-1.7.7-6.el5.src.rpm"/><source-package last-modified="1232399603" id="rhn-source-package-48863" source-rpm="pykickstart-0.43.3-1.el5.src.rpm"/><source-package last-modified="1232399685" id="rhn-source-package-48865" source-rpm="ypserv-2.19-5.el5.src.rpm"/><source-package last-modified="1232399741" id="rhn-source-package-48867" source-rpm="iscsi-initiator-utils-6.2.0.868-0.18.el5.src.rpm"/><source-package last-modified="1232399782" id="rhn-source-package-48868" source-rpm="initscripts-8.45.25-1.el5.src.rpm"/><source-package last-modified="1232399899" id="rhn-source-package-48870" source-rpm="neon-0.25.5-10.el5.src.rpm"/><source-package last-modified="1232399931" id="rhn-source-package-48871" source-rpm="libcxgb3-1.2.2-1.el5.src.rpm"/><source-package last-modified="1232399968" id="rhn-source-package-48872" source-rpm="diffstat-1.41-1.2.3.el5.src.rpm"/><source-package last-modified="1232400032" id="rhn-source-package-48873" source-rpm="gcc43-4.3.2-7.el5.src.rpm"/><source-package last-modified="1232400170" id="rhn-source-package-48876" source-rpm="pm-utils-0.99.3-10.el5.src.rpm"/><source-package last-modified="1232400278" id="rhn-source-package-48877" source-rpm="yum-utils-1.1.16-13.el5.src.rpm"/><source-package last-modified="1232400292" id="rhn-source-package-48878" source-rpm="paps-0.6.6-18.el5.src.rpm"/><source-package last-modified="1232400343" id="rhn-source-package-48879" source-rpm="smartmontools-5.38-2.el5.src.rpm"/><source-package last-modified="1232400350" id="rhn-source-package-48880" source-rpm="ksh-20080202-2.el5.src.rpm"/><source-package last-modified="1232400359" id="rhn-source-package-48881" source-rpm="bind-9.3.4-10.P1.el5.src.rpm"/><source-package last-modified="1232400525" id="rhn-source-package-48883" source-rpm="ppp-2.4.4-2.el5.src.rpm"/><source-package last-modified="1232400571" id="rhn-source-package-48884" source-rpm="rdate-1.4-8.el5.src.rpm"/><source-package last-modified="1232400580" id="rhn-source-package-48885" source-rpm="scim-bridge-0.4.5-8.el5.src.rpm"/><source-package last-modified="1232400664" id="rhn-source-package-48886" source-rpm="gnuplot-4.0.0-14.el5.src.rpm"/><source-package last-modified="1232400782" id="rhn-source-package-48887" source-rpm="mesa-6.5.1-7.7.el5.src.rpm"/><source-package last-modified="1232400788" id="rhn-source-package-48888" source-rpm="dovecot-1.0.7-7.el5.src.rpm"/><source-package last-modified="1232400789" id="rhn-source-package-48889" source-rpm="cryptsetup-luks-1.0.3-4.el5.src.rpm"/><source-package last-modified="1232400790" id="rhn-source-package-48890" source-rpm="xorg-x11-drv-mga-1.4.2-10.el5.src.rpm"/><source-package last-modified="1232400808" id="rhn-source-package-48891" source-rpm="kexec-tools-1.102pre-56.el5.src.rpm"/><source-package last-modified="1232400918" id="rhn-source-package-48892" source-rpm="vnc-4.1.2-14.el5.src.rpm"/><source-package last-modified="1232401045" id="rhn-source-package-48894" source-rpm="kdebindings-3.5.4-6.el5.src.rpm"/><source-package last-modified="1232401068" id="rhn-source-package-48895" source-rpm="iputils-20020927-45.el5.src.rpm"/><source-package last-modified="1232401090" id="rhn-source-package-48896" source-rpm="rhn-client-tools-0.4.19-17.el5.src.rpm"/><source-package last-modified="1232401095" id="rhn-source-package-48898" source-rpm="dapl-2.0.13-4.el5.src.rpm"/><source-package last-modified="1232401103" id="rhn-source-package-48899" source-rpm="e4fsprogs-1.41.1-2.el5.src.rpm"/><source-package last-modified="1232401125" id="rhn-source-package-48900" source-rpm="vixie-cron-4.1-76.el5.src.rpm"/><source-package last-modified="1232401129" id="rhn-source-package-48901" source-rpm="gstreamer-plugins-good-0.10.9-1.el5.src.rpm"/><source-package last-modified="1232401130" id="rhn-source-package-48902" source-rpm="m2crypto-0.16-6.el5.3.src.rpm"/><source-package last-modified="1232401200" id="rhn-source-package-48903" source-rpm="usermode-1.88-3.el5.2.src.rpm"/><source-package last-modified="1232401226" id="rhn-source-package-48904" source-rpm="man-pages-2.39-12.el5.src.rpm"/><source-package last-modified="1232401234" id="rhn-source-package-48905" source-rpm="libibcommon-1.1.1-1.el5.src.rpm"/><source-package last-modified="1232401284" id="rhn-source-package-48906" source-rpm="binutils-2.17.50.0.6-9.el5.src.rpm"/><source-package last-modified="1232401316" id="rhn-source-package-48907" source-rpm="nfs-utils-1.0.9-40.el5.src.rpm"/><source-package last-modified="1232401321" id="rhn-source-package-48908" source-rpm="lvm2-2.02.40-6.el5.src.rpm"/><source-package last-modified="1232401350" id="rhn-source-package-48909" source-rpm="procps-3.2.7-11.1.el5.src.rpm"/><source-package last-modified="1232401355" id="rhn-source-package-48910" source-rpm="bash-3.2-24.el5.src.rpm"/><source-package last-modified="1232401405" id="rhn-source-package-48912" source-rpm="tcsh-6.14-14.el5.src.rpm"/><source-package last-modified="1232401466" id="rhn-source-package-48913" source-rpm="libhugetlbfs-1.3-3.el5.src.rpm"/><source-package last-modified="1232401545" id="rhn-source-package-48916" source-rpm="ypbind-1.19-11.el5.src.rpm"/><source-package last-modified="1232401658" id="rhn-source-package-48917" source-rpm="nss_ldap-253-17.el5.src.rpm"/><source-package last-modified="1232401660" id="rhn-source-package-48918" source-rpm="module-init-tools-3.3-0.pre3.1.42.el5.src.rpm"/><source-package last-modified="1232401737" id="rhn-source-package-48919" source-rpm="openssh-4.3p2-29.el5.src.rpm"/><source-package last-modified="1232401792" id="rhn-source-package-48920" source-rpm="freeradius-1.1.3-1.4.el5.src.rpm"/><source-package last-modified="1232401800" id="rhn-source-package-48921" source-rpm="edac-utils-0.9-6.el5.src.rpm"/><source-package last-modified="1232401814" id="rhn-source-package-48922" source-rpm="openmotif-2.3.1-2.el5.src.rpm"/><source-package last-modified="1232401844" id="rhn-source-package-48923" source-rpm="man-pages-ja-20060815-9.el5.src.rpm"/><source-package last-modified="1232401900" id="rhn-source-package-48924" source-rpm="libdhcp-1.20-6.el5.src.rpm"/><source-package last-modified="1232401947" id="rhn-source-package-48925" source-rpm="libipathverbs-1.1-11.el5.src.rpm"/><source-package last-modified="1232402028" id="rhn-source-package-48926" source-rpm="pam-0.99.6.2-4.el5.src.rpm"/><source-package last-modified="1232402043" id="rhn-source-package-48927" source-rpm="python-2.4.3-24.el5.src.rpm"/><source-package last-modified="1232402046" id="rhn-source-package-48928" source-rpm="redhat-rpm-config-8.0.45-29.el5.src.rpm"/><source-package last-modified="1232402058" id="rhn-source-package-48929" source-rpm="mlocate-0.15-1.el5.1.src.rpm"/><source-package last-modified="1232402083" id="rhn-source-package-48930" source-rpm="device-mapper-multipath-0.4.7-23.el5.src.rpm"/><source-package last-modified="1232402098" id="rhn-source-package-48931" source-rpm="python-pyblock-0.26-3.el5.src.rpm"/><source-package last-modified="1232402325" id="rhn-source-package-48932" source-rpm="quota-3.13-1.2.5.el5.src.rpm"/><source-package last-modified="1232402326" id="rhn-source-package-48933" source-rpm="libibmad-1.2.1-1.el5.src.rpm"/><source-package last-modified="1232402333" id="rhn-source-package-48934" source-rpm="words-3.0-9.1.src.rpm"/><source-package last-modified="1232402451" id="rhn-source-package-48935" source-rpm="ntp-4.2.2p1-9.el5.src.rpm"/><source-package last-modified="1232402456" id="rhn-source-package-48936" source-rpm="ibutils-1.2-9.el5.src.rpm"/><source-package last-modified="1232402515" id="rhn-source-package-48937" source-rpm="desktop-printing-0.19-20.2.el5.src.rpm"/><source-package last-modified="1232402551" id="rhn-source-package-48938" source-rpm="ORBit2-2.14.3-5.el5.src.rpm"/><source-package last-modified="1232402568" id="rhn-source-package-48939" source-rpm="strace-4.5.18-2.el5.src.rpm"/><source-package last-modified="1232402607" id="rhn-source-package-48940" source-rpm="cman-2.0.98-1.el5.src.rpm"/><source-package last-modified="1232402680" id="rhn-source-package-48942" source-rpm="xorg-x11-drv-mutouch-1.1.0-3.src.rpm"/><source-package last-modified="1232402694" id="rhn-source-package-48943" source-rpm="freeipmi-0.5.1-6.el5.src.rpm"/><source-package last-modified="1232402809" id="rhn-source-package-48944" source-rpm="file-4.17-15.src.rpm"/><source-package last-modified="1232402820" id="rhn-source-package-48945" source-rpm="zip-2.31-2.el5.src.rpm"/><source-package last-modified="1232402823" id="rhn-source-package-48948" source-rpm="acpid-1.0.4-7.el5.src.rpm"/><source-package last-modified="1232402862" id="rhn-source-package-48949" source-rpm="mvapich-1.1.0-0.2931.3.el5.src.rpm"/><source-package last-modified="1232402939" id="rhn-source-package-48951" source-rpm="ktune-0.2-3.el5.src.rpm"/><source-package last-modified="1232402952" id="rhn-source-package-48952" source-rpm="rhpxl-0.41.1-7.el5.src.rpm"/><source-package last-modified="1232402959" id="rhn-source-package-48953" source-rpm="perl-DBD-MySQL-3.0007-2.el5.src.rpm"/><source-package last-modified="1232402963" id="rhn-source-package-48954" source-rpm="python-urlgrabber-3.1.0-5.el5.src.rpm"/><source-package last-modified="1232402965" id="rhn-source-package-48955" source-rpm="dbus-1.1.2-12.el5.src.rpm"/><source-package last-modified="1232403002" id="rhn-source-package-48956" source-rpm="mpitests-3.0-2.el5.src.rpm"/><source-package last-modified="1232403020" id="rhn-source-package-48957" source-rpm="traceroute-2.0.1-5.el5.src.rpm"/><source-package last-modified="1232403078" id="rhn-source-package-48959" source-rpm="hwdata-0.213.11-1.el5.src.rpm"/><source-package last-modified="1232403091" id="rhn-source-package-48960" source-rpm="pkinit-nss-0.7.6-1.el5.src.rpm"/><source-package last-modified="1232403093" id="rhn-source-package-48961" source-rpm="iproute-2.6.18-9.el5.src.rpm"/><source-package last-modified="1232403110" id="rhn-source-package-48962" source-rpm="parted-1.8.1-23.el5.src.rpm"/><source-package last-modified="1232403138" id="rhn-source-package-48963" source-rpm="anaconda-11.1.2.168-1.src.rpm"/><source-package last-modified="1232403164" id="rhn-source-package-48964" source-rpm="xorg-x11-drv-ati-6.6.3-3.22.el5.src.rpm"/><source-package last-modified="1232403218" id="rhn-source-package-48965" source-rpm="samba-3.0.33-3.7.el5.src.rpm"/><source-package last-modified="1232403220" id="rhn-source-package-48966" source-rpm="ofed-docs-1.3.2-0.20080728.0355.1.el5.src.rpm"/><source-package last-modified="1232403232" id="rhn-source-package-48968" source-rpm="elfutils-0.137-3.el5.src.rpm"/><source-package last-modified="1232403241" id="rhn-source-package-48969" source-rpm="dhcp-3.0.5-18.el5.src.rpm"/><source-package last-modified="1232403285" id="rhn-source-package-48970" source-rpm="gdb-6.8-27.el5.src.rpm"/><source-package last-modified="1232403299" id="rhn-source-package-48971" source-rpm="libibumad-1.2.1-1.el5.src.rpm"/><source-package last-modified="1232403336" id="rhn-source-package-48973" source-rpm="mod_perl-2.0.4-6.el5.src.rpm"/><source-package last-modified="1232403346" id="rhn-source-package-48974" source-rpm="gstreamer-plugins-base-0.10.20-3.el5.src.rpm"/><source-package last-modified="1232403377" id="rhn-source-package-48975" source-rpm="libibverbs-1.1.2-1.el5.src.rpm"/><source-package last-modified="1232403430" id="rhn-source-package-48976" source-rpm="libselinux-1.33.4-5.1.el5.src.rpm"/><source-package last-modified="1232403474" id="rhn-source-package-48977" source-rpm="qlvnictools-0.0.1-10.el5.src.rpm"/><source-package last-modified="1232403540" id="rhn-source-package-48978" source-rpm="gstreamer-0.10.20-3.el5.src.rpm"/><source-package last-modified="1232403564" id="rhn-source-package-48979" source-rpm="authconfig-5.3.21-5.el5.src.rpm"/><source-package last-modified="1232403566" id="rhn-source-package-48980" source-rpm="dbus-glib-0.73-8.el5.src.rpm"/><source-package last-modified="1232403605" id="rhn-source-package-48981" source-rpm="qperf-0.4.1-2.el5.src.rpm"/><source-package last-modified="1232403644" id="rhn-source-package-48982" source-rpm="shadow-utils-4.0.17-14.el5.src.rpm"/><source-package last-modified="1232403649" id="rhn-source-package-48983" source-rpm="readline-5.1-1.1.src.rpm"/><source-package last-modified="1232403761" id="rhn-source-package-48984" source-rpm="dmraid-1.0.0.rc13-33.el5.src.rpm"/><source-package last-modified="1232403762" id="rhn-source-package-48985" source-rpm="pam_krb5-2.2.14-10.src.rpm"/><source-package last-modified="1232403792" id="rhn-source-package-48986" source-rpm="net-snmp-5.3.2.2-5.el5.src.rpm"/><source-package last-modified="1232403807" id="rhn-source-package-48987" source-rpm="librdmacm-1.0.8-1.el5.src.rpm"/><source-package last-modified="1232403809" id="rhn-source-package-48988" source-rpm="sabayon-2.12.4-6.el5.src.rpm"/><source-package last-modified="1232403867" id="rhn-source-package-48989" source-rpm="krb5-1.6.1-31.el5.src.rpm"/><source-package last-modified="1232403875" id="rhn-source-package-48990" source-rpm="fonts-indic-2.3.1-1.el5.src.rpm"/><source-package last-modified="1232403879" id="rhn-source-package-48991" source-rpm="system-config-printer-0.7.32.10-1.el5.src.rpm"/><source-package last-modified="1232404483" id="rhn-source-package-48993" source-rpm="cpufreq-utils-005-1.el5.src.rpm"/><source-package last-modified="1232404487" id="rhn-source-package-48994" source-rpm="udev-095-14.19.el5.src.rpm"/><source-package last-modified="1232404495" id="rhn-source-package-48995" source-rpm="xorg-x11-drv-i810-1.6.5-9.21.el5.src.rpm"/><source-package last-modified="1232404587" id="rhn-source-package-48996" source-rpm="newt-0.52.2-12.el5.src.rpm"/><source-package last-modified="1232404615" id="rhn-source-package-48997" source-rpm="perl-DBI-1.52-2.el5.src.rpm"/><source-package last-modified="1232404647" id="rhn-source-package-48998" source-rpm="scim-1.4.4-41.el5.src.rpm"/><source-package last-modified="1232404651" id="rhn-source-package-48999" source-rpm="gnupg-1.4.5-14.src.rpm"/><source-package last-modified="1232404665" id="rhn-source-package-49000" source-rpm="tmpwatch-2.9.7-1.1.el5.2.src.rpm"/><source-package last-modified="1232404697" id="rhn-source-package-49001" source-rpm="tog-pegasus-2.7.1-2.el5.src.rpm"/><source-package last-modified="1232404728" id="rhn-source-package-49002" source-rpm="perl-DBD-Pg-1.49-2.el5.src.rpm"/><source-package last-modified="1232404914" id="rhn-source-package-49006" source-rpm="sos-1.7-9.16.el5.src.rpm"/><source-package last-modified="1232404917" id="rhn-source-package-49007" source-rpm="mpi-selector-1.0.1-1.el5.src.rpm"/><source-package last-modified="1232404921" id="rhn-source-package-49008" source-rpm="alsa-utils-1.0.17-1.el5.src.rpm"/><source-package last-modified="1232404925" id="rhn-source-package-49009" source-rpm="opensm-3.2.2-3.el5.src.rpm"/><source-package last-modified="1232404928" id="rhn-source-package-49010" source-rpm="system-config-samba-1.2.41-3.el5.src.rpm"/><source-package last-modified="1232404970" id="rhn-source-package-49011" source-rpm="redhat-menus-6.7.8-3.el5.src.rpm"/><source-package last-modified="1232405062" id="rhn-source-package-49014" source-rpm="hal-0.5.8.1-38.el5.src.rpm"/><source-package last-modified="1232405067" id="rhn-source-package-49015" source-rpm="gfs2-utils-0.1.53-1.el5.src.rpm"/><source-package last-modified="1232405124" id="rhn-source-package-49017" source-rpm="perftest-1.2-11.el5.src.rpm"/><source-package last-modified="1232405133" id="rhn-source-package-49018" source-rpm="dhcdbd-2.2-2.el5.src.rpm"/><source-package last-modified="1232405136" id="rhn-source-package-49019" source-rpm="wdaemon-0.14-2.src.rpm"/><source-package last-modified="1232405182" id="rhn-source-package-49021" source-rpm="logrotate-3.7.4-9.src.rpm"/><source-package last-modified="1232405218" id="rhn-source-package-49022" source-rpm="kdelibs-3.5.4-18.el5.src.rpm"/><source-package last-modified="1232405242" id="rhn-source-package-49023" source-rpm="mkinitrd-5.1.19.6-44.src.rpm"/><source-package last-modified="1232405257" id="rhn-source-package-49024" source-rpm="xen-3.0.3-80.el5.src.rpm"/><source-package last-modified="1232405662" id="rhn-source-package-49025" source-rpm="device-mapper-1.02.28-2.el5.src.rpm"/><source-package last-modified="1232405668" id="rhn-source-package-49026" source-rpm="libsmi-0.4.5-2.el5.src.rpm"/><source-package last-modified="1232405716" id="rhn-source-package-49027" source-rpm="openib-1.3.2-0.20080728.0355.3.el5.src.rpm"/><source-package last-modified="1232405722" id="rhn-source-package-49028" source-rpm="mod_nss-1.0.3-6.el5.src.rpm"/><source-package last-modified="1232405729" id="rhn-source-package-49029" source-rpm="util-linux-2.13-0.50.el5.src.rpm"/><source-package last-modified="1232405828" id="rhn-source-package-49030" source-rpm="pfmon-3.2-0.060926.5.el5.src.rpm"/><source-package last-modified="1232405833" id="rhn-source-package-49031" source-rpm="gimp-print-4.2.7-22.2.el5.src.rpm"/><source-package last-modified="1232405837" id="rhn-source-package-49032" source-rpm="openais-0.80.3-22.el5.src.rpm"/><source-package last-modified="1232405842" id="rhn-source-package-49033" source-rpm="xorg-x11-drv-nv-2.1.12-3.el5.src.rpm"/><source-package last-modified="1232405854" id="rhn-source-package-49034" source-rpm="system-config-network-1.3.99.12-1.el5.src.rpm"/><source-package last-modified="1232405931" id="rhn-source-package-49035" source-rpm="spamassassin-3.2.5-1.el5.src.rpm"/><source-package last-modified="1232405978" id="rhn-source-package-49038" source-rpm="systemtap-0.7.2-2.el5.src.rpm"/><source-package last-modified="1232405991" id="rhn-source-package-49039" source-rpm="subversion-1.4.2-4.el5.src.rpm"/><source-package last-modified="1232406043" id="rhn-source-package-49041" source-rpm="tcp_wrappers-7.6-40.6.el5.src.rpm"/><source-package last-modified="1232406050" id="rhn-source-package-49042" source-rpm="setup-2.5.58-4.el5.src.rpm"/><source-package last-modified="1232406063" id="rhn-source-package-49043" source-rpm="rpm-4.4.2.3-9.el5.src.rpm"/><source-package last-modified="1232406068" id="rhn-source-package-49044" source-rpm="ipsec-tools-0.6.5-13.el5.src.rpm"/><source-package last-modified="1232406107" id="rhn-source-package-49045" source-rpm="glibc-2.5-34.src.rpm"/><source-package last-modified="1232406213" id="rhn-source-package-49046" source-rpm="openmpi-1.2.7-6.el5.src.rpm"/><source-package last-modified="1232406256" id="rhn-source-package-49047" source-rpm="yum-rhn-plugin-0.5.3-30.el5.src.rpm"/><source-package last-modified="1232406281" id="rhn-source-package-49048" source-rpm="infiniband-diags-1.4.1-2.el5.src.rpm"/><source-package last-modified="1232406352" id="rhn-source-package-49049" source-rpm="patch-2.5.4-29.2.3.el5.src.rpm"/><source-package last-modified="1232406387" id="rhn-source-package-49050" source-rpm="libmthca-1.0.5-1.el5.src.rpm"/><source-package last-modified="1232406400" id="rhn-source-package-49051" source-rpm="policycoreutils-1.33.12-14.2.el5.src.rpm"/><source-package last-modified="1232406449" id="rhn-source-package-49052" source-rpm="perl-5.8.8-18.el5.src.rpm"/><source-package last-modified="1232406458" id="rhn-source-package-49053" source-rpm="tcpdump-3.9.4-14.el5.src.rpm"/><source-package last-modified="1232406485" id="rhn-source-package-49054" source-rpm="cups-1.3.7-8.el5.src.rpm"/><source-package last-modified="1232406489" id="rhn-source-package-49055" source-rpm="inn-2.4.3-8.el5.src.rpm"/><source-package last-modified="1232406521" id="rhn-source-package-49056" source-rpm="crash-4.0-7.2.3.src.rpm"/><source-package last-modified="1232406531" id="rhn-source-package-49057" source-rpm="nedit-5.5-21.el5.src.rpm"/><source-package last-modified="1232406554" id="rhn-source-package-49059" source-rpm="openldap-2.3.43-3.el5.src.rpm"/><source-package last-modified="1232406569" id="rhn-source-package-49060" source-rpm="gnome-power-manager-2.16.0-10.el5.src.rpm"/><source-package last-modified="1232406590" id="rhn-source-package-49061" source-rpm="yum-3.2.19-18.el5.src.rpm"/><source-package last-modified="1232406630" id="rhn-source-package-49062" source-rpm="system-config-kdump-1.0.14-4.el5.src.rpm"/><source-package last-modified="1232406661" id="rhn-source-package-49063" source-rpm="kdebase-3.5.4-19.el5.src.rpm"/><source-package last-modified="1232406664" id="rhn-source-package-49064" source-rpm="system-config-kickstart-2.6.19.8-2.el5.src.rpm"/><source-package last-modified="1232406679" id="rhn-source-package-49065" source-rpm="mvapich2-1.0.3-3.el5.src.rpm"/><source-package last-modified="1232406682" id="rhn-source-package-49066" source-rpm="ibsim-0.4-3.el5.src.rpm"/><source-package last-modified="1232406703" id="rhn-source-package-49067" source-rpm="system-config-bind-4.0.3-4.el5.src.rpm"/><source-package last-modified="1232406726" id="rhn-source-package-49069" source-rpm="sudo-1.6.9p17-3.el5.src.rpm"/><source-package last-modified="1232406743" id="rhn-source-package-49070" source-rpm="xfig-3.2.4-21.3.el5.src.rpm"/><source-package last-modified="1232406750" id="rhn-source-package-49071" source-rpm="privoxy-3.0.3-9.3.el5.src.rpm"/><source-package last-modified="1232406758" id="rhn-source-package-49072" source-rpm="httpd-2.2.3-22.el5.src.rpm"/><source-package last-modified="1232406763" id="rhn-source-package-49073" source-rpm="ethtool-6-2.el5.src.rpm"/><source-package last-modified="1232406807" id="rhn-source-package-49074" source-rpm="stunnel-4.15-2.el5.1.src.rpm"/><source-package last-modified="1232406818" id="rhn-source-package-49075" source-rpm="libmlx4-1.0-4.el5.src.rpm"/><source-package last-modified="1232406828" id="rhn-source-package-49076" source-rpm="dhcpv6-1.0.10-16.el5.src.rpm"/><source-package last-modified="1232406852" id="rhn-source-package-49077" source-rpm="redhat-release-notes-5Server-25.src.rpm"/><source-package last-modified="1232406898" id="rhn-source-package-49078" source-rpm="xorg-x11-server-1.1.1-48.52.el5.src.rpm"/><source-package last-modified="1232406903" id="rhn-source-package-49079" source-rpm="firstboot-1.4.27.7-1.el5.src.rpm"/><source-package last-modified="1232406913" id="rhn-source-package-49080" source-rpm="compat-libcom_err-1.0-7.src.rpm"/><source-package last-modified="1232406980" id="rhn-source-package-49081" source-rpm="gcc-4.1.2-44.el5.src.rpm"/><source-package last-modified="1232407197" id="rhn-source-package-49082" source-rpm="java-1.6.0-openjdk-1.6.0.0-0.25.b09.el5.src.rpm"/><source-package last-modified="1232407202" id="rhn-source-package-49083" source-rpm="rsyslog-2.0.6-1.el5.src.rpm"/><source-package last-modified="1232407244" id="rhn-source-package-49084" source-rpm="libibcm-1.0.3-1.el5.src.rpm"/><source-package last-modified="1232407251" id="rhn-source-package-49085" source-rpm="fipscheck-1.0.3-1.el5.src.rpm"/><source-package last-modified="1232408485" id="rhn-source-package-49086" source-rpm="rhel-instnum-1.0.9-1.el5.src.rpm"/><source-package last-modified="1232408511" id="rhn-source-package-49087" source-rpm="SysVinit-2.86-15.el5.src.rpm"/><source-package last-modified="1232408545" id="rhn-source-package-49088" source-rpm="squid-2.6.STABLE21-3.el5.src.rpm"/><source-package last-modified="1232408577" id="rhn-source-package-49089" source-rpm="ftp-0.17-35.el5.src.rpm"/><source-package last-modified="1232408590" id="rhn-source-package-49090" source-rpm="kdenetwork-3.5.4-8.el5.src.rpm"/><source-package last-modified="1232408595" id="rhn-source-package-49091" source-rpm="kbd-1.12-21.el5.src.rpm"/><source-package last-modified="1232408688" id="rhn-source-package-49092" source-rpm="NetworkManager-0.7.0-3.el5.src.rpm"/><source-package last-modified="1232408899" id="rhn-source-package-49093" source-rpm="sgpio-1.2.0_10-2.el5.src.rpm"/><source-package last-modified="1232408943" id="rhn-source-package-49094" source-rpm="ccid-1.3.8-1.el5.src.rpm"/><source-package last-modified="1232408961" id="rhn-source-package-49095" source-rpm="booty-0.80.6-5.src.rpm"/><source-package last-modified="1232408977" id="rhn-source-package-49096" source-rpm="libnes-0.5-4.el5.src.rpm"/><source-package last-modified="1232408987" id="rhn-source-package-49097" source-rpm="cdrtools-2.01-10.7.el5.src.rpm"/><source-package last-modified="1232408995" id="rhn-source-package-49098" source-rpm="selinux-policy-2.4.6-203.el5.src.rpm"/><source-package last-modified="1232409022" id="rhn-source-package-49100" source-rpm="kudzu-1.2.57.1.21-1.src.rpm"/><source-package last-modified="1232409066" id="rhn-source-package-49101" source-rpm="openCryptoki-2.2.4-22.el5.src.rpm"/><source-package last-modified="1232409101" id="rhn-source-package-49102" source-rpm="filesystem-2.4.0-2.src.rpm"/><source-package last-modified="1232409108" id="rhn-source-package-49103" source-rpm="OpenIPMI-2.0.6-11.el5.src.rpm"/><source-package last-modified="1232409137" id="rhn-source-package-49104" source-rpm="system-config-lvm-1.1.5-1.0.el5.src.rpm"/><source-package last-modified="1232409171" id="rhn-source-package-49106" source-rpm="redhat-release-5Server-5.3.0.3.src.rpm"/><source-package last-modified="1232409174" id="rhn-source-package-49107" source-rpm="psacct-6.3.2-44.el5.src.rpm"/><source-package last-modified="1232409270" id="rhn-source-package-49109" source-rpm="oprofile-0.9.3-18.el5.src.rpm"/><source-package last-modified="1232409276" id="rhn-source-package-49110" source-rpm="openssl-0.9.8e-7.el5.src.rpm"/><source-package last-modified="1232409282" id="rhn-source-package-49111" source-rpm="ecryptfs-utils-56-8.el5.src.rpm"/><source-package last-modified="1232409352" id="rhn-source-package-49113" source-rpm="libgcrypt-1.2.4-1.el5.src.rpm"/><source-package last-modified="1232409404" id="rhn-source-package-49114" source-rpm="wpa_supplicant-0.5.10-8.el5.src.rpm"/><source-package last-modified="1232409406" id="rhn-source-package-49115" source-rpm="findutils-4.2.27-5.el5.src.rpm"/><source-package last-modified="1232409454" id="rhn-source-package-49116" source-rpm="linuxwacom-0.7.8.3-5.el5.src.rpm"/><source-package last-modified="1232409605" id="rhn-source-package-49117" source-rpm="mcstrans-0.2.11-3.el5.src.rpm"/><source-package last-modified="1232409671" id="rhn-source-package-49118" source-rpm="numactl-0.9.8-7.el5.src.rpm"/><source-package last-modified="1232409739" id="rhn-source-package-49119" source-rpm="sysstat-7.0.2-3.el5.src.rpm"/><source-package last-modified="1232409742" id="rhn-source-package-49120" source-rpm="gnome-terminal-2.16.0-5.3.el5.src.rpm"/><source-package last-modified="1232409747" id="rhn-source-package-49121" source-rpm="cpuspeed-1.2.1-5.el5.src.rpm"/><source-package last-modified="1232410156" id="rhn-source-package-49123" source-rpm="prelink-0.4.0-2.el5.src.rpm"/><source-package last-modified="1232410159" id="rhn-source-package-49124" source-rpm="lm_sensors-2.10.7-4.el5.src.rpm"/><source-package last-modified="1232410176" id="rhn-source-package-49125" source-rpm="autofs-5.0.1-0.rc2.102.src.rpm"/><source-package last-modified="1232410229" id="rhn-source-package-49126" source-rpm="wacomexpresskeys-0.4.1-1.el5.src.rpm"/><source-package last-modified="1232410237" id="rhn-source-package-49127" source-rpm="metacity-2.16.0-12.el5.src.rpm"/><source-package last-modified="1232410250" id="rhn-source-package-49128" source-rpm="alsa-lib-1.0.17-1.el5.src.rpm"/><source-package last-modified="1232410251" id="rhn-source-package-49129" source-rpm="perl-Archive-Zip-1.16-1.2.1.src.rpm"/><source-package last-modified="1232410284" id="rhn-source-package-49130" source-rpm="coreutils-5.97-19.el5.src.rpm"/><source-package last-modified="1232410341" id="rhn-source-package-49131" source-rpm="ghostscript-8.15.2-9.4.el5.src.rpm"/><source-package last-modified="1232410344" id="rhn-source-package-49132" source-rpm="esc-1.0.0-39.el5.src.rpm"/><source-package last-modified="1232459632" id="rhn-source-package-49137" source-rpm="module-init-tools-3.3-0.pre3.1.37.el5_2.1.src.rpm"/><source-package last-modified="1232489751" id="rhn-source-package-49141" source-rpm="crash-4.0-7.2.3.el5_3.1.src.rpm"/><source-package last-modified="1232489764" id="rhn-source-package-49142" source-rpm="kexec-tools-1.102pre-56.el5_3.1.src.rpm"/><source-package last-modified="1232490104" id="rhn-source-package-49143" source-rpm="strace-4.5.18-2.el5_3.2.src.rpm"/><source-package last-modified="1233221465" id="rhn-source-package-49260" source-rpm="ntp-4.2.2p1-9.el5_3.1.src.rpm"/><source-package last-modified="1233737075" id="rhn-source-package-49576" source-rpm="firefox-3.0.6-1.el5.src.rpm"/><source-package last-modified="1233737075" id="rhn-source-package-49577" source-rpm="nss-3.12.2.0-4.el5.src.rpm"/><source-package last-modified="1233737075" id="rhn-source-package-49578" source-rpm="xulrunner-1.9.0.6-1.el5.src.rpm"/><source-package last-modified="1233849341" id="rhn-source-package-49631" source-rpm="sudo-1.6.9p17-3.el5_3.1.src.rpm"/><source-package last-modified="1233923900" id="rhn-source-package-49636" source-rpm="gstreamer-plugins-good-0.10.9-1.el5_3.1.src.rpm"/><source-package last-modified="1234280500" id="rhn-source-package-49644" source-rpm="kernel-2.6.18-128.1.1.el5.src.rpm"/><source-package last-modified="1234362522" id="rhn-source-package-49645" source-rpm="dos2unix-3.1-27.2.el5.src.rpm"/><source-package last-modified="1234362529" id="rhn-source-package-49646" source-rpm="hwbrowser-0.30-3.el5.src.rpm"/><source-package last-modified="1234362542" id="rhn-source-package-49647" source-rpm="system-config-date-1.8.12-4.el5.src.rpm"/><source-package last-modified="1234370305" id="rhn-source-package-49650" source-rpm="netpbm-10.35-6.1.el5_3.1.src.rpm"/><source-package last-modified="1234371327" id="rhn-source-package-49651" source-rpm="mod_auth_mysql-3.0.0-3.2.el5_3.src.rpm"/><source-package last-modified="1234371517" id="rhn-source-package-49653" source-rpm="vnc-4.1.2-14.el5_3.1.src.rpm"/><source-package last-modified="1234951245" id="rhn-source-package-49666" source-rpm="unix2dos-2.2-26.2.3.el5.src.rpm"/><source-package last-modified="1234975295" id="rhn-source-package-49667" source-rpm="strace-4.5.18-2.el5_3.3.src.rpm"/><source-package last-modified="1235512939" id="rhn-source-package-49682" source-rpm="gfs2-utils-0.1.53-1.el5_3.1.src.rpm"/><source-package last-modified="1235749521" id="rhn-source-package-49687" source-rpm="device-mapper-multipath-0.4.7-23.el5_3.1.src.rpm"/><source-package last-modified="1236193446" id="rhn-source-package-49701" source-rpm="wireshark-1.0.6-2.el5_3.src.rpm"/><source-package last-modified="1236193625" id="rhn-source-package-49704" source-rpm="libpng-1.2.10-7.1.el5_3.2.src.rpm"/><source-package last-modified="1236210974" id="rhn-source-package-49709" source-rpm="xulrunner-1.9.0.7-1.el5.src.rpm"/><source-package last-modified="1236210974" id="rhn-source-package-49710" source-rpm="firefox-3.0.7-1.el5.src.rpm"/><source-package last-modified="1236787732" id="rhn-source-package-49976" source-rpm="mod_authz_ldap-0.26-9.el5.src.rpm"/><source-package last-modified="1236787878" id="rhn-source-package-49977" source-rpm="htdig-3.2.0b6-11.el5.src.rpm"/><source-package last-modified="1236866978" id="rhn-source-package-49998" source-rpm="icu-3.6-5.11.2.src.rpm"/><source-package last-modified="1237210830" id="rhn-source-package-50003" source-rpm="libsoup-2.2.98-2.el5_3.1.src.rpm"/><source-package last-modified="1237211194" id="rhn-source-package-50005" source-rpm="evolution-data-server-1.12.3-10.el5_3.3.src.rpm"/><source-package last-modified="1237388126" id="rhn-source-package-50010" source-rpm="jadetex-3.12-15.el5.src.rpm"/><source-package last-modified="1237388248" id="rhn-source-package-50011" source-rpm="cpio-2.6-23.el5.src.rpm"/><source-package last-modified="1237388438" id="rhn-source-package-50012" source-rpm="ltrace-0.5-13.45svn.el5.src.rpm"/><source-package last-modified="1237474961" id="rhn-source-package-50018" source-rpm="lcms-1.18-0.1.beta1.el5_3.2.src.rpm"/><source-package last-modified="1237475352" id="rhn-source-package-50022" source-rpm="curl-7.15.5-2.1.el5_3.4.src.rpm"/><source-package last-modified="1237476796" id="rhn-source-package-50025" source-rpm="ghostscript-8.15.2-9.4.el5_3.4.src.rpm"/><source-package last-modified="1237895801" id="rhn-source-package-50044" source-rpm="glib2-2.12.3-4.el5_3.1.src.rpm"/><source-package last-modified="1237984158" id="rhn-source-package-50050" source-rpm="numactl-0.9.8-8.el5.src.rpm"/><source-package last-modified="1237984344" id="rhn-source-package-50051" source-rpm="db4-4.3.29-10.el5.src.rpm"/><source-package last-modified="1237989317" id="rhn-source-package-50053" source-rpm="NetworkManager-0.7.0-4.el5_3.src.rpm"/><source-package last-modified="1238082570" id="rhn-source-package-50055" source-rpm="systemtap-0.7.2-3.el5_3.src.rpm"/><source-package last-modified="1238195400" id="rhn-source-package-50087" source-rpm="xulrunner-1.9.0.7-3.el5.src.rpm"/><source-package last-modified="1238423485" id="rhn-source-package-50101" source-rpm="xen-3.0.3-80.el5_3.2.src.rpm"/><source-package last-modified="1238431767" id="rhn-source-package-50102" source-rpm="openswan-2.6.14-1.el5_3.2.src.rpm"/><source-package last-modified="1238488706" id="rhn-source-package-50103" source-rpm="mod_nss-1.0.3-7.el5_3.1.src.rpm"/><source-package last-modified="1238573732" id="rhn-source-package-50106" source-rpm="kernel-2.6.18-128.1.6.el5.src.rpm"/><source-package last-modified="1238575521" id="rhn-source-package-50107" source-rpm="iproute-2.6.18-10.el5.src.rpm"/><source-package last-modified="1238575797" id="rhn-source-package-50108" source-rpm="gnome-python2-desktop-2.16.0-3.el5.src.rpm"/><source-package last-modified="1238684145" id="rhn-source-package-50148" source-rpm="perl-5.8.8-18.el5_3.1.src.rpm"/><source-package last-modified="1239035288" id="rhn-source-package-50154" source-rpm="gstreamer-plugins-base-0.10.20-3.0.1.el5_3.src.rpm"/><source-package last-modified="1239035300" id="rhn-source-package-50155" source-rpm="php-5.1.6-23.2.el5_3.src.rpm"/><source-package last-modified="1239129265" id="rhn-source-package-50163" source-rpm="krb5-1.6.1-31.el5_3.3.src.rpm"/><source-package last-modified="1239129272" id="rhn-source-package-50167" source-rpm="java-1.6.0-openjdk-1.6.0.0-0.30.b09.el5.src.rpm"/><source-package last-modified="1239129436" id="rhn-source-package-50168" source-rpm="device-mapper-multipath-0.4.7-23.el5_3.2.src.rpm"/><source-package last-modified="1239176743" id="rhn-source-package-50171" source-rpm="lksctp-tools-1.0.6-3.el5.src.rpm"/><source-package last-modified="1239176764" id="rhn-source-package-50172" source-rpm="less-394-6.el5.src.rpm"/><source-package last-modified="1239176867" id="rhn-source-package-50173" source-rpm="tcl-8.4.13-4.el5.src.rpm"/><source-package last-modified="1239307153" id="rhn-source-package-50183" source-rpm="cman-2.0.98-1.el5_3.1.src.rpm"/><source-package last-modified="1239307231" id="rhn-source-package-50184" source-rpm="openais-0.80.3-22.el5_3.4.src.rpm"/><source-package last-modified="1239307432" id="rhn-source-package-50185" source-rpm="gfs2-utils-0.1.53-1.el5_3.2.src.rpm"/><source-package last-modified="1239731456" id="rhn-source-package-50193" source-rpm="ghostscript-8.15.2-9.4.el5_3.7.src.rpm"/><source-package last-modified="1239786942" id="rhn-source-package-50197" source-rpm="tzdata-2009f-1.el5.src.rpm"/><source-package last-modified="1239789435" id="rhn-source-package-50198" source-rpm="rsh-0.17-40.el5.src.rpm"/><source-package last-modified="1239790480" id="rhn-source-package-50200" source-rpm="dump-0.4b41-4.el5.src.rpm"/><source-package last-modified="1239791165" id="rhn-source-package-50201" source-rpm="scim-bridge-0.4.5-9.el5.src.rpm"/><source-package last-modified="1239910316" id="rhn-source-package-50209" source-rpm="udev-095-14.20.el5_3.src.rpm"/><source-package last-modified="1239919080" id="rhn-source-package-50212" source-rpm="cups-1.3.7-8.el5_3.4.src.rpm"/><source-package last-modified="1239975231" id="rhn-source-package-50218" source-rpm="device-mapper-multipath-0.4.7-23.el5_3.4.src.rpm"/><source-package last-modified="1240363553" id="rhn-source-package-50265" source-rpm="firefox-3.0.9-1.el5.src.rpm"/><source-package last-modified="1240363553" id="rhn-source-package-50267" source-rpm="xulrunner-1.9.0.9-1.el5.src.rpm"/><source-package last-modified="1240404139" id="rhn-source-package-50268" source-rpm="sudo-1.6.9p17-5.el5.src.rpm"/><source-package last-modified="1240404250" id="rhn-source-package-50269" source-rpm="psmisc-22.2-7.src.rpm"/><source-package last-modified="1240404398" id="rhn-source-package-50270" source-rpm="yum-metadata-parser-1.1.2-3.el5.src.rpm"/><source-package last-modified="1240404603" id="rhn-source-package-50271" source-rpm="sqlite-3.3.6-5.src.rpm"/><source-package last-modified="1240404715" id="rhn-source-package-50272" source-rpm="authd-1.4.3-14.src.rpm"/><source-package last-modified="1240404886" id="rhn-source-package-50273" source-rpm="audit-1.7.7-6.el5_3.2.src.rpm"/><source-package last-modified="1240421649" id="rhn-source-package-50274" source-rpm="giflib-4.1.3-7.1.el5_3.1.src.rpm"/><source-package last-modified="1240864918" id="rhn-source-package-50284" source-rpm="firefox-3.0.10-1.el5.src.rpm"/><source-package last-modified="1240864918" id="rhn-source-package-50285" source-rpm="xulrunner-1.9.0.10-1.el5.src.rpm"/><source-package last-modified="1241012373" id="rhn-source-package-50291" source-rpm="kdenetwork-3.5.4-9.el5.src.rpm"/><source-package last-modified="1241012560" id="rhn-source-package-50292" source-rpm="tcp_wrappers-7.6-40.7.el5.src.rpm"/><source-package last-modified="1241095412" id="rhn-source-package-50317" source-rpm="file-4.17-15.el5_3.1.src.rpm"/><source-package last-modified="1241122231" id="rhn-source-package-50324" source-rpm="libwmf-0.2.8.4-10.2.src.rpm"/><source-package last-modified="1241606742" id="rhn-source-package-50341" source-rpm="sos-1.7-9.16.el5_3.5.src.rpm"/><source-package last-modified="1241623776" id="rhn-source-package-50344" source-rpm="ypbind-1.19-12.el5.src.rpm"/><source-package last-modified="1241623888" id="rhn-source-package-50345" source-rpm="zsh-4.2.6-3.el5.src.rpm"/><source-package last-modified="1241624111" id="rhn-source-package-50347" source-rpm="binutils-2.17.50.0.6-12.el5.src.rpm"/><source-package last-modified="1241689733" id="rhn-source-package-50349" source-rpm="kexec-tools-1.102pre-56.el5_3.2.src.rpm"/><source-package last-modified="1241693068" id="rhn-source-package-50355" source-rpm="kernel-2.6.18-128.1.10.el5.src.rpm"/><source-package last-modified="1241696250" id="rhn-source-package-50359" source-rpm="acpid-1.0.4-7.el5_3.1.src.rpm"/><source-package last-modified="1241697346" id="rhn-source-package-50360" source-rpm="audit-1.7.7-6.el5_3.3.src.rpm"/><source-package last-modified="1241772894" id="rhn-source-package-50366" source-rpm="pango-1.14.9-5.el5_3.src.rpm"/><source-package last-modified="1241804597" id="rhn-source-package-50367" source-rpm="gfs2-utils-0.1.53-1.el5_3.3.src.rpm"/><source-package last-modified="1242224643" id="rhn-source-package-50372" source-rpm="perl-DBD-Pg-1.49-2.el5_3.1.src.rpm"/><source-package last-modified="1242224949" id="rhn-source-package-50373" source-rpm="poppler-0.5.4-4.4.el5_3.9.src.rpm"/><source-package last-modified="1242286340" id="rhn-source-package-50382" source-rpm="grep-2.5.1-55.el5.src.rpm"/><source-package last-modified="1242286522" id="rhn-source-package-50383" source-rpm="authconfig-5.3.21-6.el5.src.rpm"/><source-package last-modified="1242286685" id="rhn-source-package-50384" source-rpm="man-pages-ja-20060815-11.el5.src.rpm"/><source-package last-modified="1242286854" id="rhn-source-package-50385" source-rpm="setup-2.5.58-7.el5.src.rpm"/><source-package last-modified="1242677163" id="rhn-source-package-50489" source-rpm="ipsec-tools-0.6.5-13.el5_3.1.src.rpm"/><source-package last-modified="1242678540" id="rhn-source-package-50490" source-rpm="ntp-4.2.2p1-9.el5_3.2.src.rpm"/><source-package last-modified="1242811334" id="rhn-source-package-50509" source-rpm="pyorbit-2.14.1-3.el5.src.rpm"/><source-package last-modified="1242813826" id="rhn-source-package-50511" source-rpm="cpuspeed-1.2.1-8.el5.src.rpm"/><source-package last-modified="1242993563" id="rhn-source-package-50521" source-rpm="freetype-2.2.1-21.el5_3.src.rpm"/><source-package last-modified="1243357474" id="rhn-source-package-50528" source-rpm="squirrelmail-1.4.8-5.el5_3.7.src.rpm"/><source-package last-modified="1243411419" id="rhn-source-package-50540" source-rpm="vsftpd-2.0.5-12.el5_3.1.src.rpm"/><source-package last-modified="1243412086" id="rhn-source-package-50541" source-rpm="net-snmp-5.3.2.2-5.el5_3.1.src.rpm"/><source-package last-modified="1243431955" id="rhn-source-package-50542" source-rpm="aspell-nl-0.1e-2.el5.src.rpm"/><source-package last-modified="1243432018" id="rhn-source-package-50543" source-rpm="php-pear-1.4.9-6.el5.src.rpm"/><source-package last-modified="1243432116" id="rhn-source-package-50544" source-rpm="dvd+rw-tools-7.0-1.el5.src.rpm"/><source-package last-modified="1243432180" id="rhn-source-package-50545" source-rpm="aide-0.13.1-4.el5.src.rpm"/><source-package last-modified="1243432235" id="rhn-source-package-50546" source-rpm="system-config-language-1.1.18-3.el5.src.rpm"/><source-package last-modified="1243433692" id="rhn-source-package-50547" source-rpm="httpd-2.2.3-22.el5_3.1.src.rpm"/><source-package last-modified="1244033497" id="rhn-source-package-50556" source-rpm="readline-5.1-3.el5.src.rpm"/><source-package last-modified="1244033616" id="rhn-source-package-50557" source-rpm="gnome-session-2.16.0-7.el5.src.rpm"/><source-package last-modified="1244033684" id="rhn-source-package-50558" source-rpm="setroubleshoot-2.0.5-5.el5.src.rpm"/><source-package last-modified="1244043021" id="rhn-source-package-50564" source-rpm="cups-1.3.7-8.el5_3.6.src.rpm"/><source-package last-modified="1244633001" id="rhn-source-package-50576" source-rpm="redhat-rpm-config-8.0.45-32.el5.src.rpm"/><source-package last-modified="1244633082" id="rhn-source-package-50577" source-rpm="iputils-20020927-46.el5.src.rpm"/><source-package last-modified="1244647648" id="rhn-source-package-50578" source-rpm="mkinitrd-5.1.19.6-44.1.src.rpm"/><source-package last-modified="1244712474" id="rhn-source-package-50615" source-rpm="xen-3.0.3-80.el5_3.3.src.rpm"/><source-package last-modified="1244759193" id="rhn-source-package-50617" source-rpm="firefox-3.0.11-2.el5_3.src.rpm"/><source-package last-modified="1244759193" id="rhn-source-package-50618" source-rpm="xulrunner-1.9.0.11-3.el5_3.src.rpm"/><source-package last-modified="1245049819" id="rhn-source-package-50629" source-rpm="iscsi-initiator-utils-6.2.0.868-0.18.el5_3.1.src.rpm"/><source-package last-modified="1245096858" id="rhn-source-package-50638" source-rpm="wireshark-1.0.8-1.el5_3.1.src.rpm"/><source-package last-modified="1245100039" id="rhn-source-package-50642" source-rpm="cscope-15.5-15.1.el5_3.1.src.rpm"/><source-package last-modified="1245137388" id="rhn-source-package-50643" source-rpm="cman-2.0.98-1.el5_3.4.src.rpm"/><source-package last-modified="1245156936" id="rhn-source-package-50644" source-rpm="openais-0.80.3-22.el5_3.8.src.rpm"/><source-package last-modified="1245167499" id="rhn-source-package-50647" source-rpm="tzdata-2009i-2.el5.src.rpm"/><source-package last-modified="1245186787" id="rhn-source-package-50648" source-rpm="kernel-2.6.18-128.1.14.el5.src.rpm"/><source-package last-modified="1245188091" id="rhn-source-package-50650" source-rpm="apr-util-1.2.7-7.el5_3.1.src.rpm"/><source-package last-modified="1245249782" id="rhn-source-package-50652" source-rpm="pciutils-2.2.3-7.el5.src.rpm"/><source-package last-modified="1245249881" id="rhn-source-package-50653" source-rpm="wdaemon-0.14-4.src.rpm"/><source-package last-modified="1245250064" id="rhn-source-package-50654" source-rpm="isdn4k-utils-3.2-56.el5.src.rpm"/><source-package last-modified="1245250076" id="rhn-source-package-50655" source-rpm="efax-0.9-28.el5.src.rpm"/><source-package last-modified="1245345072" id="rhn-source-package-50661" source-rpm="cyrus-imapd-2.3.7-2.el5_3.2.src.rpm"/><source-package last-modified="1245691628" id="rhn-source-package-50667" source-rpm="vim-7.0.109-6.el5.src.rpm"/><source-package last-modified="1245694218" id="rhn-source-package-50668" source-rpm="tetex-3.0-33.8.el5.src.rpm"/><source-package last-modified="1245694415" id="rhn-source-package-50669" source-rpm="avahi-0.6.16-6.el5.src.rpm"/><source-package last-modified="1245694565" id="rhn-source-package-50670" source-rpm="cyrus-imapd-2.3.7-7.el5.src.rpm"/><source-package last-modified="1245694660" id="rhn-source-package-50671" source-rpm="vino-2.13.5-7.el5.src.rpm"/><source-package last-modified="1245938594" id="rhn-source-package-50674" source-rpm="icu-3.6-5.11.4.src.rpm"/><source-package last-modified="1245939029" id="rhn-source-package-50675" source-rpm="gstreamer-plugins-good-0.10.9-1.el5_3.2.src.rpm"/><source-package last-modified="1245944161" id="rhn-source-package-50679" source-rpm="kdelibs-3.5.4-22.el5_3.src.rpm"/><source-package last-modified="1246018238" id="rhn-source-package-50687" source-rpm="autofs-5.0.1-0.rc2.102.el5_3.1.src.rpm"/><source-package last-modified="1246350314" id="rhn-source-package-50689" source-rpm="kernel-2.6.18-128.1.16.el5.src.rpm"/><source-package last-modified="1246362442" id="rhn-source-package-50706" source-rpm="pango-1.14.9-6.el5.src.rpm"/><source-package last-modified="1246364605" id="rhn-source-package-50753" source-rpm="crash-4.0-8.9.1.el5.src.rpm"/><source-package last-modified="1246366355" id="rhn-source-package-50784" source-rpm="evince-0.6.0-9.el5.src.rpm"/><source-package last-modified="1246367075" id="rhn-source-package-50798" source-rpm="cryptsetup-luks-1.0.3-5.el5.src.rpm"/><source-package last-modified="1246368582" id="rhn-source-package-50809" source-rpm="kdebase-3.5.4-20.el5.src.rpm"/><source-package last-modified="1246368782" id="rhn-source-package-50813" source-rpm="irqbalance-0.55-15.el5.src.rpm"/><source-package last-modified="1246372650" id="rhn-source-package-50860" source-rpm="foomatic-3.0.2-38.3.el5.src.rpm"/><source-package last-modified="1246374642" id="rhn-source-package-50880" source-rpm="xorg-x11-xdm-1.0.5-6.el5.src.rpm"/><source-package last-modified="1246530866" id="rhn-source-package-50909" source-rpm="bind-9.3.4-10.P1.el5_3.1.src.rpm"/><source-package last-modified="1246546767" id="rhn-source-package-50910" source-rpm="openswan-2.6.14-1.el5_3.3.src.rpm"/><source-package last-modified="1246552727" id="rhn-source-package-50913" source-rpm="ruby-1.8.5-5.el5_3.7.src.rpm"/><source-package last-modified="1246606077" id="rhn-source-package-50916" source-rpm="yum-3.2.19-18.el5_3.1.src.rpm"/><source-package last-modified="1247155587" id="rhn-source-package-50978" source-rpm="httpd-2.2.3-22.el5_3.2.src.rpm"/><source-package last-modified="1247238073" id="rhn-source-package-51000" source-rpm="samba-3.0.33-3.7.el5_3.1.src.rpm"/><source-package last-modified="1247562136" id="rhn-source-package-51006" source-rpm="kernel-2.6.18-128.2.1.el5.src.rpm"/><source-package last-modified="1247771313" id="rhn-source-package-51027" source-rpm="libtiff-3.8.2-7.el5_3.4.src.rpm"/><source-package last-modified="1248074800" id="rhn-source-package-51036" source-rpm="nss-3.12.3.99.3-1.el5_3.2.src.rpm"/><source-package last-modified="1248074800" id="rhn-source-package-51037" source-rpm="nspr-4.7.4-1.el5_3.1.src.rpm"/><source-package last-modified="1248209166" id="rhn-source-package-51041" source-rpm="tomcat5-5.5.23-0jpp.7.el5_3.2.src.rpm"/><source-package last-modified="1248221589" id="rhn-source-package-51042" source-rpm="xulrunner-1.9.0.12-1.el5_3.src.rpm"/><source-package last-modified="1248221589" id="rhn-source-package-51043" source-rpm="firefox-3.0.12-1.el5_3.src.rpm"/><source-package last-modified="1248246871" id="rhn-source-package-51047" source-rpm="ksh-20080202-2.el5_3.1.src.rpm"/><source-package last-modified="1248282282" id="rhn-source-package-51062" source-rpm="esc-1.1.0-9.el5.src.rpm"/><source-package last-modified="1248686340" id="rhn-source-package-51095" source-rpm="python-2.4.3-24.el5_3.6.src.rpm"/><source-package last-modified="1248889231" id="rhn-source-package-51101" source-rpm="bind-9.3.4-10.P1.el5_3.2.src.rpm"/><source-package last-modified="1248907966" id="rhn-source-package-51107" source-rpm="bind-9.3.4-10.P1.el5_3.3.src.rpm"/><source-package last-modified="1249284752" id="rhn-source-package-51120" source-rpm="openais-0.80.3-22.el5_3.9.src.rpm"/><source-package last-modified="1249285048" id="rhn-source-package-51121" source-rpm="cman-2.0.98-1.el5_3.7.src.rpm"/><source-package last-modified="1249390877" id="rhn-source-package-51124" source-rpm="kernel-2.6.18-128.4.1.el5.src.rpm"/><source-package last-modified="1249593151" id="rhn-source-package-51140" source-rpm="java-1.6.0-openjdk-1.6.0.0-1.2.b09.el5.src.rpm"/><source-package last-modified="1249634951" id="rhn-source-package-51141" source-rpm="glibc-2.5-34.el5_3.1.src.rpm"/><source-package last-modified="1249922126" id="rhn-source-package-51142" source-rpm="subversion-1.4.2-4.el5_3.1.src.rpm"/><source-package last-modified="1249923708" id="rhn-source-package-51144" source-rpm="apr-1.2.7-11.el5_3.1.src.rpm"/><source-package last-modified="1249923708" id="rhn-source-package-51147" source-rpm="apr-util-1.2.7-7.el5_3.2.src.rpm"/><source-package last-modified="1249926432" id="rhn-source-package-51152" source-rpm="libxml2-2.6.26-2.1.2.8.src.rpm"/><source-package last-modified="1250172789" id="rhn-source-package-51159" source-rpm="curl-7.15.5-2.1.el5_3.5.src.rpm"/><source-package last-modified="1250513801" id="rhn-source-package-51166" source-rpm="tzdata-2009k-1.el5.src.rpm"/><source-package last-modified="1250586921" id="rhn-source-package-51169" source-rpm="net-snmp-5.3.2.2-5.el5_3.2.src.rpm"/><source-package last-modified="1250618136" id="rhn-source-package-51176" source-rpm="libvorbis-1.1.2-3.el5_3.3.src.rpm"/><source-package last-modified="1251112134" id="rhn-source-package-51187" source-rpm="kernel-2.6.18-128.7.1.el5.src.rpm"/><source-package last-modified="1251297019" id="rhn-source-package-51206" source-rpm="gnutls-1.4.1-3.el5_3.5.src.rpm"/><source-package last-modified="1251378276" id="rhn-source-package-51207" source-rpm="mdadm-2.6.9-2.el5.src.rpm"/><source-package last-modified="1251378334" id="rhn-source-package-51208" source-rpm="device-mapper-multipath-0.4.7-30.el5.src.rpm"/><source-package last-modified="1251378342" id="rhn-source-package-51209" source-rpm="nfs4-acl-tools-0.3.3-1.el5.src.rpm"/><source-package last-modified="1251378387" id="rhn-source-package-51210" source-rpm="util-linux-2.13-0.52.el5.src.rpm"/><source-package last-modified="1251378442" id="rhn-source-package-51212" source-rpm="xorg-x11-server-1.1.1-48.67.el5.src.rpm"/><source-package last-modified="1251378492" id="rhn-source-package-51213" source-rpm="xorg-x11-drv-mga-1.4.10-5.el5.src.rpm"/><source-package last-modified="1251378707" id="rhn-source-package-51214" source-rpm="openswan-2.6.21-5.el5.src.rpm"/><source-package last-modified="1251378735" id="rhn-source-package-51215" source-rpm="xen-3.0.3-94.el5.src.rpm"/><source-package last-modified="1251378932" id="rhn-source-package-51217" source-rpm="perl-5.8.8-27.el5.src.rpm"/><source-package last-modified="1251379084" id="rhn-source-package-51218" source-rpm="anaconda-11.1.2.195-1.src.rpm"/><source-package last-modified="1251379266" id="rhn-source-package-51219" source-rpm="oprofile-0.9.4-11.el5.src.rpm"/><source-package last-modified="1251379271" id="rhn-source-package-51220" source-rpm="libcxgb3-1.2.3-1.el5.src.rpm"/><source-package last-modified="1251379350" id="rhn-source-package-51221" source-rpm="openssl-0.9.8e-12.el5.src.rpm"/><source-package last-modified="1251379372" id="rhn-source-package-51222" source-rpm="rhnsd-4.7.0-4.el5.src.rpm"/><source-package last-modified="1251379410" id="rhn-source-package-51223" source-rpm="yum-rhn-plugin-0.5.4-13.el5.src.rpm"/><source-package last-modified="1251379604" id="rhn-source-package-51224" source-rpm="glibc-2.5-42.src.rpm"/><source-package last-modified="1251379751" id="rhn-source-package-51225" source-rpm="grub-0.97-13.5.src.rpm"/><source-package last-modified="1251379956" id="rhn-source-package-51226" source-rpm="bind-9.3.6-4.P1.el5.src.rpm"/><source-package last-modified="1251380315" id="rhn-source-package-51228" source-rpm="m2crypto-0.16-6.el5.6.src.rpm"/><source-package last-modified="1251380332" id="rhn-source-package-51229" source-rpm="OpenIPMI-2.0.16-5.el5.src.rpm"/><source-package last-modified="1251380784" id="rhn-source-package-51231" source-rpm="sblim-1-35.el5.src.rpm"/><source-package last-modified="1251380785" id="rhn-source-package-51232" source-rpm="pykickstart-0.43.5-1.el5.src.rpm"/><source-package last-modified="1251381084" id="rhn-source-package-51233" source-rpm="openais-0.80.6-8.el5.src.rpm"/><source-package last-modified="1251381138" id="rhn-source-package-51234" source-rpm="rdesktop-1.6.0-3.src.rpm"/><source-package last-modified="1251381327" id="rhn-source-package-51235" source-rpm="xorg-x11-proto-devel-7.1-13.el5.src.rpm"/><source-package last-modified="1251381399" id="rhn-source-package-51236" source-rpm="hwdata-0.213.16-1.el5.src.rpm"/><source-package last-modified="1251381471" id="rhn-source-package-51237" source-rpm="gfs2-utils-0.1.62-1.el5.src.rpm"/><source-package last-modified="1251381485" id="rhn-source-package-51238" source-rpm="autofs-5.0.1-0.rc2.131.el5.src.rpm"/><source-package last-modified="1251381702" id="rhn-source-package-51239" source-rpm="selinux-policy-2.4.6-255.el5.src.rpm"/><source-package last-modified="1251382174" id="rhn-source-package-51240" source-rpm="mysql-5.0.77-3.el5.src.rpm"/><source-package last-modified="1251382392" id="rhn-source-package-51242" source-rpm="kernel-2.6.18-164.el5.src.rpm"/><source-package last-modified="1251382562" id="rhn-source-package-51243" source-rpm="sos-1.7-9.27.el5.src.rpm"/><source-package last-modified="1251382771" id="rhn-source-package-51244" source-rpm="sg3_utils-1.25-4.el5.src.rpm"/><source-package last-modified="1251382887" id="rhn-source-package-51245" source-rpm="system-config-network-1.3.99.18-1.el5.src.rpm"/><source-package last-modified="1251383081" id="rhn-source-package-51246" source-rpm="kexec-tools-1.102pre-77.el5.src.rpm"/><source-package last-modified="1251383831" id="rhn-source-package-51247" source-rpm="net-snmp-5.3.2.2-7.el5.src.rpm"/><source-package last-modified="1251384753" id="rhn-source-package-51249" source-rpm="system-config-samba-1.2.41-5.el5.src.rpm"/><source-package last-modified="1251384803" id="rhn-source-package-51250" source-rpm="mcelog-0.9pre-1.27.el5.src.rpm"/><source-package last-modified="1251384904" id="rhn-source-package-51252" source-rpm="rpm-4.4.2.3-18.el5.src.rpm"/><source-package last-modified="1251385028" id="rhn-source-package-51253" source-rpm="cman-2.0.115-1.el5.src.rpm"/><source-package last-modified="1251385221" id="rhn-source-package-51254" source-rpm="evolution-data-server-1.12.3-18.el5.src.rpm"/><source-package last-modified="1251385906" id="rhn-source-package-51256" source-rpm="pth-2.0.7-6.el5.src.rpm"/><source-package last-modified="1251386048" id="rhn-source-package-51257" source-rpm="httpd-2.2.3-31.el5.src.rpm"/><source-package last-modified="1251386996" id="rhn-source-package-51260" source-rpm="module-init-tools-3.3-0.pre3.1.54.el5.src.rpm"/><source-package last-modified="1251387058" id="rhn-source-package-51261" source-rpm="findutils-4.2.27-6.el5.src.rpm"/><source-package last-modified="1251388299" id="rhn-source-package-51264" source-rpm="ethtool-6-3.el5.src.rpm"/><source-package last-modified="1251388769" id="rhn-source-package-51267" source-rpm="busybox-1.2.0-7.el5.src.rpm"/><source-package last-modified="1251389199" id="rhn-source-package-51268" source-rpm="iscsi-initiator-utils-6.2.0.871-0.10.el5.src.rpm"/><source-package last-modified="1251389370" id="rhn-source-package-51269" source-rpm="hal-0.5.8.1-52.el5.src.rpm"/><source-package last-modified="1251389709" id="rhn-source-package-51270" source-rpm="rhn-client-tools-0.4.20-9.el5.src.rpm"/><source-package last-modified="1251390130" id="rhn-source-package-51271" source-rpm="dhcpv6-1.0.10-17.el5.src.rpm"/><source-package last-modified="1251390242" id="rhn-source-package-51273" source-rpm="ksh-20080202-14.el5.src.rpm"/><source-package last-modified="1251390924" id="rhn-source-package-51276" source-rpm="amanda-2.5.0p2-8.el5.src.rpm"/><source-package last-modified="1251391067" id="rhn-source-package-51277" source-rpm="yum-3.2.22-20.el5.src.rpm"/><source-package last-modified="1251391969" id="rhn-source-package-51278" source-rpm="openib-1.4.1-3.el5.src.rpm"/><source-package last-modified="1251392244" id="rhn-source-package-51279" source-rpm="openssh-4.3p2-36.el5.src.rpm"/><source-package last-modified="1251393000" id="rhn-source-package-51282" source-rpm="coreutils-5.97-23.el5.src.rpm"/><source-package last-modified="1251393088" id="rhn-source-package-51283" source-rpm="xorg-x11-drv-qxl-0.0.4-1.1.el5.src.rpm"/><source-package last-modified="1251393231" id="rhn-source-package-51284" source-rpm="xorg-x11-drv-ati-6.6.3-3.27.el5.src.rpm"/><source-package last-modified="1251393279" id="rhn-source-package-51285" source-rpm="libksba-1.0.5-2.el5.src.rpm"/><source-package last-modified="1251394307" id="rhn-source-package-51286" source-rpm="rds-tools-1.4-2.el5.src.rpm"/><source-package last-modified="1251395284" id="rhn-source-package-51287" source-rpm="gtk-vnc-0.3.8-3.el5.src.rpm"/><source-package last-modified="1251395433" id="rhn-source-package-51288" source-rpm="redhat-release-5Server-5.4.0.3.src.rpm"/><source-package last-modified="1251396677" id="rhn-source-package-51290" source-rpm="dmraid-1.0.0.rc13-53.el5.src.rpm"/><source-package last-modified="1251397261" id="rhn-source-package-51291" source-rpm="policycoreutils-1.33.12-14.6.el5.src.rpm"/><source-package last-modified="1251397325" id="rhn-source-package-51292" source-rpm="libsemanage-1.9.1-4.4.el5.src.rpm"/><source-package last-modified="1251397720" id="rhn-source-package-51293" source-rpm="initscripts-8.45.30-2.el5.src.rpm"/><source-package last-modified="1251398606" id="rhn-source-package-51295" source-rpm="e4fsprogs-1.41.5-3.el5.src.rpm"/><source-package last-modified="1251399102" id="rhn-source-package-51296" source-rpm="redhat-release-notes-5Server-29.src.rpm"/><source-package last-modified="1251399725" id="rhn-source-package-51297" source-rpm="e2fsprogs-1.39-23.el5.src.rpm"/><source-package last-modified="1251449616" id="rhn-source-package-51299" source-rpm="xorg-x11-drv-nv-2.1.12-6.el5.src.rpm"/><source-package last-modified="1251449622" id="rhn-source-package-51301" source-rpm="libsdp-1.1.99-11.el5.src.rpm"/><source-package last-modified="1251449623" id="rhn-source-package-51302" source-rpm="mkinitrd-5.1.19.6-54.src.rpm"/><source-package last-modified="1251449625" id="rhn-source-package-51303" source-rpm="libdhcp-1.20-10.el5.src.rpm"/><source-package last-modified="1251449627" id="rhn-source-package-51304" source-rpm="iptables-1.3.5-5.3.el5.src.rpm"/><source-package last-modified="1251449629" id="rhn-source-package-51305" source-rpm="libhbaapi-2.2-4.el5.src.rpm"/><source-package last-modified="1251449634" id="rhn-source-package-51307" source-rpm="libassuan-1.0.4-5.el5.src.rpm"/><source-package last-modified="1251449639" id="rhn-source-package-51308" source-rpm="blktrace-1.0.0-6.el5.src.rpm"/><source-package last-modified="1251449642" id="rhn-source-package-51309" source-rpm="microcode_ctl-1.17-1.48.el5.src.rpm"/><source-package last-modified="1251449646" id="rhn-source-package-51310" source-rpm="opensm-3.2.6-2.el5.src.rpm"/><source-package last-modified="1251449649" id="rhn-source-package-51311" source-rpm="lvm2-2.02.46-8.el5.src.rpm"/><source-package last-modified="1251449650" id="rhn-source-package-51312" source-rpm="perftest-1.2-14.el5.src.rpm"/><source-package last-modified="1251449653" id="rhn-source-package-51313" source-rpm="nfs-utils-lib-1.0.8-7.6.el5.src.rpm"/><source-package last-modified="1251449690" id="rhn-source-package-51314" source-rpm="mvapich-1.1.0-0.3355.2.el5.src.rpm"/><source-package last-modified="1251449692" id="rhn-source-package-51315" source-rpm="nss_ldap-253-21.el5.src.rpm"/><source-package last-modified="1251449704" id="rhn-source-package-51317" source-rpm="gnupg2-2.0.10-3.el5.src.rpm"/><source-package last-modified="1251449708" id="rhn-source-package-51318" source-rpm="libgcrypt-1.4.4-5.el5.src.rpm"/><source-package last-modified="1251449711" id="rhn-source-package-51319" source-rpm="linuxwacom-0.7.8.3-6.el5.src.rpm"/><source-package last-modified="1251449719" id="rhn-source-package-51320" source-rpm="NetworkManager-0.7.0-9.el5.src.rpm"/><source-package last-modified="1251449726" id="rhn-source-package-51321" source-rpm="netpbm-10.35.58-8.el5.src.rpm"/><source-package last-modified="1251449728" id="rhn-source-package-51322" source-rpm="libibmad-1.2.3-1.el5.src.rpm"/><source-package last-modified="1251449731" id="rhn-source-package-51323" source-rpm="ecryptfs-utils-75-5.el5.src.rpm"/><source-package last-modified="1251449735" id="rhn-source-package-51325" source-rpm="librdmacm-1.0.8-5.el5.src.rpm"/><source-package last-modified="1251449737" id="rhn-source-package-51326" source-rpm="fipscheck-1.2.0-1.el5.src.rpm"/><source-package last-modified="1251449753" id="rhn-source-package-51327" source-rpm="pam-0.99.6.2-6.el5.src.rpm"/><source-package last-modified="1251449758" id="rhn-source-package-51329" source-rpm="libmlx4-1.0.1-2.el5.src.rpm"/><source-package last-modified="1251449761" id="rhn-source-package-51330" source-rpm="fuse-2.7.4-8.el5.src.rpm"/><source-package last-modified="1251449777" id="rhn-source-package-51332" source-rpm="openmpi-1.3.2-2.el5.src.rpm"/><source-package last-modified="1251449794" id="rhn-source-package-51333" source-rpm="cyrus-sasl-2.1.22-5.el5.src.rpm"/><source-package last-modified="1251449795" id="rhn-source-package-51334" source-rpm="acpid-1.0.4-9.el5.src.rpm"/><source-package last-modified="1251449814" id="rhn-source-package-51335" source-rpm="python-2.4.3-27.el5.src.rpm"/><source-package last-modified="1251449818" id="rhn-source-package-51336" source-rpm="libX11-1.0.3-11.el5.src.rpm"/><source-package last-modified="1251449821" id="rhn-source-package-51337" source-rpm="infiniband-diags-1.4.4-1.el5.src.rpm"/><source-package last-modified="1251449826" id="rhn-source-package-51338" source-rpm="dapl-2.0.19-2.el5.src.rpm"/><source-package last-modified="1251449837" id="rhn-source-package-51339" source-rpm="openhpi-2.14.0-5.el5.src.rpm"/><source-package last-modified="1251449840" id="rhn-source-package-51340" source-rpm="libnes-0.6-2.el5.src.rpm"/><source-package last-modified="1251449853" id="rhn-source-package-51341" source-rpm="gdm-2.16.0-56.el5.src.rpm"/><source-package last-modified="1251449855" id="rhn-source-package-51342" source-rpm="libsepol-1.15.2-2.el5.src.rpm"/><source-package last-modified="1251449859" id="rhn-source-package-51343" source-rpm="wget-1.11.4-2.el5.src.rpm"/><source-package last-modified="1251449868" id="rhn-source-package-51344" source-rpm="ibutils-1.2-10.el5.src.rpm"/><source-package last-modified="1251449870" id="rhn-source-package-51345" source-rpm="qlvnictools-0.0.1-11.el5.src.rpm"/><source-package last-modified="1251449872" id="rhn-source-package-51346" source-rpm="libibverbs-1.1.2-4.el5.src.rpm"/><source-package last-modified="1251449874" id="rhn-source-package-51347" source-rpm="udev-095-14.21.el5.src.rpm"/><source-package last-modified="1251449876" id="rhn-source-package-51348" source-rpm="device-mapper-1.02.32-1.el5.src.rpm"/><source-package last-modified="1251449880" id="rhn-source-package-51349" source-rpm="mstflint-1.4-1.el5.src.rpm"/><source-package last-modified="1251449917" id="rhn-source-package-51350" source-rpm="krb5-1.6.1-36.el5.src.rpm"/><source-package last-modified="1251449920" id="rhn-source-package-51351" source-rpm="xkeyboard-config-0.8-9.el5.src.rpm"/><source-package last-modified="1251450034" id="rhn-source-package-51353" source-rpm="samba-3.0.33-3.14.el5.src.rpm"/><source-package last-modified="1251450040" id="rhn-source-package-51354" source-rpm="libibcommon-1.1.2-1.el5.src.rpm"/><source-package last-modified="1251450042" id="rhn-source-package-51355" source-rpm="libibumad-1.2.3-1.el5.src.rpm"/><source-package last-modified="1251450048" id="rhn-source-package-51357" source-rpm="mpitests-3.1-3.el5.src.rpm"/><source-package last-modified="1251450049" id="rhn-source-package-51358" source-rpm="srptools-0.0.4-6.el5.src.rpm"/><source-package last-modified="1251450058" id="rhn-source-package-51359" source-rpm="cvs-1.11.22-7.el5.src.rpm"/><source-package last-modified="1251450110" id="rhn-source-package-51361" source-rpm="mvapich2-1.2-0.p1.3.el5.src.rpm"/><source-package last-modified="1251450113" id="rhn-source-package-51362" source-rpm="pinentry-0.7.3-3.el5.src.rpm"/><source-package last-modified="1251450114" id="rhn-source-package-51363" source-rpm="fcoe-utils-1.0.7-4.el5.src.rpm"/><source-package last-modified="1251450117" id="rhn-source-package-51364" source-rpm="pdksh-5.2.14-36.el5.src.rpm"/><source-package last-modified="1251450122" id="rhn-source-package-51365" source-rpm="totem-2.16.7-6.el5.src.rpm"/><source-package last-modified="1251450123" id="rhn-source-package-51366" source-rpm="python-pyblock-0.26-4.el5.src.rpm"/><source-package last-modified="1251450157" id="rhn-source-package-51367" source-rpm="gdb-6.8-37.el5.src.rpm"/><source-package last-modified="1251450159" id="rhn-source-package-51368" source-rpm="hmaccalc-0.9.6-1.el5.src.rpm"/><source-package last-modified="1251450162" id="rhn-source-package-51369" source-rpm="libipathverbs-1.1-14.el5.src.rpm"/><source-package last-modified="1251450163" id="rhn-source-package-51370" source-rpm="tftp-0.49-2.src.rpm"/><source-package last-modified="1251450166" id="rhn-source-package-51371" source-rpm="dhcp-3.0.5-21.el5.src.rpm"/><source-package last-modified="1251450168" id="rhn-source-package-51372" source-rpm="vsftpd-2.0.5-16.el5.src.rpm"/><source-package last-modified="1251450170" id="rhn-source-package-51373" source-rpm="mlocate-0.15-1.el5.2.src.rpm"/><source-package last-modified="1251450172" id="rhn-source-package-51374" source-rpm="mod_nss-1.0.3-8.el5.src.rpm"/><source-package last-modified="1251450174" id="rhn-source-package-51375" source-rpm="libhbalinux-1.0.7-3.el5.src.rpm"/><source-package last-modified="1251450177" id="rhn-source-package-51376" source-rpm="nfs-utils-1.0.9-42.el5.src.rpm"/><source-package last-modified="1251450181" id="rhn-source-package-51377" source-rpm="libibcm-1.0.4-3.el5.src.rpm"/><source-package last-modified="1251450182" id="rhn-source-package-51378" source-rpm="ofed-docs-1.4.1-2.el5.src.rpm"/><source-package last-modified="1251450185" id="rhn-source-package-51379" source-rpm="strace-4.5.18-5.el5.src.rpm"/><source-package last-modified="1251450193" id="rhn-source-package-51380" source-rpm="systemtap-0.9.7-5.el5.src.rpm"/><source-package last-modified="1251450197" id="rhn-source-package-51382" source-rpm="dmidecode-2.9-1.el5.src.rpm"/><source-package last-modified="1251450199" id="rhn-source-package-51383" source-rpm="libpciaccess-0.10.5-2.el5.src.rpm"/><source-package last-modified="1251450200" id="rhn-source-package-51384" source-rpm="watchdog-5.6-1.el5.src.rpm"/><source-package last-modified="1251450201" id="rhn-source-package-51385" source-rpm="rhnlib-2.2.7-2.el5.src.rpm"/><source-package last-modified="1251450205" id="rhn-source-package-51387" source-rpm="mpi-selector-1.0.2-1.el5.src.rpm"/><source-package last-modified="1251450215" id="rhn-source-package-51388" source-rpm="cups-1.3.7-11.el5.src.rpm"/><source-package last-modified="1251450345" id="rhn-source-package-51389" source-rpm="gcc44-4.4.0-6.el5.src.rpm"/><source-package last-modified="1251450347" id="rhn-source-package-51390" source-rpm="qperf-0.4.4-3.el5.src.rpm"/><source-package last-modified="1251450351" id="rhn-source-package-51391" source-rpm="lftp-3.7.11-4.el5.src.rpm"/><source-package last-modified="1251450432" id="rhn-source-package-51392" source-rpm="gcc-4.1.2-46.el5.src.rpm"/><source-package last-modified="1251450436" id="rhn-source-package-51394" source-rpm="libselinux-1.33.4-5.5.el5.src.rpm"/><source-package last-modified="1251450438" id="rhn-source-package-51395" source-rpm="libmthca-1.0.5-4.el5.src.rpm"/><source-package last-modified="1251450439" id="rhn-source-package-51396" source-rpm="ibsim-0.5-1.el5.src.rpm"/><source-package last-modified="1251450443" id="rhn-source-package-51397" source-rpm="xorg-x11-drv-i810-1.6.5-9.25.el5.src.rpm"/><source-package last-modified="1251450459" id="rhn-source-package-51398" source-rpm="tog-pegasus-2.7.2-1.el5.src.rpm"/><source-package last-modified="1251450463" id="rhn-source-package-51399" source-rpm="audit-1.7.13-2.el5.src.rpm"/><source-package last-modified="1251450467" id="rhn-source-package-51400" source-rpm="mysql-connector-odbc-3.51.26r1127-1.el5.src.rpm"/><source-package last-modified="1251450540" id="rhn-source-package-51404" source-rpm="ghostscript-8.15.2-9.11.el5.src.rpm"/><source-package last-modified="1251899746" id="rhn-source-package-51422" source-rpm="ktune-0.2-4.el5_4.3.src.rpm"/><source-package last-modified="1252421014" id="rhn-source-package-51439" source-rpm="fetchmail-6.3.6-1.1.el5_3.1.src.rpm"/><source-package last-modified="1252423508" id="rhn-source-package-51440" source-rpm="xmlsec1-1.2.9-8.1.1.src.rpm"/><source-package last-modified="1252537523" id="rhn-source-package-51552" source-rpm="nspr-4.7.5-1.el5_4.src.rpm"/><source-package last-modified="1252537523" id="rhn-source-package-51553" source-rpm="firefox-3.0.14-1.el5_4.src.rpm"/><source-package last-modified="1252537523" id="rhn-source-package-51554" source-rpm="xulrunner-1.9.0.14-1.el5_4.src.rpm"/><source-package last-modified="1252608416" id="rhn-source-package-51603" source-rpm="cman-2.0.115-1.el5_4.2.src.rpm"/><source-package last-modified="1252657160" id="rhn-source-package-51605" source-rpm="net-snmp-5.3.2.2-7.el5_4.2.src.rpm"/><source-package last-modified="1253198035" id="rhn-source-package-51629" source-rpm="freeradius-1.1.3-1.5.el5_4.src.rpm"/><source-package last-modified="1253545119" id="rhn-source-package-51633" source-rpm="neon-0.25.5-10.el5_4.1.src.rpm"/><source-package last-modified="1253610673" id="rhn-source-package-51640" source-rpm="dmidecode-2.10-2.el5.src.rpm"/><source-package last-modified="1253716552" id="rhn-source-package-51648" source-rpm="cyrus-imapd-2.3.7-7.el5_4.3.src.rpm"/><source-package last-modified="1253818201" id="rhn-source-package-51657" source-rpm="newt-0.52.2-12.el5_4.1.src.rpm"/><source-package last-modified="1254210412" id="rhn-source-package-51668" source-rpm="kdelibs-3.5.4-22.el5_4.1.src.rpm"/><source-package last-modified="1254252004" id="rhn-source-package-51670" source-rpm="kernel-2.6.18-164.2.1.el5.src.rpm"/><source-package last-modified="1254298538" id="rhn-source-package-51672" source-rpm="tzdata-2009m-1.el5.src.rpm"/><source-package last-modified="1254299200" id="rhn-source-package-51674" source-rpm="autofs-5.0.1-0.rc2.131.el5_4.1.src.rpm"/><source-package last-modified="1254323011" id="rhn-source-package-51676" source-rpm="openssh-4.3p2-36.el5_4.2.src.rpm"/><source-package last-modified="1254416076" id="rhn-source-package-51678" source-rpm="elinks-0.11.1-6.el5_4.1.src.rpm"/><source-package last-modified="1254419558" id="rhn-source-package-51679" source-rpm="xen-3.0.3-94.el5_4.1.src.rpm"/><source-package last-modified="1254490262" id="rhn-source-package-51751" source-rpm="openais-0.80.6-8.el5_4.1.src.rpm"/><source-package last-modified="1254726884" id="rhn-source-package-51754" source-rpm="lvm2-2.02.46-8.el5_4.1.src.rpm"/><source-package last-modified="1254928154" id="rhn-source-package-51764" source-rpm="postgresql-8.1.18-2.el5_4.1.src.rpm"/><source-package last-modified="1254997670" id="rhn-source-package-51767" source-rpm="OpenIPMI-2.0.16-5.el5_4.1.src.rpm"/><source-package last-modified="1255031432" id="rhn-source-package-51775" source-rpm="squirrelmail-1.4.8-5.el5_4.10.src.rpm"/><source-package last-modified="1255418970" id="rhn-source-package-51785" source-rpm="tcsh-6.14-14.el5_4.2.src.rpm"/><source-package last-modified="1255421490" id="rhn-source-package-51786" source-rpm="selinux-policy-2.4.6-255.el5_4.1.src.rpm"/><source-package last-modified="1255591926" id="rhn-source-package-51815" source-rpm="coreutils-5.97-23.el5_4.1.src.rpm"/><source-package last-modified="1255596254" id="rhn-source-package-51820" source-rpm="poppler-0.5.4-4.4.el5_4.11.src.rpm"/><source-package last-modified="1255596858" id="rhn-source-package-51822" source-rpm="cups-1.3.7-11.el5_4.3.src.rpm"/><source-package last-modified="1255609237" id="rhn-source-package-51823" source-rpm="xen-3.0.3-94.el5_4.2.src.rpm"/></source-packages><rhn-channel-errata><erratum last-modified="1173884075" id="rhn-erratum-5388" advisory-name="RHSA-2007:0075"/><erratum last-modified="1173884812" id="rhn-erratum-5390" advisory-name="RHSA-2007:0107"/><erratum last-modified="1173884788" id="rhn-erratum-5392" advisory-name="RHEA-2007:0105"/><erratum last-modified="1173885139" id="rhn-erratum-5393" advisory-name="RHBA-2007:0109"/><erratum last-modified="1173884466" id="rhn-erratum-5394" advisory-name="RHBA-2007:0098"/><erratum last-modified="1173884228" id="rhn-erratum-5396" advisory-name="RHSA-2007:0082"/><erratum last-modified="1173884120" id="rhn-erratum-5397" advisory-name="RHSA-2007:0057"/><erratum last-modified="1173884286" id="rhn-erratum-5398" advisory-name="RHSA-2007:0061"/><erratum last-modified="1173884494" id="rhn-erratum-5399" advisory-name="RHSA-2007:0097"/><erratum last-modified="1173885169" id="rhn-erratum-5400" advisory-name="RHBA-2007:0113"/><erratum last-modified="1173885206" id="rhn-erratum-5401" advisory-name="RHSA-2007:0114"/><erratum last-modified="1173884509" id="rhn-erratum-5402" advisory-name="RHSA-2007:0068"/><erratum last-modified="1173884663" id="rhn-erratum-5403" advisory-name="RHBA-2007:0103"/><erratum last-modified="1173885044" id="rhn-erratum-5404" advisory-name="RHBA-2007:0100"/><erratum last-modified="1173884681" id="rhn-erratum-5405" advisory-name="RHSA-2007:0099"/><erratum last-modified="1173885203" id="rhn-erratum-5406" advisory-name="RHEA-2007:0115"/><erratum last-modified="1173885075" id="rhn-erratum-5407" advisory-name="RHBA-2007:0110"/><erratum last-modified="1173887436" id="rhn-erratum-5411" advisory-name="RHEA-2007:0121"/><erratum last-modified="1173889743" id="rhn-erratum-5412" advisory-name="RHSA-2007:0066"/><erratum last-modified="1174644491" id="rhn-erratum-5427" advisory-name="RHSA-2007:0124"/><erratum last-modified="1174688135" id="rhn-erratum-5428" advisory-name="RHEA-2007:0128"/><erratum last-modified="1175179674" id="rhn-erratum-5431" advisory-name="RHBA-2007:0129"/><erratum last-modified="1175624424" id="rhn-erratum-5443" advisory-name="RHSA-2007:0095"/><erratum last-modified="1175625002" id="rhn-erratum-5444" advisory-name="RHSA-2007:0132"/><erratum last-modified="1175625829" id="rhn-erratum-5445" advisory-name="RHSA-2007:0127"/><erratum last-modified="1175626420" id="rhn-erratum-5447" advisory-name="RHSA-2007:0131"/><erratum last-modified="1176723344" id="rhn-erratum-5465" advisory-name="RHSA-2007:0150"/><erratum last-modified="1176724173" id="rhn-erratum-5466" advisory-name="RHSA-2007:0123"/><erratum last-modified="1176738127" id="rhn-erratum-5470" advisory-name="RHSA-2007:0157"/><erratum last-modified="1177062426" id="rhn-erratum-5475" advisory-name="RHSA-2007:0153"/><erratum last-modified="1177951006" id="rhn-erratum-5619" advisory-name="RHSA-2007:0169"/><erratum last-modified="1199735207" id="rhn-erratum-5645" advisory-name="RHSA-2007:0336"/><erratum last-modified="1178639124" id="rhn-erratum-5646" advisory-name="RHSA-2007:0348"/><erratum last-modified="1178716315" id="rhn-erratum-5647" advisory-name="RHSA-2007:0346"/><erratum last-modified="1179496330" id="rhn-erratum-5655" advisory-name="RHBA-2007:0161"/><erratum last-modified="1199735373" id="rhn-erratum-5656" advisory-name="RHSA-2007:0338"/><erratum last-modified="1199906533" id="rhn-erratum-5676" advisory-name="RHSA-2007:0354"/><erratum last-modified="1179161981" id="rhn-erratum-5677" advisory-name="RHSA-2007:0327"/><erratum last-modified="1179338483" id="rhn-erratum-5689" advisory-name="RHBA-2007:0352"/><erratum last-modified="1179340366" id="rhn-erratum-5690" advisory-name="RHSA-2007:0347"/><erratum last-modified="1179411433" id="rhn-erratum-5694" advisory-name="RHSA-2007:0342"/><erratum last-modified="1199735437" id="rhn-erratum-5695" advisory-name="RHSA-2007:0345"/><erratum last-modified="1199742173" id="rhn-erratum-5697" advisory-name="RHSA-2007:0358"/><erratum last-modified="1199743831" id="rhn-erratum-5698" advisory-name="RHSA-2007:0356"/><erratum last-modified="1199735668" id="rhn-erratum-5707" advisory-name="RHSA-2007:0343"/><erratum last-modified="1180011522" id="rhn-erratum-5710" advisory-name="RHBA-2007:0365"/><erratum last-modified="1180516364" id="rhn-erratum-5718" advisory-name="RHSA-2007:0344"/><erratum last-modified="1199742671" id="rhn-erratum-5720" advisory-name="RHSA-2007:0389"/><erratum last-modified="1199742298" id="rhn-erratum-5721" advisory-name="RHSA-2007:0391"/><erratum last-modified="1199897038" id="rhn-erratum-5724" advisory-name="RHSA-2007:0400"/><erratum last-modified="1199743349" id="rhn-erratum-5728" advisory-name="RHSA-2007:0386"/><erratum last-modified="1199743812" id="rhn-erratum-5730" advisory-name="RHSA-2007:0385"/><erratum last-modified="1199893698" id="rhn-erratum-5800" advisory-name="RHSA-2007:0403"/><erratum last-modified="1199900997" id="rhn-erratum-5806" advisory-name="RHSA-2007:0494"/><erratum last-modified="1199891884" id="rhn-erratum-5807" advisory-name="RHSA-2007:0492"/><erratum last-modified="1181815032" id="rhn-erratum-5809" advisory-name="RHSA-2007:0497"/><erratum last-modified="1199729488" id="rhn-erratum-5812" advisory-name="RHSA-2007:0395"/><erratum last-modified="1181832884" id="rhn-erratum-5816" advisory-name="RHSA-2007:0376"/><erratum last-modified="1199744532" id="rhn-erratum-5817" advisory-name="RHSA-2007:0501"/><erratum last-modified="1182155439" id="rhn-erratum-5820" advisory-name="RHBA-2007:0504"/><erratum last-modified="1182778752" id="rhn-erratum-5825" advisory-name="RHSA-2007:0510"/><erratum last-modified="1182871332" id="rhn-erratum-5833" advisory-name="RHSA-2007:0556"/><erratum last-modified="1199744251" id="rhn-erratum-5835" advisory-name="RHSA-2007:0562"/><erratum last-modified="1211378384" id="rhn-erratum-5836" advisory-name="RHBA-2007:0373"/><erratum last-modified="1211378384" id="rhn-erratum-5837" advisory-name="RHBA-2007:0370"/><erratum last-modified="1211378431" id="rhn-erratum-5838" advisory-name="RHBA-2007:0357"/><erratum last-modified="1211378384" id="rhn-erratum-5839" advisory-name="RHBA-2007:0339"/><erratum last-modified="1211378384" id="rhn-erratum-5840" advisory-name="RHBA-2007:0333"/><erratum last-modified="1211378384" id="rhn-erratum-5842" advisory-name="RHBA-2007:0496"/><erratum last-modified="1211378384" id="rhn-erratum-5843" advisory-name="RHBA-2007:0407"/><erratum last-modified="1211378384" id="rhn-erratum-5844" advisory-name="RHEA-2007:0399"/><erratum last-modified="1211378384" id="rhn-erratum-5845" advisory-name="RHBA-2007:0382"/><erratum last-modified="1183016029" id="rhn-erratum-5854" advisory-name="RHSA-2007:0559"/><erratum last-modified="1211378384" id="rhn-erratum-5859" advisory-name="RHEA-2007:0629"/><erratum last-modified="1211378384" id="rhn-erratum-5860" advisory-name="RHBA-2007:0622"/><erratum last-modified="1211378384" id="rhn-erratum-5861" advisory-name="RHBA-2007:0585"/><erratum last-modified="1211378431" id="rhn-erratum-5862" advisory-name="RHBA-2007:0517"/><erratum last-modified="1211378431" id="rhn-erratum-5863" advisory-name="RHBA-2007:0515"/><erratum last-modified="1184040025" id="rhn-erratum-5865" advisory-name="RHSA-2007:0595"/><erratum last-modified="1184231207" id="rhn-erratum-5870" advisory-name="RHSA-2007:0674"/><erratum last-modified="1184231932" id="rhn-erratum-5871" advisory-name="RHSA-2007:0520"/><erratum last-modified="1184668567" id="rhn-erratum-5877" advisory-name="RHSA-2007:0569"/><erratum last-modified="1211378384" id="rhn-erratum-5879" advisory-name="RHBA-2007:0529"/><erratum last-modified="1211378384" id="rhn-erratum-5880" advisory-name="RHBA-2007:0527"/><erratum last-modified="1211378431" id="rhn-erratum-5881" advisory-name="RHBA-2007:0495"/><erratum last-modified="1211378384" id="rhn-erratum-5887" advisory-name="RHBA-2007:0693"/><erratum last-modified="1199899221" id="rhn-erratum-5890" advisory-name="RHSA-2007:0724"/><erratum last-modified="1184852000" id="rhn-erratum-5891" advisory-name="RHEA-2007:0689"/><erratum last-modified="1199898988" id="rhn-erratum-5892" advisory-name="RHSA-2007:0740"/><erratum last-modified="1199746499" id="rhn-erratum-5915" advisory-name="RHSA-2007:0720"/><erratum last-modified="1185821923" id="rhn-erratum-5916" advisory-name="RHSA-2007:0732"/><erratum last-modified="1199746097" id="rhn-erratum-5919" advisory-name="RHSA-2007:0721"/><erratum last-modified="1199734585" id="rhn-erratum-5920" advisory-name="RHSA-2007:0731"/><erratum last-modified="1186514400" id="rhn-erratum-5928" advisory-name="RHSA-2007:0777"/><erratum last-modified="1199753089" id="rhn-erratum-5960" advisory-name="RHSA-2007:0860"/><erratum last-modified="1199753000" id="rhn-erratum-5969" advisory-name="RHSA-2007:0875"/><erratum last-modified="1188914573" id="rhn-erratum-5970" advisory-name="RHSA-2007:0539"/><erratum last-modified="1199750666" id="rhn-erratum-5973" advisory-name="RHSA-2007:0873"/><erratum last-modified="1188929617" id="rhn-erratum-5975" advisory-name="RHSA-2007:0858"/><erratum last-modified="1189167282" id="rhn-erratum-5982" advisory-name="RHSA-2007:0892"/><erratum last-modified="1189674787" id="rhn-erratum-5984" advisory-name="RHSA-2007:0705"/><erratum last-modified="1199750631" id="rhn-erratum-5985" advisory-name="RHSA-2007:0883"/><erratum last-modified="1199753060" id="rhn-erratum-5992" advisory-name="RHSA-2007:0845"/><erratum last-modified="1199749936" id="rhn-erratum-5993" advisory-name="RHSA-2007:0890"/><erratum last-modified="1199733043" id="rhn-erratum-5998" advisory-name="RHSA-2007:0513"/><erratum last-modified="1190795252" id="rhn-erratum-5999" advisory-name="RHSA-2007:0871"/><erratum last-modified="1190924497" id="rhn-erratum-6027" advisory-name="RHSA-2007:0936"/><erratum last-modified="1191358414" id="rhn-erratum-6038" advisory-name="RHSA-2007:0323"/><erratum last-modified="1191358509" id="rhn-erratum-6039" advisory-name="RHSA-2007:0951"/><erratum last-modified="1199814823" id="rhn-erratum-6040" advisory-name="RHSA-2007:0933"/><erratum last-modified="1191510370" id="rhn-erratum-6043" advisory-name="RHEA-2007:0928"/><erratum last-modified="1199814624" id="rhn-erratum-6045" advisory-name="RHSA-2007:0905"/><erratum last-modified="1199841433" id="rhn-erratum-6048" advisory-name="RHSA-2007:0909"/><erratum last-modified="1192127161" id="rhn-erratum-6052" advisory-name="RHSA-2007:0960"/><erratum last-modified="1192198966" id="rhn-erratum-6054" advisory-name="RHSA-2007:0964"/><erratum last-modified="1199839438" id="rhn-erratum-6056" advisory-name="RHSA-2007:0979"/><erratum last-modified="1193050357" id="rhn-erratum-6060" advisory-name="RHSA-2007:0940"/><erratum last-modified="1199814764" id="rhn-erratum-6061" advisory-name="RHSA-2007:0975"/><erratum last-modified="1199840209" id="rhn-erratum-6065" advisory-name="RHSA-2007:0992"/><erratum last-modified="1194449155" id="rhn-erratum-6071" advisory-name="RHBA-2007:0383"/><erratum last-modified="1194449155" id="rhn-erratum-6072" advisory-name="RHBA-2007:0499"/><erratum last-modified="1194449155" id="rhn-erratum-6073" advisory-name="RHEA-2007:0374"/><erratum last-modified="1194449155" id="rhn-erratum-6074" advisory-name="RHBA-2007:0500"/><erratum last-modified="1194449155" id="rhn-erratum-6075" advisory-name="RHBA-2007:0498"/><erratum last-modified="1194449155" id="rhn-erratum-6076" advisory-name="RHBA-2007:0381"/><erratum last-modified="1194449155" id="rhn-erratum-6078" advisory-name="RHBA-2007:0325"/><erratum last-modified="1194449155" id="rhn-erratum-6079" advisory-name="RHEA-2007:0900"/><erratum last-modified="1194449155" id="rhn-erratum-6080" advisory-name="RHEA-2007:0899"/><erratum last-modified="1194449155" id="rhn-erratum-6081" advisory-name="RHEA-2007:0901"/><erratum last-modified="1194449155" id="rhn-erratum-6082" advisory-name="RHEA-2007:0874"/><erratum last-modified="1194449155" id="rhn-erratum-6083" advisory-name="RHEA-2007:0882"/><erratum last-modified="1194449155" id="rhn-erratum-6084" advisory-name="RHEA-2007:0855"/><erratum last-modified="1194449155" id="rhn-erratum-6085" advisory-name="RHEA-2007:0854"/><erratum last-modified="1194449155" id="rhn-erratum-6086" advisory-name="RHBA-2007:0887"/><erratum last-modified="1194449155" id="rhn-erratum-6087" advisory-name="RHBA-2007:0659"/><erratum last-modified="1194531234" id="rhn-erratum-6088" advisory-name="RHBA-2007:0826"/><erratum last-modified="1194449155" id="rhn-erratum-6090" advisory-name="RHBA-2007:0821"/><erratum last-modified="1194449155" id="rhn-erratum-6091" advisory-name="RHBA-2007:0692"/><erratum last-modified="1194449155" id="rhn-erratum-6092" advisory-name="RHEA-2007:0852"/><erratum last-modified="1194449155" id="rhn-erratum-6094" advisory-name="RHBA-2007:0676"/><erratum last-modified="1194449155" id="rhn-erratum-6095" advisory-name="RHBA-2007:0719"/><erratum last-modified="1194446118" id="rhn-erratum-6096" advisory-name="RHBA-2007:0836"/><erratum last-modified="1194449155" id="rhn-erratum-6097" advisory-name="RHBA-2007:0760"/><erratum last-modified="1194449155" id="rhn-erratum-6099" advisory-name="RHBA-2007:0718"/><erratum last-modified="1194449155" id="rhn-erratum-6101" advisory-name="RHBA-2007:0712"/><erratum last-modified="1194449155" id="rhn-erratum-6102" advisory-name="RHBA-2007:0663"/><erratum last-modified="1194449155" id="rhn-erratum-6103" advisory-name="RHEA-2007:0678"/><erratum last-modified="1194449155" id="rhn-erratum-6104" advisory-name="RHEA-2007:0893"/><erratum last-modified="1194449155" id="rhn-erratum-6105" advisory-name="RHBA-2007:0561"/><erratum last-modified="1194449155" id="rhn-erratum-6106" advisory-name="RHBA-2007:0560"/><erratum last-modified="1194449155" id="rhn-erratum-6107" advisory-name="RHBA-2007:0554"/><erratum last-modified="1194449155" id="rhn-erratum-6108" advisory-name="RHEA-2007:0568"/><erratum last-modified="1194449155" id="rhn-erratum-6109" advisory-name="RHBA-2007:0553"/><erratum last-modified="1194476961" id="rhn-erratum-6110" advisory-name="RHBA-2007:0563"/><erratum last-modified="1194449155" id="rhn-erratum-6111" advisory-name="RHEA-2007:0567"/><erratum last-modified="1194531182" id="rhn-erratum-6112" advisory-name="RHBA-2007:0579"/><erratum last-modified="1194449155" id="rhn-erratum-6113" advisory-name="RHBA-2007:0575"/><erratum last-modified="1194449155" id="rhn-erratum-6114" advisory-name="RHBA-2007:0599"/><erratum last-modified="1194482853" id="rhn-erratum-6115" advisory-name="RHBA-2007:0959"/><erratum last-modified="1194449155" id="rhn-erratum-6116" advisory-name="RHBA-2007:0397"/><erratum last-modified="1194446118" id="rhn-erratum-6117" advisory-name="RHEA-2007:0601"/><erratum last-modified="1194449155" id="rhn-erratum-6119" advisory-name="RHBA-2007:0603"/><erratum last-modified="1194449155" id="rhn-erratum-6120" advisory-name="RHBA-2007:0602"/><erratum last-modified="1194449155" id="rhn-erratum-6124" advisory-name="RHEA-2007:0551"/><erratum last-modified="1194449155" id="rhn-erratum-6126" advisory-name="RHEA-2007:0641"/><erratum last-modified="1194449155" id="rhn-erratum-6129" advisory-name="RHEA-2007:0645"/><erratum last-modified="1194449155" id="rhn-erratum-6130" advisory-name="RHBA-2007:0656"/><erratum last-modified="1194449155" id="rhn-erratum-6132" advisory-name="RHBA-2007:0511"/><erratum last-modified="1194449155" id="rhn-erratum-6136" advisory-name="RHEA-2007:0630"/><erratum last-modified="1194446125" id="rhn-erratum-6137" advisory-name="RHEA-2007:0635"/><erratum last-modified="1194449155" id="rhn-erratum-6138" advisory-name="RHEA-2007:0607"/><erratum last-modified="1194449155" id="rhn-erratum-6139" advisory-name="RHEA-2007:0524"/><erratum last-modified="1194446118" id="rhn-erratum-6140" advisory-name="RHEA-2007:0587"/><erratum last-modified="1194449155" id="rhn-erratum-6142" advisory-name="RHEA-2007:0583"/><erratum last-modified="1194449155" id="rhn-erratum-6144" advisory-name="RHBA-2007:0598"/><erratum last-modified="1194449155" id="rhn-erratum-6146" advisory-name="RHEA-2007:0531"/><erratum last-modified="1194449155" id="rhn-erratum-6148" advisory-name="RHBA-2007:0620"/><erratum last-modified="1194449155" id="rhn-erratum-6149" advisory-name="RHBA-2007:0548"/><erratum last-modified="1194449155" id="rhn-erratum-6150" advisory-name="RHEA-2007:0521"/><erratum last-modified="1194449155" id="rhn-erratum-6151" advisory-name="RHBA-2007:0549"/><erratum last-modified="1194449155" id="rhn-erratum-6152" advisory-name="RHBA-2007:0541"/><erratum last-modified="1194449155" id="rhn-erratum-6153" advisory-name="RHBA-2007:0651"/><erratum last-modified="1194531406" id="rhn-erratum-6154" advisory-name="RHBA-2007:0544"/><erratum last-modified="1194449155" id="rhn-erratum-6156" advisory-name="RHBA-2007:0834"/><erratum last-modified="1194449155" id="rhn-erratum-6157" advisory-name="RHBA-2007:0632"/><erratum last-modified="1194449155" id="rhn-erratum-6158" advisory-name="RHBA-2007:0523"/><erratum last-modified="1194449155" id="rhn-erratum-6159" advisory-name="RHBA-2007:0610"/><erratum last-modified="1194449155" id="rhn-erratum-6160" advisory-name="RHBA-2007:0545"/><erratum last-modified="1194449155" id="rhn-erratum-6161" advisory-name="RHBA-2007:0538"/><erratum last-modified="1194449155" id="rhn-erratum-6162" advisory-name="RHBA-2007:0621"/><erratum last-modified="1194449155" id="rhn-erratum-6163" advisory-name="RHBA-2007:0536"/><erratum last-modified="1194449155" id="rhn-erratum-6164" advisory-name="RHBA-2007:0550"/><erratum last-modified="1194449155" id="rhn-erratum-6166" advisory-name="RHBA-2007:0522"/><erratum last-modified="1194449155" id="rhn-erratum-6168" advisory-name="RHBA-2007:0516"/><erratum last-modified="1194449155" id="rhn-erratum-6169" advisory-name="RHBA-2007:0614"/><erratum last-modified="1194449155" id="rhn-erratum-6170" advisory-name="RHBA-2007:0618"/><erratum last-modified="1194449155" id="rhn-erratum-6171" advisory-name="RHEA-2007:0617"/><erratum last-modified="1194449155" id="rhn-erratum-6172" advisory-name="RHBA-2007:0626"/><erratum last-modified="1194449155" id="rhn-erratum-6173" advisory-name="RHBA-2007:0594"/><erratum last-modified="1194449155" id="rhn-erratum-6174" advisory-name="RHBA-2007:0590"/><erratum last-modified="1194452816" id="rhn-erratum-6175" advisory-name="RHSA-2007:0710"/><erratum last-modified="1194452863" id="rhn-erratum-6176" advisory-name="RHSA-2007:0746"/><erratum last-modified="1194452580" id="rhn-erratum-6177" advisory-name="RHSA-2007:0631"/><erratum last-modified="1194452300" id="rhn-erratum-6178" advisory-name="RHSA-2007:0368"/><erratum last-modified="1194453594" id="rhn-erratum-6179" advisory-name="RHSA-2007:0542"/><erratum last-modified="1194449155" id="rhn-erratum-6181" advisory-name="RHBA-2007:0573"/><erratum last-modified="1194449155" id="rhn-erratum-6182" advisory-name="RHEA-2007:0653"/><erratum last-modified="1194449155" id="rhn-erratum-6183" advisory-name="RHBA-2007:0748"/><erratum last-modified="1194452355" id="rhn-erratum-6184" advisory-name="RHSA-2007:0540"/><erratum last-modified="1194531242" id="rhn-erratum-6185" advisory-name="RHEA-2007:0658"/><erratum last-modified="1194449155" id="rhn-erratum-6186" advisory-name="RHEA-2007:0609"/><erratum last-modified="1194449155" id="rhn-erratum-6189" advisory-name="RHBA-2007:0591"/><erratum last-modified="1194449155" id="rhn-erratum-6191" advisory-name="RHBA-2007:0537"/><erratum last-modified="1194449155" id="rhn-erratum-6192" advisory-name="RHBA-2007:0572"/><erratum last-modified="1194449155" id="rhn-erratum-6193" advisory-name="RHEA-2007:0715"/><erratum last-modified="1194449155" id="rhn-erratum-6195" advisory-name="RHEA-2007:0649"/><erratum last-modified="1194449155" id="rhn-erratum-6196" advisory-name="RHEA-2007:0648"/><erratum last-modified="1194449155" id="rhn-erratum-6197" advisory-name="RHBA-2007:0596"/><erratum last-modified="1194449155" id="rhn-erratum-6198" advisory-name="RHBA-2007:0597"/><erratum last-modified="1194449155" id="rhn-erratum-6199" advisory-name="RHBA-2007:0634"/><erratum last-modified="1194446118" id="rhn-erratum-6201" advisory-name="RHEA-2007:0592"/><erratum last-modified="1194531426" id="rhn-erratum-6202" advisory-name="RHBA-2007:0574"/><erratum last-modified="1194449155" id="rhn-erratum-6206" advisory-name="RHBA-2007:0644"/><erratum last-modified="1194446118" id="rhn-erratum-6208" advisory-name="RHEA-2007:0657"/><erratum last-modified="1194449155" id="rhn-erratum-6209" advisory-name="RHEA-2007:0528"/><erratum last-modified="1194449155" id="rhn-erratum-6210" advisory-name="RHBA-2007:0628"/><erratum last-modified="1194449155" id="rhn-erratum-6211" advisory-name="RHBA-2007:0514"/><erratum last-modified="1194449155" id="rhn-erratum-6212" advisory-name="RHBA-2007:0543"/><erratum last-modified="1194449155" id="rhn-erratum-6213" advisory-name="RHBA-2007:0744"/><erratum last-modified="1194449155" id="rhn-erratum-6214" advisory-name="RHBA-2007:0581"/><erratum last-modified="1194449155" id="rhn-erratum-6215" advisory-name="RHBA-2007:0661"/><erratum last-modified="1194449155" id="rhn-erratum-6216" advisory-name="RHBA-2007:0480"/><erratum last-modified="1194449155" id="rhn-erratum-6217" advisory-name="RHBA-2007:0633"/><erratum last-modified="1194449155" id="rhn-erratum-6218" advisory-name="RHBA-2007:0404"/><erratum last-modified="1194449155" id="rhn-erratum-6219" advisory-name="RHBA-2007:0619"/><erratum last-modified="1194449155" id="rhn-erratum-6220" advisory-name="RHBA-2007:0565"/><erratum last-modified="1194449155" id="rhn-erratum-6221" advisory-name="RHBA-2007:0564"/><erratum last-modified="1194449155" id="rhn-erratum-6222" advisory-name="RHBA-2007:0571"/><erratum last-modified="1194449155" id="rhn-erratum-6223" advisory-name="RHEA-2007:0638"/><erratum last-modified="1194449155" id="rhn-erratum-6224" advisory-name="RHEA-2007:0558"/><erratum last-modified="1194449155" id="rhn-erratum-6225" advisory-name="RHBA-2007:0616"/><erratum last-modified="1194449155" id="rhn-erratum-6226" advisory-name="RHBA-2007:0627"/><erratum last-modified="1194452539" id="rhn-erratum-6227" advisory-name="RHSA-2007:0555"/><erratum last-modified="1193838510" id="rhn-erratum-6228" advisory-name="RHSA-2007:1020"/><erratum last-modified="1194281157" id="rhn-erratum-6236" advisory-name="RHSA-2007:0967"/><erratum last-modified="1199815247" id="rhn-erratum-6238" advisory-name="RHSA-2007:0966"/><erratum last-modified="1194453985" id="rhn-erratum-6240" advisory-name="RHBA-2007:0989"/><erratum last-modified="1194454329" id="rhn-erratum-6241" advisory-name="RHBA-2007:0974"/><erratum last-modified="1194454418" id="rhn-erratum-6242" advisory-name="RHBA-2007:0987"/><erratum last-modified="1194454517" id="rhn-erratum-6243" advisory-name="RHBA-2007:0985"/><erratum last-modified="1194454641" id="rhn-erratum-6244" advisory-name="RHBA-2007:0976"/><erratum last-modified="1194457548" id="rhn-erratum-6245" advisory-name="RHSA-2007:1021"/><erratum last-modified="1194459002" id="rhn-erratum-6249" advisory-name="RHSA-2007:1026"/><erratum last-modified="1194529544" id="rhn-erratum-6254" advisory-name="RHSA-2007:1027"/><erratum last-modified="1194540840" id="rhn-erratum-6255" advisory-name="RHSA-2007:1037"/><erratum last-modified="1195129236" id="rhn-erratum-6256" advisory-name="RHSA-2007:1052"/><erratum last-modified="1194946761" id="rhn-erratum-6263" advisory-name="RHSA-2007:0965"/><erratum last-modified="1195133259" id="rhn-erratum-6383" advisory-name="RHBA-2007:0972"/><erratum last-modified="1195134535" id="rhn-erratum-6389" advisory-name="RHBA-2007:0984"/><erratum last-modified="1195135655" id="rhn-erratum-6390" advisory-name="RHBA-2007:1002"/><erratum last-modified="1195136724" id="rhn-erratum-6392" advisory-name="RHBA-2007:1010"/><erratum last-modified="1195137230" id="rhn-erratum-6393" advisory-name="RHBA-2007:1012"/><erratum last-modified="1195142859" id="rhn-erratum-6396" advisory-name="RHSA-2007:0969"/><erratum last-modified="1195144149" id="rhn-erratum-6398" advisory-name="RHSA-2007:1017"/><erratum last-modified="1195146693" id="rhn-erratum-6400" advisory-name="RHSA-2007:1045"/><erratum last-modified="1195582547" id="rhn-erratum-6404" advisory-name="RHBA-2007:1073"/><erratum last-modified="1211378431" id="rhn-erratum-6405" advisory-name="RHBA-2007:0958"/><erratum last-modified="1211378384" id="rhn-erratum-6406" advisory-name="RHBA-2007:1009"/><erratum last-modified="1211378431" id="rhn-erratum-6407" advisory-name="RHBA-2007:1033"/><erratum last-modified="1211378384" id="rhn-erratum-6408" advisory-name="RHBA-2007:1039"/><erratum last-modified="1211378384" id="rhn-erratum-6412" advisory-name="RHBA-2007:0971"/><erratum last-modified="1195653093" id="rhn-erratum-6413" advisory-name="RHBA-2007:1067"/><erratum last-modified="1196119399" id="rhn-erratum-6435" advisory-name="RHSA-2007:1082"/><erratum last-modified="1211378384" id="rhn-erratum-6436" advisory-name="RHBA-2007:1057"/><erratum last-modified="1211378384" id="rhn-erratum-6437" advisory-name="RHBA-2007:1046"/><erratum last-modified="1196347593" id="rhn-erratum-6439" advisory-name="RHSA-2007:0993"/><erratum last-modified="1196347858" id="rhn-erratum-6440" advisory-name="RHSA-2007:1059"/><erratum last-modified="1196350728" id="rhn-erratum-6444" advisory-name="RHSA-2007:1078"/><erratum last-modified="1196696817" id="rhn-erratum-6448" advisory-name="RHSA-2007:1095"/><erratum last-modified="1211378384" id="rhn-erratum-6452" advisory-name="RHBA-2007:1072"/><erratum last-modified="1211378431" id="rhn-erratum-6453" advisory-name="RHBA-2007:1066"/><erratum last-modified="1211378431" id="rhn-erratum-6454" advisory-name="RHBA-2007:1075"/><erratum last-modified="1211378384" id="rhn-erratum-6455" advisory-name="RHBA-2007:1089"/><erratum last-modified="1197050972" id="rhn-erratum-6464" advisory-name="RHEA-2007:1132"/><erratum last-modified="1197305586" id="rhn-erratum-6466" advisory-name="RHSA-2007:1114"/><erratum last-modified="1197463014" id="rhn-erratum-6473" advisory-name="RHSA-2007:1128"/><erratum last-modified="1211378384" id="rhn-erratum-6476" advisory-name="RHBA-2007:1047"/><erratum last-modified="1211378431" id="rhn-erratum-6477" advisory-name="RHBA-2007:1064"/><erratum last-modified="1211378431" id="rhn-erratum-6478" advisory-name="RHBA-2007:1102"/><erratum last-modified="1211378384" id="rhn-erratum-6479" advisory-name="RHBA-2007:1103"/><erratum last-modified="1211378384" id="rhn-erratum-6480" advisory-name="RHBA-2007:1110"/><erratum last-modified="1197476377" id="rhn-erratum-6481" advisory-name="RHBA-2007:1131"/><erratum last-modified="1197577209" id="rhn-erratum-6482" advisory-name="RHBA-2007:1133"/><erratum last-modified="1197662892" id="rhn-erratum-6483" advisory-name="RHBA-2007:1127"/><erratum last-modified="1197994745" id="rhn-erratum-6485" advisory-name="RHSA-2007:1130"/><erratum last-modified="1197995854" id="rhn-erratum-6486" advisory-name="RHSA-2007:1155"/><erratum last-modified="1198078495" id="rhn-erratum-6488" advisory-name="RHSA-2007:1165"/><erratum last-modified="1211378384" id="rhn-erratum-6494" advisory-name="RHBA-2007:1146"/><erratum last-modified="1211378384" id="rhn-erratum-6495" advisory-name="RHBA-2007:1145"/><erratum last-modified="1211378384" id="rhn-erratum-6497" advisory-name="RHEA-2007:1125"/><erratum last-modified="1211378384" id="rhn-erratum-6498" advisory-name="RHBA-2007:1115"/><erratum last-modified="1211378384" id="rhn-erratum-6499" advisory-name="RHBA-2007:1109"/><erratum last-modified="1198178650" id="rhn-erratum-6500" advisory-name="RHSA-2007:1176"/><erratum last-modified="1211378384" id="rhn-erratum-6516" advisory-name="RHBA-2008:0015"/><erratum last-modified="1211378431" id="rhn-erratum-6517" advisory-name="RHBA-2008:0014"/><erratum last-modified="1211378384" id="rhn-erratum-6518" advisory-name="RHBA-2008:0012"/><erratum last-modified="1211378431" id="rhn-erratum-6519" advisory-name="RHEA-2008:0011"/><erratum last-modified="1199387416" id="rhn-erratum-6520" advisory-name="RHEA-2008:0028"/><erratum last-modified="1199473380" id="rhn-erratum-6522" advisory-name="RHEA-2008:0001"/><erratum last-modified="1199731010" id="rhn-erratum-6524" advisory-name="RHSA-2008:0002"/><erratum last-modified="1199732110" id="rhn-erratum-6525" advisory-name="RHSA-2008:0003"/><erratum last-modified="1211378384" id="rhn-erratum-6527" advisory-name="RHBA-2008:0020"/><erratum last-modified="1211378384" id="rhn-erratum-6528" advisory-name="RHBA-2008:0017"/><erratum last-modified="1200054423" id="rhn-erratum-6537" advisory-name="RHSA-2008:0032"/><erratum last-modified="1200055042" id="rhn-erratum-6538" advisory-name="RHSA-2008:0038"/><erratum last-modified="1200389908" id="rhn-erratum-6544" advisory-name="RHSA-2008:0008"/><erratum last-modified="1211378431" id="rhn-erratum-6550" advisory-name="RHBA-2008:0021"/><erratum last-modified="1211378384" id="rhn-erratum-6551" advisory-name="RHBA-2008:0010"/><erratum last-modified="1211378384" id="rhn-erratum-6552" advisory-name="RHBA-2008:0016"/><erratum last-modified="1211378431" id="rhn-erratum-6553" advisory-name="RHBA-2008:0019"/><erratum last-modified="1211378431" id="rhn-erratum-6554" advisory-name="RHBA-2008:0044"/><erratum last-modified="1211378384" id="rhn-erratum-6555" advisory-name="RHBA-2008:0041"/><erratum last-modified="1211378431" id="rhn-erratum-6556" advisory-name="RHBA-2008:0047"/><erratum last-modified="1211378384" id="rhn-erratum-6557" advisory-name="RHBA-2008:0056"/><erratum last-modified="1211378384" id="rhn-erratum-6558" advisory-name="RHBA-2008:0043"/><erratum last-modified="1200600032" id="rhn-erratum-6560" advisory-name="RHSA-2008:0064"/><erratum last-modified="1200706116" id="rhn-erratum-6561" advisory-name="RHSA-2008:0031"/><erratum last-modified="1200904274" id="rhn-erratum-6564" advisory-name="RHSA-2008:0058"/><erratum last-modified="1201078075" id="rhn-erratum-6568" advisory-name="RHBA-2008:0057"/><erratum last-modified="1211378384" id="rhn-erratum-6569" advisory-name="RHBA-2008:0085"/><erratum last-modified="1211378431" id="rhn-erratum-6570" advisory-name="RHBA-2008:0079"/><erratum last-modified="1211378384" id="rhn-erratum-6571" advisory-name="RHBA-2008:0077"/><erratum last-modified="1211378384" id="rhn-erratum-6572" advisory-name="RHBA-2008:0073"/><erratum last-modified="1211378384" id="rhn-erratum-6573" advisory-name="RHBA-2008:0072"/><erratum last-modified="1211378384" id="rhn-erratum-6574" advisory-name="RHBA-2008:0068"/><erratum last-modified="1211378384" id="rhn-erratum-6575" advisory-name="RHBA-2008:0067"/><erratum last-modified="1211378384" id="rhn-erratum-6576" advisory-name="RHBA-2008:0046"/><erratum last-modified="1211378431" id="rhn-erratum-6577" advisory-name="RHBA-2008:0045"/><erratum last-modified="1211378384" id="rhn-erratum-6578" advisory-name="RHBA-2008:0013"/><erratum last-modified="1201100825" id="rhn-erratum-6579" advisory-name="RHSA-2008:0089"/><erratum last-modified="1201267716" id="rhn-erratum-6580" advisory-name="RHSA-2008:0090"/><erratum last-modified="1211378384" id="rhn-erratum-6596" advisory-name="RHBA-2008:0078"/><erratum last-modified="1211378384" id="rhn-erratum-6597" advisory-name="RHBA-2008:0065"/><erratum last-modified="1211378384" id="rhn-erratum-6598" advisory-name="RHBA-2008:0063"/><erratum last-modified="1201707073" id="rhn-erratum-6601" advisory-name="RHBA-2008:0050"/><erratum last-modified="1201868901" id="rhn-erratum-6603" advisory-name="RHBA-2008:0099"/><erratum last-modified="1211378384" id="rhn-erratum-6618" advisory-name="RHBA-2008:0071"/><erratum last-modified="1211378384" id="rhn-erratum-6619" advisory-name="RHBA-2008:0108"/><erratum last-modified="1211378431" id="rhn-erratum-6620" advisory-name="RHBA-2008:0109"/><erratum last-modified="1202409708" id="rhn-erratum-6622" advisory-name="RHBA-2008:0102"/><erratum last-modified="1202438303" id="rhn-erratum-6625" advisory-name="RHSA-2008:0103"/><erratum last-modified="1202835190" id="rhn-erratum-6628" advisory-name="RHSA-2008:0129"/><erratum last-modified="1211378431" id="rhn-erratum-6631" advisory-name="RHBA-2008:0101"/><erratum last-modified="1203077128" id="rhn-erratum-6638" advisory-name="RHBA-2008:0143"/><erratum last-modified="1203135547" id="rhn-erratum-6642" advisory-name="RHBA-2008:0147"/><erratum last-modified="1211378431" id="rhn-erratum-6659" advisory-name="RHBA-2008:0087"/><erratum last-modified="1203628528" id="rhn-erratum-6662" advisory-name="RHSA-2008:0110"/><erratum last-modified="1203628947" id="rhn-erratum-6664" advisory-name="RHSA-2008:0136"/><erratum last-modified="1203629444" id="rhn-erratum-6665" advisory-name="RHSA-2008:0157"/><erratum last-modified="1211378384" id="rhn-erratum-6680" advisory-name="RHBA-2008:0106"/><erratum last-modified="1204147755" id="rhn-erratum-6681" advisory-name="RHSA-2008:0159"/><erratum last-modified="1204150462" id="rhn-erratum-6682" advisory-name="RHSA-2008:0155"/><erratum last-modified="1204192756" id="rhn-erratum-6683" advisory-name="RHSA-2008:0146"/><erratum last-modified="1204725396" id="rhn-erratum-6697" advisory-name="RHSA-2008:0154"/><erratum last-modified="1205160912" id="rhn-erratum-6717" advisory-name="RHEA-2008:0185"/><erratum last-modified="1205166351" id="rhn-erratum-6718" advisory-name="RHBA-2008:0128"/><erratum last-modified="1205232700" id="rhn-erratum-6719" advisory-name="RHSA-2008:0042"/><erratum last-modified="1205868372" id="rhn-erratum-6739" advisory-name="RHSA-2008:0164"/><erratum last-modified="1206398670" id="rhn-erratum-6747" advisory-name="RHBA-2008:0188"/><erratum last-modified="1206580098" id="rhn-erratum-6748" advisory-name="RHSA-2008:0207"/><erratum last-modified="1207059008" id="rhn-erratum-6752" advisory-name="RHSA-2008:0192"/><erratum last-modified="1207136024" id="rhn-erratum-6756" advisory-name="RHSA-2008:0197"/><erratum last-modified="1211378384" id="rhn-erratum-6764" advisory-name="RHSA-2008:0218"/><erratum last-modified="1207670266" id="rhn-erratum-6777" advisory-name="RHBA-2008:8237"/><erratum last-modified="1207698438" id="rhn-erratum-6779" advisory-name="RHSA-2008:0214"/><erratum last-modified="1208390558" id="rhn-erratum-6795" advisory-name="RHSA-2008:0235"/><erratum last-modified="1208396243" id="rhn-erratum-6797" advisory-name="RHSA-2008:0222"/><erratum last-modified="1208395929" id="rhn-erratum-6798" advisory-name="RHSA-2008:0145"/><erratum last-modified="1208453661" id="rhn-erratum-6803" advisory-name="RHSA-2008:0239"/><erratum last-modified="1210145958" id="rhn-erratum-6860" advisory-name="RHSA-2008:0233"/><erratum last-modified="1210341648" id="rhn-erratum-6868" advisory-name="RHBA-2008:0258"/><erratum last-modified="1210681682" id="rhn-erratum-6898" advisory-name="RHSA-2008:0194"/><erratum last-modified="1210751665" id="rhn-erratum-6902" advisory-name="RHSA-2008:0270"/><erratum last-modified="1210934227" id="rhn-erratum-6903" advisory-name="RHBA-2008:0219"/><erratum last-modified="1211378688" id="rhn-erratum-6919" advisory-name="RHBA-2008:0455"/><erratum last-modified="1211378688" id="rhn-erratum-6920" advisory-name="RHBA-2008:0437"/><erratum last-modified="1211378688" id="rhn-erratum-6921" advisory-name="RHBA-2008:0442"/><erratum last-modified="1211378688" id="rhn-erratum-6922" advisory-name="RHBA-2008:0484"/><erratum last-modified="1211378688" id="rhn-erratum-6923" advisory-name="RHBA-2008:0457"/><erratum last-modified="1211378688" id="rhn-erratum-6924" advisory-name="RHBA-2008:0453"/><erratum last-modified="1211378688" id="rhn-erratum-6925" advisory-name="RHBA-2008:0450"/><erratum last-modified="1211378688" id="rhn-erratum-6926" advisory-name="RHBA-2008:0459"/><erratum last-modified="1211378688" id="rhn-erratum-6928" advisory-name="RHBA-2008:0458"/><erratum last-modified="1211378688" id="rhn-erratum-6929" advisory-name="RHEA-2008:0454"/><erratum last-modified="1211378688" id="rhn-erratum-6930" advisory-name="RHEA-2008:0451"/><erratum last-modified="1211378688" id="rhn-erratum-6931" advisory-name="RHBA-2008:0462"/><erratum last-modified="1211392488" id="rhn-erratum-6932" advisory-name="RHEA-2008:0436"/><erratum last-modified="1211378688" id="rhn-erratum-6934" advisory-name="RHBA-2008:0434"/><erratum last-modified="1211378688" id="rhn-erratum-6935" advisory-name="RHBA-2008:0481"/><erratum last-modified="1211378688" id="rhn-erratum-6936" advisory-name="RHBA-2008:0424"/><erratum last-modified="1211378688" id="rhn-erratum-6937" advisory-name="RHBA-2008:0431"/><erratum last-modified="1211378688" id="rhn-erratum-6939" advisory-name="RHEA-2008:0427"/><erratum last-modified="1211378688" id="rhn-erratum-6940" advisory-name="RHEA-2008:0430"/><erratum last-modified="1211378688" id="rhn-erratum-6941" advisory-name="RHEA-2008:0418"/><erratum last-modified="1211378688" id="rhn-erratum-6942" advisory-name="RHBA-2008:0404"/><erratum last-modified="1211378688" id="rhn-erratum-6943" advisory-name="RHBA-2008:0412"/><erratum last-modified="1211378688" id="rhn-erratum-6944" advisory-name="RHEA-2008:0422"/><erratum last-modified="1211378688" id="rhn-erratum-6945" advisory-name="RHBA-2008:0419"/><erratum last-modified="1211378688" id="rhn-erratum-6946" advisory-name="RHEA-2008:0413"/><erratum last-modified="1211378688" id="rhn-erratum-6947" advisory-name="RHBA-2008:0403"/><erratum last-modified="1211378688" id="rhn-erratum-6949" advisory-name="RHBA-2008:0416"/><erratum last-modified="1211378688" id="rhn-erratum-6950" advisory-name="RHBA-2008:0414"/><erratum last-modified="1211378688" id="rhn-erratum-6951" advisory-name="RHBA-2008:0411"/><erratum last-modified="1211378688" id="rhn-erratum-6952" advisory-name="RHEA-2008:0420"/><erratum last-modified="1211378688" id="rhn-erratum-6954" advisory-name="RHBA-2008:0408"/><erratum last-modified="1211378688" id="rhn-erratum-6956" advisory-name="RHBA-2008:0470"/><erratum last-modified="1211378688" id="rhn-erratum-6957" advisory-name="RHBA-2008:0398"/><erratum last-modified="1211378688" id="rhn-erratum-6958" advisory-name="RHBA-2008:0396"/><erratum last-modified="1211378688" id="rhn-erratum-6959" advisory-name="RHBA-2008:0395"/><erratum last-modified="1211378688" id="rhn-erratum-6960" advisory-name="RHBA-2008:0397"/><erratum last-modified="1211378688" id="rhn-erratum-6961" advisory-name="RHBA-2008:0394"/><erratum last-modified="1211378688" id="rhn-erratum-6962" advisory-name="RHBA-2008:0393"/><erratum last-modified="1211378688" id="rhn-erratum-6963" advisory-name="RHEA-2008:0399"/><erratum last-modified="1211378688" id="rhn-erratum-6964" advisory-name="RHBA-2008:0386"/><erratum last-modified="1211378688" id="rhn-erratum-6965" advisory-name="RHEA-2008:0392"/><erratum last-modified="1211271165" id="rhn-erratum-6967" advisory-name="RHBA-2008:0280"/><erratum last-modified="1211277450" id="rhn-erratum-6968" advisory-name="RHSA-2008:0275"/><erratum last-modified="1211378688" id="rhn-erratum-6969" advisory-name="RHEA-2008:0387"/><erratum last-modified="1211378688" id="rhn-erratum-6970" advisory-name="RHEA-2008:0384"/><erratum last-modified="1211378688" id="rhn-erratum-6971" advisory-name="RHBA-2008:0446"/><erratum last-modified="1211378688" id="rhn-erratum-6972" advisory-name="RHBA-2008:0377"/><erratum last-modified="1211378688" id="rhn-erratum-6973" advisory-name="RHBA-2008:0381"/><erratum last-modified="1211378688" id="rhn-erratum-6974" advisory-name="RHBA-2008:0362"/><erratum last-modified="1211378688" id="rhn-erratum-6975" advisory-name="RHBA-2008:0382"/><erratum last-modified="1211378688" id="rhn-erratum-6976" advisory-name="RHEA-2008:0390"/><erratum last-modified="1211378688" id="rhn-erratum-6977" advisory-name="RHBA-2008:0461"/><erratum last-modified="1211378688" id="rhn-erratum-6978" advisory-name="RHBA-2008:0385"/><erratum last-modified="1211378688" id="rhn-erratum-6979" advisory-name="RHBA-2008:0347"/><erratum last-modified="1211378688" id="rhn-erratum-6980" advisory-name="RHBA-2008:0343"/><erratum last-modified="1211378688" id="rhn-erratum-6981" advisory-name="RHEA-2008:0356"/><erratum last-modified="1211379958" id="rhn-erratum-6983" advisory-name="RHSA-2008:0364"/><erratum last-modified="1211378688" id="rhn-erratum-6984" advisory-name="RHBA-2008:0350"/><erratum last-modified="1211378688" id="rhn-erratum-6985" advisory-name="RHBA-2008:0360"/><erratum last-modified="1211378688" id="rhn-erratum-6986" advisory-name="RHBA-2008:0346"/><erratum last-modified="1211378688" id="rhn-erratum-6987" advisory-name="RHBA-2008:0340"/><erratum last-modified="1211378688" id="rhn-erratum-6989" advisory-name="RHEA-2008:0358"/><erratum last-modified="1211378688" id="rhn-erratum-6990" advisory-name="RHBA-2008:0363"/><erratum last-modified="1211378688" id="rhn-erratum-6993" advisory-name="RHBA-2008:0357"/><erratum last-modified="1211378688" id="rhn-erratum-6995" advisory-name="RHBA-2008:0351"/><erratum last-modified="1211378688" id="rhn-erratum-6996" advisory-name="RHEA-2008:0468"/><erratum last-modified="1211378688" id="rhn-erratum-6998" advisory-name="RHBA-2008:0354"/><erratum last-modified="1211378688" id="rhn-erratum-7000" advisory-name="RHBA-2008:0333"/><erratum last-modified="1211378688" id="rhn-erratum-7001" advisory-name="RHBA-2008:0341"/><erratum last-modified="1211378688" id="rhn-erratum-7002" advisory-name="RHBA-2008:0083"/><erratum last-modified="1211378688" id="rhn-erratum-7003" advisory-name="RHEA-2008:0084"/><erratum last-modified="1211378688" id="rhn-erratum-7004" advisory-name="RHBA-2008:0376"/><erratum last-modified="1211378688" id="rhn-erratum-7005" advisory-name="RHBA-2008:0322"/><erratum last-modified="1211378688" id="rhn-erratum-7006" advisory-name="RHBA-2008:0334"/><erratum last-modified="1211378688" id="rhn-erratum-7007" advisory-name="RHBA-2008:0323"/><erratum last-modified="1211379958" id="rhn-erratum-7008" advisory-name="RHSA-2008:0061"/><erratum last-modified="1211378688" id="rhn-erratum-7009" advisory-name="RHBA-2008:0335"/><erratum last-modified="1211378688" id="rhn-erratum-7010" advisory-name="RHEA-2008:0331"/><erratum last-modified="1211378688" id="rhn-erratum-7011" advisory-name="RHBA-2008:0374"/><erratum last-modified="1211378688" id="rhn-erratum-7012" advisory-name="RHBA-2008:0336"/><erratum last-modified="1211378688" id="rhn-erratum-7014" advisory-name="RHBA-2008:0329"/><erratum last-modified="1211378688" id="rhn-erratum-7015" advisory-name="RHBA-2008:0324"/><erratum last-modified="1211378688" id="rhn-erratum-7016" advisory-name="RHBA-2008:0327"/><erratum last-modified="1211378688" id="rhn-erratum-7017" advisory-name="RHBA-2008:0337"/><erratum last-modified="1211378688" id="rhn-erratum-7018" advisory-name="RHBA-2008:0325"/><erratum last-modified="1211378688" id="rhn-erratum-7019" advisory-name="RHEA-2008:0477"/><erratum last-modified="1211378688" id="rhn-erratum-7020" advisory-name="RHBA-2008:0054"/><erratum last-modified="1211378688" id="rhn-erratum-7021" advisory-name="RHEA-2008:0338"/><erratum last-modified="1211378688" id="rhn-erratum-7022" advisory-name="RHBA-2008:0328"/><erratum last-modified="1214319667" id="rhn-erratum-7023" advisory-name="RHEA-2008:0479"/><erratum last-modified="1211378688" id="rhn-erratum-7026" advisory-name="RHBA-2008:0372"/><erratum last-modified="1211378688" id="rhn-erratum-7027" advisory-name="RHBA-2008:0375"/><erratum last-modified="1211378688" id="rhn-erratum-7028" advisory-name="RHBA-2008:0369"/><erratum last-modified="1211379302" id="rhn-erratum-7034" advisory-name="RHSA-2008:0389"/><erratum last-modified="1211378688" id="rhn-erratum-7035" advisory-name="RHBA-2008:0366"/><erratum last-modified="1211378688" id="rhn-erratum-7036" advisory-name="RHBA-2008:0367"/><erratum last-modified="1211378688" id="rhn-erratum-7037" advisory-name="RHBA-2008:0460"/><erratum last-modified="1211378688" id="rhn-erratum-7039" advisory-name="RHBA-2008:0368"/><erratum last-modified="1211378688" id="rhn-erratum-7040" advisory-name="RHBA-2008:0476"/><erratum last-modified="1211378688" id="rhn-erratum-7041" advisory-name="RHEA-2008:0474"/><erratum last-modified="1211378688" id="rhn-erratum-7042" advisory-name="RHBA-2008:0482"/><erratum last-modified="1211378688" id="rhn-erratum-7044" advisory-name="RHBA-2008:0326"/><erratum last-modified="1211378688" id="rhn-erratum-7045" advisory-name="RHEA-2008:0370"/><erratum last-modified="1211378688" id="rhn-erratum-7046" advisory-name="RHBA-2008:0383"/><erratum last-modified="1211378688" id="rhn-erratum-7047" advisory-name="RHBA-2008:0321"/><erratum last-modified="1211379607" id="rhn-erratum-7048" advisory-name="RHSA-2008:0297"/><erratum last-modified="1211378688" id="rhn-erratum-7049" advisory-name="RHBA-2008:0456"/><erratum last-modified="1211378688" id="rhn-erratum-7050" advisory-name="RHBA-2008:0312"/><erratum last-modified="1211379437" id="rhn-erratum-7051" advisory-name="RHSA-2008:0300"/><erratum last-modified="1211378688" id="rhn-erratum-7052" advisory-name="RHBA-2008:0465"/><erratum last-modified="1211378688" id="rhn-erratum-7053" advisory-name="RHBA-2008:0373"/><erratum last-modified="1211378688" id="rhn-erratum-7054" advisory-name="RHBA-2008:0307"/><erratum last-modified="1211378688" id="rhn-erratum-7055" advisory-name="RHBA-2008:0472"/><erratum last-modified="1211378688" id="rhn-erratum-7056" advisory-name="RHBA-2008:0296"/><erratum last-modified="1211294907" id="rhn-erratum-7058" advisory-name="RHSA-2008:0489"/><erratum last-modified="1211378688" id="rhn-erratum-7059" advisory-name="RHBA-2008:0314"/><erratum last-modified="1211378688" id="rhn-erratum-7061" advisory-name="RHBA-2008:0445"/><erratum last-modified="1211378688" id="rhn-erratum-7062" advisory-name="RHBA-2008:0444"/><erratum last-modified="1211378688" id="rhn-erratum-7063" advisory-name="RHBA-2008:0440"/><erratum last-modified="1211378688" id="rhn-erratum-7064" advisory-name="RHBA-2008:0309"/><erratum last-modified="1211378688" id="rhn-erratum-7065" advisory-name="RHBA-2008:0316"/><erratum last-modified="1211378688" id="rhn-erratum-7066" advisory-name="RHBA-2008:0306"/><erratum last-modified="1211378688" id="rhn-erratum-7067" advisory-name="RHBA-2008:0313"/><erratum last-modified="1211378688" id="rhn-erratum-7068" advisory-name="RHBA-2008:0311"/><erratum last-modified="1211378688" id="rhn-erratum-7069" advisory-name="RHBA-2008:0319"/><erratum last-modified="1211378688" id="rhn-erratum-7070" advisory-name="RHBA-2008:0308"/><erratum last-modified="1211378688" id="rhn-erratum-7071" advisory-name="RHBA-2008:0220"/><erratum last-modified="1211378688" id="rhn-erratum-7073" advisory-name="RHBA-2008:0388"/><erratum last-modified="1211378688" id="rhn-erratum-7074" advisory-name="RHBA-2008:0428"/><erratum last-modified="1211378688" id="rhn-erratum-7075" advisory-name="RHBA-2008:0449"/><erratum last-modified="1211378688" id="rhn-erratum-7076" advisory-name="RHEA-2008:0438"/><erratum last-modified="1211378688" id="rhn-erratum-7077" advisory-name="RHBA-2008:0475"/><erratum last-modified="1211378688" id="rhn-erratum-7078" advisory-name="RHBA-2008:0447"/><erratum last-modified="1211378688" id="rhn-erratum-7079" advisory-name="RHBA-2008:0405"/><erratum last-modified="1211378688" id="rhn-erratum-7080" advisory-name="RHBA-2008:0443"/><erratum last-modified="1211378688" id="rhn-erratum-7081" advisory-name="RHBA-2008:0432"/><erratum last-modified="1211378688" id="rhn-erratum-7082" advisory-name="RHBA-2008:0410"/><erratum last-modified="1211378688" id="rhn-erratum-7083" advisory-name="RHEA-2008:0402"/><erratum last-modified="1211378688" id="rhn-erratum-7084" advisory-name="RHBA-2008:0380"/><erratum last-modified="1211378688" id="rhn-erratum-7085" advisory-name="RHEA-2008:0429"/><erratum last-modified="1211378688" id="rhn-erratum-7087" advisory-name="RHEA-2008:0435"/><erratum last-modified="1211378688" id="rhn-erratum-7088" advisory-name="RHEA-2008:0439"/><erratum last-modified="1211378688" id="rhn-erratum-7089" advisory-name="RHEA-2008:0391"/><erratum last-modified="1211378688" id="rhn-erratum-7091" advisory-name="RHEA-2008:0417"/><erratum last-modified="1211378688" id="rhn-erratum-7092" advisory-name="RHBA-2008:0441"/><erratum last-modified="1211378688" id="rhn-erratum-7093" advisory-name="RHEA-2008:0400"/><erratum last-modified="1211378688" id="rhn-erratum-7095" advisory-name="RHBA-2008:0339"/><erratum last-modified="1211378688" id="rhn-erratum-7096" advisory-name="RHBA-2008:0345"/><erratum last-modified="1211378688" id="rhn-erratum-7098" advisory-name="RHBA-2008:0303"/><erratum last-modified="1211378688" id="rhn-erratum-7099" advisory-name="RHBA-2008:0332"/><erratum last-modified="1211465127" id="rhn-erratum-7100" advisory-name="RHBA-2008:0361"/><erratum last-modified="1211378711" id="rhn-erratum-7101" advisory-name="RHBA-2008:0305"/><erratum last-modified="1211378688" id="rhn-erratum-7102" advisory-name="RHBA-2008:0302"/><erratum last-modified="1211378688" id="rhn-erratum-7103" advisory-name="RHEA-2008:0304"/><erratum last-modified="1211378688" id="rhn-erratum-7104" advisory-name="RHEA-2008:0452"/><erratum last-modified="1211378688" id="rhn-erratum-7106" advisory-name="RHBA-2008:0478"/><erratum last-modified="1211378688" id="rhn-erratum-7107" advisory-name="RHBA-2008:0344"/><erratum last-modified="1211378688" id="rhn-erratum-7108" advisory-name="RHBA-2008:0081"/><erratum last-modified="1211378688" id="rhn-erratum-7109" advisory-name="RHBA-2008:0330"/><erratum last-modified="1211378688" id="rhn-erratum-7110" advisory-name="RHBA-2008:0301"/><erratum last-modified="1211378688" id="rhn-erratum-7112" advisory-name="RHBA-2008:0469"/><erratum last-modified="1211378688" id="rhn-erratum-7114" advisory-name="RHBA-2008:0466"/><erratum last-modified="1211378688" id="rhn-erratum-7115" advisory-name="RHBA-2008:0473"/><erratum last-modified="1211378688" id="rhn-erratum-7116" advisory-name="RHEA-2008:0317"/><erratum last-modified="1211378688" id="rhn-erratum-7117" advisory-name="RHBA-2008:0298"/><erratum last-modified="1211378688" id="rhn-erratum-7118" advisory-name="RHBA-2008:0294"/><erratum last-modified="1211378688" id="rhn-erratum-7119" advisory-name="RHBA-2008:0292"/><erratum last-modified="1211378688" id="rhn-erratum-7120" advisory-name="RHBA-2008:0293"/><erratum last-modified="1211378688" id="rhn-erratum-7121" advisory-name="RHBA-2008:0299"/><erratum last-modified="1211378688" id="rhn-erratum-7122" advisory-name="RHBA-2008:0310"/><erratum last-modified="1211378688" id="rhn-erratum-7123" advisory-name="RHBA-2008:0401"/><erratum last-modified="1211378688" id="rhn-erratum-7124" advisory-name="RHBA-2008:0378"/><erratum last-modified="1211355036" id="rhn-erratum-7126" advisory-name="RHSA-2008:0287"/><erratum last-modified="1211392804" id="rhn-erratum-7127" advisory-name="RHBA-2008:0464"/><erratum last-modified="1211378688" id="rhn-erratum-7128" advisory-name="RHBA-2008:0365"/><erratum last-modified="1211379396" id="rhn-erratum-7130" advisory-name="RHSA-2008:0295"/><erratum last-modified="1211386894" id="rhn-erratum-7131" advisory-name="RHBA-2008:0283"/><erratum last-modified="1211385551" id="rhn-erratum-7133" advisory-name="RHBA-2008:0279"/><erratum last-modified="1211386850" id="rhn-erratum-7134" advisory-name="RHBA-2008:0278"/><erratum last-modified="1211386980" id="rhn-erratum-7135" advisory-name="RHBA-2008:0488"/><erratum last-modified="1211387731" id="rhn-erratum-7136" advisory-name="RHBA-2008:0487"/><erratum last-modified="1211966851" id="rhn-erratum-7144" advisory-name="RHEA-2008:0506"/><erratum last-modified="1211973628" id="rhn-erratum-7147" advisory-name="RHSA-2008:0290"/><erratum last-modified="1232480208" id="rhn-erratum-7178" advisory-name="RHBA-2008:0286"/><erratum last-modified="1232480208" id="rhn-erratum-7179" advisory-name="RHBA-2008:0490"/><erratum last-modified="1232480208" id="rhn-erratum-7180" advisory-name="RHBA-2008:0491"/><erratum last-modified="1212652858" id="rhn-erratum-7185" advisory-name="RHSA-2008:0498"/><erratum last-modified="1212659953" id="rhn-erratum-7186" advisory-name="RHBA-2008:0499"/><erratum last-modified="1212670283" id="rhn-erratum-7188" advisory-name="RHBA-2008:0513"/><erratum last-modified="1213012998" id="rhn-erratum-7189" advisory-name="RHBA-2008:0526"/><erratum last-modified="1213106876" id="rhn-erratum-7191" advisory-name="RHSA-2008:0529"/><erratum last-modified="1213169531" id="rhn-erratum-7192" advisory-name="RHBA-2008:0536"/><erratum last-modified="1213211574" id="rhn-erratum-7194" advisory-name="RHSA-2008:0522"/><erratum last-modified="1213212894" id="rhn-erratum-7196" advisory-name="RHSA-2008:0504"/><erratum last-modified="1232480208" id="rhn-erratum-7198" advisory-name="RHBA-2008:0534"/><erratum last-modified="1232480208" id="rhn-erratum-7199" advisory-name="RHBA-2008:0531"/><erratum last-modified="1232480208" id="rhn-erratum-7200" advisory-name="RHBA-2008:0530"/><erratum last-modified="1213266274" id="rhn-erratum-7201" advisory-name="RHBA-2008:0527"/><erratum last-modified="1214393985" id="rhn-erratum-7219" advisory-name="RHSA-2008:0556"/><erratum last-modified="1214299895" id="rhn-erratum-7223" advisory-name="RHSA-2008:0497"/><erratum last-modified="1232480208" id="rhn-erratum-7225" advisory-name="RHBA-2008:0567"/><erratum last-modified="1214402999" id="rhn-erratum-7226" advisory-name="RHBA-2008:0551"/><erratum last-modified="1214408624" id="rhn-erratum-7228" advisory-name="RHSA-2008:0519"/><erratum last-modified="1214589842" id="rhn-erratum-7237" advisory-name="RHBA-2008:0573"/><erratum last-modified="1215002227" id="rhn-erratum-7259" advisory-name="RHSA-2008:0569"/><erratum last-modified="1215022795" id="rhn-erratum-7265" advisory-name="RHBA-2008:0557"/><erratum last-modified="1215719579" id="rhn-erratum-7269" advisory-name="RHSA-2008:0533"/><erratum last-modified="1232480208" id="rhn-erratum-7271" advisory-name="RHBA-2008:0559"/><erratum last-modified="1215614648" id="rhn-erratum-7272" advisory-name="RHSA-2008:0583"/><erratum last-modified="1215766327" id="rhn-erratum-7273" advisory-name="RHBA-2008:0565"/><erratum last-modified="1216041981" id="rhn-erratum-7275" advisory-name="RHSA-2008:0561"/><erratum last-modified="1216043746" id="rhn-erratum-7277" advisory-name="RHSA-2008:0581"/><erratum last-modified="1216200981" id="rhn-erratum-7280" advisory-name="RHSA-2008:0544"/><erratum last-modified="1216250824" id="rhn-erratum-7284" advisory-name="RHSA-2008:0597"/><erratum last-modified="1232480208" id="rhn-erratum-7287" advisory-name="RHBA-2008:0587"/><erratum last-modified="1232470477" id="rhn-erratum-7292" advisory-name="RHBA-2008:0613"/><erratum last-modified="1232469848" id="rhn-erratum-7293" advisory-name="RHBA-2008:0610"/><erratum last-modified="1232480208" id="rhn-erratum-7294" advisory-name="RHBA-2008:0600"/><erratum last-modified="1232471900" id="rhn-erratum-7295" advisory-name="RHBA-2008:0589"/><erratum last-modified="1232471827" id="rhn-erratum-7296" advisory-name="RHBA-2008:0586"/><erratum last-modified="1216919718" id="rhn-erratum-7435" advisory-name="RHSA-2008:0575"/><erratum last-modified="1217260961" id="rhn-erratum-7459" advisory-name="RHBA-2008:0611"/><erratum last-modified="1232480208" id="rhn-erratum-7479" advisory-name="RHBA-2008:0535"/><erratum last-modified="1232480208" id="rhn-erratum-7480" advisory-name="RHBA-2008:0593"/><erratum last-modified="1232480208" id="rhn-erratum-7481" advisory-name="RHBA-2008:0609"/><erratum last-modified="1232480208" id="rhn-erratum-7482" advisory-name="RHBA-2008:0626"/><erratum last-modified="1232471506" id="rhn-erratum-7483" advisory-name="RHBA-2008:0637"/><erratum last-modified="1218054405" id="rhn-erratum-7487" advisory-name="RHSA-2008:0649"/><erratum last-modified="1217518732" id="rhn-erratum-7488" advisory-name="RHSA-2008:0486"/><erratum last-modified="1218051005" id="rhn-erratum-7498" advisory-name="RHSA-2008:0612"/><erratum last-modified="1218016403" id="rhn-erratum-7511" advisory-name="RHBA-2008:0824"/><erratum last-modified="1232480208" id="rhn-erratum-7512" advisory-name="RHBA-2008:0786"/><erratum last-modified="1232471750" id="rhn-erratum-7513" advisory-name="RHBA-2008:0652"/><erratum last-modified="1232480208" id="rhn-erratum-7515" advisory-name="RHBA-2008:0644"/><erratum last-modified="1232480208" id="rhn-erratum-7516" advisory-name="RHBA-2008:0614"/><erratum last-modified="1218439900" id="rhn-erratum-7517" advisory-name="RHBA-2008:0829"/><erratum last-modified="1218474123" id="rhn-erratum-7518" advisory-name="RHSA-2008:0789"/><erratum last-modified="1218573097" id="rhn-erratum-7521" advisory-name="RHSA-2008:0818"/><erratum last-modified="1232480208" id="rhn-erratum-7527" advisory-name="RHBA-2008:0830"/><erratum last-modified="1232471959" id="rhn-erratum-7530" advisory-name="RHBA-2008:0809"/><erratum last-modified="1232480208" id="rhn-erratum-7531" advisory-name="RHBA-2008:0574"/><erratum last-modified="1218721404" id="rhn-erratum-7532" advisory-name="RHSA-2008:0815"/><erratum last-modified="1218742318" id="rhn-erratum-7533" advisory-name="RHSA-2008:0839"/><erratum last-modified="1219739888" id="rhn-erratum-7538" advisory-name="RHSA-2008:0836"/><erratum last-modified="1219407017" id="rhn-erratum-7539" advisory-name="RHSA-2008:0855"/><erratum last-modified="1219778653" id="rhn-erratum-7560" advisory-name="RHSA-2008:0849"/><erratum last-modified="1232469934" id="rhn-erratum-7562" advisory-name="RHBA-2008:0840"/><erratum last-modified="1232480208" id="rhn-erratum-7563" advisory-name="RHEA-2008:0838"/><erratum last-modified="1232480208" id="rhn-erratum-7564" advisory-name="RHBA-2008:0811"/><erratum last-modified="1232471170" id="rhn-erratum-7565" advisory-name="RHBA-2008:0631"/><erratum last-modified="1219857228" id="rhn-erratum-7568" advisory-name="RHSA-2008:0648"/><erratum last-modified="1219961566" id="rhn-erratum-7574" advisory-name="RHSA-2008:0847"/><erratum last-modified="1220439894" id="rhn-erratum-7578" advisory-name="RHEA-2008:0875"/><erratum last-modified="1220342177" id="rhn-erratum-7590" advisory-name="RHBA-2008:0639"/><erratum last-modified="1220380576" id="rhn-erratum-7591" advisory-name="RHBA-2008:0878"/><erratum last-modified="1232480208" id="rhn-erratum-7592" advisory-name="RHBA-2008:0266"/><erratum last-modified="1232471669" id="rhn-erratum-7593" advisory-name="RHBA-2008:0646"/><erratum last-modified="1232480208" id="rhn-erratum-7594" advisory-name="RHBA-2008:0844"/><erratum last-modified="1232480208" id="rhn-erratum-7595" advisory-name="RHBA-2008:0853"/><erratum last-modified="1232471607" id="rhn-erratum-7596" advisory-name="RHBA-2008:0866"/><erratum last-modified="1221141028" id="rhn-erratum-7607" advisory-name="RHSA-2008:0884"/><erratum last-modified="1221569125" id="rhn-erratum-7618" advisory-name="RHSA-2008:0893"/><erratum last-modified="1221666679" id="rhn-erratum-7619" advisory-name="RHBA-2008:0876"/><erratum last-modified="1232480208" id="rhn-erratum-7620" advisory-name="RHBA-2008:0881"/><erratum last-modified="1232480208" id="rhn-erratum-7621" advisory-name="RHBA-2008:0889"/><erratum last-modified="1222220548" id="rhn-erratum-7638" advisory-name="RHSA-2008:0879"/><erratum last-modified="1232472306" id="rhn-erratum-7640" advisory-name="RHBA-2008:0913"/><erratum last-modified="1232480208" id="rhn-erratum-7641" advisory-name="RHBA-2008:0931"/><erratum last-modified="1232480208" id="rhn-erratum-7642" advisory-name="RHBA-2008:0894"/><erratum last-modified="1222281827" id="rhn-erratum-7643" advisory-name="RHSA-2008:0885"/><erratum last-modified="1222371933" id="rhn-erratum-7646" advisory-name="RHBA-2008:0898"/><erratum last-modified="1222771548" id="rhn-erratum-7658" advisory-name="RHBA-2008:0933"/><erratum last-modified="1222875066" id="rhn-erratum-7659" advisory-name="RHSA-2008:0890"/><erratum last-modified="1222874832" id="rhn-erratum-7660" advisory-name="RHSA-2008:0892"/><erratum last-modified="1232480208" id="rhn-erratum-7662" advisory-name="RHBA-2008:0914"/><erratum last-modified="1222944761" id="rhn-erratum-7663" advisory-name="RHBA-2008:0647"/><erratum last-modified="1222951493" id="rhn-erratum-7664" advisory-name="RHBA-2008:0902"/><erratum last-modified="1222955994" id="rhn-erratum-7665" advisory-name="RHSA-2008:0907"/><erratum last-modified="1232480208" id="rhn-erratum-7704" advisory-name="RHBA-2008:0920"/><erratum last-modified="1232472272" id="rhn-erratum-7705" advisory-name="RHBA-2008:0912"/><erratum last-modified="1232472188" id="rhn-erratum-7707" advisory-name="RHBA-2008:0905"/><erratum last-modified="1232480208" id="rhn-erratum-7708" advisory-name="RHBA-2008:0899"/><erratum last-modified="1223471927" id="rhn-erratum-7710" advisory-name="RHEA-2008:0941"/><erratum last-modified="1223624846" id="rhn-erratum-7717" advisory-name="RHSA-2008:0937"/><erratum last-modified="1223912487" id="rhn-erratum-7719" advisory-name="RHBA-2008:0850"/><erratum last-modified="1224058340" id="rhn-erratum-7721" advisory-name="RHBA-2008:0909"/><erratum last-modified="1232480208" id="rhn-erratum-7725" advisory-name="RHBA-2008:0921"/><erratum last-modified="1232480208" id="rhn-erratum-7726" advisory-name="RHBA-2008:0917"/><erratum last-modified="1232480208" id="rhn-erratum-7727" advisory-name="RHBA-2008:0900"/><erratum last-modified="1232480208" id="rhn-erratum-7728" advisory-name="RHBA-2008:0845"/><erratum last-modified="1232472902" id="rhn-erratum-7738" advisory-name="RHBA-2008:0918"/><erratum last-modified="1224600759" id="rhn-erratum-7739" advisory-name="RHSA-2008:0897"/><erratum last-modified="1224602762" id="rhn-erratum-7742" advisory-name="RHSA-2008:0946"/><erratum last-modified="1225127389" id="rhn-erratum-7778" advisory-name="RHSA-2008:0965"/><erratum last-modified="1225723995" id="rhn-erratum-7799" advisory-name="RHSA-2008:0971"/><erratum last-modified="1226482482" id="rhn-erratum-7800" advisory-name="RHSA-2008:0957"/><erratum last-modified="1225826819" id="rhn-erratum-7801" advisory-name="RHBA-2008:0923"/><erratum last-modified="1225897383" id="rhn-erratum-7803" advisory-name="RHEA-2008:0969"/><erratum last-modified="1225907418" id="rhn-erratum-7805" advisory-name="RHBA-2008:0947"/><erratum last-modified="1225910118" id="rhn-erratum-7806" advisory-name="RHBA-2008:0956"/><erratum last-modified="1226428000" id="rhn-erratum-7820" advisory-name="RHSA-2008:0967"/><erratum last-modified="1226427998" id="rhn-erratum-7821" advisory-name="RHSA-2008:0982"/><erratum last-modified="1226542692" id="rhn-erratum-7828" advisory-name="RHSA-2008:0978"/><erratum last-modified="1226938556" id="rhn-erratum-7830" advisory-name="RHSA-2008:0988"/><erratum last-modified="1227602466" id="rhn-erratum-7863" advisory-name="RHSA-2008:0580"/><erratum last-modified="1227603932" id="rhn-erratum-7866" advisory-name="RHSA-2008:1001"/><erratum last-modified="1227605180" id="rhn-erratum-7867" advisory-name="RHBA-2008:0992"/><erratum last-modified="1227646521" id="rhn-erratum-7870" advisory-name="RHBA-2008:1009"/><erratum last-modified="1228132653" id="rhn-erratum-7879" advisory-name="RHBA-2008:0996"/><erratum last-modified="1228237181" id="rhn-erratum-7880" advisory-name="RHBA-2008:0962"/><erratum last-modified="1229103319" id="rhn-erratum-7901" advisory-name="RHSA-2008:0981"/><erratum last-modified="1228942168" id="rhn-erratum-7906" advisory-name="RHBA-2008:1030"/><erratum last-modified="1228992998" id="rhn-erratum-7918" advisory-name="RHBA-2008:0999"/><erratum last-modified="1229345508" id="rhn-erratum-7919" advisory-name="RHSA-2008:1016"/><erratum last-modified="1229347540" id="rhn-erratum-7922" advisory-name="RHSA-2008:1029"/><erratum last-modified="1229481511" id="rhn-erratum-7924" advisory-name="RHSA-2008:1017"/><erratum last-modified="1229477477" id="rhn-erratum-7926" advisory-name="RHSA-2008:1036"/><erratum last-modified="1231324405" id="rhn-erratum-7959" advisory-name="RHSA-2009:0003"/><erratum last-modified="1231326579" id="rhn-erratum-7961" advisory-name="RHSA-2009:0018"/><erratum last-modified="1231334838" id="rhn-erratum-7962" advisory-name="RHSA-2009:0004"/><erratum last-modified="1231335043" id="rhn-erratum-7963" advisory-name="RHSA-2009:0008"/><erratum last-modified="1231335537" id="rhn-erratum-7964" advisory-name="RHSA-2009:0011"/><erratum last-modified="1231439171" id="rhn-erratum-7979" advisory-name="RHSA-2009:0020"/><erratum last-modified="1231750715" id="rhn-erratum-7980" advisory-name="RHBA-2008:1034"/><erratum last-modified="1231769347" id="rhn-erratum-7981" advisory-name="RHSA-2009:0013"/><erratum last-modified="1231770400" id="rhn-erratum-7982" advisory-name="RHSA-2009:0010"/><erratum last-modified="1232399801" id="rhn-erratum-8007" advisory-name="RHSA-2009:0057"/><erratum last-modified="1232459797" id="rhn-erratum-8008" advisory-name="RHBA-2009:0056"/><erratum last-modified="1232480208" id="rhn-erratum-8009" advisory-name="RHBA-2009:0058"/><erratum last-modified="1232480208" id="rhn-erratum-8011" advisory-name="RHBA-2009:0060"/><erratum last-modified="1232480208" id="rhn-erratum-8012" advisory-name="RHBA-2009:0062"/><erratum last-modified="1232480208" id="rhn-erratum-8013" advisory-name="RHEA-2009:0063"/><erratum last-modified="1232480208" id="rhn-erratum-8016" advisory-name="RHBA-2009:0066"/><erratum last-modified="1232480208" id="rhn-erratum-8017" advisory-name="RHBA-2009:0067"/><erratum last-modified="1232480208" id="rhn-erratum-8018" advisory-name="RHBA-2009:0068"/><erratum last-modified="1232480208" id="rhn-erratum-8019" advisory-name="RHBA-2009:0069"/><erratum last-modified="1232480208" id="rhn-erratum-8020" advisory-name="RHBA-2009:0070"/><erratum last-modified="1232480208" id="rhn-erratum-8021" advisory-name="RHBA-2009:0071"/><erratum last-modified="1232480208" id="rhn-erratum-8022" advisory-name="RHBA-2009:0072"/><erratum last-modified="1232480208" id="rhn-erratum-8023" advisory-name="RHBA-2009:0073"/><erratum last-modified="1232480208" id="rhn-erratum-8024" advisory-name="RHBA-2009:0074"/><erratum last-modified="1232480208" id="rhn-erratum-8025" advisory-name="RHEA-2009:0075"/><erratum last-modified="1232480208" id="rhn-erratum-8026" advisory-name="RHBA-2009:0076"/><erratum last-modified="1232480208" id="rhn-erratum-8027" advisory-name="RHEA-2009:0077"/><erratum last-modified="1232480208" id="rhn-erratum-8028" advisory-name="RHEA-2009:0078"/><erratum last-modified="1232480208" id="rhn-erratum-8029" advisory-name="RHBA-2009:0079"/><erratum last-modified="1232480208" id="rhn-erratum-8030" advisory-name="RHBA-2009:0080"/><erratum last-modified="1232480208" id="rhn-erratum-8031" advisory-name="RHBA-2009:0082"/><erratum last-modified="1232480208" id="rhn-erratum-8032" advisory-name="RHEA-2009:0083"/><erratum last-modified="1232480208" id="rhn-erratum-8033" advisory-name="RHBA-2009:0084"/><erratum last-modified="1232480208" id="rhn-erratum-8034" advisory-name="RHBA-2009:0085"/><erratum last-modified="1232480208" id="rhn-erratum-8036" advisory-name="RHBA-2009:0087"/><erratum last-modified="1232480208" id="rhn-erratum-8037" advisory-name="RHBA-2009:0088"/><erratum last-modified="1232480208" id="rhn-erratum-8038" advisory-name="RHEA-2009:0089"/><erratum last-modified="1232480208" id="rhn-erratum-8039" advisory-name="RHBA-2009:0090"/><erratum last-modified="1232480208" id="rhn-erratum-8040" advisory-name="RHBA-2009:0091"/><erratum last-modified="1232480208" id="rhn-erratum-8041" advisory-name="RHEA-2009:0092"/><erratum last-modified="1232480208" id="rhn-erratum-8042" advisory-name="RHBA-2009:0093"/><erratum last-modified="1232480208" id="rhn-erratum-8043" advisory-name="RHBA-2009:0094"/><erratum last-modified="1232480208" id="rhn-erratum-8045" advisory-name="RHEA-2009:0096"/><erratum last-modified="1232480208" id="rhn-erratum-8046" advisory-name="RHEA-2009:0097"/><erratum last-modified="1232480208" id="rhn-erratum-8047" advisory-name="RHEA-2009:0098"/><erratum last-modified="1232480208" id="rhn-erratum-8052" advisory-name="RHBA-2009:0103"/><erratum last-modified="1232480208" id="rhn-erratum-8054" advisory-name="RHBA-2009:0105"/><erratum last-modified="1232480208" id="rhn-erratum-8055" advisory-name="RHEA-2009:0106"/><erratum last-modified="1232480208" id="rhn-erratum-8056" advisory-name="RHBA-2009:0107"/><erratum last-modified="1232480208" id="rhn-erratum-8057" advisory-name="RHEA-2009:0108"/><erratum last-modified="1232480208" id="rhn-erratum-8058" advisory-name="RHBA-2009:0109"/><erratum last-modified="1232480208" id="rhn-erratum-8059" advisory-name="RHBA-2009:0110"/><erratum last-modified="1232480208" id="rhn-erratum-8060" advisory-name="RHBA-2009:0111"/><erratum last-modified="1232480208" id="rhn-erratum-8061" advisory-name="RHBA-2009:0112"/><erratum last-modified="1232480208" id="rhn-erratum-8062" advisory-name="RHBA-2009:0113"/><erratum last-modified="1232480208" id="rhn-erratum-8063" advisory-name="RHBA-2009:0114"/><erratum last-modified="1232480208" id="rhn-erratum-8064" advisory-name="RHBA-2009:0115"/><erratum last-modified="1232480208" id="rhn-erratum-8065" advisory-name="RHBA-2009:0116"/><erratum last-modified="1232480208" id="rhn-erratum-8066" advisory-name="RHBA-2009:0117"/><erratum last-modified="1232480224" id="rhn-erratum-8067" advisory-name="RHBA-2009:0118"/><erratum last-modified="1232480208" id="rhn-erratum-8068" advisory-name="RHBA-2009:0119"/><erratum last-modified="1232480208" id="rhn-erratum-8069" advisory-name="RHBA-2009:0120"/><erratum last-modified="1232480208" id="rhn-erratum-8070" advisory-name="RHEA-2009:0123"/><erratum last-modified="1232480208" id="rhn-erratum-8072" advisory-name="RHEA-2009:0124"/><erratum last-modified="1232480208" id="rhn-erratum-8073" advisory-name="RHBA-2009:0125"/><erratum last-modified="1232480208" id="rhn-erratum-8074" advisory-name="RHBA-2009:0126"/><erratum last-modified="1232480208" id="rhn-erratum-8075" advisory-name="RHBA-2009:0127"/><erratum last-modified="1232480208" id="rhn-erratum-8076" advisory-name="RHBA-2009:0128"/><erratum last-modified="1232480208" id="rhn-erratum-8077" advisory-name="RHBA-2009:0130"/><erratum last-modified="1232480208" id="rhn-erratum-8078" advisory-name="RHBA-2009:0131"/><erratum last-modified="1232480208" id="rhn-erratum-8080" advisory-name="RHEA-2009:0133"/><erratum last-modified="1232480208" id="rhn-erratum-8081" advisory-name="RHBA-2009:0134"/><erratum last-modified="1232480208" id="rhn-erratum-8082" advisory-name="RHBA-2009:0135"/><erratum last-modified="1232480208" id="rhn-erratum-8083" advisory-name="RHBA-2009:0136"/><erratum last-modified="1232480208" id="rhn-erratum-8085" advisory-name="RHBA-2009:0138"/><erratum last-modified="1232480208" id="rhn-erratum-8086" advisory-name="RHBA-2009:0139"/><erratum last-modified="1232480208" id="rhn-erratum-8090" advisory-name="RHBA-2009:0143"/><erratum last-modified="1232480208" id="rhn-erratum-8091" advisory-name="RHBA-2009:0144"/><erratum last-modified="1232480208" id="rhn-erratum-8092" advisory-name="RHBA-2009:0145"/><erratum last-modified="1232480208" id="rhn-erratum-8093" advisory-name="RHBA-2009:0146"/><erratum last-modified="1232480208" id="rhn-erratum-8094" advisory-name="RHBA-2009:0147"/><erratum last-modified="1232480208" id="rhn-erratum-8095" advisory-name="RHBA-2009:0148"/><erratum last-modified="1232480208" id="rhn-erratum-8096" advisory-name="RHBA-2009:0149"/><erratum last-modified="1232480208" id="rhn-erratum-8098" advisory-name="RHEA-2009:0151"/><erratum last-modified="1232480208" id="rhn-erratum-8099" advisory-name="RHEA-2009:0152"/><erratum last-modified="1232480208" id="rhn-erratum-8100" advisory-name="RHEA-2009:0153"/><erratum last-modified="1232480208" id="rhn-erratum-8101" advisory-name="RHEA-2009:0154"/><erratum last-modified="1232480208" id="rhn-erratum-8103" advisory-name="RHBA-2009:0156"/><erratum last-modified="1232480208" id="rhn-erratum-8104" advisory-name="RHBA-2009:0157"/><erratum last-modified="1232480208" id="rhn-erratum-8107" advisory-name="RHEA-2009:0160"/><erratum last-modified="1232480208" id="rhn-erratum-8108" advisory-name="RHEA-2009:0161"/><erratum last-modified="1232480208" id="rhn-erratum-8109" advisory-name="RHBA-2009:0162"/><erratum last-modified="1232480208" id="rhn-erratum-8110" advisory-name="RHBA-2009:0163"/><erratum last-modified="1232480208" id="rhn-erratum-8111" advisory-name="RHBA-2009:0164"/><erratum last-modified="1232480208" id="rhn-erratum-8112" advisory-name="RHBA-2009:0165"/><erratum last-modified="1232480208" id="rhn-erratum-8113" advisory-name="RHEA-2009:0166"/><erratum last-modified="1232480208" id="rhn-erratum-8114" advisory-name="RHBA-2009:0167"/><erratum last-modified="1232480208" id="rhn-erratum-8115" advisory-name="RHBA-2009:0168"/><erratum last-modified="1232480208" id="rhn-erratum-8116" advisory-name="RHBA-2009:0170"/><erratum last-modified="1232480208" id="rhn-erratum-8117" advisory-name="RHBA-2009:0171"/><erratum last-modified="1232480208" id="rhn-erratum-8118" advisory-name="RHBA-2009:0172"/><erratum last-modified="1232480208" id="rhn-erratum-8119" advisory-name="RHBA-2009:0173"/><erratum last-modified="1232480208" id="rhn-erratum-8120" advisory-name="RHEA-2009:0174"/><erratum last-modified="1232480208" id="rhn-erratum-8121" advisory-name="RHBA-2009:0175"/><erratum last-modified="1232480208" id="rhn-erratum-8122" advisory-name="RHBA-2009:0176"/><erratum last-modified="1232480208" id="rhn-erratum-8124" advisory-name="RHBA-2009:0178"/><erratum last-modified="1232480208" id="rhn-erratum-8125" advisory-name="RHBA-2009:0179"/><erratum last-modified="1232480208" id="rhn-erratum-8126" advisory-name="RHBA-2009:0180"/><erratum last-modified="1232480208" id="rhn-erratum-8127" advisory-name="RHBA-2009:0181"/><erratum last-modified="1232480208" id="rhn-erratum-8128" advisory-name="RHBA-2009:0182"/><erratum last-modified="1232480208" id="rhn-erratum-8129" advisory-name="RHEA-2009:0183"/><erratum last-modified="1232480208" id="rhn-erratum-8130" advisory-name="RHEA-2009:0184"/><erratum last-modified="1232480208" id="rhn-erratum-8131" advisory-name="RHBA-2009:0186"/><erratum last-modified="1232480208" id="rhn-erratum-8132" advisory-name="RHEA-2009:0187"/><erratum last-modified="1232480208" id="rhn-erratum-8134" advisory-name="RHBA-2009:0189"/><erratum last-modified="1232480208" id="rhn-erratum-8135" advisory-name="RHEA-2009:0190"/><erratum last-modified="1232480208" id="rhn-erratum-8136" advisory-name="RHEA-2009:0191"/><erratum last-modified="1232480208" id="rhn-erratum-8137" advisory-name="RHEA-2009:0192"/><erratum last-modified="1232480208" id="rhn-erratum-8138" advisory-name="RHBA-2009:0193"/><erratum last-modified="1232480208" id="rhn-erratum-8139" advisory-name="RHEA-2009:0194"/><erratum last-modified="1232480208" id="rhn-erratum-8140" advisory-name="RHBA-2009:0195"/><erratum last-modified="1232480208" id="rhn-erratum-8142" advisory-name="RHEA-2009:0197"/><erratum last-modified="1232480208" id="rhn-erratum-8143" advisory-name="RHBA-2009:0198"/><erratum last-modified="1232480208" id="rhn-erratum-8144" advisory-name="RHEA-2009:0199"/><erratum last-modified="1232480208" id="rhn-erratum-8145" advisory-name="RHBA-2009:0200"/><erratum last-modified="1232480208" id="rhn-erratum-8146" advisory-name="RHEA-2009:0201"/><erratum last-modified="1232480208" id="rhn-erratum-8147" advisory-name="RHBA-2009:0202"/><erratum last-modified="1232480208" id="rhn-erratum-8148" advisory-name="RHBA-2009:0203"/><erratum last-modified="1232480208" id="rhn-erratum-8149" advisory-name="RHBA-2009:0204"/><erratum last-modified="1232479510" id="rhn-erratum-8150" advisory-name="RHSA-2009:0205"/><erratum last-modified="1232480208" id="rhn-erratum-8151" advisory-name="RHBA-2009:0206"/><erratum last-modified="1232480208" id="rhn-erratum-8152" advisory-name="RHBA-2009:0207"/><erratum last-modified="1232480208" id="rhn-erratum-8153" advisory-name="RHBA-2009:0208"/><erratum last-modified="1232480208" id="rhn-erratum-8154" advisory-name="RHBA-2009:0209"/><erratum last-modified="1232480208" id="rhn-erratum-8155" advisory-name="RHBA-2009:0210"/><erratum last-modified="1232480208" id="rhn-erratum-8156" advisory-name="RHEA-2009:0211"/><erratum last-modified="1232480208" id="rhn-erratum-8157" advisory-name="RHEA-2009:0212"/><erratum last-modified="1232480208" id="rhn-erratum-8158" advisory-name="RHBA-2009:0213"/><erratum last-modified="1232480208" id="rhn-erratum-8159" advisory-name="RHBA-2009:0214"/><erratum last-modified="1232480208" id="rhn-erratum-8162" advisory-name="RHEA-2009:0217"/><erratum last-modified="1232480208" id="rhn-erratum-8163" advisory-name="RHEA-2009:0218"/><erratum last-modified="1232480208" id="rhn-erratum-8164" advisory-name="RHBA-2009:0220"/><erratum last-modified="1232480208" id="rhn-erratum-8165" advisory-name="RHBA-2009:0221"/><erratum last-modified="1232480208" id="rhn-erratum-8166" advisory-name="RHBA-2009:0222"/><erratum last-modified="1232480208" id="rhn-erratum-8167" advisory-name="RHBA-2009:0224"/><erratum last-modified="1232659228" id="rhn-erratum-8168" advisory-name="RHSA-2009:0225"/><erratum last-modified="1232480208" id="rhn-erratum-8169" advisory-name="RHBA-2009:0226"/><erratum last-modified="1232480208" id="rhn-erratum-8170" advisory-name="RHBA-2009:0227"/><erratum last-modified="1232480208" id="rhn-erratum-8171" advisory-name="RHBA-2009:0228"/><erratum last-modified="1232480208" id="rhn-erratum-8172" advisory-name="RHBA-2009:0229"/><erratum last-modified="1232480208" id="rhn-erratum-8173" advisory-name="RHBA-2009:0230"/><erratum last-modified="1232480208" id="rhn-erratum-8174" advisory-name="RHBA-2009:0231"/><erratum last-modified="1232480208" id="rhn-erratum-8175" advisory-name="RHEA-2009:0232"/><erratum last-modified="1232480208" id="rhn-erratum-8176" advisory-name="RHBA-2009:0233"/><erratum last-modified="1232480208" id="rhn-erratum-8177" advisory-name="RHBA-2009:0234"/><erratum last-modified="1232480208" id="rhn-erratum-8178" advisory-name="RHEA-2009:0235"/><erratum last-modified="1232480208" id="rhn-erratum-8179" advisory-name="RHEA-2009:0236"/><erratum last-modified="1232480208" id="rhn-erratum-8180" advisory-name="RHBA-2009:0237"/><erratum last-modified="1232480208" id="rhn-erratum-8182" advisory-name="RHBA-2009:0239"/><erratum last-modified="1232480208" id="rhn-erratum-8183" advisory-name="RHBA-2009:0240"/><erratum last-modified="1232480208" id="rhn-erratum-8184" advisory-name="RHBA-2009:0241"/><erratum last-modified="1232480208" id="rhn-erratum-8185" advisory-name="RHBA-2009:0242"/><erratum last-modified="1232480208" id="rhn-erratum-8187" advisory-name="RHBA-2009:0245"/><erratum last-modified="1232480208" id="rhn-erratum-8188" advisory-name="RHBA-2009:0246"/><erratum last-modified="1232480208" id="rhn-erratum-8189" advisory-name="RHBA-2009:0247"/><erratum last-modified="1232480208" id="rhn-erratum-8190" advisory-name="RHBA-2009:0248"/><erratum last-modified="1232480208" id="rhn-erratum-8191" advisory-name="RHBA-2009:0249"/><erratum last-modified="1232480208" id="rhn-erratum-8192" advisory-name="RHBA-2009:0250"/><erratum last-modified="1232470005" id="rhn-erratum-8193" advisory-name="RHBA-2009:0252"/><erratum last-modified="1232480208" id="rhn-erratum-8194" advisory-name="RHBA-2009:0185"/><erratum last-modified="1232495455" id="rhn-erratum-8195" advisory-name="RHBA-2009:0169"/><erratum last-modified="1232497996" id="rhn-erratum-8203" advisory-name="RHBA-2009:0017"/><erratum last-modified="1232503970" id="rhn-erratum-8204" advisory-name="RHBA-2009:0048"/><erratum last-modified="1232495619" id="rhn-erratum-8205" advisory-name="RHBA-2009:0049"/><erratum last-modified="1233222316" id="rhn-erratum-8243" advisory-name="RHSA-2009:0046"/><erratum last-modified="1233737974" id="rhn-erratum-8266" advisory-name="RHSA-2009:0256"/><erratum last-modified="1233849544" id="rhn-erratum-8276" advisory-name="RHSA-2009:0267"/><erratum last-modified="1233925487" id="rhn-erratum-8279" advisory-name="RHSA-2009:0271"/><erratum last-modified="1234281035" id="rhn-erratum-8283" advisory-name="RHSA-2009:0264"/><erratum last-modified="1251890453" id="rhn-erratum-8284" advisory-name="RHBA-2009:0276"/><erratum last-modified="1251890602" id="rhn-erratum-8285" advisory-name="RHBA-2009:0277"/><erratum last-modified="1251890770" id="rhn-erratum-8286" advisory-name="RHBA-2009:0279"/><erratum last-modified="1234371093" id="rhn-erratum-8288" advisory-name="RHSA-2009:0012"/><erratum last-modified="1234371489" id="rhn-erratum-8289" advisory-name="RHSA-2009:0259"/><erratum last-modified="1234374733" id="rhn-erratum-8291" advisory-name="RHSA-2009:0261"/><erratum last-modified="1251891421" id="rhn-erratum-8301" advisory-name="RHBA-2009:0294"/><erratum last-modified="1234975480" id="rhn-erratum-8304" advisory-name="RHBA-2009:0309"/><erratum last-modified="1235513125" id="rhn-erratum-8319" advisory-name="RHBA-2009:0280"/><erratum last-modified="1235749692" id="rhn-erratum-8325" advisory-name="RHBA-2009:0283"/><erratum last-modified="1236194593" id="rhn-erratum-8327" advisory-name="RHSA-2009:0313"/><erratum last-modified="1236196706" id="rhn-erratum-8328" advisory-name="RHSA-2009:0333"/><erratum last-modified="1236211859" id="rhn-erratum-8330" advisory-name="RHSA-2009:0315"/><erratum last-modified="1251891574" id="rhn-erratum-8338" advisory-name="RHBA-2009:0305"/><erratum last-modified="1251891276" id="rhn-erratum-8339" advisory-name="RHBA-2009:0291"/><erratum last-modified="1236867191" id="rhn-erratum-8358" advisory-name="RHSA-2009:0296"/><erratum last-modified="1237211621" id="rhn-erratum-8362" advisory-name="RHSA-2009:0344"/><erratum last-modified="1237212400" id="rhn-erratum-8363" advisory-name="RHSA-2009:0354"/><erratum last-modified="1251892651" id="rhn-erratum-8378" advisory-name="RHBA-2009:0378"/><erratum last-modified="1251901881" id="rhn-erratum-8379" advisory-name="RHBA-2009:0379"/><erratum last-modified="1251892890" id="rhn-erratum-8380" advisory-name="RHBA-2009:0380"/><erratum last-modified="1237475158" id="rhn-erratum-8382" advisory-name="RHSA-2009:0339"/><erratum last-modified="1237476611" id="rhn-erratum-8383" advisory-name="RHSA-2009:0341"/><erratum last-modified="1237478023" id="rhn-erratum-8384" advisory-name="RHSA-2009:0345"/><erratum last-modified="1237896260" id="rhn-erratum-8399" advisory-name="RHSA-2009:0336"/><erratum last-modified="1251892784" id="rhn-erratum-8400" advisory-name="RHBA-2009:0389"/><erratum last-modified="1251891869" id="rhn-erratum-8401" advisory-name="RHBA-2009:0390"/><erratum last-modified="1237989484" id="rhn-erratum-8403" advisory-name="RHSA-2009:0361"/><erratum last-modified="1238083248" id="rhn-erratum-8409" advisory-name="RHSA-2009:0373"/><erratum last-modified="1238196859" id="rhn-erratum-8423" advisory-name="RHSA-2009:0397"/><erratum last-modified="1238423623" id="rhn-erratum-8424" advisory-name="RHBA-2009:0401"/><erratum last-modified="1238431951" id="rhn-erratum-8425" advisory-name="RHSA-2009:0402"/><erratum last-modified="1238488903" id="rhn-erratum-8426" advisory-name="RHEA-2009:0403"/><erratum last-modified="1238574216" id="rhn-erratum-8427" advisory-name="RHSA-2009:0326"/><erratum last-modified="1251893018" id="rhn-erratum-8428" advisory-name="RHBA-2009:0404"/><erratum last-modified="1251901555" id="rhn-erratum-8429" advisory-name="RHBA-2009:0405"/><erratum last-modified="1238684368" id="rhn-erratum-8431" advisory-name="RHBA-2009:0406"/><erratum last-modified="1239035514" id="rhn-erratum-8437" advisory-name="RHSA-2009:0352"/><erratum last-modified="1239035685" id="rhn-erratum-8438" advisory-name="RHSA-2009:0338"/><erratum last-modified="1239129395" id="rhn-erratum-8440" advisory-name="RHSA-2009:0377"/><erratum last-modified="1239129589" id="rhn-erratum-8441" advisory-name="RHSA-2009:0408"/><erratum last-modified="1239131002" id="rhn-erratum-8444" advisory-name="RHSA-2009:0411"/><erratum last-modified="1251893998" id="rhn-erratum-8445" advisory-name="RHBA-2009:0412"/><erratum last-modified="1251893770" id="rhn-erratum-8446" advisory-name="RHBA-2009:0413"/><erratum last-modified="1251893573" id="rhn-erratum-8447" advisory-name="RHBA-2009:0414"/><erratum last-modified="1239307344" id="rhn-erratum-8449" advisory-name="RHBA-2009:0416"/><erratum last-modified="1239307510" id="rhn-erratum-8450" advisory-name="RHBA-2009:0417"/><erratum last-modified="1239307689" id="rhn-erratum-8451" advisory-name="RHBA-2009:0418"/><erratum last-modified="1239731641" id="rhn-erratum-8461" advisory-name="RHSA-2009:0421"/><erratum last-modified="1239788525" id="rhn-erratum-8462" advisory-name="RHEA-2009:0422"/><erratum last-modified="1251894185" id="rhn-erratum-8463" advisory-name="RHBA-2009:0423"/><erratum last-modified="1251893153" id="rhn-erratum-8464" advisory-name="RHBA-2009:0424"/><erratum last-modified="1251892498" id="rhn-erratum-8465" advisory-name="RHBA-2009:0425"/><erratum last-modified="1251892034" id="rhn-erratum-8466" advisory-name="RHBA-2009:0426"/><erratum last-modified="1239910537" id="rhn-erratum-8467" advisory-name="RHSA-2009:0427"/><erratum last-modified="1239919907" id="rhn-erratum-8469" advisory-name="RHSA-2009:0429"/><erratum last-modified="1239975414" id="rhn-erratum-8472" advisory-name="RHBA-2009:0432"/><erratum last-modified="1240364412" id="rhn-erratum-8476" advisory-name="RHSA-2009:0436"/><erratum last-modified="1251895891" id="rhn-erratum-8477" advisory-name="RHBA-2009:0438"/><erratum last-modified="1251895717" id="rhn-erratum-8478" advisory-name="RHBA-2009:0439"/><erratum last-modified="1251895285" id="rhn-erratum-8479" advisory-name="RHBA-2009:0440"/><erratum last-modified="1251894684" id="rhn-erratum-8480" advisory-name="RHBA-2009:0441"/><erratum last-modified="1251894498" id="rhn-erratum-8481" advisory-name="RHBA-2009:0442"/><erratum last-modified="1240405100" id="rhn-erratum-8482" advisory-name="RHBA-2009:0443"/><erratum last-modified="1240421850" id="rhn-erratum-8483" advisory-name="RHSA-2009:0444"/><erratum last-modified="1240866192" id="rhn-erratum-8521" advisory-name="RHSA-2009:0449"/><erratum last-modified="1251897739" id="rhn-erratum-8524" advisory-name="RHBA-2009:0452"/><erratum last-modified="1251895441" id="rhn-erratum-8525" advisory-name="RHBA-2009:0453"/><erratum last-modified="1241095601" id="rhn-erratum-8528" advisory-name="RHBA-2009:0456"/><erratum last-modified="1241124168" id="rhn-erratum-8529" advisory-name="RHSA-2009:0457"/><erratum last-modified="1241606946" id="rhn-erratum-8538" advisory-name="RHBA-2009:0461"/><erratum last-modified="1251896232" id="rhn-erratum-8539" advisory-name="RHBA-2009:0462"/><erratum last-modified="1251896081" id="rhn-erratum-8540" advisory-name="RHBA-2009:0463"/><erratum last-modified="1251895131" id="rhn-erratum-8542" advisory-name="RHBA-2009:0465"/><erratum last-modified="1241689947" id="rhn-erratum-8543" advisory-name="RHBA-2009:0467"/><erratum last-modified="1241693590" id="rhn-erratum-8549" advisory-name="RHSA-2009:0473"/><erratum last-modified="1241697393" id="rhn-erratum-8551" advisory-name="RHSA-2009:0474"/><erratum last-modified="1241698624" id="rhn-erratum-8552" advisory-name="RHBA-2009:0475"/><erratum last-modified="1241774754" id="rhn-erratum-8558" advisory-name="RHSA-2009:0476"/><erratum last-modified="1241804814" id="rhn-erratum-8559" advisory-name="RHBA-2009:0477"/><erratum last-modified="1242224830" id="rhn-erratum-8561" advisory-name="RHSA-2009:0479"/><erratum last-modified="1242225153" id="rhn-erratum-8562" advisory-name="RHSA-2009:0480"/><erratum last-modified="1251902269" id="rhn-erratum-8563" advisory-name="RHBA-2009:0481"/><erratum last-modified="1251896851" id="rhn-erratum-8564" advisory-name="RHBA-2009:0482"/><erratum last-modified="1251896558" id="rhn-erratum-8565" advisory-name="RHBA-2009:0483"/><erratum last-modified="1251894347" id="rhn-erratum-8566" advisory-name="RHBA-2009:0484"/><erratum last-modified="1242677390" id="rhn-erratum-8671" advisory-name="RHSA-2009:1036"/><erratum last-modified="1242678906" id="rhn-erratum-8673" advisory-name="RHSA-2009:1039"/><erratum last-modified="1251898985" id="rhn-erratum-8690" advisory-name="RHBA-2009:1056"/><erratum last-modified="1242993962" id="rhn-erratum-8703" advisory-name="RHSA-2009:1061"/><erratum last-modified="1243358818" id="rhn-erratum-8724" advisory-name="RHSA-2009:1066"/><erratum last-modified="1243411642" id="rhn-erratum-8725" advisory-name="RHBA-2009:1068"/><erratum last-modified="1243412316" id="rhn-erratum-8726" advisory-name="RHBA-2009:1069"/><erratum last-modified="1251902639" id="rhn-erratum-8727" advisory-name="RHBA-2009:1070"/><erratum last-modified="1251902447" id="rhn-erratum-8728" advisory-name="RHBA-2009:1071"/><erratum last-modified="1251899735" id="rhn-erratum-8729" advisory-name="RHBA-2009:1072"/><erratum last-modified="1251898792" id="rhn-erratum-8730" advisory-name="RHEA-2009:1073"/><erratum last-modified="1251898432" id="rhn-erratum-8731" advisory-name="RHBA-2009:1074"/><erratum last-modified="1243433945" id="rhn-erratum-8732" advisory-name="RHSA-2009:1075"/><erratum last-modified="1251899215" id="rhn-erratum-8742" advisory-name="RHBA-2009:1078"/><erratum last-modified="1251896388" id="rhn-erratum-8743" advisory-name="RHBA-2009:1079"/><erratum last-modified="1251894855" id="rhn-erratum-8744" advisory-name="RHBA-2009:1080"/><erratum last-modified="1244043269" id="rhn-erratum-8745" advisory-name="RHSA-2009:1082"/><erratum last-modified="1251902372" id="rhn-erratum-8765" advisory-name="RHBA-2009:1089"/><erratum last-modified="1251898633" id="rhn-erratum-8766" advisory-name="RHBA-2009:1090"/><erratum last-modified="1244712708" id="rhn-erratum-8769" advisory-name="RHBA-2009:1092"/><erratum last-modified="1244760082" id="rhn-erratum-8772" advisory-name="RHSA-2009:1095"/><erratum last-modified="1245049997" id="rhn-erratum-8776" advisory-name="RHBA-2009:1099"/><erratum last-modified="1245098247" id="rhn-erratum-8777" advisory-name="RHSA-2009:1100"/><erratum last-modified="1245099386" id="rhn-erratum-8778" advisory-name="RHBA-2009:1088"/><erratum last-modified="1245100252" id="rhn-erratum-8780" advisory-name="RHSA-2009:1102"/><erratum last-modified="1245137587" id="rhn-erratum-8781" advisory-name="RHBA-2009:1103"/><erratum last-modified="1245157126" id="rhn-erratum-8782" advisory-name="RHBA-2009:1104"/><erratum last-modified="1245169236" id="rhn-erratum-8783" advisory-name="RHEA-2009:1105"/><erratum last-modified="1245191652" id="rhn-erratum-8784" advisory-name="RHSA-2009:1106"/><erratum last-modified="1245188970" id="rhn-erratum-8785" advisory-name="RHSA-2009:1107"/><erratum last-modified="1251898283" id="rhn-erratum-8788" advisory-name="RHBA-2009:1110"/><erratum last-modified="1251898086" id="rhn-erratum-8789" advisory-name="RHBA-2009:1111"/><erratum last-modified="1251897375" id="rhn-erratum-8790" advisory-name="RHBA-2009:1112"/><erratum last-modified="1251893281" id="rhn-erratum-8791" advisory-name="RHBA-2009:1113"/><erratum last-modified="1245345978" id="rhn-erratum-8794" advisory-name="RHSA-2009:1116"/><erratum last-modified="1251903394" id="rhn-erratum-8796" advisory-name="RHBA-2009:1117"/><erratum last-modified="1251904193" id="rhn-erratum-8797" advisory-name="RHBA-2009:1118"/><erratum last-modified="1251901978" id="rhn-erratum-8798" advisory-name="RHBA-2009:1119"/><erratum last-modified="1251897187" id="rhn-erratum-8799" advisory-name="RHBA-2009:1120"/><erratum last-modified="1251896704" id="rhn-erratum-8800" advisory-name="RHEA-2009:1121"/><erratum last-modified="1245938790" id="rhn-erratum-8816" advisory-name="RHSA-2009:1122"/><erratum last-modified="1245939212" id="rhn-erratum-8817" advisory-name="RHSA-2009:1123"/><erratum last-modified="1245948118" id="rhn-erratum-8821" advisory-name="RHSA-2009:1127"/><erratum last-modified="1246018455" id="rhn-erratum-8836" advisory-name="RHBA-2009:1131"/><erratum last-modified="1246351025" id="rhn-erratum-8838" advisory-name="RHBA-2009:1133"/><erratum last-modified="1246531095" id="rhn-erratum-8856" advisory-name="RHBA-2009:1137"/><erratum last-modified="1246546970" id="rhn-erratum-8857" advisory-name="RHSA-2009:1138"/><erratum last-modified="1246554217" id="rhn-erratum-8859" advisory-name="RHSA-2009:1140"/><erratum last-modified="1246606281" id="rhn-erratum-8861" advisory-name="RHBA-2009:1142"/><erratum last-modified="1247155814" id="rhn-erratum-8883" advisory-name="RHSA-2009:1148"/><erratum last-modified="1247238297" id="rhn-erratum-8885" advisory-name="RHBA-2009:1150"/><erratum last-modified="1247562642" id="rhn-erratum-8886" advisory-name="RHBA-2009:1151"/><erratum last-modified="1247772613" id="rhn-erratum-8895" advisory-name="RHSA-2009:1159"/><erratum last-modified="1248075024" id="rhn-erratum-8897" advisory-name="RHBA-2009:1161"/><erratum last-modified="1248209788" id="rhn-erratum-8898" advisory-name="RHSA-2009:1164"/><erratum last-modified="1248225956" id="rhn-erratum-8899" advisory-name="RHSA-2009:1162"/><erratum last-modified="1248247063" id="rhn-erratum-8901" advisory-name="RHBA-2009:1165"/><erratum last-modified="1248686569" id="rhn-erratum-8912" advisory-name="RHSA-2009:1176"/><erratum last-modified="1248908176" id="rhn-erratum-8915" advisory-name="RHSA-2009:1179"/><erratum last-modified="1248992401" id="rhn-erratum-8923" advisory-name="RHSA-2009:1186"/><erratum last-modified="1249284929" id="rhn-erratum-8927" advisory-name="RHBA-2009:1191"/><erratum last-modified="1249285235" id="rhn-erratum-8928" advisory-name="RHBA-2009:1192"/><erratum last-modified="1249391447" id="rhn-erratum-8929" advisory-name="RHSA-2009:1193"/><erratum last-modified="1249593283" id="rhn-erratum-8936" advisory-name="RHSA-2009:1201"/><erratum last-modified="1249635208" id="rhn-erratum-8938" advisory-name="RHBA-2009:1202"/><erratum last-modified="1249923570" id="rhn-erratum-8939" advisory-name="RHSA-2009:1203"/><erratum last-modified="1249924960" id="rhn-erratum-8940" advisory-name="RHSA-2009:1204"/><erratum last-modified="1249928065" id="rhn-erratum-8942" advisory-name="RHSA-2009:1206"/><erratum last-modified="1250174015" id="rhn-erratum-8946" advisory-name="RHSA-2009:1209"/><erratum last-modified="1250515305" id="rhn-erratum-8960" advisory-name="RHEA-2009:1214"/><erratum last-modified="1250587186" id="rhn-erratum-8961" advisory-name="RHBA-2009:1215"/><erratum last-modified="1250619786" id="rhn-erratum-8965" advisory-name="RHSA-2009:1219"/><erratum last-modified="1251112218" id="rhn-erratum-8968" advisory-name="RHSA-2009:1222"/><erratum last-modified="1251298026" id="rhn-erratum-8978" advisory-name="RHSA-2009:1232"/><erratum last-modified="1251764323" id="rhn-erratum-8985" advisory-name="RHSA-2009:1238"/><erratum last-modified="1251874953" id="rhn-erratum-8988" advisory-name="RHBA-2009:1240"/><erratum last-modified="1251899232" id="rhn-erratum-8989" advisory-name="RHBA-2009:1241"/><erratum last-modified="1251874953" id="rhn-erratum-8990" advisory-name="RHBA-2009:1242"/><erratum last-modified="1252518575" id="rhn-erratum-8991" advisory-name="RHSA-2009:1243"/><erratum last-modified="1251874953" id="rhn-erratum-8992" advisory-name="RHBA-2009:1244"/><erratum last-modified="1251874953" id="rhn-erratum-8993" advisory-name="RHEA-2009:1245"/><erratum last-modified="1251874953" id="rhn-erratum-8996" advisory-name="RHBA-2009:1249"/><erratum last-modified="1251899232" id="rhn-erratum-8997" advisory-name="RHBA-2009:1250"/><erratum last-modified="1251874953" id="rhn-erratum-8998" advisory-name="RHBA-2009:1251"/><erratum last-modified="1251899232" id="rhn-erratum-8999" advisory-name="RHBA-2009:1256"/><erratum last-modified="1251899232" id="rhn-erratum-9000" advisory-name="RHBA-2009:1257"/><erratum last-modified="1251874953" id="rhn-erratum-9001" advisory-name="RHBA-2009:1258"/><erratum last-modified="1251899232" id="rhn-erratum-9002" advisory-name="RHBA-2009:1259"/><erratum last-modified="1251874953" id="rhn-erratum-9004" advisory-name="RHBA-2009:1262"/><erratum last-modified="1251899232" id="rhn-erratum-9006" advisory-name="RHEA-2009:1264"/><erratum last-modified="1251874953" id="rhn-erratum-9007" advisory-name="RHBA-2009:1265"/><erratum last-modified="1251899232" id="rhn-erratum-9008" advisory-name="RHEA-2009:1266"/><erratum last-modified="1251899232" id="rhn-erratum-9009" advisory-name="RHBA-2009:1267"/><erratum last-modified="1251899232" id="rhn-erratum-9010" advisory-name="RHBA-2009:1268"/><erratum last-modified="1251899232" id="rhn-erratum-9013" advisory-name="RHBA-2009:1273"/><erratum last-modified="1251899232" id="rhn-erratum-9014" advisory-name="RHEA-2009:1274"/><erratum last-modified="1251899232" id="rhn-erratum-9017" advisory-name="RHBA-2009:1277"/><erratum last-modified="1251874953" id="rhn-erratum-9018" advisory-name="RHSA-2009:1278"/><erratum last-modified="1251899232" id="rhn-erratum-9019" advisory-name="RHEA-2009:1279"/><erratum last-modified="1251874953" id="rhn-erratum-9020" advisory-name="RHBA-2009:1280"/><erratum last-modified="1251874953" id="rhn-erratum-9021" advisory-name="RHEA-2009:1281"/><erratum last-modified="1251899232" id="rhn-erratum-9022" advisory-name="RHBA-2009:1282"/><erratum last-modified="1251899232" id="rhn-erratum-9023" advisory-name="RHBA-2009:1283"/><erratum last-modified="1251899232" id="rhn-erratum-9024" advisory-name="RHEA-2009:1284"/><erratum last-modified="1251899232" id="rhn-erratum-9026" advisory-name="RHBA-2009:1286"/><erratum last-modified="1251874953" id="rhn-erratum-9027" advisory-name="RHSA-2009:1287"/><erratum last-modified="1251899232" id="rhn-erratum-9028" advisory-name="RHBA-2009:1288"/><erratum last-modified="1251874953" id="rhn-erratum-9029" advisory-name="RHBA-2009:1290"/><erratum last-modified="1251899232" id="rhn-erratum-9030" advisory-name="RHBA-2009:1291"/><erratum last-modified="1251874953" id="rhn-erratum-9031" advisory-name="RHBA-2009:1292"/><erratum last-modified="1251874953" id="rhn-erratum-9032" advisory-name="RHEA-2009:1293"/><erratum last-modified="1251899232" id="rhn-erratum-9033" advisory-name="RHEA-2009:1294"/><erratum last-modified="1251899232" id="rhn-erratum-9034" advisory-name="RHEA-2009:1295"/><erratum last-modified="1251899232" id="rhn-erratum-9035" advisory-name="RHEA-2009:1296"/><erratum last-modified="1251874953" id="rhn-erratum-9036" advisory-name="RHEA-2009:1297"/><erratum last-modified="1251899232" id="rhn-erratum-9037" advisory-name="RHBA-2009:1298"/><erratum last-modified="1251899232" id="rhn-erratum-9039" advisory-name="RHBA-2009:1300"/><erratum last-modified="1251899232" id="rhn-erratum-9040" advisory-name="RHBA-2009:1301"/><erratum last-modified="1251899232" id="rhn-erratum-9042" advisory-name="RHEA-2009:1303"/><erratum last-modified="1251899232" id="rhn-erratum-9043" advisory-name="RHBA-2009:1304"/><erratum last-modified="1251874953" id="rhn-erratum-9045" advisory-name="RHBA-2009:1306"/><erratum last-modified="1251899232" id="rhn-erratum-9046" advisory-name="RHSA-2009:1307"/><erratum last-modified="1251874953" id="rhn-erratum-9047" advisory-name="RHEA-2009:1308"/><erratum last-modified="1251874953" id="rhn-erratum-9049" advisory-name="RHBA-2009:1310"/><erratum last-modified="1251899232" id="rhn-erratum-9051" advisory-name="RHEA-2009:1312"/><erratum last-modified="1251899232" id="rhn-erratum-9052" advisory-name="RHBA-2009:1313"/><erratum last-modified="1251899232" id="rhn-erratum-9053" advisory-name="RHEA-2009:1314"/><erratum last-modified="1251899232" id="rhn-erratum-9054" advisory-name="RHEA-2009:1315"/><erratum last-modified="1251874953" id="rhn-erratum-9055" advisory-name="RHEA-2009:1316"/><erratum last-modified="1251874953" id="rhn-erratum-9056" advisory-name="RHBA-2009:1317"/><erratum last-modified="1251874953" id="rhn-erratum-9057" advisory-name="RHEA-2009:1318"/><erratum last-modified="1251874953" id="rhn-erratum-9058" advisory-name="RHBA-2009:1319"/><erratum last-modified="1251899232" id="rhn-erratum-9059" advisory-name="RHEA-2009:1320"/><erratum last-modified="1251874953" id="rhn-erratum-9060" advisory-name="RHSA-2009:1321"/><erratum last-modified="1251899232" id="rhn-erratum-9061" advisory-name="RHBA-2009:1322"/><erratum last-modified="1251874953" id="rhn-erratum-9063" advisory-name="RHBA-2009:1324"/><erratum last-modified="1251874953" id="rhn-erratum-9066" advisory-name="RHEA-2009:1327"/><erratum last-modified="1251899263" id="rhn-erratum-9067" advisory-name="RHBA-2009:1328"/><erratum last-modified="1251874953" id="rhn-erratum-9068" advisory-name="RHBA-2009:1329"/><erratum last-modified="1251899232" id="rhn-erratum-9069" advisory-name="RHBA-2009:1330"/><erratum last-modified="1251899232" id="rhn-erratum-9070" advisory-name="RHBA-2009:1331"/><erratum last-modified="1251899232" id="rhn-erratum-9071" advisory-name="RHEA-2009:1332"/><erratum last-modified="1251899232" id="rhn-erratum-9072" advisory-name="RHBA-2009:1333"/><erratum last-modified="1251899232" id="rhn-erratum-9074" advisory-name="RHSA-2009:1335"/><erratum last-modified="1251874953" id="rhn-erratum-9076" advisory-name="RHSA-2009:1337"/><erratum last-modified="1251899232" id="rhn-erratum-9080" advisory-name="RHSA-2009:1341"/><erratum last-modified="1251874953" id="rhn-erratum-9081" advisory-name="RHEA-2009:1342"/><erratum last-modified="1251874953" id="rhn-erratum-9082" advisory-name="RHBA-2009:1343"/><erratum last-modified="1251874953" id="rhn-erratum-9083" advisory-name="RHBA-2009:1344"/><erratum last-modified="1251899232" id="rhn-erratum-9084" advisory-name="RHBA-2009:1345"/><erratum last-modified="1251899232" id="rhn-erratum-9085" advisory-name="RHBA-2009:1346"/><erratum last-modified="1251899232" id="rhn-erratum-9086" advisory-name="RHBA-2009:1347"/><erratum last-modified="1251874953" id="rhn-erratum-9087" advisory-name="RHEA-2009:1348"/><erratum last-modified="1251899232" id="rhn-erratum-9088" advisory-name="RHBA-2009:1349"/><erratum last-modified="1251874953" id="rhn-erratum-9089" advisory-name="RHEA-2009:1350"/><erratum last-modified="1251874953" id="rhn-erratum-9090" advisory-name="RHBA-2009:1351"/><erratum last-modified="1251874953" id="rhn-erratum-9091" advisory-name="RHBA-2009:1352"/><erratum last-modified="1251874953" id="rhn-erratum-9092" advisory-name="RHBA-2009:1353"/><erratum last-modified="1251874953" id="rhn-erratum-9093" advisory-name="RHBA-2009:1354"/><erratum last-modified="1251874953" id="rhn-erratum-9094" advisory-name="RHBA-2009:1355"/><erratum last-modified="1251874953" id="rhn-erratum-9095" advisory-name="RHBA-2009:1356"/><erratum last-modified="1254425146" id="rhn-erratum-9096" advisory-name="RHBA-2009:1357"/><erratum last-modified="1251899232" id="rhn-erratum-9097" advisory-name="RHBA-2009:1358"/><erratum last-modified="1251899232" id="rhn-erratum-9098" advisory-name="RHBA-2009:1359"/><erratum last-modified="1251899232" id="rhn-erratum-9099" advisory-name="RHBA-2009:1360"/><erratum last-modified="1251874953" id="rhn-erratum-9100" advisory-name="RHBA-2009:1361"/><erratum last-modified="1251874953" id="rhn-erratum-9101" advisory-name="RHBA-2009:1362"/><erratum last-modified="1251874953" id="rhn-erratum-9102" advisory-name="RHEA-2009:1363"/><erratum last-modified="1251874953" id="rhn-erratum-9103" advisory-name="RHSA-2009:1364"/><erratum last-modified="1251874953" id="rhn-erratum-9104" advisory-name="RHBA-2009:1365"/><erratum last-modified="1251899232" id="rhn-erratum-9105" advisory-name="RHBA-2009:1366"/><erratum last-modified="1251874953" id="rhn-erratum-9107" advisory-name="RHBA-2009:1368"/><erratum last-modified="1251874953" id="rhn-erratum-9108" advisory-name="RHEA-2009:1369"/><erratum last-modified="1251874953" id="rhn-erratum-9109" advisory-name="RHBA-2009:1370"/><erratum last-modified="1251899232" id="rhn-erratum-9110" advisory-name="RHBA-2009:1371"/><erratum last-modified="1251899232" id="rhn-erratum-9111" advisory-name="RHBA-2009:1372"/><erratum last-modified="1251899232" id="rhn-erratum-9112" advisory-name="RHBA-2009:1373"/><erratum last-modified="1251874953" id="rhn-erratum-9113" advisory-name="RHBA-2009:1374"/><erratum last-modified="1251899232" id="rhn-erratum-9114" advisory-name="RHBA-2009:1375"/><erratum last-modified="1251899232" id="rhn-erratum-9115" advisory-name="RHBA-2009:1376"/><erratum last-modified="1251899232" id="rhn-erratum-9116" advisory-name="RHBA-2009:1378"/><erratum last-modified="1251874953" id="rhn-erratum-9117" advisory-name="RHBA-2009:1379"/><erratum last-modified="1251899232" id="rhn-erratum-9118" advisory-name="RHBA-2009:1380"/><erratum last-modified="1251874953" id="rhn-erratum-9120" advisory-name="RHBA-2009:1382"/><erratum last-modified="1251899232" id="rhn-erratum-9121" advisory-name="RHEA-2009:1384"/><erratum last-modified="1251874953" id="rhn-erratum-9122" advisory-name="RHEA-2009:1385"/><erratum last-modified="1251874953" id="rhn-erratum-9124" advisory-name="RHBA-2009:1387"/><erratum last-modified="1251874953" id="rhn-erratum-9125" advisory-name="RHBA-2009:1388"/><erratum last-modified="1251899232" id="rhn-erratum-9126" advisory-name="RHBA-2009:1389"/><erratum last-modified="1251874953" id="rhn-erratum-9127" advisory-name="RHBA-2009:1390"/><erratum last-modified="1251899232" id="rhn-erratum-9128" advisory-name="RHBA-2009:1391"/><erratum last-modified="1251874953" id="rhn-erratum-9129" advisory-name="RHBA-2009:1392"/><erratum last-modified="1251874953" id="rhn-erratum-9130" advisory-name="RHBA-2009:1393"/><erratum last-modified="1251899232" id="rhn-erratum-9132" advisory-name="RHBA-2009:1395"/><erratum last-modified="1251874953" id="rhn-erratum-9134" advisory-name="RHBA-2009:1397"/><erratum last-modified="1251874953" id="rhn-erratum-9136" advisory-name="RHEA-2009:1400"/><erratum last-modified="1251899232" id="rhn-erratum-9138" advisory-name="RHBA-2009:1402"/><erratum last-modified="1251874953" id="rhn-erratum-9139" advisory-name="RHBA-2009:1403"/><erratum last-modified="1251874953" id="rhn-erratum-9140" advisory-name="RHBA-2009:1404"/><erratum last-modified="1251874953" id="rhn-erratum-9141" advisory-name="RHBA-2009:1405"/><erratum last-modified="1251874953" id="rhn-erratum-9142" advisory-name="RHEA-2009:1406"/><erratum last-modified="1251874953" id="rhn-erratum-9143" advisory-name="RHEA-2009:1407"/><erratum last-modified="1251874953" id="rhn-erratum-9144" advisory-name="RHEA-2009:1408"/><erratum last-modified="1251899232" id="rhn-erratum-9145" advisory-name="RHBA-2009:1409"/><erratum last-modified="1251874953" id="rhn-erratum-9146" advisory-name="RHEA-2009:1410"/><erratum last-modified="1251899232" id="rhn-erratum-9147" advisory-name="RHEA-2009:1411"/><erratum last-modified="1251874953" id="rhn-erratum-9150" advisory-name="RHEA-2009:1377"/><erratum last-modified="1251899232" id="rhn-erratum-9157" advisory-name="RHSA-2009:1289"/><erratum last-modified="1251874953" id="rhn-erratum-9158" advisory-name="RHBA-2009:1413"/><erratum last-modified="1251899232" id="rhn-erratum-9159" advisory-name="RHBA-2009:1414"/><erratum last-modified="1251874953" id="rhn-erratum-9162" advisory-name="RHBA-2009:1415"/><erratum last-modified="1251874953" id="rhn-erratum-9163" advisory-name="RHBA-2009:1416"/><erratum last-modified="1251874953" id="rhn-erratum-9164" advisory-name="RHEA-2009:1417"/><erratum last-modified="1251876580" id="rhn-erratum-9166" advisory-name="RHBA-2009:1418"/><erratum last-modified="1251876776" id="rhn-erratum-9167" advisory-name="RHBA-2009:1419"/><erratum last-modified="1251876999" id="rhn-erratum-9168" advisory-name="RHBA-2009:1420"/><erratum last-modified="1251899854" id="rhn-erratum-9170" advisory-name="RHBA-2009:1422"/><erratum last-modified="1252422602" id="rhn-erratum-9175" advisory-name="RHSA-2009:1427"/><erratum last-modified="1252424580" id="rhn-erratum-9176" advisory-name="RHSA-2009:1428"/><erratum last-modified="1252538566" id="rhn-erratum-9179" advisory-name="RHSA-2009:1430"/><erratum last-modified="1252608717" id="rhn-erratum-9184" advisory-name="RHEA-2009:1435"/><erratum last-modified="1252657598" id="rhn-erratum-9185" advisory-name="RHBA-2009:1437"/><erratum last-modified="1253294999" id="rhn-erratum-9199" advisory-name="RHBA-2009:1435"/><erratum last-modified="1253198298" id="rhn-erratum-9200" advisory-name="RHSA-2009:1451"/><erratum last-modified="1253546063" id="rhn-erratum-9203" advisory-name="RHSA-2009:1452"/><erratum last-modified="1253610836" id="rhn-erratum-9206" advisory-name="RHEA-2009:1456"/><erratum last-modified="1253719476" id="rhn-erratum-9211" advisory-name="RHSA-2009:1459"/><erratum last-modified="1253820091" id="rhn-erratum-9215" advisory-name="RHSA-2009:1463"/><erratum last-modified="1254210796" id="rhn-erratum-9216" advisory-name="RHBA-2009:1464"/><erratum last-modified="1254252620" id="rhn-erratum-9219" advisory-name="RHSA-2009:1455"/><erratum last-modified="1254300291" id="rhn-erratum-9220" advisory-name="RHEA-2009:1467"/><erratum last-modified="1254306914" id="rhn-erratum-9221" advisory-name="RHBA-2009:1468"/><erratum last-modified="1254323283" id="rhn-erratum-9223" advisory-name="RHSA-2009:1470"/><erratum last-modified="1254417983" id="rhn-erratum-9224" advisory-name="RHSA-2009:1471"/><erratum last-modified="1254419726" id="rhn-erratum-9225" advisory-name="RHSA-2009:1472"/><erratum last-modified="1254490488" id="rhn-erratum-9227" advisory-name="RHBA-2009:1474"/><erratum last-modified="1254727120" id="rhn-erratum-9229" advisory-name="RHBA-2009:1476"/><erratum last-modified="1254932561" id="rhn-erratum-9237" advisory-name="RHSA-2009:1484"/><erratum last-modified="1254931779" id="rhn-erratum-9240" advisory-name="RHBA-2009:1417"/><erratum last-modified="1254997927" id="rhn-erratum-9241" advisory-name="RHBA-2009:1487"/><erratum last-modified="1255033032" id="rhn-erratum-9244" advisory-name="RHSA-2009:1490"/><erratum last-modified="1255419221" id="rhn-erratum-9248" advisory-name="RHBA-2009:1494"/><erratum last-modified="1255421818" id="rhn-erratum-9249" advisory-name="RHBA-2009:1495"/><erratum last-modified="1255592166" id="rhn-erratum-9260" advisory-name="RHBA-2009:1511"/><erratum last-modified="1255596673" id="rhn-erratum-9265" advisory-name="RHSA-2009:1504"/><erratum last-modified="1255597236" id="rhn-erratum-9266" advisory-name="RHSA-2009:1513"/><erratum last-modified="1255609387" id="rhn-erratum-9268" advisory-name="RHBA-2009:1514"/></rhn-channel-errata><rhn-release/></rhn-channel><rhn-channel channel-arch="channel-x86_64" has-comps="False" channel-errata="rhn-erratum-9245" kickstartable-trees="" label="rhn-tools-rhel-x86_64-server-5" packages="rhn-package-368425 rhn-package-368426 rhn-package-368430 rhn-package-368431 rhn-package-368435 rhn-package-368436 rhn-package-368437 rhn-package-368438 rhn-package-397864 rhn-package-397865 rhn-package-397866 rhn-package-397867 rhn-package-397868 rhn-package-397869 rhn-package-397870 rhn-package-397871 rhn-package-397872 rhn-package-397873 rhn-package-397874 rhn-package-397875 rhn-package-397876 rhn-package-397877 rhn-package-397878 rhn-package-397879 rhn-package-397880 rhn-package-397881 rhn-package-397882 rhn-package-397883 rhn-package-397884 rhn-package-397885 rhn-package-397886 rhn-package-397887 rhn-package-397888 rhn-package-397889 rhn-package-397890 rhn-package-397891 rhn-package-397892 rhn-package-397893 rhn-package-397894 rhn-package-397895 rhn-package-397896 rhn-package-397897 rhn-package-397898 rhn-package-397899 rhn-package-397900 rhn-package-397901 rhn-package-397902 rhn-package-397903 rhn-package-397904 rhn-package-397905 rhn-package-397906 rhn-package-397907 rhn-package-397908 rhn-package-397909 rhn-package-397910 rhn-package-397911 rhn-package-397912 rhn-package-397913 rhn-package-397914 rhn-package-397915 rhn-package-397916 rhn-package-397917 rhn-package-397918 rhn-package-397919 rhn-package-397920 rhn-package-397921 rhn-package-397922 rhn-package-397923 rhn-package-397924 rhn-package-397925 rhn-package-397926 rhn-package-397927 rhn-package-397928 rhn-package-397929 rhn-package-397930 rhn-package-397931 rhn-package-397932 rhn-package-397933 rhn-package-397934 rhn-package-397935 rhn-package-397936 rhn-package-397937 rhn-package-397938 rhn-package-397939 rhn-package-397940 rhn-package-397941 rhn-package-397942 rhn-package-397943 rhn-package-397944 rhn-package-397945 rhn-package-397946 rhn-package-397947 rhn-package-397948 rhn-package-397949 rhn-package-397950 rhn-package-397951 rhn-package-397952 rhn-package-397953 rhn-package-397954 rhn-package-397955 rhn-package-397956 rhn-package-397957 rhn-package-397958 rhn-package-397959 rhn-package-397960 rhn-package-397961 rhn-package-397962 rhn-package-397963 rhn-package-397964 rhn-package-397965 rhn-package-397966 rhn-package-397967 rhn-package-397968 rhn-package-397969 rhn-package-397970 rhn-package-397971 rhn-package-397972 rhn-package-397973 rhn-package-397974 rhn-package-397975 rhn-package-397976 rhn-package-397977 rhn-package-397978 rhn-package-397979 rhn-package-397980 rhn-package-397981 rhn-package-397982 rhn-package-397983 rhn-package-397984 rhn-package-397985 rhn-package-397986 rhn-package-397987 rhn-package-397988 rhn-package-397989 rhn-package-397990 rhn-package-397991 rhn-package-397992 rhn-package-397993 rhn-package-397994 rhn-package-397995 rhn-package-397996 rhn-package-397997 rhn-package-397998 rhn-package-397999 rhn-package-398000 rhn-package-398001 rhn-package-398002 rhn-package-398003 rhn-package-398004 rhn-package-398715 rhn-package-398716 rhn-package-398717 rhn-package-398718 rhn-package-398719 rhn-package-398720 rhn-package-398721 rhn-package-398722 rhn-package-398723 rhn-package-398725 rhn-package-398726 rhn-package-398727 rhn-package-398728 rhn-package-398729 rhn-package-398730 rhn-package-398731 rhn-package-398732 rhn-package-398733 rhn-package-398734 rhn-package-398735 rhn-package-398736 rhn-package-398737 rhn-package-398738 rhn-package-398739 rhn-package-398740 rhn-package-398741 rhn-package-398742 rhn-package-398743 rhn-package-398744 rhn-package-398745 rhn-package-398746 rhn-package-398747 rhn-package-398748 rhn-package-398749 rhn-package-398750 rhn-package-398751 rhn-package-398752 rhn-package-398753 rhn-package-398754 rhn-package-398755 rhn-package-398756 rhn-package-398757 rhn-package-398758 rhn-package-398759 rhn-package-398760 rhn-package-398761 rhn-package-398762 rhn-package-398763 rhn-package-398764 rhn-package-398765 rhn-package-398767 rhn-package-398768 rhn-package-398769 rhn-package-398770 rhn-package-398771 rhn-package-398772 rhn-package-398773 rhn-package-398774 rhn-package-398775 rhn-package-398776 rhn-package-398777 rhn-package-398778 rhn-package-398779 rhn-package-398780 rhn-package-398781 rhn-package-398782 rhn-package-398783 rhn-package-398784 rhn-package-398785 rhn-package-398786 rhn-package-398787 rhn-package-398788 rhn-package-398789 rhn-package-398790 rhn-package-398791 rhn-package-398792 rhn-package-398793 rhn-package-398794 rhn-package-398795 rhn-package-398796 rhn-package-398797 rhn-package-398798 rhn-package-398799 rhn-package-398800 rhn-package-398801 rhn-package-398802 rhn-package-398803 rhn-package-398804 rhn-package-398805 rhn-package-398806 rhn-package-398807 rhn-package-398808 rhn-package-398809 rhn-package-398810 rhn-package-398811 rhn-package-398812 rhn-package-398813 rhn-package-398814 rhn-package-398815 rhn-package-398816 rhn-package-398817 rhn-package-398818 rhn-package-398819 rhn-package-398820 rhn-package-398821 rhn-package-398822 rhn-package-398823 rhn-package-398824 rhn-package-398825 rhn-package-398826 rhn-package-398827 rhn-package-398828 rhn-package-398829 rhn-package-398830 rhn-package-398831 rhn-package-398832 rhn-package-398833 rhn-package-398834 rhn-package-398835 rhn-package-398836 rhn-package-398837 rhn-package-398838 rhn-package-398839 rhn-package-398840 rhn-package-398841 rhn-package-398842 rhn-package-398843 rhn-package-398844 rhn-package-398845 rhn-package-398846 rhn-package-398847 rhn-package-398848 rhn-package-398849 rhn-package-398850 rhn-package-398851 rhn-package-398852 rhn-package-398853 rhn-package-398854 rhn-package-398855 rhn-package-398856 rhn-package-398857 rhn-package-398858 rhn-package-398859 rhn-package-398860 rhn-package-398861 rhn-package-398862 rhn-package-398863 rhn-package-398864 rhn-package-398865 rhn-package-398866 rhn-package-398867 rhn-package-398868 rhn-package-398869 rhn-package-398870 rhn-package-398871 rhn-package-398872 rhn-package-398873 rhn-package-398874 rhn-package-398875 rhn-package-398876 rhn-package-398877 rhn-package-398878 rhn-package-398879 rhn-package-398880 rhn-package-405714 rhn-package-405715 rhn-package-405716 rhn-package-405717 rhn-package-405718 rhn-package-405729 rhn-package-405746 rhn-package-405764 rhn-package-405784 rhn-package-405801 rhn-package-405805 rhn-package-408794 rhn-package-408795 rhn-package-408796 rhn-package-408797 rhn-package-408798 rhn-package-408799 rhn-package-408800 rhn-package-408801 rhn-package-408802 rhn-package-408803 rhn-package-408804 rhn-package-409061 rhn-package-409062 rhn-package-409063 rhn-package-409064 rhn-package-409065 rhn-package-409066 rhn-package-409067 rhn-package-409068 rhn-package-409069 rhn-package-409070 rhn-package-409071 rhn-package-409072 rhn-package-416479 rhn-package-428323 rhn-package-428324 rhn-package-428325 rhn-package-428326 rhn-package-428327 rhn-package-428328 rhn-package-428329 rhn-package-428330 rhn-package-428331 rhn-package-428332 rhn-package-428333 rhn-package-438335 rhn-package-438336 rhn-package-438338 rhn-package-438340 rhn-package-438342 rhn-package-438344 rhn-package-438345 rhn-package-438346 rhn-package-438347 rhn-package-438348 rhn-package-438349 rhn-package-454517 rhn-package-454518 rhn-package-454519 rhn-package-454520 rhn-package-454521 rhn-package-454522 rhn-package-454523 rhn-package-454524 rhn-package-454525 rhn-package-454526 rhn-package-454527 rhn-package-464294 rhn-package-464549 rhn-package-465238 rhn-package-467939 rhn-package-471383 rhn-package-482361 rhn-package-482362 rhn-package-482363 rhn-package-482364 rhn-package-482365 rhn-package-482366 rhn-package-482367 rhn-package-482368 rhn-package-482369 rhn-package-482370 rhn-package-482371 rhn-package-491636 rhn-package-491638 rhn-package-491639 rhn-package-491640 rhn-package-491642 rhn-package-491643 rhn-package-491645 rhn-package-491646 rhn-package-491647 rhn-package-491648 rhn-package-491649 rhn-package-491650 rhn-package-491651 rhn-package-491652 rhn-package-491751 rhn-package-491753 rhn-package-491761 rhn-package-491766 rhn-package-491968 rhn-package-491969 rhn-package-495494 rhn-package-495495" channel-id="rhn-channel-6986"><rhn-channel-parent-channel>rhel-x86_64-server-5</rhn-channel-parent-channel><rhn-channel-basedir>/</rhn-channel-basedir><rhn-channel-name>Red Hat Network Tools for RHEL Server (v.5 64-bit x86_64)</rhn-channel-name><rhn-channel-summary>Red Hat Network Tools for RHEL 5 Server (x86_64)</rhn-channel-summary><rhn-channel-description><rhn-null/></rhn-channel-description><rhn-channel-gpg-key-url>file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release</rhn-channel-gpg-key-url><rhn-channel-receiving-updates>Y</rhn-channel-receiving-updates><rhn-channel-last-modified>1255334772</rhn-channel-last-modified><rhn-channel-product-name>rhn-tools</rhn-channel-product-name><rhn-channel-product-version>5</rhn-channel-product-version><rhn-channel-product-beta>N</rhn-channel-product-beta><rhn-channel-families><rhn-channel-family virt-sub-level-name="Virtualization free content group,Virtualization Platform free content group" channel-labels="rhn-tools-rhel-3-as-i386 rhn-tools-rhel-3-es-i386 rhn-tools-rhel-3-ws-i386 rhn-tools-redhat-linux-i386-9 rhn-tools-rhel-3-desktop-i386 rhn-tools-rhel-3-as-x86_64 rhn-tools-rhel-3-es-x86_64 rhn-tools-rhel-3-ws-x86_64 rhn-tools-rhel-3-desktop-x86_64 rhn-tools-rhel-4-as-i386 rhn-tools-rhel-4-es-i386 rhn-tools-rhel-4-ws-i386 rhn-tools-rhel-4-desktop-i386 rhn-tools-rhel-4-as-x86_64 rhn-tools-rhel-4-es-x86_64 rhn-tools-rhel-4-ws-x86_64 rhn-tools-rhel-4-desktop-x86_64 rhn-tools-rhel-3-as-ia64 rhn-tools-rhel-3-es-ia64 rhn-tools-rhel-3-ws-ia64 rhn-tools-rhel-4-as-ia64 rhn-tools-rhel-4-es-ia64 rhn-tools-rhel-4-ws-ia64 rhn-tools-rhel-i386-server-5 rhn-tools-rhel-x86_64-server-5 rhn-tools-rhel-ia64-server-5 rhn-tools-rhel-i386-client-5 rhn-tools-rhel-x86_64-client-5 rhn-tools-rhel-4-as-ppc rhn-tools-rhel-4-as-s390 rhn-tools-rhel-4-as-s390x rhn-tools-rhel-ppc-server-5 rhn-tools-rhel-s390x-server-5 rhn-tools-rhel-3-as-ppc rhn-tools-rhel-3-as-s390 rhn-tools-rhel-3-as-s390x" virt-sub-level-label="virtualization_free virtualization_platform_free" id="rhn-channel-family-1729" label="rhn-tools"/></rhn-channel-families><rhn-dists/><source-packages><source-package last-modified="1233329286" id="rhn-source-package-49388" source-rpm="perl-IO-stringy-2.109-11.el5.src.rpm"/><source-package last-modified="1233330261" id="rhn-source-package-49498" source-rpm="jabberpy-0.5-0.13.el5.src.rpm"/><source-package last-modified="1252523515" id="rhn-source-package-51516" source-rpm="spacewalk-ssl-cert-check-1.7-1.el5sat.src.rpm"/><source-package last-modified="1252523515" id="rhn-source-package-51526" source-rpm="spacewalk-certs-tools-0.5.5-6.el5sat.src.rpm"/><source-package last-modified="1252596930" id="rhn-source-package-51579" source-rpm="spacewalk-utils-0.5.1-8.el5sat.src.rpm"/></source-packages><rhn-channel-errata><erratum last-modified="1255334771" id="rhn-erratum-9245" advisory-name="RHEA-2009:1491"/></rhn-channel-errata><rhn-release/></rhn-channel><rhn-channel channel-arch="channel-ia32" has-comps="False" channel-errata="rhn-erratum-9245" kickstartable-trees="" label="rhn-tools-rhel-i386-server-5" packages="rhn-package-368425 rhn-package-368426 rhn-package-368430 rhn-package-368431 rhn-package-368435 rhn-package-368436 rhn-package-368437 rhn-package-368438 rhn-package-397864 rhn-package-397865 rhn-package-397866 rhn-package-397867 rhn-package-397868 rhn-package-397869 rhn-package-397870 rhn-package-397871 rhn-package-397872 rhn-package-397873 rhn-package-397874 rhn-package-397875 rhn-package-397876 rhn-package-397877 rhn-package-397878 rhn-package-397879 rhn-package-397880 rhn-package-397881 rhn-package-397882 rhn-package-397883 rhn-package-397884 rhn-package-397885 rhn-package-397886 rhn-package-397887 rhn-package-397888 rhn-package-397889 rhn-package-397890 rhn-package-397891 rhn-package-397892 rhn-package-397893 rhn-package-397894 rhn-package-397895 rhn-package-397896 rhn-package-397897 rhn-package-397898 rhn-package-397899 rhn-package-397900 rhn-package-397901 rhn-package-397902 rhn-package-397903 rhn-package-397904 rhn-package-397905 rhn-package-397906 rhn-package-397907 rhn-package-397908 rhn-package-397909 rhn-package-397910 rhn-package-397911 rhn-package-397912 rhn-package-397913 rhn-package-397914 rhn-package-397915 rhn-package-397916 rhn-package-397917 rhn-package-397918 rhn-package-397919 rhn-package-397920 rhn-package-397921 rhn-package-397922 rhn-package-397923 rhn-package-397924 rhn-package-397925 rhn-package-397926 rhn-package-397927 rhn-package-397928 rhn-package-397929 rhn-package-397930 rhn-package-397931 rhn-package-397932 rhn-package-397933 rhn-package-397934 rhn-package-397935 rhn-package-397936 rhn-package-397937 rhn-package-397938 rhn-package-397939 rhn-package-397940 rhn-package-397941 rhn-package-397942 rhn-package-397943 rhn-package-397944 rhn-package-397945 rhn-package-397946 rhn-package-397947 rhn-package-397948 rhn-package-397949 rhn-package-397950 rhn-package-397951 rhn-package-397952 rhn-package-397953 rhn-package-397954 rhn-package-397955 rhn-package-397956 rhn-package-397957 rhn-package-397958 rhn-package-397959 rhn-package-397960 rhn-package-397961 rhn-package-397962 rhn-package-397963 rhn-package-397964 rhn-package-397965 rhn-package-397966 rhn-package-397967 rhn-package-397968 rhn-package-397969 rhn-package-397970 rhn-package-397971 rhn-package-397972 rhn-package-397973 rhn-package-397974 rhn-package-397975 rhn-package-397976 rhn-package-397977 rhn-package-397978 rhn-package-397979 rhn-package-397980 rhn-package-397981 rhn-package-397982 rhn-package-397983 rhn-package-397984 rhn-package-397985 rhn-package-397986 rhn-package-397987 rhn-package-397988 rhn-package-397989 rhn-package-397990 rhn-package-397991 rhn-package-397992 rhn-package-397993 rhn-package-397994 rhn-package-397995 rhn-package-397996 rhn-package-397997 rhn-package-397998 rhn-package-397999 rhn-package-398000 rhn-package-398001 rhn-package-398002 rhn-package-398003 rhn-package-398004 rhn-package-398715 rhn-package-398716 rhn-package-398717 rhn-package-398718 rhn-package-398719 rhn-package-398720 rhn-package-398721 rhn-package-398722 rhn-package-398723 rhn-package-398725 rhn-package-398726 rhn-package-398727 rhn-package-398728 rhn-package-398729 rhn-package-398730 rhn-package-398731 rhn-package-398732 rhn-package-398733 rhn-package-398734 rhn-package-398735 rhn-package-398736 rhn-package-398737 rhn-package-398738 rhn-package-398739 rhn-package-398740 rhn-package-398741 rhn-package-398742 rhn-package-398743 rhn-package-398744 rhn-package-398745 rhn-package-398746 rhn-package-398747 rhn-package-398748 rhn-package-398749 rhn-package-398750 rhn-package-398751 rhn-package-398752 rhn-package-398753 rhn-package-398754 rhn-package-398755 rhn-package-398756 rhn-package-398757 rhn-package-398758 rhn-package-398759 rhn-package-398760 rhn-package-398761 rhn-package-398762 rhn-package-398763 rhn-package-398764 rhn-package-398765 rhn-package-398767 rhn-package-398768 rhn-package-398769 rhn-package-398770 rhn-package-398771 rhn-package-398772 rhn-package-398773 rhn-package-398774 rhn-package-398775 rhn-package-398776 rhn-package-398777 rhn-package-398778 rhn-package-398779 rhn-package-398780 rhn-package-398781 rhn-package-398782 rhn-package-398783 rhn-package-398784 rhn-package-398785 rhn-package-398786 rhn-package-398787 rhn-package-398788 rhn-package-398789 rhn-package-398790 rhn-package-398791 rhn-package-398792 rhn-package-398793 rhn-package-398794 rhn-package-398795 rhn-package-398796 rhn-package-398797 rhn-package-398798 rhn-package-398799 rhn-package-398800 rhn-package-398801 rhn-package-398802 rhn-package-398803 rhn-package-398804 rhn-package-398805 rhn-package-398806 rhn-package-398807 rhn-package-398808 rhn-package-398809 rhn-package-398810 rhn-package-398811 rhn-package-398812 rhn-package-398813 rhn-package-398814 rhn-package-398815 rhn-package-398816 rhn-package-398817 rhn-package-398818 rhn-package-398819 rhn-package-398820 rhn-package-398821 rhn-package-398822 rhn-package-398823 rhn-package-398824 rhn-package-398825 rhn-package-398826 rhn-package-398827 rhn-package-398828 rhn-package-398829 rhn-package-398830 rhn-package-398831 rhn-package-398832 rhn-package-398833 rhn-package-398834 rhn-package-398835 rhn-package-398836 rhn-package-398837 rhn-package-398838 rhn-package-398839 rhn-package-398840 rhn-package-398841 rhn-package-398842 rhn-package-398843 rhn-package-398844 rhn-package-398845 rhn-package-398846 rhn-package-398847 rhn-package-398848 rhn-package-398849 rhn-package-398850 rhn-package-398851 rhn-package-398852 rhn-package-398853 rhn-package-398854 rhn-package-398855 rhn-package-398856 rhn-package-398857 rhn-package-398858 rhn-package-398859 rhn-package-398860 rhn-package-398861 rhn-package-398862 rhn-package-398863 rhn-package-398864 rhn-package-398865 rhn-package-398866 rhn-package-398867 rhn-package-398868 rhn-package-398869 rhn-package-398870 rhn-package-398871 rhn-package-398872 rhn-package-398873 rhn-package-398874 rhn-package-398875 rhn-package-398876 rhn-package-398877 rhn-package-398878 rhn-package-398879 rhn-package-398880 rhn-package-405714 rhn-package-405715 rhn-package-405716 rhn-package-405717 rhn-package-405718 rhn-package-405729 rhn-package-405746 rhn-package-405764 rhn-package-405784 rhn-package-405801 rhn-package-405805 rhn-package-408794 rhn-package-408795 rhn-package-408796 rhn-package-408797 rhn-package-408798 rhn-package-408799 rhn-package-408800 rhn-package-408801 rhn-package-408802 rhn-package-408803 rhn-package-408804 rhn-package-409061 rhn-package-409062 rhn-package-409063 rhn-package-409064 rhn-package-409065 rhn-package-409066 rhn-package-409067 rhn-package-409068 rhn-package-409069 rhn-package-409070 rhn-package-409071 rhn-package-409072 rhn-package-416479 rhn-package-428323 rhn-package-428324 rhn-package-428325 rhn-package-428326 rhn-package-428327 rhn-package-428328 rhn-package-428329 rhn-package-428330 rhn-package-428331 rhn-package-428332 rhn-package-428333 rhn-package-438335 rhn-package-438336 rhn-package-438338 rhn-package-438340 rhn-package-438342 rhn-package-438344 rhn-package-438345 rhn-package-438346 rhn-package-438347 rhn-package-438348 rhn-package-438349 rhn-package-454517 rhn-package-454518 rhn-package-454519 rhn-package-454520 rhn-package-454521 rhn-package-454522 rhn-package-454523 rhn-package-454524 rhn-package-454525 rhn-package-454526 rhn-package-454527 rhn-package-464294 rhn-package-464549 rhn-package-465238 rhn-package-467939 rhn-package-471383 rhn-package-482361 rhn-package-482362 rhn-package-482363 rhn-package-482364 rhn-package-482365 rhn-package-482366 rhn-package-482367 rhn-package-482368 rhn-package-482369 rhn-package-482370 rhn-package-482371 rhn-package-491636 rhn-package-491638 rhn-package-491639 rhn-package-491640 rhn-package-491642 rhn-package-491643 rhn-package-491645 rhn-package-491646 rhn-package-491647 rhn-package-491648 rhn-package-491649 rhn-package-491650 rhn-package-491651 rhn-package-491652 rhn-package-491751 rhn-package-491753 rhn-package-491761 rhn-package-491762 rhn-package-491968 rhn-package-491969 rhn-package-495494 rhn-package-495495" channel-id="rhn-channel-6985"><rhn-channel-parent-channel>rhel-i386-server-5</rhn-channel-parent-channel><rhn-channel-basedir>/</rhn-channel-basedir><rhn-channel-name>Red Hat Network Tools for RHEL Server (v.5 32-bit x86)</rhn-channel-name><rhn-channel-summary>Red Hat Network Tools for RHEL 5 Server (i386)</rhn-channel-summary><rhn-channel-description><rhn-null/></rhn-channel-description><rhn-channel-gpg-key-url>file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release</rhn-channel-gpg-key-url><rhn-channel-receiving-updates>Y</rhn-channel-receiving-updates><rhn-channel-last-modified>1255334772</rhn-channel-last-modified><rhn-channel-product-name>rhn-tools</rhn-channel-product-name><rhn-channel-product-version>5</rhn-channel-product-version><rhn-channel-product-beta>N</rhn-channel-product-beta><rhn-channel-families><rhn-channel-family virt-sub-level-name="Virtualization free content group,Virtualization Platform free content group" channel-labels="rhn-tools-rhel-3-as-i386 rhn-tools-rhel-3-es-i386 rhn-tools-rhel-3-ws-i386 rhn-tools-redhat-linux-i386-9 rhn-tools-rhel-3-desktop-i386 rhn-tools-rhel-3-as-x86_64 rhn-tools-rhel-3-es-x86_64 rhn-tools-rhel-3-ws-x86_64 rhn-tools-rhel-3-desktop-x86_64 rhn-tools-rhel-4-as-i386 rhn-tools-rhel-4-es-i386 rhn-tools-rhel-4-ws-i386 rhn-tools-rhel-4-desktop-i386 rhn-tools-rhel-4-as-x86_64 rhn-tools-rhel-4-es-x86_64 rhn-tools-rhel-4-ws-x86_64 rhn-tools-rhel-4-desktop-x86_64 rhn-tools-rhel-3-as-ia64 rhn-tools-rhel-3-es-ia64 rhn-tools-rhel-3-ws-ia64 rhn-tools-rhel-4-as-ia64 rhn-tools-rhel-4-es-ia64 rhn-tools-rhel-4-ws-ia64 rhn-tools-rhel-i386-server-5 rhn-tools-rhel-x86_64-server-5 rhn-tools-rhel-ia64-server-5 rhn-tools-rhel-i386-client-5 rhn-tools-rhel-x86_64-client-5 rhn-tools-rhel-4-as-ppc rhn-tools-rhel-4-as-s390 rhn-tools-rhel-4-as-s390x rhn-tools-rhel-ppc-server-5 rhn-tools-rhel-s390x-server-5 rhn-tools-rhel-3-as-ppc rhn-tools-rhel-3-as-s390 rhn-tools-rhel-3-as-s390x" virt-sub-level-label="virtualization_free virtualization_platform_free" id="rhn-channel-family-1729" label="rhn-tools"/></rhn-channel-families><rhn-dists/><source-packages><source-package last-modified="1233329286" id="rhn-source-package-49388" source-rpm="perl-IO-stringy-2.109-11.el5.src.rpm"/><source-package last-modified="1233330261" id="rhn-source-package-49498" source-rpm="jabberpy-0.5-0.13.el5.src.rpm"/><source-package last-modified="1252523515" id="rhn-source-package-51516" source-rpm="spacewalk-ssl-cert-check-1.7-1.el5sat.src.rpm"/><source-package last-modified="1252523515" id="rhn-source-package-51526" source-rpm="spacewalk-certs-tools-0.5.5-6.el5sat.src.rpm"/><source-package last-modified="1252596930" id="rhn-source-package-51579" source-rpm="spacewalk-utils-0.5.1-8.el5sat.src.rpm"/></source-packages><rhn-channel-errata><erratum last-modified="1255334771" id="rhn-erratum-9245" advisory-name="RHEA-2009:1491"/></rhn-channel-errata><rhn-release/></rhn-channel></rhn-channels></rhn-satellite>
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.errata.xml b/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.errata.xml
deleted file mode 100644
index 7d11fe4..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.errata.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><rhn-satellite generation="2" version="3.4"><rhn-errata><rhn-erratum channels="rhel-i386-client-5 rhel-x86_64-client-5 rhel-i386-server-5 rhel-x86_64-server-5 rhel-ia64-server-5 rhel-ppc-server-5 rhel-s390x-server-5" advisory="RHSA-2007:0540-3" packages="rhn-package-410949 rhn-package-410950 rhn-package-410951 rhn-package-410952 rhn-package-422137 rhn-package-422138 rhn-package-422139 rhn-package-422140 rhn-package-422141 rhn-package-422142 rhn-package-422143 rhn-package-422144 rhn-package-422145 rhn-package-422146 rhn-package-422147 rhn-package-422148 rhn-package-422149 rhn-package-422150 rhn-package-422151 rhn-package-422152" id="rhn-erratum-6184" cve-names="CVE-2006-5052 CVE-2007-3102"><rhn-erratum-advisory-name>RHSA-2007:0540</rhn-erratum-advisory-name><rhn-erratum-advisory-rel>3</rhn-erratum-advisory-rel><rhn-erratum-advisory-type>Security Advisory</rhn-erratum-advisory-type><rhn-erratum-product>Red Hat Enterprise Linux</rhn-erratum-product><rhn-erratum-description>OpenSSH is OpenBSD's SSH (Secure SHell) protocol implementation. These
-packages include the core files necessary for both the OpenSSH client and
-server.
-
-A flaw was found in the way the ssh server wrote account names to the audit
-subsystem. An attacker could inject strings containing parts of audit
-messages, which could possibly mislead or confuse audit log parsing tools.
-(CVE-2007-3102)
-
-A flaw was found in the way the OpenSSH server processes GSSAPI
-authentication requests. When GSSAPI authentication was enabled in the
-OpenSSH server, a remote attacker was potentially able to determine if a
-username is valid. (CVE-2006-5052)
-
-The following bugs in SELinux MLS (Multi-Level Security) support has also
-been fixed in this update:
-
-* It was sometimes not possible to select a SELinux role and level when
-logging in using ssh.
-
-* If the user obtained a non-default SELinux role or level, the role change
-was not recorded in the audit subsystem.
-
-* In some cases, on labeled networks, sshd allowed logins from level ranges
-it should not allow.
-
-The updated packages also contain experimental support for using private
-keys stored in PKCS#11 tokens for client authentication. The support is
-provided through the NSS (Network Security Services) library.
-
-All users of openssh should upgrade to these updated packages, which
-contain patches to correct these issues.</rhn-erratum-description><rhn-erratum-synopsis>Moderate: openssh security and bug fix update</rhn-erratum-synopsis><rhn-erratum-topic>Updated openssh packages that fix a security issue and various bugs are now
-available.
-
-This update has been rated as having moderate security impact by the Red Hat
-Security Response Team.</rhn-erratum-topic><rhn-erratum-solution>Before applying this update, make sure that all previously-released
-errata relevant to your system have been applied.
-
-This update is available via Red Hat Network. Details on how to use
-the Red Hat Network to apply this update are available at
-http://kbase.redhat.com/faq/FAQ_58_10188
-</rhn-erratum-solution><rhn-erratum-refers-to>http://www.redhat.com/security/updates/classification/#moderate</rhn-erratum-refers-to><rhn-erratum-notes></rhn-erratum-notes><rhn-erratum-issue-date>1194411600</rhn-erratum-issue-date><rhn-erratum-update-date>1194411600</rhn-erratum-update-date><rhn-erratum-last-modified>1194452355</rhn-erratum-last-modified><rhn-erratum-keywords><rhn-erratum-keyword>GSSAPI</rhn-erratum-keyword><rhn-erratum-keyword>krb5</rhn-erratum-keyword><rhn-erratum-keyword>MLS</rhn-erratum-keyword><rhn-erratum-keyword>level</rhn-erratum-keyword><rhn-erratum-keyword>role</rhn-erratum-keyword><rhn-erratum-keyword>SELinux</rhn-erratum-keyword><rhn-erratum-keyword>NSS</rhn-erratum-keyword><rhn-erratum-keyword>token</rhn-erratum-keyword><rhn-erratum-keyword>audit</rhn-erratum-keyword></rhn-erratum-keywords><rhn-erratum-bugs><rhn-erratum-bug><rhn-erratum-bug-id>227733</rhn-erratum-bug-id><rhn-erratum-bug-summary>[LSPP] unable to ssh into a system as root/auditadm_r</rhn-erratum-bug-summary></rhn-erratum-bug><rhn-erratum-bug><rhn-erratum-bug-id>229278</rhn-erratum-bug-id><rhn-erratum-bug-summary>LSPP: ssh-mls allows a level through that it should not</rhn-erratum-bug-summary></rhn-erratum-bug><rhn-erratum-bug><rhn-erratum-bug-id>231695</rhn-erratum-bug-id><rhn-erratum-bug-summary>LSPP: user unable to ssh to system with user/role/level context</rhn-erratum-bug-summary></rhn-erratum-bug><rhn-erratum-bug><rhn-erratum-bug-id>234638</rhn-erratum-bug-id><rhn-erratum-bug-summary>CVE-2006-5052 GSSAPI information leak</rhn-erratum-bug-summary></rhn-erratum-bug><rhn-erratum-bug><rhn-erratum-bug-id>234951</rhn-erratum-bug-id><rhn-erratum-bug-summary>[LSPP] openssh server fails to parse level correctly</rhn-erratum-bug-summary></rhn-erratum-bug><rhn-erratum-bug><rhn-erratum-bug-id>248059</rhn-erratum-bug-id><rhn-erratum-bug-summary>CVE-2007-3102 audit logging of failed logins</rhn-erratum-bug-summary></rhn-erratum-bug></rhn-erratum-bugs><rhn-erratum-files><rhn-erratum-file channels="rhel-i386-client-5 rhel-x86_64-client-5" md5sum="153a17e8f011bde6d984ce73b92cebff" type="SRPM" source-package="rhn-package-source-43601" filename="/ftp/pub/redhat/linux/enterprise/5Client/en/os/SRPMS/openssh-4.3p2-24.el5.src.rpm"/><rhn-erratum-file channels="rhel-i386-client-5" package="rhn-package-410949" md5sum="ba4d6b70e9de7860b5ebe370ca5cdf53" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Client/en/os/i386/openssh-4.3p2-24.el5.i386.rpm"/><rhn-erratum-file channels="rhel-i386-client-5" package="rhn-package-410950" md5sum="d7b28f340fe82d28660876ca6bcc0a35" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Client/en/os/i386/openssh-askpass-4.3p2-24.el5.i386.rpm"/><rhn-erratum-file channels="rhel-i386-client-5" package="rhn-package-410951" md5sum="c4216b9a462e5f0462096f1d9b6b8d5f" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Client/en/os/i386/openssh-clients-4.3p2-24.el5.i386.rpm"/><rhn-erratum-file channels="rhel-i386-client-5" package="rhn-package-410952" md5sum="9f17e3dfe06fbbed05f765abd6b2509a" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Client/en/os/i386/openssh-server-4.3p2-24.el5.i386.rpm"/><rhn-erratum-file channels="rhel-x86_64-client-5" package="rhn-package-422138" md5sum="67538525ad7cf2f1d310a429b44890c7" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Client/en/os/x86_64/openssh-4.3p2-24.el5.x86_64.rpm"/><rhn-erratum-file channels="rhel-x86_64-client-5" package="rhn-package-422151" md5sum="37118e168b7a55531459b4743d3522fb" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Client/en/os/x86_64/openssh-askpass-4.3p2-24.el5.x86_64.rpm"/><rhn-erratum-file channels="rhel-x86_64-client-5" package="rhn-package-422137" md5sum="6ce7070b90732f3c837df5cfc9287187" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Client/en/os/x86_64/openssh-clients-4.3p2-24.el5.x86_64.rpm"/><rhn-erratum-file channels="rhel-x86_64-client-5" package="rhn-package-422143" md5sum="a7141781bfe5f21f2fc5b192ebf6693e" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Client/en/os/x86_64/openssh-server-4.3p2-24.el5.x86_64.rpm"/><rhn-erratum-file channels="rhel-i386-server-5 rhel-x86_64-server-5 rhel-ia64-server-5 rhel-ppc-server-5 rhel-s390x-server-5" md5sum="153a17e8f011bde6d984ce73b92cebff" type="SRPM" source-package="rhn-package-source-43601" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/openssh-4.3p2-24.el5.src.rpm"/><rhn-erratum-file channels="rhel-i386-server-5" package="rhn-package-410949" md5sum="ba4d6b70e9de7860b5ebe370ca5cdf53" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/i386/openssh-4.3p2-24.el5.i386.rpm"/><rhn-erratum-file channels="rhel-i386-server-5" package="rhn-package-410950" md5sum="d7b28f340fe82d28660876ca6bcc0a35" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/i386/openssh-askpass-4.3p2-24.el5.i386.rpm"/><rhn-erratum-file channels="rhel-i386-server-5" package="rhn-package-410951" md5sum="c4216b9a462e5f0462096f1d9b6b8d5f" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/i386/openssh-clients-4.3p2-24.el5.i386.rpm"/><rhn-erratum-file channels="rhel-i386-server-5" package="rhn-package-410952" md5sum="9f17e3dfe06fbbed05f765abd6b2509a" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/i386/openssh-server-4.3p2-24.el5.i386.rpm"/><rhn-erratum-file channels="rhel-ia64-server-5" package="rhn-package-422150" md5sum="5a4b28d5af0be02b37e02ae0aed692aa" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/ia64/openssh-4.3p2-24.el5.ia64.rpm"/><rhn-erratum-file channels="rhel-ia64-server-5" package="rhn-package-422149" md5sum="b2672d6bc6fbbd29414d23523631ac03" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/ia64/openssh-askpass-4.3p2-24.el5.ia64.rpm"/><rhn-erratum-file channels="rhel-ia64-server-5" package="rhn-package-422142" md5sum="2e7e42fd888d7fb1a87531e3f7a58889" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/ia64/openssh-clients-4.3p2-24.el5.ia64.rpm"/><rhn-erratum-file channels="rhel-ia64-server-5" package="rhn-package-422146" md5sum="e909c8bac59183dfe6f47f1e71c5306e" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/ia64/openssh-server-4.3p2-24.el5.ia64.rpm"/><rhn-erratum-file channels="rhel-ppc-server-5" package="rhn-package-422152" md5sum="7c4fbb3d8e40b083acdbd6a5186e1db3" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/ppc/openssh-4.3p2-24.el5.ppc.rpm"/><rhn-erratum-file channels="rhel-ppc-server-5" package="rhn-package-422145" md5sum="4f878a818e9fd07d16becbf66e35389f" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/ppc/openssh-askpass-4.3p2-24.el5.ppc.rpm"/><rhn-erratum-file channels="rhel-ppc-server-5" package="rhn-package-422148" md5sum="9c31ff09ef6ca0a20bba14fb89c3e250" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/ppc/openssh-clients-4.3p2-24.el5.ppc.rpm"/><rhn-erratum-file channels="rhel-ppc-server-5" package="rhn-package-422147" md5sum="3187b878bf79dc71e226ae8096f07081" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/ppc/openssh-server-4.3p2-24.el5.ppc.rpm"/><rhn-erratum-file channels="rhel-s390x-server-5" package="rhn-package-422140" md5sum="f4c3b2d6c3b170376f0e3fce0b1f38ec" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/s390x/openssh-4.3p2-24.el5.s390x.rpm"/><rhn-erratum-file channels="rhel-s390x-server-5" package="rhn-package-422139" md5sum="ab38b48be3d112c5aa333296bd9cbc3f" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/s390x/openssh-askpass-4.3p2-24.el5.s390x.rpm"/><rhn-erratum-file channels="rhel-s390x-server-5" package="rhn-package-422144" md5sum="03643d364acf47e086c913c95dae8cb2" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/s390x/openssh-clients-4.3p2-24.el5.s390x.rpm"/><rhn-erratum-file channels="rhel-s390x-server-5" package="rhn-package-422141" md5sum="0d6286527c165d1df00ece5761fcefed" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/s390x/openssh-server-4.3p2-24.el5.s390x.rpm"/><rhn-erratum-file channels="rhel-x86_64-server-5" package="rhn-package-422138" md5sum="67538525ad7cf2f1d310a429b44890c7" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/x86_64/openssh-4.3p2-24.el5.x86_64.rpm"/><rhn-erratum-file channels="rhel-x86_64-server-5" package="rhn-package-422151" md5sum="37118e168b7a55531459b4743d3522fb" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/x86_64/openssh-askpass-4.3p2-24.el5.x86_64.rpm"/><rhn-erratum-file channels="rhel-x86_64-server-5" package="rhn-package-422137" md5sum="6ce7070b90732f3c837df5cfc9287187" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/x86_64/openssh-clients-4.3p2-24.el5.x86_64.rpm"/><rhn-erratum-file channels="rhel-x86_64-server-5" package="rhn-package-422143" md5sum="a7141781bfe5f21f2fc5b192ebf6693e" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/x86_64/openssh-server-4.3p2-24.el5.x86_64.rpm"/></rhn-erratum-files></rhn-erratum><rhn-erratum channels="rhel-i386-client-5 rhel-x86_64-client-5 rhel-i386-server-5 rhel-x86_64-server-5 rhel-ia64-server-5 rhel-ppc-server-5 rhel-s390x-server-5" advisory="RHEA-2007:0653-2" packages="rhn-package-422130 rhn-package-422131 rhn-package-422132 rhn-package-422133 rhn-package-422134" id="rhn-erratum-6182" cve-names=""><rhn-erratum-advisory-name>RHEA-2007:0653</rhn-erratum-advisory-name><rhn-erratum-advisory-rel>2</rhn-erratum-advisory-rel><rhn-erratum-advisory-type>Product Enhancement Advisory</rhn-erratum-advisory-type><rhn-erratum-product>Red Hat Enterprise Linux</rhn-erratum-product><rhn-erratum-description>RHEA-2007:0643 errata update libvirt to version 0.2.3, but that
-updated version also requires dnsmasq for virtual network support
-which was added in libvirt.</rhn-erratum-description><rhn-erratum-synopsis>New package dnsmasq</rhn-erratum-synopsis><rhn-erratum-topic>This errata adds a new package which is required by libvirt
-update to version 0.2.3.</rhn-erratum-topic><rhn-erratum-solution>Before applying this update, make sure that all previously-released
-errata relevant to your system have been applied.
-
-This update is available via Red Hat Network. Details on how to use
-the Red Hat Network to apply this update are available at
-http://kbase.redhat.com/faq/FAQ_58_10188</rhn-erratum-solution><rhn-erratum-refers-to></rhn-erratum-refers-to><rhn-erratum-notes></rhn-erratum-notes><rhn-erratum-issue-date>1194449155</rhn-erratum-issue-date><rhn-erratum-update-date>1194449155</rhn-erratum-update-date><rhn-erratum-last-modified>1194449155</rhn-erratum-last-modified><rhn-erratum-keywords/><rhn-erratum-bugs><rhn-erratum-bug><rhn-erratum-bug-id>244247</rhn-erratum-bug-id><rhn-erratum-bug-summary>Add dnsmasq package to RHEL</rhn-erratum-bug-summary></rhn-erratum-bug></rhn-erratum-bugs><rhn-erratum-files><rhn-erratum-file channels="rhel-i386-client-5 rhel-x86_64-client-5" md5sum="ebf541cf1c9a5ec87e6a19568bf7ab16" type="SRPM" source-package="rhn-package-source-44247" filename="/ftp/pub/redhat/linux/enterprise/5Client/en/os/SRPMS/dnsmasq-2.39-2.el5.src.rpm"/><rhn-erratum-file channels="rhel-i386-client-5" package="rhn-package-422134" md5sum="940f7604d9c6875b7ca59aeb6b2f0ada" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Client/en/os/i386/dnsmasq-2.39-2.el5.i386.rpm"/><rhn-erratum-file channels="rhel-x86_64-client-5" package="rhn-package-422130" md5sum="b586f231718aa47792196fb4d7fdf20b" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Client/en/os/x86_64/dnsmasq-2.39-2.el5.x86_64.rpm"/><rhn-erratum-file channels="rhel-i386-server-5 rhel-x86_64-server-5 rhel-ia64-server-5 rhel-ppc-server-5 rhel-s390x-server-5" md5sum="ebf541cf1c9a5ec87e6a19568bf7ab16" type="SRPM" source-package="rhn-package-source-44247" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/dnsmasq-2.39-2.el5.src.rpm"/><rhn-erratum-file channels="rhel-i386-server-5" package="rhn-package-422134" md5sum="940f7604d9c6875b7ca59aeb6b2f0ada" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/i386/dnsmasq-2.39-2.el5.i386.rpm"/><rhn-erratum-file channels="rhel-ia64-server-5" package="rhn-package-422133" md5sum="8fc68ea1078f33dea9fee16daf51136a" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/ia64/dnsmasq-2.39-2.el5.ia64.rpm"/><rhn-erratum-file channels="rhel-ppc-server-5" package="rhn-package-422132" md5sum="af86b03762d044c780f1b4f0136be18a" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/ppc/dnsmasq-2.39-2.el5.ppc.rpm"/><rhn-erratum-file channels="rhel-s390x-server-5" package="rhn-package-422131" md5sum="4b33f1fe6e075b242c07e4935609efdd" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/s390x/dnsmasq-2.39-2.el5.s390x.rpm"/><rhn-erratum-file channels="rhel-x86_64-server-5" package="rhn-package-422130" md5sum="b586f231718aa47792196fb4d7fdf20b" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/x86_64/dnsmasq-2.39-2.el5.x86_64.rpm"/></rhn-erratum-files></rhn-erratum><rhn-erratum channels="rhel-i386-client-5 rhel-x86_64-client-5 rhel-i386-server-5 rhel-x86_64-server-5 rhel-ia64-server-5 rhel-ppc-server-5 rhel-s390x-server-5" advisory="RHBA-2007:0748-11" packages="rhn-package-422136" id="rhn-erratum-6183" cve-names=""><rhn-erratum-advisory-name>RHBA-2007:0748</rhn-erratum-advisory-name><rhn-erratum-advisory-rel>11</rhn-erratum-advisory-rel><rhn-erratum-advisory-type>Bug Fix Advisory</rhn-erratum-advisory-type><rhn-erratum-product>Red Hat Enterprise Linux</rhn-erratum-product><rhn-erratum-description>The booty package contains a python library which provides an interface for
-the creation of boot loader configuration files and the addition of stanzas
-to said configuration files. These boot loader configuration files are used
-by the anaconda installer.
-
-This updated package fixes the following bugs:
-
-* the "vmm=" line was missing in elilo.conf after installing Red Hat
-Enterprise Linux 5, with Xen virtualization packages selected, on Itanium
-architectures. This resulted in a kernel which was un-bootable. However,
-manually installing the kernel-xen RPM resolved this issue. The elilo.conf
-file is correctly created in this updated package.
-
-* in the previous package, booty incorrectly used disk names for all
-devices, causing boot failures in certain SCSI environments. In this
-updated package booty correctly uses disk names or labels depending on the
-device, which resolves this issue.
-
-All booty users should upgrade to this updated package, which resolves
-these issues.</rhn-erratum-description><rhn-erratum-synopsis>booty bug fix update</rhn-erratum-synopsis><rhn-erratum-topic>An updated booty package that fixes several bugs is now available.</rhn-erratum-topic><rhn-erratum-solution>Before applying this update, make sure that all previously-released
-errata relevant to your system have been applied.
-
-This update is available via Red Hat Network. Details on how to use
-the Red Hat Network to apply this update are available at
-http://kbase.redhat.com/faq/FAQ_58_10188</rhn-erratum-solution><rhn-erratum-refers-to></rhn-erratum-refers-to><rhn-erratum-notes></rhn-erratum-notes><rhn-erratum-issue-date>1194449155</rhn-erratum-issue-date><rhn-erratum-update-date>1194449155</rhn-erratum-update-date><rhn-erratum-last-modified>1194449155</rhn-erratum-last-modified><rhn-erratum-keywords/><rhn-erratum-bugs><rhn-erratum-bug><rhn-erratum-bug-id>250631</rhn-erratum-bug-id><rhn-erratum-bug-summary>[RHEL5.1 Beta] booty: not using LABEL for non-dm devices causes boot failure</rhn-erratum-bug-summary></rhn-erratum-bug></rhn-erratum-bugs><rhn-erratum-files><rhn-erratum-file channels="rhel-i386-client-5 rhel-x86_64-client-5" md5sum="532e2e85384916e5b35a81d54e3d29d8" type="SRPM" source-package="rhn-package-source-44248" filename="/ftp/pub/redhat/linux/enterprise/5Client/en/os/SRPMS/booty-0.80.4-5.src.rpm"/><rhn-erratum-file channels="rhel-i386-client-5 rhel-x86_64-client-5" package="rhn-package-422136" md5sum="504644ee5352554dd01ec5a12d23806f" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Client/en/os/noarch/booty-0.80.4-5.noarch.rpm"/><rhn-erratum-file channels="rhel-i386-server-5 rhel-x86_64-server-5 rhel-ia64-server-5 rhel-ppc-server-5 rhel-s390x-server-5" md5sum="532e2e85384916e5b35a81d54e3d29d8" type="SRPM" source-package="rhn-package-source-44248" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/booty-0.80.4-5.src.rpm"/><rhn-erratum-file channels="rhel-i386-server-5 rhel-x86_64-server-5 rhel-ia64-server-5 rhel-ppc-server-5 rhel-s390x-server-5" package="rhn-package-422136" md5sum="504644ee5352554dd01ec5a12d23806f" type="RPM" filename="/ftp/pub/redhat/linux/enterprise/5Server/en/os/noarch/booty-0.80.4-5.noarch.rpm"/></rhn-erratum-files></rhn-erratum></rhn-errata></rhn-satellite>
\ No newline at end of file
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.kickstartable_trees.xml b/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.kickstartable_trees.xml
deleted file mode 100644
index 6b8cd36..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.kickstartable_trees.xml
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><rhn-satellite generation="2" version="3.4"><rhn-kickstartable-trees><rhn-kickstartable-tree kstree-type-name="RHN managed kickstart tree" boot-image="ks-rhel-i386-server-5" kstree-type-label="rhn-managed" label="ks-rhel-i386-server-5" last-modified="1173886817" install-type-name="Red Hat Enterprise Linux 5" base-path="rhn/kickstart/ks-rhel-i386-server-5" install-type-label="rhel_5" channel="rhel-i386-server-5"><rhn-kickstart-files><rhn-kickstart-file file-size="106" md5sum="841785cfe376f4dba326bd0093c1e00d" relative-path=".discinfo" last-modified="1170972066"/><rhn-kickstart-file file-size="94015" md5sum="ec684182a5c3b825b464e807994fadcf" relative-path="Cluster/repodata/comps-rhel5-cluster.xml" last-modified="1170970869"/><rhn-kickstart-file file-size="117250" md5sum="9dd9f3bbafeecd409b36b7fd4a468c12" relative-path="Cluster/repodata/filelists.xml.gz" last-modified="1170970868"/><rhn-kickstart-file file-size="16824" md5sum="91962913bcb5b05735a5003773ab28d1" relative-path="Cluster/repodata/other.xml.gz" last-modified="1170970868"/><rhn-kickstart-file file-size="6482" md5sum="7817dd61d412ddcb94e8beae89f11d3f" relative-path="Cluster/repodata/primary.xml.gz" last-modified="1170970868"/><rhn-kickstart-file file-size="1154" md5sum="b5881c72af7e97167e0515ee07e666af" relative-path="Cluster/repodata/repomd.xml" last-modified="1170970869"/><rhn-kickstart-file file-size="101395" md5sum="747973d171ef767b4aa25711ce8dcf24" relative-path="ClusterStorage/repodata/comps-rhel5-cluster-st.xml" last-modified="1170970870"/><rhn-kickstart-file file-size="9570" md5sum="717a1b6ee267c15d1dc7d084f1d8f33b" relative-path="ClusterStorage/repodata/filelists.xml.gz" last-modified="1170970870"/><rhn-kickstart-file file-size="5600" md5sum="1e86d4bcac318222c04dad1933b58e2d" relative-path="ClusterStorage/repodata/other.xml.gz" last-modified="1170970870"/><rhn-kickstart-file file-size="4259" md5sum="66ab1dd4e02e4e0f8655d3ee2489c18a" relative-path="ClusterStorage/repodata/primary.xml.gz" last-modified="1170970870"/><rhn-kickstart-file file-size="1157" md5sum="cf7fafc1bb78728992f939ae258fb80b" relative-path="ClusterStorage/repodata/repomd.xml" last-modified="1170970870"/><rhn-kickstart-file file-size="8446" md5sum="4cb33358ca64e87f7650525747bebd67" relative-path="EULA" last-modified="1169685515"/><rhn-kickstart-file file-size="18416" md5sum="6ebd41aa30b178eacb885447b1682e2d" relative-path="GPL" last-modified="1164927216"/><rhn-kickstart-file file-size="15844" md5sum="89b8d966b6744a90fd237ba690e1ad24" relative-path="README-as.html" last-modified="1170918994"/><rhn-kickstart-file file-size="16795" md5sum="8b5efa2873fd89f16a1c26e4d488acba" relative-path="README-bn.html" last-modified="1170918994"/><rhn-kickstart-file file-size="11106" md5sum="939494cc19ae7ae44d61c7eee3bcb33c" relative-path="README-de.html" last-modified="1170918994"/><rhn-kickstart-file file-size="8223" md5sum="2474ef93cd5585f4189f147ed9e3fd9d" relative-path="README-en" last-modified="1170918994"/><rhn-kickstart-file file-size="10684" md5sum="474e41a8543be8299f901f37c5a20d65" relative-path="README-en.html" last-modified="1170918994"/><rhn-kickstart-file file-size="11068" md5sum="36b659ec60d757912670ec999759b59a" relative-path="README-es.html" last-modified="1170918994"/><rhn-kickstart-file file-size="11521" md5sum="6c5dc0507568700caee4170028796f9a" relative-path="README-fr.html" last-modified="1170918994"/><rhn-kickstart-file file-size="15918" md5sum="6d9546b44363f0ecdea6cd95e688782c" relative-path="README-gu.html" last-modified="1170918994"/><rhn-kickstart-file file-size="15874" md5sum="a92b3128cfc1aba2ffb410b5d02b7007" relative-path="README-hi.html" last-modified="1170918994"/><rhn-kickstart-file file-size="11009" md5sum="8ad52afbc7811522a98074f1802f6d95" relative-path="README-it.html" last-modified="1170918994"/><rhn-kickstart-file file-size="12138" md5sum="829aa28a21e12869d85a74c0683b96b2" relative-path="README-ja.html" last-modified="1170918994"/><rhn-kickstart-file file-size="17557" md5sum="d0072c511a0a81126106a1fe67b0f25d" relative-path="README-kn.html" last-modified="1170918994"/><rhn-kickstart-file file-size="11425" md5sum="dc0711284c7916cf20989d420a8641a1" relative-path="README-ko.html" last-modified="1170918994"/><rhn-kickstart-file file-size="19092" md5sum="15d42061d4d57c43903988fc76243ac4" relative-path="README-ml.html" last-modified="1170918994"/><rhn-kickstart-file file-size="16076" md5sum="2909dc6009780f156510e68fb602aa6b" relative-path="README-mr.html" last-modified="1170918994"/><rhn-kickstart-file file-size="15000" md5sum="cdadb39ce087dc690c977f4d2438a4c1" relative-path="README-or.html" last-modified="1170918994"/><rhn-kickstart-file file-size="15733" md5sum="62efd7be12f9d220141368727e8ec830" relative-path="README-pa.html" last-modified="1170918994"/><rhn-kickstart-file file-size="11259" md5sum="96ac843f83897013431a191da0206769" relative-path="README-pt_BR.html" last-modified="1170918994"/><rhn-kickstart-file file-size="13336" md5sum="2abbd97ba6b7e1472d83a627f3225d0b" relative-path="README-ru.html" last-modified="1170918994"/><rhn-kickstart-file file-size="17676" md5sum="5ad6c67884f3391d3e6081b8d18c9a6a" relative-path="README-si.html" last-modified="1170918994"/><rhn-kickstart-file file-size="16846" md5sum="bcd04bc5e1a56810269fb2837eef9e52" relative-path="README-ta.html" last-modified="1170918994"/><rhn-kickstart-file file-size="15975" md5sum="2bc50cace3bea7790518c7980b874587" relative-path="README-te.html" last-modified="1170918994"/><rhn-kickstart-file file-size="9877" md5sum="cf85bfa6bcdaad5d131ac504227a449f" relative-path="README-zh_CN.html" last-modified="1170918994"/><rhn-kickstart-file file-size="9509" md5sum="a9d852d48b97360ed9880638cef90eee" relative-path="README-zh_TW.html" last-modified="1170918994"/><rhn-kickstart-file file-size="165142" md5sum="92fd7b1f1ca8cd8fd11a4c25e88c61b0" relative-path="RELEASE-NOTES-as.html" last-modified="1170918995"/><rhn-kickstart-file file-size="167823" md5sum="3eb7c4c8b748df59e46269c8f1636fe5" relative-path="RELEASE-NOTES-bn.html" last-modified="1170918994"/><rhn-kickstart-file file-size="101803" md5sum="9400f2e2fffc25067a42affb25c4d4ed" relative-path="RELEASE-NOTES-de.html" last-modified="1170918994"/><rhn-kickstart-file file-size="74003" md5sum="0713100f5b125d91e515641e5542892f" relative-path="RELEASE-NOTES-en" last-modified="1170918994"/><rhn-kickstart-file file-size="90454" md5sum="6dae3d3d6fc2b67a6804b6e00aeec454" relative-path="RELEASE-NOTES-en.html" last-modified="1170918994"/><rhn-kickstart-file file-size="98730" md5sum="2ecb921b9cfa19aeaccd18608f309efb" relative-path="RELEASE-NOTES-es.html" last-modified="1170918994"/><rhn-kickstart-file file-size="101233" md5sum="609d67f1c1d26d10229e435757a954b5" relative-path="RELEASE-NOTES-fr.html" last-modified="1170918994"/><rhn-kickstart-file file-size="159985" md5sum="5b67bb368c5d4e0a235ca3dc0554d131" relative-path="RELEASE-NOTES-gu.html" last-modified="1170918994"/><rhn-kickstart-file file-size="159436" md5sum="181b364349c4b966e55d75e0b1049438" relative-path="RELEASE-NOTES-hi.html" last-modified="1170918995"/><rhn-kickstart-file file-size="99388" md5sum="db9c24c15a3857119271adf4b1b54e51" relative-path="RELEASE-NOTES-it.html" last-modified="1170918994"/><rhn-kickstart-file file-size="111276" md5sum="d7722e01fc35261c41b1e19b335ef6e0" relative-path="RELEASE-NOTES-ja.html" last-modified="1170918994"/><rhn-kickstart-file file-size="178444" md5sum="cacfbf3e7dc922863c9c6048dd7201d7" relative-path="RELEASE-NOTES-kn.html" last-modified="1170918995"/><rhn-kickstart-file file-size="103821" md5sum="ffbda6011e5729972532ebff86eda691" relative-path="RELEASE-NOTES-ko.html" last-modified="1170918994"/><rhn-kickstart-file file-size="197034" md5sum="d13ce7c7992f0314c27fc2c821333bc8" relative-path="RELEASE-NOTES-ml.html" last-modified="1170918995"/><rhn-kickstart-file file-size="158262" md5sum="8391401b592d3aa63e655c90cbe8c95f" relative-path="RELEASE-NOTES-mr.html" last-modified="1170918995"/><rhn-kickstart-file file-size="179204" md5sum="c7a6e81dc13143f99647aa9438435c5a" relative-path="RELEASE-NOTES-or.html" last-modified="1170918995"/><rhn-kickstart-file file-size="148581" md5sum="4d5aee93db57d1c718b5329356d71031" relative-path="RELEASE-NOTES-pa.html" last-modified="1170918995"/><rhn-kickstart-file file-size="98366" md5sum="8bb4c41c91876f5fe42bdceaac7f7bee" relative-path="RELEASE-NOTES-pt_BR.html" last-modified="1170918994"/><rhn-kickstart-file file-size="126621" md5sum="f3ee2715f04b3f41a0fc2bc21b569ecf" relative-path="RELEASE-NOTES-ru.html" last-modified="1170918995"/><rhn-kickstart-file file-size="162604" md5sum="fe393f24f46f035c50066af937f11144" relative-path="RELEASE-NOTES-si.html" last-modified="1170918995"/><rhn-kickstart-file file-size="171699" md5sum="9692dd09915a67b33dc7c77b5050c1c0" relative-path="RELEASE-NOTES-ta.html" last-modified="1170918995"/><rhn-kickstart-file file-size="157585" md5sum="c3cd9d8cc97c1503c3eaed0382be4c2e" relative-path="RELEASE-NOTES-te.html" last-modified="1170918995"/><rhn-kickstart-file file-size="84449" md5sum="c5999ab566efc0d98b96d717d8e9df38" relative-path="RELEASE-NOTES-zh_CN.html" last-modified="1170918994"/><rhn-kickstart-file file-size="84935" md5sum="1ef1b8eed42b11704d30e44969e39120" relative-path="RELEASE-NOTES-zh_TW.html" last-modified="1170918994"/><rhn-kickstart-file file-size="1519" md5sum="520b0c2f4facfd6ade56d8d3a1b65b54" relative-path="RPM-GPG-KEY-fedora" last-modified="1170964681"/><rhn-kickstart-file file-size="1076" md5sum="3242a0503a13c486774b351c85cd2d0f" relative-path="RPM-GPG-KEY-fedora-test" last-modified="1170964681"/><rhn-kickstart-file file-size="1175" md5sum="93fd979bd3914c8b4869341e5b3be99a" relative-path="RPM-GPG-KEY-redhat-auxiliary" last-modified="1170964681"/><rhn-kickstart-file file-size="1706" md5sum="05d14366dda35935da2b24615cf195fd" relative-path="RPM-GPG-KEY-redhat-beta" last-modified="1170964681"/><rhn-kickstart-file file-size="1990" md5sum="a2c32b687d6a0030389ad106d82e7c58" relative-path="RPM-GPG-KEY-redhat-former" last-modified="1170964682"/><rhn-kickstart-file file-size="1164" md5sum="1a302af4852763e81054e40792a3d69a" relative-path="RPM-GPG-KEY-redhat-release" last-modified="1170964682"/><rhn-kickstart-file file-size="928710" md5sum="fbf1f3f9808d0c834fd1ca01b3dab24c" relative-path="Server/repodata/comps-rhel5-server-core.xml" last-modified="1170971410"/><rhn-kickstart-file file-size="2269824" md5sum="e9fe59786398d96497cb3e16db025437" relative-path="Server/repodata/filelists.xml.gz" last-modified="1170971407"/><rhn-kickstart-file file-size="5368367" md5sum="7337e7bc990ea940673c245d48627a69" relative-path="Server/repodata/other.xml.gz" last-modified="1170971407"/><rhn-kickstart-file file-size="734715" md5sum="0148d07d87e6bf4f9ffd1cfbb29601f4" relative-path="Server/repodata/primary.xml.gz" last-modified="1170971407"/><rhn-kickstart-file file-size="1158" md5sum="5b75b4ce1bf58245dbbdd7fce4bc31e9" relative-path="Server/repodata/repomd.xml" last-modified="1170971410"/><rhn-kickstart-file file-size="96133" md5sum="08df2b8a53ac1c0c6e96e10553a8d414" relative-path="VT/repodata/comps-rhel5-vt.xml" last-modified="1170970882"/><rhn-kickstart-file file-size="21498" md5sum="9285597e5f99a4e9e94d72a36045e042" relative-path="VT/repodata/filelists.xml.gz" last-modified="1170970882"/><rhn-kickstart-file file-size="20550" md5sum="12ee18e430f4b519578e8d1540cc3791" relative-path="VT/repodata/other.xml.gz" last-modified="1170970882"/><rhn-kickstart-file file-size="6113" md5sum="707761f304079e5d85148369d838dd2e" relative-path="VT/repodata/primary.xml.gz" last-modified="1170970882"/><rhn-kickstart-file file-size="1149" md5sum="dc82742d217cd9be8eca5f245197bd95" relative-path="VT/repodata/repomd.xml" last-modified="1170970882"/><rhn-kickstart-file file-size="8446" md5sum="4cb33358ca64e87f7650525747bebd67" relative-path="eula.en_US" last-modified="1170964681"/><rhn-kickstart-file file-size="675" md5sum="4e18b254951642c3b04c4710d3c2f9c1" relative-path="images/README" last-modified="1170969892"/><rhn-kickstart-file file-size="7217152" md5sum="1d31b9b01f7f3553a9454edf6d263f5f" relative-path="images/boot.iso" last-modified="1170969909"/><rhn-kickstart-file file-size="12582912" md5sum="c844e3db1610ce313d40c0d33bd1a0c8" relative-path="images/diskboot.img" last-modified="1170969911"/><rhn-kickstart-file file-size="33239040" md5sum="a3155c2f4e506351b70006e95ac25655" relative-path="images/minstg2.img" last-modified="1170970022"/><rhn-kickstart-file file-size="290" md5sum="08318804cdaeba5f21807c934b7278ba" relative-path="images/pxeboot/README" last-modified="1170969911"/><rhn-kickstart-file file-size="4918676" md5sum="718e1ac008fad654f3db14da663a0de2" relative-path="images/pxeboot/initrd.img" last-modified="1170969906"/><rhn-kickstart-file file-size="1765460" md5sum="27eec540988a3f639872288f2a093b59" relative-path="images/pxeboot/vmlinuz" last-modified="1170969906"/><rhn-kickstart-file file-size="81727488" md5sum="73d44c9ca5aa14571c7774dbe597eaf8" relative-path="images/stage2.img" last-modified="1170970116"/><rhn-kickstart-file file-size="4953304" md5sum="367bcaf30b0a411d6b1519947b927542" relative-path="images/xen/initrd.img" last-modified="1170969922"/><rhn-kickstart-file file-size="2076303" md5sum="883f29c8de5488c80f99677247e55b01" relative-path="images/xen/vmlinuz" last-modified="1170969923"/><rhn-kickstart-file file-size="292" md5sum="f102510e5ef9241332a0b0b8bc77d27b" relative-path="isolinux/boot.msg" last-modified="1170969909"/><rhn-kickstart-file file-size="919" md5sum="ed9918e3f92726f1b2de46ff68d75fb2" relative-path="isolinux/general.msg" last-modified="1170969909"/><rhn-kickstart-file file-size="4918676" md5sum="718e1ac008fad654f3db14da663a0de2" relative-path="isolinux/initrd.img" last-modified="1170969906"/><rhn-kickstart-file file-size="10648" md5sum="74a615574666ded1dabe357d93ad3a2a" relative-path="isolinux/isolinux.bin" last-modified="1170973342"/><rhn-kickstart-file file-size="366" md5sum="b802a16ff1e63ba6fa4fa7ba1ca73136" relative-path="isolinux/isolinux.cfg" last-modified="1170969909"/><rhn-kickstart-file file-size="94600" md5sum="841ef6078b7346ed84fd82eca86c3804" relative-path="isolinux/memtest" last-modified="1170969909"/><rhn-kickstart-file file-size="817" md5sum="5818963971c3abeed2888d6416b1c50e" relative-path="isolinux/options.msg" last-modified="1170969909"/><rhn-kickstart-file file-size="517" md5sum="28a15223c7d456f22309beca1f1fec5a" relative-path="isolinux/param.msg" last-modified="1170969909"/><rhn-kickstart-file file-size="490" md5sum="e9ca42df80f26b4db565959ec8da25e5" relative-path="isolinux/rescue.msg" last-modified="1170969909"/><rhn-kickstart-file file-size="23107" md5sum="8de921af902b22579f99cbece6abe13c" relative-path="isolinux/splash.lss" last-modified="1170969909"/><rhn-kickstart-file file-size="1765460" md5sum="27eec540988a3f639872288f2a093b59" relative-path="isolinux/vmlinuz" last-modified="1170969906"/></rhn-kickstart-files></rhn-kickstartable-tree><rhn-kickstartable-tree kstree-type-name="RHN managed kickstart tree" boot-image="ks-rhel-i386-server-5-u1" kstree-type-label="rhn-managed" label="ks-rhel-i386-server-5-u1" last-modified="1195673036" install-type-name="Red Hat Enterprise Linux 5" base-path="rhn/kickstart/ks-rhel-i386-server-5-u1" install-type-label="rhel_5" channel="rhel-i386-server-5"><rhn-kickstart-files><rhn-kickstart-file file-size="106" md5sum="58a5ca2a33598e2c8c6b824bd920c58a" relative-path=".discinfo" last-modified="1192656534"/><rhn-kickstart-file file-size="97125" md5sum="e0ed57b896807eb487461558404102f4" relative-path="Cluster/repodata/comps-rhel5-cluster.xml" last-modified="1192655901"/><rhn-kickstart-file file-size="171643" md5sum="616004db323f33039067756a4afb1d17" relative-path="Cluster/repodata/filelists.xml.gz" last-modified="1192655900"/><rhn-kickstart-file file-size="17529" md5sum="ac25ecd2be016465e85d8950eaa156a6" relative-path="Cluster/repodata/other.xml.gz" last-modified="1192655900"/><rhn-kickstart-file file-size="6109" md5sum="5b0124ed79431888e9387a2f12ce9826" relative-path="Cluster/repodata/primary.xml.gz" last-modified="1192655900"/><rhn-kickstart-file file-size="1154" md5sum="8974351082752d0b0dba657f212fa375" relative-path="Cluster/repodata/repomd.xml" last-modified="1192655901"/><rhn-kickstart-file file-size="104067" md5sum="086e86cedab807ef5b058c35fc9f2dca" relative-path="ClusterStorage/repodata/comps-rhel5-cluster-st.xml" last-modified="1192655710"/><rhn-kickstart-file file-size="55407" md5sum="b8685203666bc1147919eaa8c46e0084" relative-path="ClusterStorage/repodata/filelists.xml.gz" last-modified="1192655709"/><rhn-kickstart-file file-size="6392" md5sum="a7566e13bb95fe6f73ed808ba53b9214" relative-path="ClusterStorage/repodata/other.xml.gz" last-modified="1192655709"/><rhn-kickstart-file file-size="7991" md5sum="5664b3a73589035302e084131b9c115a" relative-path="ClusterStorage/repodata/primary.xml.gz" last-modified="1192655709"/><rhn-kickstart-file file-size="1157" md5sum="c745e3900729c3e984928aca9678ea80" relative-path="ClusterStorage/repodata/repomd.xml" last-modified="1192655710"/><rhn-kickstart-file file-size="8446" md5sum="4cb33358ca64e87f7650525747bebd67" relative-path="EULA" last-modified="1169685515"/><rhn-kickstart-file file-size="18416" md5sum="6ebd41aa30b178eacb885447b1682e2d" relative-path="GPL" last-modified="1164927216"/><rhn-kickstart-file file-size="15844" md5sum="1e27ceeb8ccb1536f176ad0c8d9255eb" relative-path="README-as.html" last-modified="1190179390"/><rhn-kickstart-file file-size="16795" md5sum="6a4d236bd65e68cc85d65df935b90a8f" relative-path="README-bn.html" last-modified="1190179390"/><rhn-kickstart-file file-size="11106" md5sum="f7ec594c5136764a717b29fd5ad7af85" relative-path="README-de.html" last-modified="1190179390"/><rhn-kickstart-file file-size="8223" md5sum="2474ef93cd5585f4189f147ed9e3fd9d" relative-path="README-en" last-modified="1190179390"/><rhn-kickstart-file file-size="10684" md5sum="19a553d791a033076f812bffd18d14ba" relative-path="README-en.html" last-modified="1190179390"/><rhn-kickstart-file file-size="11068" md5sum="28ae11efadd98a34f15b23e51d1942dd" relative-path="README-es.html" last-modified="1190179390"/><rhn-kickstart-file file-size="11521" md5sum="14b40bacfffcd482afd7179fc5244a13" relative-path="README-fr.html" last-modified="1190179390"/><rhn-kickstart-file file-size="15918" md5sum="9a6d70721ef60323fc4ae43886dd613b" relative-path="README-gu.html" last-modified="1190179390"/><rhn-kickstart-file file-size="15874" md5sum="32ed019876033b754f6867e0150090de" relative-path="README-hi.html" last-modified="1190179390"/><rhn-kickstart-file file-size="11009" md5sum="4ba9239f7336c8995634a2593e3430ed" relative-path="README-it.html" last-modified="1190179390"/><rhn-kickstart-file file-size="12138" md5sum="ea6c14468ce2c24fbacedb0529bb5713" relative-path="README-ja.html" last-modified="1190179390"/><rhn-kickstart-file file-size="17557" md5sum="6f1b92e648044e48b22da338d4d2bf5a" relative-path="README-kn.html" last-modified="1190179390"/><rhn-kickstart-file file-size="11425" md5sum="18432e8660b6e287fbe1c2e6de564b61" relative-path="README-ko.html" last-modified="1190179390"/><rhn-kickstart-file file-size="19092" md5sum="458d6f742aaf726795c8ed72ae3be251" relative-path="README-ml.html" last-modified="1190179390"/><rhn-kickstart-file file-size="16076" md5sum="49d7ae9bd030a8a45fcb57cabfaf85c7" relative-path="README-mr.html" last-modified="1190179390"/><rhn-kickstart-file file-size="15000" md5sum="189dfc749cb76955b8480e2b8aba5863" relative-path="README-or.html" last-modified="1190179390"/><rhn-kickstart-file file-size="15733" md5sum="75c3b2d896e52378ccc55a500a1d5628" relative-path="README-pa.html" last-modified="1190179390"/><rhn-kickstart-file file-size="11259" md5sum="2d56aaea7ed3718aebbd16e9aba82b56" relative-path="README-pt_BR.html" last-modified="1190179390"/><rhn-kickstart-file file-size="13336" md5sum="1f299248daa6474ae90558ff1a66b29f" relative-path="README-ru.html" last-modified="1190179390"/><rhn-kickstart-file file-size="17676" md5sum="8f5e27dd0fce02edabaf3c9c981fb434" relative-path="README-si.html" last-modified="1190179390"/><rhn-kickstart-file file-size="16846" md5sum="e4987082e7fe0f6c4a7458dc2479859f" relative-path="README-ta.html" last-modified="1190179390"/><rhn-kickstart-file file-size="15975" md5sum="85997902461d99f7ea7d342fec865c79" relative-path="README-te.html" last-modified="1190179390"/><rhn-kickstart-file file-size="9877" md5sum="02eb70210445f53ad64400af03d700cf" relative-path="README-zh_CN.html" last-modified="1190179390"/><rhn-kickstart-file file-size="9509" md5sum="24cede9b5c263220d8f77e27e915654e" relative-path="README-zh_TW.html" last-modified="1190179390"/><rhn-kickstart-file file-size="126288" md5sum="70be1b50816891a1b9cfb548bc65d4db" relative-path="RELEASE-NOTES-U1-as.html" last-modified="1190179969"/><rhn-kickstart-file file-size="128381" md5sum="001bc3716b236eddf153f8d9e3f0e708" relative-path="RELEASE-NOTES-U1-bn.html" last-modified="1190179969"/><rhn-kickstart-file file-size="78456" md5sum="830695364440be30a59060a4ea5b8629" relative-path="RELEASE-NOTES-U1-de.html" last-modified="1190179969"/><rhn-kickstart-file file-size="52870" md5sum="f15effc9b25b6b655d5a6682d23ffbc1" relative-path="RELEASE-NOTES-U1-en" last-modified="1190179969"/><rhn-kickstart-file file-size="69474" md5sum="c1c1968f1d65207e6e2b5f7d077b5df5" relative-path="RELEASE-NOTES-U1-en.html" last-modified="1190179969"/><rhn-kickstart-file file-size="75997" md5sum="685a7839f5db0e343676e6c108263d2c" relative-path="RELEASE-NOTES-U1-es.html" last-modified="1190179969"/><rhn-kickstart-file file-size="79614" md5sum="ec1303e31913ea83f4042a636f981c8f" relative-path="RELEASE-NOTES-U1-fr.html" last-modified="1190179969"/><rhn-kickstart-file file-size="123731" md5sum="3c1be62d3fc7c53544cd81cb1c0f8e47" relative-path="RELEASE-NOTES-U1-gu.html" last-modified="1190179969"/><rhn-kickstart-file file-size="122328" md5sum="5aef82e96e3e2c2fb68c81f24464bcff" relative-path="RELEASE-NOTES-U1-hi.html" last-modified="1190179969"/><rhn-kickstart-file file-size="76805" md5sum="a0011f9d2f8164d5ac2778a0e6558a22" relative-path="RELEASE-NOTES-U1-it.html" last-modified="1190179969"/><rhn-kickstart-file file-size="88521" md5sum="4fc0ed644d3a8abd80ff0c896f586db0" relative-path="RELEASE-NOTES-U1-ja.html" last-modified="1190179969"/><rhn-kickstart-file file-size="136857" md5sum="e89622ac97d226d12d03aa44ffb2eaff" relative-path="RELEASE-NOTES-U1-kn.html" last-modified="1190179969"/><rhn-kickstart-file file-size="77775" md5sum="ea4905d3f40d630e8e204f505bf11127" relative-path="RELEASE-NOTES-U1-ko.html" last-modified="1190179969"/><rhn-kickstart-file file-size="153248" md5sum="5ea74c0b301fb58ec44e959f96e7d487" relative-path="RELEASE-NOTES-U1-ml.html" last-modified="1190179969"/><rhn-kickstart-file file-size="124043" md5sum="4f83b582e1956126dccce7e5b3c536db" relative-path="RELEASE-NOTES-U1-mr.html" last-modified="1190179969"/><rhn-kickstart-file file-size="137330" md5sum="19ff7e52036479eb66a5babeb864adcc" relative-path="RELEASE-NOTES-U1-or.html" last-modified="1190179969"/><rhn-kickstart-file file-size="115940" md5sum="be44345dd954086624d42667be114e52" relative-path="RELEASE-NOTES-U1-pa.html" last-modified="1190179969"/><rhn-kickstart-file file-size="75682" md5sum="1a4172938b80e72c143f6dfabff8dbcd" relative-path="RELEASE-NOTES-U1-pt_BR.html" last-modified="1190179969"/><rhn-kickstart-file file-size="97526" md5sum="3d80598ead2dcd97f6f509991f9b0567" relative-path="RELEASE-NOTES-U1-ru.html" last-modified="1190179969"/><rhn-kickstart-file file-size="118814" md5sum="389b5a1f974f5d75310cfcf50fe01544" relative-path="RELEASE-NOTES-U1-si.html" last-modified="1190179969"/><rhn-kickstart-file file-size="129737" md5sum="c7e8c212a33935566619ff8d6b6aae8a" relative-path="RELEASE-NOTES-U1-ta.html" last-modified="1190179969"/><rhn-kickstart-file file-size="120581" md5sum="a6411b0a88417d71c2aaf232c1bd14cc" relative-path="RELEASE-NOTES-U1-te.html" last-modified="1190179969"/><rhn-kickstart-file file-size="65716" md5sum="2556b7deaa18aa5eb369cfdb5a8266c5" relative-path="RELEASE-NOTES-U1-zh_CN.html" last-modified="1190179969"/><rhn-kickstart-file file-size="69307" md5sum="a7c244d2fab587fd0bf32753e28dbf05" relative-path="RELEASE-NOTES-U1-zh_TW.html" last-modified="1190179969"/><rhn-kickstart-file file-size="165043" md5sum="6af6f088d57859fd07b5974422ea3220" relative-path="RELEASE-NOTES-as.html" last-modified="1190179391"/><rhn-kickstart-file file-size="167818" md5sum="1d9bd15acdb936c123f62596fb28b379" relative-path="RELEASE-NOTES-bn.html" last-modified="1190179391"/><rhn-kickstart-file file-size="101803" md5sum="021847282eb9cdcd6dcfbf3531ed0471" relative-path="RELEASE-NOTES-de.html" last-modified="1190179390"/><rhn-kickstart-file file-size="73991" md5sum="822818907412cac0468fe0650f342502" relative-path="RELEASE-NOTES-en" last-modified="1190179390"/><rhn-kickstart-file file-size="90454" md5sum="78640a4da81852115f768d4ac9cb39a1" relative-path="RELEASE-NOTES-en.html" last-modified="1190179390"/><rhn-kickstart-file file-size="98732" md5sum="6fb33d4e20831f5d20028181f81aae67" relative-path="RELEASE-NOTES-es.html" last-modified="1190179390"/><rhn-kickstart-file file-size="101179" md5sum="04169f69a6f20890b6c405f7c7730057" relative-path="RELEASE-NOTES-fr.html" last-modified="1190179390"/><rhn-kickstart-file file-size="159985" md5sum="4c8c4cd9e0257eb3817d7b397e52424b" relative-path="RELEASE-NOTES-gu.html" last-modified="1190179391"/><rhn-kickstart-file file-size="159504" md5sum="7d2f13c6fa432c9b1c9bcaa1ae8ce5b9" relative-path="RELEASE-NOTES-hi.html" last-modified="1190179391"/><rhn-kickstart-file file-size="99309" md5sum="e9a131b457928fec1e738da615ae62e9" relative-path="RELEASE-NOTES-it.html" last-modified="1190179390"/><rhn-kickstart-file file-size="111270" md5sum="f0497058dac417fe4c458413f9970ccf" relative-path="RELEASE-NOTES-ja.html" last-modified="1190179390"/><rhn-kickstart-file file-size="178465" md5sum="28312d0e28ff31353800efa4cf28a109" relative-path="RELEASE-NOTES-kn.html" last-modified="1190179391"/><rhn-kickstart-file file-size="103896" md5sum="3127163cf8fa884d70599d80ae8021aa" relative-path="RELEASE-NOTES-ko.html" last-modified="1190179390"/><rhn-kickstart-file file-size="196919" md5sum="ca45ffb413f7b37739684029b6e3bc74" relative-path="RELEASE-NOTES-ml.html" last-modified="1190179391"/><rhn-kickstart-file file-size="158828" md5sum="564d6ef2fc4161be3d1f7da79592c31d" relative-path="RELEASE-NOTES-mr.html" last-modified="1190179391"/><rhn-kickstart-file file-size="179220" md5sum="be312fdd6735838079e65753432b386d" relative-path="RELEASE-NOTES-or.html" last-modified="1190179391"/><rhn-kickstart-file file-size="148452" md5sum="07b5f34d37dd598a21dd13e1a1f0ec01" relative-path="RELEASE-NOTES-pa.html" last-modified="1190179391"/><rhn-kickstart-file file-size="98396" md5sum="1984eebbdd278bf7143fd2d56a695881" relative-path="RELEASE-NOTES-pt_BR.html" last-modified="1190179390"/><rhn-kickstart-file file-size="126645" md5sum="6b6f3a088af93c799c423ae4bf24ee78" relative-path="RELEASE-NOTES-ru.html" last-modified="1190179391"/><rhn-kickstart-file file-size="163031" md5sum="50c7bbb1b8a3fe9722b0f41bcd8412e4" relative-path="RELEASE-NOTES-si.html" last-modified="1190179391"/><rhn-kickstart-file file-size="171699" md5sum="f84299bc2dafaed6e1af0363062533ee" relative-path="RELEASE-NOTES-ta.html" last-modified="1190179391"/><rhn-kickstart-file file-size="157572" md5sum="417cde300544bd7b041624b8cfd515d9" relative-path="RELEASE-NOTES-te.html" last-modified="1190179391"/><rhn-kickstart-file file-size="84444" md5sum="5d9ead5dd1172cb1c5293e77275e628f" relative-path="RELEASE-NOTES-zh_CN.html" last-modified="1190179390"/><rhn-kickstart-file file-size="84969" md5sum="e0f1dbfc20155ffd9e989009026a25ef" relative-path="RELEASE-NOTES-zh_TW.html" last-modified="1190179390"/><rhn-kickstart-file file-size="1706" md5sum="05d14366dda35935da2b24615cf195fd" relative-path="RPM-GPG-KEY-redhat-beta" last-modified="1187198714"/><rhn-kickstart-file file-size="1164" md5sum="1a302af4852763e81054e40792a3d69a" relative-path="RPM-GPG-KEY-redhat-release" last-modified="1187198714"/><rhn-kickstart-file file-size="944481" md5sum="029cbb9fff8b2cdadc6edea5482d6d29" relative-path="Server/repodata/comps-rhel5-server-core.xml" last-modified="1192655884"/><rhn-kickstart-file file-size="2316731" md5sum="ec2477dba4a4478d86e8f9db45f53fbd" relative-path="Server/repodata/filelists.xml.gz" last-modified="1192655883"/><rhn-kickstart-file file-size="5808041" md5sum="d600abf75e79e72f3dba9cab25e1b0c2" relative-path="Server/repodata/other.xml.gz" last-modified="1192655883"/><rhn-kickstart-file file-size="759520" md5sum="ef23594b2ab182de9f10d6631413b633" relative-path="Server/repodata/primary.xml.gz" last-modified="1192655883"/><rhn-kickstart-file file-size="1158" md5sum="9ea00d2c6ddb139a2c27016b902ba53e" relative-path="Server/repodata/repomd.xml" last-modified="1192655884"/><rhn-kickstart-file file-size="96878" md5sum="632b9db255c8c27d508fcada997f656d" relative-path="VT/repodata/comps-rhel5-vt.xml" last-modified="1192655731"/><rhn-kickstart-file file-size="25211" md5sum="9e092b029a43d649f298fd8f19ce0e4d" relative-path="VT/repodata/filelists.xml.gz" last-modified="1192655731"/><rhn-kickstart-file file-size="26606" md5sum="83c28a8c253c2c34cc3391586b2c8e70" relative-path="VT/repodata/other.xml.gz" last-modified="1192655731"/><rhn-kickstart-file file-size="9887" md5sum="35e98190a94fb1cd8d99f137aaa053a2" relative-path="VT/repodata/primary.xml.gz" last-modified="1192655731"/><rhn-kickstart-file file-size="1149" md5sum="c8459c98171450c757c4c5bea02a1993" relative-path="VT/repodata/repomd.xml" last-modified="1192655731"/><rhn-kickstart-file file-size="8446" md5sum="4cb33358ca64e87f7650525747bebd67" relative-path="eula.en_US" last-modified="1187198714"/><rhn-kickstart-file file-size="675" md5sum="4e18b254951642c3b04c4710d3c2f9c1" relative-path="images/README" last-modified="1192654577"/><rhn-kickstart-file file-size="7569408" md5sum="fea93a38bd96c71129c61b627e99b6db" relative-path="images/boot.iso" last-modified="1192654595"/><rhn-kickstart-file file-size="12582912" md5sum="2a9215af6955768971ec4f5d977154f9" relative-path="images/diskboot.img" last-modified="1192654597"/><rhn-kickstart-file file-size="37679104" md5sum="2f58e0e9b73d75f8efa47ac234734d98" relative-path="images/minstg2.img" last-modified="1192654711"/><rhn-kickstart-file file-size="290" md5sum="08318804cdaeba5f21807c934b7278ba" relative-path="images/pxeboot/README" last-modified="1192654597"/><rhn-kickstart-file file-size="5245144" md5sum="e8008b4db57c92d9d1428572aeab4167" relative-path="images/pxeboot/initrd.img" last-modified="1192654591"/><rhn-kickstart-file file-size="1791572" md5sum="5b455ea4ae9e43b48dc98a996cc28ce8" relative-path="images/pxeboot/vmlinuz" last-modified="1192654591"/><rhn-kickstart-file file-size="85213184" md5sum="dcd21daef0a3123f8d4019e118704248" relative-path="images/stage2.img" last-modified="1192654815"/><rhn-kickstart-file file-size="5288349" md5sum="8d1e325a2d3c6141fe41d3a214af0993" relative-path="images/xen/initrd.img" last-modified="1192654609"/><rhn-kickstart-file file-size="2106901" md5sum="afbe20296b52df3c962b5493d41f4d42" relative-path="images/xen/vmlinuz" last-modified="1192654609"/><rhn-kickstart-file file-size="292" md5sum="f102510e5ef9241332a0b0b8bc77d27b" relative-path="isolinux/boot.msg" last-modified="1192654594"/><rhn-kickstart-file file-size="919" md5sum="ed9918e3f92726f1b2de46ff68d75fb2" relative-path="isolinux/general.msg" last-modified="1192654594"/><rhn-kickstart-file file-size="5245144" md5sum="e8008b4db57c92d9d1428572aeab4167" relative-path="isolinux/initrd.img" last-modified="1192654591"/><rhn-kickstart-file file-size="10648" md5sum="a2019e02cf7f66435bcc3fe045457d63" relative-path="isolinux/isolinux.bin" last-modified="1192657685"/><rhn-kickstart-file file-size="366" md5sum="b802a16ff1e63ba6fa4fa7ba1ca73136" relative-path="isolinux/isolinux.cfg" last-modified="1192654594"/><rhn-kickstart-file file-size="94600" md5sum="841ef6078b7346ed84fd82eca86c3804" relative-path="isolinux/memtest" last-modified="1192654594"/><rhn-kickstart-file file-size="817" md5sum="5818963971c3abeed2888d6416b1c50e" relative-path="isolinux/options.msg" last-modified="1192654594"/><rhn-kickstart-file file-size="517" md5sum="28a15223c7d456f22309beca1f1fec5a" relative-path="isolinux/param.msg" last-modified="1192654594"/><rhn-kickstart-file file-size="490" md5sum="e9ca42df80f26b4db565959ec8da25e5" relative-path="isolinux/rescue.msg" last-modified="1192654594"/><rhn-kickstart-file file-size="23107" md5sum="8de921af902b22579f99cbece6abe13c" relative-path="isolinux/splash.lss" last-modified="1192654594"/><rhn-kickstart-file file-size="1791572" md5sum="5b455ea4ae9e43b48dc98a996cc28ce8" relative-path="isolinux/vmlinuz" last-modified="1192654591"/></rhn-kickstart-files></rhn-kickstartable-tree><rhn-kickstartable-tree kstree-type-name="RHN managed kickstart tree" boot-image="ks-rhel-i386-server-5-u2" kstree-type-label="rhn-managed" label="ks-rhel-i386-server-5-u2" last-modified="1212610374" install-type-name="Red Hat Enterprise Linux 5" base-path="rhn/kickstart/ks-rhel-i386-server-5-u2" install-type-label="rhel_5" channel="rhel-i386-server-5"><rhn-kickstart-files><rhn-kickstart-file file-size="91" md5sum="61d7169fa09fc432223a9b69e476fe1d" relative-path=".discinfo" last-modified="1212610120"/><rhn-kickstart-file file-size="436" md5sum="e9da6a971ce0080bb2d6750f14a3a19a" relative-path=".treeinfo" last-modified="1212610120"/><rhn-kickstart-file file-size="101836" md5sum="870d05b44e1d00395d6f54ef4e0b4d78" relative-path="Cluster/repodata/comps-rhel5-cluster.xml" last-modified="1212610120"/><rhn-kickstart-file file-size="171693" md5sum="16efc1ebed18be736e4b0e563924d4da" relative-path="Cluster/repodata/filelists.xml.gz" last-modified="1212610120"/><rhn-kickstart-file file-size="20484" md5sum="31b8fbaa30e87e170b71e7a84881db32" relative-path="Cluster/repodata/other.xml.gz" last-modified="1212610120"/><rhn-kickstart-file file-size="6184" md5sum="547f465404cedfcc6425cfc8eb9cb78b" relative-path="Cluster/repodata/primary.xml.gz" last-modified="1212610120"/><rhn-kickstart-file file-size="1154" md5sum="4f58ef04c21e67ad3357c350b9a25b26" relative-path="Cluster/repodata/repomd.xml" last-modified="1212610120"/><rhn-kickstart-file file-size="106338" md5sum="adbb3f192147ac5545acf4db364964ee" relative-path="ClusterStorage/repodata/comps-rhel5-cluster-st.xml" last-modified="1212610120"/><rhn-kickstart-file file-size="55721" md5sum="29e53e27d268d869ea6e6587cc57fe5e" relative-path="ClusterStorage/repodata/filelists.xml.gz" last-modified="1212610120"/><rhn-kickstart-file file-size="7146" md5sum="09c1e39b91f3cc33f21613a53cae831b" relative-path="ClusterStorage/repodata/other.xml.gz" last-modified="1212610120"/><rhn-kickstart-file file-size="8395" md5sum="620e61f737b9da749e72d96825b1e7c9" relative-path="ClusterStorage/repodata/primary.xml.gz" last-modified="1212610120"/><rhn-kickstart-file file-size="1157" md5sum="164a2dd73d5c49aebc844888747d3f7d" relative-path="ClusterStorage/repodata/repomd.xml" last-modified="1212610120"/><rhn-kickstart-file file-size="8446" md5sum="4cb33358ca64e87f7650525747bebd67" relative-path="EULA" last-modified="1212610131"/><rhn-kickstart-file file-size="18416" md5sum="6ebd41aa30b178eacb885447b1682e2d" relative-path="GPL" last-modified="1212610131"/><rhn-kickstart-file file-size="16353" md5sum="cd92ae62220e7e6ec7ace400a7b786d0" relative-path="README-as.html" last-modified="1212610131"/><rhn-kickstart-file file-size="17268" md5sum="8bdb4ca23e1413c37c85e1fc90db2368" relative-path="README-bn.html" last-modified="1212610131"/><rhn-kickstart-file file-size="11616" md5sum="1017b605642e57d00aa9b291e81c1a71" relative-path="README-de.html" last-modified="1212610131"/><rhn-kickstart-file file-size="8414" md5sum="27379a2f8e044fcf46ced155238a5903" relative-path="README-en" last-modified="1212610131"/><rhn-kickstart-file file-size="11226" md5sum="c33fabe2a3cd62d211595353acc9ccde" relative-path="README-en.html" last-modified="1212610131"/><rhn-kickstart-file file-size="11577" md5sum="b1de393423876c461b0ea872c33ad14f" relative-path="README-es.html" last-modified="1212610131"/><rhn-kickstart-file file-size="12030" md5sum="4db9227a05beca7b897f658389676459" relative-path="README-fr.html" last-modified="1212610131"/><rhn-kickstart-file file-size="16427" md5sum="320bd25afd01d0fdb6674552e60ab95c" relative-path="README-gu.html" last-modified="1212610131"/><rhn-kickstart-file file-size="16398" md5sum="73a5ed535d42a5f13c27b98592df3c37" relative-path="README-hi.html" last-modified="1212610131"/><rhn-kickstart-file file-size="11518" md5sum="0ddebf70311a5211cda3481ee256b140" relative-path="README-it.html" last-modified="1212610131"/><rhn-kickstart-file file-size="12647" md5sum="032a81162c2fea27aecd86f8aeab3b8a" relative-path="README-ja.html" last-modified="1212610131"/><rhn-kickstart-file file-size="18090" md5sum="e73b429fc014c0c1e74f14e09922165c" relative-path="README-kn.html" last-modified="1212610131"/><rhn-kickstart-file file-size="11934" md5sum="1e54dd36addbe29cbd5905ba3aa5a1fd" relative-path="README-ko.html" last-modified="1212610131"/><rhn-kickstart-file file-size="19574" md5sum="9a2f34c8376b26b353dcb9885c87901a" relative-path="README-ml.html" last-modified="1212610131"/><rhn-kickstart-file file-size="16585" md5sum="bf0fd3f73109f63a2051c34316a0a80f" relative-path="README-mr.html" last-modified="1212610131"/><rhn-kickstart-file file-size="15542" md5sum="40445a2d9986f34f267855476be5e953" relative-path="README-or.html" last-modified="1212610131"/><rhn-kickstart-file file-size="16266" md5sum="5cdf4972bb55f00c835bbb801360900a" relative-path="README-pa.html" last-modified="1212610131"/><rhn-kickstart-file file-size="11769" md5sum="05a8512827071623b4f024009afc921f" relative-path="README-pt_BR.html" last-modified="1212610131"/><rhn-kickstart-file file-size="13851" md5sum="682d89966202b8f15f04e2802ef12592" relative-path="README-ru.html" last-modified="1212610131"/><rhn-kickstart-file file-size="18163" md5sum="5871df981856a7c734284f34b5b74cef" relative-path="README-si.html" last-modified="1212610131"/><rhn-kickstart-file file-size="17376" md5sum="dd211a599da3c8554a94ff2543af1ec9" relative-path="README-ta.html" last-modified="1212610131"/><rhn-kickstart-file file-size="16484" md5sum="9d03b2cd15f0bcd5df42686ef5ea50a9" relative-path="README-te.html" last-modified="1212610131"/><rhn-kickstart-file file-size="10386" md5sum="c3991bf542cd6e9bd5898da0b7282bce" relative-path="README-zh_CN.html" last-modified="1212610131"/><rhn-kickstart-file file-size="10018" md5sum="2caff72de8a0e7571f95d932feb78eb1" relative-path="README-zh_TW.html" last-modified="1212610131"/><rhn-kickstart-file file-size="144711" md5sum="906a96ea3701c98ca8f7f509492db4b9" relative-path="RELEASE-NOTES-U1-as.html" last-modified="1212610131"/><rhn-kickstart-file file-size="146943" md5sum="0dc2e352c287212441ce7715bf7a96aa" relative-path="RELEASE-NOTES-U1-bn.html" last-modified="1212610131"/><rhn-kickstart-file file-size="89245" md5sum="0d1f455769a7d55d920eb9d11bae0723" relative-path="RELEASE-NOTES-U1-de.html" last-modified="1212610131"/><rhn-kickstart-file file-size="78974" md5sum="505d7b9dcd572df4ce1edc4f6b19550a" relative-path="RELEASE-NOTES-U1-en.html" last-modified="1212610131"/><rhn-kickstart-file file-size="86433" md5sum="0f2cdf3defc90e0602c80f19ac668c11" relative-path="RELEASE-NOTES-U1-es.html" last-modified="1212610131"/><rhn-kickstart-file file-size="88287" md5sum="23e091e76491e08cfe564fef531fd219" relative-path="RELEASE-NOTES-U1-fr.html" last-modified="1212610131"/><rhn-kickstart-file file-size="141296" md5sum="101326cbaf7a2941c367a6e6122ca50d" relative-path="RELEASE-NOTES-U1-gu.html" last-modified="1212610131"/><rhn-kickstart-file file-size="139619" md5sum="03855714e2587c741c35aca8222c198d" relative-path="RELEASE-NOTES-U1-hi.html" last-modified="1212610131"/><rhn-kickstart-file file-size="87176" md5sum="5c3e9734ce1b1b65429b93a00109c289" relative-path="RELEASE-NOTES-U1-it.html" last-modified="1212610131"/><rhn-kickstart-file file-size="100638" md5sum="483d89bab9329757ddbfb50c11d34df6" relative-path="RELEASE-NOTES-U1-ja.html" last-modified="1212610131"/><rhn-kickstart-file file-size="156388" md5sum="62e514824abc3e60c3e60a8a18bc703c" relative-path="RELEASE-NOTES-U1-kn.html" last-modified="1212610131"/><rhn-kickstart-file file-size="89046" md5sum="e77b3b69cbb1f5fa076fa1b06329944c" relative-path="RELEASE-NOTES-U1-ko.html" last-modified="1212610131"/><rhn-kickstart-file file-size="79029" md5sum="8ae9bfacfdefb0f9695622f3c0e9aff2" relative-path="RELEASE-NOTES-U1-ml.html" last-modified="1212610131"/><rhn-kickstart-file file-size="141209" md5sum="978cbb3f97830d938f3f76fe753ca9be" relative-path="RELEASE-NOTES-U1-mr.html" last-modified="1212610131"/><rhn-kickstart-file file-size="141153" md5sum="65822f14cb8a91aa0339af052051d6e4" relative-path="RELEASE-NOTES-U1-or.html" last-modified="1212610131"/><rhn-kickstart-file file-size="121279" md5sum="7ca0f97f3ab0f07ba085d86f33f245af" relative-path="RELEASE-NOTES-U1-pa.html" last-modified="1212610131"/><rhn-kickstart-file file-size="86210" md5sum="35311d215432fa4218f885fe8a034231" relative-path="RELEASE-NOTES-U1-pt_BR.html" last-modified="1212610131"/><rhn-kickstart-file file-size="110077" md5sum="0926b9ea451ad2921b1153a76af813e3" relative-path="RELEASE-NOTES-U1-ru.html" last-modified="1212610131"/><rhn-kickstart-file file-size="133781" md5sum="fea68c7a0ab778d04ea498f32965e644" relative-path="RELEASE-NOTES-U1-si.html" last-modified="1212610131"/><rhn-kickstart-file file-size="148909" md5sum="8cd7894201329152e0b767b44267cf72" relative-path="RELEASE-NOTES-U1-ta.html" last-modified="1212610131"/><rhn-kickstart-file file-size="140712" md5sum="c978ca2a48a040705cf4e917f61ab9a3" relative-path="RELEASE-NOTES-U1-te.html" last-modified="1212610131"/><rhn-kickstart-file file-size="74609" md5sum="720d00be372228fec5086e01c34d537d" relative-path="RELEASE-NOTES-U1-zh_CN.html" last-modified="1212610131"/><rhn-kickstart-file file-size="78021" md5sum="d252ea8292d20fd12f5a8f1aa8abd591" relative-path="RELEASE-NOTES-U1-zh_TW.html" last-modified="1212610131"/><rhn-kickstart-file file-size="90601" md5sum="d3ed976cc1686d4dea5590009a8ad905" relative-path="RELEASE-NOTES-U2-as.html" last-modified="1212610131"/><rhn-kickstart-file file-size="91260" md5sum="f2f765f8b37cb54c3ed34820afe5b378" relative-path="RELEASE-NOTES-U2-bn.html" last-modified="1212610132"/><rhn-kickstart-file file-size="80173" md5sum="ca1819ed960de7d5a4eb98e3a01a7e2a" relative-path="RELEASE-NOTES-U2-de.html" last-modified="1212610132"/><rhn-kickstart-file file-size="78329" md5sum="bcb413f634087c12183a79bbb58d3afa" relative-path="RELEASE-NOTES-U2-en.html" last-modified="1212610132"/><rhn-kickstart-file file-size="79514" md5sum="f41c59aa36c953e258341ae1cd4444db" relative-path="RELEASE-NOTES-U2-es.html" last-modified="1212610132"/><rhn-kickstart-file file-size="79998" md5sum="3937729d001aa995e5cfa2b2801aa407" relative-path="RELEASE-NOTES-U2-fr.html" last-modified="1212610132"/><rhn-kickstart-file file-size="90422" md5sum="0cb6274ea15a46ed952c56bd1f0520bc" relative-path="RELEASE-NOTES-U2-gu.html" last-modified="1212610132"/><rhn-kickstart-file file-size="90162" md5sum="adfd9ae13c756a9acfd4c8bacd562cab" relative-path="RELEASE-NOTES-U2-hi.html" last-modified="1212610132"/><rhn-kickstart-file file-size="79813" md5sum="a7494818db4a3c9f2ce0e3a0f2696eb6" relative-path="RELEASE-NOTES-U2-it.html" last-modified="1212610132"/><rhn-kickstart-file file-size="81997" md5sum="cb10acd2092d354d4b7eecd73999de06" relative-path="RELEASE-NOTES-U2-ja.html" last-modified="1212610132"/><rhn-kickstart-file file-size="93624" md5sum="e508f9295619846206b1df272886470c" relative-path="RELEASE-NOTES-U2-kn.html" last-modified="1212610132"/><rhn-kickstart-file file-size="80209" md5sum="02448ca28f21030449e47de8c4d81a26" relative-path="RELEASE-NOTES-U2-ko.html" last-modified="1212610132"/><rhn-kickstart-file file-size="78401" md5sum="431a6ca4cda2c2f300d09456918da0d6" relative-path="RELEASE-NOTES-U2-ml.html" last-modified="1212610132"/><rhn-kickstart-file file-size="90213" md5sum="069436f1eddba046c45e39604ba282dc" relative-path="RELEASE-NOTES-U2-mr.html" last-modified="1212610132"/><rhn-kickstart-file file-size="91498" md5sum="84fa917b9c450bb0a2f609903db58a65" relative-path="RELEASE-NOTES-U2-or.html" last-modified="1212610132"/><rhn-kickstart-file file-size="87387" md5sum="f66ce88cd5d9f18f31dcdf7706e2f7a8" relative-path="RELEASE-NOTES-U2-pa.html" last-modified="1212610132"/><rhn-kickstart-file file-size="79893" md5sum="266c4d4228f60c73d94ca2395aebabbb" relative-path="RELEASE-NOTES-U2-pt_BR.html" last-modified="1212610132"/><rhn-kickstart-file file-size="84826" md5sum="16a66bf6e7b9c4f1470a8280a67a36df" relative-path="RELEASE-NOTES-U2-ru.html" last-modified="1212610132"/><rhn-kickstart-file file-size="89480" md5sum="f4000f2eefbcdd4fef361249fe023383" relative-path="RELEASE-NOTES-U2-si.html" last-modified="1212610132"/><rhn-kickstart-file file-size="92522" md5sum="11321f859b5d0d713ef56f6e04c177f6" relative-path="RELEASE-NOTES-U2-ta.html" last-modified="1212610132"/><rhn-kickstart-file file-size="89667" md5sum="24481c3606a189c1b27857f1bedc432a" relative-path="RELEASE-NOTES-U2-te.html" last-modified="1212610132"/><rhn-kickstart-file file-size="77301" md5sum="1fbac9f449f6c73bc66e0d6c7ef1ced7" relative-path="RELEASE-NOTES-U2-zh_CN.html" last-modified="1212610132"/><rhn-kickstart-file file-size="77666" md5sum="ab9af12d0e7fe720ee9214cdbda342f1" relative-path="RELEASE-NOTES-U2-zh_TW.html" last-modified="1212610132"/><rhn-kickstart-file file-size="167447" md5sum="94874f829d9784486f24821083562564" relative-path="RELEASE-NOTES-as.html" last-modified="1212610132"/><rhn-kickstart-file file-size="170140" md5sum="5ada933d2d5a1771d11326dbaab208d8" relative-path="RELEASE-NOTES-bn.html" last-modified="1212610132"/><rhn-kickstart-file file-size="104125" md5sum="709cbb8a8a2826c387f70abfb8f834c9" relative-path="RELEASE-NOTES-de.html" last-modified="1212610132"/><rhn-kickstart-file file-size="73957" md5sum="9defbf09325bb275d8930f192d38ba8a" relative-path="RELEASE-NOTES-en" last-modified="1212610132"/><rhn-kickstart-file file-size="92776" md5sum="00ba767b8c4ec5b96462cf74cfd1c08b" relative-path="RELEASE-NOTES-en.html" last-modified="1212610132"/><rhn-kickstart-file file-size="101039" md5sum="944b1e6cce96d302280245ba30cfc112" relative-path="RELEASE-NOTES-es.html" last-modified="1212610132"/><rhn-kickstart-file file-size="103491" md5sum="76c3f6a45fc3bcaf8211e2f60df68046" relative-path="RELEASE-NOTES-fr.html" last-modified="1212610132"/><rhn-kickstart-file file-size="162307" md5sum="74070a08e8e47ef40089ab92cf9557ca" relative-path="RELEASE-NOTES-gu.html" last-modified="1212610132"/><rhn-kickstart-file file-size="161851" md5sum="d2f223c6c4e9bcd9e0146325c8b1b53a" relative-path="RELEASE-NOTES-hi.html" last-modified="1212610132"/><rhn-kickstart-file file-size="101631" md5sum="c1629d2ab94b840b0bb26169cfc46070" relative-path="RELEASE-NOTES-it.html" last-modified="1212610132"/><rhn-kickstart-file file-size="113574" md5sum="04e34dd1811a52cf63647fc4c9c8c9b1" relative-path="RELEASE-NOTES-ja.html" last-modified="1212610132"/><rhn-kickstart-file file-size="180821" md5sum="23424d0a883560c0f7760772dcec6f16" relative-path="RELEASE-NOTES-kn.html" last-modified="1212610132"/><rhn-kickstart-file file-size="106208" md5sum="e5cf19215f96c3d9b8cd65e88dcb8756" relative-path="RELEASE-NOTES-ko.html" last-modified="1212610132"/><rhn-kickstart-file file-size="92709" md5sum="7ce4d7111638b702d10805ef44544a06" relative-path="RELEASE-NOTES-ml.html" last-modified="1212610132"/><rhn-kickstart-file file-size="161117" md5sum="1abe2ca41c7257aa89491a93eee57f5f" relative-path="RELEASE-NOTES-mr.html" last-modified="1212610132"/><rhn-kickstart-file file-size="181571" md5sum="870d61d9eb7ddf1365396160134d8f8f" relative-path="RELEASE-NOTES-or.html" last-modified="1212610132"/><rhn-kickstart-file file-size="150804" md5sum="1a32866d2ba09d907831f273e52d7fea" relative-path="RELEASE-NOTES-pa.html" last-modified="1212610132"/><rhn-kickstart-file file-size="100718" md5sum="a3f2adb98c9f79bbd401ccb052b4932d" relative-path="RELEASE-NOTES-pt_BR.html" last-modified="1212610132"/><rhn-kickstart-file file-size="128995" md5sum="5c0d92770adeb44ac0fc8e32d8511aa1" relative-path="RELEASE-NOTES-ru.html" last-modified="1212610132"/><rhn-kickstart-file file-size="165377" md5sum="ef5c34a2a32c5d809d3ed6c1928ea4ba" relative-path="RELEASE-NOTES-si.html" last-modified="1212610132"/><rhn-kickstart-file file-size="174042" md5sum="e1ac847e0a1ad0d58032ed50c7c84fb1" relative-path="RELEASE-NOTES-ta.html" last-modified="1212610132"/><rhn-kickstart-file file-size="159695" md5sum="65261ff16baf5e88b4bf6bf0c53bb938" relative-path="RELEASE-NOTES-te.html" last-modified="1212610132"/><rhn-kickstart-file file-size="86766" md5sum="3a5e3d826538967ebe0ef7070bfc9fc5" relative-path="RELEASE-NOTES-zh_CN.html" last-modified="1212610132"/><rhn-kickstart-file file-size="87305" md5sum="7444e4632cb3bcb99c0bb35d3fe4d557" relative-path="RELEASE-NOTES-zh_TW.html" last-modified="1212610132"/><rhn-kickstart-file file-size="1706" md5sum="05d14366dda35935da2b24615cf195fd" relative-path="RPM-GPG-KEY-redhat-beta" last-modified="1212610132"/><rhn-kickstart-file file-size="1164" md5sum="1a302af4852763e81054e40792a3d69a" relative-path="RPM-GPG-KEY-redhat-release" last-modified="1212610132"/><rhn-kickstart-file file-size="1009127" md5sum="c08afbc263c71a75bedd847ddfe6d5ce" relative-path="Server/repodata/comps-rhel5-server-core.xml" last-modified="1212610120"/><rhn-kickstart-file file-size="2361792" md5sum="5c8ebd17a3fca841e7f275e8b3b0acca" relative-path="Server/repodata/filelists.xml.gz" last-modified="1212610120"/><rhn-kickstart-file file-size="6221643" md5sum="7f293256bce751cc3ee8ab22ad3d40b6" relative-path="Server/repodata/other.xml.gz" last-modified="1212610120"/><rhn-kickstart-file file-size="783268" md5sum="f60a7e4b6a9a70fc885608194470446e" relative-path="Server/repodata/primary.xml.gz" last-modified="1212610120"/><rhn-kickstart-file file-size="1158" md5sum="9d4891abbb8f474e276f61bda4216488" relative-path="Server/repodata/repomd.xml" last-modified="1212610120"/><rhn-kickstart-file file-size="103754" md5sum="290ab24010695c110529c30a9928f852" relative-path="VT/repodata/comps-rhel5-vt.xml" last-modified="1212610120"/><rhn-kickstart-file file-size="32862" md5sum="7469adc4379f8848110043a13512cbac" relative-path="VT/repodata/filelists.xml.gz" last-modified="1212610120"/><rhn-kickstart-file file-size="31117" md5sum="07421af692c5a446ff4006166a147d78" relative-path="VT/repodata/other.xml.gz" last-modified="1212610120"/><rhn-kickstart-file file-size="6695" md5sum="fa50926df217897aee3eebf657992e77" relative-path="VT/repodata/primary.xml.gz" last-modified="1212610120"/><rhn-kickstart-file file-size="1149" md5sum="56fd6c5bb3efb6f6a23c1f5ebca389da" relative-path="VT/repodata/repomd.xml" last-modified="1212610120"/><rhn-kickstart-file file-size="8446" md5sum="4cb33358ca64e87f7650525747bebd67" relative-path="eula.en_US" last-modified="1212610132"/><rhn-kickstart-file file-size="675" md5sum="4e18b254951642c3b04c4710d3c2f9c1" relative-path="images/README" last-modified="1212610121"/><rhn-kickstart-file file-size="8005632" md5sum="dc90c10faf82965289385f60abbcfa0b" relative-path="images/boot.iso" last-modified="1212610122"/><rhn-kickstart-file file-size="12582912" md5sum="d217887a72d25bc931432213ceb2d6d8" relative-path="images/diskboot.img" last-modified="1212610123"/><rhn-kickstart-file file-size="38457344" md5sum="0968a5d3898e90fdb4b22a5161bd73c8" relative-path="images/minstg2.img" last-modified="1212610125"/><rhn-kickstart-file file-size="290" md5sum="08318804cdaeba5f21807c934b7278ba" relative-path="images/pxeboot/README" last-modified="1212610121"/><rhn-kickstart-file file-size="5665249" md5sum="03734ba1fcde7a2232881ab3c75098cb" relative-path="images/pxeboot/initrd.img" last-modified="1212610121"/><rhn-kickstart-file file-size="1806388" md5sum="b3654261b1f775e81adfe33657f3b965" relative-path="images/pxeboot/vmlinuz" last-modified="1212610121"/><rhn-kickstart-file file-size="86671360" md5sum="e5118dfe4b4e035bcea0c54ada06266a" relative-path="images/stage2.img" last-modified="1212610130"/><rhn-kickstart-file file-size="5711735" md5sum="a7af2795e37e525547aa4262ff462469" relative-path="images/xen/initrd.img" last-modified="1212610121"/><rhn-kickstart-file file-size="2161407" md5sum="df1eac1c7348473eb2598fbcedfa91f6" relative-path="images/xen/vmlinuz" last-modified="1212610121"/><rhn-kickstart-file file-size="292" md5sum="f102510e5ef9241332a0b0b8bc77d27b" relative-path="isolinux/boot.msg" last-modified="1212610130"/><rhn-kickstart-file file-size="919" md5sum="ed9918e3f92726f1b2de46ff68d75fb2" relative-path="isolinux/general.msg" last-modified="1212610130"/><rhn-kickstart-file file-size="5665249" md5sum="03734ba1fcde7a2232881ab3c75098cb" relative-path="isolinux/initrd.img" last-modified="1212610131"/><rhn-kickstart-file file-size="10648" md5sum="f23a827cc847614d32217675914770ea" relative-path="isolinux/isolinux.bin" last-modified="1212610131"/><rhn-kickstart-file file-size="366" md5sum="b802a16ff1e63ba6fa4fa7ba1ca73136" relative-path="isolinux/isolinux.cfg" last-modified="1212610131"/><rhn-kickstart-file file-size="94600" md5sum="841ef6078b7346ed84fd82eca86c3804" relative-path="isolinux/memtest" last-modified="1212610131"/><rhn-kickstart-file file-size="817" md5sum="5818963971c3abeed2888d6416b1c50e" relative-path="isolinux/options.msg" last-modified="1212610131"/><rhn-kickstart-file file-size="517" md5sum="28a15223c7d456f22309beca1f1fec5a" relative-path="isolinux/param.msg" last-modified="1212610131"/><rhn-kickstart-file file-size="490" md5sum="e9ca42df80f26b4db565959ec8da25e5" relative-path="isolinux/rescue.msg" last-modified="1212610131"/><rhn-kickstart-file file-size="23107" md5sum="8de921af902b22579f99cbece6abe13c" relative-path="isolinux/splash.lss" last-modified="1212610131"/><rhn-kickstart-file file-size="1806388" md5sum="b3654261b1f775e81adfe33657f3b965" relative-path="isolinux/vmlinuz" last-modified="1212610131"/></rhn-kickstart-files></rhn-kickstartable-tree><rhn-kickstartable-tree kstree-type-name="RHN managed kickstart tree" boot-image="ks-rhel-i386-server-5-u3" kstree-type-label="rhn-managed" label="ks-rhel-i386-server-5-u3" last-modified="1233233082" install-type-name="Red Hat Enterprise Linux 5" base-path="rhn/kickstart/ks-rhel-i386-server-5-u3" install-type-label="rhel_5" channel="rhel-i386-server-5"><rhn-kickstart-files><rhn-kickstart-file file-size="108" md5sum="2ad0a0aab14758708d3707e452d196c8" relative-path=".discinfo" last-modified="1233232889"/><rhn-kickstart-file file-size="436" md5sum="044c0a4a87a385ef3ce0b5ee67c933ba" relative-path=".treeinfo" last-modified="1233232890"/><rhn-kickstart-file file-size="101836" md5sum="870d05b44e1d00395d6f54ef4e0b4d78" relative-path="Cluster/repodata/comps-rhel5-cluster.xml" last-modified="1233232889"/><rhn-kickstart-file file-size="112688" md5sum="04c27142338c767ea196b6bfd3ce336d" relative-path="Cluster/repodata/filelists.xml.gz" last-modified="1233232889"/><rhn-kickstart-file file-size="27366" md5sum="ab33b460cc4b4c9279ce7eacba0f8285" relative-path="Cluster/repodata/other.xml.gz" last-modified="1233232889"/><rhn-kickstart-file file-size="6316" md5sum="e63d65598b7a6d07721f9c34a3c15a36" relative-path="Cluster/repodata/primary.xml.gz" last-modified="1233232889"/><rhn-kickstart-file file-size="1154" md5sum="33185b801989cf46de4967ac77dd4438" relative-path="Cluster/repodata/repomd.xml" last-modified="1233232889"/><rhn-kickstart-file file-size="106395" md5sum="6f7c3a4a715b113718b37c8b0542a49c" relative-path="ClusterStorage/repodata/comps-rhel5-cluster-st.xml" last-modified="1233232889"/><rhn-kickstart-file file-size="11449" md5sum="5241290fa156bfd45f439d540a5c5152" relative-path="ClusterStorage/repodata/filelists.xml.gz" last-modified="1233232889"/><rhn-kickstart-file file-size="9614" md5sum="37ab8c1c427361f21be7f68f57b29df7" relative-path="ClusterStorage/repodata/other.xml.gz" last-modified="1233232889"/><rhn-kickstart-file file-size="8928" md5sum="ea7e006f98f365634003ed037f0c974a" relative-path="ClusterStorage/repodata/primary.xml.gz" last-modified="1233232889"/><rhn-kickstart-file file-size="1157" md5sum="77d1d751e60b671183cadfbb5b7a4fc2" relative-path="ClusterStorage/repodata/repomd.xml" last-modified="1233232889"/><rhn-kickstart-file file-size="8445" md5sum="35c17987511c72620d8918077c86e9f7" relative-path="EULA" last-modified="1233232901"/><rhn-kickstart-file file-size="18416" md5sum="6ebd41aa30b178eacb885447b1682e2d" relative-path="GPL" last-modified="1233232901"/><rhn-kickstart-file file-size="16051" md5sum="98a584648aea843844043c7b625fe824" relative-path="README-as.html" last-modified="1233232901"/><rhn-kickstart-file file-size="16896" md5sum="3cf6d919de369dfa1e684ed96f34d845" relative-path="README-bn.html" last-modified="1233232901"/><rhn-kickstart-file file-size="11562" md5sum="4bdf84ba5c7357b148c544f24998481f" relative-path="README-de.html" last-modified="1233232901"/><rhn-kickstart-file file-size="9772" md5sum="ee874eb1939b797ba48bbb40e3a15ff9" relative-path="README-en" last-modified="1233232901"/><rhn-kickstart-file file-size="11229" md5sum="7688d9922bff83f221c3937a7706b583" relative-path="README-en.html" last-modified="1233232901"/><rhn-kickstart-file file-size="11491" md5sum="89529e3be77013e6799479140a6e34d5" relative-path="README-es.html" last-modified="1233232901"/><rhn-kickstart-file file-size="11940" md5sum="21f3f56d30a85ecf87f377e5a080fc90" relative-path="README-fr.html" last-modified="1233232901"/><rhn-kickstart-file file-size="16156" md5sum="db7c3187759296c50031e7077b50b925" relative-path="README-gu.html" last-modified="1233232901"/><rhn-kickstart-file file-size="16057" md5sum="bc8b271882feda5744c96f609d831498" relative-path="README-hi.html" last-modified="1233232901"/><rhn-kickstart-file file-size="11485" md5sum="26fbe2f1e669913275bd36b80056ca4e" relative-path="README-it.html" last-modified="1233232901"/><rhn-kickstart-file file-size="12513" md5sum="4fda50c15affe82a4de5794941c26449" relative-path="README-ja.html" last-modified="1233232901"/><rhn-kickstart-file file-size="17763" md5sum="bcfb3c5a2f503dfb4deb00c2a005bf99" relative-path="README-kn.html" last-modified="1233232901"/><rhn-kickstart-file file-size="11848" md5sum="697c26c03bb1470fe8892292537e6112" relative-path="README-ko.html" last-modified="1233232901"/><rhn-kickstart-file file-size="19232" md5sum="edd27b8451f8c3dbf7f1e11258394ecb" relative-path="README-ml.html" last-modified="1233232901"/><rhn-kickstart-file file-size="16264" md5sum="f580f741b5a4f9f95785f4bc20be7c7f" relative-path="README-mr.html" last-modified="1233232901"/><rhn-kickstart-file file-size="15117" md5sum="2329580f9f5a2ffc55d044798208c00f" relative-path="README-or.html" last-modified="1233232901"/><rhn-kickstart-file file-size="16023" md5sum="57afc55873ba65736f0fbc09c01e0705" relative-path="README-pa.html" last-modified="1233232901"/><rhn-kickstart-file file-size="11679" md5sum="2d8a8c5cc2ce3f13a8330e80edc2f458" relative-path="README-pt_BR.html" last-modified="1233232901"/><rhn-kickstart-file file-size="13589" md5sum="fd44133438b43b6b7ce1d6ce55118906" relative-path="README-ru.html" last-modified="1233232901"/><rhn-kickstart-file file-size="17612" md5sum="4dd8ab8700bc731a6a6dfe4fc25c2e1e" relative-path="README-si.html" last-modified="1233232901"/><rhn-kickstart-file file-size="16910" md5sum="03132c1773a75919a00373b62dc1ee73" relative-path="README-ta.html" last-modified="1233232901"/><rhn-kickstart-file file-size="16153" md5sum="dec2e4100845d3e41e9334b79fbb1f04" relative-path="README-te.html" last-modified="1233232901"/><rhn-kickstart-file file-size="10403" md5sum="e0b17af1d1dd3c59834006475fa90f64" relative-path="README-zh_CN.html" last-modified="1233232901"/><rhn-kickstart-file file-size="10019" md5sum="200a3db6137ef24f9f3c8baf23b14c91" relative-path="README-zh_TW.html" last-modified="1233232901"/><rhn-kickstart-file file-size="260891" md5sum="ed5878f03ac02bbdfb733152fb645896" relative-path="RELEASE-NOTES-U1-as.html" last-modified="1233232901"/><rhn-kickstart-file file-size="311901" md5sum="9ffa630a274125ee552d8fa3f5ca2165" relative-path="RELEASE-NOTES-U1-bn.html" last-modified="1233232901"/><rhn-kickstart-file file-size="179395" md5sum="1bcc5226018afb91fdb9b9d456bd4eb0" relative-path="RELEASE-NOTES-U1-de.html" last-modified="1233232901"/><rhn-kickstart-file file-size="126185" md5sum="40d868767f1ea6ea87b87462cb84b3b0" relative-path="RELEASE-NOTES-U1-en" last-modified="1233232902"/><rhn-kickstart-file file-size="161604" md5sum="3be07e8fcfb0477b8ba59c9a44a7208f" relative-path="RELEASE-NOTES-U1-en.html" last-modified="1233232902"/><rhn-kickstart-file file-size="177986" md5sum="1095d9df4778cd131a2791e418587398" relative-path="RELEASE-NOTES-U1-es.html" last-modified="1233232902"/><rhn-kickstart-file file-size="183589" md5sum="1b4c7c863ee5fab91601a34497f9e1cc" relative-path="RELEASE-NOTES-U1-fr.html" last-modified="1233232902"/><rhn-kickstart-file file-size="293186" md5sum="1884c0be8790b8fe8ab5a8489aaa7352" relative-path="RELEASE-NOTES-U1-gu.html" last-modified="1233232902"/><rhn-kickstart-file file-size="288803" md5sum="26a807cbaafa4751e6ba47fadc002bde" relative-path="RELEASE-NOTES-U1-hi.html" last-modified="1233232902"/><rhn-kickstart-file file-size="178992" md5sum="d35d00ef9ccae8e4e18e3684f6db2792" relative-path="RELEASE-NOTES-U1-it.html" last-modified="1233232902"/><rhn-kickstart-file file-size="201834" md5sum="d13396e1a17844f69fc72e6de8f7db67" relative-path="RELEASE-NOTES-U1-ja.html" last-modified="1233232902"/><rhn-kickstart-file file-size="325132" md5sum="1b2902b3980889db44dd1571069ab9f0" relative-path="RELEASE-NOTES-U1-kn.html" last-modified="1233232902"/><rhn-kickstart-file file-size="183527" md5sum="38feb7215ba0fafd163c6bc16a892155" relative-path="RELEASE-NOTES-U1-ko.html" last-modified="1233232902"/><rhn-kickstart-file file-size="287290" md5sum="c410b7b9a95b7bc082da09fc7ec2a45a" relative-path="RELEASE-NOTES-U1-ml.html" last-modified="1233232902"/><rhn-kickstart-file file-size="289375" md5sum="38c699e09cac3597d5f35f282c8f1491" relative-path="RELEASE-NOTES-U1-mr.html" last-modified="1233232902"/><rhn-kickstart-file file-size="312727" md5sum="0e51cd75c97fcf8c6ab59aa962267d85" relative-path="RELEASE-NOTES-U1-or.html" last-modified="1233232902"/><rhn-kickstart-file file-size="273195" md5sum="f51cd5d9e31c48f3f6f8e5f46d356773" relative-path="RELEASE-NOTES-U1-pa.html" last-modified="1233232902"/><rhn-kickstart-file file-size="175677" md5sum="730df9e8ccae919c78b60632cee258f6" relative-path="RELEASE-NOTES-U1-pt_BR.html" last-modified="1233232901"/><rhn-kickstart-file file-size="220574" md5sum="2ac9cf0be87b792f6e90820cfcaf23d7" relative-path="RELEASE-NOTES-U1-ru.html" last-modified="1233232902"/><rhn-kickstart-file file-size="161586" md5sum="2932e93dc1bda3c4fb2b35374bf2bd25" relative-path="RELEASE-NOTES-U1-si.html" last-modified="1233232902"/><rhn-kickstart-file file-size="305111" md5sum="a9eadcb85afad875e576473acc4d06c3" relative-path="RELEASE-NOTES-U1-ta.html" last-modified="1233232902"/><rhn-kickstart-file file-size="306067" md5sum="afa99f0aa4b682405124b187a50312eb" relative-path="RELEASE-NOTES-U1-te.html" last-modified="1233232902"/><rhn-kickstart-file file-size="214751" md5sum="59bc39958e7f1d1523b9d44b65a73677" relative-path="RELEASE-NOTES-U1-zh_CN.html" last-modified="1233232902"/><rhn-kickstart-file file-size="225537" md5sum="38a9aae39198d36cd52a3c5a65096014" relative-path="RELEASE-NOTES-U1-zh_TW.html" last-modified="1233232902"/><rhn-kickstart-file file-size="260891" md5sum="ed5878f03ac02bbdfb733152fb645896" relative-path="RELEASE-NOTES-U2-as.html" last-modified="1233232902"/><rhn-kickstart-file file-size="311901" md5sum="9ffa630a274125ee552d8fa3f5ca2165" relative-path="RELEASE-NOTES-U2-bn.html" last-modified="1233232902"/><rhn-kickstart-file file-size="179395" md5sum="1bcc5226018afb91fdb9b9d456bd4eb0" relative-path="RELEASE-NOTES-U2-de.html" last-modified="1233232902"/><rhn-kickstart-file file-size="126185" md5sum="40d868767f1ea6ea87b87462cb84b3b0" relative-path="RELEASE-NOTES-U2-en" last-modified="1233232902"/><rhn-kickstart-file file-size="161604" md5sum="3be07e8fcfb0477b8ba59c9a44a7208f" relative-path="RELEASE-NOTES-U2-en.html" last-modified="1233232902"/><rhn-kickstart-file file-size="177986" md5sum="1095d9df4778cd131a2791e418587398" relative-path="RELEASE-NOTES-U2-es.html" last-modified="1233232902"/><rhn-kickstart-file file-size="183589" md5sum="1b4c7c863ee5fab91601a34497f9e1cc" relative-path="RELEASE-NOTES-U2-fr.html" last-modified="1233232902"/><rhn-kickstart-file file-size="293186" md5sum="1884c0be8790b8fe8ab5a8489aaa7352" relative-path="RELEASE-NOTES-U2-gu.html" last-modified="1233232902"/><rhn-kickstart-file file-size="288803" md5sum="26a807cbaafa4751e6ba47fadc002bde" relative-path="RELEASE-NOTES-U2-hi.html" last-modified="1233232902"/><rhn-kickstart-file file-size="178992" md5sum="d35d00ef9ccae8e4e18e3684f6db2792" relative-path="RELEASE-NOTES-U2-it.html" last-modified="1233232902"/><rhn-kickstart-file file-size="201834" md5sum="d13396e1a17844f69fc72e6de8f7db67" relative-path="RELEASE-NOTES-U2-ja.html" last-modified="1233232902"/><rhn-kickstart-file file-size="325132" md5sum="1b2902b3980889db44dd1571069ab9f0" relative-path="RELEASE-NOTES-U2-kn.html" last-modified="1233232902"/><rhn-kickstart-file file-size="183527" md5sum="38feb7215ba0fafd163c6bc16a892155" relative-path="RELEASE-NOTES-U2-ko.html" last-modified="1233232902"/><rhn-kickstart-file file-size="287290" md5sum="c410b7b9a95b7bc082da09fc7ec2a45a" relative-path="RELEASE-NOTES-U2-ml.html" last-modified="1233232902"/><rhn-kickstart-file file-size="289375" md5sum="38c699e09cac3597d5f35f282c8f1491" relative-path="RELEASE-NOTES-U2-mr.html" last-modified="1233232902"/><rhn-kickstart-file file-size="312727" md5sum="0e51cd75c97fcf8c6ab59aa962267d85" relative-path="RELEASE-NOTES-U2-or.html" last-modified="1233232903"/><rhn-kickstart-file file-size="273195" md5sum="f51cd5d9e31c48f3f6f8e5f46d356773" relative-path="RELEASE-NOTES-U2-pa.html" last-modified="1233232903"/><rhn-kickstart-file file-size="175677" md5sum="730df9e8ccae919c78b60632cee258f6" relative-path="RELEASE-NOTES-U2-pt_BR.html" last-modified="1233232903"/><rhn-kickstart-file file-size="220574" md5sum="2ac9cf0be87b792f6e90820cfcaf23d7" relative-path="RELEASE-NOTES-U2-ru.html" last-modified="1233232903"/><rhn-kickstart-file file-size="161586" md5sum="2932e93dc1bda3c4fb2b35374bf2bd25" relative-path="RELEASE-NOTES-U2-si.html" last-modified="1233232903"/><rhn-kickstart-file file-size="305111" md5sum="a9eadcb85afad875e576473acc4d06c3" relative-path="RELEASE-NOTES-U2-ta.html" last-modified="1233232903"/><rhn-kickstart-file file-size="306067" md5sum="afa99f0aa4b682405124b187a50312eb" relative-path="RELEASE-NOTES-U2-te.html" last-modified="1233232903"/><rhn-kickstart-file file-size="214751" md5sum="59bc39958e7f1d1523b9d44b65a73677" relative-path="RELEASE-NOTES-U2-zh_CN.html" last-modified="1233232903"/><rhn-kickstart-file file-size="225537" md5sum="38a9aae39198d36cd52a3c5a65096014" relative-path="RELEASE-NOTES-U2-zh_TW.html" last-modified="1233232903"/><rhn-kickstart-file file-size="260891" md5sum="ed5878f03ac02bbdfb733152fb645896" relative-path="RELEASE-NOTES-U3-as.html" last-modified="1233232903"/><rhn-kickstart-file file-size="311901" md5sum="9ffa630a274125ee552d8fa3f5ca2165" relative-path="RELEASE-NOTES-U3-bn.html" last-modified="1233232903"/><rhn-kickstart-file file-size="179395" md5sum="1bcc5226018afb91fdb9b9d456bd4eb0" relative-path="RELEASE-NOTES-U3-de.html" last-modified="1233232903"/><rhn-kickstart-file file-size="126185" md5sum="40d868767f1ea6ea87b87462cb84b3b0" relative-path="RELEASE-NOTES-U3-en" last-modified="1233232903"/><rhn-kickstart-file file-size="161604" md5sum="3be07e8fcfb0477b8ba59c9a44a7208f" relative-path="RELEASE-NOTES-U3-en.html" last-modified="1233232903"/><rhn-kickstart-file file-size="177986" md5sum="1095d9df4778cd131a2791e418587398" relative-path="RELEASE-NOTES-U3-es.html" last-modified="1233232903"/><rhn-kickstart-file file-size="183589" md5sum="1b4c7c863ee5fab91601a34497f9e1cc" relative-path="RELEASE-NOTES-U3-fr.html" last-modified="1233232903"/><rhn-kickstart-file file-size="293186" md5sum="1884c0be8790b8fe8ab5a8489aaa7352" relative-path="RELEASE-NOTES-U3-gu.html" last-modified="1233232903"/><rhn-kickstart-file file-size="288803" md5sum="26a807cbaafa4751e6ba47fadc002bde" relative-path="RELEASE-NOTES-U3-hi.html" last-modified="1233232903"/><rhn-kickstart-file file-size="178992" md5sum="d35d00ef9ccae8e4e18e3684f6db2792" relative-path="RELEASE-NOTES-U3-it.html" last-modified="1233232903"/><rhn-kickstart-file file-size="201834" md5sum="d13396e1a17844f69fc72e6de8f7db67" relative-path="RELEASE-NOTES-U3-ja.html" last-modified="1233232903"/><rhn-kickstart-file file-size="325132" md5sum="1b2902b3980889db44dd1571069ab9f0" relative-path="RELEASE-NOTES-U3-kn.html" last-modified="1233232903"/><rhn-kickstart-file file-size="183527" md5sum="38feb7215ba0fafd163c6bc16a892155" relative-path="RELEASE-NOTES-U3-ko.html" last-modified="1233232903"/><rhn-kickstart-file file-size="287290" md5sum="c410b7b9a95b7bc082da09fc7ec2a45a" relative-path="RELEASE-NOTES-U3-ml.html" last-modified="1233232903"/><rhn-kickstart-file file-size="289375" md5sum="38c699e09cac3597d5f35f282c8f1491" relative-path="RELEASE-NOTES-U3-mr.html" last-modified="1233232903"/><rhn-kickstart-file file-size="312727" md5sum="0e51cd75c97fcf8c6ab59aa962267d85" relative-path="RELEASE-NOTES-U3-or.html" last-modified="1233232903"/><rhn-kickstart-file file-size="273195" md5sum="f51cd5d9e31c48f3f6f8e5f46d356773" relative-path="RELEASE-NOTES-U3-pa.html" last-modified="1233232903"/><rhn-kickstart-file file-size="175677" md5sum="730df9e8ccae919c78b60632cee258f6" relative-path="RELEASE-NOTES-U3-pt_BR.html" last-modified="1233232903"/><rhn-kickstart-file file-size="220574" md5sum="2ac9cf0be87b792f6e90820cfcaf23d7" relative-path="RELEASE-NOTES-U3-ru.html" last-modified="1233232903"/><rhn-kickstart-file file-size="161586" md5sum="2932e93dc1bda3c4fb2b35374bf2bd25" relative-path="RELEASE-NOTES-U3-si.html" last-modified="1233232903"/><rhn-kickstart-file file-size="305111" md5sum="a9eadcb85afad875e576473acc4d06c3" relative-path="RELEASE-NOTES-U3-ta.html" last-modified="1233232903"/><rhn-kickstart-file file-size="306067" md5sum="afa99f0aa4b682405124b187a50312eb" relative-path="RELEASE-NOTES-U3-te.html" last-modified="1233232902"/><rhn-kickstart-file file-size="214751" md5sum="59bc39958e7f1d1523b9d44b65a73677" relative-path="RELEASE-NOTES-U3-zh_CN.html" last-modified="1233232903"/><rhn-kickstart-file file-size="225537" md5sum="38a9aae39198d36cd52a3c5a65096014" relative-path="RELEASE-NOTES-U3-zh_TW.html" last-modified="1233232903"/><rhn-kickstart-file file-size="260891" md5sum="ed5878f03ac02bbdfb733152fb645896" relative-path="RELEASE-NOTES-as.html" last-modified="1233232903"/><rhn-kickstart-file file-size="311901" md5sum="9ffa630a274125ee552d8fa3f5ca2165" relative-path="RELEASE-NOTES-bn.html" last-modified="1233232903"/><rhn-kickstart-file file-size="179395" md5sum="1bcc5226018afb91fdb9b9d456bd4eb0" relative-path="RELEASE-NOTES-de.html" last-modified="1233232903"/><rhn-kickstart-file file-size="126185" md5sum="40d868767f1ea6ea87b87462cb84b3b0" relative-path="RELEASE-NOTES-en" last-modified="1233232903"/><rhn-kickstart-file file-size="161604" md5sum="3be07e8fcfb0477b8ba59c9a44a7208f" relative-path="RELEASE-NOTES-en.html" last-modified="1233232903"/><rhn-kickstart-file file-size="177986" md5sum="1095d9df4778cd131a2791e418587398" relative-path="RELEASE-NOTES-es.html" last-modified="1233232903"/><rhn-kickstart-file file-size="183589" md5sum="1b4c7c863ee5fab91601a34497f9e1cc" relative-path="RELEASE-NOTES-fr.html" last-modified="1233232903"/><rhn-kickstart-file file-size="293186" md5sum="1884c0be8790b8fe8ab5a8489aaa7352" relative-path="RELEASE-NOTES-gu.html" last-modified="1233232903"/><rhn-kickstart-file file-size="288803" md5sum="26a807cbaafa4751e6ba47fadc002bde" relative-path="RELEASE-NOTES-hi.html" last-modified="1233232903"/><rhn-kickstart-file file-size="178992" md5sum="d35d00ef9ccae8e4e18e3684f6db2792" relative-path="RELEASE-NOTES-it.html" last-modified="1233232903"/><rhn-kickstart-file file-size="201834" md5sum="d13396e1a17844f69fc72e6de8f7db67" relative-path="RELEASE-NOTES-ja.html" last-modified="1233232903"/><rhn-kickstart-file file-size="325132" md5sum="1b2902b3980889db44dd1571069ab9f0" relative-path="RELEASE-NOTES-kn.html" last-modified="1233232904"/><rhn-kickstart-file file-size="183527" md5sum="38feb7215ba0fafd163c6bc16a892155" relative-path="RELEASE-NOTES-ko.html" last-modified="1233232904"/><rhn-kickstart-file file-size="287290" md5sum="c410b7b9a95b7bc082da09fc7ec2a45a" relative-path="RELEASE-NOTES-ml.html" last-modified="1233232904"/><rhn-kickstart-file file-size="289375" md5sum="38c699e09cac3597d5f35f282c8f1491" relative-path="RELEASE-NOTES-mr.html" last-modified="1233232904"/><rhn-kickstart-file file-size="312727" md5sum="0e51cd75c97fcf8c6ab59aa962267d85" relative-path="RELEASE-NOTES-or.html" last-modified="1233232904"/><rhn-kickstart-file file-size="273195" md5sum="f51cd5d9e31c48f3f6f8e5f46d356773" relative-path="RELEASE-NOTES-pa.html" last-modified="1233232904"/><rhn-kickstart-file file-size="175677" md5sum="730df9e8ccae919c78b60632cee258f6" relative-path="RELEASE-NOTES-pt_BR.html" last-modified="1233232904"/><rhn-kickstart-file file-size="220574" md5sum="2ac9cf0be87b792f6e90820cfcaf23d7" relative-path="RELEASE-NOTES-ru.html" last-modified="1233232904"/><rhn-kickstart-file file-size="161586" md5sum="2932e93dc1bda3c4fb2b35374bf2bd25" relative-path="RELEASE-NOTES-si.html" last-modified="1233232904"/><rhn-kickstart-file file-size="305111" md5sum="a9eadcb85afad875e576473acc4d06c3" relative-path="RELEASE-NOTES-ta.html" last-modified="1233232904"/><rhn-kickstart-file file-size="306067" md5sum="afa99f0aa4b682405124b187a50312eb" relative-path="RELEASE-NOTES-te.html" last-modified="1233232904"/><rhn-kickstart-file file-size="214751" md5sum="59bc39958e7f1d1523b9d44b65a73677" relative-path="RELEASE-NOTES-zh_CN.html" last-modified="1233232904"/><rhn-kickstart-file file-size="225537" md5sum="38a9aae39198d36cd52a3c5a65096014" relative-path="RELEASE-NOTES-zh_TW.html" last-modified="1233232904"/><rhn-kickstart-file file-size="1706" md5sum="05d14366dda35935da2b24615cf195fd" relative-path="RPM-GPG-KEY-redhat-beta" last-modified="1233232904"/><rhn-kickstart-file file-size="1164" md5sum="1a302af4852763e81054e40792a3d69a" relative-path="RPM-GPG-KEY-redhat-release" last-modified="1233232904"/><rhn-kickstart-file file-size="1010906" md5sum="d3fb48f4fc6bcc3cc7dd8f50193e3d15" relative-path="Server/repodata/comps-rhel5-server-core.xml" last-modified="1233232889"/><rhn-kickstart-file file-size="2474743" md5sum="7a54d7586b02dfd1b63a0c02d5a3c5c9" relative-path="Server/repodata/filelists.xml.gz" last-modified="1233232889"/><rhn-kickstart-file file-size="6890864" md5sum="19a34a59f150ece188ba6616bb910f69" relative-path="Server/repodata/other.xml.gz" last-modified="1233232890"/><rhn-kickstart-file file-size="828013" md5sum="ae2787563490c25d74089b5b0b543795" relative-path="Server/repodata/primary.xml.gz" last-modified="1233232890"/><rhn-kickstart-file file-size="1158" md5sum="6e8d7bcb43d8428d7538052b1289db1e" relative-path="Server/repodata/repomd.xml" last-modified="1233232890"/><rhn-kickstart-file file-size="103872" md5sum="37c3b8c1498501a0af086254754574f4" relative-path="VT/repodata/comps-rhel5-vt.xml" last-modified="1233232890"/><rhn-kickstart-file file-size="26588" md5sum="156564d3c19de34a66dd7ba646d3e895" relative-path="VT/repodata/filelists.xml.gz" last-modified="1233232890"/><rhn-kickstart-file file-size="32922" md5sum="bbbd14d5af7bef2b83624d2148a44e93" relative-path="VT/repodata/other.xml.gz" last-modified="1233232890"/><rhn-kickstart-file file-size="8067" md5sum="c1221bb2f0ba9a2c2a12d4a7dc62edda" relative-path="VT/repodata/primary.xml.gz" last-modified="1233232890"/><rhn-kickstart-file file-size="1149" md5sum="18f79afebf1577d2b883e5abd1104f18" relative-path="VT/repodata/repomd.xml" last-modified="1233232890"/><rhn-kickstart-file file-size="8445" md5sum="35c17987511c72620d8918077c86e9f7" relative-path="eula.en_US" last-modified="1233232904"/><rhn-kickstart-file file-size="675" md5sum="4e18b254951642c3b04c4710d3c2f9c1" relative-path="images/README" last-modified="1233232891"/><rhn-kickstart-file file-size="8658944" md5sum="07c99c7dbc9eb915499159c23409b764" relative-path="images/boot.iso" last-modified="1233232892"/><rhn-kickstart-file file-size="12582912" md5sum="920a9ef35bdcb526f215ed1a7b460988" relative-path="images/diskboot.img" last-modified="1233232892"/><rhn-kickstart-file file-size="40845312" md5sum="4694881d30b75dd603b3f3dc7889ab7b" relative-path="images/minstg2.img" last-modified="1233232895"/><rhn-kickstart-file file-size="290" md5sum="08318804cdaeba5f21807c934b7278ba" relative-path="images/pxeboot/README" last-modified="1233232890"/><rhn-kickstart-file file-size="6300177" md5sum="c30510ad66ad3f13120cbb102319c346" relative-path="images/pxeboot/initrd.img" last-modified="1233232890"/><rhn-kickstart-file file-size="1826516" md5sum="90f366479fdd2910f4934c5a291e25ea" relative-path="images/pxeboot/vmlinuz" last-modified="1233232891"/><rhn-kickstart-file file-size="90157056" md5sum="0ca3b2b1cb9a054aab0ea9f0e95ee7f8" relative-path="images/stage2.img" last-modified="1233232900"/><rhn-kickstart-file file-size="6333321" md5sum="07ab25b6779096b131d97ba168443cb3" relative-path="images/xen/initrd.img" last-modified="1233232891"/><rhn-kickstart-file file-size="2188586" md5sum="4c81580b65ac9217cb28d9ea00a7f63b" relative-path="images/xen/vmlinuz" last-modified="1233232891"/><rhn-kickstart-file file-size="292" md5sum="f102510e5ef9241332a0b0b8bc77d27b" relative-path="isolinux/boot.msg" last-modified="1233232900"/><rhn-kickstart-file file-size="919" md5sum="ed9918e3f92726f1b2de46ff68d75fb2" relative-path="isolinux/general.msg" last-modified="1233232900"/><rhn-kickstart-file file-size="6300177" md5sum="c30510ad66ad3f13120cbb102319c346" relative-path="isolinux/initrd.img" last-modified="1233232901"/><rhn-kickstart-file file-size="10648" md5sum="69fc8d28ed3bf9c36570608f250cf42b" relative-path="isolinux/isolinux.bin" last-modified="1233232901"/><rhn-kickstart-file file-size="366" md5sum="b802a16ff1e63ba6fa4fa7ba1ca73136" relative-path="isolinux/isolinux.cfg" last-modified="1233232901"/><rhn-kickstart-file file-size="94600" md5sum="841ef6078b7346ed84fd82eca86c3804" relative-path="isolinux/memtest" last-modified="1233232901"/><rhn-kickstart-file file-size="817" md5sum="5818963971c3abeed2888d6416b1c50e" relative-path="isolinux/options.msg" last-modified="1233232901"/><rhn-kickstart-file file-size="517" md5sum="28a15223c7d456f22309beca1f1fec5a" relative-path="isolinux/param.msg" last-modified="1233232901"/><rhn-kickstart-file file-size="490" md5sum="e9ca42df80f26b4db565959ec8da25e5" relative-path="isolinux/rescue.msg" last-modified="1233232901"/><rhn-kickstart-file file-size="23107" md5sum="8de921af902b22579f99cbece6abe13c" relative-path="isolinux/splash.lss" last-modified="1233232901"/><rhn-kickstart-file file-size="1826516" md5sum="90f366479fdd2910f4934c5a291e25ea" relative-path="isolinux/vmlinuz" last-modified="1233232901"/></rhn-kickstart-files></rhn-kickstartable-tree><rhn-kickstartable-tree kstree-type-name="RHN managed kickstart tree" boot-image="ks-rhel-i386-server-5-u4" kstree-type-label="rhn-managed" label="ks-rhel-i386-server-5-u4" last-modified="1253669980" install-type-name="Red Hat Enterprise Linux 5" base-path="rhn/kickstart/ks-rhel-i386-server-5-u4" install-type-label="rhel_5" channel="rhel-i386-server-5"><rhn-kickstart-files><rhn-kickstart-file file-size="108" md5sum="67d6bea0f661cdfb2b3f9258744268d6" relative-path=".discinfo" last-modified="1250663122"/><rhn-kickstart-file file-size="437" md5sum="f8efe059144e4dd18136a5d1f0bceb37" relative-path=".treeinfo" last-modified="1250661752"/><rhn-kickstart-file file-size="102997" md5sum="01a5ef63a176ba213dab0c431ed86b4a" relative-path="Cluster/repodata/comps-rhel5-cluster.xml" last-modified="1250662670"/><rhn-kickstart-file file-size="112529" md5sum="29bea6c7559ccb337a74b952bed21c86" relative-path="Cluster/repodata/filelists.xml.gz" last-modified="1250662670"/><rhn-kickstart-file file-size="29673" md5sum="cf7e6cf463b01a55b12d5c6235b9e492" relative-path="Cluster/repodata/other.xml.gz" last-modified="1250662670"/><rhn-kickstart-file file-size="6341" md5sum="88eb87dcbe8b2a2c39551ae2f04ecceb" relative-path="Cluster/repodata/primary.xml.gz" last-modified="1250662670"/><rhn-kickstart-file file-size="1154" md5sum="151cf08e9e727d2ed87ebb5f36740446" relative-path="Cluster/repodata/repomd.xml" last-modified="1250662670"/><rhn-kickstart-file file-size="107900" md5sum="2a70e20843824348ab62a1392f2f1df6" relative-path="ClusterStorage/repodata/comps-rhel5-cluster-st.xml" last-modified="1250662713"/><rhn-kickstart-file file-size="11531" md5sum="78af15841b470ce8a4076994e3e8b46d" relative-path="ClusterStorage/repodata/filelists.xml.gz" last-modified="1250662713"/><rhn-kickstart-file file-size="10947" md5sum="84fa31bc097f550ce5c02de5c42a4a4a" relative-path="ClusterStorage/repodata/other.xml.gz" last-modified="1250662713"/><rhn-kickstart-file file-size="8957" md5sum="2773ea23252e97bb8b19c3a69efbc54a" relative-path="ClusterStorage/repodata/primary.xml.gz" last-modified="1250662713"/><rhn-kickstart-file file-size="1157" md5sum="42db739998a05a701e0300efc31b7fa1" relative-path="ClusterStorage/repodata/repomd.xml" last-modified="1250662713"/><rhn-kickstart-file file-size="8445" md5sum="35c17987511c72620d8918077c86e9f7" relative-path="EULA" last-modified="1220376657"/><rhn-kickstart-file file-size="18416" md5sum="6ebd41aa30b178eacb885447b1682e2d" relative-path="GPL" last-modified="1164927216"/><rhn-kickstart-file file-size="9310" md5sum="2d3c014029f8ff19669eb6612454f08f" relative-path="README-en" last-modified="1250127330"/><rhn-kickstart-file file-size="19763" md5sum="9410631e25334089026195fedbfacda2" relative-path="README-en.html" last-modified="1250125211"/><rhn-kickstart-file file-size="137669" md5sum="c724c2da9cac51eae4c1736690979a45" relative-path="RELEASE-NOTES-U4-as.html" last-modified="1250129548"/><rhn-kickstart-file file-size="148174" md5sum="ae729ce1d3862203abde9c18d2dac6d9" relative-path="RELEASE-NOTES-U4-bn.html" last-modified="1250129548"/><rhn-kickstart-file file-size="85767" md5sum="94e079bc696d97db7febeac5bfb4b747" relative-path="RELEASE-NOTES-U4-de.html" last-modified="1250129548"/><rhn-kickstart-file file-size="61011" md5sum="68fd0e1194e6239bab4b502ab1da8ffe" relative-path="RELEASE-NOTES-U4-en" last-modified="1250125969"/><rhn-kickstart-file file-size="80344" md5sum="4ecc0ea3a2239d389956f94bac66e679" relative-path="RELEASE-NOTES-U4-en.html" last-modified="1250129548"/><rhn-kickstart-file file-size="87977" md5sum="d28489b63e6202e7d72b02fa9e2997d5" relative-path="RELEASE-NOTES-U4-es.html" last-modified="1250129548"/><rhn-kickstart-file file-size="90627" md5sum="c90263277196bcfb2547b8ad483c4dcb" relative-path="RELEASE-NOTES-U4-fr.html" last-modified="1250129548"/><rhn-kickstart-file file-size="131998" md5sum="c7ded8f6a0489f7d5ddf48169044e39f" relative-path="RELEASE-NOTES-U4-gu.html" last-modified="1250129548"/><rhn-kickstart-file file-size="132218" md5sum="ab63d774eaa48858b3776483c75ad783" relative-path="RELEASE-NOTES-U4-hi.html" last-modified="1250129548"/><rhn-kickstart-file file-size="86266" md5sum="abac82d3d738a8091fd336c8c0a698d4" relative-path="RELEASE-NOTES-U4-it.html" last-modified="1250129548"/><rhn-kickstart-file file-size="95511" md5sum="43cbc31d784977431943fd8ae46c3e95" relative-path="RELEASE-NOTES-U4-ja.html" last-modified="1250129548"/><rhn-kickstart-file file-size="148308" md5sum="f4221dde8715aba8be498b9cba52fa60" relative-path="RELEASE-NOTES-U4-kn.html" last-modified="1250129548"/><rhn-kickstart-file file-size="88701" md5sum="b6e45b126faf213a50a96b3a996362c8" relative-path="RELEASE-NOTES-U4-ko.html" last-modified="1250129548"/><rhn-kickstart-file file-size="154019" md5sum="ddb84b71f6de0c43bb8ff88d9ce817ee" relative-path="RELEASE-NOTES-U4-ml.html" last-modified="1250129548"/><rhn-kickstart-file file-size="129649" md5sum="bb591bfa006509baaec97f0120d68cf7" relative-path="RELEASE-NOTES-U4-mr.html" last-modified="1250129548"/><rhn-kickstart-file file-size="139801" md5sum="bfda961d537218d6de28987e8db4352e" relative-path="RELEASE-NOTES-U4-or.html" last-modified="1250129548"/><rhn-kickstart-file file-size="105863" md5sum="ca90c6db7221871950cd947dcc665332" relative-path="RELEASE-NOTES-U4-pa.html" last-modified="1250129548"/><rhn-kickstart-file file-size="86703" md5sum="4c3c7a641fd85c039c08c2c4b4425188" relative-path="RELEASE-NOTES-U4-pt_BR.html" last-modified="1250129548"/><rhn-kickstart-file file-size="102748" md5sum="7736ec24ee08ea9b330d9d7962dcf8e6" relative-path="RELEASE-NOTES-U4-ru.html" last-modified="1250129549"/><rhn-kickstart-file file-size="80339" md5sum="21f1e3af3b16dec925b75dad088fb4fa" relative-path="RELEASE-NOTES-U4-si.html" last-modified="1250129549"/><rhn-kickstart-file file-size="138814" md5sum="e88ee50980e17574ac30275ee5c36a1c" relative-path="RELEASE-NOTES-U4-ta.html" last-modified="1250129549"/><rhn-kickstart-file file-size="139321" md5sum="18ccbb14e574419ee8d26971d701f583" relative-path="RELEASE-NOTES-U4-te.html" last-modified="1250129549"/><rhn-kickstart-file file-size="100745" md5sum="91e9062c56b18c20f93766356b34f1ce" relative-path="RELEASE-NOTES-U4-zh_CN.html" last-modified="1250129549"/><rhn-kickstart-file file-size="105773" md5sum="7e8d8cc5af87a12043689dde9f74abf4" relative-path="RELEASE-NOTES-U4-zh_TW.html" last-modified="1250129549"/><rhn-kickstart-file file-size="137669" md5sum="c724c2da9cac51eae4c1736690979a45" relative-path="RELEASE-NOTES-as.html" last-modified="1250129549"/><rhn-kickstart-file file-size="148174" md5sum="ae729ce1d3862203abde9c18d2dac6d9" relative-path="RELEASE-NOTES-bn.html" last-modified="1250129549"/><rhn-kickstart-file file-size="85767" md5sum="94e079bc696d97db7febeac5bfb4b747" relative-path="RELEASE-NOTES-de.html" last-modified="1250129549"/><rhn-kickstart-file file-size="61011" md5sum="68fd0e1194e6239bab4b502ab1da8ffe" relative-path="RELEASE-NOTES-en" last-modified="1250128450"/><rhn-kickstart-file file-size="80344" md5sum="4ecc0ea3a2239d389956f94bac66e679" relative-path="RELEASE-NOTES-en.html" last-modified="1250129549"/><rhn-kickstart-file file-size="87977" md5sum="d28489b63e6202e7d72b02fa9e2997d5" relative-path="RELEASE-NOTES-es.html" last-modified="1250129549"/><rhn-kickstart-file file-size="90627" md5sum="c90263277196bcfb2547b8ad483c4dcb" relative-path="RELEASE-NOTES-fr.html" last-modified="1250129549"/><rhn-kickstart-file file-size="131998" md5sum="c7ded8f6a0489f7d5ddf48169044e39f" relative-path="RELEASE-NOTES-gu.html" last-modified="1250129549"/><rhn-kickstart-file file-size="132218" md5sum="ab63d774eaa48858b3776483c75ad783" relative-path="RELEASE-NOTES-hi.html" last-modified="1250129549"/><rhn-kickstart-file file-size="86266" md5sum="abac82d3d738a8091fd336c8c0a698d4" relative-path="RELEASE-NOTES-it.html" last-modified="1250129549"/><rhn-kickstart-file file-size="95511" md5sum="43cbc31d784977431943fd8ae46c3e95" relative-path="RELEASE-NOTES-ja.html" last-modified="1250129549"/><rhn-kickstart-file file-size="148308" md5sum="f4221dde8715aba8be498b9cba52fa60" relative-path="RELEASE-NOTES-kn.html" last-modified="1250129550"/><rhn-kickstart-file file-size="88701" md5sum="b6e45b126faf213a50a96b3a996362c8" relative-path="RELEASE-NOTES-ko.html" last-modified="1250129550"/><rhn-kickstart-file file-size="154019" md5sum="ddb84b71f6de0c43bb8ff88d9ce817ee" relative-path="RELEASE-NOTES-ml.html" last-modified="1250129550"/><rhn-kickstart-file file-size="129649" md5sum="bb591bfa006509baaec97f0120d68cf7" relative-path="RELEASE-NOTES-mr.html" last-modified="1250129550"/><rhn-kickstart-file file-size="139801" md5sum="bfda961d537218d6de28987e8db4352e" relative-path="RELEASE-NOTES-or.html" last-modified="1250129550"/><rhn-kickstart-file file-size="105863" md5sum="ca90c6db7221871950cd947dcc665332" relative-path="RELEASE-NOTES-pa.html" last-modified="1250129550"/><rhn-kickstart-file file-size="86703" md5sum="4c3c7a641fd85c039c08c2c4b4425188" relative-path="RELEASE-NOTES-pt_BR.html" last-modified="1250129550"/><rhn-kickstart-file file-size="102748" md5sum="7736ec24ee08ea9b330d9d7962dcf8e6" relative-path="RELEASE-NOTES-ru.html" last-modified="1250129550"/><rhn-kickstart-file file-size="80339" md5sum="21f1e3af3b16dec925b75dad088fb4fa" relative-path="RELEASE-NOTES-si.html" last-modified="1250129550"/><rhn-kickstart-file file-size="138814" md5sum="e88ee50980e17574ac30275ee5c36a1c" relative-path="RELEASE-NOTES-ta.html" last-modified="1250129550"/><rhn-kickstart-file file-size="139321" md5sum="18ccbb14e574419ee8d26971d701f583" relative-path="RELEASE-NOTES-te.html" last-modified="1250129550"/><rhn-kickstart-file file-size="100745" md5sum="91e9062c56b18c20f93766356b34f1ce" relative-path="RELEASE-NOTES-zh_CN.html" last-modified="1250129551"/><rhn-kickstart-file file-size="105773" md5sum="7e8d8cc5af87a12043689dde9f74abf4" relative-path="RELEASE-NOTES-zh_TW.html" last-modified="1250129551"/><rhn-kickstart-file file-size="1706" md5sum="05d14366dda35935da2b24615cf195fd" relative-path="RPM-GPG-KEY-redhat-beta" last-modified="1249374307"/><rhn-kickstart-file file-size="1164" md5sum="1a302af4852763e81054e40792a3d69a" relative-path="RPM-GPG-KEY-redhat-release" last-modified="1249374307"/><rhn-kickstart-file file-size="1027241" md5sum="5c69ea64e68e67344621ee706112d6ff" relative-path="Server/repodata/comps-rhel5-server-core.xml" last-modified="1250662718"/><rhn-kickstart-file file-size="2489440" md5sum="014171adfe1d182a94c658dfe993760f" relative-path="Server/repodata/filelists.xml.gz" last-modified="1250662716"/><rhn-kickstart-file file-size="7351968" md5sum="88341e31419b8e2b593bb7e4ed5be74a" relative-path="Server/repodata/other.xml.gz" last-modified="1250662717"/><rhn-kickstart-file file-size="846372" md5sum="0b086378f658f16f3e478bfa870a1d02" relative-path="Server/repodata/primary.xml.gz" last-modified="1250662716"/><rhn-kickstart-file file-size="1158" md5sum="9c76ddfa5440425cfa25b4f5a0b94584" relative-path="Server/repodata/repomd.xml" last-modified="1250662718"/><rhn-kickstart-file file-size="105200" md5sum="0be8245457e2e683c3bfe3aae8aa9af0" relative-path="VT/repodata/comps-rhel5-vt.xml" last-modified="1250662673"/><rhn-kickstart-file file-size="28501" md5sum="acc46b7b6744696494f8730e42827b02" relative-path="VT/repodata/filelists.xml.gz" last-modified="1250662673"/><rhn-kickstart-file file-size="43011" md5sum="7390061605928b43bedd15d81fe927df" relative-path="VT/repodata/other.xml.gz" last-modified="1250662673"/><rhn-kickstart-file file-size="9391" md5sum="98fb48f8b124c46099601e0a8f22b9c0" relative-path="VT/repodata/primary.xml.gz" last-modified="1250662673"/><rhn-kickstart-file file-size="1149" md5sum="bf9656263b0393a0a33c3c5764d2caa0" relative-path="VT/repodata/repomd.xml" last-modified="1250662673"/><rhn-kickstart-file file-size="8445" md5sum="35c17987511c72620d8918077c86e9f7" relative-path="eula.en_US" last-modified="1249374307"/><rhn-kickstart-file file-size="675" md5sum="4e18b254951642c3b04c4710d3c2f9c1" relative-path="images/README" last-modified="1250661495"/><rhn-kickstart-file file-size="9244672" md5sum="6b36edbe3b2e98d18620ad63edf42030" relative-path="images/boot.iso" last-modified="1250661513"/><rhn-kickstart-file file-size="12582912" md5sum="4643810f7ec82d252e27bb27d4ef5c11" relative-path="images/diskboot.img" last-modified="1250661515"/><rhn-kickstart-file file-size="40984576" md5sum="263bffc85c8123c26ae28c7f60911778" relative-path="images/minstg2.img" last-modified="1250661642"/><rhn-kickstart-file file-size="290" md5sum="08318804cdaeba5f21807c934b7278ba" relative-path="images/pxeboot/README" last-modified="1250661515"/><rhn-kickstart-file file-size="6855881" md5sum="1690e8997bbeae3035ee74ca5b7edcae" relative-path="images/pxeboot/initrd.img" last-modified="1250661509"/><rhn-kickstart-file file-size="1855956" md5sum="bbff60614587a3d2c8472ddf3ce65fdf" relative-path="images/pxeboot/vmlinuz" last-modified="1250661510"/><rhn-kickstart-file file-size="90107904" md5sum="09a58fc5d1a9abd1a9348764f69e64c8" relative-path="images/stage2.img" last-modified="1250661752"/><rhn-kickstart-file file-size="6898417" md5sum="daee1aca041aab995d0862eb3e00ffc3" relative-path="images/xen/initrd.img" last-modified="1250661529"/><rhn-kickstart-file file-size="2225811" md5sum="b0d1757050f8158ee479cb837bebc1e5" relative-path="images/xen/vmlinuz" last-modified="1250661529"/><rhn-kickstart-file file-size="292" md5sum="f102510e5ef9241332a0b0b8bc77d27b" relative-path="isolinux/boot.msg" last-modified="1250661512"/><rhn-kickstart-file file-size="919" md5sum="ed9918e3f92726f1b2de46ff68d75fb2" relative-path="isolinux/general.msg" last-modified="1250661512"/><rhn-kickstart-file file-size="6855881" md5sum="1690e8997bbeae3035ee74ca5b7edcae" relative-path="isolinux/initrd.img" last-modified="1250661510"/><rhn-kickstart-file file-size="10648" md5sum="bda65fc7fca51f761fc690349a064340" relative-path="isolinux/isolinux.bin" last-modified="1250663984"/><rhn-kickstart-file file-size="366" md5sum="b802a16ff1e63ba6fa4fa7ba1ca73136" relative-path="isolinux/isolinux.cfg" last-modified="1250661512"/><rhn-kickstart-file file-size="94600" md5sum="841ef6078b7346ed84fd82eca86c3804" relative-path="isolinux/memtest" last-modified="1250661512"/><rhn-kickstart-file file-size="817" md5sum="5818963971c3abeed2888d6416b1c50e" relative-path="isolinux/options.msg" last-modified="1250661512"/><rhn-kickstart-file file-size="517" md5sum="28a15223c7d456f22309beca1f1fec5a" relative-path="isolinux/param.msg" last-modified="1250661512"/><rhn-kickstart-file file-size="490" md5sum="e9ca42df80f26b4db565959ec8da25e5" relative-path="isolinux/rescue.msg" last-modified="1250661512"/><rhn-kickstart-file file-size="23107" md5sum="8de921af902b22579f99cbece6abe13c" relative-path="isolinux/splash.lss" last-modified="1250661512"/><rhn-kickstart-file file-size="1855956" md5sum="bbff60614587a3d2c8472ddf3ce65fdf" relative-path="isolinux/vmlinuz" last-modified="1250661510"/></rhn-kickstart-files></rhn-kickstartable-tree></rhn-kickstartable-trees></rhn-satellite>
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.packages.xml b/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.packages.xml
deleted file mode 100644
index 46d4738..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.packages.xml
+++ /dev/null
@@ -1,431 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><rhn-satellite generation="2" version="3.4"><rhn-packages><rhn-package compat="0" payload-size="1516760" name="mkisofs" package-size="609556" package-group="Applications/System
-" build-time="1155730269" source-rpm="cdrtools-2.01-10.src.rpm" md5sum="12499c6be3e98d0a0624abcac6a41ac1" payload-format="cpio" package-arch="i386" rpm-version="4.4.2" last-modified="1173375440" epoch="9" version="2.01" cookie="hs20-bc1-7.build.redhat.com 1155715772" release="10" build-host="hs20-bc1-7.build.redhat.com" id="rhn-package-386984"><rhn-package-summary>Creates an image of an ISO9660 filesystem.
-</rhn-package-summary><rhn-package-description>The mkisofs program is used as a pre-mastering program; i.e., it
-generates the ISO9660 filesystem. Mkisofs takes a snapshot of
-a given directory tree and generates a binary image of the tree
-which will correspond to an ISO9660 filesystem when written to
-a block device. Mkisofs is used for writing CD-ROMs, and includes
-support for creating bootable El Torito CD-ROMs.
-
-Install the mkisofs package if you need a program for writing
-CD-ROMs.
-</rhn-package-description><rhn-package-vendor>Red Hat, Inc.</rhn-package-vendor><rhn-package-copyright>GPL</rhn-package-copyright><rhn-package-header-sig><rhn-null/></rhn-package-header-sig><rhn-package-header-start>440</rhn-package-header-start><rhn-package-header-end>16912</rhn-package-header-end><rhn-package-changelog><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bernhard Rosenkraenzer <bero(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- 1.8a34</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>945054000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bernhard Rosenkraenzer <bero(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Add S/390 support</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>976417200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bernhard Rosenkraenzer <bero(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- update to cdrtools 1.10a19</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>987732000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bernhard Rosenkraenzer <bero(a)redhat.com> 1.10-3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Add Epoch - the new cdrecord subpackage had a smaller Epoch than the
- standalone cdrecord package from 7.1, causing update problems (#49963)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>996199200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fix cdda2wav on sparc, and probably other IDE drives...</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>951361200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fixes for ia64</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>960775200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- strip binaries</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>937274400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Cristian Gafton <gafton(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- move config file to a sane place (/etc/cdrecord.conf)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>936669600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Cristian Gafton <gafton(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuild to fix dependencies
-- get rid of useless defines at the top of the spec file</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>949374000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Cristian Gafton <gafton(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- removed the mkisofs subpackage - we have mkisofs provided by
- a'nother package (doh!)
-- moved former mkisofs diagnostic binaries to the main package
-- get rod of the cdda2wav too; cdparanoia is now in the distribution and
- it is a whole lot better too</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>935460000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Cristian Gafton <gafton(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- version 1.8 final
-- man pages are compressed</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>949460400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Cristian Gafton <gafton(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- version 1.8a40
-- according to the author, cdda2wav and mkisofs are more recent in this
- package, so build them out of this tree too
-- add sparc patch from jakub</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>949114800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Crutcher Dunnavant <crutcher(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- added a not to the changelog to indicate that the
-- graft-points option is no longer assumed.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>965786400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Crutcher Dunnavant <crutcher(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fix dependacy bug</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>993520800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Crutcher Dunnavant <crutcher(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- split to a cdrtools srpm
-- itterated to 1.10
-- applied alane(a)geeksrus.net's patch to fix bug #19841</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>993520800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Crutcher Dunnavant <crutcher(a)redhat.com> 1.10-4</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- disabled CD-EXTRA code; #50773</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>997322400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Elliot Lee <sopwith(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuilt</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1054778400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Elliot Lee <sopwith(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuilt</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1076727600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Elliot Lee <sopwith(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuilt</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1078282800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Elliot Lee <sopwith(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuilt</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1087351200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Elliot Lee <sopwith(a)redhat.com> 8:2.01.1-9</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Fix #123548</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1112839200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Florian La Roche <Florian.LaRoche(a)redhat.de></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- add s390x</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>988336800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Florian La Roche <Florian.LaRoche(a)redhat.de></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- updated sparc patch from Tom "spot" Callaway <tcallawa(a)redhat.com></rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1055728800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)faro.stuttgart.redhat.com> - 8:2.01-0.a25.1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- version 2.01a25</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1074826800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)faro.stuttgart.redhat.com> - 8:2.01-0.a25.2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- added utf-8 support to mkisofs (106479)
-- added BuildRequires groff (110746)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1075431600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)faro.stuttgart.redhat.com> - 8:2.01-0.a25.3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- new iconv patch (10)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1076036400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuilt</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1108004400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> </rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuilt</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1109818800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> - 8:2.01-0.a25.4</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- added endianness patch from cdrdao</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1077159600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> - 8:2.01-0.a27.2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- added dvd patch from http://people.mandrakesoft.com/~warly/files/cdrtools/
-- added note to manpage about configuration path change</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1081389600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> - 8:2.01-0.a27.3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fixed command line parsing, thx to Stephen Beahm (119906)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1082685600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> - 8:2.01-0.a27.4</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- provide dvdrecord with a stub to cdrecord</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1083895200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> - 8:2.01-0.a27.5</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- added privacy patch
-- added second utf8 patch
-- added type patch
-- removed silly warnings</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1086746400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> - 8:2.01.0.a27-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- changed version scheme</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1087869600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> - 8:2.01.0.a32-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- new version
-- [cdrtools changelog]: The clone option was documented in the man page.
- cdda2wav/readcd -scanbus now works correctly readcd and gives a
- summary of defective sector numbers at the end. The mkisofs
- -H/-L/-P options were marked as reserved by POSIX, and mkisofs
- was sped up for very long pathological directories
- (all filenames need to be renamed for 8.3).</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1088128800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> - 8:2.01.0.a33-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- new version
-- [cdrtools changelog]: The changes in this release are as follows:
- Cdrecord now tries to check DMA speed, and prevents users from not
- using burnproof if the system is too slow. A bug in mkisofs
- -dvd-video was fixed. A bug in NT SPTI SCSI handling was fixed.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1089770400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> - 8:2.01.0.a34-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- version 2.01.0.a34
-- added dma patch</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1090375200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> - 8:2.01.0.a38-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- updated to version 2.01.0.a38
-- corrected the permissions for /etc/cdrecord.conf (bug 131541)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1094263200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> - 8:2.01.0.a38-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- improved the scanbus routing (scan.patch) now using glob(3)
-- removed linuxcheck()</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1094695200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> - 8:2.01.01.0.a10-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- version 2.01.01a10</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1149645600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> - 8:2.01.1-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- final 2.01 version</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1095127200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> - 8:2.01.1-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fixed scsi-globbing</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1095127200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> - 8:2.01.1-3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- better globbing
-- readded O_EXCL opening for the direct device opening case,
- e.g. dev=/dev/cdrom
-- removed some debugging messages (bug 82089)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1095904800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> - 8:2.01.1-4</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- use scd? instead of sg? for scsi scanning (may only work
- with a medium inserted, see bug 134822)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1097719200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> - 8:2.01.1-5</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- added missing return statements (bug 136088)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1098151200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> - 9:2.01-10</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- moved back to version 2.01 (last GPL version),
- due to incompatible license issues</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1155780000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> 8:2.0-11</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- changed requires</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1056765600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> 8:2.01.01.0.a03-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- version 2.01.01a03
-- DVD patch from http://crashrecovery.org/oss-dvd.html adds support
- for DVD+RW and DVD+R DL burning</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1133838000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> 8:2.01.01.0.a03-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- removed rezero_unit, so that non-root users can burn CDs</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1137553200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> 8:2.01.01.0.a03-3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuilt</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1140058800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> 8:2.01.01.0.a09-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- version 2.01.01a09</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1148954400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> 8:2.01.01.0.a09-4</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- corrected multilib patch (bug #193796)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1149300000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> 8:2.01.01.0.a09-5</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- more corrections to multilib patch (bug #193796)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1149300000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> 8:2.01.01.0.a09-6</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- more corrections to multilib patch (bug #193796)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1149300000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> 8:2.01.1-10</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fixed mkisofs #166707 for gcc4</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1125540000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> 8:2.01.1-11</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fixed isoinfo #167437
-- fixed rscsi debug #152462</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1127959200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.com> 8:2.01.1-7</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fixed gcc4 pickieness</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1108782000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.de> 1.10-15</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- added O_EXCL Patch6
-- added ppc64</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1036810800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.de> 2.0-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- updated to 2.0 final</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1042167600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.de> 2.0-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- s#/etc/default/cdrecord#/etc/cdrecord.conf#g</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1042513200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.de> 2.0-3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- take out O_EXCL Patch
-- mv iso* tools to mkisofs</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1043204400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.de> 2.0pre1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- version 2.0pre1</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1040180400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.de> 8:2.0-5</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- readded O_EXCL patch</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1046228400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.de> 8:2.0-6</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- refined O_EXCL patch</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1046314800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.de> 8:2.0-7</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- refined O_EXCL patch, nonroot sg handling</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1052791200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.de> 8:2.0-8</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- refined O_EXCL patch, nonroot sg handling</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1052877600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.de> 8:2.0-9</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- added fmt patch</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1053655200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.de> 8:2.01-0.a19.2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- converted man pages to utf-8
-- added readcd man page</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1067047200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.de> 8:2.01-0.a19.3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- added more ATAPI devices letters to scan #111603</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1070938800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Harald Hoyer <harald(a)redhat.de> 8:2.01-0.a20.1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- version 2.01a20</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1071630000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jakub Jelinek <jakub(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Fix typos so that it builds with glibc 2.2.2</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>982206000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jesse Keating <jkeating(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuilt</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1134183600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jesse Keating <jkeating(a)redhat.com> - 8:2.01.01.0.a03-2.1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuilt for new gcc4.1 snapshot and glibc changes</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1139367600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jesse Keating <jkeating(a)redhat.com> - 8:2.01.01.0.a03-2.2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- bump again for double-long bug on ppc(64)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1139626800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jesse Keating <jkeating(a)redhat.com> - 8:2.01.01.0.a10-1.1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuild</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1152756000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Karsten Hopp <karsten(a)redhat.de></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuild to fix permissions on /usr/share/doc</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>975726000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Matt Wilson <msw(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- oops, rebuilt to fix the mkisofs mess I made</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>961380000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Matt Wilson <msw(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- require serial:version</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>937879200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mike A. Harris <mharris(a)redhat.com> 1.10-10</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Quelled rpmlint warning messages by adding Provides: cdrecord-cdda2wav to
- cdda2wav subpackage and Provides: mkisofs to mkisofs subpackage</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1014692400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mike A. Harris <mharris(a)redhat.com> 1.10-11</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Added cdrtools-1.11a06-silo.patch for sparc, from Tom "spot" Callaway</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1014951600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mike A. Harris <mharris(a)redhat.com> 1.10-12</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Rebuilt in new build environment</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1014951600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mike A. Harris <mharris(a)redhat.com> 1.10-5</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- bzip2'd the sources to save 300k</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1008730800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mike A. Harris <mharris(a)redhat.com> 1.10-7</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Added -f flag to 'mv' and removed ";" from sed statement in CDEXTRA
- disabling code in spec.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1011582000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mike A. Harris <mharris(a)redhat.com> 1.10-8</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Added cdrtools-1.10-mkisofs-sharing.patch to fix bug (#56304)
-- Added zisofs support patch from Hans Peter Anvin for bugzilla enhancement
- request number (#59251), which requires a Linux kernel 2.4.14 or newer in
- order to have zisofs support.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1011582000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mike A. Harris <mharris(a)redhat.com> 1.10-9</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Rebuilt in new build environment</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1014692400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Preston Brown <pbrown(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- 1.8a25</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>936064800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Preston Brown <pbrown(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- a29</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>937879200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Preston Brown <pbrown(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- adopted for Red Hat Linux 6.1 from Ryan Weaver.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>935200800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Prospector <bugzilla(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- automatic rebuild</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>963453600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Than Ngo <than(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- don't hard code manpath, it breaks when rebuilt it on 6.2 (Bug #20132)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>973825200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Tim Powers <timp(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- automated rebuild</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1022464800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Tim Powers <timp(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- automated rebuild</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1024711200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Tim Powers <timp(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuilt</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1043290800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Tim Powers <timp(a)redhat.com> 1.10-6</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- automated rebuild</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1010631600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Tim Powers <timp(a)redhat.com> 8:2.0-10.1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- add epoch requirement on cdrecord for cdrecord-devel
-- built for RHEL</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1055124000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- patch for %{_mandir}
-- use %{_tmppath} and %{_mandir}
-- don't use %{prefix}
-- exclude ia64</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>960516000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- upgraded to 1.8.1 - updated the redhat patch (renamed to
- "conflocation"), remove the SILO patch (it should be
- supported now...). Is the IDE-patch still necesarry?
-- upgraded source location
-- don't strip manually</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>958010400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- version 1.9 - redid patches, dropped the cdda2wav ioctl
- one as the code has changed
-- use epoch</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>964231200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Warren Togami <wtogami(a)redhat.com> - 8:2.01-0.a27.4</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- oops, wrong version in dvdrecord Obsoletes</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1083981600</rhn-package-changelog-entry-time></rhn-package-changelog-entry></rhn-package-changelog><rhn-package-requires><rhn-package-requires-entry version="4.0-1" name="rpmlib(PayloadFilesHavePrefix)" sense="16777290"/><rhn-package-requires-entry version="3.0.4-1" name="rpmlib(CompressedFileNames)" sense="16777290"/><rhn-package-requires-entry version="" name="libc.so.6" sense="16384"/><rhn-package-requires-entry version="" name="libc.so.6(GLIBC_2.0)" sense="16384"/><rhn-package-requires-entry version="" name="libc.so.6(GLIBC_2.1)" sense="16384"/><rhn-package-requires-entry version="" name="libc.so.6(GLIBC_2.2)" sense="16384"/><rhn-package-requires-entry version="" name="libc.so.6(GLIBC_2.2.3)" sense="16384"/><rhn-package-requires-entry version="" name="libc.so.6(GLIBC_2.3)" sense="16384"/><rhn-package-requires-entry version="" name="libc.so.6(GLIBC_2.3.4)" sense="16384"/><rhn-package-requires-entry version="" name="rtld(GNU_HASH)" sense="16384"/><rhn-package-requires-entry version="" name="libc.so.6(GLIBC_2.4)" sense="16384"/></rhn-package-requires><rhn-package-provides><rhn-package-provides-entry version="" name="cdrecord-mkisofs" sense="0"/><rhn-package-provides-entry version="9:2.01-10" name="mkisofs" sense="8"/></rhn-package-provides><rhn-package-conflicts/><rhn-package-obsoletes><rhn-package-obsoletes-entry version="" name="cdrecord-mkisofs" sense="0"/></rhn-package-obsoletes><rhn-package-files><rhn-package-file username="root" lang="" name="/usr/bin/isodump" verifyflags="-1" rdev="0" groupname="root" mtime="1155730268" file_size="144428" device="2305" flags="0" md5="e062281112a60dbdaddafee899a75f5f" inode="8028391" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/bin/isoinfo" verifyflags="-1" rdev="0" groupname="root" mtime="1155730268" file_size="265484" device="2305" flags="0" md5="2995e0264ed393e3c9ef09b4b86d05c2" inode="8028369" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/bin/isovfy" verifyflags="-1" rdev="0" groupname="root" mtime="1155730268" file_size="145356" device="2305" flags="0" md5="18da94d445a77be9de50485b7f551615" inode="8028372" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/share/man/man8/isoinfo.8.gz" verifyflags="-1" rdev="0" groupname="root" mtime="1155730266" file_size="3414" device="2305" flags="2" md5="2cd075c93063d00f3fd2815b06a0dd8d" inode="8028367" linkto="" file_mode="-32476"/><rhn-package-file username="root" lang="" name="/usr/bin/mkisofs" verifyflags="-1" rdev="0" groupname="root" mtime="1155730268" file_size="476388" device="2305" flags="0" md5="def3467d41343d26a15e2ac5e4f3bb0a" inode="8028370" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/share/man/man8/mkisofs.8.gz" verifyflags="-1" rdev="0" groupname="root" mtime="1155730265" file_size="29218" device="2305" flags="2" md5="152ca406dbbc76862395d5f461e55d89" inode="8028353" linkto="" file_mode="-32476"/><rhn-package-file username="root" lang="" name="/usr/bin/mkhybrid" verifyflags="-1" rdev="0" groupname="root" mtime="1155730265" file_size="7" device="2305" flags="0" md5="" inode="8028362" linkto="mkisofs" file_mode="-24065"/><rhn-package-file username="root" lang="" name="/usr/bin/isodebug" verifyflags="-1" rdev="0" groupname="root" mtime="1155730268" file_size="140300" device="2305" flags="0" md5="4bb964b7ff86a0eb9419433a99b0b4e4" inode="8028379" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/share/man/man8/mkhybrid.8.gz" verifyflags="-1" rdev="0" groupname="root" mtime="1155730265" file_size="64" device="2305" flags="2" md5="50d3a781324797f79824bb54f0bc2b03" inode="8028376" linkto="" file_mode="-32476"/><rhn-package-file username="root" lang="" name="/usr/share/doc/mkisofs-2.01/README.eltorito" verifyflags="0" rdev="0" groupname="root" mtime="953438382" file_size="4575" device="2305" flags="2" md5="c0fd1c053373d02fbb7b3e1883b45351" inode="8028831" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/mkisofs-2.01/README.graft_dirs" verifyflags="0" rdev="0" groupname="root" mtime="947708395" file_size="4693" device="2305" flags="2" md5="5ad847586f6f022eb27b8cf37878e2a9" inode="8028832" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/mkisofs-2.01/README.macosx" verifyflags="0" rdev="0" groupname="root" mtime="1029352913" file_size="1964" device="2305" flags="2" md5="0d72a6d97891826ab9b900ec2e931279" inode="8028837" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/mkisofs-2.01/COPYING" verifyflags="0" rdev="0" groupname="root" mtime="748143719" file_size="18208" device="2305" flags="2" md5="d2cad9e5b4b1cff77dd677270b0e8018" inode="8028827" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/mkisofs-2.01/README.hfs_magic" verifyflags="0" rdev="0" groupname="root" mtime="898014932" file_size="2769" device="2305" flags="2" md5="8406f7da1d6e7e7de1fd82c07ed2a1b7" inode="8028834" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/mkisofs-2.01/README.mkhybrid" verifyflags="0" rdev="0" groupname="root" mtime="962069489" file_size="4174" device="2305" flags="2" md5="8ff4e27c1d4525837b84fd6222074cad" inode="8028838" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/mkisofs-2.01/README.sparcboot" verifyflags="0" rdev="0" groupname="root" mtime="945050492" file_size="3085" device="2305" flags="2" md5="3e2ee5d0fa41a3e8d207bb2572b252f5" inode="8028843" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/mkisofs-2.01/README.joliet" verifyflags="0" rdev="0" groupname="root" mtime="987108399" file_size="2180" device="2305" flags="2" md5="b9eb86d5f6e3185330226b28df0f965b" inode="8028836" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/mkisofs-2.01/README.hide" verifyflags="0" rdev="0" groupname="root" mtime="1006456917" file_size="8336" device="2305" flags="2" md5="dd4dd260e807d0db89b0fc39c2bc5f64" inode="8028835" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/mkisofs-2.01/ChangeLog" verifyflags="0" rdev="0" groupname="root" mtime="1155730176" file_size="127571" device="2305" flags="2" md5="02367ac0a5f982f9ef29ab19aa439f78" inode="8028828" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/mkisofs-2.01/README.sort" verifyflags="0" rdev="0" groupname="root" mtime="1006456917" file_size="3331" device="2305" flags="2" md5="8ccd399e6c11213629723f838eaf6689" inode="8028842" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/mkisofs-2.01" verifyflags="0" rdev="0" groupname="root" mtime="1155730269" file_size="4096" device="2305" flags="0" md5="" inode="8028824" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/doc/mkisofs-2.01/README.session" verifyflags="0" rdev="0" groupname="root" mtime="920366200" file_size="2306" device="2305" flags="2" md5="73decfba349445fda98a63633aeba249" inode="8028841" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/mkisofs-2.01/README.hfs_boot" verifyflags="0" rdev="0" groupname="root" mtime="964121775" file_size="2891" device="2305" flags="2" md5="5b47186a16d25878cabdf7a59f24ef81" inode="8028833" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/mkisofs-2.01/README.prep_boot" verifyflags="0" rdev="0" groupname="root" mtime="934073112" file_size="1780" device="2305" flags="2" md5="e280533584a4ac63358ab9b412503477" inode="8028839" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/mkisofs-2.01/README.compression" verifyflags="0" rdev="0" groupname="root" mtime="1017862951" file_size="704" device="2305" flags="2" md5="19d75ed0b33db723398b728f55de3255" inode="8028830" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/mkisofs-2.01/README" verifyflags="0" rdev="0" groupname="root" mtime="943329795" file_size="5464" device="2305" flags="2" md5="4f4fcd679804d7362f77e05b7d557150" inode="8028829" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/mkisofs-2.01/README.rootinfo" verifyflags="0" rdev="0" groupname="root" mtime="956774498" file_size="2752" device="2305" flags="2" md5="f1fedff760c10e6caee9e039386e89cf" inode="8028840" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/mkisofs-2.01/README.sunx86boot" verifyflags="0" rdev="0" groupname="root" mtime="1072758507" file_size="2520" device="2305" flags="2" md5="2f029bf9465c1b1f57c6930b123d7062" inode="8028844" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/mkisofs-2.01/AN-2.0" verifyflags="0" rdev="0" groupname="root" mtime="1155730176" file_size="54774" device="2305" flags="2" md5="ad5f8bfa468d571d932543ba0ab9713b" inode="8028825" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/mkisofs-2.01/AN-2.01" verifyflags="0" rdev="0" groupname="root" mtime="1155730176" file_size="53434" device="2305" flags="2" md5="22bcc8242cb04cd6171facac1e70c2d9" inode="8028826" linkto="" file_mode="-32348"/></rhn-package-files></rhn-package><rhn-package compat="0" payload-size="30627796" name="samba" package-size="16556646" package-group="System Environment/Daemons
-" build-time="1157180359" source-rpm="samba-3.0.23c-2.src.rpm" md5sum="f28046f84ea5ac24a98cc7b6958d9b19" payload-format="cpio" package-arch="i386" rpm-version="4.4.2" last-modified="1173375414" epoch="0" version="3.0.23c" cookie="hs20-bc1-6.build.redhat.com 1157165694" release="2" build-host="hs20-bc1-6.build.redhat.com" id="rhn-package-386981"><rhn-package-summary>The Samba SMB server.
-</rhn-package-summary><rhn-package-description>
-Samba is the suite of programs by which a lot of PC-related machines
-share files, printers, and other information (such as lists of
-available files and printers). The Windows NT, OS/2, and Linux
-operating systems support this natively, and add-on packages can
-enable the same thing for DOS, Windows, VMS, UNIX of all kinds, MVS,
-and more. This package provides an SMB server that can be used to
-provide network services to SMB (sometimes called "Lan Manager")
-clients. Samba uses NetBIOS over TCP/IP (NetBT) protocols and does NOT
-need the NetBEUI (Microsoft Raw NetBIOS frame) protocol.
-</rhn-package-description><rhn-package-vendor>Red Hat, Inc.</rhn-package-vendor><rhn-package-copyright>GNU GPL Version 2</rhn-package-copyright><rhn-package-header-sig><rhn-null/></rhn-package-header-sig><rhn-package-header-start>440</rhn-package-header-start><rhn-package-header-end>111512</rhn-package-header-end><rhn-package-changelog><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- add a %defattr for -common</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>941248800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- add a %trigger to work around (sort of) broken scripts in
- previous releases</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>935200800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- add a -common package, shuffle files around.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>933991200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- add a chmod in %postun so /etc/services & inetd.conf don't become unreadable</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>932781600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- add a mount.smb to make smb mounting a little easier.
-- smb filesystems apparently don't work on alpha. Oops.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>922503600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- add a patch to fix dropped reconnection attempts</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>938052000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- add copytruncate to logrotate file (#14360)
-- fix init script (#13708)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>964231200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- add domain parsing to mount.smb</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>934250400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- add i18n support, japanese patch (#26253)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>981601200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- add smbspool back in (#15827)
-- fix absolute symlinks (#16125)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>966304800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- always create codepages</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>922417200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- change /var/log/samba to 0700
-- turn on mmap support</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>944103600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- configure the swat stuff usefully
-- re-integrate some specfile tweaks that got lost somewhere</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>961207200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- device-remove security fix again (<tridge(a)samba.org>)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>989287200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fix bash2 breakage in post script</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>918615600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fix condrestart stuff</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>964836000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fix init script</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>962330400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fix initscripts req (prereq /etc/init.d)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>962935200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fix logrotate script (#13698)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>963367200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fix one problem with mount.smb script
-- fix smbpasswd on sparc with a really ugly kludge</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>929412000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fix quota support, and quotas with the 2.4 kernel (#31362, #33915)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>985921200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fix swat only_from line (#18726, others)
-- fix attempt to write outside buildroot on install (#17943)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>971748000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fix tempfile security problems (patch from <Marcus.Meissner(a)caldera.de>)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>986522400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fix tempfile security problems, officially (<tridge(a)samba.org>)
-- update to 2.0.8</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>987818400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fix trigger (#26859)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>981774000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fix trigger, again.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>951534000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fix trigger.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>949978800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fix typo in mount.smb</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>935287200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fix yp_get_default_domain in autoconf
-- only link against readline for smbclient
-- fix log rotation (#9909)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>953262000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fixes for ia64</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>957837600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- go back to stop/start for restart (-HUP didn't work in testing)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>924314400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- i18n-ize initscript
-- add a sysconfig file for daemon options (#23550)
-- clarify smbpasswd man page (#23370)
-- build with LFS support (#22388)
-- avoid extraneous pam error messages (#10666)
-- add Urban Widmark's bug fixes for smbmount (#19623)
-- fix setgid directory modes (#11911)
-- split swat into subpackage (#19706)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>979873200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- initscript munging</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>934855200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- initscript munging</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>962071200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- initscript oopsie. killproc <name> -HUP, not other way around.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>938570400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- logrotate changes</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>922244400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- mount.smb/mount.smbfs go in /sbin, *not* %{_sbindir}</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>993002400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- move initscript back
-- remove 'Using Samba' book from %doc
-- move stuff to /etc/samba (#13708)
-- default configuration tweaks (#13704)
-- some logrotate tweaks</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>963712800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- munge post scripts slightly</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>948510000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- new i18n stuff</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>980391600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- put smbpasswd in samba-common (#25429)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>980996400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuild</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>980132400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuild in new environment</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>960775200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuild to get rid of cups dependency</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>961120800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rename samba logs (#11606)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>962157600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- script cleanups. Again.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>938397600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- sed "s|nawk|gawk|" /usr/bin/convert_smbpasswd</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>936064800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- shift some files into -client
-- remove /home/samba from package.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>939175200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- so many releases, so little time
-- explicitly uncomment 'printing = bsd' in sample config</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>927252000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- split off clients into separate package
-- don't run samba by default</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>929757600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- swat swat</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>919134000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- switch to %configure</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>957664800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- turn of 64-bit locking on 32-bit platforms</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>927684000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- turn of SSL, kerberos</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>986781600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- turn off mmap. ;)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>944535600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- turn on mmap again. Wheee.
-- ship smbmount on alpha</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>948337200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- turn on quota support</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>949719600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- update to 2.0.0</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>918270000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- update to 2.0.2</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>919393200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- update to 2.0.3</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>921034800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- update to 2.0.4a
-- fix mount.smb arg ordering</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>927079200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- update to 2.0.5
-- fix mount.smb - smbmount options changed again.........
-- fix postun. oops.
-- update some stuff from the samba team's spec file.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>932608800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- update to 2.0.6</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>942375600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- updated japanese stuff (#27683)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>982206000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Bill Nottingham <notting(a)redhat.com> 2.2.7-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- update to 2.2.7
-- add patch for LFS in smbclient (<tcallawa(a)redhat.com>)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1037847600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Cristian Gafton <gafton(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- make sure all binaries are stripped</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>908244000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Cristian Gafton <gafton(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuild to fox dependencies
-- man pages are compressed</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>949374000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Cristian Gafton <gafton(a)redhat.com> </rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- auto rebuild in the new build environment (release 3)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>922071600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Dale Lovelace <dale(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fixed logrotate script</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>929066400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Elliot Lee <sopwith(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuilt</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1046142000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Elliot Lee <sopwith(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuilt</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1054778400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Elliot Lee <sopwith(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuilt</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1076727600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Elliot Lee <sopwith(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuilt</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1078282800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Elliot Lee <sopwith(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuilt</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1087351200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Elliot Lee <sopwith(a)redhat.com> 2.2.7-3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Fix missing doc files.
-- Fix multilib issues</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1038884400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Erik Troan <ewt(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- made the %postun script a tad less agressive; no reason to remove
- the logs or lock file (after all, if the lock file is still there,
- samba is still running)
-- the %postun and %preun should only exectute if this is the final
- removal
-- migrated %triggerpostun from Red Hat's samba package to work around
- packaging problems in some Red Hat samba releases</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>897357600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Erik Troan <ewt(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- updated postun triggerscript to check $0
-- clear /etc/codepages from %preun instead of %postun</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>899863200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Felipe Alfaro Solana <felipe_alfaro(a)linuxmail.org> 3.0.1-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Update to 3.0.1
-- Removed testparm patch as it's already merged
-- Removed Samba.7* man pages
-- Fixed .buildroot patch
-- Fixed .pie patch
-- Added new /usr/bin/tdbdump file</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1071716400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Florian La Roche <Florian.LaRoche(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- simplify preun</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>954126000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Florian La Roche <Florian.LaRoche(a)redhat.de></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- add proper ldconfig calls</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1052964000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Florian La Roche <Florian.LaRoche(a)redhat.de> 2.2.2-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- add "reload" to the usage string in the startup script</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1004842800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Florian La Roche <laroche(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- add a "exit 0" to the postun of the main samba package</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1111719600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Helge Deller <hdeller(a)redhat.de> </rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- build as 2.2.0-1 release
-- skip the documentation-directories docbook, manpages and yodldocs
-- don't include *.sgml documentation in package
-- moved codepage-directory to /usr/share/samba/codepages
-- make it compile with glibc-2.2.3-10 and kernel-headers-2.4.2-2</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>991965600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Helge Deller <hdeller(a)redhat.de> </rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- updated to samba 2.2.0
-- moved codepages to /usr/share/samba/codepages
-- use all available CPUs for building rpm packages
-- use %{_xxx} defines at most places in spec-file
-- "License:" replaces "Copyright:"
-- dropped excludearch sparc
-- de-activated japanese patches 100 and 200 for now
- (they need to be fixed and tested wth 2.2.0)
-- separated swat.desktop file from spec-file and added
- german translations
-- moved /etc/sysconfig/samba to a separate source-file
-- use htmlview instead of direct call to netscape in
- swat.desktop-file</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>990496800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jason Vas Dias <jvdias(a)redhat.com> 3.0.5-3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Removed '-pie' patch - 3.0.5 uses -fPIC/-PIC, and the combination
-- resulted in executables getting corrupt stacks, causing smbmnt to
-- get a SIGBUS in the mount() call (bug 127420).</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1091757600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Change all requires lines to list an explicit epoch. Closes #102715
-- Add an explicit Epoch so that 0 is defined.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1076727600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Include patch from Steven Lawrance (slawrance(a)yahoo.com) that modifies
- smbmnt to work with 32-bit uids.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1097114400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Merge from samba-3E-branch after samba-3.0.0rc1 was released</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1061258400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 2.0.21c-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- New upstream version.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1142650800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 2.2.7a-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Update to 2.2.7a
-- Change default printing system to CUPS
-- Turn on pam_smbpass
-- Turn on msdfs</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1042167600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 2.2.7a-3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- edited spec file to put .so files in the correct directories
- on 64-bit platforms that have 32-bit compatability issues
- (sparc64, x86_64, etc). This fixes bugzilla #83782.
-- Added samba-2.2.7a-error.patch from twaugh. This fixes
- bugzilla #82454.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1044932400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 2.2.8-0</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Upgrade to 2.2.8
-- removed commented out patches.
-- removed old patches and .md5 files from the repository.
-- remove duplicate /sbin/chkconfig --del winbind which causes
- warnings when removing samba.
-- Fixed minor bug in smbprint that causes it to fail when called with
- more than 10 parameters: the accounting file (and spool directory
- derived from it) were being set wrong due to missing {}. This closes
- bug #86473.
-- updated smb.conf patch, includes new defaults to close bug #84822.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1048561200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 2.2.8a-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- upgrade to 2.2.8a
-- remove old .md5 files
-- add "pid directory = /var/run" to the smb.conf file. Fixes #88495
-- Patch from jra(a)dp.samba.org to fix a delete-on-close regression</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1051236000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 2.2.8a-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- add libsmbclient.so for gnome-vfs-extras
-- Edit specfile to specify /var/run for pid files
-- Move /tmp/.winbindd/socket to /var/run/winbindd/socket</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1054173600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.0-15</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- New 3.0.0 final release
-- merge nmbd-netbiosname and testparm patches from 3E branch
-- updated the -logfiles patch to work against 3.0.0
-- updated the pie patch
-- update the VERSION file during build
-- use make -j if avaliable
-- merge the winbindd_privileged change from 3E
-- merge the "rm /usr/lib" patch that allows Samba to build on 64-bit
- platforms despite the broken Makefile</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1064541600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.0-3beta3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Merge from 3.0.0-2beta3.3E
-- (Correct log file names (#100981).)
-- (Fix pidfile directory in samab.log)
-- (Remove obsolete samba-3.0.0beta2.tar.bz2.md5 file)
-- (Move libsmbclient to the -common package (#99449))</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1059012000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.10-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- New upstream release that closes CAN-2004-1154 bz#142544
-- Include the -64bit patch from Nalin. This closes bz#142873
-- Update the -logfiles patch to work with 3.0.10
-- Create /var/run/winbindd and make it part of the -common rpm to close
- bz#142242</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1103338800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.10-4</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Update the -man patch to fix ntlm_auth.1 too.
-- Move pam_smbpass.so to the -common package, so both the 32
- and 64-bit versions will be installed on multiarch platforms.
- This closes bz#143617
-- Added new -delim patch to fix mount.cifs so it can accept
- passwords with commas in them (via environment or credentials
- file) to close bz#144198</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1105585200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.11-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- include -smbspool patch to close bz#104136</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1107572400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.11-3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- add -gcc4 patch to compile with gcc 4.
-- remove the now obsolete -smbclient-kerberos.patch
-- Include four upstream patches from
- http://samba.org/~jerry/patches/post-3.0.11/
- (Slightly modified the winbind_find_dc_v2 patch to apply easily with
- rpmbuild).</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1108782000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.11-4</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Use the updated filter-requires-samba.sh file, so we don't accidentally
- pick up a dependency on perl(Crypt::SmbHash)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1109300400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.13-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- New upstream release
-- add my -quoting patch, to fix swat with strings that contain
- html meta-characters, and to use correct quote characters in
- lists, closing bz#134310
-- include the upstream winbindd_2k3sp1 patch
-- include the -smbclient patch.
-- include the -hang patch from upstream.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1112925600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.14a-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- New upstream release.
-- the -64bit-timestamps, -clitar, -establish_trust, user_rights_v1,
- winbind_find_dc_v2 patches are now obsolete.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1115085600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.2-1rc1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Upgrade to new upstream version</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1074567600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.2-3rc2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- add %dir entries for /usr/lib/samba and /usr/lib/samba/charset
-- Upgrade to new upstream version
-- build mount.cifs for the new cifs filesystem in the 2.6 kernel.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1075777200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.2-5</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- New upstream version: 3.0.2 final includes security fix for #114995
- (CAN-2004-0082)
-- Edit postun script for the -common package to restart winbind when
- appropriate. Fixes bugzilla #114051.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1076382000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.20-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- New upstream release
- Includes five upstream patches -bug3010_v1, -groupname_enumeration_v3,
- -regcreatekey_winxp_v1, -usrmgr_groups_v1, and -winbindd_v1
- This obsoletes the -pie and -delim patches
- the -warning and -gcc4 patches are obsolete too
- The -man, -passwd, and -smbspool patches were updated to match 3.0.20pre1
- Also, the -quoting patch was implemented differently upstream
- There is now a umount.cifs executable and manpage
- We run autogen.sh as part of the build phase
- The testprns command is now gone
- libsmbclient now has a man page
-- Include -bug106483 patch to close
- bz#106483 smbclient: -N negates the provided password, despite documentation
-- Added the -warnings patch to quiet some compiler warnings.
-- Removed many obsolete patches from CVS.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1124762400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.20b-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- turn on -DLDAP_DEPRECATED to allow access to ldap functions that have
- been depricated in 2.3.11, but which don't have well-documented
- replacements (ldap_simple_bind_s(), for example).
-- Upgrade to 3.0.20b, which includes all the previous upstream patches.
-- Updated the -warnings patch for 3.0.20a.
-- Include --with-shared-modules=idmap_ad,idmap_rid to close
- bz#156810 --with-shared-modules=idmap_ad,idmap_rid
-- Include the new samba.pamd from Tomas Mraz (tmraz(a)redhat.com) to close
- bz#170259 pam_stack is deprecated</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1131937200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.21b-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- New upstream version.
-- Since the rawhide kernel has dropped support for smbfs, remove smbmount
- and smbumount. Users should use mount.cifs instead.
-- Upgrade to 3.0.21b</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1139886000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.23-0.RC3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- New upstream RC release.
-- Update the -logfiles, and -passwd patches for
- 3.0.23rc3
-- Include the change to smb.init from Bastien Nocera <bnocera(a)redhat.com>)
- to close
- bz#182560 Wrong retval for initscript when smbd is dead
-- Update this spec file to build with 3.0.23rc3
-- Remove the -install.mount.smbfs patch, since we don't install
- mount.smbfs any more.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1152237600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.23-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- New upstream release.
-- Use modified filter-requires-samba.sh from packaging/RHEL/setup/
- to get rid of bogus dependency on perl(Unicode::MapUTF8)
-- Update the -logfiles and -smb.conf patches to work with 3.0.23</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1152669600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.23a-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Upgrade to new upstream 3.0.23a
-- include upstream samr_alias patch</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1153792800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.23a-3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Fix the -logfiles patch to close
- bz#199607 Samba compiled with wrong log path.
- bz#199206 smb.conf has incorrect log file path</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1153792800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.23b-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- New upstream release.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1155088800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.23c-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- New upstream release.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1157162400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.2a-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Upgrade to 3.0.2a</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1076986800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.3-1.pre1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- New upstream version.
-- Updated -pie and -logfiles patches for 3.0.3pre1
-- add krb5-devel to buildrequires, fixes #116560
-- Add patch from Miloslav Trmac (mitr(a)volny.cz) to allow non-root to run
- "service smb status". This fixes #116559</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1079406000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.3-2.pre2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- New upstream version
-- Updated configure line to remove --with-fhs and to explicitly set all
- the directories that --with-fhs was setting. We were overriding most of
- them anyway. This closes #118598</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1081216800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.3-4</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Samba 3.0.3 released.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1083290400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.3-5</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Patch to allow password changes from machines patched with
- Microsoft hotfix MS04-011.
-- Include patches for https://bugzilla.samba.org/show_bug.cgi?id=1302
- and https://bugzilla.samba.org/show_bug.cgi?id=1309</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1083722400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.5-0.pre1.1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Backport base64_decode patche to close CAN-2004-0500
-- Backport hash patch to close CAN-2004-0686
-- use_authtok patch from Nalin Dahyabhai <nalin(a)redhat.com>
-- smbclient-kerberos patch from Alexander Larsson <alexl(a)redhat.com>
-- passwd patch uses "*" instead of "x" for "hashed" passwords for
- accounts created by winbind. "x" means "password is in /etc/shadow" to
- brain-damaged pam_unix module.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1090375200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.5-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Upgrade to 3.0.5, which is a regression from 3.0.5pre1 for a
- security fix.
-- Include the 3.0.4-backport patch from the 3E branch. This restores
- some of the 3.0.5pre1 and 3.0.5rc1 functionality.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1091239200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.5.0pre1.0</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- New upstream version
-- use % { SOURCE1 } instead of a hardcoded path
-- include -winbind patch from Gerald (Jerry) Carter (jerry(a)samba.org)
- https://bugzilla.samba.org/show_bug.cgi?id=1315
- to make winbindd work against Windows versions that do not have
- 128 bit encryption enabled.
-- Moved /usr/bin/net to the -common package, so that folks who just
- want to use winbind, etc don't have to install -client in order to
- "net join" their domain.
-- New upstream version obsoletes the patches added in 3.0.3-5
-- Remove smbgetrc.5 man page, since we don't ship smbget.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1088820000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.6-3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- New upstream version.
-- Include post 3.0.6 patch from "Gerald (Jerry) Carter" <jerry(a)samba.org>
- to fix a duplicate in the LDAP schema.
-- Include 64-bit timestamp patch from Ravikumar (rkumar(a)hp.com)
- to allow correct timestamp handling on 64-bit platforms and fix #126109.
-- reenable the -pie patch. Samba is too widely used, and too vulnerable
- to potential security holes to disable an important security feature
- like -pie. The correct fix is to have the toolchain not create broken
- executables when programs compiled -pie are stripped.
-- Remove obsolete patches.
-- Modify this spec file to put libsmbclient.{a,so} in the right place on
- x86_64 machines.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1092708000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.7-3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Upgrade to 3.0.7, which fixes CAN-2004-0807 CAN-2004-0808
- This obsoletes the 3.0.6-schema patch.
-- Update BuildRequires line to include openldap-devel openssl-devel
- and cups-devel</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1095127200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.7-4</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Update docs section to not carryover the docs/manpages directory
- This moved many files from /usr/share/doc/samba-3.0.7/docs/* to
- /usr/share/doc/samba-3.0.7/*
-- Modify spec file as suggested by Rex Dieter (rdieter(a)math.unl.edu)
- to correctly create libsmbclient.so.0 and to use /etc/rc.d/init.d instead
- of rolling our own. This closes #132642
-- Add patch to default "use sendfile" to no, since sendfile appears to
- be broken
-- Add patch from Volker Lendecke <vl(a)samba.org> to help make
- ldapsam_compat work again.
-- Add patch from "Vince Brimhall" <vbrimhall(a)novell.com> for ldapsam_compat
- These two patches close bugzilla #132169</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1095300000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.8-0.pre1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- new upstream release. This obsoletes the ldapsam_compat patches.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1096336800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.8-0.pre1.1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Include disable-sendfile patch to default "use sendfile" to "no".
- This closes #132779</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1097719200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.8-0.pre1.2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Re-enable the x_fclose patch that was accidentally disabled
- in 3.0.8-0.pre1.1. This closes #135832
-- include Nalin's -fqdn and -salt patches.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1097892000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.8-0.pre1.3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- disable the -salt patch, because it causes undefined references in
- libsmbclient that prevent gnome-vfs from building.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1098237600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.8-0.pre2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- New upstream version
-- Add Nalin's signing-shortkey patch.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1098842400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.8-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- New upstream version fixes CAN-2004-0930. This obsoletes the
- disable-sendfile, salt, signing-shortkey and fqdn patches.
-- Add my <fenlason(a)redhat.com> ugly non-ascii-domain patch.
-- Updated the pie patch for 3.0.8.
-- Updated the logfiles patch for 3.0.8.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1099969200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.8-3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Include the corrected docs tarball, and use it instead of the
- obsolete docs from the upstream 3.0.8 tarball.
-- Update the logfiles patch to work with the updated docs.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1100055600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.8-3.1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Rescue the install.mount.smbfs patch from Juanjo Villaplana
- (villapla(a)si.uji.es) to prevent building the srpm from trashing your
- installed /usr/bin/smbmount</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1100228400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jay Fenlason <fenlason(a)redhat.com> 3.0.9-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- New upstream release. This obsoletes the -secret patch.
- Include my changetrustpw patch to make "net ads changetrustpw" stop
- aborting. This closes #134694
-- Remove obsolete triggers for ancient samba versions.
-- Move /var/log/samba to the -common rpm. This closes #76628
-- Remove the hack needed to get around the bad docs files in the
- 3.0.8 tarball.
-- Change the comment in winbind.init to point at the correct pidfile.
- This closes #76641</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1101178800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jeff Johnson <jbj(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- update to 1.9.18p10.
-- fix %triggerpostun.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>906084000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jeff Johnson <jbj(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- use cp rather than mv to preserve /etc/services perms (#4938 et al).
-- use mktemp to generate /etc/tmp.XXXXXX file name.
-- add prereqs on sed/mktemp/killall (need to move killall to /bin).
-- fix trigger syntax (i.e. "samba < 1.9.18p7" not "samba < samba-1.9.18p7")</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>936669600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jeff Johnson <jbj(a)redhat.com> 2.2.7-5</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- use internal dep generator.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1041735600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jesse Keating <jkeating(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuilt</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1134183600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jesse Keating <jkeating(a)redhat.com> - 0:3.0.20b-2.1.1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- bump again for double-long bug on ppc(64)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1139626800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>John H Terpstra <jht(a)samba.anu.edu.au></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Many optimisations (some suggested by Manoj Kasichainula <manojk(a)io.com>
-- Use of chkconfig in place of individual symlinks to /etc/rc.d/init/smb
-- Compounded make line
-- Updated smb.init restart mechanism
-- Use compound mkdir -p line instead of individual calls to mkdir
-- Fixed smb.conf file path for log files
-- Fixed smb.conf file path for incoming smb print spool directory
-- Added a number of options to smb.conf file
-- Added smbadduser command (missed from all previous RPMs) - Doooh!
-- Added smbuser file and smb.conf file updates for username map</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>885697200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>John H Terpstra <jht(a)samba.anu.edu.au></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Updated version and codepage info.
-- Release to test name resolve order</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>890276400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>John H Terpstra <jht(a)samba.anu.edu.au></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- minor tidy up in preparation for release of 1.9.18p5
-- added findsmb utility from SGI package</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>893642400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jonathan Blandford <jrb(a)redhat.com> 2.2.7a-5</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- remove swat.desktop file</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1045796400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Karsten Hopp <karsten(a)redhat.de> 3.0.2-7 </rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fix ownership in -common package</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1076986800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Matt Wilson <msw(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- patch configure.ing (patch11) to disable cups test
-- turn off swat by default</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>965095200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Nalin Dahyabhai <nalin(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- change PAM setup to use system-auth</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>959911200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Nalin Dahyabhai <nalin(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- enable Kerberos 5 and SSL support
-- patch for duplicate profile.h headers</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>962330400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Nalin Dahyabhai <nalin(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuild in new environment</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>983588400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Nalin Dahyabhai <nalin(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- set a default CA certificate path in smb.conf (#19010)
-- require openssl >= 0.9.5a-20 to make sure we have a ca-bundle.crt file</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>972525600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Nalin Dahyabhai <nalin(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- tweak logrotate configurations to use the PID file in /var/lock/samba</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>961034400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Nalin Dahyabhai <nalin(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- tweak the PAM code some more to try to do a setcred() after initgroups()
-- pull in all of the optflags on i386 and sparc
-- don't explicitly enable Kerberos support -- it's only used for password
- checking, and if PAM is enabled it's a no-op anyway</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>985662000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Nalin Dahyabhai <nalin(a)redhat.com> 2.2.3a-3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- include interfaces.o in pam_smbpass.so, which needs symbols from interfaces.o
- (patch posted to samba-list by Ilia Chipitsine)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1016161200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Nalin Dahyabhai <nalin(a)redhat.com> 2.2.7a-4</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- relink libnss_wins.so with SHLD="gcc -lnsl" to force libnss_wins.so to
- link with libnsl, avoiding unresolved symbol errors on functions in libnsl</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1045796400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Nalin Dahyabhai <nalin(a)redhat.com> 2.2.8a-4</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuild</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1056333600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Nils Philippsen <nils(a)redhat.de></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- version 2.0.7</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>956800800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Philipp Knirsch <pknirsch(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- bugfix for smbadduser script (#15148)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>965613600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Preston Brown <pbrown(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- enable encypted passwords by default</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>992052000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Preston Brown <pbrown(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- updated init script to use graceful restart (not stop/start)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>921898800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Prospector <bugzilla(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- automatic rebuild</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>963453600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Than Ngo <than(a)redhat.com> 3.0.8-4</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fix unresolved symbols in libsmbclient which caused applications
- such as KDE's konqueror to fail when accessing smb:// URLs. #139894</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1101178800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Than Ngo <than(a)redhat.de></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- add initdir macro to handle the initscript directory
-- add a new macro to handle /etc/pam.d/system-auth</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>962848800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Tim Powers <timp(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- automated rebuild</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1022205600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Tim Powers <timp(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- automated rebuild</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1024711200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Tim Powers <timp(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuilt</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1043290800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Tim Powers <timp(a)redhat.com> 2.2.7-4</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- don't use rpms internal dep generator</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1039921200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Tim Waugh <twaugh(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- exit successfully from preun script (bug #30644).</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>983847600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Tim Waugh <twaugh(a)redhat.com> 3.0.10-3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Rebuilt for new readline.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1105585200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Tomas Mraz <tmraz(a)redhat.com> - 2.0.21c-3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuilt with new gnutls</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1150336800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Tomas Mraz <tmraz(a)redhat.com> 3.0.11-5</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuild with openssl-0.9.7e</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1109818800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>(these changes are from the non-head version)
-- Don't include /usr/sbin/samba, it's the same as the initscript
-- unset TMPDIR, as samba can't write into a TMPDIR owned
- by root (#41193)
-- Add pidfile: lines for smbd and nmbd and a config: line
- in the initscript (#15343)
-- don't use make -j
-- explicitly include /usr/share/samba, not just the files in it</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>993002400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- 2.2.0a security fix
-- Mark lograte and pam configuration files as noreplace</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>993348000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- 2.2.1, which should work better for XP</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>994816800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- 2.2.1a bugfix release</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>994903200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Add improvements to the smb.conf as suggested in #16931</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>993175200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Add the /etc/samba directory to samba-common</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>993261600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Don't include smbpasswd in samba, it's in samba-common (#51598)
-- Add a disabled "obey pam restrictions" statement - it's not
- active, as we use encrypted passwords, but if the admin turns
- encrypted passwords off the choice is available. (#31351)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>997754400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Tweaks of BuildRequires (#49581)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>995680800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Use /var/cache/samba instead of /var/lock/samba
-- Remove "domain controller" keyword from smb.conf, it's
- deprecated (from #13704)
-- Sync some examples with smb.conf.default
-- Fix password synchronization (#16987)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>997322400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- i18n improvements in initscript (#26537)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>981601200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.1a-5</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Add patch from Jeremy Allison to fix IA64 alignment problems (#51497)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1000864800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.2-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- 2.2.2</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1003197600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.2-3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Add "--with-utmp" to configure options (#55372)
-- Include winbind, pam_smbpass.so, rpcclient and smbcacls
-- start using /var/cache/samba, we need to keep state and there is
- more than just locks involved</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1005015600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.2-4</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Fix pid-file reference in logrotate script
-- include pam and nss modules for winbind</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1005188400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.2-5</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Teach smbadduser about "getent passwd"
-- Fix more pid-file references
-- Add (conditional) winbindd startup to the initscript, configured in
- /etc/sysconfig/samba</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1005274800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.2-6</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Move winbind files to samba-common. Add separate initscript for
- winbind
-- Fixes for winbind - protect global variables with mutex, use
- more secure getenv</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1005706800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.2-7</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Enable PAM session controll and password sync</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1006916400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.2-8</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- New pam configuration file for samba</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1007089200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.3-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- 2.2.3</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1012878000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.3a-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- 2.2.3a</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1013137200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.3a-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Rebuild</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1014346800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.3a-4</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Make the logrotate script look the correct place for the pid files</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1017198000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.3a-5</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Add libsmbclient.a w/headerfile for KDE (#62202)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1017975600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.3a-6</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Don't use /etc/samba.d in smbadduser, it should be /etc/samba</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1018490400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.4-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- 2.2.4
-- Removed some zero-length and CVS internal files
-- Make it build</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1020996000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.4-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Fix #64804</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1021428000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.4-4</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Fix pidfile locations so it runs properly again (2.2.4
- added a new directtive - #65007)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1023242400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.4-5</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Move the post/preun of winbind into the -common subpackage,
- where the script is (#66128)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1024106400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.5-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- 2.2.5</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1024624800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.5-10</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- logrotate fixes (#65007)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1030586400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.5-3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Make it not depend on Net::LDAP - those are doc files and examples</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1025056800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.5-4</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Enable ACLs</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1025143200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.5-5</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- desktop file fixes (#69505)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1027476000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.5-6</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Fix the lpq parser for better handling of LPRng systems (#69352)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1027476000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.5-7</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Enable VFS support and compile the "recycling" module (#69796)
-- more selective includes of the examples dir</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1027735200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.5-8</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Initscript fix (#70720)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1028599200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Trond Eivind Glomsrød <teg(a)redhat.com> 2.2.5-9</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- /usr/lib was used in place of %{_libdir} in three locations (#72554)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1030413600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Warren Togami <wtogami(a)redhat.com> 3.0.20-3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- epochs from deps, req exact release
-- rebuild against new openssl</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1131937200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>jay Fenlason <fenlason(a)redhat.com> 3.0.3-3.rc1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- New upstream version
-- updated spec file to make libsmbclient.so executable. This closes
- bugzilla #121356</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1082599200</rhn-package-changelog-entry-time></rhn-package-changelog-entry></rhn-package-changelog><rhn-package-requires><rhn-package-requires-entry version="4.0-1" name="rpmlib(PayloadFilesHavePrefix)" sense="16777290"/><rhn-package-requires-entry version="3.0.4-1" name="rpmlib(CompressedFileNames)" sense="16777290"/><rhn-package-requires-entry version="" name="libc.so.6" sense="16384"/><rhn-package-requires-entry version="" name="libc.so.6(GLIBC_2.0)" sense="16384"/><rhn-package-requires-entry version="" name="libc.so.6(GLIBC_2.1)" sense="16384"/><rhn-package-requires-entry version="" name="libc.so.6(GLIBC_2.1.3)" sense="16384"/><rhn-package-requires-entry version="" name="/sbin/chkconfig" sense="64"/><rhn-package-requires-entry version="" name="/bin/sh" sense="1344"/><rhn-package-requires-entry version="" name="/bin/sh" sense="2368"/><rhn-package-requires-entry version="" name="/bin/sh" sense="4416"/><rhn-package-requires-entry version="" name="/bin/sh" sense="16384"/><rhn-package-requires-entry version="" name="libpthread.so.0" sense="16384"/><rhn-package-requires-entry version="" name="libpthread.so.0(GLIBC_2.0)" sense="16384"/><rhn-package-requires-entry version="" name="libpthread.so.0(GLIBC_2.1)" sense="16384"/><rhn-package-requires-entry version="" name="libcrypt.so.1" sense="16384"/><rhn-package-requires-entry version="" name="libnsl.so.1" sense="16384"/><rhn-package-requires-entry version="" name="libm.so.6" sense="16384"/><rhn-package-requires-entry version="" name="libz.so.1" sense="16384"/><rhn-package-requires-entry version="" name="libc.so.6(GLIBC_2.2)" sense="16384"/><rhn-package-requires-entry version="" name="libpthread.so.0(GLIBC_2.2)" sense="16384"/><rhn-package-requires-entry version="" name="libdl.so.2" sense="16384"/><rhn-package-requires-entry version="" name="fileutils" sense="64"/><rhn-package-requires-entry version="" name="libk5crypto.so.3" sense="16384"/><rhn-package-requires-entry version="" name="libkrb5.so.3" sense="16384"/><rhn-package-requires-entry version="" name="libdl.so.2(GLIBC_2.0)" sense="16384"/><rhn-package-requires-entry version="" name="libdl.so.2(GLIBC_2.1)" sense="16384"/><rhn-package-requires-entry version="" name="libnsl.so.1(GLIBC_2.0)" sense="16384"/><rhn-package-requires-entry version="" name="/etc/pam.d/system-auth" sense="0"/><rhn-package-requires-entry version="" name="libpam.so.0" sense="16384"/><rhn-package-requires-entry version="" name="sed" sense="64"/><rhn-package-requires-entry version="" name="libpopt.so.0" sense="16384"/><rhn-package-requires-entry version="" name="libresolv.so.2" sense="16384"/><rhn-package-requires-entry version="" name="/etc/init.d" sense="64"/><rhn-package-requires-entry version="" name="libcom_err.so.2" sense="16384"/><rhn-package-requires-entry version="" name="libresolv.so.2(GLIBC_2.2)" sense="16384"/><rhn-package-requires-entry version="3.0.3-1" name="rpmlib(VersionedDependencies)" sense="16777290"/><rhn-package-requires-entry version="" name="/bin/mktemp" sense="64"/><rhn-package-requires-entry version="" name="libgssapi_krb5.so.2" sense="16384"/><rhn-package-requires-entry version="" name="libc.so.6(GLIBC_2.1.1)" sense="16384"/><rhn-package-requires-entry version="" name="perl(Exporter)" sense="16384"/><rhn-package-requires-entry version="" name="/usr/bin/killall" sense="64"/><rhn-package-requires-entry version="" name="libcups.so.2" sense="16384"/><rhn-package-requires-entry version="" name="perl(strict)" sense="16384"/><rhn-package-requires-entry version="" name="perl(vars)" sense="16384"/><rhn-package-requires-entry version="" name="libc.so.6(GLIBC_2.2.3)" sense="16384"/><rhn-package-requires-entry version="" name="libc.so.6(GLIBC_2.2.4)" sense="16384"/><rhn-package-requires-entry version="" name="libattr.so.1" sense="16384"/><rhn-package-requires-entry version="" name="libacl.so.1" sense="16384"/><rhn-package-requires-entry version="" name="libc.so.6(GLIBC_2.3)" sense="16384"/><rhn-package-requires-entry version="" name="libattr.so.1(ATTR_1.0)" sense="16384"/><rhn-package-requires-entry version="" name="libacl.so.1(ACL_1.0)" sense="16384"/><rhn-package-requires-entry version="" name="libc.so.6(GLIBC_2.3.4)" sense="16384"/><rhn-package-requires-entry version="0:3.4" name="logrotate" sense="12"/><rhn-package-requires-entry version="0:5.54-1" name="initscripts" sense="12"/><rhn-package-requires-entry version="0:0.64" name="pam" sense="12"/><rhn-package-requires-entry version="" name="libkrb5.so.3(krb5_3_MIT)" sense="16384"/><rhn-package-requires-entry version="" name="libk5crypto.so.3(k5crypto_3_MIT)" sense="16384"/><rhn-package-requires-entry version="" name="libgssapi_krb5.so.2(gssapi_krb5_2_MIT)" sense="16384"/><rhn-package-requires-entry version="" name="liblber-2.3.so.0" sense="16384"/><rhn-package-requires-entry version="" name="libldap-2.3.so.0" sense="16384"/><rhn-package-requires-entry version="" name="rtld(GNU_HASH)" sense="16384"/><rhn-package-requires-entry version="" name="libc.so.6(GLIBC_2.4)" sense="16384"/><rhn-package-requires-entry version="" name="libpam.so.0(LIBPAM_1.0)" sense="16384"/><rhn-package-requires-entry version="0:3.0.23c-2" name="samba-common" sense="8"/><rhn-package-requires-entry version="0:3.0.23c-2" name="config(samba)" sense="268435464"/></rhn-package-requires><rhn-package-provides><rhn-package-provides-entry version="" name="audit.so" sense="32768"/><rhn-package-provides-entry version="" name="cap.so" sense="32768"/><rhn-package-provides-entry version="0:3.0.23c-2" name="config(samba)" sense="268435464"/><rhn-package-provides-entry version="" name="default_quota.so" sense="32768"/><rhn-package-provides-entry version="" name="expand_msdfs.so" sense="32768"/><rhn-package-provides-entry version="" name="extd_audit.so" sense="32768"/><rhn-package-provides-entry version="" name="fake_perms.so" sense="32768"/><rhn-package-provides-entry version="" name="full_audit.so" sense="32768"/><rhn-package-provides-entry version="" name="netatalk.so" sense="32768"/><rhn-package-provides-entry version="1.00" name="perl(smbldap_tools)" sense="32776"/><rhn-package-provides-entry version="" name="readonly.so" sense="32768"/><rhn-package-provides-entry version="" name="recycle.so" sense="32768"/><rhn-package-provides-entry version="" name="shadow_copy.so" sense="32768"/><rhn-package-provides-entry version="0:3.0.23c-2" name="samba" sense="8"/></rhn-package-provides><rhn-package-conflicts/><rhn-package-obsoletes/><rhn-package-files><rhn-package-file username="root" lang="" name="/etc/logrotate.d/samba" verifyflags="-1" rdev="0" groupname="root" mtime="1157180346" file_size="232" device="2305" flags="17" md5="fd4c01721c608a8c3c79ed3c921c5378" inode="8569008" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/etc/pam.d/samba" verifyflags="-1" rdev="0" groupname="root" mtime="1157180346" file_size="257" device="2305" flags="17" md5="46c80cede9cabf3cb8fc3c12e803c004" inode="8569007" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/etc/rc.d/init.d/smb" verifyflags="-1" rdev="0" groupname="root" mtime="1157180346" file_size="2087" device="2305" flags="1" md5="b1c26e5292157a83cadabe851bf9b2f9" inode="8569005" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/etc/samba/smbusers" verifyflags="-1" rdev="0" groupname="root" mtime="1157180346" file_size="97" device="2305" flags="17" md5="a6a6c093b522c2c232f7ee27e83db0ed" inode="8569003" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/etc/sysconfig/samba" verifyflags="-1" rdev="0" groupname="root" mtime="1157180347" file_size="111" device="2305" flags="17" md5="074ce0175f3b5a04f0748560d390488c" inode="8585727" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/bin/mksmbpasswd.sh" verifyflags="-1" rdev="0" groupname="root" mtime="1157180346" file_size="205" device="2305" flags="0" md5="76ed226281d9b8e3f3066477ec27ab12" inode="8569002" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/bin/smbstatus" verifyflags="-1" rdev="0" groupname="root" mtime="1157180358" file_size="727968" device="2305" flags="0" md5="dc94ab68e36c95181e1413bdfd43fbd8" inode="8568957" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/sbin/nmbd" verifyflags="-1" rdev="0" groupname="root" mtime="1157180358" file_size="1106812" device="2305" flags="0" md5="320109cd6ac948e202ead5e455c2fcc9" inode="8568937" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/sbin/smbd" verifyflags="-1" rdev="0" groupname="root" mtime="1157180358" file_size="3805240" device="2305" flags="0" md5="cf34c681dc0a15d3a65d133fffe27c9e" inode="8568936" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/share/man/man1/smbstatus.1.gz" verifyflags="-1" rdev="0" groupname="root" mtime="1157180344" file_size="1731" device="2305" flags="2" md5="0c71aca1c380f21b47644f643de7bbc3" inode="8585229" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/man/man5/smbpasswd.5.gz" verifyflags="-1" rdev="0" groupname="root" mtime="1157180344" file_size="2559" device="2305" flags="2" md5="bd35fb6506bc8307969fdd31fc4f71a7" inode="8585239" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/man/man7/samba.7.gz" verifyflags="-1" rdev="0" groupname="root" mtime="1157180344" file_size="2926" device="2305" flags="2" md5="d2005647ec0a4c44f5a991650b9511db" inode="8585243" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/man/man8/nmbd.8.gz" verifyflags="-1" rdev="0" groupname="root" mtime="1157180344" file_size="3780" device="2305" flags="2" md5="4637c4f7854a03da3fa0657ffc6a474b" inode="8585256" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/man/man8/smbd.8.gz" verifyflags="-1" rdev="0" groupname="root" mtime="1157180344" file_size="5096" device="2305" flags="2" md5="6c17296f1a7da98cbf8037fe79fc7de9" inode="8585258" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/var/spool/samba" verifyflags="-1" rdev="0" groupname="root" mtime="1157180344" file_size="4096" device="2305" flags="0" md5="" inode="8568920" linkto="" file_mode="17407"/><rhn-package-file username="root" lang="" name="/usr/share/man/man1/smbcontrol.1.gz" verifyflags="-1" rdev="0" groupname="root" mtime="1157180344" file_size="2403" device="2305" flags="2" md5="d635fb1176445fb332ecd28b5c279b45" inode="8585227" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/bin/smbcontrol" verifyflags="-1" rdev="0" groupname="root" mtime="1157180358" file_size="748836" device="2305" flags="0" md5="4b9ed02683950bfc7c4b8ce44052e431" inode="8568999" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/lib/samba/vfs" verifyflags="-1" rdev="0" groupname="root" mtime="1157180358" file_size="4096" device="2305" flags="0" md5="" inode="8585690" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/lib/samba/vfs/recycle.so" verifyflags="-1" rdev="0" groupname="root" mtime="1157180358" file_size="15472" device="2305" flags="0" md5="123d658e71c1ce7030441ba33e5fa3f7" inode="8585698" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/share/man/man8/pdbedit.8.gz" verifyflags="-1" rdev="0" groupname="root" mtime="1157180344" file_size="3857" device="2305" flags="2" md5="4d2520beab0e3d000a6480f58e1b6e9e" inode="8585250" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/bin/tdbbackup" verifyflags="-1" rdev="0" groupname="root" mtime="1157180358" file_size="31256" device="2305" flags="0" md5="3711df3889d8b4dcde7564caeb27014e" inode="8568949" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/lib/samba/vfs/extd_audit.so" verifyflags="-1" rdev="0" groupname="root" mtime="1157180358" file_size="10728" device="2305" flags="0" md5="a7ff57325d95825fd034d6a96bbcb995" inode="8585697" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/lib/samba/vfs/fake_perms.so" verifyflags="-1" rdev="0" groupname="root" mtime="1157180358" file_size="3524" device="2305" flags="0" md5="89b3dae916df4784ab5db7ef46e917de" inode="8585692" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/share/man/man8/tdbbackup.8.gz" verifyflags="-1" rdev="0" groupname="root" mtime="1157180345" file_size="1225" device="2305" flags="2" md5="7d9e94d427d12452cd9d6320d344928b" inode="8585242" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/lib/samba/vfs/audit.so" verifyflags="-1" rdev="0" groupname="root" mtime="1157180358" file_size="7332" device="2305" flags="0" md5="ff459d274ce3f88ecb24a114fe11594c" inode="8585701" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/lib/samba/vfs/netatalk.so" verifyflags="-1" rdev="0" groupname="root" mtime="1157180358" file_size="8404" device="2305" flags="0" md5="5cafeebb7f4949b29ea5244fe2279827" inode="8585696" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/lib/samba/vfs/readonly.so" verifyflags="-1" rdev="0" groupname="root" mtime="1157180358" file_size="15656" device="2305" flags="0" md5="5dd6662b17112d64678bf84f36179f6d" inode="8585700" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/lib/samba/vfs/default_quota.so" verifyflags="-1" rdev="0" groupname="root" mtime="1157180358" file_size="4296" device="2305" flags="0" md5="fba337224197a0f1028969322a936346" inode="8585694" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/lib/samba/vfs/cap.so" verifyflags="-1" rdev="0" groupname="root" mtime="1157180358" file_size="12236" device="2305" flags="0" md5="3e6e0925844e8c55878e769df350662d" inode="8585695" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/bin/tdbdump" verifyflags="-1" rdev="0" groupname="root" mtime="1157180358" file_size="29604" device="2305" flags="0" md5="27ea9b1cbee176e6cfa335b8c89bbf5c" inode="8568943" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/bin/tdbtool" verifyflags="-1" rdev="0" groupname="root" mtime="1157180358" file_size="39032" device="2305" flags="0" md5="38f6b91c48f3a033f818ac2823ebd7da" inode="8568939" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/share/man/man8/tdbdump.8.gz" verifyflags="-1" rdev="0" groupname="root" mtime="1157180345" file_size="689" device="2305" flags="2" md5="4357281e853a507b67bd7e8a2d3eab17" inode="8585257" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/lib/samba/vfs/expand_msdfs.so" verifyflags="-1" rdev="0" groupname="root" mtime="1157180358" file_size="6976" device="2305" flags="0" md5="023e6c2db838e3640edcdba31c37d22c" inode="8585709" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/lib/samba/vfs/shadow_copy.so" verifyflags="-1" rdev="0" groupname="root" mtime="1157180358" file_size="7396" device="2305" flags="0" md5="4086dedbb6e54b1862c6179b24844962" inode="8585693" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/lib/samba/vfs/full_audit.so" verifyflags="-1" rdev="0" groupname="root" mtime="1157180358" file_size="28720" device="2305" flags="0" md5="fc101b3f2aea2d5191a5427b5779b6fc" inode="8585691" linkto="" file_mode="-32275"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/samba2_xs.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339394" file_size="4172" device="2305" flags="2" md5="212261aa1fedd214ecebf44aad98f10e" inode="8618204" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/WindowsXP-NullConnection.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959443" file_size="23120" device="2305" flags="2" md5="a6282d83d83089ec331da2fc258fe2ba" inode="8602288" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/Samba3-Developers-Guide.pdf" verifyflags="0" rdev="0" groupname="root" mtime="1154959830" file_size="609400" device="2305" flags="2" md5="dbb82ca2cb3fbc97b27e88cfd32394d6" inode="8602242" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/smbtar.1.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959397" file_size="6325" device="2305" flags="2" md5="727340f5687b8b9b95eaf30a695812da" inode="8602345" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/a_small.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959507" file_size="115304" device="2305" flags="2" md5="c8b382a0052239184746044ae8ff050b" inode="8618012" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/lmhosts.5.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959365" file_size="4470" device="2305" flags="2" md5="2bd6c33a43028ad07d6ae147d7735c48" inode="8602367" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/pdftosocket.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959504" file_size="2074" device="2305" flags="2" md5="0e15b6f5bf601aacda44a01483479488" inode="8618014" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0605.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339434" file_size="14388" device="2305" flags="2" md5="451fa4102c1501cce5edbb5906df8a96" inode="8618126" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0407.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339424" file_size="24997" device="2305" flags="2" md5="a47e90832eadbf901d22f676f615209d" inode="8618158" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0508.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339432" file_size="40920" device="2305" flags="2" md5="1b382325a69f7a43eb024885e5560c06" inode="8618062" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/WME002.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959496" file_size="6913" device="2305" flags="2" md5="931de8d523ff7d598fcb3cfdf142f6aa" inode="8617992" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_af04.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339446" file_size="57137" device="2305" flags="2" md5="ce01ef303f5965b117e7ebd655735eaa" inode="8618069" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/groupmapping.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959521" file_size="43148" device="2305" flags="2" md5="59795d699f720de56d6d6efc2856839b" inode="8602429" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/smbldap-populate" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="14995" device="2305" flags="2" md5="68c62976b5c768c733b2263449041377" inode="8618270" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0811.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339439" file_size="12228" device="2305" flags="2" md5="52ce5ae9880c8c1b390e39e370928479" inode="8618092" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/gpl.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959539" file_size="25877" device="2305" flags="2" md5="e289a8c0ac60ca05ef717c4b39981652" inode="8602403" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/winbind.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959529" file_size="71525" device="2305" flags="2" md5="e31217d6a44bdfbec0027b34e0f4961c" inode="8602389" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0804.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339436" file_size="17326" device="2305" flags="2" md5="fae3bf79ade78b31c6ef593d870294fb" inode="8618066" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/registry/WindowsTerminalServer.reg" verifyflags="0" rdev="0" groupname="root" mtime="1116017999" file_size="230" device="2305" flags="2" md5="901b16a407b3518b00071aa9fc791ad0" inode="8618208" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/NetCommand.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959521" file_size="90999" device="2305" flags="2" md5="6543fb1641a6e3534217a0936e8957e3" inode="8602423" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/passdb.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959520" file_size="124960" device="2305" flags="2" md5="3f3df0c9f813b7b16ceb0485eaa309e8" inode="8602422" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide/modules.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959493" file_size="8809" device="2305" flags="2" md5="945cc76fd905d4a33594f8e8020ad614" inode="8602319" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/smbldap_tools.pm" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="28729" device="2305" flags="2" md5="19f72266d0e1dd4f7414fbcf2932f336" inode="8618272" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide/ntdomain.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959492" file_size="93428" device="2305" flags="2" md5="c71863b58de4284413023b56fdd316d7" inode="8602326" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/cfgsmarts.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959534" file_size="28858" device="2305" flags="2" md5="058f42d676b65205e9ae54587c0bf79b" inode="8602427" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0334.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339410" file_size="5820" device="2305" flags="2" md5="75e8b3e5a0c527722bacc6e310449eb5" inode="8618188" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0358.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339421" file_size="24628" device="2305" flags="2" md5="63c3d277252bf2c24bc5db79a1007d9d" inode="8618149" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0603.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339433" file_size="13631" device="2305" flags="2" md5="ef5d4c839ba52603037122c67af1cea3" inode="8618087" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/samba.css" verifyflags="0" rdev="0" groupname="root" mtime="1154959494" file_size="873" device="2305" flags="2" md5="2a0292be878c2b9a56390e99effa6402" inode="8602442" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/NetworkBrowsing.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959519" file_size="104381" device="2305" flags="2" md5="20aec1c525d553512e55f271fcf3a88e" inode="8602437" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/smb.conf" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="3904" device="2305" flags="2" md5="e631985845ff5b5631688c38cb21d1f5" inode="8618241" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/doc/smbldap-tools.pdf" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="219452" device="2305" flags="2" md5="8c2478d6c862bdaaeee6cf680c141f87" inode="8618264" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/doc/smbldap-migrate-pwdump-accounts" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="7322" device="2305" flags="2" md5="5ba52460e75d1ae67f750f09a7991c5d" inode="8618268" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/ch09.html" verifyflags="0" rdev="0" groupname="root" mtime="1064602639" file_size="125503" device="2305" flags="2" md5="1d4dc5013dab22fba7bfb8f1722915ca" inode="8618052" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/imc-usermanager2.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959443" file_size="91149" device="2305" flags="2" md5="e5cff308173e5704ef4efedddc9e03ba" inode="8602309" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/nmblookup.1.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959371" file_size="10642" device="2305" flags="2" md5="0a3e05bd56958c3d13052f3009241a98" inode="8602375" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0311.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339405" file_size="11759" device="2305" flags="2" md5="adbbd1749fa31df5e52c3c062acebbdf" inode="8618120" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0325.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339408" file_size="12024" device="2305" flags="2" md5="4846a98345674f61d968d6bfe1e41281" inode="8618065" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/lam-group-members.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959443" file_size="82762" device="2305" flags="2" md5="ac9ac137a7dcef1fb81a7fb87b124c6f" inode="8602305" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/registry/Win-NT-DeleteRoamingProfile.reg" verifyflags="0" rdev="0" groupname="root" mtime="1116017999" file_size="288" device="2305" flags="2" md5="2b8a6cc182aa2c8ec60e6cb41793d3c7" inode="8618214" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0329.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339409" file_size="14858" device="2305" flags="2" md5="bfb9f12af1bdece08d4e2c1be7c10115" inode="8618122" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/ch03.html" verifyflags="0" rdev="0" groupname="root" mtime="1061339388" file_size="92841" device="2305" flags="2" md5="3b88629b18e20b8b2837b9786323dcd1" inode="8618041" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0304.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339402" file_size="10735" device="2305" flags="2" md5="59453c4707073a3341aaf25f827255dc" inode="8618164" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/SWAT.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959535" file_size="29066" device="2305" flags="2" md5="509f911bd81a7e3d6ef7ddc2608ea044" inode="8602409" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/registry/Win98_PlainPassword.reg" verifyflags="0" rdev="0" groupname="root" mtime="1116017999" file_size="122" device="2305" flags="2" md5="a4f6f6d2d92a59fc67e2c3475ab3d3f4" inode="8618212" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/smbpasswd.8.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959392" file_size="16814" device="2305" flags="2" md5="de217fd09d4f705b2dae040337011469" inode="8602373" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/smbmount.8.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959390" file_size="10853" device="2305" flags="2" md5="9c03861ef1de74737fa6ab6d7478aae6" inode="8602356" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/upgrades.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959454" file_size="59455" device="2305" flags="2" md5="9f39118e6e81de6d03d2c0962430695f" inode="8602262" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/unixclients.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959453" file_size="136392" device="2305" flags="2" md5="f27d06d57de41c9da229bf9dfe238ccf" inode="8602258" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/toc.html" verifyflags="0" rdev="0" groupname="root" mtime="1061339394" file_size="5505" device="2305" flags="2" md5="4f611653e69c668267d50eea797e1917" inode="8618042" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0105.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339395" file_size="18031" device="2305" flags="2" md5="08e580f362a2449618a80903a10be727" inode="8618128" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/samba-schema-netscapeds5.x" verifyflags="0" rdev="0" groupname="root" mtime="1135907114" file_size="8645" device="2305" flags="2" md5="e1602f9d978b4c70d7f493f2fc0d0f37" inode="8618223" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/ntlm_auth.1.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959372" file_size="15997" device="2305" flags="2" md5="297bef98a9183fde8bae2dcfce8ffb1a" inode="8602355" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/WME003.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959496" file_size="6448" device="2305" flags="2" md5="8a953995ded0821de826a95060d9d3c5" inode="8618037" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/8small.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959503" file_size="45259" device="2305" flags="2" md5="c7c4d3e76cc7e970895dbc963f54078a" inode="8618009" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/9small.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959503" file_size="30509" device="2305" flags="2" md5="db37f5024fc16886040434bae586a881" inode="8618027" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/Makefile" verifyflags="0" rdev="0" groupname="root" mtime="1138164402" file_size="1775" device="2305" flags="2" md5="4ceb5e361f1b36ee5af98b3723d5907c" inode="8618284" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0409.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339425" file_size="17776" device="2305" flags="2" md5="181f22f90aefa4cf641e36e87d722581" inode="8618140" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/README" verifyflags="0" rdev="0" groupname="root" mtime="1113856701" file_size="585" device="2305" flags="2" md5="768e9597d352b04988bd6d00359e0728" inode="8618292" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_1101.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339441" file_size="14447" device="2305" flags="2" md5="34697b38dc50785a942c68713993aa79" inode="8618119" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/README" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="3000" device="2305" flags="2" md5="99c7190b08e2fb2bdc93b044528a0006" inode="8618239" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/samba.css" verifyflags="0" rdev="0" groupname="root" mtime="1154959362" file_size="873" device="2305" flags="2" md5="2a0292be878c2b9a56390e99effa6402" inode="8602448" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/smbldap-groupshow" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="2005" device="2305" flags="2" md5="f4cfd23219643e67f4bf8d315a702a25" inode="8618276" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/doc/html/smbldap-tools004.html" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="11743" device="2305" flags="2" md5="b711dfb87a0f6922223bbce6ab56b870" inode="8618251" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0108.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339396" file_size="18629" device="2305" flags="2" md5="1810055b207bf04f449f0b5e7381ff01" inode="8618174" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/smbwrapper/smbw_stat.c" verifyflags="0" rdev="0" groupname="root" mtime="1122571194" file_size="3203" device="2305" flags="2" md5="5044d3987a2470d6cc736c15c81fb5c4" inode="8618300" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/ch06.html" verifyflags="0" rdev="0" groupname="root" mtime="1064602639" file_size="89217" device="2305" flags="2" md5="677721946333cb6b825584b5895063da" inode="8618048" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0104.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339395" file_size="13928" device="2305" flags="2" md5="7175e64388ee77747de572f0ad27c270" inode="8618097" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0110.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339397" file_size="4794" device="2305" flags="2" md5="9f143d8800afb95b5aa6b1f2029241da" inode="8618112" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/w2kp002.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959495" file_size="11966" device="2305" flags="2" md5="8d6499c88f38375788d91a0d10d45363" inode="8618038" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0808.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339437" file_size="15894" device="2305" flags="2" md5="7219fd18bc4adee193277359f240c2f1" inode="8618169" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/trusts1.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959503" file_size="12910" device="2305" flags="2" md5="75115a085739fb19e38757e0a120cfb1" inode="8618039" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/ch8-migration.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959442" file_size="13576" device="2305" flags="2" md5="7acfc7bcb8c8d87abb0c8722ff274a8a" inode="8602280" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/swat.8.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959400" file_size="10366" device="2305" flags="2" md5="2fe27ca36de04e341f725b82c9859ce0" inode="8602382" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0306.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339403" file_size="18300" device="2305" flags="2" md5="92d640dddc75f5505f3d3683bcd444c9" inode="8618131" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/wxpp006.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959496" file_size="12651" device="2305" flags="2" md5="00f46f40c8a77b563cb0c3a9099939af" inode="8618000" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/idmap-sid2gid.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959500" file_size="17364" device="2305" flags="2" md5="37eaaa213c04988d3099011dd70f1435" inode="8618029" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/index.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959642" file_size="2433" device="2305" flags="2" md5="2cec8d320e23bf57bace80496300f062" inode="8602447" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/WINREPRESSME-Capture2.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959443" file_size="50864" device="2305" flags="2" md5="c9a7ddb40fdc679fd98515bd4abeb485" inode="8602316" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/w2kp001.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959495" file_size="10891" device="2305" flags="2" md5="5b0388759a0725d5a92b58f7250c1535" inode="8618025" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/doc/html/contents_motif.gif" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="316" device="2305" flags="2" md5="b42bd1e327e6178a59828cb20f7132e7" inode="8618262" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0339.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339412" file_size="12941" device="2305" flags="2" md5="258b9ecad3c5a35bafc0c48782176536" inode="8618152" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0413.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339427" file_size="16881" device="2305" flags="2" md5="54be2d86309a4add94077da77561ca4a" inode="8618107" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/COPYING" verifyflags="0" rdev="0" groupname="root" mtime="1109372387" file_size="17982" device="2305" flags="2" md5="8ca43cbc842c2336e835926c2166c28b" inode="8602237" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0417.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339428" file_size="18004" device="2305" flags="2" md5="11df81e5593703f0bdc082efeb63b173" inode="8618150" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/InterdomainTrusts.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959524" file_size="31356" device="2305" flags="2" md5="30402e2ad2ef141ef7880692666e066d" inode="8602399" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_1002.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339439" file_size="15746" device="2305" flags="2" md5="6bdd65be5e2cec9baa96b8b93f4ff302" inode="8618148" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0802.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339435" file_size="6906" device="2305" flags="2" md5="3181108d0117a242af837e8818e7673a" inode="8618135" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/lam-users.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959443" file_size="102751" device="2305" flags="2" md5="c958fb114679fd72ed6f2d3085a49f5b" inode="8602298" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/lam-hosts.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959443" file_size="86779" device="2305" flags="2" md5="9c1f42c08c1a07bd879741ade20936ed" inode="8602310" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/w2kp005.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959495" file_size="9951" device="2305" flags="2" md5="671706f816e0968939357f79da1c752c" inode="8618030" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0302.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339401" file_size="5703" device="2305" flags="2" md5="be5a8bb5a335805f3ad4444aed8dc2d6" inode="8618144" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide/vfs.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959493" file_size="27782" device="2305" flags="2" md5="b1283101c575b3190110103a244c02cf" inode="8602318" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/type.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959517" file_size="11905" device="2305" flags="2" md5="007b0216197bdcc5c08a4e4b2918580d" inode="8602416" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/smbldap-groupadd" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="5987" device="2305" flags="2" md5="7f8f12ba8612e69f4baecc474d3ad704" inode="8618237" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/doc/html/smbldap-tools007.html" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="11951" device="2305" flags="2" md5="acd1df77adcbe5132620d8cd12a52b1e" inode="8618256" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/printer-accounting/acct-all" verifyflags="0" rdev="0" groupname="root" mtime="1109372392" file_size="114" device="2305" flags="2" md5="d3c735279d12bc6a6c081dca0e784819" inode="8618319" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/printer-accounting/hp5-redir" verifyflags="0" rdev="0" groupname="root" mtime="1109372392" file_size="998" device="2305" flags="2" md5="ec0dcf9af11a7ea7773cf7b861c8e56b" inode="8618322" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0352.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339417" file_size="25568" device="2305" flags="2" md5="007e0b6fb0d68a84c7689ef6a51e7d5a" inode="8618171" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/small.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959448" file_size="59853" device="2305" flags="2" md5="d2a62b7dbddae9c6ba31a2d94858142c" inode="8602269" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0403.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339423" file_size="8500" device="2305" flags="2" md5="f3667ad84e94c68c5260a7f8d57ee583" inode="8618165" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/idmap-store-gid2sid.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959501" file_size="6703" device="2305" flags="2" md5="e8591019d08afffca4cb00f20c541d5e" inode="8618011" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/smbldap.conf" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="7785" device="2305" flags="2" md5="f8da299132029d5393c5ca7821622101" inode="8618236" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/samba-bdc.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959515" file_size="48139" device="2305" flags="2" md5="7fd0318c8dd9f1714ac6974c23dc6c21" inode="8602418" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_1001.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339439" file_size="12687" device="2305" flags="2" md5="1f39fbba87602b1de2dd92727a86145b" inode="8618167" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/problems.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959536" file_size="19026" device="2305" flags="2" md5="4282d8f4f672a47ecf8370bfa3ad7117" inode="8602408" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/samba-schema-netscapeds4.x" verifyflags="0" rdev="0" groupname="root" mtime="1109372391" file_size="2840" device="2305" flags="2" md5="85774faabf2803dce73621298ee3a32d" inode="8618278" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/XP-screen001.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959435" file_size="14290" device="2305" flags="2" md5="4c32ffc460960ea6d8e2f2e796573509" inode="8602294" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/ch07.html" verifyflags="0" rdev="0" groupname="root" mtime="1061339390" file_size="72288" device="2305" flags="2" md5="363e9e9d8e622467c071914a44ca55ff" inode="8618058" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/wxpp006.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959442" file_size="12651" device="2305" flags="2" md5="00f46f40c8a77b563cb0c3a9099939af" inode="8602295" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0356.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339419" file_size="20807" device="2305" flags="2" md5="e04e894a04b39f519684826fc52bc855" inode="8618146" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/ExNetworks.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959452" file_size="12288" device="2305" flags="2" md5="26ed499d7ea593de8056c3957aa037cf" inode="8602251" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/primer.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959459" file_size="56210" device="2305" flags="2" md5="2df779157a75f4dc205099b3f1cbbdfe" inode="8602267" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0359.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339422" file_size="24233" device="2305" flags="2" md5="6d7d26722c30b2af823afe8dd11be9c0" inode="8618199" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs" verifyflags="0" rdev="0" groupname="root" mtime="1154992904" file_size="4096" device="2305" flags="0" md5="" inode="8602247" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0410.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339425" file_size="22502" device="2305" flags="2" md5="cca05c7bce81ee30468ee711c6601f38" inode="8618166" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/appc.html" verifyflags="0" rdev="0" groupname="root" mtime="1061339386" file_size="150859" device="2305" flags="2" md5="adc2b7d00183861c4a54f1f6b8e7e9c0" inode="8618057" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/printing/readme.prtpub" verifyflags="0" rdev="0" groupname="root" mtime="1109372391" file_size="540" device="2305" flags="2" md5="4a3c1d86fa82667b4ddaa0080893e9f7" inode="8618327" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/appb.html" verifyflags="0" rdev="0" groupname="root" mtime="1061339386" file_size="244007" device="2305" flags="2" md5="4154846da162e4986f718bf9a13370e1" inode="8618054" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/Charity-Network.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959429" file_size="11274" device="2305" flags="2" md5="ddf4a3c483e5624ebfb8f0bfe650f199" inode="8602313" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/samba.schema.oc.IBM-DS" verifyflags="0" rdev="0" groupname="root" mtime="1138650308" file_size="2737" device="2305" flags="2" md5="0f2ade923e69b4acc05e59e231cad2fc" inode="8618224" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/ix01.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959637" file_size="478147" device="2305" flags="2" md5="4870c0bcb48bc8ff4e978cb9df09bd68" inode="8602391" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/ch00.html" verifyflags="0" rdev="0" groupname="root" mtime="1061339386" file_size="13275" device="2305" flags="2" md5="50f013780badab08fcb2efedac901505" inode="8618055" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0406.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339424" file_size="10133" device="2305" flags="2" md5="44672a7d595c12f743bcf739c105c719" inode="8618078" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0204.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339401" file_size="73792" device="2305" flags="2" md5="bfea22e7f1ef3fec45cfdc5da1ae0e9e" inode="8618156" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0309.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339404" file_size="15071" device="2305" flags="2" md5="b5f8ba2b1871c00de0f68de7e8351fb5" inode="8618064" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide/pt04.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959494" file_size="2569" device="2305" flags="2" md5="665181279a810c3a41806583d2ef3692" inode="8602330" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/cups1.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959506" file_size="38315" device="2305" flags="2" md5="40daf791211175b21c0be9ef345a426b" inode="8618016" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_af05.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339447" file_size="46773" device="2305" flags="2" md5="a12895f915beadeb0b550e2566ba471a" inode="8618110" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0333.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339410" file_size="3784" device="2305" flags="2" md5="631bf6b72b4bec23045827db81ecc89e" inode="8618136" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/doc/html/smbldap-tools001.html" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="661" device="2305" flags="2" md5="82389f7a64a5b5a4682750503df175b9" inode="8618253" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/Makefile" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="2874" device="2305" flags="2" md5="3f59018fc536f60e4a3732bb0432c0f9" inode="8618232" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/UserConnect.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959443" file_size="22583" device="2305" flags="2" md5="c5012ff945bcca4b0d8eedcdf308792c" inode="8602297" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/12small.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959505" file_size="29508" device="2305" flags="2" md5="39f935fdec1810ae44ef4cd8c6979896" inode="8618032" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/registry/Win95_PlainPassword.reg" verifyflags="0" rdev="0" groupname="root" mtime="1116017999" file_size="122" device="2305" flags="2" md5="a4f6f6d2d92a59fc67e2c3475ab3d3f4" inode="8618211" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0402.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339423" file_size="11721" device="2305" flags="2" md5="128467bc5841128998d3e77e38496548" inode="8618196" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/7small.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959503" file_size="29350" device="2305" flags="2" md5="128b5f812819905767566b9a428d1551" inode="8618019" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/idmapper.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959522" file_size="54187" device="2305" flags="2" md5="15c1aca38310dcb72260ff15bdc16365" inode="8602404" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0323.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339408" file_size="10528" device="2305" flags="2" md5="6f7618678c8cff42c7d1ead740eb8ea4" inode="8618114" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0604.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339433" file_size="8752" device="2305" flags="2" md5="c9fc63897b37db4381693e2791a15734" inode="8618127" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/pr02.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959446" file_size="3650" device="2305" flags="2" md5="d2b7c878840ec1713996f857f47edd51" inode="8602249" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0602.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339433" file_size="13383" device="2305" flags="2" md5="5a43221ba8a6435ab94603ccd8cc4111" inode="8618085" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/unicode.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959532" file_size="28334" device="2305" flags="2" md5="2c609b63a64bf4377bbb1484fb159318" inode="8602384" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0338.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339411" file_size="15670" device="2305" flags="2" md5="2fbf71810ea47c64fdf86d73c9d0cb8c" inode="8618176" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/smbwrapper/select.c" verifyflags="0" rdev="0" groupname="root" mtime="1113856701" file_size="3977" device="2305" flags="2" md5="c746f96ae7b0d26bd0068ac5fd343db8" inode="8618307" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/migration.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959535" file_size="5521" device="2305" flags="2" md5="1f9f77bfe9b7d926a511bc56051b5cab" inode="8602394" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/testread.c" verifyflags="0" rdev="0" groupname="root" mtime="1129661117" file_size="1390" device="2305" flags="2" md5="5580822e0687e0d9aa1621029cb30ece" inode="8618293" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/speed.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959538" file_size="16354" device="2305" flags="2" md5="2ea77cb4c512c90dbaeb2b32cf974ded" inode="8602411" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/HA.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959457" file_size="35030" device="2305" flags="2" md5="cc91f9d50bb701ada4be15aadea7faba" inode="8602263" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/appendix.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959458" file_size="65828" device="2305" flags="2" md5="eddac7700ea56e1d8f16f7d25843c9ab" inode="8602256" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/chap6-net.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959435" file_size="35671" device="2305" flags="2" md5="e880974861ab0513f8527059545acaf7" inode="8602291" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/testacl.c" verifyflags="0" rdev="0" groupname="root" mtime="1113856701" file_size="5697" device="2305" flags="2" md5="11df0f44880fc2ea30bd2f36089e8d92" inode="8618286" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0412.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339427" file_size="17096" device="2305" flags="2" md5="d555081c47ec69cfee93e7278feeb1dc" inode="8618067" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0349.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339415" file_size="26522" device="2305" flags="2" md5="152cda57e45f828e83d76f88d54ba8a4" inode="8618137" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/ch12.html" verifyflags="0" rdev="0" groupname="root" mtime="1061339393" file_size="134140" device="2305" flags="2" md5="f6dc30c75898a3560a935bbadeae1a14" inode="8618201" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/registry" verifyflags="0" rdev="0" groupname="root" mtime="1131829962" file_size="4096" device="2305" flags="0" md5="" inode="8618205" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/AdvancedNetworkManagement.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959530" file_size="18715" device="2305" flags="2" md5="fb7cfaebd8782bb2c3a7b838ae435d11" inode="8602432" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/Backup.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959532" file_size="10758" device="2305" flags="2" md5="72e735905f9c0f2b29c56932054e0a35" inode="8602445" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/testbrowse.c" verifyflags="0" rdev="0" groupname="root" mtime="1145514590" file_size="8641" device="2305" flags="2" md5="151e5401f06bd6476b3371f31e8fdb9f" inode="8618309" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_af03.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339444" file_size="32704" device="2305" flags="2" md5="f303553380d225d6e73b91fb8297312f" inode="8618180" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/Manifest" verifyflags="0" rdev="0" groupname="root" mtime="1129617907" file_size="2558" device="2305" flags="2" md5="b3bc3275ae9f599b43d8a10cb4737628" inode="8602238" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/testchmod.c" verifyflags="0" rdev="0" groupname="root" mtime="1113856701" file_size="1263" device="2305" flags="2" md5="4eb57a078d6fd464d7a71c51ed838acd" inode="8618288" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/printing/smbprint.sysv" verifyflags="0" rdev="0" groupname="root" mtime="1109372391" file_size="1833" device="2305" flags="2" md5="2376eb9250809cabd02fb649e74e07e3" inode="8618328" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0111.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339397" file_size="5251" device="2305" flags="2" md5="4c1ef307d54df3e0b1d8f767d6c9fb97" inode="8618123" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/access1.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959502" file_size="11285" device="2305" flags="2" md5="3d0d76d7351fa7bafba884add03effe0" inode="8618031" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/printer-accounting" verifyflags="0" rdev="0" groupname="root" mtime="1109372392" file_size="4096" device="2305" flags="0" md5="" inode="8618316" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/idmap_winbind_no_loop.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959507" file_size="9172" device="2305" flags="2" md5="89df9136764cf69449ebf9da6cb4b77d" inode="8618017" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0503.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339429" file_size="11949" device="2305" flags="2" md5="039ad6468ee24196945bc9a19d71f437" inode="8618181" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/ch02.html" verifyflags="0" rdev="0" groupname="root" mtime="1061339388" file_size="73608" device="2305" flags="2" md5="9de3fdf662e66de79c1520bd972469cb" inode="8618044" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/smbwrapper/smbw.h" verifyflags="0" rdev="0" groupname="root" mtime="1138164402" file_size="5572" device="2305" flags="2" md5="667ba88128f9de91b56ef4f18afb9eb5" inode="8618306" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/samba.schema.at.IBM-DS" verifyflags="0" rdev="0" groupname="root" mtime="1138650307" file_size="9275" device="2305" flags="2" md5="49bef2fe461d2ac1e819388b739aba48" inode="8618222" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs" verifyflags="0" rdev="0" groupname="root" mtime="1082881528" file_size="4096" device="2305" flags="0" md5="" inode="8618061" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP" verifyflags="0" rdev="0" groupname="root" mtime="1149896061" file_size="4096" device="2305" flags="0" md5="" inode="8618221" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/printer-accounting/README" verifyflags="0" rdev="0" groupname="root" mtime="1109372392" file_size="2379" device="2305" flags="2" md5="1507c531bc061ef4f2cdba4cc845498f" inode="8618321" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0805.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339436" file_size="19273" device="2305" flags="2" md5="902666bf58711f05c69b3afd90be8344" inode="8618197" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/INFRA" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="4102" device="2305" flags="2" md5="b5920647904bb97bb1d0d7724dc1467c" inode="8618234" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/WindowsXP-UserConnection.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959443" file_size="24505" device="2305" flags="2" md5="fab64ab911250453b4ed7112d94a5573" inode="8602278" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0901.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339439" file_size="11925" device="2305" flags="2" md5="8eba5b0fed497c17e387e6bbf379cac9" inode="8618143" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO" verifyflags="0" rdev="0" groupname="root" mtime="1154959637" file_size="4096" device="2305" flags="0" md5="" inode="8602383" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/introduction.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959514" file_size="4632" device="2305" flags="2" md5="d2bf1cf8b17d1c6631dbd3c1b428c7f1" inode="8602421" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0301.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339401" file_size="7580" device="2305" flags="2" md5="30e2033d997790108e40c5aba5584584" inode="8618100" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/ServerType.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959514" file_size="42015" device="2305" flags="2" md5="ed80e4bfa685d36472526ada8b55b7bb" inode="8602405" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/idmap-gid2sid.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959501" file_size="18635" device="2305" flags="2" md5="6af065fc32fd443acb940ddd14d84a48" inode="8618034" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/printing/VampireDriversFunctions" verifyflags="0" rdev="0" groupname="root" mtime="1109372391" file_size="57476" device="2305" flags="2" md5="0d1a8de301533fd1cc009b5174640fde" inode="8618326" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/smbtree.1.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959398" file_size="6296" device="2305" flags="2" md5="c13edd31117e49176755bcf07b08ac36" inode="8602351" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/2small.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959503" file_size="15016" device="2305" flags="2" md5="858275d098a192ed8a6b32c742563283" inode="8617997" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/DNSDHCP.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959539" file_size="13516" device="2305" flags="2" md5="bafb1565f2bfde2b61dbc5f5dfc43aba" inode="8602387" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/history" verifyflags="0" rdev="0" groupname="root" mtime="1116017999" file_size="10649" device="2305" flags="2" md5="5665a325c0801f05aee4f6f2aaed47bb" inode="8602246" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/ch05.html" verifyflags="0" rdev="0" groupname="root" mtime="1061339389" file_size="74171" device="2305" flags="2" md5="f6ae5e65c7edd9c2641c5784effee3ca" inode="8618046" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/secure.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959449" file_size="125750" device="2305" flags="2" md5="a6be08a77c23d0748a40ff50b943e439" inode="8602252" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide/internals.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959493" file_size="18276" device="2305" flags="2" md5="6b314e3b7cba29987ff27f666bc895ea" inode="8602336" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0408.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339425" file_size="11005" device="2305" flags="2" md5="38f4c120787f345d816639749adeeae9" inode="8618106" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/smbget.1.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959387" file_size="5157" device="2305" flags="2" md5="94175a2ec9db2c2122233b3968bd103f" inode="8602346" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/pr03.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959513" file_size="6392" device="2305" flags="2" md5="881f4bf12080483308dc8e9d587acfa2" inode="8602401" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/samba.7.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959378" file_size="14007" device="2305" flags="2" md5="bf26917a0e5405d2382c5b7c57da8c15" inode="8602353" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/StandAloneServer.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959516" file_size="20675" device="2305" flags="2" md5="6731d196193572071eb5a58a102e83a3" inode="8602395" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/teststat2.c" verifyflags="0" rdev="0" groupname="root" mtime="1138164402" file_size="1834" device="2305" flags="2" md5="b8afc6d59418dd794fcedbe620fbb87b" inode="8618291" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/doc" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="4096" device="2305" flags="0" md5="" inode="8618247" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/IntroSMB.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959513" file_size="11172" device="2305" flags="2" md5="d7815343d8f043bae5f020e79a1c18bf" inode="8602444" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide/pwencrypt.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959494" file_size="11276" device="2305" flags="2" md5="4d5f2c0808048c805d3aaa0e2097902e" inode="8602324" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0202.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339400" file_size="35825" device="2305" flags="2" md5="778b2f712cd568c8b11996b712d4dcbe" inode="8618094" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/Big500users.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959450" file_size="90342" device="2305" flags="2" md5="eb419886480735e0681c82b32dec31df" inode="8602265" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/pr01.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959512" file_size="4088" device="2305" flags="2" md5="50f5d8c93cbb1cadf714251a4b382eca" inode="8602443" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/WME014.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959496" file_size="5802" device="2305" flags="2" md5="9421878398ecfd54202299fb035f27c8" inode="8618020" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide/pt01.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959492" file_size="6366" device="2305" flags="2" md5="3d5543912e01cbfe602a2c2609052e9c" inode="8602327" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0307.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339403" file_size="13970" device="2305" flags="2" md5="42ba9531196df19890b675e1e6688ccb" inode="8618121" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/registry/Win-2Kx-XPP-DeleteCachedProfiles.reg" verifyflags="0" rdev="0" groupname="root" mtime="1116017999" file_size="794" device="2305" flags="2" md5="f5c7354025e313c994fc41a9d752f1ab" inode="8618215" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0341.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339413" file_size="9531" device="2305" flags="2" md5="ef20dfbe40edc2858b73bec42e67d268" inode="8618063" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide/pt05.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959494" file_size="2034" device="2305" flags="2" md5="1372af4c4ba9b0d545b91a95bae6630d" inode="8602320" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0347.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339415" file_size="7563" device="2305" flags="2" md5="b0aff842188df786259c7adde7dc3f1f" inode="8618099" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/go01.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959460" file_size="9734" device="2305" flags="2" md5="8873741f1f60fe7180c922f4c826ab3d" inode="8602270" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/doc/html/smbldap-tools009.html" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="19200" device="2305" flags="2" md5="c7fd8a0f3d4f884acb7f1b0af47215bd" inode="8618257" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/smbgetrc.5.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959388" file_size="3607" device="2305" flags="2" md5="8c13f7185072c8f9f9dbebb604643fb4" inode="8602348" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0355.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339419" file_size="47008" device="2305" flags="2" md5="4bf017d2b5631f8c149e06f4ea69b625" inode="8618101" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/5small.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959503" file_size="27857" device="2305" flags="2" md5="78bfc4a367b8425b1a72977092196808" inode="8617990" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0809.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339438" file_size="19323" device="2305" flags="2" md5="98cd4714a85ca7b93361d682bcbc3de0" inode="8618170" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/securing-samba.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959524" file_size="23871" device="2305" flags="2" md5="6008223e1181123fc60b319db037d591" inode="8602407" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0102.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339394" file_size="21795" device="2305" flags="2" md5="faecccb3c6756e5330a39defcff3038d" inode="8618074" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/smbwrapper/README" verifyflags="0" rdev="0" groupname="root" mtime="1113856701" file_size="1467" device="2305" flags="2" md5="39adb65a891bb4fb5eacbcb55ed3cdd4" inode="8618305" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/ch11.html" verifyflags="0" rdev="0" groupname="root" mtime="1061339392" file_size="50755" device="2305" flags="2" md5="10ffc71fdbedb177b9338af6440d56c5" inode="8618060" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/domain.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959495" file_size="35738" device="2305" flags="2" md5="70939aed9e700ce32ddd16b0a0838ff1" inode="8617999" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/pr01.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959446" file_size="3560" device="2305" flags="2" md5="aafd5111d3b93174a570775da2f41ff8" inode="8602274" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/autofs" verifyflags="0" rdev="0" groupname="root" mtime="1109372391" file_size="4096" device="2305" flags="0" md5="" inode="8618219" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/inx.html" verifyflags="0" rdev="0" groupname="root" mtime="1061339393" file_size="88025" device="2305" flags="2" md5="c2375c0d22cabc35669e77bb80c276a4" inode="8618050" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide/Packaging.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959494" file_size="3008" device="2305" flags="2" md5="cf2962a1ad6b07593f5a6309e7b65a09" inode="8602338" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/smbldap-passwd" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="10294" device="2305" flags="2" md5="9573c646d7ebf0718769ff6a72542dce" inode="8618235" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/wxpp007.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959442" file_size="12781" device="2305" flags="2" md5="bc35c66d0f621bd7f256f4c657f62e8b" inode="8602300" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0353.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339417" file_size="22024" device="2305" flags="2" md5="e918352bb49fbe68798e84fadcd9677f" inode="8618118" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_1006.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339441" file_size="13955" device="2305" flags="2" md5="fcc77943ed4fec28ca23069e7ff5758f" inode="8618073" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide/samba.css" verifyflags="0" rdev="0" groupname="root" mtime="1154959490" file_size="873" device="2305" flags="2" md5="2a0292be878c2b9a56390e99effa6402" inode="8602337" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide/architecture.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959492" file_size="8825" device="2305" flags="2" md5="f4e70cc9adfc8e755cf533007151dead" inode="8602329" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/printing" verifyflags="0" rdev="0" groupname="root" mtime="1109372391" file_size="4096" device="2305" flags="0" md5="" inode="8618323" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/ch7-dual-additive-LDAP.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959439" file_size="7307" device="2305" flags="2" md5="67468156ca2e0e460d17355e95277630" inode="8602307" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/doc/smbldap-migrate-pwdump-groups" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="5024" device="2305" flags="2" md5="0b1b20d5fe34485bc5c8ea3bb0ae857c" inode="8618265" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/samba.schema" verifyflags="0" rdev="0" groupname="root" mtime="1145514589" file_size="19093" device="2305" flags="2" md5="6182d7798abd3da20aecdc3af18d94f3" inode="8618280" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="4096" device="2305" flags="0" md5="" inode="8618228" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/samba-nds.schema" verifyflags="0" rdev="0" groupname="root" mtime="1140488854" file_size="15618" device="2305" flags="2" md5="635dcb8ae08c0bf03845e3b78350f11b" inode="8618225" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/smbumount.8.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959399" file_size="2389" device="2305" flags="2" md5="b2d401c28d10c4a229d77cfffffff583" inode="8602378" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/NT4Migration.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959535" file_size="28589" device="2305" flags="2" md5="3f0459fcfa7c3c2ce4f5b9e77bb48229" inode="8602428" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/appf.html" verifyflags="0" rdev="0" groupname="root" mtime="1061339386" file_size="24675" device="2305" flags="2" md5="6de4ede7f01a54b34131600fa760ef3a" inode="8618045" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient" verifyflags="0" rdev="0" groupname="root" mtime="1145514590" file_size="4096" device="2305" flags="0" md5="" inode="8618281" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/doc/html/smbldap-tools.html" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="71508" device="2305" flags="2" md5="d72fa0480bdaffef6038c7b29826e83c" inode="8618261" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0903.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339439" file_size="4640" device="2305" flags="2" md5="b4801e50c2aaf06497fd5cbec7b0cf8f" inode="8618183" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/ch08.html" verifyflags="0" rdev="0" groupname="root" mtime="1061339391" file_size="127097" device="2305" flags="2" md5="7318f207b1bffde0ebbb832be16faca6" inode="8618059" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/ntmigration.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959454" file_size="81523" device="2305" flags="2" md5="ba44396c3072a0a00252c9cb2f238ad6" inode="8602276" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/smbwrapper/Makefile" verifyflags="0" rdev="0" groupname="root" mtime="1138164402" file_size="913" device="2305" flags="2" md5="d8abfafa3f5283f2a9103644208b6743" inode="8618296" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0321.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339408" file_size="10245" device="2305" flags="2" md5="c94dff5356b8715be42335cc4436bdd9" inode="8618090" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0416.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339427" file_size="10504" device="2305" flags="2" md5="1794f42fa24db68059c74922f02aad67" inode="8618089" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/Samba3-HOWTO.pdf" verifyflags="0" rdev="0" groupname="root" mtime="1154960108" file_size="5569409" device="2305" flags="2" md5="6855b6204d415d9ac33b6621065a50bb" inode="8602244" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/smbcacls.1.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959381" file_size="10214" device="2305" flags="2" md5="b7d4452fe7f27ea58158f8ba0e9fa6fa" inode="8602354" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/WME010.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959496" file_size="6454" device="2305" flags="2" md5="7008f96e2f69b7392c6e9406cba4a862" inode="8618013" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/idmap-sid2uid.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959498" file_size="23705" device="2305" flags="2" md5="a8f02e9abc20f6f3c2fb372191a7fbf0" inode="8618026" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/testutime.c" verifyflags="0" rdev="0" groupname="root" mtime="1122571194" file_size="1881" device="2305" flags="2" md5="0acfee1b9a3e109205a38c338924257a" inode="8618283" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0320.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339407" file_size="9507" device="2305" flags="2" md5="7d1bab32764dae0255d93bb64332939d" inode="8618195" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/appe.html" verifyflags="0" rdev="0" groupname="root" mtime="1061339386" file_size="25247" device="2305" flags="2" md5="6d90332e8a0a4ae7fb3fde7be73670d1" inode="8618202" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/profiles.1.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959376" file_size="2143" device="2305" flags="2" md5="c28af79deae956ff543e8f7f75120cad" inode="8602352" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/testbrowse2.c" verifyflags="0" rdev="0" groupname="root" mtime="1135110520" file_size="5076" device="2305" flags="2" md5="6cb91f626a9148b88fe357ac120cc773" inode="8618285" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/umount.cifs.8.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959405" file_size="5833" device="2305" flags="2" md5="16c7f701cd6576bc0e3c2f287ae93570" inode="8602363" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0810.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339438" file_size="20065" device="2305" flags="2" md5="1226e06fb3642e2960cfbe4b3c406b47" inode="8618105" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/smbcontrol.1.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959383" file_size="9392" device="2305" flags="2" md5="4fa54772bac6613b5395f3dbb93cf4ea" inode="8602371" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/doc/smbldap-migrate-unix-groups" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="5533" device="2305" flags="2" md5="07cb4cffee64ff16cfd957b273b63f7d" inode="8618267" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0310.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339404" file_size="11721" device="2305" flags="2" md5="1c905dd886ebbfd97b43d96a75bf3191" inode="8618079" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0328.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339409" file_size="8453" device="2305" flags="2" md5="585927ee9c585229330eb5e6f1cd7315" inode="8618177" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0505.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339430" file_size="16510" device="2305" flags="2" md5="0c861869fbcbde7f4dc8caba165074c0" inode="8618111" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/net.8.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959369" file_size="32719" device="2305" flags="2" md5="2c3a74ac278a06394ab82939cb288e78" inode="8602344" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/pam_winbind.7.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959373" file_size="5267" device="2305" flags="2" md5="e46df51a632d7309e32a6814779cb00c" inode="8602359" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0701.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339434" file_size="13517" device="2305" flags="2" md5="80ec619c524f8ac8eecc05cdca7bdfc7" inode="8618184" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/smbwrapper/wrapper.h" verifyflags="0" rdev="0" groupname="root" mtime="1138164402" file_size="9553" device="2305" flags="2" md5="9771787f7f494c48dda5b6bf62f13fbc" inode="8618303" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/classicalprinting.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959525" file_size="179297" device="2305" flags="2" md5="d13d0321ac302f819efea698cd545b11" inode="8602426" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/Appendix.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959539" file_size="8705" device="2305" flags="2" md5="c7fb4acd5025ca7d73a8e39cafc4d36a" inode="8602415" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/WXPP014.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959495" file_size="28767" device="2305" flags="2" md5="d79243102ba32bb487be66598c5960f0" inode="8618035" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/smbldap-groupmod" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="8881" device="2305" flags="2" md5="29d02aef1b4d81aeab0a6470b1f0c35b" inode="8618244" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/printing/prtpub.c" verifyflags="0" rdev="0" groupname="root" mtime="1109372391" file_size="8199" device="2305" flags="2" md5="2b8577d530841a310555b3d67e03acad" inode="8618325" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/WINREPRESSME-Capture.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959443" file_size="57046" device="2305" flags="2" md5="7ee2a4d5c1a02647705b5787cc25b9a8" inode="8602289" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/lam-login.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959442" file_size="86345" device="2305" flags="2" md5="2cd928698bd0aff7ff0f56ce3f15474f" inode="8602306" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/pdbedit.8.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959375" file_size="14765" device="2305" flags="2" md5="a43c72fd3322566bbeb97bdbea23177c" inode="8602376" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/wxpp008.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959496" file_size="19550" device="2305" flags="2" md5="599a3e83d746c09ece9922e8f7474beb" inode="8618003" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/14small.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959505" file_size="56042" device="2305" flags="2" md5="121a96a838428fafe4545d18463b004f" inode="8617986" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0335.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339411" file_size="5928" device="2305" flags="2" md5="e454b0eb1ef2cb009c984cefe7efaae9" inode="8618075" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/WME001.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959495" file_size="8576" device="2305" flags="2" md5="1d54aa2060b4edb92a6aa6619a615fa1" inode="8618006" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/13small.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959505" file_size="30506" device="2305" flags="2" md5="6338caffc0819bd115373c2c1ddcccd2" inode="8618028" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide/devprinting.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959494" file_size="15261" device="2305" flags="2" md5="6a5a00b90025a1074a22e295af5c41de" inode="8602328" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample" verifyflags="0" rdev="0" groupname="root" mtime="1154959489" file_size="4096" device="2305" flags="0" md5="" inode="8602248" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/smbldap-groupdel" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="2473" device="2305" flags="2" md5="92ee3150a4ac45c3bb15d374c10773b0" inode="8618245" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/Portability.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959537" file_size="11265" device="2305" flags="2" md5="15c6f59035d6bb6fe905b323cff79f59" inode="8602413" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0107.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339396" file_size="11492" device="2305" flags="2" md5="f9b88c27f92f190dc7e8c458a42cac7f" inode="8618182" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0112.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339397" file_size="7330" device="2305" flags="2" md5="7fb670745ee3d6d7db38a1cf18a0dc21" inode="8618163" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/doc/html/smbldap-tools005.html" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="21726" device="2305" flags="2" md5="0a408523e4bf5a72182e8ae776676657" inode="8618259" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide/pt03.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959494" file_size="4574" device="2305" flags="2" md5="abd185d4dafe2232e8a07dc222ee41e8" inode="8602339" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/smbclient.1.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959382" file_size="41238" device="2305" flags="2" md5="091a99f2a715fc79f7b7f648e3fc98b3" inode="8602350" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/integrate-ms-networks.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959532" file_size="35383" device="2305" flags="2" md5="fa00818daa251778b4eed6cb5482ec3d" inode="8602392" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/registry/Win2000_PlainPassword.reg" verifyflags="0" rdev="0" groupname="root" mtime="1116017999" file_size="303" device="2305" flags="2" md5="3f56cb596171377ae64259d5b42b0785" inode="8618216" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/doc/html/next_motif.gif" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="317" device="2305" flags="2" md5="123968e8e915e9df119373e38b2fb2f8" inode="8618255" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/DMSMig.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959455" file_size="7462" device="2305" flags="2" md5="a94a0b9aedbfc83383dbf518986ffe0a" inode="8602253" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/Roadmap" verifyflags="0" rdev="0" groupname="root" mtime="1122571193" file_size="1357" device="2305" flags="2" md5="4741cb90be3b7d2068a532205f0f132a" inode="8602240" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/doc/html/previous_motif.gif" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="317" device="2305" flags="2" md5="c50d069541334f2d3f17e0fbd0c119d4" inode="8618258" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0354.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339418" file_size="18138" device="2305" flags="2" md5="905bffc150fbf9938f61dc71c3a80342" inode="8618132" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/teststat.c" verifyflags="0" rdev="0" groupname="root" mtime="1138164402" file_size="1724" device="2305" flags="2" md5="0745238daa4999923a251c2cf5bf82df" inode="8618289" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images" verifyflags="0" rdev="0" groupname="root" mtime="1154959507" file_size="4096" device="2305" flags="0" md5="" inode="8617985" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0201.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339398" file_size="8734" device="2305" flags="2" md5="b97eff90a02ed4fd92bd595c01caf602" inode="8618160" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/Other-Clients.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959538" file_size="20965" device="2305" flags="2" md5="0f713092416df490561740dabe0ee467" inode="8602400" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0114.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339398" file_size="22017" device="2305" flags="2" md5="cf3b3687d0d6e0e2d4c5be8b1cbd547a" inode="8618155" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/chap4-net.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959432" file_size="21054" device="2305" flags="2" md5="98e75f8dad6b41ab5225e827baf30b48" inode="8602315" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/samba-pdc.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959515" file_size="78670" device="2305" flags="2" md5="5f8375da39031720136dea08b5d5a32a" inode="8602430" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/happy.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959451" file_size="213682" device="2305" flags="2" md5="2e2fed216438ec09d57f68837aa22855" inode="8602259" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/winbindd.8.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959408" file_size="20637" device="2305" flags="2" md5="4430888eb94459d9131d35d2dfba383d" inode="8602343" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0350.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339416" file_size="35358" device="2305" flags="2" md5="ed19f4dc1d57937275ce7d1bf06c46db" inode="8618142" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/VFS.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959529" file_size="39310" device="2305" flags="2" md5="81c4dd03e0e4b184c3104bba22250831" inode="8602393" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_af02.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339444" file_size="42621" device="2305" flags="2" md5="e7bb2f92f78b60547e79d9bb09667776" inode="8618192" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_af01.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339443" file_size="54745" device="2305" flags="2" md5="3958d2c1a02b95b117860865732689dd" inode="8618098" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/6small.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959503" file_size="32612" device="2305" flags="2" md5="e9895fd069887779308d65fa8e953b37" inode="8618033" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/pr03.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959446" file_size="6403" device="2305" flags="2" md5="5ef0393e0a0649ca1ec168dc0f9b62dd" inode="8602260" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0106.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339395" file_size="17191" device="2305" flags="2" md5="57e449863943c57f77f451945d07ec36" inode="8618091" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/NullConnect.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959443" file_size="21931" device="2305" flags="2" md5="272d21d27751fbb24ee1d2625dc73def" inode="8602290" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/ch46.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959539" file_size="9808" device="2305" flags="2" md5="2b3befcfd2add72eec4815b47860b868" inode="8602431" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/WHATSNEW.txt" verifyflags="0" rdev="0" groupname="root" mtime="1157064868" file_size="277519" device="2305" flags="2" md5="858733883bb7425b82446cfd05558aef" inode="8602239" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0504.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339429" file_size="16743" device="2305" flags="2" md5="bf206c6a9421048c38ecf336770c83e7" inode="8618084" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/WME009.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959496" file_size="8863" device="2305" flags="2" md5="417a9fc554171c49f965c04a107ebf50" inode="8617996" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/simple.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959448" file_size="77641" device="2305" flags="2" md5="3982af92450f3e81a77a4dd7c2615927" inode="8602266" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/doc/html/smbldap-tools002.html" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="3073" device="2305" flags="2" md5="8b3a1a00eded0adc4c495b62a791fcbb" inode="8618249" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/tdbbackup.8.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959401" file_size="3785" device="2305" flags="2" md5="b91dd9552c833da4e7779ad4cf826753" inode="8602349" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_af06.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339449" file_size="53929" device="2305" flags="2" md5="acd07eafdc0b720e95a140b173451f6a" inode="8618187" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/appa.html" verifyflags="0" rdev="0" groupname="root" mtime="1061339384" file_size="9603" device="2305" flags="2" md5="01242865f419a954b307609c41e1347e" inode="8618053" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0312.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339405" file_size="17058" device="2305" flags="2" md5="6fd84cb55680744a3cf32f10cbfe14a7" inode="8618077" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/ch01.html" verifyflags="0" rdev="0" groupname="root" mtime="1061339388" file_size="110637" device="2305" flags="2" md5="622615523b347bc2a9ddcf8cbd7cf1df" inode="8618051" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/WXPP002.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959495" file_size="25711" device="2305" flags="2" md5="eb1d5a4f9f7d2f84e896e2d686588a60" inode="8617993" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/smbstatus.1.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959396" file_size="5403" device="2305" flags="2" md5="c8fc4f5fe32057fda0c5bc1cf7367695" inode="8602381" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_1005.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339441" file_size="11687" device="2305" flags="2" md5="edab423963b27baccc50e16eecfc8e74" inode="8618133" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/doc/html" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="4096" device="2305" flags="0" md5="" inode="8618248" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0404.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339423" file_size="10769" device="2305" flags="2" md5="0f855390c11b2d4693b861a9bcbef05b" inode="8618068" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0315.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339406" file_size="15011" device="2305" flags="2" md5="4757b31cb1a1c86bb62909bb75535db6" inode="8618157" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba" verifyflags="0" rdev="0" groupname="root" mtime="1154960120" file_size="4096" device="2305" flags="0" md5="" inode="8618040" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/INSTALL" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="5476" device="2305" flags="2" md5="286caaa2b254fedcc7bac5587161b7a7" inode="8618273" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/doc/html/smbldap-tools006.html" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="2960" device="2305" flags="2" md5="99b3e0034cac31e58be0d9686bd3a032" inode="8618252" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0332.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339410" file_size="7011" device="2305" flags="2" md5="bf4a32a12d9f92a907da51aff53bbde7" inode="8618154" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0316.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339406" file_size="20310" device="2305" flags="2" md5="939935b13faa8e86293f20c6f25d1f1e" inode="8618124" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/smbwrapper/opendir_smbsh.c" verifyflags="0" rdev="0" groupname="root" mtime="1113856701" file_size="1083" device="2305" flags="2" md5="b7250f5b1182afa4fc4d00081a05827a" inode="8618308" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/smb.conf.5.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959380" file_size="403144" device="2305" flags="2" md5="c63e62ab296df390427e16559a32c6bc" inode="8602362" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/chap9-ADSDC.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959441" file_size="27426" device="2305" flags="2" md5="911edd780a216fb80103c39ea3ac1ea7" inode="8602284" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/TOSHpreface.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959513" file_size="5148" device="2305" flags="2" md5="3fcad2c9493f1a4c787638845978f241" inode="8602398" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/ch-ldap-tls.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959538" file_size="18468" device="2305" flags="2" md5="7d886abc9f9ec7b04c914359df4e50cc" inode="8602439" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0803.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339435" file_size="17604" device="2305" flags="2" md5="87fa5343da4bf76a798c445f87cd3a58" inode="8618103" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/install.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959513" file_size="36935" device="2305" flags="2" md5="0b85a2a256c8192039955340ae6cbca6" inode="8602412" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/chap5-net.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959433" file_size="33507" device="2305" flags="2" md5="aeca14f7191aa36721fd39d230bb016f" inode="8602302" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/registry/NT4_PlainPassword.reg" verifyflags="0" rdev="0" groupname="root" mtime="1116017999" file_size="303" device="2305" flags="2" md5="69f317abd5a711636b88eb60f17e68ad" inode="8618207" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0326.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339408" file_size="13686" device="2305" flags="2" md5="69c9f3845c377962a65a30ca08dc1be9" inode="8618088" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/wxpp007.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959496" file_size="12781" device="2305" flags="2" md5="bc35c66d0f621bd7f256f4c657f62e8b" inode="8618008" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/smbsh.1.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959393" file_size="9731" device="2305" flags="2" md5="e806b6517d70c7704ce3917781f07f9f" inode="8602360" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/compiling.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959537" file_size="26474" device="2305" flags="2" md5="5abb9957abc48a07c7afd55bd3250912" inode="8602402" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0203.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339400" file_size="35921" device="2305" flags="2" md5="288ea3266c273527077c33a0d1bfef86" inode="8618153" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide/contributing.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959493" file_size="5552" device="2305" flags="2" md5="4d86edf429804baa18708d7f764e3677" inode="8602321" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/upgrading-to-3.0.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959534" file_size="33649" device="2305" flags="2" md5="599da8fd619471e2f5fd0dcd55e27d1a" inode="8602425" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0414.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339427" file_size="7370" device="2305" flags="2" md5="514fc114cae91fbda9370caabfd947cc" inode="8618116" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0806.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339436" file_size="14242" device="2305" flags="2" md5="88554e9343b56e12e7fe8e4b65b8fe3e" inode="8618070" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0317.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339406" file_size="15084" device="2305" flags="2" md5="9e83d7f2ea818c36411785f3c0beb3e6" inode="8618134" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/index.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959489" file_size="45356" device="2305" flags="2" md5="72f8a60a3bdbd714f7290657a5935f7b" inode="8602272" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/10small.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959504" file_size="46666" device="2305" flags="2" md5="ab81a62e9ffc4e5954969d43431853fa" inode="8617991" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/preface.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959447" file_size="30149" device="2305" flags="2" md5="6e6e151e7f9ba3750d3e1dfda648a55a" inode="8602268" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/tdbdump.8.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959402" file_size="1732" device="2305" flags="2" md5="15a17ff7aad369a12f3c78e89c860d98" inode="8602358" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/registry/WinME_PlainPassword.reg" verifyflags="0" rdev="0" groupname="root" mtime="1116017999" file_size="122" device="2305" flags="2" md5="a4f6f6d2d92a59fc67e2c3475ab3d3f4" inode="8618209" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/ClientConfig.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959517" file_size="32751" device="2305" flags="2" md5="cc9a9a7fce678c30d1e30819aa90bb11" inode="8602424" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/gpl.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959459" file_size="25873" device="2305" flags="2" md5="51371cf73c081cf3b22740ea5cc141cc" inode="8602261" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/chap7-net-Ar.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959439" file_size="97993" device="2305" flags="2" md5="4e07d1e64a0769e02c4e600aab9fc7c8" inode="8602311" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide/wins.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959493" file_size="4471" device="2305" flags="2" md5="5ad38ba3e78130d54874a3cdee87efe0" inode="8602323" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/COPYING" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="17980" device="2305" flags="2" md5="83ec97bb06c77808afecd91eb0e8364b" inode="8618269" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0327.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339409" file_size="16603" device="2305" flags="2" md5="245245607e57381aa8cc5a830397a368" inode="8618185" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0601.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339432" file_size="6044" device="2305" flags="2" md5="29de29a71b7621f06ac099ddb79c2c97" inode="8618129" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/index.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959637" file_size="101450" device="2305" flags="2" md5="f35e52ebc1a52fe931d6385bc6d08acf" inode="8602440" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide/debug.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959492" file_size="11810" device="2305" flags="2" md5="f822f1cc7ccea354c72cdd9b10fbc1dd" inode="8602332" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/samba-schema.IBMSecureWay" verifyflags="0" rdev="0" groupname="root" mtime="1109372391" file_size="3145" device="2305" flags="2" md5="2f07c7a0b3018890360e7c8574d9deb3" inode="8618279" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages" verifyflags="0" rdev="0" groupname="root" mtime="1154959423" file_size="4096" device="2305" flags="0" md5="" inode="8602341" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_1004.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339440" file_size="8851" device="2305" flags="2" md5="791b2d65368a9384b0902fea48de69ac" inode="8618175" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/configure.pl" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="21150" device="2305" flags="2" md5="e9f502027adfd387629fee31243df786" inode="8618229" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/smbd.8.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959385" file_size="18211" device="2305" flags="2" md5="c15ef8262471ce3cb23400b53987c46c" inode="8602369" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/ChangeNotes.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959518" file_size="11314" device="2305" flags="2" md5="e9d8fec94a0268b6c0264ffd021d26bf" inode="8602420" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/tree.c" verifyflags="0" rdev="0" groupname="root" mtime="1113856701" file_size="21950" device="2305" flags="2" md5="eda43f6cb81f14b29f9956220be465d1" inode="8618290" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/UNIX-Samba-and-LDAP.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959434" file_size="19853" device="2305" flags="2" md5="000b66113df66115e6e0b418820a6c25" inode="8602303" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/testsmbc.c" verifyflags="0" rdev="0" groupname="root" mtime="1113856701" file_size="6868" device="2305" flags="2" md5="885bab6d2e43d917c2516e8cfc300e0e" inode="8618287" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/smbwrapper/bsd-strlcpy.c" verifyflags="0" rdev="0" groupname="root" mtime="1138164402" file_size="2385" device="2305" flags="2" md5="cac0b14bfdd335b7fc0d63f636474104" inode="8618295" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/nw4migration.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959455" file_size="80620" device="2305" flags="2" md5="3ec95f24d3eb4f669850dbf95f539123" inode="8602264" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide/unix-smb.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959491" file_size="14728" device="2305" flags="2" md5="32383fea2ce260ba4cb32f06fe3d3ca5" inode="8602340" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images" verifyflags="0" rdev="0" groupname="root" mtime="1154959443" file_size="4096" device="2305" flags="0" md5="" inode="8602277" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/msdfs.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959524" file_size="10697" device="2305" flags="2" md5="a99b462cb145baf52b3eaa3e8e5906cc" inode="8602433" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/wxpp008.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959442" file_size="19550" device="2305" flags="2" md5="599a3e83d746c09ece9922e8f7474beb" inode="8602296" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/registry/Win-2Kx-XPP-ForceLocalProfile.reg" verifyflags="0" rdev="0" groupname="root" mtime="1116017999" file_size="452" device="2305" flags="2" md5="bfbdae2a71abdc0dab531de9c448dcdf" inode="8618206" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0801.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339434" file_size="35667" device="2305" flags="2" md5="2ffce079b0e27f1938d32bae03bebf70" inode="8618113" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/chap9-SambaDC.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959440" file_size="25697" device="2305" flags="2" md5="8a50e1687daa02c76858b40823a62a5f" inode="8602281" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/testparm.1.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959403" file_size="6985" device="2305" flags="2" md5="d88c2d50dc5213eb18f2764e35800f92" inode="8602342" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0319.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339407" file_size="15653" device="2305" flags="2" md5="4048e701d4767551c517cd5d94e92238" inode="8618194" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/printer-accounting/lp-acct" verifyflags="0" rdev="0" groupname="root" mtime="1109372392" file_size="746" device="2305" flags="2" md5="5a03d442b2e470eed8d2a9ab43005738" inode="8618320" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/DomApps.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959456" file_size="41753" device="2305" flags="2" md5="9f7635c73a3ead6c62bef07fc202fdd2" inode="8602254" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/TODO" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="1045" device="2305" flags="2" md5="2d4cdbad760eabb3dcf322a03f800fdf" inode="8618233" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/doc/html/index.html" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="4660" device="2305" flags="2" md5="d09ec343f46bbb9b6518e62b96c70050" inode="8618263" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide/tracing.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959494" file_size="6290" device="2305" flags="2" md5="1eede9014a479404b94c27e0ac268a98" inode="8602331" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/ch7-singleLDAP.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959437" file_size="2459" device="2305" flags="2" md5="4243f14f0f233eda9d8e258d16709993" inode="8602314" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide/rpc-plugin.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959493" file_size="4979" device="2305" flags="2" md5="e33fea37e8488bf46acc6a029b785133" inode="8602333" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/mount.cifs.8.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959368" file_size="20222" device="2305" flags="2" md5="59b248b8346405a34b99f83f8dbe4664" inode="8602357" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0345.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339414" file_size="19423" device="2305" flags="2" md5="05dc586acba14fd64cff6cd0928e6d00" inode="8618190" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/log2pcap.1.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959367" file_size="3839" device="2305" flags="2" md5="9133f220811ce3d94dda034a349a9a28" inode="8602364" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/index.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959423" file_size="6615" device="2305" flags="2" md5="c2b88fd7a68dd2e9e165c2b6172b8f2f" inode="8602377" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/misc/check_multiple_LDAP_entries.pl" verifyflags="0" rdev="0" groupname="root" mtime="1111175802" file_size="4818" device="2305" flags="2" md5="1151f4cfe8d059a382490f2b3f0e7ef3" inode="8618311" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/appd.html" verifyflags="0" rdev="0" groupname="root" mtime="1061339386" file_size="4700" device="2305" flags="2" md5="16d3d8d777985556ae37bc1e6cb83f23" inode="8618043" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/wxpp001.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959496" file_size="31712" device="2305" flags="2" md5="46493100f6721a90a09ae06188693e53" inode="8618015" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/PolicyMgmt.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959530" file_size="32370" device="2305" flags="2" md5="ed304260e4c11e090f7f6eb36a85a99c" inode="8602435" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/registry/FolderRedir.adm" verifyflags="0" rdev="0" groupname="root" mtime="1116017999" file_size="1433" device="2305" flags="2" md5="f7803d5010c64c743d1de60dd691f4a5" inode="8618218" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/smbmnt.8.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959389" file_size="3344" device="2305" flags="2" md5="9849c426e3ed25657aedf9301f84e365" inode="8602379" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/smbldap-usermod" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="18968" device="2305" flags="2" md5="0ddf2bd485150298f63f85273ff0b52e" inode="8618242" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0343.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339413" file_size="17796" device="2305" flags="2" md5="3ff7aa1eb48e5a4a487465a894bc274d" inode="8618159" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0109.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339397" file_size="18727" device="2305" flags="2" md5="6d1a5bfceb0015d0996c35b102be42d2" inode="8618200" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/smbwrapper/bsd-strlcat.c" verifyflags="0" rdev="0" groupname="root" mtime="1138164402" file_size="2496" device="2305" flags="2" md5="a3fea3489ba665363aa17252768ec938" inode="8618304" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0346.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339414" file_size="15320" device="2305" flags="2" md5="f9e6a62e5d283d74836b75efcc972fe7" inode="8618130" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide/parsing.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959493" file_size="8469" device="2305" flags="2" md5="fee540707d2dec9e8e99490f97103fc4" inode="8602335" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0314.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339405" file_size="12776" device="2305" flags="2" md5="ca882a6ac99c772fa29928ec3cb717cf" inode="8618178" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0351.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339416" file_size="29480" device="2305" flags="2" md5="7753bddcb4643d47f7a57c0a191f51e5" inode="8618186" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/w2kp004.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959495" file_size="12127" device="2305" flags="2" md5="9178f28c006bba3e901ab6843d45616f" inode="8618023" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/misc/extra_smbstatus" verifyflags="0" rdev="0" groupname="root" mtime="1109372391" file_size="2391" device="2305" flags="2" md5="222084189c8a89b102fcbd7788d4f5c4" inode="8618314" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/acct2net.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959431" file_size="11544" device="2305" flags="2" md5="4661001fd020df5a5bc5ae4daffbb5d3" inode="8602308" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/registry/WinXP_PlainPassword.reg" verifyflags="0" rdev="0" groupname="root" mtime="1116017999" file_size="1026" device="2305" flags="2" md5="d4e0275778910c1bb33de49573234984" inode="8618213" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide/CodingSuggestions.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959493" file_size="8890" device="2305" flags="2" md5="77cfa5bda455c750eacb50a3ba516b2c" inode="8602325" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/ch7-fail-overLDAP.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959438" file_size="5585" device="2305" flags="2" md5="fd305ef5b35ff2993031e9700ac2ad27" inode="8602283" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/2000users.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959452" file_size="84587" device="2305" flags="2" md5="eb4fbd6f890ed36c7b8f12a9ddea47a3" inode="8602257" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/get_auth_data_fn.h" verifyflags="0" rdev="0" groupname="root" mtime="1145514590" file_size="1231" device="2305" flags="2" md5="2f1ad061192739e397ca0025a0996c34" inode="8618282" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0103.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339394" file_size="10700" device="2305" flags="2" md5="812cabafdf6722c8e6c750dd984c7828" inode="8618151" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/smbwrapper/wrapper.c" verifyflags="0" rdev="0" groupname="root" mtime="1138164402" file_size="46013" device="2305" flags="2" md5="5b9807d258751a9f4c36984575896d1f" inode="8618301" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/3small.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959503" file_size="15785" device="2305" flags="2" md5="4f2a73690fa87816d3fe289d51cc7d6b" inode="8618036" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/CONTRIBUTORS" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="1371" device="2305" flags="2" md5="880bc581e26c35989830aad87d53333c" inode="8618271" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0361.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339422" file_size="13356" device="2305" flags="2" md5="a4fd1764adf1305f64af70b2599cf0c6" inode="8618141" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0401.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339422" file_size="24274" device="2305" flags="2" md5="baf410ef310f7c0346024e3e9847706b" inode="8618109" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/ch7-dual-additive-LDAP-Ok.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959439" file_size="6633" device="2305" flags="2" md5="1ac8a099d3b0980829071a3e380da072" inode="8602285" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/ethereal2.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959507" file_size="38069" device="2305" flags="2" md5="f63f9d9863cf1fe333f41c2e7a287083" inode="8617987" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/cups2.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959507" file_size="40511" device="2305" flags="2" md5="80c6f9868b9e21c77dc90b0a56e2b078" inode="8618002" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0303.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339402" file_size="14966" device="2305" flags="2" md5="d49e83f8055956825b92fd962b1000cf" inode="8618072" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0113.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339397" file_size="10850" device="2305" flags="2" md5="ed71915bc8eec00eeca647ee6ede3bde" inode="8618104" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/lam-config.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959443" file_size="73791" device="2305" flags="2" md5="b4ec3fc904ea7c6093f0a6cb36725046" inode="8602287" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/AccessControls.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959523" file_size="82434" device="2305" flags="2" md5="b2e92550cf521dcd62f13344e63fc5f7" inode="8602410" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/doc/html/smbldap-tools008.html" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="1650" device="2305" flags="2" md5="0c765ed3e9bf3f1ad1d4447dc81ec095" inode="8618260" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/smbwrapper/bsd-strlfunc.h" verifyflags="0" rdev="0" groupname="root" mtime="1138164402" file_size="189" device="2305" flags="2" md5="8f3d91a69cd115d90c4fded7ffa64c01" inode="8618298" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0501.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339428" file_size="11580" device="2305" flags="2" md5="972cb3255b46298fa4ae318a3a119058" inode="8618191" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/w2kp003.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959495" file_size="8892" device="2305" flags="2" md5="63c3214607e07f9c13ed3122b327ff06" inode="8617995" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/smbspool.8.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959394" file_size="4597" device="2305" flags="2" md5="2743e321af534b562602010586269500" inode="8602366" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/smbcquotas.1.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959384" file_size="8355" device="2305" flags="2" md5="05991ddcef2383735fee107f5b0f1841" inode="8602347" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0330.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339410" file_size="17140" device="2305" flags="2" md5="76a61e0e360b2c26a621cf80b8d25410" inode="8618172" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0502.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339428" file_size="12753" device="2305" flags="2" md5="aa2af1016785f7f98f69c4b6ce4c2a5a" inode="8618125" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/lam-groups.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959443" file_size="94035" device="2305" flags="2" md5="e420af24dcee744a6f5bbdaacd352520" inode="8602286" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/openmag.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959440" file_size="18146" device="2305" flags="2" md5="042de566bad5e592bfd5027cb3427641" inode="8602293" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0411.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339427" file_size="28112" device="2305" flags="2" md5="d6fc0eb1f89261d2909d00a0a7d5cd4e" inode="8618071" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/wbinfo.1.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959407" file_size="11399" device="2305" flags="2" md5="69ac1a0810004f4efa20b5316d3aab41" inode="8602361" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/wxpp001.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959442" file_size="31712" device="2305" flags="2" md5="46493100f6721a90a09ae06188693e53" inode="8602301" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/wxpp004.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959496" file_size="29694" device="2305" flags="2" md5="742782ded8c2de0b50d2ea5302f6d53d" inode="8618007" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/WXPP005.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959495" file_size="15378" device="2305" flags="2" md5="27e4db608d37bbc4c122a931a5324e72" inode="8618022" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/domain-member.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959516" file_size="69021" device="2305" flags="2" md5="b331582606bf6ea7943d14c2f49fad75" inode="8602406" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/1small.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959503" file_size="20739" device="2305" flags="2" md5="e3f7d79bbf27a06499791e8e5c82e7b8" inode="8618010" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/ProfileMgmt.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959531" file_size="67904" device="2305" flags="2" md5="3104a267226ff96892cd2c5f201f113b" inode="8602436" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0348.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339415" file_size="7634" device="2305" flags="2" md5="7d56e40ea56d83af3aacd8bdc995927c" inode="8618086" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0357.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339420" file_size="33800" device="2305" flags="2" md5="381336385c10716baa6babdf5b9f9c0e" inode="8618168" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/UserMgrNT4.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959442" file_size="31074" device="2305" flags="2" md5="f7cffc3565d0edab78a16625d3aae30b" inode="8602292" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/smbwrapper" verifyflags="0" rdev="0" groupname="root" mtime="1138164402" file_size="4096" device="2305" flags="0" md5="" inode="8618294" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_1003.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339440" file_size="26173" device="2305" flags="2" md5="34b76c9998015d1d6ca4c3b5b11a25ce" inode="8618138" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/misc/wall.perl" verifyflags="0" rdev="0" groupname="root" mtime="1109372391" file_size="1939" device="2305" flags="2" md5="508b47c93ad5b2dbcf68f36eda718fa7" inode="8618315" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_af07.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339449" file_size="50762" device="2305" flags="2" md5="ed2df7e34ee30f8400d0a6ba798d9153" inode="8618139" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/printer-accounting/acct-sum" verifyflags="0" rdev="0" groupname="root" mtime="1109372392" file_size="695" device="2305" flags="2" md5="662ab0fe36cf0677e322dac44c308b78" inode="8618318" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0507.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339431" file_size="25309" device="2305" flags="2" md5="be2616298cda024692224875f7a1ca3a" inode="8618076" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/convertSambaAccount" verifyflags="0" rdev="0" groupname="root" mtime="1109372391" file_size="5820" device="2305" flags="2" md5="436cb6448b3d6fbae61393396601d5e9" inode="8618227" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/CUPS-printing.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959528" file_size="287546" device="2305" flags="2" md5="cecadef9e8445dfda98a190422a3c42a" inode="8602390" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/registry/NT4-Locking.reg" verifyflags="0" rdev="0" groupname="root" mtime="1116017999" file_size="871" device="2305" flags="2" md5="2258740996cd30b0a544ded52e9fe85b" inode="8618210" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/FastStart.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959514" file_size="73562" device="2305" flags="2" md5="bca40815edfc141a712eea85e1f09f5b" inode="8602414" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0101.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339394" file_size="7665" device="2305" flags="2" md5="950df8b9459fa94c2ef645404295e54a" inode="8618189" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/ch04.html" verifyflags="0" rdev="0" groupname="root" mtime="1061339389" file_size="117236" device="2305" flags="2" md5="a006aecb3509ec9a10eedfac654147e8" inode="8618049" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/optional.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959534" file_size="60176" device="2305" flags="2" md5="8cdf2c0044212a3adcb1a1febd05e246" inode="8602441" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/chap7-idresol.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959436" file_size="19415" device="2305" flags="2" md5="dcc9f33a70e4d3a23a1b108b6efa51dc" inode="8602312" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0344.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339413" file_size="20926" device="2305" flags="2" md5="f2b26cb4f2cb1c42515531579faf0074" inode="8618093" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0902.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339439" file_size="6760" device="2305" flags="2" md5="9e881ce77ba240e6ca9146a5a8455187" inode="8618117" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/ChangeLog" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="17928" device="2305" flags="2" md5="bf7e472444cd3aee1437f602b0668450" inode="8618230" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/ix01.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959489" file_size="200698" device="2305" flags="2" md5="98f0b1df3e49876128ffc7d4c5c07b23" inode="8602255" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/smbwrapper/smbw.c" verifyflags="0" rdev="0" groupname="root" mtime="1138164402" file_size="23066" device="2305" flags="2" md5="43040e9d23fc1eff8ab53b9ec4cc2d8c" inode="8618299" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/WXPP009.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959495" file_size="18976" device="2305" flags="2" md5="fa2ba494c0dfc470b7b0b1ce2c4fc5c3" inode="8617988" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/Samba3-ByExample.pdf" verifyflags="0" rdev="0" groupname="root" mtime="1154959803" file_size="3773193" device="2305" flags="2" md5="1a6d6bb534f06e13d7b6807bfa6ce58e" inode="8602243" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0342.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339413" file_size="16674" device="2305" flags="2" md5="6a45c0002c0eedeaf0a80682b57bf103" inode="8618108" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/pdftoepsonusb.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959505" file_size="4166" device="2305" flags="2" md5="789e3c0df0bebed78f84d900305667fb" inode="8618001" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/smbwrapper/smbw_dir.c" verifyflags="0" rdev="0" groupname="root" mtime="1138164402" file_size="9990" device="2305" flags="2" md5="a6be22d6f8655252be0052b31067b600" inode="8618302" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/smbldap_bind.conf" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="428" device="2305" flags="2" md5="33954fb7c87ebd12b102655aae55354e" inode="8618238" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/bugreport.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959536" file_size="15968" device="2305" flags="2" md5="2551208ff42ce9def10fa69dc1289bc0" inode="8602388" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/registry/Win9X-CacheHandling.reg" verifyflags="0" rdev="0" groupname="root" mtime="1116017999" file_size="190" device="2305" flags="2" md5="4d62b63d8644130319b109de0068ad23" inode="8618217" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/README" verifyflags="0" rdev="0" groupname="root" mtime="1109372391" file_size="1779" device="2305" flags="2" md5="55f571ed30af636e074885a531e73139" inode="8618277" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/REVISION" verifyflags="0" rdev="0" groupname="root" mtime="1154959216" file_size="353" device="2305" flags="2" md5="6003a123fc00b48dfd110b479991928d" inode="8602241" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/smbldap-userinfo" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="7633" device="2305" flags="2" md5="4c690516556d4105ebf348dd525662c8" inode="8618275" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0506.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339430" file_size="32191" device="2305" flags="2" md5="d353f5d83de32af2d665d0b05ad1ed0c" inode="8618082" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/WME005.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959496" file_size="6421" device="2305" flags="2" md5="fcfde15ca4a797065f14fa023e5573b2" inode="8618005" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/misc/swat.pl" verifyflags="0" rdev="0" groupname="root" mtime="1109372391" file_size="3270" device="2305" flags="2" md5="7d1c15ac6f1361fefb88c70d6c17f6c1" inode="8618312" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/vfstest.1.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959406" file_size="8059" device="2305" flags="2" md5="6f481ad29d7ae815a666dc1b902712a2" inode="8602372" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0337.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339411" file_size="17157" device="2305" flags="2" md5="73b841872f7a682509c4db9437a256cb" inode="8618083" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/misc" verifyflags="0" rdev="0" groupname="root" mtime="1152563278" file_size="4096" device="2305" flags="0" md5="" inode="8618310" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/README" verifyflags="0" rdev="0" groupname="root" mtime="1140488854" file_size="8577" device="2305" flags="2" md5="a79e5c16c62fa44da941e2f30c5fa8b0" inode="8602236" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/samba2_s.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339394" file_size="9733" device="2305" flags="2" md5="a03e3f46d6f5b6a115512c56f8662274" inode="8618047" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/rpcclient.1.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959377" file_size="23103" device="2305" flags="2" md5="d105be24237622177047f461d9167b75" inode="8602365" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0331.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339410" file_size="10450" device="2305" flags="2" md5="2cf6818c1a2ac031baf4e076a6972379" inode="8618102" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/nmbd.8.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959370" file_size="14380" device="2305" flags="2" md5="f9bab6c873767e9b9a9bdf53fa99f674" inode="8602368" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/doc/smbldap-migrate-unix-accounts" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="11640" device="2305" flags="2" md5="1eee8dbc93cd91634c0053954f09e7fc" inode="8618266" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/WXPP003.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959495" file_size="18079" device="2305" flags="2" md5="efa967759263099aa75ed5ae68a36418" inode="8617998" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/smbldap-userdel" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="3244" device="2305" flags="2" md5="88dc87d47e8df65de28d661163f9ba64" inode="8618231" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/ethereal1.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959507" file_size="18517" device="2305" flags="2" md5="6f06d82b436242550462562daecba62e" inode="8617994" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/ch14.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959457" file_size="9776" device="2305" flags="2" md5="2b53beda57e75b01ff3f6513d3306736" inode="8602275" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0322.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339408" file_size="11067" device="2305" flags="2" md5="ad744801a2b92615cddee8cb4bd7321d" inode="8618145" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/smbldap-usershow" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="1958" device="2305" flags="2" md5="1b8f2f30dfdb39e272e0452095ebae6e" inode="8618243" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/findsmb.1.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959363" file_size="6264" device="2305" flags="2" md5="6f5def7dbb4ac50dca97b97967b50ede" inode="8602370" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/diagnosis.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959536" file_size="28828" device="2305" flags="2" md5="2ae5aa800affbc40da262cf483642656" inode="8602417" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/pr02.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959512" file_size="22625" device="2305" flags="2" md5="f2fd2087193235157e8187e78225290e" inode="8602385" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/11small.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959505" file_size="27817" device="2305" flags="2" md5="3fe1261eea89ad8160b7fdfa0b3e57ab" inode="8618018" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/idmap-uid2sid.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959499" file_size="21259" device="2305" flags="2" md5="d62ed523fc46d22114e3dfa73d5ae379" inode="8617989" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/HostAnnouncment.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959443" file_size="38156" device="2305" flags="2" md5="5d0d5a6d364f981fd909c5a1bffc26c0" inode="8602279" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0324.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339408" file_size="13707" device="2305" flags="2" md5="ba082eee26ddedd29c3d0794eb513d1d" inode="8618162" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/FILES" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="1638" device="2305" flags="2" md5="09ce2fe261465ac51e5ec0bfa76a8755" inode="8618274" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide/index.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959494" file_size="16963" device="2305" flags="2" md5="66e9a67471fbec27e554ada9518b21ea" inode="8602334" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0308.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339403" file_size="14879" device="2305" flags="2" md5="dd89a30d20e4b68ce951a663ec0fa656" inode="8618081" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/ch10.html" verifyflags="0" rdev="0" groupname="root" mtime="1061339392" file_size="58292" device="2305" flags="2" md5="fc65c9a08b89dc7962b960ad798e4b7f" inode="8618203" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/RefSection.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959459" file_size="10943" device="2305" flags="2" md5="dccd6f79e1759997fd881a2d788ff2f6" inode="8602250" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/smbldap-tools.spec" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="3988" device="2305" flags="2" md5="cfe640a822d8b2bc2d3db2a08c36487e" inode="8618240" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/chap7-net2-Br.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959440" file_size="99789" device="2305" flags="2" md5="f95d7d0007ebe534109d8a3c8a41a5f6" inode="8602304" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c" verifyflags="0" rdev="0" groupname="root" mtime="1157180358" file_size="4096" device="2305" flags="0" md5="" inode="8602235" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/libsmbclient/smbwrapper/smbsh.c" verifyflags="0" rdev="0" groupname="root" mtime="1138164402" file_size="4735" device="2305" flags="2" md5="d56692c0acecde8601694e4ef32c2850" inode="8618297" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/AccountingNetwork.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959430" file_size="10253" device="2305" flags="2" md5="0140e31ed6dd6d0454c3a7fb3f1d481c" inode="8602282" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0305.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339402" file_size="14728" device="2305" flags="2" md5="3f1affd85d37d5af883880e24b2b2b03" inode="8618161" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/rights.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959522" file_size="30261" device="2305" flags="2" md5="e01422a0266b587c1231a9d271a0ee63" inode="8602397" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/go01.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959540" file_size="9765" device="2305" flags="2" md5="86e6d12a674c8b505919ac836e97b8eb" inode="8602438" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0405.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339423" file_size="14430" device="2305" flags="2" md5="b4b4d07404a4404e0292690c07401e52" inode="8618179" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0313.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339405" file_size="8350" device="2305" flags="2" md5="0b6aaf3393ae4dd953031c8884efb0e9" inode="8618193" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/images/wxpp004.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959442" file_size="29694" device="2305" flags="2" md5="742782ded8c2de0b50d2ea5302f6d53d" inode="8602299" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/troubleshooting.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959536" file_size="3860" device="2305" flags="2" md5="cd587d040eae9ae87299dc8d843f5de2" inode="8602446" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/printing/smbprint" verifyflags="0" rdev="0" groupname="root" mtime="1109372391" file_size="3987" device="2305" flags="2" md5="3d1b474024f0843b25caf3f5fb74ae90" inode="8618324" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/THANKS" verifyflags="0" rdev="0" groupname="root" mtime="1116017999" file_size="5780" device="2305" flags="2" md5="44ffc198d5e4b5656995926f3258b4e3" inode="8602245" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/SambaHA.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959533" file_size="21688" device="2305" flags="2" md5="3c3129ef546a47e70fd191a63ebe52d7" inode="8602386" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/4small.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959503" file_size="22370" device="2305" flags="2" md5="f44b3f4654a859a5c09b25f04c7385ae" inode="8618021" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/smbldap-useradd" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="20969" device="2305" flags="2" md5="158c04e38d30b29534440db588cabe11" inode="8618246" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/samba.css" verifyflags="0" rdev="0" groupname="root" mtime="1154959424" file_size="873" device="2305" flags="2" md5="2a0292be878c2b9a56390e99effa6402" inode="8602273" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/locking.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959524" file_size="51731" device="2305" flags="2" md5="a928cce1a320fa11d4226a0d4f843ac5" inode="8602434" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/autofs/auto.smb" verifyflags="0" rdev="0" groupname="root" mtime="1109372391" file_size="467" device="2305" flags="2" md5="9fe7a067ae1745bd132dd22890f93abd" inode="8618220" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/libsmbclient.7.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959364" file_size="5136" device="2305" flags="2" md5="d7776198df41a78d9a0b3c0aaed15d7e" inode="8602374" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/doc/html/smbldap-tools010.html" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="438" device="2305" flags="2" md5="71437bb98e8cb7fa036f644658a44f48" inode="8618254" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0415.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339427" file_size="15906" device="2305" flags="2" md5="62a8844345c245a1bc448a584c4b9140" inode="8618115" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/manpages/smbpasswd.5.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959391" file_size="8556" device="2305" flags="2" md5="d3281ec580fdb14118004053a8187602" inode="8602380" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0807.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339437" file_size="15799" device="2305" flags="2" md5="69d46205f2054ea5091cb7114d22e8fb" inode="8618096" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/browsing1.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959497" file_size="19564" device="2305" flags="2" md5="042619b4b417eda9cc7ed20c9e079834" inode="8618004" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0336.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339411" file_size="16622" device="2305" flags="2" md5="0ab44d9c3de1036f25e24401d1ed1f5d" inode="8618147" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/misc/adssearch.pl" verifyflags="0" rdev="0" groupname="root" mtime="1152563278" file_size="43027" device="2305" flags="2" md5="ff143ccbad078ba13ef6c1735fa15b4b" inode="8618313" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0340.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339412" file_size="10493" device="2305" flags="2" md5="0899c6a66e7c78c19bd7ddb822c9d31c" inode="8618173" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/largefile.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959533" file_size="7060" device="2305" flags="2" md5="174a2f2851dc4f2bc55f2969fcab4a22" inode="8602419" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide/pt02.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959493" file_size="6141" device="2305" flags="2" md5="c9816799b05b2d50c1d8177097b4750b" inode="8602322" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/smbldap-tools-0.9.2/doc/html/smbldap-tools003.html" verifyflags="0" rdev="0" groupname="root" mtime="1136303861" file_size="3645" device="2305" flags="2" md5="138fe85135dceb878fe2c08b8efe3025" inode="8618250" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_1102.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339441" file_size="5408" device="2305" flags="2" md5="eacbb0bb7afc2a8186a779702d90a09e" inode="8618198" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-Developers-Guide" verifyflags="0" rdev="0" groupname="root" mtime="1154959494" file_size="4096" device="2305" flags="0" md5="" inode="8602317" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/LDAP/get_next_oid" verifyflags="0" rdev="0" groupname="root" mtime="1109372391" file_size="483" device="2305" flags="2" md5="9f44e69539f5478f467ab9ba0f67d9b6" inode="8618226" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0318.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339406" file_size="17269" device="2305" flags="2" md5="203249c5df5a37f52acb0795697f10ad" inode="8618080" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/figs/sam2_0360.gif" verifyflags="0" rdev="0" groupname="root" mtime="1061339422" file_size="13343" device="2305" flags="2" md5="bfc1e0cb28e0417aaae2ced53358f381" inode="8618095" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/pam.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959531" file_size="50093" device="2305" flags="2" md5="dfdba485793a09de0d8bc18e925afaf4" inode="8602396" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/using_samba/appg.html" verifyflags="0" rdev="0" groupname="root" mtime="1061339386" file_size="21387" device="2305" flags="2" md5="46723ed7ac7f203eefecf041ea4709fd" inode="8618056" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-HOWTO/images/WME013.png" verifyflags="0" rdev="0" groupname="root" mtime="1154959496" file_size="5844" device="2305" flags="2" md5="7b59ba3815008c1d26dc8bd1bdb31453" inode="8618024" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/printer-accounting/printcap" verifyflags="0" rdev="0" groupname="root" mtime="1109372392" file_size="560" device="2305" flags="2" md5="54c946049e6e7f8d0a7e3799377151ca" inode="8618317" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/doc/samba-3.0.23c/htmldocs/Samba3-ByExample/kerberos.html" verifyflags="0" rdev="0" groupname="root" mtime="1154959456" file_size="81893" device="2305" flags="2" md5="80f3d59017bad2a100c5de779920d1fb" inode="8602271" linkto="" file_mode="-32348"/></rhn-package-files></rhn-package><rhn-package compat="0" payload-size="11416" name="m17n-db-telugu" package-size="14650" package-group="System Environment/Libraries
-" build-time="1167761102" source-rpm="m17n-db-1.3.3-46.el5.src.rpm" md5sum="e0aa989ee53868b9e730563cbcc99e5a" payload-format="cpio" package-arch="noarch" rpm-version="4.4.2" last-modified="1173375423" epoch="" version="1.3.3" cookie="ls20-bc1-14.build.redhat.com 1167743091" release="46.el5" build-host="ls20-bc1-14.build.redhat.com" id="rhn-package-386982"><rhn-package-summary>m17n-db input table for Telugu
-</rhn-package-summary><rhn-package-description>m17n-db Telugu input map.
-</rhn-package-description><rhn-package-vendor>Red Hat, Inc.</rhn-package-vendor><rhn-package-copyright>LGPL</rhn-package-copyright><rhn-package-header-sig><rhn-null/></rhn-package-header-sig><rhn-package-header-start>440</rhn-package-header-start><rhn-package-header-end>9072</rhn-package-header-end><rhn-package-changelog><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jens Petersen <petersen(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fix language names in Indic .mim file headers (Naoto Takahashi)
-- add make-dist script to m17n-db-indic</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1143082800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jens Petersen <petersen(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- initial packaging for Fedora Extras</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1128564000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jens Petersen <petersen(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- split .mim input tables into separate subpackages per language</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1127613600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jens Petersen <petersen(a)redhat.com> - 1.2.0-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- separate output datafiles to datafiles subpackage.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1131591600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jens Petersen <petersen(a)redhat.com> - 1.2.0-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- import to Fedora Core</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1134788400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jens Petersen <petersen(a)redhat.com> - 1.3.1-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- update to 1.3.1 release
- - add new icons to language subpackages
- - new common-cjk subpackage for CJK common files
- - new Swedish subpackage
- - exclude new pkgconfig file</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1138935600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jens Petersen <petersen(a)redhat.com> - 1.3.2-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- update to 1.3.2 bugfix release
-- do not include ja-anthy.mim input map</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1139626800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jens Petersen <petersen(a)redhat.com> - 1.3.2-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- add Indian input maps ported from scim-tables
-- add Nepali subpackage</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1139972400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jens Petersen <petersen(a)redhat.com> - 1.3.3-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- update to 1.3.3 bugfix release
-- fixes to Bengali, Hindi, and Punjabi maps (runab, aalam)
-- Tamil phonetic map now works
-- new Tamil99 Government Standard map (I Felix)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1141354800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jens Petersen <petersen(a)redhat.com> - 1.3.3-14</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- move bopomofo to chinese subpackage</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1153879200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jens Petersen <petersen(a)redhat.com> - 1.3.3-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Bengali input maps fixes (runab)
- - map Probhat '*' key to an alternate sequence since glyph missing (#179821)
- - more itrans cleanup (#182227)
-- add icon for Tamil99 (aalam)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1141959600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Added 09CE mapped to z in as-inscript (213410)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1162436400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Added ZWNJ to ml-inscript, fixes 214975</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1163473200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Added as-*.png icons.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1149559200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Added few more key combinations for ta-typewriter keymap - bug 209088
-- Added ZWJ for hi-inscript and hi-phonetic keymaps - bug 211576
-- Corrected kn-kgp and kn-inscript keymaps for keymapping of X - bug 209963</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1161396000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Added following keymaps
- - as-inscript.mim
- - as-phonetic.mim
- - mr-inscript.mim
- - ta-tamil99.mim</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1147917600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Added halant to (t) in bn-itrans.mim in m17n-indic tarball, resolves bug 217140</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1164682800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Added hi-remington keymap - <rranjan(a)redhat.com>
-- Added hi-remington.png - <aalam(a)redhat.com></rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1151632800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Added hi-typewriter keymap.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1149818400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Added icon for marathi inscript - thanks to <aalam(a)redhat.com></rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1148954400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Added key summaries in various keymaps</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1152237600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Added key summaries to pa-inscript/jhelum
-- Fixed 204755</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1157421600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Added key summary for si-wijesekera keymap</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1160445600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Added key summary to te-inscript keymap</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1158112800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Added modified as-phonetic.mim keymap, modified by <runab(a)redhat.com> for RH bz #193849</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1149300000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Added or-*.png icons.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1149732000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Added or-inscript keymap to the tarball
-- Commented out as-*.png and or-*.png from the directives as respective .png files are missing from tarball.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1149300000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Added ta-typewriter keymap & its icon</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1161050400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Added ta-typewriter.mim keymap</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1152842400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Added ur-phonetic icon
-- Updated spec file to incorporate the icon</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1157076000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Bumped release number to 30 to fix some versioning issues
-- Decreased m17n-db's version from 1.3.4 to 1.3.3</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1161050400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Corrected bn-probhat.mim file, RH bz #200890, added U+09CE</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1154484000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Corrected ml-inscript.mim file, RH bz #200876</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1154484000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Corrected the previous fix for 211576</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1163127600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Edited our own bn-itrans-t-182227.patch to resolve bug 217140</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1164682800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Fix for bug 213633</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1162609200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Fix for re-opened bug 211576</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1162522800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Fixed Bug 177371: mapping of X and x in kn-kgp
-- Fixed Bug 215486: Mapped 0x0964 to shift(.) instead of . in as-inscript
-- Fixed Bug 215489: Mapped 0x0964 to shift(.) instead of . in bn-inscript</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1163559600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Removed errernous entries from ta-tamil99 keymap</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1160013600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Replaced si-wijesekera (surrounding text) with si-wijesekera preedit keymap (208820)
-- Added fixes to ka-kgp keymap (209963)</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1161050400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Resolved: 218008</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1165028400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Resolved: 218254 - Fixed ta-typewriter keymap.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1165546800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Resolves: Bug 221130: [hi_IN-remington] vowels in hi-remington are not typed correctly</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1167793200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Retained mapping of (.) to (.) in as-inscript as per bug 215486
-- Fixed an error in ta-tamil99 key summary.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1164078000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Reverted back to upstream's tarball for m17n-db
-- Added si-wijesekera-with-preedit as a patch to m17n-db tarball
-- Updated license header in hi-remington, as-inscript, or-inscript, ta-typewriter
-- Resolved: 217322</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1164769200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Updated as-phonetic with key summary</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1157508000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Updated bn-probhat & as-phonetic keymaps with *=>à§
-- Corrected date type in changelog</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1157594400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Updated bn-probhat.mim for RH bz #200890 ...weird... that previous update didnt showed up!
-- https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=200890#c4</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1155088800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Updated bn-{inscript,probhat,itrans} for RH bug #204275
-- Added ur-phonetic.mim file for RH bug #177372
-- Updated m17n-db.spec file to incorporate Urdu keymap.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1157076000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Updated keymaps for typo errors, updated copyright header in all keymaps with "This file is part of the m17n contrib; a sub-part of the m17n library"
-- Added key summary for ta-tamil99 keymap
-- updated key summary for bn-itrans.mim</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1157680800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Updated or-inscript.mim for bug 204726</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1157594400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mayank Jain <majain(a)redhat.com> - 1.3.3-13</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Removed ta-typewriter.mim keymap as its not working
-- Added ml-inscript.png
-- Added hi-inscript.png
-- added hi-remington.png</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1153188000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>UTUMI Hirosi <utuhiro78(a)yahoo.co.jp></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- modify spec for fedora</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1105844400</rhn-package-changelog-entry-time></rhn-package-changelog-entry></rhn-package-changelog><rhn-package-requires><rhn-package-requires-entry version="4.0-1" name="rpmlib(PayloadFilesHavePrefix)" sense="16777290"/><rhn-package-requires-entry version="3.0.4-1" name="rpmlib(CompressedFileNames)" sense="16777290"/></rhn-package-requires><rhn-package-provides><rhn-package-provides-entry version="1.3.3-46.el5" name="m17n-db-telugu" sense="8"/></rhn-package-provides><rhn-package-conflicts/><rhn-package-obsoletes/><rhn-package-files><rhn-package-file username="root" lang="" name="/usr/share/m17n" verifyflags="-1" rdev="0" groupname="root" mtime="1167761101" file_size="12288" device="2305" flags="0" md5="" inode="1720876" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/m17n/icons/te-itrans.png" verifyflags="-1" rdev="0" groupname="root" mtime="1167761101" file_size="1509" device="2305" flags="0" md5="510cf0b08cedf5279258c19a3b380daa" inode="1720921" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/m17n/te-inscript.mim" verifyflags="-1" rdev="0" groupname="root" mtime="1158068317" file_size="3159" device="2305" flags="0" md5="f3cb04e97200cc1b885c2d9b89d6ab20" inode="1721194" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/m17n/icons/te-inscript.png" verifyflags="-1" rdev="0" groupname="root" mtime="1126895381" file_size="1193" device="2305" flags="0" md5="66e7df8bcea89cd42ae6ba02a1ed7e36" inode="1721220" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/m17n/te-itrans.mim" verifyflags="-1" rdev="0" groupname="root" mtime="1167761101" file_size="4707" device="2305" flags="0" md5="ece7056f9d8611e507957870bb0697e2" inode="1721131" linkto="" file_mode="-32348"/></rhn-package-files></rhn-package><rhn-package compat="0" payload-size="11858600" name="gnome-user-docs" package-size="6549456" package-group="Documentation
-" build-time="1157750823" source-rpm="gnome-user-docs-2.16.0-2.fc6.src.rpm" md5sum="4e7d379301407b4c79f211596b802a13" payload-format="cpio" package-arch="noarch" rpm-version="4.4.2" last-modified="1173375434" epoch="" version="2.16.0" cookie="altix2.build.redhat.com 1157733399" release="2.fc6" build-host="altix2.build.redhat.com" id="rhn-package-386983"><rhn-package-summary>GNOME User Documentation
-</rhn-package-summary><rhn-package-description>This package contains end user documentation for the GNOME desktop
-environment.
-</rhn-package-description><rhn-package-vendor>Red Hat, Inc.</rhn-package-vendor><rhn-package-copyright>FDL</rhn-package-copyright><rhn-package-header-sig><rhn-null/></rhn-package-header-sig><rhn-package-header-start>440</rhn-package-header-start><rhn-package-header-end>97656</rhn-package-header-end><rhn-package-changelog><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Alex Larsson <alexl(a)redhat.com> 2.5.90-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- update to 2.5.90</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1079406000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Alexander Larsson <alexl(a)redhat.com> 2.4.1-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- update to 2.4.1</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1075518000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Alexander Larsson <alexl(a)redhat.com> 2.5.0-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- update to 2.5.0</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1077850800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Christopher Aillon <caillon(a)redhat.com> 2.8.0.1-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Update to 2.8.0-1</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1095904800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Christopher Aillon <caillon(a)redhat.com> 2.8.1-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Update to 2.8.1</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1098756000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Elliot Lee <sopwith(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuilt</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1076727600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Gregory Leblanc <gleblanc(a)cu-portland.edu></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- de-uglification, and fixed the macros.</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>982897200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Havoc Pennington <hp(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- 2.0.0 stable release
-- clean up uninstalled file warnings
-- blow build root at start of install</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1028858400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Havoc Pennington <hp(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- add introduction-to-gnome.xml from CVS so the XML won't be broken</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1040094000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Havoc Pennington <hp(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- prereq scrollkeeper</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1024624800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Havoc Pennington <hp(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- upgrade to gnome 2 docs
-- clean up the spec file a bit</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1024365600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jesse Keating <jkeating(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuilt</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1134183600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Jonathan Blandford <jrb(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Moved to red hat build system</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>987559200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Kenny Graunke <kwg(a)teleport.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Initial cut</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>975380400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Marco Pesenti Gritti <mpg(a)redhat.com> 2.8.1-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Remove the section about menu editing. Fix 134119</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1099796400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Mark McLoughlin <markmc(a)redhat.com> 2.6.0.1-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Update to 2.6.0.1</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1080961200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Matthias Clasen <mclasen(a)redhat.com> - 2.15.1-1.fc6</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Update to 2.15.1</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1155520800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Matthias Clasen <mclasen(a)redhat.com> - 2.16.0-1.fc6</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Update to 2.16.0</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1157508000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Matthias Clasen <mclasen(a)redhat.com> - 2.16.0-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Fix directory ownership issues</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1157767200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Matthias Clasen <mclasen(a)redhat.com> 2.13.1.1-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Update to 2.13.1.1</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1140577200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Matthias Clasen <mclasen(a)redhat.com> 2.14.0-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Update to 2.14.0</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1142305200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Matthias Clasen <mclasen(a)redhat.com> 2.14.1-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Update to 2.14.1</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1144720800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Matthias Clasen <mclasen(a)redhat.com> 2.14.2-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Update to 2.14.2</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1144807200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Matthias Clasen <mclasen(a)redhat.com> 2.14.2-3</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Fix BuildRequires</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1149559200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Matthias Clasen <mclasen(a)redhat.com> 2.14.2-4</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Add more BuildRequires</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1149904800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Nalin Dahyabhai <nalin(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- fix a scrollkeeper validation bug</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1024020000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Nalin Dahyabhai <nalin(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuild in different environment</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1024020000</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Owen Taylor <otaylor(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- Version 1.93, should fix #67207</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1024970400</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Ray Strode <rstrode(a)redhat.com> 2.13.1.1-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- PreReq instead of Requires scrollkeeper. Reported by
- Bill Nottingham</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1141873200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Tim Powers <timp(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- automated rebuild</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1010631600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Tim Powers <timp(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- automated rebuild</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1022205600</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Tim Powers <timp(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- automated rebuild</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1024711200</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Tim Powers <timp(a)redhat.com></rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- rebuilt</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1043290800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Tim Powers <timp(a)redhat.com> 2.0.1-1</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- update to 2.0.1</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1039834800</rhn-package-changelog-entry-time></rhn-package-changelog-entry><rhn-package-changelog-entry><rhn-package-changelog-entry-name>Warren Togami <wtogami(a)redhat.com> 2.6.0.1-2</rhn-package-changelog-entry-name><rhn-package-changelog-entry-text>- BR scrollkeeper</rhn-package-changelog-entry-text><rhn-package-changelog-entry-time>1081908000</rhn-package-changelog-entry-time></rhn-package-changelog-entry></rhn-package-changelog><rhn-package-requires><rhn-package-requires-entry version="4.0-1" name="rpmlib(PayloadFilesHavePrefix)" sense="16777290"/><rhn-package-requires-entry version="3.0.4-1" name="rpmlib(CompressedFileNames)" sense="16777290"/><rhn-package-requires-entry version="" name="/bin/sh" sense="1344"/><rhn-package-requires-entry version="" name="/bin/sh" sense="4416"/><rhn-package-requires-entry version="3.0.3-1" name="rpmlib(VersionedDependencies)" sense="16777290"/><rhn-package-requires-entry version="0.3.11" name="scrollkeeper" sense="76"/></rhn-package-requires><rhn-package-provides><rhn-package-provides-entry version="2.16.0-2.fc6" name="gnome-user-docs" sense="8"/></rhn-package-provides><rhn-package-conflicts/><rhn-package-obsoletes><rhn-package-obsoletes-entry version="" name="gnome-users-guide" sense="0"/></rhn-package-obsoletes><rhn-package-files><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/goseditmainmenu.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="8242" device="2051" flags="0" md5="6a8bf8bb1011dc4bad7dd251de53a66f" inode="4079977" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/user-guide.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="8234" device="2051" flags="0" md5="77373a9bbcaf5bec95d9d926a5a8ac6b" inode="4079985" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/omf/user-guide" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="4096" device="2051" flags="0" md5="" inode="4080600" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/sample_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="6294" device="2051" flags="0" md5="84228717d2f8b951a5e2b06725fe0fd6" inode="4080487" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/menu_panel.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="6539" device="2051" flags="0" md5="a6b41293f26fdca45e9b81c54ccb0dc8" inode="4080183" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/gospanel.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="79886" device="2051" flags="0" md5="5f82a3e5efac25166b05099cf75f8a89" inode="4079980" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/titlebar_anno_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="6004" device="2051" flags="0" md5="32f7de38d309ac7c18359e7ef9dcc0f2" inode="4080519" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/openwindows_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="3842" device="2051" flags="0" md5="ceea4df4bf13d1ec8da9bce679bfc1c8" inode="4080455" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/gosoverview.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="43031" device="2051" flags="0" md5="0aa15bea2b5d94a1f4091fa21ffb703c" inode="4079979" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/move_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="194" device="2051" flags="0" md5="1a4e4a188a0132fc783c465d42c52426" inode="4080199" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/normal_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="305" device="2051" flags="0" md5="47960823c1883b50400d4fb7be857c72" inode="4080423" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/window_list_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="2989" device="2051" flags="0" md5="6a903b5e02d1d7dd736c825b25a3f429" inode="4080543" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/open_drawer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="8054" device="2051" flags="0" md5="48758235f704d288f6b6ef5f135dd61b" inode="4080447" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_samplesymlink_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3889" device="2051" flags="0" md5="a56b9913c84da5b1407ad8b9618a41ff" inode="4080327" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/glossary.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="7685" device="2051" flags="0" md5="5ee85f3b48ffdf45eb5ff686902c15dd" inode="4079984" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_zoom_out_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="228" device="2051" flags="0" md5="d0377c2da0f43df1f8ec6bf9c04eeeaf" inode="4080407" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_noread_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1008" device="2051" flags="0" md5="e54419d1a042a072d0a56effcc13278a" inode="4080263" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_starthere_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="4511" device="2051" flags="0" md5="ee62efa332bc6450f92cabf3be245a9a" inode="4080383" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/panel_object_popup_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2974" device="2051" flags="0" md5="35135b4653e42312c3e83f399ec6d406" inode="4080463" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/window_list_group_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="4455" device="2051" flags="0" md5="6b703d3f2da3c6206d433f554ac11726" inode="4080551" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="4096" device="2051" flags="0" md5="" inode="4080063" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/gosbasic.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="39285" device="2051" flags="0" md5="25f4ee2b79daf0f2ab28dcce1ff34d7a" inode="4079975" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_sampleemblem2_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="2209" device="2051" flags="0" md5="1fda0a7e76eb9dd57911acfaa89f267e" inode="4080303" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="4096" device="2051" flags="0" md5="" inode="4079966" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/typical_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="6470" device="2051" flags="0" md5="8e55f5be14a2e5d22a12dcc4463ba06e" inode="4080535" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_nowrite_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1068" device="2051" flags="0" md5="06a5b7050d82e38d2f54048a1f698092" inode="4080279" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_sampleemblem_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="4376" device="2051" flags="0" md5="109056cd83393c232751c95803c09150" inode="4080319" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_trash_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3466" device="2051" flags="0" md5="828874302ebc9332260361a0e2ac83a5" inode="4080391" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/lockscreen_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="3137" device="2051" flags="0" md5="75daebe4720b40eeaedfe8f4874bc8c0" inode="4080159" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/not_available_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="161" device="2051" flags="0" md5="19601aaf360da25b8a0d1d18b45ed99e" inode="4080431" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/copy_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="181" device="2051" flags="0" md5="228984e885befffd71ae4eadd7ee790e" inode="4080095" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_sampleemblem1_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="886" device="2051" flags="0" md5="c47a771208c38c0529d254ffb12b13b0" inode="4080295" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/gedit_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="19819" device="2051" flags="0" md5="dae728f1901939647a3669cb4eb52cb4" inode="4080119" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/logout_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="2278" device="2051" flags="0" md5="b695adb45b2eaed0d80203635a70a5bb" inode="4080167" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/ask_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="235" device="2051" flags="0" md5="bd23edcf2659006110ce30a14f0abb35" inode="4080064" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/legal.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="3672" device="2051" flags="0" md5="079f9049bec3c1866c67e3312d563eed" inode="4079974" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_zoom_in_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="313" device="2051" flags="0" md5="fdd5dadc0daa1dc7ed3a1455676482e9" inode="4080399" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/goscustdesk.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="143820" device="2051" flags="0" md5="e0a03228ffcbedaba09d121fb9a797c4" inode="4079976" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/gosnautilus.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="196873" device="2051" flags="0" md5="07225de9c737aba312d03e5475a30a30" inode="4079978" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_normal_size_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1206" device="2051" flags="0" md5="7f2457eb51218cdfcd08a6e1e8aa9903" inode="4080271" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/four_hide_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="1193" device="2051" flags="0" md5="386e1e73333296fc0da22cef5ff7fc25" inode="4080111" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/gosstartsession.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="14937" device="2051" flags="0" md5="a3e64f2455f08bd6fbe0fe1acc9cf804" inode="4079981" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_sampleemblem3_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="1944" device="2051" flags="0" md5="5f63009887a3f3abc5fc251f1fca9688" inode="4080311" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/move_panel_object_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="225" device="2051" flags="0" md5="e4244fb77b0df2b0c451328dce6fa175" inode="4080191" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="4096" device="2051" flags="0" md5="" inode="4079965" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/link_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="292" device="2051" flags="0" md5="8fb4e2d2fcaea8b59a653a3d8fc85b5a" inode="4080151" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_link_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="974" device="2051" flags="0" md5="3f0fd31faeaee25ae5c272219ae84d80" inode="4080255" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/workspace_switcher_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="509" device="2051" flags="0" md5="9a42c99bb7ad5f288f8177966d12289c" inode="4080559" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/gnome_panel.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="3558" device="2051" flags="0" md5="3fafcbfa605a345c87fc4dec2f82f89a" inode="4080127" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/system-admin-guide/C/system-admin-guide.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="4520" device="2051" flags="0" md5="169dd1398444b708f0cf020b54e4e395" inode="4080727" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/system-admin-guide/C/performance.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="25198" device="2051" flags="0" md5="1028492390a5fe9dfc7821495610d18a" inode="4080722" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/move_object_push.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1257" device="2051" flags="0" md5="810dfbd14b4259ce732963a0b72b1ed9" inode="4080657" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/system-admin-guide/C/appendixa.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="8322" device="2051" flags="0" md5="81e8d877f4556003d121fd073c4e0448" inode="4080713" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/system-admin-guide" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="4096" device="2051" flags="0" md5="" inode="4080709" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/accessintro.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="1318" device="2051" flags="0" md5="6ce626da765e578bd98991786730b317" inode="4080613" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/slider.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1240" device="2051" flags="0" md5="d0b6e9e5a9625576006828967a3813a9" inode="4080663" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/run_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2163" device="2051" flags="0" md5="c2b6a8fa1735f34172fcd255091de1d4" inode="4080479" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/system-admin-guide/C/mimetypes.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="37811" device="2051" flags="0" md5="b5a5dbec2a39065608e0810c8bc37509" inode="4080721" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/system-admin-guide/C/legal.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="3672" device="2051" flags="0" md5="079f9049bec3c1866c67e3312d563eed" inode="4080726" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/gnome-access-guide.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="5893" device="2051" flags="0" md5="34b4a7cf0a2ebd77ae5ba1f8c06faebe" inode="4080621" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/move_object_jump.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1773" device="2051" flags="0" md5="424967c951eb27a96ebce26711e62cc2" inode="4080654" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/system-admin-guide/C/themes.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="17338" device="2051" flags="0" md5="92426f0799620e2469a2d6649d8df760" inode="4080725" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/notification_area_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="945" device="2051" flags="0" md5="973b76c720b51d9495208ab2d62ecdec" inode="4080439" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/searchtool_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2634" device="2051" flags="0" md5="e6210d7a387eccba73a76c215f078611" inode="4080503" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/force_quit.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="1255" device="2051" flags="0" md5="a59d7a99b4a6ed57873f4bc4c4398cbb" inode="4080103" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/system-admin-guide/C/sessions.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="3533" device="2051" flags="0" md5="16a67096795cb0bd203828558ff0f87e" inode="4080724" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/spin_box.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1199" device="2051" flags="0" md5="a413f3913e3456411482c3663a1c3248" inode="4080669" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/move_object_before.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1776" device="2051" flags="0" md5="db85522123cc18d15a87b71ed2856fd3" inode="4080651" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/show_desktop_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="2320" device="2051" flags="0" md5="d334534760b6b1c7bc2615f6fa514477" inode="4080511" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/text_box.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1052" device="2051" flags="0" md5="7f69292d1ab4162d95791e37355244b4" inode="4080699" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/system-admin-guide/C/glossary.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="9428" device="2051" flags="0" md5="635e7158265f3a6138b6075197395bf8" inode="4080717" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/system-admin-guide/C/screensavers.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="4625" device="2051" flags="0" md5="6101b23ba9c335665e9e081dd810fa42" inode="4080723" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/system-admin-guide/C" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="4096" device="2051" flags="0" md5="" inode="4080710" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/dropdown_combination_box.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1146" device="2051" flags="0" md5="c28106adee3335e7c4c7daeaa0469c59" inode="4080639" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/screenshot_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2866" device="2051" flags="0" md5="87de8a33a8e6058c0ba95b7f8c75fc5a" inode="4080495" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/dropdown_list_box.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1271" device="2051" flags="0" md5="942d41fc508f23362d8c9c1a92988c45" inode="4080642" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="4096" device="2051" flags="0" md5="" inode="4080624" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/tree.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1697" device="2051" flags="0" md5="0bb1b6f07b3fab52dddfa4bab9f1e5d4" inode="4080702" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/keynav.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="93146" device="2051" flags="0" md5="5719c3518396baa252f14ddd3ede91b9" inode="4080616" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/dtconfig.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="34616" device="2051" flags="0" md5="845da17bd678cf9b350b2211068b99b6" inode="4080615" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/themes.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="27226" device="2051" flags="0" md5="65e854674089abb7140bbc6b0873af73" inode="4080619" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="4096" device="2051" flags="0" md5="" inode="4080610" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1099" device="2051" flags="0" md5="53cd1fd7b179068753b4c6d2eb4d3261" inode="4080633" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/radio_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1509" device="2051" flags="0" md5="c0ba3100eedc9b36635032e1432bda0b" inode="4080660" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/system-admin-guide/C/help.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="4975" device="2051" flags="0" md5="a8a8697e0c7037328f43ed39aeb42fb2" inode="4080718" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/move_object_arrows.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1778" device="2051" flags="0" md5="14708f1edd48a84a861819b5fc16820b" inode="4080648" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/menu_bar_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="2523" device="2051" flags="0" md5="dd0eee59732d5d03d0f90299ef9fa1bd" inode="4080175" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/check_box.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1092" device="2051" flags="0" md5="4ee0fe6be90e8084499476dbe7d42eca" inode="4080636" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/system-admin-guide/C/gconf.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="58736" device="2051" flags="0" md5="b4019bbd098fe4957f80c2ffb671de24" inode="4080716" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/system-admin-guide/C/menustructure.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="38836" device="2051" flags="0" md5="1c2cf1529b618099e5909a449e542f80" inode="4080720" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/preface.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="2354" device="2051" flags="0" md5="42e1b2949b5f48bb7dd5e37c8b05971e" inode="4080617" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/tabbed_section.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="8856" device="2051" flags="0" md5="c64b36d9e27b0cd69caaff98c24c1c4d" inode="4080696" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/legal.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="3672" device="2051" flags="0" md5="079f9049bec3c1866c67e3312d563eed" inode="4080620" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="4096" device="2051" flags="0" md5="" inode="4080609" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/omf/user-guide/user-guide-C.omf" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="1488" device="2051" flags="0" md5="bf549180dd80cde6dd70cdae6a1cbdeb" inode="4080601" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/com_file_manager_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="5352" device="2051" flags="0" md5="806597a020ec5a27615fd7330425047f" inode="4080087" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_computer_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="3235" device="2051" flags="0" md5="b6ba701515f5e9862aa30f0230745644" inode="4080231" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/system-admin-guide/C/lockdown.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="18243" device="2051" flags="0" md5="2a693b583793e27a58eba1830756a60e" inode="4080719" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/system-admin-guide/C/appendixb.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1375" device="2051" flags="0" md5="47851d7c0b38c1c19df3fc494de007b3" inode="4080714" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/system-admin-guide/C/fontconfig.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="4899" device="2051" flags="0" md5="2068d21a0778486de9cb4641013c314f" inode="4080715" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_computer_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="3235" device="2051" flags="0" md5="b6ba701515f5e9862aa30f0230745644" inode="4080235" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/bouncekeys.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="557" device="2051" flags="0" md5="cff25b6e1db7bfedc2517abc34444706" inode="4080630" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_computer_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="3235" device="2051" flags="0" md5="b6ba701515f5e9862aa30f0230745644" inode="4080233" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/nautilus_restore_saved_search.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="113179" device="2051" flags="0" md5="1b7dbb7d82639abe4d9f8cc75bc2c80f" inode="4080415" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/ats.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="5026" device="2051" flags="0" md5="ec437db4cc7118955261dd6d1b3751d7" inode="4080614" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/dropdown_combination_box.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1840" device="2051" flags="0" md5="facfe97578422ddd957a58ecad5b1a79" inode="4080641" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/window_list_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="2989" device="2051" flags="0" md5="6a903b5e02d1d7dd736c825b25a3f429" inode="4080547" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_sampleemblem_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="4376" device="2051" flags="0" md5="109056cd83393c232751c95803c09150" inode="4080323" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/hyperlink_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="248" device="2051" flags="0" md5="41030ede726c6f3d9f1bd1f05456f3f6" inode="4080139" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/logout_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="2278" device="2051" flags="0" md5="b695adb45b2eaed0d80203635a70a5bb" inode="4080169" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/workspace_switcher_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="509" device="2051" flags="0" md5="9a42c99bb7ad5f288f8177966d12289c" inode="4080561" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/copy_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="181" device="2051" flags="0" md5="228984e885befffd71ae4eadd7ee790e" inode="4080097" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/yelp_add_bookmark.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="8645" device="2051" flags="0" md5="562a62662f47655337c9bf341ef69f6e" inode="4080567" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/yelp_add_bookmark.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="8645" device="2051" flags="0" md5="562a62662f47655337c9bf341ef69f6e" inode="4080571" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_starthere_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="4511" device="2051" flags="0" md5="ee62efa332bc6450f92cabf3be245a9a" inode="4080385" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_samplesymlink_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3889" device="2051" flags="0" md5="a56b9913c84da5b1407ad8b9618a41ff" inode="4080329" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/bouncekeys.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="557" device="2051" flags="0" md5="cff25b6e1db7bfedc2517abc34444706" inode="4080632" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/gosstartsession.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="15625" device="2051" flags="0" md5="774b2cb2f646dd9364be834c3600107b" inode="4080009" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/show_desktop_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="2320" device="2051" flags="0" md5="d334534760b6b1c7bc2615f6fa514477" inode="4080515" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_search_results.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="41790" device="2051" flags="0" md5="cdb07b97b638c6157d40d57373fcc5d4" inode="4080345" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/panel_object_popup_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2974" device="2051" flags="0" md5="35135b4653e42312c3e83f399ec6d406" inode="4080465" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/lockscreen_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="3137" device="2051" flags="0" md5="75daebe4720b40eeaedfe8f4874bc8c0" inode="4080163" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/menu_bar_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="2523" device="2051" flags="0" md5="dd0eee59732d5d03d0f90299ef9fa1bd" inode="4080179" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/goseditmainmenu.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="8295" device="2051" flags="0" md5="e4d050739799ce611a3f86745a351cb8" inode="4080025" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/stickyshiftlatch.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="470" device="2051" flags="0" md5="c88cab16d9c86d9ee102fe04d8278d6b" inode="4080686" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/omf/gnome-access-guide/gnome-access-guide-it.omf" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1432" device="2051" flags="0" md5="d286d0c11f8364a8e9dd958fcf16ed9a" inode="4080708" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/slowkeys.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="672" device="2051" flags="0" md5="8714235e4f0faae5d914b19436596233" inode="4080666" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_sampleemblem1_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="886" device="2051" flags="0" md5="c47a771208c38c0529d254ffb12b13b0" inode="4080299" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/gnome-access-guide.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="223396" device="2051" flags="0" md5="00e80e59c4d096d860ec5492a9ba3a6c" inode="4080623" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/move_panel_object_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="225" device="2051" flags="0" md5="e4244fb77b0df2b0c451328dce6fa175" inode="4080195" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/sample_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="6294" device="2051" flags="0" md5="84228717d2f8b951a5e2b06725fe0fd6" inode="4080489" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/gospanel.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="85184" device="2051" flags="0" md5="e1e654c18c5ca061d3d276eec8f51d12" inode="4080008" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_spatial_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="33975" device="2051" flags="0" md5="c96778d8953fd40f65095da8b8b92066" inode="4080377" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/glossary.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="8615" device="2051" flags="0" md5="a7ddacd0e3b0d27ed95a028efd481e12" inode="4080012" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/nautilus_restore_saved_search.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="113179" device="2051" flags="0" md5="1b7dbb7d82639abe4d9f8cc75bc2c80f" inode="4080419" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/nautilus_restore_saved_search.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="113179" device="2051" flags="0" md5="1b7dbb7d82639abe4d9f8cc75bc2c80f" inode="4080417" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/gostools.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="36105" device="2051" flags="0" md5="d63190f56d2f7496c426fdfc454301e6" inode="4080010" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/glossary.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="8350" device="2051" flags="0" md5="d06129ea70fc9d44197a4816554eea3e" inode="4080032" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/titlebar_anno_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="6004" device="2051" flags="0" md5="32f7de38d309ac7c18359e7ef9dcc0f2" inode="4080521" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/stickyctrllatch.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="414" device="2051" flags="0" md5="f85ce888003a0f875496d42a9f19c508" inode="4080680" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_normal_size_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1206" device="2051" flags="0" md5="7f2457eb51218cdfcd08a6e1e8aa9903" inode="4080275" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_button_bar.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="7712" device="2051" flags="0" md5="447c19259a84de017f4431ea205bed03" inode="4080223" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/open_drawer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="8054" device="2051" flags="0" md5="48758235f704d288f6b6ef5f135dd61b" inode="4080449" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_search_bar.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3992" device="2051" flags="0" md5="60a9a159dee2d7ad5c035ed794845798" inode="4080339" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/move_object_arrows.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1778" device="2051" flags="0" md5="14708f1edd48a84a861819b5fc16820b" inode="4080650" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_browser_mode.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="56931" device="2051" flags="0" md5="44b92e32cdc342cd5624b1be5626386d" inode="4080215" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/hyperlink_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="248" device="2051" flags="0" md5="41030ede726c6f3d9f1bd1f05456f3f6" inode="4080135" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/stickywindowlatch.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="405" device="2051" flags="0" md5="cdfb5e24d83b7264647136c9c8efef08" inode="4080692" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/goscustdesk.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="154100" device="2051" flags="0" md5="2d65b5efb48fc31e37eabf81c6bec154" inode="4080004" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/four_hide_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="1193" device="2051" flags="0" md5="386e1e73333296fc0da22cef5ff7fc25" inode="4080113" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="4096" device="2051" flags="0" md5="" inode="4079968" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="4096" device="2051" flags="0" md5="" inode="4079970" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/ibeam_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="197" device="2051" flags="0" md5="77aa93e74d640173c96801747bf564d1" inode="4080143" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_browser_mode.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="56931" device="2051" flags="0" md5="44b92e32cdc342cd5624b1be5626386d" inode="4080219" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/copy_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="181" device="2051" flags="0" md5="228984e885befffd71ae4eadd7ee790e" inode="4080099" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/screenshot_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2866" device="2051" flags="0" md5="87de8a33a8e6058c0ba95b7f8c75fc5a" inode="4080499" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_spatial_mode.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="74023" device="2051" flags="0" md5="f2f8e037d14274ac04e1df45664f2103" inode="4080371" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_spatial_list_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="50568" device="2051" flags="0" md5="99693c429ea6f6889793a85b0c8fb099" inode="4080359" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/force_quit.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="1255" device="2051" flags="0" md5="a59d7a99b4a6ed57873f4bc4c4398cbb" inode="4080107" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/omf/user-guide/user-guide-it.omf" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="1549" device="2051" flags="0" md5="534f9e34ecf9a326142d3776726898e7" inode="4080605" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/logout_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="2278" device="2051" flags="0" md5="b695adb45b2eaed0d80203635a70a5bb" inode="4080171" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/omf/system-admin-guide" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="4096" device="2051" flags="0" md5="" inode="4080730" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/menu_panel.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="6539" device="2051" flags="0" md5="a6b41293f26fdca45e9b81c54ccb0dc8" inode="4080187" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/gnome_panel.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="3558" device="2051" flags="0" md5="3fafcbfa605a345c87fc4dec2f82f89a" inode="4080131" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/gospanel.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="82220" device="2051" flags="0" md5="04122098c01d0e566ce4c5bb07df9bf5" inode="4080028" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/movewindow_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="152" device="2051" flags="0" md5="8496a1d62cbfbe5272f8f5fa6f173c4c" inode="4080209" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/run_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2163" device="2051" flags="0" md5="c2b6a8fa1735f34172fcd255091de1d4" inode="4080483" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_browser_mode.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="56931" device="2051" flags="0" md5="44b92e32cdc342cd5624b1be5626386d" inode="4080217" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/spin_box.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="2117" device="2051" flags="0" md5="a1cc5d3e92aa255aedc078e9e519d7f1" inode="4080671" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/yelp_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="41402" device="2051" flags="0" md5="c7138987ae131fe2c57846a281245d31" inode="4080593" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/move_object_jump.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1773" device="2051" flags="0" md5="424967c951eb27a96ebce26711e62cc2" inode="4080656" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/resize_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="205" device="2051" flags="0" md5="43e8186584e1879ba078caedf0a9f33f" inode="4080473" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/busy_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="233" device="2051" flags="0" md5="99db6994613731ca7687bd700c471b2d" inode="4080081" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/not_available_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="161" device="2051" flags="0" md5="19601aaf360da25b8a0d1d18b45ed99e" inode="4080433" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_refine_search.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="12837" device="2051" flags="0" md5="c3d58f408fd7ec2f6965a0f06e05c43e" inode="4080287" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="4096" device="2051" flags="0" md5="" inode="4080071" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/gostools.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="36620" device="2051" flags="0" md5="0887fe71f498648e394b7e107815414d" inode="4080030" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/gosbasic.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="39634" device="2051" flags="0" md5="57f7484198e00dde57403ea6eb086c6c" inode="4080003" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_sampleemblem3_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="1944" device="2051" flags="0" md5="5f63009887a3f3abc5fc251f1fca9688" inode="4080315" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/yelp_edit_bookmarks.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="16073" device="2051" flags="0" md5="6fb478c10bb9df68dc8d82f3ed4ac89b" inode="4080577" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/hyperlink_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="248" device="2051" flags="0" md5="41030ede726c6f3d9f1bd1f05456f3f6" inode="4080137" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_spatial_icon_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="45566" device="2051" flags="0" md5="c2dd3a38476c26a924c2673c6bb6de93" inode="4080351" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_normal_size_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1206" device="2051" flags="0" md5="7f2457eb51218cdfcd08a6e1e8aa9903" inode="4080273" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/ibeam_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="197" device="2051" flags="0" md5="77aa93e74d640173c96801747bf564d1" inode="4080147" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/gosnautilus.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="209841" device="2051" flags="0" md5="157ba4827d2a07dd1c6b0f5abe537ef1" inode="4080006" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="4096" device="2051" flags="0" md5="" inode="4080628" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_search_results.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="41790" device="2051" flags="0" md5="cdb07b97b638c6157d40d57373fcc5d4" inode="4080343" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_zoom_in_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="313" device="2051" flags="0" md5="fdd5dadc0daa1dc7ed3a1455676482e9" inode="4080401" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/sample_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="6294" device="2051" flags="0" md5="84228717d2f8b951a5e2b06725fe0fd6" inode="4080491" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/gosnautilus.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="197920" device="2051" flags="0" md5="6ef8295b964473f704a1caa77750938b" inode="4080026" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/gnome_panel.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="3558" device="2051" flags="0" md5="3fafcbfa605a345c87fc4dec2f82f89a" inode="4080129" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/gosstartsession.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="16176" device="2051" flags="0" md5="80a0baac8d4b360c9d13174f3da1e58d" inode="4080029" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/openwindows_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="3842" device="2051" flags="0" md5="ceea4df4bf13d1ec8da9bce679bfc1c8" inode="4080459" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/menu_panel.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="6539" device="2051" flags="0" md5="a6b41293f26fdca45e9b81c54ccb0dc8" inode="4080185" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_sampleemblem2_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="2209" device="2051" flags="0" md5="1fda0a7e76eb9dd57911acfaa89f267e" inode="4080307" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/gedit_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="19819" device="2051" flags="0" md5="dae728f1901939647a3669cb4eb52cb4" inode="4080121" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/user-guide.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="11720" device="2051" flags="0" md5="dc88145be4085bd1e4c0931e032ed913" inode="4079989" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_noread_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1008" device="2051" flags="0" md5="e54419d1a042a072d0a56effcc13278a" inode="4080265" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/omf/gnome-access-guide" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="4096" device="2051" flags="0" md5="" inode="4080705" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/check_box.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="3263" device="2051" flags="0" md5="f5904ad5e4f70d0f30325ba85f2dfb5c" inode="4080638" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/gostools.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="36521" device="2051" flags="0" md5="999ecdaabc1321b9a509cceb37528b85" inode="4079982" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_sampleemblem3_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="1944" device="2051" flags="0" md5="5f63009887a3f3abc5fc251f1fca9688" inode="4080313" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/open_drawer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="8054" device="2051" flags="0" md5="48758235f704d288f6b6ef5f135dd61b" inode="4080451" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_refine_search.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="12837" device="2051" flags="0" md5="c3d58f408fd7ec2f6965a0f06e05c43e" inode="4080289" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/omf/user-guide/user-guide-es.omf" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="1553" device="2051" flags="0" md5="8a6d334b6bd2711528a5ab70f13d7f9a" inode="4080603" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/stickyctrllock.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="436" device="2051" flags="0" md5="58d0972c476a9c1e9f077d343fda6ab4" inode="4080683" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/show_desktop_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="2320" device="2051" flags="0" md5="d334534760b6b1c7bc2615f6fa514477" inode="4080513" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/busy_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="233" device="2051" flags="0" md5="99db6994613731ca7687bd700c471b2d" inode="4080079" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/stickywindowlatch.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="405" device="2051" flags="0" md5="cdfb5e24d83b7264647136c9c8efef08" inode="4080690" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_go_to_location.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="4094" device="2051" flags="0" md5="f5731ef77db819a54be69cab8806529a" inode="4080247" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/tabbed_section.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="8856" device="2051" flags="0" md5="c64b36d9e27b0cd69caaff98c24c1c4d" inode="4080698" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/not_available_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="161" device="2051" flags="0" md5="19601aaf360da25b8a0d1d18b45ed99e" inode="4080435" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_search_bar.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3992" device="2051" flags="0" md5="60a9a159dee2d7ad5c035ed794845798" inode="4080335" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_spatial_icon_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="45566" device="2051" flags="0" md5="c2dd3a38476c26a924c2673c6bb6de93" inode="4080355" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/stickyshiftlock.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="508" device="2051" flags="0" md5="bae566b7fe0b61c44ecae952880e0db3" inode="4080689" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/stickywindowlock.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="460" device="2051" flags="0" md5="8fe5f82535f7aeb54dacc2d05b777299" inode="4080695" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/gosoverview.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="46684" device="2051" flags="0" md5="5e6cfd0229fab93dcc28c650c23261d1" inode="4080007" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="4096" device="2051" flags="0" md5="" inode="4080067" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/system-admin-guide/it/system-admin-guide.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="248883" device="2051" flags="0" md5="f23e047d0cbc55fd111b938654d8738f" inode="4080729" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_button_bar.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="7712" device="2051" flags="0" md5="447c19259a84de017f4431ea205bed03" inode="4080227" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/stickyaltlatch.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="320" device="2051" flags="0" md5="77f5fd818a89aebd05f56d8bedef7d11" inode="4080674" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_spatial_mode.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="74023" device="2051" flags="0" md5="f2f8e037d14274ac04e1df45664f2103" inode="4080367" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/force_quit.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="1255" device="2051" flags="0" md5="a59d7a99b4a6ed57873f4bc4c4398cbb" inode="4080105" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/goscustdesk.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="143887" device="2051" flags="0" md5="466a5e56ccc856598e5c8fb95bf9f84f" inode="4080024" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/titlebar_anno_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="6004" device="2051" flags="0" md5="32f7de38d309ac7c18359e7ef9dcc0f2" inode="4080523" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="7777" device="2051" flags="0" md5="24a8df13cff91ef8bac8d24cd299dfe0" inode="4080241" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_spatial_list_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="51639" device="2051" flags="0" md5="cf111bc1622be75cbfe2305dbcc01c32" inode="4080361" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/openwindows_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="3842" device="2051" flags="0" md5="ceea4df4bf13d1ec8da9bce679bfc1c8" inode="4080457" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/stickyaltlock.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="346" device="2051" flags="0" md5="23cbf9498b55526e2dc0e80b2d409628" inode="4080677" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/four_hide_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="1193" device="2051" flags="0" md5="386e1e73333296fc0da22cef5ff7fc25" inode="4080115" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/move_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="194" device="2051" flags="0" md5="1a4e4a188a0132fc783c465d42c52426" inode="4080203" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/typical_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="6470" device="2051" flags="0" md5="8e55f5be14a2e5d22a12dcc4463ba06e" inode="4080539" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/sysadmin.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="35454" device="2051" flags="0" md5="8da0a2b918f92085c325b7b53650157b" inode="4080618" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_trash_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3466" device="2051" flags="0" md5="828874302ebc9332260361a0e2ac83a5" inode="4080393" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/move_object_before.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1776" device="2051" flags="0" md5="db85522123cc18d15a87b71ed2856fd3" inode="4080653" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/yelp_preferences.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="16781" device="2051" flags="0" md5="b8beb6c866957938b5e39bc7f72611ec" inode="4080585" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="7777" device="2051" flags="0" md5="24a8df13cff91ef8bac8d24cd299dfe0" inode="4080239" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/yelp_edit_bookmarks.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="16073" device="2051" flags="0" md5="6fb478c10bb9df68dc8d82f3ed4ac89b" inode="4080575" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/stickyshiftlock.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="508" device="2051" flags="0" md5="bae566b7fe0b61c44ecae952880e0db3" inode="4080687" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/mousekeys.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="948" device="2051" flags="0" md5="2d6989b948f744f949c344b0cf96136b" inode="4080645" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/move_panel_object_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="225" device="2051" flags="0" md5="e4244fb77b0df2b0c451328dce6fa175" inode="4080193" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/notification_area_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="945" device="2051" flags="0" md5="973b76c720b51d9495208ab2d62ecdec" inode="4080441" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/run_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2163" device="2051" flags="0" md5="c2b6a8fa1735f34172fcd255091de1d4" inode="4080481" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/tree.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1697" device="2051" flags="0" md5="0bb1b6f07b3fab52dddfa4bab9f1e5d4" inode="4080704" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/stickyaltlatch.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="320" device="2051" flags="0" md5="77f5fd818a89aebd05f56d8bedef7d11" inode="4080672" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/dropdown_list_box.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="3262" device="2051" flags="0" md5="55596f4caf1e41d358a9af356ace9c2c" inode="4080644" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_spatial_icon_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="60679" device="2051" flags="0" md5="ad3de4d93dbc52df7c3241b4c74a20bb" inode="4080353" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/com_file_manager_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="5352" device="2051" flags="0" md5="806597a020ec5a27615fd7330425047f" inode="4080089" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_samplesymlink_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3889" device="2051" flags="0" md5="a56b9913c84da5b1407ad8b9618a41ff" inode="4080331" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/omf/system-admin-guide/system-admin-guide-it.omf" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1099" device="2051" flags="0" md5="0b4fb92feaf50503869b35a251ece63c" inode="4080733" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_link_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="974" device="2051" flags="0" md5="3f0fd31faeaee25ae5c272219ae84d80" inode="4080259" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_zoom_in_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="313" device="2051" flags="0" md5="fdd5dadc0daa1dc7ed3a1455676482e9" inode="4080403" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/com_file_manager_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="5352" device="2051" flags="0" md5="806597a020ec5a27615fd7330425047f" inode="4080091" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/stickyctrllock.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="436" device="2051" flags="0" md5="58d0972c476a9c1e9f077d343fda6ab4" inode="4080681" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/ask_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="235" device="2051" flags="0" md5="bd23edcf2659006110ce30a14f0abb35" inode="4080068" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_nowrite_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1068" device="2051" flags="0" md5="06a5b7050d82e38d2f54048a1f698092" inode="4080283" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/screenshot_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2866" device="2051" flags="0" md5="87de8a33a8e6058c0ba95b7f8c75fc5a" inode="4080497" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/window_list_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="2989" device="2051" flags="0" md5="6a903b5e02d1d7dd736c825b25a3f429" inode="4080545" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_spatial_list_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="50568" device="2051" flags="0" md5="99693c429ea6f6889793a85b0c8fb099" inode="4080363" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/searchtool_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2634" device="2051" flags="0" md5="e6210d7a387eccba73a76c215f078611" inode="4080505" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/resize_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="205" device="2051" flags="0" md5="43e8186584e1879ba078caedf0a9f33f" inode="4080475" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/panel_object_popup_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2974" device="2051" flags="0" md5="35135b4653e42312c3e83f399ec6d406" inode="4080467" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/stickyaltlock.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="346" device="2051" flags="0" md5="23cbf9498b55526e2dc0e80b2d409628" inode="4080675" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/radio_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="4534" device="2051" flags="0" md5="b00d2a7378d165fb5f92c07b9b7dc6ad" inode="4080662" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/stickywindowlock.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="460" device="2051" flags="0" md5="8fe5f82535f7aeb54dacc2d05b777299" inode="4080693" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/window_list_group_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="4455" device="2051" flags="0" md5="6b703d3f2da3c6206d433f554ac11726" inode="4080555" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/normal_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="305" device="2051" flags="0" md5="47960823c1883b50400d4fb7be857c72" inode="4080427" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1417" device="2051" flags="0" md5="0b3842b556a4ea0eca8fbd6269cd0c2c" inode="4080635" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="4096" device="2051" flags="0" md5="" inode="4080612" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/omf/system-admin-guide/system-admin-guide-C.omf" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1044" device="2051" flags="0" md5="3f70293e2231741877f007dd7e9313d6" inode="4080731" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/typical_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="6470" device="2051" flags="0" md5="8e55f5be14a2e5d22a12dcc4463ba06e" inode="4080537" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/workspace_switcher_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="509" device="2051" flags="0" md5="9a42c99bb7ad5f288f8177966d12289c" inode="4080563" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/system-admin-guide/it" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="4096" device="2051" flags="0" md5="" inode="4080712" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/searchtool_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2634" device="2051" flags="0" md5="e6210d7a387eccba73a76c215f078611" inode="4080507" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/notification_area_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="945" device="2051" flags="0" md5="973b76c720b51d9495208ab2d62ecdec" inode="4080443" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/busy_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="233" device="2051" flags="0" md5="99db6994613731ca7687bd700c471b2d" inode="4080083" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_sampleemblem_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="4376" device="2051" flags="0" md5="109056cd83393c232751c95803c09150" inode="4080321" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_trash_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3466" device="2051" flags="0" md5="828874302ebc9332260361a0e2ac83a5" inode="4080395" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_search_results.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="41790" device="2051" flags="0" md5="cdb07b97b638c6157d40d57373fcc5d4" inode="4080347" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/stickyctrllatch.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="414" device="2051" flags="0" md5="f85ce888003a0f875496d42a9f19c508" inode="4080678" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_noread_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1008" device="2051" flags="0" md5="e54419d1a042a072d0a56effcc13278a" inode="4080267" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/slider.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="2319" device="2051" flags="0" md5="8beb4b855518de23befb92933b4cb3a9" inode="4080665" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_nowrite_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1068" device="2051" flags="0" md5="06a5b7050d82e38d2f54048a1f698092" inode="4080281" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_spatial_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="33054" device="2051" flags="0" md5="08673c38f4b4327f94f298c73b0d270b" inode="4080379" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_spatial_mode.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="74023" device="2051" flags="0" md5="f2f8e037d14274ac04e1df45664f2103" inode="4080369" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/move_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="194" device="2051" flags="0" md5="1a4e4a188a0132fc783c465d42c52426" inode="4080201" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/mousekeys.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="948" device="2051" flags="0" md5="2d6989b948f744f949c344b0cf96136b" inode="4080647" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_link_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="974" device="2051" flags="0" md5="3f0fd31faeaee25ae5c272219ae84d80" inode="4080257" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/link_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="292" device="2051" flags="0" md5="8fb4e2d2fcaea8b59a653a3d8fc85b5a" inode="4080155" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/normal_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="305" device="2051" flags="0" md5="47960823c1883b50400d4fb7be857c72" inode="4080425" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/user-guide.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="11826" device="2051" flags="0" md5="dff9909c58c59b31f5b76ebf9896abd7" inode="4079987" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/lockscreen_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="3137" device="2051" flags="0" md5="75daebe4720b40eeaedfe8f4874bc8c0" inode="4080161" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/yelp_preferences.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="16781" device="2051" flags="0" md5="b8beb6c866957938b5e39bc7f72611ec" inode="4080583" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/text_box.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="936" device="2051" flags="0" md5="855c6ee7c5ce5d9fc51a3251f9c571c4" inode="4080701" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/slowkeys.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="672" device="2051" flags="0" md5="8714235e4f0faae5d914b19436596233" inode="4080668" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/naut_spatial_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="33054" device="2051" flags="0" md5="08673c38f4b4327f94f298c73b0d270b" inode="4080375" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/accessx.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1413" device="2051" flags="0" md5="0ff78dfbc2101b109b64eb3672c11a4b" inode="4080629" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_starthere_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="4511" device="2051" flags="0" md5="ee62efa332bc6450f92cabf3be245a9a" inode="4080387" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/yelp_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="41402" device="2051" flags="0" md5="c7138987ae131fe2c57846a281245d31" inode="4080595" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/window_list_group_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="4455" device="2051" flags="0" md5="6b703d3f2da3c6206d433f554ac11726" inode="4080553" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/it/figures/move_object_push.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1257" device="2051" flags="0" md5="810dfbd14b4259ce732963a0b72b1ed9" inode="4080659" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/gedit_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="19819" device="2051" flags="0" md5="dae728f1901939647a3669cb4eb52cb4" inode="4080123" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="7777" device="2051" flags="0" md5="24a8df13cff91ef8bac8d24cd299dfe0" inode="4080243" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/yelp_edit_bookmarks.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="16073" device="2051" flags="0" md5="6fb478c10bb9df68dc8d82f3ed4ac89b" inode="4080579" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_button_bar.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="7712" device="2051" flags="0" md5="447c19259a84de017f4431ea205bed03" inode="4080225" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/link_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="292" device="2051" flags="0" md5="8fb4e2d2fcaea8b59a653a3d8fc85b5a" inode="4080153" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/yelp_preferences.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="16781" device="2051" flags="0" md5="b8beb6c866957938b5e39bc7f72611ec" inode="4080587" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_refine_search.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="12837" device="2051" flags="0" md5="c3d58f408fd7ec2f6965a0f06e05c43e" inode="4080291" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/movewindow_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="152" device="2051" flags="0" md5="8496a1d62cbfbe5272f8f5fa6f173c4c" inode="4080207" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_sampleemblem2_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="2209" device="2051" flags="0" md5="1fda0a7e76eb9dd57911acfaa89f267e" inode="4080305" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/yelp_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="41402" device="2051" flags="0" md5="c7138987ae131fe2c57846a281245d31" inode="4080591" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/ask_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="235" device="2051" flags="0" md5="bd23edcf2659006110ce30a14f0abb35" inode="4080072" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/yelp_add_bookmark.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="8645" device="2051" flags="0" md5="562a62662f47655337c9bf341ef69f6e" inode="4080569" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/movewindow_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="152" device="2051" flags="0" md5="8496a1d62cbfbe5272f8f5fa6f173c4c" inode="4080211" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_go_to_location.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="4094" device="2051" flags="0" md5="f5731ef77db819a54be69cab8806529a" inode="4080249" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_search_bar.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3992" device="2051" flags="0" md5="60a9a159dee2d7ad5c035ed794845798" inode="4080337" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/stickyshiftlatch.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="470" device="2051" flags="0" md5="c88cab16d9c86d9ee102fe04d8278d6b" inode="4080684" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/ibeam_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="197" device="2051" flags="0" md5="77aa93e74d640173c96801747bf564d1" inode="4080145" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/gosbasic.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="39338" device="2051" flags="0" md5="da6d6b30ad4c777579f2185904d00baf" inode="4080023" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/C/figures/accessx.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1413" device="2051" flags="0" md5="0ff78dfbc2101b109b64eb3672c11a4b" inode="4080625" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/goseditmainmenu.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="8715" device="2051" flags="0" md5="5510a1159ad07b39ba8c910ce8876880" inode="4080005" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/resize_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="205" device="2051" flags="0" md5="43e8186584e1879ba078caedf0a9f33f" inode="4080471" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/menu_bar_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="2523" device="2051" flags="0" md5="dd0eee59732d5d03d0f90299ef9fa1bd" inode="4080177" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_sampleemblem1_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="886" device="2051" flags="0" md5="c47a771208c38c0529d254ffb12b13b0" inode="4080297" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/gosoverview.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="43221" device="2051" flags="0" md5="08ef9d7eb1a8c5cf3ba03c7436b7af98" inode="4080027" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/omf/gnome-access-guide/gnome-access-guide-C.omf" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1220" device="2051" flags="0" md5="ad547da9d93ca4c1deccf5c1dd20062a" inode="4080706" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_zoom_out_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="228" device="2051" flags="0" md5="d0377c2da0f43df1f8ec6bf9c04eeeaf" inode="4080411" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/naut_zoom_out_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="228" device="2051" flags="0" md5="d0377c2da0f43df1f8ec6bf9c04eeeaf" inode="4080409" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/naut_go_to_location.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="4094" device="2051" flags="0" md5="f5731ef77db819a54be69cab8806529a" inode="4080251" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/sample_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="6294" device="2051" flags="0" md5="84228717d2f8b951a5e2b06725fe0fd6" inode="4080488" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/gosfeedback.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="5692" device="2051" flags="0" md5="3c49d8844d40e59a1dc70648930d21c5" inode="4080011" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/gnome_panel.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="3558" device="2051" flags="0" md5="3fafcbfa605a345c87fc4dec2f82f89a" inode="4080132" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/nautilus_restore_saved_search.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="113179" device="2051" flags="0" md5="1b7dbb7d82639abe4d9f8cc75bc2c80f" inode="4080420" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/omf/gnome-access-guide/gnome-access-guide-es.omf" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1280" device="2051" flags="0" md5="cc804fba89afbd670dfcac21bd85a207" inode="4080707" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_normal_size_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1206" device="2051" flags="0" md5="7f2457eb51218cdfcd08a6e1e8aa9903" inode="4080272" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_noread_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1008" device="2051" flags="0" md5="e54419d1a042a072d0a56effcc13278a" inode="4080269" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/window_list_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="2989" device="2051" flags="0" md5="6a903b5e02d1d7dd736c825b25a3f429" inode="4080550" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_zoom_out_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="228" device="2051" flags="0" md5="d0377c2da0f43df1f8ec6bf9c04eeeaf" inode="4080410" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/gosfeedback.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="5312" device="2051" flags="0" md5="1776ec859928948382ca94e34c05b970" inode="4080031" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/gosbasic.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="48161" device="2051" flags="0" md5="74c63acf8ad362c40e1136ef64f471c7" inode="4080043" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/goseditmainmenu.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="8955" device="2051" flags="0" md5="8b33a889710ef3b3afed860ca8c98336" inode="4080045" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/goscustdesk.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="145773" device="2051" flags="0" md5="6d04823f1ca4828718f268126ea51173" inode="4080034" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="4096" device="2051" flags="0" md5="" inode="4080077" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_refine_search.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="12837" device="2051" flags="0" md5="c3d58f408fd7ec2f6965a0f06e05c43e" inode="4080294" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/logout_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="2278" device="2051" flags="0" md5="b695adb45b2eaed0d80203635a70a5bb" inode="4080170" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/glossary.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="11232" device="2051" flags="0" md5="ff63a3156751b8149ad8780e348eb4da" inode="4080002" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/titlebar_anno_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="6004" device="2051" flags="0" md5="32f7de38d309ac7c18359e7ef9dcc0f2" inode="4080526" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_zoom_in_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="313" device="2051" flags="0" md5="fdd5dadc0daa1dc7ed3a1455676482e9" inode="4080404" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/panel_object_popup_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2974" device="2051" flags="0" md5="35135b4653e42312c3e83f399ec6d406" inode="4080469" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/sample_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="6294" device="2051" flags="0" md5="84228717d2f8b951a5e2b06725fe0fd6" inode="4080493" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/menu_panel.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="6539" device="2051" flags="0" md5="a6b41293f26fdca45e9b81c54ccb0dc8" inode="4080189" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1099" device="2051" flags="0" md5="53cd1fd7b179068753b4c6d2eb4d3261" inode="4080634" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/run_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2163" device="2051" flags="0" md5="c2b6a8fa1735f34172fcd255091de1d4" inode="4080480" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_browser_mode.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="56931" device="2051" flags="0" md5="44b92e32cdc342cd5624b1be5626386d" inode="4080220" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_noread_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1008" device="2051" flags="0" md5="e54419d1a042a072d0a56effcc13278a" inode="4080266" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_computer_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="3235" device="2051" flags="0" md5="b6ba701515f5e9862aa30f0230745644" inode="4080237" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/move_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="194" device="2051" flags="0" md5="1a4e4a188a0132fc783c465d42c52426" inode="4080206" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/hyperlink_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="248" device="2051" flags="0" md5="41030ede726c6f3d9f1bd1f05456f3f6" inode="4080142" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/lockscreen_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="3137" device="2051" flags="0" md5="75daebe4720b40eeaedfe8f4874bc8c0" inode="4080166" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/menu_bar_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="2523" device="2051" flags="0" md5="dd0eee59732d5d03d0f90299ef9fa1bd" inode="4080181" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/yelp_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="41402" device="2051" flags="0" md5="c7138987ae131fe2c57846a281245d31" inode="4080594" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/open_drawer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="8054" device="2051" flags="0" md5="48758235f704d288f6b6ef5f135dd61b" inode="4080453" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/hyperlink_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="248" device="2051" flags="0" md5="41030ede726c6f3d9f1bd1f05456f3f6" inode="4080140" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/movewindow_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="152" device="2051" flags="0" md5="8496a1d62cbfbe5272f8f5fa6f173c4c" inode="4080210" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/titlebar_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="3144" device="2051" flags="0" md5="b3624c3e2eeb934a16ff5689c8163f44" inode="4080533" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/lockscreen_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="3137" device="2051" flags="0" md5="75daebe4720b40eeaedfe8f4874bc8c0" inode="4080162" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_sampleemblem2_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="2209" device="2051" flags="0" md5="1fda0a7e76eb9dd57911acfaa89f267e" inode="4080309" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/accessx.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1413" device="2051" flags="0" md5="0ff78dfbc2101b109b64eb3672c11a4b" inode="4080627" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/sample_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="6294" device="2051" flags="0" md5="84228717d2f8b951a5e2b06725fe0fd6" inode="4080490" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_spatial_icon_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="45566" device="2051" flags="0" md5="c2dd3a38476c26a924c2673c6bb6de93" inode="4080356" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_sampleemblem2_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="2209" device="2051" flags="0" md5="1fda0a7e76eb9dd57911acfaa89f267e" inode="4080304" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/omf/user-guide/user-guide-ru.omf" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="1779" device="2051" flags="0" md5="19bdd6b9b1347c50b4ca8af5cdfefc09" inode="4080607" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/gnome_panel.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="3558" device="2051" flags="0" md5="3fafcbfa605a345c87fc4dec2f82f89a" inode="4080128" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="4096" device="2051" flags="0" md5="" inode="4079971" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/panel_object_popup_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2974" device="2051" flags="0" md5="35135b4653e42312c3e83f399ec6d406" inode="4080468" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/glossary.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="7294" device="2051" flags="0" md5="9e785bd289e265ddfda7998e4c2ea4f1" inode="4080062" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/notification_area_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="945" device="2051" flags="0" md5="973b76c720b51d9495208ab2d62ecdec" inode="4080444" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/not_available_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="161" device="2051" flags="0" md5="19601aaf360da25b8a0d1d18b45ed99e" inode="4080438" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/gostools.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="36172" device="2051" flags="0" md5="39872bb75c7acf45631cd527bc4f15b3" inode="4080060" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/yelp_add_bookmark.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="8645" device="2051" flags="0" md5="562a62662f47655337c9bf341ef69f6e" inode="4080570" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_normal_size_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1206" device="2051" flags="0" md5="7f2457eb51218cdfcd08a6e1e8aa9903" inode="4080274" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_spatial_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="33054" device="2051" flags="0" md5="08673c38f4b4327f94f298c73b0d270b" inode="4080378" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/searchtool_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="2634" device="2051" flags="0" md5="e6210d7a387eccba73a76c215f078611" inode="4080508" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/busy_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="233" device="2051" flags="0" md5="99db6994613731ca7687bd700c471b2d" inode="4080082" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/slowkeys.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="672" device="2051" flags="0" md5="8714235e4f0faae5d914b19436596233" inode="4080667" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/busy_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="233" device="2051" flags="0" md5="99db6994613731ca7687bd700c471b2d" inode="4080084" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/menu_panel.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="6539" device="2051" flags="0" md5="a6b41293f26fdca45e9b81c54ccb0dc8" inode="4080190" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/stickyaltlatch.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="320" device="2051" flags="0" md5="77f5fd818a89aebd05f56d8bedef7d11" inode="4080673" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_spatial_mode.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="74023" device="2051" flags="0" md5="f2f8e037d14274ac04e1df45664f2103" inode="4080373" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/yelp_add_bookmark.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="8645" device="2051" flags="0" md5="562a62662f47655337c9bf341ef69f6e" inode="4080568" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/copy_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="181" device="2051" flags="0" md5="228984e885befffd71ae4eadd7ee790e" inode="4080098" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/copy_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="181" device="2051" flags="0" md5="228984e885befffd71ae4eadd7ee790e" inode="4080100" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/panel_object_popup_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2974" device="2051" flags="0" md5="35135b4653e42312c3e83f399ec6d406" inode="4080470" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/gnome_panel.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="3558" device="2051" flags="0" md5="3fafcbfa605a345c87fc4dec2f82f89a" inode="4080130" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/show_desktop_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="2320" device="2051" flags="0" md5="d334534760b6b1c7bc2615f6fa514477" inode="4080518" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/gosoverview.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="45420" device="2051" flags="0" md5="c6fbdd49b614fa8e105d268d711a2d2d" inode="4080037" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/normal_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="305" device="2051" flags="0" md5="47960823c1883b50400d4fb7be857c72" inode="4080429" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_spatial_mode.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="74023" device="2051" flags="0" md5="f2f8e037d14274ac04e1df45664f2103" inode="4080372" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/goseditmainmenu.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="8281" device="2051" flags="0" md5="9cc25c520324768ee5fa70b8b967420c" inode="4080055" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/stickyshiftlock.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="508" device="2051" flags="0" md5="bae566b7fe0b61c44ecae952880e0db3" inode="4080688" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="7777" device="2051" flags="0" md5="24a8df13cff91ef8bac8d24cd299dfe0" inode="4080246" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/gosoverview.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="43246" device="2051" flags="0" md5="fe212e247187fc2e2e2a82aafabe8e78" inode="4080047" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/yelp_preferences.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="16781" device="2051" flags="0" md5="b8beb6c866957938b5e39bc7f72611ec" inode="4080586" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/omf/user-guide/user-guide-pt_BR.omf" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="1558" device="2051" flags="0" md5="8545c976ecc30d915937f34bb04a4ebe" inode="4080606" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/busy_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="233" device="2051" flags="0" md5="99db6994613731ca7687bd700c471b2d" inode="4080086" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_browser_mode.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="56931" device="2051" flags="0" md5="44b92e32cdc342cd5624b1be5626386d" inode="4080221" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/com_file_manager_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="5352" device="2051" flags="0" md5="806597a020ec5a27615fd7330425047f" inode="4080088" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/user-guide.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="12276" device="2051" flags="0" md5="e73bd5d50738ea16acd9afb29e007137" inode="4079986" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/gosnautilus.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="210694" device="2051" flags="0" md5="005075ae95fdcdd2bc7d58ae527e888a" inode="4080046" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_spatial_list_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="50568" device="2051" flags="0" md5="99693c429ea6f6889793a85b0c8fb099" inode="4080366" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/es/figures/titlebar_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="3144" device="2051" flags="0" md5="b3624c3e2eeb934a16ff5689c8163f44" inode="4080529" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_computer_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="3235" device="2051" flags="0" md5="b6ba701515f5e9862aa30f0230745644" inode="4080232" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_refine_search.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="12837" device="2051" flags="0" md5="c3d58f408fd7ec2f6965a0f06e05c43e" inode="4080292" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_link_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="974" device="2051" flags="0" md5="3f0fd31faeaee25ae5c272219ae84d80" inode="4080260" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/move_panel_object_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="225" device="2051" flags="0" md5="e4244fb77b0df2b0c451328dce6fa175" inode="4080198" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/panel_object_popup_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2974" device="2051" flags="0" md5="35135b4653e42312c3e83f399ec6d406" inode="4080466" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/gosbasic.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="41076" device="2051" flags="0" md5="6398d9a85ff56a49994235da0a90a5be" inode="4080033" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="7777" device="2051" flags="0" md5="24a8df13cff91ef8bac8d24cd299dfe0" inode="4080242" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/not_available_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="161" device="2051" flags="0" md5="19601aaf360da25b8a0d1d18b45ed99e" inode="4080437" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_starthere_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="4511" device="2051" flags="0" md5="ee62efa332bc6450f92cabf3be245a9a" inode="4080389" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_spatial_icon_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="45566" device="2051" flags="0" md5="c2dd3a38476c26a924c2673c6bb6de93" inode="4080358" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/titlebar_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="3144" device="2051" flags="0" md5="b3624c3e2eeb934a16ff5689c8163f44" inode="4080532" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/ibeam_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="197" device="2051" flags="0" md5="77aa93e74d640173c96801747bf564d1" inode="4080146" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/screenshot_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2866" device="2051" flags="0" md5="87de8a33a8e6058c0ba95b7f8c75fc5a" inode="4080498" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_search_bar.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3992" device="2051" flags="0" md5="60a9a159dee2d7ad5c035ed794845798" inode="4080342" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/titlebar_anno_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="6004" device="2051" flags="0" md5="32f7de38d309ac7c18359e7ef9dcc0f2" inode="4080524" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_noread_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1008" device="2051" flags="0" md5="e54419d1a042a072d0a56effcc13278a" inode="4080270" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_sampleemblem3_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="1944" device="2051" flags="0" md5="5f63009887a3f3abc5fc251f1fca9688" inode="4080312" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/logout_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="2278" device="2051" flags="0" md5="b695adb45b2eaed0d80203635a70a5bb" inode="4080168" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/move_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="194" device="2051" flags="0" md5="1a4e4a188a0132fc783c465d42c52426" inode="4080204" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/ask_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="235" device="2051" flags="0" md5="bd23edcf2659006110ce30a14f0abb35" inode="4080070" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/yelp_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="41402" device="2051" flags="0" md5="c7138987ae131fe2c57846a281245d31" inode="4080596" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/gosoverview.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="43011" device="2051" flags="0" md5="bb35dc1ade336d3b422cc80026b01b44" inode="4080017" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/gosbasic.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="46643" device="2051" flags="0" md5="52e063c2e119d44c480a722af3a5c7de" inode="4079993" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_button_bar.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="7712" device="2051" flags="0" md5="447c19259a84de017f4431ea205bed03" inode="4080226" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/nautilus_restore_saved_search.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="113179" device="2051" flags="0" md5="1b7dbb7d82639abe4d9f8cc75bc2c80f" inode="4080421" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/gosnautilus.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="197521" device="2051" flags="0" md5="2d42abf261b57def760872a5e32aca90" inode="4080016" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/menu_panel.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="6539" device="2051" flags="0" md5="a6b41293f26fdca45e9b81c54ccb0dc8" inode="4080184" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="4096" device="2051" flags="0" md5="" inode="4079973" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_spatial_list_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="50568" device="2051" flags="0" md5="99693c429ea6f6889793a85b0c8fb099" inode="4080364" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_go_to_location.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="4094" device="2051" flags="0" md5="f5731ef77db819a54be69cab8806529a" inode="4080248" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/nautilus_restore_saved_search.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="113179" device="2051" flags="0" md5="1b7dbb7d82639abe4d9f8cc75bc2c80f" inode="4080416" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/gosbasic.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="38963" device="2051" flags="0" md5="593de31a7d6ac865719cf9e26fef999c" inode="4080053" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/gedit_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="19819" device="2051" flags="0" md5="dae728f1901939647a3669cb4eb52cb4" inode="4080124" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_go_to_location.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="4094" device="2051" flags="0" md5="f5731ef77db819a54be69cab8806529a" inode="4080250" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/show_desktop_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="2320" device="2051" flags="0" md5="d334534760b6b1c7bc2615f6fa514477" inode="4080512" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/force_quit.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="1255" device="2051" flags="0" md5="a59d7a99b4a6ed57873f4bc4c4398cbb" inode="4080104" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/gosfeedback.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="5340" device="2051" flags="0" md5="50518d8ac77384f0dac2896a73e22863" inode="4080061" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/searchtool_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2634" device="2051" flags="0" md5="e6210d7a387eccba73a76c215f078611" inode="4080504" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/gosstartsession.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="14801" device="2051" flags="0" md5="1f008fa91160125353e9df88a61cdb98" inode="4080059" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/open_drawer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="8054" device="2051" flags="0" md5="48758235f704d288f6b6ef5f135dd61b" inode="4080452" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/ask_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="235" device="2051" flags="0" md5="bd23edcf2659006110ce30a14f0abb35" inode="4080076" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_trash_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3466" device="2051" flags="0" md5="828874302ebc9332260361a0e2ac83a5" inode="4080398" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/logout_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="2278" device="2051" flags="0" md5="b695adb45b2eaed0d80203635a70a5bb" inode="4080174" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_computer_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="3235" device="2051" flags="0" md5="b6ba701515f5e9862aa30f0230745644" inode="4080234" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/ibeam_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="197" device="2051" flags="0" md5="77aa93e74d640173c96801747bf564d1" inode="4080144" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_starthere_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="4511" device="2051" flags="0" md5="ee62efa332bc6450f92cabf3be245a9a" inode="4080386" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_sampleemblem_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="4376" device="2051" flags="0" md5="109056cd83393c232751c95803c09150" inode="4080324" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_samplesymlink_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3889" device="2051" flags="0" md5="a56b9913c84da5b1407ad8b9618a41ff" inode="4080328" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/typical_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="6470" device="2051" flags="0" md5="8e55f5be14a2e5d22a12dcc4463ba06e" inode="4080536" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_refine_search.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="12837" device="2051" flags="0" md5="c3d58f408fd7ec2f6965a0f06e05c43e" inode="4080293" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/stickyaltlock.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="346" device="2051" flags="0" md5="23cbf9498b55526e2dc0e80b2d409628" inode="4080676" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/screenshot_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2866" device="2051" flags="0" md5="87de8a33a8e6058c0ba95b7f8c75fc5a" inode="4080500" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/gospanel.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="79722" device="2051" flags="0" md5="a3d39f3e4eeee1b55505eff6d0f8ec2b" inode="4080058" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/typical_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="6470" device="2051" flags="0" md5="8e55f5be14a2e5d22a12dcc4463ba06e" inode="4080542" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/menu_bar_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="2523" device="2051" flags="0" md5="dd0eee59732d5d03d0f90299ef9fa1bd" inode="4080178" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/system-admin-guide/es" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="4096" device="2051" flags="0" md5="" inode="4080711" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_sampleemblem2_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="2209" device="2051" flags="0" md5="1fda0a7e76eb9dd57911acfaa89f267e" inode="4080306" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/gosfeedback.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="5393" device="2051" flags="0" md5="32222327b8308974b9d7c785bbca3cd5" inode="4080041" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/gedit_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="19819" device="2051" flags="0" md5="dae728f1901939647a3669cb4eb52cb4" inode="4080125" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/link_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="292" device="2051" flags="0" md5="8fb4e2d2fcaea8b59a653a3d8fc85b5a" inode="4080154" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/workspace_switcher_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="509" device="2051" flags="0" md5="9a42c99bb7ad5f288f8177966d12289c" inode="4080562" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/glossary.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="10722" device="2051" flags="0" md5="84b1be070b37ef1a6926ab7b223f5614" inode="4080052" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/com_file_manager_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="5352" device="2051" flags="0" md5="806597a020ec5a27615fd7330425047f" inode="4080092" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/titlebar_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="3144" device="2051" flags="0" md5="b3624c3e2eeb934a16ff5689c8163f44" inode="4080530" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_browser_mode.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="56931" device="2051" flags="0" md5="44b92e32cdc342cd5624b1be5626386d" inode="4080216" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_search_bar.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3992" device="2051" flags="0" md5="60a9a159dee2d7ad5c035ed794845798" inode="4080340" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/show_desktop_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="2320" device="2051" flags="0" md5="d334534760b6b1c7bc2615f6fa514477" inode="4080516" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_button_bar.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="7712" device="2051" flags="0" md5="447c19259a84de017f4431ea205bed03" inode="4080224" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/typical_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="6470" device="2051" flags="0" md5="8e55f5be14a2e5d22a12dcc4463ba06e" inode="4080538" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/resize_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="205" device="2051" flags="0" md5="43e8186584e1879ba078caedf0a9f33f" inode="4080478" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_search_results.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="41790" device="2051" flags="0" md5="cdb07b97b638c6157d40d57373fcc5d4" inode="4080348" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_link_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="974" device="2051" flags="0" md5="3f0fd31faeaee25ae5c272219ae84d80" inode="4080256" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/typical_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="6470" device="2051" flags="0" md5="8e55f5be14a2e5d22a12dcc4463ba06e" inode="4080540" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/gostools.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="36563" device="2051" flags="0" md5="c981da55df5599e03852ec36e3698287" inode="4080020" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/logout_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="2278" device="2051" flags="0" md5="b695adb45b2eaed0d80203635a70a5bb" inode="4080172" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/window_list_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="2989" device="2051" flags="0" md5="6a903b5e02d1d7dd736c825b25a3f429" inode="4080544" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/user-guide.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="12204" device="2051" flags="0" md5="c04420fc860e28e69ccff00efeea8f10" inode="4079990" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/check_box.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1092" device="2051" flags="0" md5="4ee0fe6be90e8084499476dbe7d42eca" inode="4080637" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/gosfeedback.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="5680" device="2051" flags="0" md5="c225afcb7a00194680f33ad1ebad8310" inode="4080021" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/run_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2163" device="2051" flags="0" md5="c2b6a8fa1735f34172fcd255091de1d4" inode="4080486" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_sampleemblem3_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="1944" device="2051" flags="0" md5="5f63009887a3f3abc5fc251f1fca9688" inode="4080317" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_trash_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3466" device="2051" flags="0" md5="828874302ebc9332260361a0e2ac83a5" inode="4080392" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/searchtool_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2634" device="2051" flags="0" md5="e6210d7a387eccba73a76c215f078611" inode="4080506" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/ibeam_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="197" device="2051" flags="0" md5="77aa93e74d640173c96801747bf564d1" inode="4080149" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/titlebar_anno_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="6004" device="2051" flags="0" md5="32f7de38d309ac7c18359e7ef9dcc0f2" inode="4080525" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_nowrite_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1068" device="2051" flags="0" md5="06a5b7050d82e38d2f54048a1f698092" inode="4080280" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_trash_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3466" device="2051" flags="0" md5="828874302ebc9332260361a0e2ac83a5" inode="4080397" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/yelp_edit_bookmarks.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="16073" device="2051" flags="0" md5="6fb478c10bb9df68dc8d82f3ed4ac89b" inode="4080578" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/openwindows_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="3842" device="2051" flags="0" md5="ceea4df4bf13d1ec8da9bce679bfc1c8" inode="4080461" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_search_results.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="41790" device="2051" flags="0" md5="cdb07b97b638c6157d40d57373fcc5d4" inode="4080344" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_samplesymlink_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3889" device="2051" flags="0" md5="a56b9913c84da5b1407ad8b9618a41ff" inode="4080330" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/user-guide.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="14142" device="2051" flags="0" md5="664c4ed36709451d5df07968ea797c12" inode="4079991" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/searchtool_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="2634" device="2051" flags="0" md5="e6210d7a387eccba73a76c215f078611" inode="4080509" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_button_bar.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="7712" device="2051" flags="0" md5="447c19259a84de017f4431ea205bed03" inode="4080228" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/yelp_edit_bookmarks.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="16073" device="2051" flags="0" md5="6fb478c10bb9df68dc8d82f3ed4ac89b" inode="4080580" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/window_list_group_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="4455" device="2051" flags="0" md5="6b703d3f2da3c6206d433f554ac11726" inode="4080552" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_zoom_in_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="313" device="2051" flags="0" md5="fdd5dadc0daa1dc7ed3a1455676482e9" inode="4080402" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/show_desktop_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="2320" device="2051" flags="0" md5="d334534760b6b1c7bc2615f6fa514477" inode="4080517" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/yelp_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="41402" device="2051" flags="0" md5="c7138987ae131fe2c57846a281245d31" inode="4080597" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/yelp_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="41402" device="2051" flags="0" md5="c7138987ae131fe2c57846a281245d31" inode="4080592" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_search_results.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="41790" device="2051" flags="0" md5="cdb07b97b638c6157d40d57373fcc5d4" inode="4080346" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/link_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="292" device="2051" flags="0" md5="8fb4e2d2fcaea8b59a653a3d8fc85b5a" inode="4080157" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_zoom_in_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="313" device="2051" flags="0" md5="fdd5dadc0daa1dc7ed3a1455676482e9" inode="4080400" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/goseditmainmenu.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="8491" device="2051" flags="0" md5="00668c04ef6022afae69a0b87a502d8b" inode="4080035" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_sampleemblem1_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="886" device="2051" flags="0" md5="c47a771208c38c0529d254ffb12b13b0" inode="4080302" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/dropdown_combination_box.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1146" device="2051" flags="0" md5="c28106adee3335e7c4c7daeaa0469c59" inode="4080640" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_spatial_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="33054" device="2051" flags="0" md5="08673c38f4b4327f94f298c73b0d270b" inode="4080376" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/yelp_preferences.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="16781" device="2051" flags="0" md5="b8beb6c866957938b5e39bc7f72611ec" inode="4080589" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/omf/user-guide/user-guide-bg.omf" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="1490" device="2051" flags="0" md5="e309d10238797b138d05921a826d755b" inode="4080602" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/ibeam_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="197" device="2051" flags="0" md5="77aa93e74d640173c96801747bf564d1" inode="4080148" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/ask_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="235" device="2051" flags="0" md5="bd23edcf2659006110ce30a14f0abb35" inode="4080074" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/nautilus_restore_saved_search.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="113179" device="2051" flags="0" md5="1b7dbb7d82639abe4d9f8cc75bc2c80f" inode="4080422" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/goscustdesk.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="154230" device="2051" flags="0" md5="26e4c1ad7d73bef3b5607840244a97f7" inode="4080014" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/it/figures/titlebar_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="3144" device="2051" flags="0" md5="b3624c3e2eeb934a16ff5689c8163f44" inode="4080531" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/resize_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="205" device="2051" flags="0" md5="43e8186584e1879ba078caedf0a9f33f" inode="4080472" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="4096" device="2051" flags="0" md5="" inode="4080626" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_sampleemblem1_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="886" device="2051" flags="0" md5="c47a771208c38c0529d254ffb12b13b0" inode="4080296" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/link_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="292" device="2051" flags="0" md5="8fb4e2d2fcaea8b59a653a3d8fc85b5a" inode="4080158" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_spatial_icon_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="45566" device="2051" flags="0" md5="c2dd3a38476c26a924c2673c6bb6de93" inode="4080352" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/move_panel_object_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="225" device="2051" flags="0" md5="e4244fb77b0df2b0c451328dce6fa175" inode="4080196" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/resize_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="205" device="2051" flags="0" md5="43e8186584e1879ba078caedf0a9f33f" inode="4080477" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_nowrite_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1068" device="2051" flags="0" md5="06a5b7050d82e38d2f54048a1f698092" inode="4080286" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/link_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="292" device="2051" flags="0" md5="8fb4e2d2fcaea8b59a653a3d8fc85b5a" inode="4080152" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_sampleemblem2_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="2209" device="2051" flags="0" md5="1fda0a7e76eb9dd57911acfaa89f267e" inode="4080308" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_search_results.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="41790" device="2051" flags="0" md5="cdb07b97b638c6157d40d57373fcc5d4" inode="4080350" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_sampleemblem3_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="1944" device="2051" flags="0" md5="5f63009887a3f3abc5fc251f1fca9688" inode="4080316" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_sampleemblem_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="4376" device="2051" flags="0" md5="109056cd83393c232751c95803c09150" inode="4080320" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="4096" device="2051" flags="0" md5="" inode="4080611" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_link_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="974" device="2051" flags="0" md5="3f0fd31faeaee25ae5c272219ae84d80" inode="4080262" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/yelp_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="41402" device="2051" flags="0" md5="c7138987ae131fe2c57846a281245d31" inode="4080598" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_search_bar.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3992" device="2051" flags="0" md5="60a9a159dee2d7ad5c035ed794845798" inode="4080341" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/searchtool_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="2634" device="2051" flags="0" md5="e6210d7a387eccba73a76c215f078611" inode="4080510" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/window_list_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="2989" device="2051" flags="0" md5="6a903b5e02d1d7dd736c825b25a3f429" inode="4080549" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_trash_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3466" device="2051" flags="0" md5="828874302ebc9332260361a0e2ac83a5" inode="4080396" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/gosstartsession.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="14801" device="2051" flags="0" md5="1f008fa91160125353e9df88a61cdb98" inode="4079999" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/window_list_group_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="4455" device="2051" flags="0" md5="6b703d3f2da3c6206d433f554ac11726" inode="4080557" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_nowrite_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1068" device="2051" flags="0" md5="06a5b7050d82e38d2f54048a1f698092" inode="4080285" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/yelp_add_bookmark.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="8645" device="2051" flags="0" md5="562a62662f47655337c9bf341ef69f6e" inode="4080572" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/sample_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="6294" device="2051" flags="0" md5="84228717d2f8b951a5e2b06725fe0fd6" inode="4080494" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/typical_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="6470" device="2051" flags="0" md5="8e55f5be14a2e5d22a12dcc4463ba06e" inode="4080541" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/workspace_switcher_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="509" device="2051" flags="0" md5="9a42c99bb7ad5f288f8177966d12289c" inode="4080560" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="7777" device="2051" flags="0" md5="24a8df13cff91ef8bac8d24cd299dfe0" inode="4080240" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/gospanel.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="80340" device="2051" flags="0" md5="17d6906a03a21f9ddcfc4f32bd7b7401" inode="4080038" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/menu_bar_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="2523" device="2051" flags="0" md5="dd0eee59732d5d03d0f90299ef9fa1bd" inode="4080180" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/user-guide.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="12024" device="2051" flags="0" md5="805239f7b5f1c51e2a7199d0005291a9" inode="4079988" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/force_quit.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="1255" device="2051" flags="0" md5="a59d7a99b4a6ed57873f4bc4c4398cbb" inode="4080110" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_spatial_mode.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="74023" device="2051" flags="0" md5="f2f8e037d14274ac04e1df45664f2103" inode="4080374" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/yelp_preferences.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="16781" device="2051" flags="0" md5="b8beb6c866957938b5e39bc7f72611ec" inode="4080584" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_spatial_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="33054" device="2051" flags="0" md5="08673c38f4b4327f94f298c73b0d270b" inode="4080380" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/notification_area_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="945" device="2051" flags="0" md5="973b76c720b51d9495208ab2d62ecdec" inode="4080442" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/move_object_push.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1257" device="2051" flags="0" md5="810dfbd14b4259ce732963a0b72b1ed9" inode="4080658" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/openwindows_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="3842" device="2051" flags="0" md5="ceea4df4bf13d1ec8da9bce679bfc1c8" inode="4080462" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_zoom_in_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="313" device="2051" flags="0" md5="fdd5dadc0daa1dc7ed3a1455676482e9" inode="4080405" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_spatial_mode.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="74023" device="2051" flags="0" md5="f2f8e037d14274ac04e1df45664f2103" inode="4080368" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/yelp_add_bookmark.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="8645" device="2051" flags="0" md5="562a62662f47655337c9bf341ef69f6e" inode="4080573" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/normal_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="305" device="2051" flags="0" md5="47960823c1883b50400d4fb7be857c72" inode="4080426" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_computer_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="3235" device="2051" flags="0" md5="b6ba701515f5e9862aa30f0230745644" inode="4080238" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/window_list_group_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="4455" device="2051" flags="0" md5="6b703d3f2da3c6206d433f554ac11726" inode="4080554" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/gosstartsession.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="15166" device="2051" flags="0" md5="b4659f2d9cda90c3e27a8b1a82e87809" inode="4080039" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/lockscreen_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="3137" device="2051" flags="0" md5="75daebe4720b40eeaedfe8f4874bc8c0" inode="4080164" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_search_results.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="41790" device="2051" flags="0" md5="cdb07b97b638c6157d40d57373fcc5d4" inode="4080349" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/menu_panel.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="6539" device="2051" flags="0" md5="a6b41293f26fdca45e9b81c54ccb0dc8" inode="4080188" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/omf/system-admin-guide/system-admin-guide-es.omf" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1058" device="2051" flags="0" md5="367c6b84561aa7ca1ad48e72b0687f5f" inode="4080732" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/goseditmainmenu.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="9162" device="2051" flags="0" md5="ca482a75889bf231b7d89d534d30b616" inode="4080015" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/user-guide.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="10625" device="2051" flags="0" md5="cc9498619b07a16b5c9e4d017c216124" inode="4079992" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/window_list_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="2989" device="2051" flags="0" md5="6a903b5e02d1d7dd736c825b25a3f429" inode="4080546" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/ask_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="235" device="2051" flags="0" md5="bd23edcf2659006110ce30a14f0abb35" inode="4080078" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/openwindows_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="3842" device="2051" flags="0" md5="ceea4df4bf13d1ec8da9bce679bfc1c8" inode="4080458" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/hyperlink_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="248" device="2051" flags="0" md5="41030ede726c6f3d9f1bd1f05456f3f6" inode="4080138" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/goscustdesk.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="143654" device="2051" flags="0" md5="92448a2f22f02ea0d8939bdc63aa934b" inode="4080054" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/glossary.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="8507" device="2051" flags="0" md5="80bd0d230592849068365e603a3c14ff" inode="4080022" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_samplesymlink_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3889" device="2051" flags="0" md5="a56b9913c84da5b1407ad8b9618a41ff" inode="4080332" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/goscustdesk.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="167194" device="2051" flags="0" md5="e0cb2fea0e70fcc32652da71300c3748" inode="4080044" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_spatial_list_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="50568" device="2051" flags="0" md5="99693c429ea6f6889793a85b0c8fb099" inode="4080360" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/gostools.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="34896" device="2051" flags="0" md5="e3bf3508059bebe9fa049288ff206147" inode="4080040" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_starthere_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="4511" device="2051" flags="0" md5="ee62efa332bc6450f92cabf3be245a9a" inode="4080384" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/link_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="292" device="2051" flags="0" md5="8fb4e2d2fcaea8b59a653a3d8fc85b5a" inode="4080156" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/move_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="194" device="2051" flags="0" md5="1a4e4a188a0132fc783c465d42c52426" inode="4080205" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_starthere_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="4511" device="2051" flags="0" md5="ee62efa332bc6450f92cabf3be245a9a" inode="4080388" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/busy_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="233" device="2051" flags="0" md5="99db6994613731ca7687bd700c471b2d" inode="4080080" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="4096" device="2051" flags="0" md5="" inode="4080075" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/system-admin-guide/es/system-admin-guide.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="240873" device="2051" flags="0" md5="c6cd6daa8dd450c1e8dee5c6ab957b8b" inode="4080728" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/move_object_before.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1776" device="2051" flags="0" md5="db85522123cc18d15a87b71ed2856fd3" inode="4080652" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/tabbed_section.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="8856" device="2051" flags="0" md5="c64b36d9e27b0cd69caaff98c24c1c4d" inode="4080697" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_go_to_location.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="4094" device="2051" flags="0" md5="f5731ef77db819a54be69cab8806529a" inode="4080252" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/gostools.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="36500" device="2051" flags="0" md5="c73b8cf98bdfcc1733ddcd5196f01e7f" inode="4080000" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_browser_mode.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="56931" device="2051" flags="0" md5="44b92e32cdc342cd5624b1be5626386d" inode="4080222" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/force_quit.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="1255" device="2051" flags="0" md5="a59d7a99b4a6ed57873f4bc4c4398cbb" inode="4080108" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/stickywindowlatch.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="405" device="2051" flags="0" md5="cdfb5e24d83b7264647136c9c8efef08" inode="4080691" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/move_object_jump.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1773" device="2051" flags="0" md5="424967c951eb27a96ebce26711e62cc2" inode="4080655" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/not_available_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="161" device="2051" flags="0" md5="19601aaf360da25b8a0d1d18b45ed99e" inode="4080432" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_sampleemblem1_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="886" device="2051" flags="0" md5="c47a771208c38c0529d254ffb12b13b0" inode="4080301" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/yelp_add_bookmark.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="8645" device="2051" flags="0" md5="562a62662f47655337c9bf341ef69f6e" inode="4080574" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/not_available_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="161" device="2051" flags="0" md5="19601aaf360da25b8a0d1d18b45ed99e" inode="4080436" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_sampleemblem_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="4376" device="2051" flags="0" md5="109056cd83393c232751c95803c09150" inode="4080322" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/gedit_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="19819" device="2051" flags="0" md5="dae728f1901939647a3669cb4eb52cb4" inode="4080126" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_nowrite_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1068" device="2051" flags="0" md5="06a5b7050d82e38d2f54048a1f698092" inode="4080284" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/tree.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1697" device="2051" flags="0" md5="0bb1b6f07b3fab52dddfa4bab9f1e5d4" inode="4080703" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/goscustdesk.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="143750" device="2051" flags="0" md5="a74e176c098789e8f99b9169c969db8c" inode="4079994" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/run_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2163" device="2051" flags="0" md5="c2b6a8fa1735f34172fcd255091de1d4" inode="4080485" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/sample_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="6294" device="2051" flags="0" md5="84228717d2f8b951a5e2b06725fe0fd6" inode="4080492" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_spatial_icon_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="45566" device="2051" flags="0" md5="c2dd3a38476c26a924c2673c6bb6de93" inode="4080354" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/move_panel_object_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="225" device="2051" flags="0" md5="e4244fb77b0df2b0c451328dce6fa175" inode="4080192" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/screenshot_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2866" device="2051" flags="0" md5="87de8a33a8e6058c0ba95b7f8c75fc5a" inode="4080501" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/radio_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1509" device="2051" flags="0" md5="c0ba3100eedc9b36635032e1432bda0b" inode="4080661" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/titlebar_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="3144" device="2051" flags="0" md5="b3624c3e2eeb934a16ff5689c8163f44" inode="4080534" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_sampleemblem1_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="886" device="2051" flags="0" md5="c47a771208c38c0529d254ffb12b13b0" inode="4080300" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/move_panel_object_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="225" device="2051" flags="0" md5="e4244fb77b0df2b0c451328dce6fa175" inode="4080197" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/four_hide_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="1193" device="2051" flags="0" md5="386e1e73333296fc0da22cef5ff7fc25" inode="4080114" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/normal_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="305" device="2051" flags="0" md5="47960823c1883b50400d4fb7be857c72" inode="4080424" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/four_hide_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="1193" device="2051" flags="0" md5="386e1e73333296fc0da22cef5ff7fc25" inode="4080112" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/force_quit.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="1255" device="2051" flags="0" md5="a59d7a99b4a6ed57873f4bc4c4398cbb" inode="4080106" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/notification_area_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="945" device="2051" flags="0" md5="973b76c720b51d9495208ab2d62ecdec" inode="4080440" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/not_available_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="161" device="2051" flags="0" md5="19601aaf360da25b8a0d1d18b45ed99e" inode="4080434" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/gosoverview.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="43001" device="2051" flags="0" md5="f5218d20bdbb8c9cd5458bc187b3f476" inode="4079997" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_button_bar.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="7712" device="2051" flags="0" md5="447c19259a84de017f4431ea205bed03" inode="4080230" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_sampleemblem3_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="1944" device="2051" flags="0" md5="5f63009887a3f3abc5fc251f1fca9688" inode="4080318" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_zoom_out_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="228" device="2051" flags="0" md5="d0377c2da0f43df1f8ec6bf9c04eeeaf" inode="4080413" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_refine_search.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="12837" device="2051" flags="0" md5="c3d58f408fd7ec2f6965a0f06e05c43e" inode="4080290" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_starthere_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="4511" device="2051" flags="0" md5="ee62efa332bc6450f92cabf3be245a9a" inode="4080390" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_samplesymlink_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3889" device="2051" flags="0" md5="a56b9913c84da5b1407ad8b9618a41ff" inode="4080333" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/figures/titlebar_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="3144" device="2051" flags="0" md5="b3624c3e2eeb934a16ff5689c8163f44" inode="4080527" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/omf/user-guide/user-guide-zh_CN.omf" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="1487" device="2051" flags="0" md5="752f36e64bcaa696404dac36658decf6" inode="4080608" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_zoom_out_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="228" device="2051" flags="0" md5="d0377c2da0f43df1f8ec6bf9c04eeeaf" inode="4080408" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/gospanel.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="96512" device="2051" flags="0" md5="534f47486bf31c9f996d482f998327a7" inode="4080048" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/gosnautilus.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="204375" device="2051" flags="0" md5="afd08d0eb30695f325cbe6cec05f8f3a" inode="4080036" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_zoom_out_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="228" device="2051" flags="0" md5="d0377c2da0f43df1f8ec6bf9c04eeeaf" inode="4080412" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/menu_bar_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="2523" device="2051" flags="0" md5="dd0eee59732d5d03d0f90299ef9fa1bd" inode="4080176" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/copy_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="181" device="2051" flags="0" md5="228984e885befffd71ae4eadd7ee790e" inode="4080096" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="4096" device="2051" flags="0" md5="" inode="4079972" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_normal_size_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1206" device="2051" flags="0" md5="7f2457eb51218cdfcd08a6e1e8aa9903" inode="4080278" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="4096" device="2051" flags="0" md5="" inode="4080069" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/normal_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="305" device="2051" flags="0" md5="47960823c1883b50400d4fb7be857c72" inode="4080430" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/gostools.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="43710" device="2051" flags="0" md5="0f67029a89300df675078a1badd61500" inode="4080050" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/stickywindowlock.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="460" device="2051" flags="0" md5="8fe5f82535f7aeb54dacc2d05b777299" inode="4080694" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/gnome_panel.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="3558" device="2051" flags="0" md5="3fafcbfa605a345c87fc4dec2f82f89a" inode="4080133" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_spatial_list_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="50568" device="2051" flags="0" md5="99693c429ea6f6889793a85b0c8fb099" inode="4080362" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/stickyshiftlatch.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="470" device="2051" flags="0" md5="c88cab16d9c86d9ee102fe04d8278d6b" inode="4080685" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/window_list_group_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="4455" device="2051" flags="0" md5="6b703d3f2da3c6206d433f554ac11726" inode="4080556" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_spatial_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="33054" device="2051" flags="0" md5="08673c38f4b4327f94f298c73b0d270b" inode="4080381" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/workspace_switcher_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="509" device="2051" flags="0" md5="9a42c99bb7ad5f288f8177966d12289c" inode="4080564" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_sampleemblem_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="4376" device="2051" flags="0" md5="109056cd83393c232751c95803c09150" inode="4080326" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/copy_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="181" device="2051" flags="0" md5="228984e885befffd71ae4eadd7ee790e" inode="4080102" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/four_hide_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="1193" device="2051" flags="0" md5="386e1e73333296fc0da22cef5ff7fc25" inode="4080118" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="4096" device="2051" flags="0" md5="" inode="4079969" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_trash_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3466" device="2051" flags="0" md5="828874302ebc9332260361a0e2ac83a5" inode="4080394" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/titlebar_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="3144" device="2051" flags="0" md5="b3624c3e2eeb934a16ff5689c8163f44" inode="4080528" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/lockscreen_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="3137" device="2051" flags="0" md5="75daebe4720b40eeaedfe8f4874bc8c0" inode="4080165" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/mousekeys.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="948" device="2051" flags="0" md5="2d6989b948f744f949c344b0cf96136b" inode="4080646" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_search_bar.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3992" device="2051" flags="0" md5="60a9a159dee2d7ad5c035ed794845798" inode="4080338" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/logout_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="2278" device="2051" flags="0" md5="b695adb45b2eaed0d80203635a70a5bb" inode="4080173" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_spatial_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="33054" device="2051" flags="0" md5="08673c38f4b4327f94f298c73b0d270b" inode="4080382" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/text_box.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1052" device="2051" flags="0" md5="7f69292d1ab4162d95791e37355244b4" inode="4080700" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/nautilus_restore_saved_search.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="113179" device="2051" flags="0" md5="1b7dbb7d82639abe4d9f8cc75bc2c80f" inode="4080418" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/yelp_edit_bookmarks.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="16073" device="2051" flags="0" md5="6fb478c10bb9df68dc8d82f3ed4ac89b" inode="4080581" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/window_list_group_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="4455" device="2051" flags="0" md5="6b703d3f2da3c6206d433f554ac11726" inode="4080558" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_browser_mode.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="56931" device="2051" flags="0" md5="44b92e32cdc342cd5624b1be5626386d" inode="4080218" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/four_hide_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="1193" device="2051" flags="0" md5="386e1e73333296fc0da22cef5ff7fc25" inode="4080116" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/titlebar_anno_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="6004" device="2051" flags="0" md5="32f7de38d309ac7c18359e7ef9dcc0f2" inode="4080520" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="7777" device="2051" flags="0" md5="24a8df13cff91ef8bac8d24cd299dfe0" inode="4080245" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_normal_size_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1206" device="2051" flags="0" md5="7f2457eb51218cdfcd08a6e1e8aa9903" inode="4080276" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_search_bar.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3992" device="2051" flags="0" md5="60a9a159dee2d7ad5c035ed794845798" inode="4080336" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/open_drawer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="8054" device="2051" flags="0" md5="48758235f704d288f6b6ef5f135dd61b" inode="4080448" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/notification_area_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="945" device="2051" flags="0" md5="973b76c720b51d9495208ab2d62ecdec" inode="4080445" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/resize_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="205" device="2051" flags="0" md5="43e8186584e1879ba078caedf0a9f33f" inode="4080474" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/spin_box.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1199" device="2051" flags="0" md5="a413f3913e3456411482c3663a1c3248" inode="4080670" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/openwindows_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="3842" device="2051" flags="0" md5="ceea4df4bf13d1ec8da9bce679bfc1c8" inode="4080456" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/C/gosfeedback.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="5282" device="2051" flags="0" md5="fabb0f6ff2ad9d61f0ae04caf2cdcbd1" inode="4079983" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/gosoverview.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="42995" device="2051" flags="0" md5="5652f440aa42b58455985c3426595718" inode="4080057" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_go_to_location.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="4094" device="2051" flags="0" md5="f5731ef77db819a54be69cab8806529a" inode="4080254" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/ibeam_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="197" device="2051" flags="0" md5="77aa93e74d640173c96801747bf564d1" inode="4080150" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_button_bar.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="7712" device="2051" flags="0" md5="447c19259a84de017f4431ea205bed03" inode="4080229" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_spatial_icon_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="45566" device="2051" flags="0" md5="c2dd3a38476c26a924c2673c6bb6de93" inode="4080357" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_sampleemblem1_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="886" device="2051" flags="0" md5="c47a771208c38c0529d254ffb12b13b0" inode="4080298" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_zoom_in_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="313" device="2051" flags="0" md5="fdd5dadc0daa1dc7ed3a1455676482e9" inode="4080406" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_samplesymlink_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="3889" device="2051" flags="0" md5="a56b9913c84da5b1407ad8b9618a41ff" inode="4080334" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/gedit_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="19819" device="2051" flags="0" md5="dae728f1901939647a3669cb4eb52cb4" inode="4080122" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/slider.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1240" device="2051" flags="0" md5="d0b6e9e5a9625576006828967a3813a9" inode="4080664" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/gosnautilus.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="196802" device="2051" flags="0" md5="a7840b7cb5965484be6a79012cdd9348" inode="4080056" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/resize_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="205" device="2051" flags="0" md5="43e8186584e1879ba078caedf0a9f33f" inode="4080476" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/gedit_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="19819" device="2051" flags="0" md5="dae728f1901939647a3669cb4eb52cb4" inode="4080120" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/four_hide_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="1193" device="2051" flags="0" md5="386e1e73333296fc0da22cef5ff7fc25" inode="4080117" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/panel_object_popup_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2974" device="2051" flags="0" md5="35135b4653e42312c3e83f399ec6d406" inode="4080464" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/gnome-access-guide.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="210188" device="2051" flags="0" md5="6cde9bd7a053d69fc6b05f496965104f" inode="4080622" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_sampleemblem3_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="1944" device="2051" flags="0" md5="5f63009887a3f3abc5fc251f1fca9688" inode="4080314" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/move_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="194" device="2051" flags="0" md5="1a4e4a188a0132fc783c465d42c52426" inode="4080200" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_noread_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1008" device="2051" flags="0" md5="e54419d1a042a072d0a56effcc13278a" inode="4080268" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/stickyctrllatch.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="414" device="2051" flags="0" md5="f85ce888003a0f875496d42a9f19c508" inode="4080679" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/glossary.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="8892" device="2051" flags="0" md5="428652d2ed52b2343c4026fbbaa5f78b" inode="4080042" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="4096" device="2051" flags="0" md5="" inode="4079967" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/stickyctrllock.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="436" device="2051" flags="0" md5="58d0972c476a9c1e9f077d343fda6ab4" inode="4080682" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/hyperlink_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="248" device="2051" flags="0" md5="41030ede726c6f3d9f1bd1f05456f3f6" inode="4080136" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_link_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="974" device="2051" flags="0" md5="3f0fd31faeaee25ae5c272219ae84d80" inode="4080261" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="7777" device="2051" flags="0" md5="24a8df13cff91ef8bac8d24cd299dfe0" inode="4080244" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/move_object_arrows.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1778" device="2051" flags="0" md5="14708f1edd48a84a861819b5fc16820b" inode="4080649" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/bouncekeys.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="557" device="2051" flags="0" md5="cff25b6e1db7bfedc2517abc34444706" inode="4080631" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/workspace_switcher_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="509" device="2051" flags="0" md5="9a42c99bb7ad5f288f8177966d12289c" inode="4080566" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/ask_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="235" device="2051" flags="0" md5="bd23edcf2659006110ce30a14f0abb35" inode="4080066" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/movewindow_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="152" device="2051" flags="0" md5="8496a1d62cbfbe5272f8f5fa6f173c4c" inode="4080208" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/com_file_manager_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="5352" device="2051" flags="0" md5="806597a020ec5a27615fd7330425047f" inode="4080094" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/copy_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="181" device="2051" flags="0" md5="228984e885befffd71ae4eadd7ee790e" inode="4080101" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_normal_size_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1206" device="2051" flags="0" md5="7f2457eb51218cdfcd08a6e1e8aa9903" inode="4080277" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/notification_area_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="945" device="2051" flags="0" md5="973b76c720b51d9495208ab2d62ecdec" inode="4080446" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/menu_bar_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="2523" device="2051" flags="0" md5="dd0eee59732d5d03d0f90299ef9fa1bd" inode="4080182" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/gospanel.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="79710" device="2051" flags="0" md5="d82f51189530b512a9f669b3b974b0df" inode="4080018" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_spatial_mode.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="74023" device="2051" flags="0" md5="f2f8e037d14274ac04e1df45664f2103" inode="4080370" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/gosstartsession.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="14818" device="2051" flags="0" md5="d5676a9b1b7d70cab32c17942770ca01" inode="4080019" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/movewindow_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="152" device="2051" flags="0" md5="8496a1d62cbfbe5272f8f5fa6f173c4c" inode="4080214" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/com_file_manager_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="5352" device="2051" flags="0" md5="806597a020ec5a27615fd7330425047f" inode="4080093" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/gosstartsession.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="20879" device="2051" flags="0" md5="8101979f432f13cbee90f4bb8fead871" inode="4080049" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_go_to_location.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="4094" device="2051" flags="0" md5="f5731ef77db819a54be69cab8806529a" inode="4080253" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_sampleemblem_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="4376" device="2051" flags="0" md5="109056cd83393c232751c95803c09150" inode="4080325" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/yelp_edit_bookmarks.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="16073" device="2051" flags="0" md5="6fb478c10bb9df68dc8d82f3ed4ac89b" inode="4080576" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_noread_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1008" device="2051" flags="0" md5="e54419d1a042a072d0a56effcc13278a" inode="4080264" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/gnome_panel.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="3558" device="2051" flags="0" md5="3fafcbfa605a345c87fc4dec2f82f89a" inode="4080134" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_link_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="974" device="2051" flags="0" md5="3f0fd31faeaee25ae5c272219ae84d80" inode="4080258" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="4096" device="2051" flags="0" md5="" inode="4080065" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/open_drawer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="8054" device="2051" flags="0" md5="48758235f704d288f6b6ef5f135dd61b" inode="4080450" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/gospanel.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="79728" device="2051" flags="0" md5="c9c762f555c40ee2be4a5e97f18c8d39" inode="4079998" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/gosfeedback.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="5312" device="2051" flags="0" md5="d8b21b39a7363dfce741413a41fa2556" inode="4080001" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/menu_panel.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="6539" device="2051" flags="0" md5="a6b41293f26fdca45e9b81c54ccb0dc8" inode="4080186" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/gosbasic.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="39952" device="2051" flags="0" md5="a50c70a9786e18ace0cab831cead9084" inode="4080013" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/normal_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="305" device="2051" flags="0" md5="47960823c1883b50400d4fb7be857c72" inode="4080428" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/gosnautilus.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="196819" device="2051" flags="0" md5="a226eda58af3bfe3faf0c5562e3ffed7" inode="4079996" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/naut_computer_launcher.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="3235" device="2051" flags="0" md5="b6ba701515f5e9862aa30f0230745644" inode="4080236" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/run_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2163" device="2051" flags="0" md5="c2b6a8fa1735f34172fcd255091de1d4" inode="4080484" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/hyperlink_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="248" device="2051" flags="0" md5="41030ede726c6f3d9f1bd1f05456f3f6" inode="4080141" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/yelp_preferences.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="16781" device="2051" flags="0" md5="b8beb6c866957938b5e39bc7f72611ec" inode="4080588" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/gosfeedback.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="6114" device="2051" flags="0" md5="85b387306b935b128975032b10785330" inode="4080051" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/screenshot_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2866" device="2051" flags="0" md5="87de8a33a8e6058c0ba95b7f8c75fc5a" inode="4080502" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/workspace_switcher_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="509" device="2051" flags="0" md5="9a42c99bb7ad5f288f8177966d12289c" inode="4080565" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/run_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2163" device="2051" flags="0" md5="c2b6a8fa1735f34172fcd255091de1d4" inode="4080482" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_sampleemblem2_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="2209" device="2051" flags="0" md5="1fda0a7e76eb9dd57911acfaa89f267e" inode="4080310" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/open_drawer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="8054" device="2051" flags="0" md5="48758235f704d288f6b6ef5f135dd61b" inode="4080454" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/naut_refine_search.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="12837" device="2051" flags="0" md5="c3d58f408fd7ec2f6965a0f06e05c43e" inode="4080288" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/naut_nowrite_emblem.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="1068" device="2051" flags="0" md5="06a5b7050d82e38d2f54048a1f698092" inode="4080282" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/show_desktop_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="2320" device="2051" flags="0" md5="d334534760b6b1c7bc2615f6fa514477" inode="4080514" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/naut_spatial_list_view.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750817" file_size="50568" device="2051" flags="0" md5="99693c429ea6f6889793a85b0c8fb099" inode="4080365" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/lockscreen_icon.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="3137" device="2051" flags="0" md5="75daebe4720b40eeaedfe8f4874bc8c0" inode="4080160" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/omf/user-guide/user-guide-fr.omf" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="1585" device="2051" flags="0" md5="e57a71b4b182c69b9529d58c41b74b91" inode="4080604" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/yelp_preferences.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="16781" device="2051" flags="0" md5="b8beb6c866957938b5e39bc7f72611ec" inode="4080590" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/naut_zoom_out_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="228" device="2051" flags="0" md5="d0377c2da0f43df1f8ec6bf9c04eeeaf" inode="4080414" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/com_file_manager_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="5352" device="2051" flags="0" md5="806597a020ec5a27615fd7330425047f" inode="4080090" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/zh_CN/figures/yelp_edit_bookmarks.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="16073" device="2051" flags="0" md5="6fb478c10bb9df68dc8d82f3ed4ac89b" inode="4080582" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/move_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="194" device="2051" flags="0" md5="1a4e4a188a0132fc783c465d42c52426" inode="4080202" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="4096" device="2051" flags="0" md5="" inode="4080073" linkto="" file_mode="16877"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/force_quit.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="1255" device="2051" flags="0" md5="a59d7a99b4a6ed57873f4bc4c4398cbb" inode="4080109" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/titlebar_anno_window.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="6004" device="2051" flags="0" md5="32f7de38d309ac7c18359e7ef9dcc0f2" inode="4080522" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/figures/screenshot_button.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="2866" device="2051" flags="0" md5="87de8a33a8e6058c0ba95b7f8c75fc5a" inode="4080496" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/busy_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750815" file_size="233" device="2051" flags="0" md5="99db6994613731ca7687bd700c471b2d" inode="4080085" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/bg/goseditmainmenu.xml" verifyflags="-1" rdev="0" groupname="root" mtime="1157750814" file_size="8281" device="2051" flags="0" md5="9cc25c520324768ee5fa70b8b967420c" inode="4079995" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/movewindow_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="152" device="2051" flags="0" md5="8496a1d62cbfbe5272f8f5fa6f173c4c" inode="4080212" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/window_list_applet.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750819" file_size="2989" device="2051" flags="0" md5="6a903b5e02d1d7dd736c825b25a3f429" inode="4080548" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/ru/figures/movewindow_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="152" device="2051" flags="0" md5="8496a1d62cbfbe5272f8f5fa6f173c4c" inode="4080213" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/pt_BR/figures/openwindows_menu.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750818" file_size="3842" device="2051" flags="0" md5="ceea4df4bf13d1ec8da9bce679bfc1c8" inode="4080460" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/gnome-access-guide/es/figures/dropdown_list_box.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750820" file_size="1271" device="2051" flags="0" md5="942d41fc508f23362d8c9c1a92988c45" inode="4080643" linkto="" file_mode="-32348"/><rhn-package-file username="root" lang="" name="/usr/share/gnome/help/user-guide/fr/figures/move_panel_object_pointer.png" verifyflags="-1" rdev="0" groupname="root" mtime="1157750816" file_size="225" device="2051" flags="0" md5="e4244fb77b0df2b0c451328dce6fa175" inode="4080194" linkto="" file_mode="-32348"/></rhn-package-files></rhn-package></rhn-packages></rhn-satellite>
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.packages_short.xml b/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.packages_short.xml
deleted file mode 100644
index 0ed6e5c..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.packages_short.xml
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><rhn-satellite generation="2" version="3.4"><rhn-packages-short><rhn-package-short name="mkisofs" package-size="609556" md5sum="12499c6be3e98d0a0624abcac6a41ac1" package-arch="i386" last-modified="1173375440" epoch="9" version="2.01" release="10" id="rhn-package-386984"/><rhn-package-short name="samba" package-size="16556646" md5sum="f28046f84ea5ac24a98cc7b6958d9b19" package-arch="i386" last-modified="1173375414" epoch="0" version="3.0.23c" release="2" id="rhn-package-386981"/><rhn-package-short name="m17n-db-telugu" package-size="14650" md5sum="e0aa989ee53868b9e730563cbcc99e5a" package-arch="noarch" last-modified="1173375423" epoch="" version="1.3.3" release="46.el5" id="rhn-package-386982"/><rhn-package-short name="gnome-user-docs" package-size="6549456" md5sum="4e7d379301407b4c79f211596b802a13" package-arch="noarch" last-modified="1173375434" epoch="" version="2.16.0" release="2.fc6" id="rhn-package-386983"/></rhn-packages-short></rhn-satellite>
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.product_names.xml b/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.product_names.xml
deleted file mode 100644
index 9b5300f..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.product_names.xml
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><rhn-satellite generation="2" version="3.4"><rhn-product-names><rhn-product-name name="Global Desktop" label="rhgd"/><rhn-product-name name="iDeveloper Studio" label="rhdevstudio"/><rhn-product-name name="Command Center" label="rhcc"/><rhn-product-name name="Command Center Scout" label="rhcc-scout"/><rhn-product-name name="Solaris" label="solaris"/><rhn-product-name name="Cluster Storage" label="cluster-storage"/><rhn-product-name name="Reporting Pack" label="pentaho-report-pack-rhx"/><rhn-product-name name="Global File System" label="gfs"/><rhn-product-name name="Supplementary" label="supplementary"/><rhn-product-name name="Cluster Suite" label="cluster"/><rhn-product-name name="Interim Updates" label="interim"/><rhn-product-name name="Virtualization" label="vt"/><rhn-product-name name="Hardware Certification" label="hts"/><rhn-product-name name="CentricCRM" label="centriccrm"/><rhn-product-name name="SugarCRM" label="sugar-open-source"/><rhn-product-name name="Enterprise 2.6" label="compiere-enterprise"/><rhn-product-name name="Enterprise Linux Desktop" label="rhel-desktop"/><rhn-product-name name="Productivity Apps" label="productivity"/><rhn-product-name name="FasTrack" label="fastrack"/><rhn-product-name name="Desktop" label="desktop"/><rhn-product-name name="Embedded Linux Developer Suite" label="elds"/><rhn-product-name name="Linux (Enterprise Edition)" label="linux-ee"/><rhn-product-name name="Advanced Server" label="enterprisedb-adv-svr"/><rhn-product-name name="Linux" label="redhat-linux"/><rhn-product-name name="Enterprise Linux" label="rhel"/><rhn-product-name name="Enterprise" label="alfresco-enterprise"/><rhn-product-name name="Network Tools" label="rhn-tools"/><rhn-product-name name="Collaboration Applications" label="collab-suite"/><rhn-product-name name="Beta Errata" label="beta-errata"/><rhn-product-name name="Directory Server" label="rhdirserv"/><rhn-product-name name="OpenFire Enterprise" label="openfire-enterprise"/><rhn-product-name name="AS" label="advanced-server"/><rhn-product-name name="Network Satellite" label="satellite"/><rhn-product-name name="Linux (Phoebe Beta)" label="linux-phoebe"/><rhn-product-name name="Desktop Multi-OS" label="vt-multi"/><rhn-product-name name="Compatibility Libraries" label="ia32supp"/><rhn-product-name name="Application Stack" label="appstk"/><rhn-product-name name="Application Server" label="appserver"/><rhn-product-name name="Developer Edition" label="de"/><rhn-product-name name="MySQL Enterprise" label="mysql-enterprise"/><rhn-product-name name="Linux Terminal Server Project" label="k12ltsp"/><rhn-product-name name="Database" label="database"/><rhn-product-name name="Network Proxy" label="proxy"/><rhn-product-name name="Certificate System" label="rhcmsys"/><rhn-product-name name="JasperServer Pro" label="jasperserverpro-rhx-edition"/><rhn-product-name name="SDK" label="sdk"/><rhn-product-name name="Stronghold" label="stronghold"/><rhn-product-name name="Web Application Framework" label="ccm-core"/><rhn-product-name name="Desktop Workstation" label="workstation"/><rhn-product-name name="Advanced Workstation" label="rhel-aw"/><rhn-product-name name="Zenoss Enterprise" label="zenoss-enterprise"/><rhn-product-name name="Developer Suite" label="devsuite"/><rhn-product-name name="UNKNOWN" label="UNKNOWN"/><rhn-product-name name="GCC3.1" label="gcc3.1"/><rhn-product-name name="Portal Server" label="portal-server"/><rhn-product-name name="MLS Policies" label="mls"/><rhn-product-name name="Powertools" label="powertools"/><rhn-product-name name="Extras" label="extras"/><rhn-product-name name="Enterprise Application Platform" label="jbappplatform"/><rhn-product-name name="Monitor" label="groundwork-monitor-for-rhx"/><rhn-product-name name="Network Professional Edition" label="zimbra-network-professional"/><rhn-product-name name="Severn" label="severn"/><rhn-product-name name="Content Management System" label="cms"/><rhn-product-name name="Enterprise Backup" label="amanda-enterprise-backup"/><rhn-product-name name="Test System Tools" label="rhts-tools"/><rhn-product-name name="Developer Studio" label="jbdevstudio"/><rhn-product-name name="HPC Solution" label="hpc"/><rhn-product-name name="Enterprise IPA" label="ipa"/><rhn-product-name name="MRG Messaging (for non-Linux)" label="mrg-messaging-nonlinux"/><rhn-product-name name="MRG Grid (for non-Linux)" label="mrg-grid-nonlinux"/><rhn-product-name name="MRG Messaging Base (for RHEL-5 Server)" label="mrg-messaging-base-rhel5-server"/><rhn-product-name name="MRG Messaging (for RHEL-5 Server)" label="mrg-messaging-rhel5-server"/><rhn-product-name name="MRG Realtime (for RHEL-5 Server)" label="mrg-realtime-rhel5-server"/><rhn-product-name name="MRG Grid (for RHEL-5 Server)" label="mrg-grid-rhel5-server"/><rhn-product-name name="MRG Management (for RHEL-5 Server)" label="mrg-management-rhel5-server"/><rhn-product-name name="MRG Messaging Base (for RHEL-4 AS)" label="mrg-messaging-base-rhel4-as"/><rhn-product-name name="MRG Messaging (for RHEL-4 AS)" label="mrg-messaging-rhel4-as"/><rhn-product-name name="MRG Grid (for RHEL-4 AS)" label="mrg-grid-rhel4-as"/><rhn-product-name name="MRG Management (for RHEL-4 AS)" label="mrg-management-rhel4-as"/><rhn-product-name name="MRG Messaging Base (for RHEL-4 ES)" label="mrg-messaging-base-rhel4-es"/><rhn-product-name name="MRG Messaging (for RHEL-4 ES)" label="mrg-messaging-rhel4-es"/><rhn-product-name name="MRG Grid (for RHEL-4 ES)" label="mrg-grid-rhel4-es"/><rhn-product-name name="MRG Management (for RHEL-4 ES)" label="mrg-management-rhel4-es"/><rhn-product-name name="Enterprise Middleware" label="jbmiddleware"/><rhn-product-name name="Desktop Multimedia" label="desktop-multimedia"/><rhn-product-name name="Enterprise Application Platform Feature Pack" label="jbappplatformfp"/><rhn-product-name name="Enterprise Linux Long Life" label="rhel-53-ll"/><rhn-product-name name="Enterprise Web Server" label="jbews"/><rhn-product-name name="Enterprise Virtualization Hypervisor" label="rhev-h"/><rhn-product-name name="XFS" label="xfs"/><rhn-product-name name="MRG Grid Execute Node (for RHEL-5 Server)" label="mrg-grid-execute-rhel5-server"/><rhn-product-name name="MRG Grid Execute Node (for RHEL-4 ES)" label="mrg-grid-execute-rhel4-es"/><rhn-product-name name="SAP" label="sap"/><rhn-product-name name="Software Test Suite" label="sts"/><rhn-product-name name="Web Framework Kit" label="jbwfk"/><rhn-product-name name="Enterprise Virtualization Manager for Desktops" label="rhev-m-d"/><rhn-product-name name="Enterprise Virtualization Hypervisor Development Kit" label="rhev-hdk"/><rhn-product-name name="Enterprise Virtualization Management Agent" label="rhev-agent"/><rhn-product-name name="MRG Grid Execute Node (for RHEL-4 AS)" label="mrg-grid-execute-rhel4-as"/><rhn-product-name name="Developer Studio - Portfolio Edition" label="jbdevstudio-pe"/><rhn-product-name name="Enterprise Virtualization" label="rhev"/><rhn-product-name name="Enterprise Virtualization Manager for Servers" label="rhev-m-s"/></rhn-product-names></rhn-satellite>
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.source_packages.xml b/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.source_packages.xml
deleted file mode 100644
index 750b892..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/sample/sample-rhnhosted-dump.source_packages.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><rhn-satellite generation="2" version="3.4"><rhn-source-packages><rhn-source-package md5sum="0624afebe004f1ce52d33b0c189cb852" payload-size="361828" package-size="365847" package-group="System Environment/Base
-" build-time="1172717909" sigmd5="91b11c6ae7ba148b7fc4ec6511813ef3" source-rpm="tzdata-2007c-1.el5.src.rpm" rpm-version="4.4.2" build-host="js20-bc1-12.build.redhat.com" cookie="js20-bc1-12.build.redhat.com 1172699909" vendor="Red Hat, Inc." last-modified="1173831886" id="rhn-source-package-41217"/><rhn-source-package md5sum="4712968376cd4f0ee96b82ef67d7e15d" payload-size="27824680" package-size="27322182" package-group="Applications/Editors
-" build-time="1173482852" sigmd5="9a839aece47b284a0f1c69ce3cbcbfc4" source-rpm="emacs-21.4-18.1.el5.src.rpm" rpm-version="4.4.2" build-host="js20-bc2-11.build.redhat.com" cookie="js20-bc2-11.build.redhat.com 1173464852" vendor="Red Hat, Inc." last-modified="1173831901" id="rhn-source-package-41218"/><rhn-source-package md5sum="21c113a6005f92e634de2e81e75d8f8b" payload-size="7205452" package-size="6937083" package-group="Development/Libraries
-" build-time="1173389538" sigmd5="4bf862e1aeb5d19882aaa59d1724f6a3" source-rpm="xen-3.0.3-25.0.3.el5.src.rpm" rpm-version="4.4.2" build-host="ia64-1.build.redhat.com" cookie="ia64-1.build.redhat.com 1173371538" vendor="Red Hat, Inc." last-modified="1173848750" id="rhn-source-package-41228"/><rhn-source-package md5sum="88df873d2b167bdfbb313f3a1ec2ea63" payload-size="3122360" package-size="3121118" package-group="Applications/System
-" build-time="1172771408" sigmd5="62bd283dbb91cd120a5af0d42c0ae8ba" source-rpm="gnupg-1.4.5-13.src.rpm" rpm-version="4.4.2" build-host="js20-bc2-9.build.redhat.com" cookie="js20-bc2-9.build.redhat.com 1172753408" vendor="Red Hat, Inc." last-modified="1173831490" id="rhn-source-package-41215"/></rhn-source-packages></rhn-satellite>
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/schema0.xsd b/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/schema0.xsd
deleted file mode 100644
index 0e87f84..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/main/xsd/schema0.xsd
+++ /dev/null
@@ -1,403 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xs:element name="rhn-satellite" type="rhn-satelliteType"/>
- <xs:complexType name="rhn-packageType">
- <xs:sequence>
- <xs:element type="xs:string" name="rhn-package-summary"/>
- <xs:element type="xs:string" name="rhn-package-description"/>
- <xs:element type="xs:string" name="rhn-package-vendor"/>
- <xs:element type="xs:string" name="rhn-package-copyright"/>
- <xs:element type="rhn-package-header-sigType" name="rhn-package-header-sig"/>
- <xs:element type="xs:string" name="rhn-package-header-start"/>
- <xs:element type="xs:string" name="rhn-package-header-end"/>
- <xs:element type="rhn-package-changelogType" name="rhn-package-changelog"/>
- <xs:element type="rhn-package-requiresType" name="rhn-package-requires"/>
- <xs:element type="rhn-package-providesType" name="rhn-package-provides"/>
- <xs:element type="xs:string" name="rhn-package-conflicts"/>
- <xs:element type="rhn-package-obsoletesType" name="rhn-package-obsoletes"/>
- <xs:element type="rhn-package-filesType" name="rhn-package-files"/>
- </xs:sequence>
- <xs:attribute type="xs:string" name="compat" use="optional"/>
- <xs:attribute type="xs:string" name="payload-size" use="optional"/>
- <xs:attribute type="xs:string" name="name" use="optional"/>
- <xs:attribute type="xs:string" name="package-size" use="optional"/>
- <xs:attribute type="xs:string" name="package-group" use="optional"/>
- <xs:attribute type="xs:string" name="build-time" use="optional"/>
- <xs:attribute type="xs:string" name="source-rpm" use="optional"/>
- <xs:attribute type="xs:string" name="md5sum" use="optional"/>
- <xs:attribute type="xs:string" name="payload-format" use="optional"/>
- <xs:attribute type="xs:string" name="package-arch" use="optional"/>
- <xs:attribute type="xs:string" name="rpm-version" use="optional"/>
- <xs:attribute type="xs:string" name="last-modified" use="optional"/>
- <xs:attribute type="xs:string" name="epoch" use="optional"/>
- <xs:attribute type="xs:string" name="version" use="optional"/>
- <xs:attribute type="xs:string" name="cookie" use="optional"/>
- <xs:attribute type="xs:string" name="release" use="optional"/>
- <xs:attribute type="xs:string" name="build-host" use="optional"/>
- <xs:attribute type="xs:string" name="id" use="optional"/>
- </xs:complexType>
- <xs:complexType name="rhn-package-obsoletesType" mixed="true">
- <xs:sequence>
- <xs:element type="rhn-package-obsoletes-entryType" name="rhn-package-obsoletes-entry" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="rhn-distsType" mixed="true">
- <xs:sequence>
- <xs:element type="rhn-distType" name="rhn-dist" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="rhn-channel-familiesType">
- <xs:sequence>
- <xs:element type="rhn-channel-familyType" name="rhn-channel-family" maxOccurs="unbounded" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="rhn-package-provides-entryType">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute type="xs:string" name="version" use="optional"/>
- <xs:attribute type="xs:string" name="name" use="optional"/>
- <xs:attribute type="xs:string" name="sense" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <xs:complexType name="rhn-packages-shortType">
- <xs:sequence>
- <xs:element type="rhn-package-shortType" name="rhn-package-short" maxOccurs="unbounded" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="rhn-product-namesType">
- <xs:sequence>
- <xs:element type="rhn-product-nameType" name="rhn-product-name" maxOccurs="unbounded" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="rhn-package-filesType">
- <xs:sequence>
- <xs:element type="rhn-package-fileType" name="rhn-package-file" maxOccurs="unbounded" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="erratumType">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute type="xs:string" name="last-modified" use="optional"/>
- <xs:attribute type="xs:string" name="id" use="optional"/>
- <xs:attribute type="xs:string" name="advisory-name" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <xs:complexType name="rhn-satelliteType">
- <xs:sequence>
- <xs:element type="rhn-channel-familiesType" name="rhn-channel-families" minOccurs="0"/>
- <xs:element type="rhn-channelsType" name="rhn-channels" minOccurs="0"/>
- <xs:element type="rhn-errataType" name="rhn-errata" minOccurs="0"/>
- <xs:element type="rhn-kickstartable-treesType" name="rhn-kickstartable-trees" minOccurs="0"/>
- <xs:element type="rhn-packages-shortType" name="rhn-packages-short" minOccurs="0"/>
- <xs:element type="rhn-packagesType" name="rhn-packages" minOccurs="0"/>
- <xs:element type="rhn-product-namesType" name="rhn-product-names" minOccurs="0"/>
- <xs:element type="rhn-source-packagesType" name="rhn-source-packages" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute type="xs:string" name="generation" use="optional"/>
- <xs:attribute type="xs:string" name="version" use="optional"/>
- </xs:complexType>
- <xs:complexType name="source-packageType">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute type="xs:string" name="last-modified" use="optional"/>
- <xs:attribute type="xs:string" name="id" use="optional"/>
- <xs:attribute type="xs:string" name="source-rpm" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <xs:complexType name="rhn-distType">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute type="xs:string" name="release" use="optional"/>
- <xs:attribute type="xs:string" name="channel-arch" use="optional"/>
- <xs:attribute type="xs:string" name="os" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <xs:complexType name="rhn-erratum-filesType">
- <xs:sequence>
- <xs:element type="rhn-erratum-fileType" name="rhn-erratum-file" maxOccurs="unbounded" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="rhn-product-nameType">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute type="xs:string" name="name" use="optional"/>
- <xs:attribute type="xs:string" name="label" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <xs:complexType name="rhn-package-changelogType">
- <xs:sequence>
- <xs:element type="rhn-package-changelog-entryType" name="rhn-package-changelog-entry" maxOccurs="unbounded" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="rhn-package-changelog-entryType">
- <xs:sequence>
- <xs:element type="xs:string" name="rhn-package-changelog-entry-name"/>
- <xs:element type="xs:string" name="rhn-package-changelog-entry-text"/>
- <xs:element type="xs:string" name="rhn-package-changelog-entry-time"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="rhn-package-shortType">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute type="xs:string" name="name" use="optional"/>
- <xs:attribute type="xs:string" name="package-size" use="optional"/>
- <xs:attribute type="xs:string" name="md5sum" use="optional"/>
- <xs:attribute type="xs:string" name="package-arch" use="optional"/>
- <xs:attribute type="xs:string" name="last-modified" use="optional"/>
- <xs:attribute type="xs:string" name="epoch" use="optional"/>
- <xs:attribute type="xs:string" name="version" use="optional"/>
- <xs:attribute type="xs:string" name="release" use="optional"/>
- <xs:attribute type="xs:string" name="id" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <xs:complexType name="rhn-package-providesType">
- <xs:sequence>
- <xs:element type="rhn-package-provides-entryType" name="rhn-package-provides-entry" maxOccurs="unbounded" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="rhn-package-fileType">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute type="xs:string" name="username" use="optional"/>
- <xs:attribute type="xs:string" name="lang" use="optional"/>
- <xs:attribute type="xs:string" name="name" use="optional"/>
- <xs:attribute type="xs:string" name="verifyflags" use="optional"/>
- <xs:attribute type="xs:string" name="rdev" use="optional"/>
- <xs:attribute type="xs:string" name="groupname" use="optional"/>
- <xs:attribute type="xs:string" name="mtime" use="optional"/>
- <xs:attribute type="xs:string" name="file_size" use="optional"/>
- <xs:attribute type="xs:string" name="device" use="optional"/>
- <xs:attribute type="xs:string" name="flags" use="optional"/>
- <xs:attribute type="xs:string" name="md5" use="optional"/>
- <xs:attribute type="xs:string" name="inode" use="optional"/>
- <xs:attribute type="xs:string" name="linkto" use="optional"/>
- <xs:attribute type="xs:string" name="file_mode" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <xs:complexType name="rhn-channel-parent-channelType" mixed="true">
- <xs:sequence>
- <xs:element type="xs:string" name="rhn-null" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="rhn-source-packageType">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute type="xs:string" name="md5sum" use="optional"/>
- <xs:attribute type="xs:string" name="payload-size" use="optional"/>
- <xs:attribute type="xs:string" name="package-size" use="optional"/>
- <xs:attribute type="xs:string" name="package-group" use="optional"/>
- <xs:attribute type="xs:string" name="build-time" use="optional"/>
- <xs:attribute type="xs:string" name="sigmd5" use="optional"/>
- <xs:attribute type="xs:string" name="source-rpm" use="optional"/>
- <xs:attribute type="xs:string" name="rpm-version" use="optional"/>
- <xs:attribute type="xs:string" name="build-host" use="optional"/>
- <xs:attribute type="xs:string" name="cookie" use="optional"/>
- <xs:attribute type="xs:string" name="vendor" use="optional"/>
- <xs:attribute type="xs:string" name="last-modified" use="optional"/>
- <xs:attribute type="xs:string" name="id" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <xs:complexType name="rhn-channel-familyType" mixed="true">
- <xs:sequence>
- <xs:element type="xs:string" name="rhn-channel-family-name" minOccurs="0"/>
- <xs:element type="xs:string" name="rhn-channel-family-product-url" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute type="xs:string" name="channel-labels" use="optional"/>
- <xs:attribute type="xs:string" name="id" use="optional"/>
- <xs:attribute type="xs:string" name="label" use="optional"/>
- <xs:attribute type="xs:string" name="max-members" use="optional"/>
- <xs:attribute type="xs:string" name="virt-sub-level-label" use="optional"/>
- <xs:attribute type="xs:string" name="virt-sub-level-name" use="optional"/>
- </xs:complexType>
- <xs:complexType name="rhn-erratumType">
- <xs:sequence>
- <xs:element type="xs:string" name="rhn-erratum-advisory-name"/>
- <xs:element type="xs:string" name="rhn-erratum-advisory-rel"/>
- <xs:element type="xs:string" name="rhn-erratum-advisory-type"/>
- <xs:element type="xs:string" name="rhn-erratum-product"/>
- <xs:element type="xs:string" name="rhn-erratum-description"/>
- <xs:element type="xs:string" name="rhn-erratum-synopsis"/>
- <xs:element type="xs:string" name="rhn-erratum-topic"/>
- <xs:element type="xs:string" name="rhn-erratum-solution"/>
- <xs:element type="xs:string" name="rhn-erratum-refers-to"/>
- <xs:element type="xs:string" name="rhn-erratum-notes"/>
- <xs:element type="xs:string" name="rhn-erratum-issue-date"/>
- <xs:element type="xs:string" name="rhn-erratum-update-date"/>
- <xs:element type="xs:string" name="rhn-erratum-last-modified"/>
- <xs:element type="rhn-erratum-keywordsType" name="rhn-erratum-keywords"/>
- <xs:element type="rhn-erratum-bugsType" name="rhn-erratum-bugs"/>
- <xs:element type="rhn-erratum-filesType" name="rhn-erratum-files"/>
- </xs:sequence>
- <xs:attribute type="xs:string" name="channels" use="optional"/>
- <xs:attribute type="xs:string" name="advisory" use="optional"/>
- <xs:attribute type="xs:string" name="packages" use="optional"/>
- <xs:attribute type="xs:string" name="id" use="optional"/>
- <xs:attribute type="xs:string" name="cve-names" use="optional"/>
- </xs:complexType>
- <xs:complexType name="rhn-kickstart-fileType">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute type="xs:string" name="file-size" use="optional"/>
- <xs:attribute type="xs:string" name="md5sum" use="optional"/>
- <xs:attribute type="xs:string" name="relative-path" use="optional"/>
- <xs:attribute type="xs:string" name="last-modified" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <xs:complexType name="rhn-packagesType">
- <xs:sequence>
- <xs:element type="rhn-packageType" name="rhn-package" maxOccurs="unbounded" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="rhn-package-obsoletes-entryType">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute type="xs:string" name="version" use="optional"/>
- <xs:attribute type="xs:string" name="name" use="optional"/>
- <xs:attribute type="xs:string" name="sense" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <xs:complexType name="rhn-package-header-sigType">
- <xs:sequence>
- <xs:element type="xs:string" name="rhn-null"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="rhn-erratum-bugsType">
- <xs:sequence>
- <xs:element type="rhn-erratum-bugType" name="rhn-erratum-bug" maxOccurs="unbounded" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="rhn-source-packagesType">
- <xs:sequence>
- <xs:element type="rhn-source-packageType" name="rhn-source-package" maxOccurs="unbounded" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="rhn-kickstart-filesType">
- <xs:sequence>
- <xs:element type="rhn-kickstart-fileType" name="rhn-kickstart-file" maxOccurs="unbounded" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="rhn-errataType">
- <xs:sequence>
- <xs:element type="rhn-erratumType" name="rhn-erratum" maxOccurs="unbounded" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="rhn-channel-descriptionType">
- <xs:sequence>
- <xs:element type="xs:string" name="rhn-null" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="rhn-kickstartable-treeType">
- <xs:sequence>
- <xs:element type="rhn-kickstart-filesType" name="rhn-kickstart-files"/>
- </xs:sequence>
- <xs:attribute type="xs:string" name="kstree-type-name" use="optional"/>
- <xs:attribute type="xs:string" name="boot-image" use="optional"/>
- <xs:attribute type="xs:string" name="kstree-type-label" use="optional"/>
- <xs:attribute type="xs:string" name="label" use="optional"/>
- <xs:attribute type="xs:string" name="last-modified" use="optional"/>
- <xs:attribute type="xs:string" name="install-type-name" use="optional"/>
- <xs:attribute type="xs:string" name="base-path" use="optional"/>
- <xs:attribute type="xs:string" name="install-type-label" use="optional"/>
- <xs:attribute type="xs:string" name="channel" use="optional"/>
- </xs:complexType>
- <xs:complexType name="rhn-channel-errataType">
- <xs:sequence>
- <xs:element type="erratumType" name="erratum" maxOccurs="unbounded" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="rhn-kickstartable-treesType">
- <xs:sequence>
- <xs:element type="rhn-kickstartable-treeType" name="rhn-kickstartable-tree" maxOccurs="unbounded" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="rhn-erratum-bugType">
- <xs:sequence>
- <xs:element type="xs:string" name="rhn-erratum-bug-id"/>
- <xs:element type="xs:string" name="rhn-erratum-bug-summary"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="rhn-channelsType">
- <xs:sequence>
- <xs:element type="rhn-channelType" name="rhn-channel" maxOccurs="unbounded" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="rhn-channelType">
- <xs:sequence>
- <xs:element type="rhn-channel-parent-channelType" name="rhn-channel-parent-channel"/>
- <xs:element type="xs:string" name="rhn-channel-basedir"/>
- <xs:element type="xs:string" name="rhn-channel-name"/>
- <xs:element type="xs:string" name="rhn-channel-summary"/>
- <xs:element name="rhn-channel-description">
- <xs:complexType mixed="true">
- <xs:sequence>
- <xs:element type="xs:string" name="rhn-null" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element type="xs:string" name="rhn-channel-gpg-key-url"/>
- <xs:element type="xs:string" name="rhn-channel-receiving-updates"/>
- <xs:element type="xs:string" name="rhn-channel-last-modified"/>
- <xs:element type="xs:string" name="rhn-channel-product-name"/>
- <xs:element type="xs:string" name="rhn-channel-product-version"/>
- <xs:element type="xs:string" name="rhn-channel-product-beta"/>
- <xs:element type="rhn-channel-familiesType" name="rhn-channel-families"/>
- <xs:element type="rhn-distsType" name="rhn-dists"/>
- <xs:element type="source-packagesType" name="source-packages"/>
- <xs:element type="rhn-channel-errataType" name="rhn-channel-errata"/>
- <xs:element type="xs:string" name="rhn-release"/>
- </xs:sequence>
- <xs:attribute type="xs:string" name="channel-arch" use="optional"/>
- <xs:attribute type="xs:string" name="has-comps" use="optional"/>
- <xs:attribute type="xs:string" name="channel-errata" use="optional"/>
- <xs:attribute type="xs:string" name="kickstartable-trees" use="optional"/>
- <xs:attribute type="xs:string" name="label" use="optional"/>
- <xs:attribute type="xs:string" name="packages" use="optional"/>
- <xs:attribute type="xs:string" name="channel-id" use="optional"/>
- </xs:complexType>
- <xs:complexType name="rhn-erratum-keywordsType" mixed="true">
- <xs:sequence>
- <xs:element type="xs:string" name="rhn-erratum-keyword" maxOccurs="unbounded" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="rhn-package-requires-entryType">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute type="xs:string" name="version" use="optional"/>
- <xs:attribute type="xs:string" name="name" use="optional"/>
- <xs:attribute type="xs:string" name="sense" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <xs:complexType name="rhn-erratum-fileType">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute type="xs:string" name="channels" use="optional"/>
- <xs:attribute type="xs:string" name="md5sum" use="optional"/>
- <xs:attribute type="xs:string" name="type" use="optional"/>
- <xs:attribute type="xs:string" name="source-package" use="optional"/>
- <xs:attribute type="xs:string" name="filename" use="optional"/>
- <xs:attribute type="xs:string" name="package" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <xs:complexType name="rhn-package-requiresType">
- <xs:sequence>
- <xs:element type="rhn-package-requires-entryType" name="rhn-package-requires-entry" maxOccurs="unbounded" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="source-packagesType">
- <xs:sequence>
- <xs:element type="source-packageType" name="source-package" maxOccurs="unbounded" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
-</xs:schema>
\ No newline at end of file
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/BaseRHNTest.java b/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/BaseRHNTest.java
deleted file mode 100644
index 7939df7..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/BaseRHNTest.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-package org.rhq.enterprise.server.plugins.rhnhosted;
-
-import junit.framework.TestCase;
-
-import org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc.ApacheXmlRpcExecutor;
-import org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc.MockRhnHttpURLConnection;
-import org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc.MockRhnXmlRpcExecutor;
-import org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc.RhnHttpURLConnectionFactory;
-
-public class BaseRHNTest extends TestCase {
-
- protected static final String TEST_SERVER_URL = "http://satellite.rhn.redhat.com/rpc/api";
-
- // protected static final String TEST_SYSTEM_ID = RHNConstants.DEFAULT_SYSTEM_ID;
-
- public void setUp() throws Exception {
- super.setUp();
- /* OVERRIDE THE XMLRPC CLIENT WITH A MOCK OBJECT */
- System.setProperty(ApacheXmlRpcExecutor.class.getName(), MockRhnXmlRpcExecutor.class.getName());
- System.setProperty(RhnHttpURLConnectionFactory.RHN_MOCK_HTTP_URL_CONNECTION, MockRhnHttpURLConnection.class
- .getName());
-
- }
-
- public static String ENT_CERT = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<rhn-cert version=\"0.1\">"
- + " <rhn-cert-field name=\"product\">RHN-SATELLITE-001</rhn-cert-field>"
- + " <rhn-cert-field name=\"owner\">Test Lab - Base Organization</rhn-cert-field>"
- + " <rhn-cert-field name=\"issued\">2009-08-17 00:00:00</rhn-cert-field>"
- + " <rhn-cert-field name=\"expires\">2010-08-17 00:00:00</rhn-cert-field>"
- + " <rhn-cert-field name=\"slots\">10</rhn-cert-field>"
- + " <rhn-cert-field name=\"monitoring-slots\">10</rhn-cert-field>"
- + " <rhn-cert-field name=\"provisioning-slots\">10</rhn-cert-field>"
- + " <rhn-cert-field name=\"virtualization_host\">10</rhn-cert-field>"
- + " <rhn-cert-field name=\"virtualization_host_platform\">10</rhn-cert-field>"
- + " <rhn-cert-field name=\"channel-families\" quantity=\"10\" family=\"rhel-server\"/>"
- + " <rhn-cert-field name=\"channel-families\" quantity=\"10\" family=\"rhel-server-vt\"/>"
- + " <rhn-cert-field name=\"channel-families\" quantity=\"10\" family=\"rhn-tools\"/>"
- + " <rhn-cert-field name=\"satellite-version\">5.3</rhn-cert-field>"
- + " <rhn-cert-field name=\"generation\">2</rhn-cert-field>" + " <rhn-cert-signature>"
- + "-----BEGIN PGP SIGNATURE-----" + "-----END PGP SIGNATURE-----" + "</rhn-cert-signature>" + "</rhn-cert>";
-
- public static String SYSTEM_ID = "<?xml version=\"1.0\"?>" + "<params>\n" + "<param>\n" + "<value><struct>\n"
- + "<member>\n" + "<name>username</name>\n" + "<value><string>unknown</string></value>\n" + "</member>\n"
- + "<member>\n" + "<name>operating_system</name>\n" + "<value><string>redhat-release</string></value>\n"
- + "</member>\n" + "<member>\n" + "<name>description</name>\n"
- + "<value><string>Initial Registration Parameters:\n" + "OS: redhat-release\n" + "Release: 5Server\n"
- + "CPU Arch: athlon-redhat-linux</string></value>\n" + "</member>\n" + "<member>\n" + "<name>checksum</name>\n"
- + "<value><string>b57e3b8f0ffe10807b041905197068a7</string></value>\n" + "</member>\n" + "<member>\n"
- + "<name>profile_name</name>\n" + "<value><string>unknown</string></value>\n" + "</member>\n" + "<member>\n"
- + "<name>system_id</name>\n" + "<value><string>ID-1234</string></value>\n" + "</member>\n" + "<member>\n"
- + "<name>architecture</name>\n" + "<value><string>athlon-redhat-linux</string></value>\n" + "</member>\n"
- + "<member>\n" + "<name>os_release</name>\n" + "<value><string>5Server</string></value>\n" + "</member>\n"
- + "<member>\n" + "<name>fields</name>\n" + "<value><array><data>\n"
- + "<value><string>system_id</string></value>\n" + "<value><string>os_release</string></value>\n"
- + "<value><string>operating_system</string></value>\n" + "<value><string>architecture</string></value>\n"
- + "<value><string>username</string></value>\n" + "<value><string>type</string></value>\n"
- + "</data></array></value>\n" + "</member>\n" + "<member>\n" + "<name>type</name>\n"
- + "<value><string>REAL</string></value>\n" + "</member>\n" + "</struct></value>\n" + "</param>\n"
- + "</params>\n";
-
- public static String SYSTEM_ID_BAD = "<?xml version=\"1.0\"?>" + "<params>\n" + "<param>\n" + "<value><struct>\n"
- + "<member>\n" + "<name>username</name>\n" + "<value><string>unknown</string></value>\n" + "</member>\n"
- + "<member>\n" + "<name>operating_system</name>\n" + "<value><string>redhat-release</string></value>\n"
- + "</member>\n" + "<member>\n" + "<name>description</name>\n"
- + "<value><string>Initial Registration Parameters:\n" + "OS: redhat-release\n" + "Release: 5Server\n"
- + "CPU Arch: athlon-redhat-linux</string></value>\n" + "</member>\n" + "<member>\n" + "<name>checksum</name>\n"
- + "<value><string>b57e3b8f0ffe10807b041905197068a7</string></value>\n" + "</member>\n" + "<member>\n"
- + "<name>profile_name</name>\n" + "<value><string>unknown</string></value>\n" + "</member>\n" + "<member>\n"
- + "<name>system_id</name>\n" + "<value><string>ID-0000000000</string></value>\n" + "</member>\n" + "<member>\n"
- + "<name>architecture</name>\n" + "<value><string>athlon-redhat-linux</string></value>\n" + "</member>\n"
- + "<member>\n" + "<name>os_release</name>\n" + "<value><string>5Server</string></value>\n" + "</member>\n"
- + "<member>\n" + "<name>fields</name>\n" + "<value><array><data>\n"
- + "<value><string>system_id</string></value>\n" + "<value><string>os_release</string></value>\n"
- + "<value><string>operating_system</string></value>\n" + "<value><string>architecture</string></value>\n"
- + "<value><string>username</string></value>\n" + "<value><string>type</string></value>\n"
- + "</data></array></value>\n" + "</member>\n" + "<member>\n" + "<name>type</name>\n"
- + "<value><string>REAL</string></value>\n" + "</member>\n" + "</struct></value>\n" + "</param>\n"
- + "</params>\n";
-
- /**
- * Adding this empty test method to make command line tests execute from maven.
- * The lack of a test method in this class, was causing an exception to be thrown
- * @throws Exception
- */
- public void testDoNothing() throws Exception {
- assertTrue(true);
- }
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/PrimaryXMLTest.java b/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/PrimaryXMLTest.java
deleted file mode 100644
index e979545..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/PrimaryXMLTest.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.rhq.enterprise.server.plugins.rhnhosted;
-
-import java.io.ByteArrayInputStream;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.apache.commons.lang.StringUtils;
-import org.jdom.Document;
-import org.jdom.Element;
-import org.jdom.input.SAXBuilder;
-
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnPackageProvidesEntryType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnPackageProvidesType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnPackageRequiresEntryType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnPackageRequiresType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnPackageType;
-
-/**
- * @author John Matthews
- */
-public class PrimaryXMLTest extends TestCase {
- protected RhnPackageType getTestRhnPackage() {
- RhnPackageType pkg = new RhnPackageType();
- pkg.setName("gnome-user-docs");
- pkg.setPackageArch("noarch");
- pkg.setVersion("2.16.0");
- pkg.setRelease("2.6fc6");
- pkg.setEpoch("0");
- pkg.setMd5Sum("4e7d379301407b4c79f211596b802a13");
- pkg.setRhnPackageSummary("GNOME User Documentation");
- pkg.setRhnPackageDescription("This package contains end user documentation for the GNOME desktop environment.");
- pkg.setLastModified("1157750823");
- pkg.setBuildTime("1157750823");
- pkg.setPackageSize("6549456");
- pkg.setPayloadSize("11858600");
- pkg.setRhnPackageCopyright("FDL");
- pkg.setRhnPackageVendor("Red Hat, Inc.");
- pkg.setPackageGroup("Documentation");
- pkg.setBuildHost("altix2.build.redhat.com");
- pkg.setSourceRpm("gnome-user-docs-2.16.0-2.fc6.src.rpm");
- pkg.setRhnPackageHeaderStart("440");
- pkg.setRhnPackageHeaderEnd("97656");
-
- RhnPackageProvidesType provides_type = new RhnPackageProvidesType();
- List<RhnPackageProvidesEntryType> provides = provides_type.getRhnPackageProvidesEntry();
- RhnPackageProvidesEntryType prov = new RhnPackageProvidesEntryType();
- prov.setName("gnome-user-docs");
- prov.setSense("8");
- prov.setVersion("2.16.0-2.fc6");
- provides.add(prov);
- pkg.setRhnPackageProvides(provides_type);
-
- RhnPackageRequiresType requires_type = new RhnPackageRequiresType();
- List<RhnPackageRequiresEntryType> requires = requires_type.getRhnPackageRequiresEntry();
- RhnPackageRequiresEntryType req = new RhnPackageRequiresEntryType();
- req.setName("rpmlib(CompressedFileNames)");
- req.setSense("10");
- req.setVersion("2:3.0.4-1");
- requires.add(req);
- pkg.setRhnPackageRequires(requires_type);
-
- pkg.setRhnPackageConflicts("entry1, entry2");
- return pkg;
- }
-
- public void testGetFlags() {
- String value = PrimaryXML.getFlags("8");
- assert StringUtils.equals(value, "EQ");
-
- value = PrimaryXML.getFlags("2");
- assert StringUtils.equals(value, "LT");
-
- value = PrimaryXML.getFlags("4");
- assert StringUtils.equals(value, "GT");
-
- value = PrimaryXML.getFlags("10");
- assert StringUtils.equals(value, "LE");
-
- value = PrimaryXML.getFlags("12");
- assert StringUtils.equals(value, "GE");
-
- }
-
- public void testGetEpoch() {
- String value = PrimaryXML.getEpoch("4:98.9-4");
- assert StringUtils.equals(value, "4");
-
- value = PrimaryXML.getEpoch("98.9-4");
- assert StringUtils.equals(value, "0");
-
- value = PrimaryXML.getEpoch("");
- assert StringUtils.equals(value, "0");
-
- value = PrimaryXML.getEpoch("98.9-45:3.f");
- assert StringUtils.equals(value, "0");
- }
-
- public void testGetVersion() {
- String value = PrimaryXML.getVersion("4:98.9-4");
- assert StringUtils.equals(value, "98.9");
-
- value = PrimaryXML.getVersion("98.9-4");
- assert StringUtils.equals(value, "98.9");
-
- value = PrimaryXML.getVersion("");
- assert StringUtils.equals(value, "");
-
- }
-
- public void testGetRelease() {
- String value = PrimaryXML.getRelease("4:98.9-4");
- assert StringUtils.equals(value, "4");
-
- value = PrimaryXML.getRelease("98.9-4");
- assert StringUtils.equals(value, "4");
-
- value = PrimaryXML.getRelease("");
- assert StringUtils.equals(value, "");
-
- value = PrimaryXML.getRelease("98.9");
- assert StringUtils.equals(value, "");
- }
-
- public void testCreatePackageXML() throws Exception {
- RhnPackageType pkg = getTestRhnPackage();
- String xml = PrimaryXML.createPackageXML(pkg);
- System.out.println(xml);
-
- ByteArrayInputStream inStream = new ByteArrayInputStream(xml.getBytes());
- SAXBuilder builder = new SAXBuilder();
- Document doc = builder.build(inStream);
- Element root = doc.getRootElement();
- assert StringUtils.equals(root.getName(), "package");
- }
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNActivatorTest.java b/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNActivatorTest.java
deleted file mode 100644
index 762018d..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNActivatorTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-package org.rhq.enterprise.server.plugins.rhnhosted;
-
-public class RHNActivatorTest extends BaseRHNTest {
-
- private static final String TEST_SERVER_URL = "http://satellite.rhn.redhat.com/rpc/api";
-
- private RHNActivator rhnObject;
-
- public void setUp() throws Exception {
- super.setUp();
- rhnObject = new RHNActivator(SYSTEM_ID, ENT_CERT, TEST_SERVER_URL);
-
- assertNotNull(rhnObject);
-
- }
-
- public final void testActivate() throws Exception {
- boolean success = true;
- try {
- rhnObject.processActivation();
- } catch (Exception e) {
- e.printStackTrace();
- success = false;
- }
- assertEquals(true, success);
- }
-
- public final void testDeActivate() throws Exception {
- boolean success = true;
- try {
- rhnObject.processDeActivation();
- } catch (Exception e) {
- e.printStackTrace();
- success = false;
- }
- assertEquals(true, success);
- }
-
- private static String ENT_CERT = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<rhn-cert version=\"0.1\">"
- + " <rhn-cert-field name=\"product\">RHN-SATELLITE-001</rhn-cert-field>"
- + " <rhn-cert-field name=\"owner\">Test Lab - Base Organization</rhn-cert-field>"
- + " <rhn-cert-field name=\"issued\">2009-08-17 00:00:00</rhn-cert-field>"
- + " <rhn-cert-field name=\"expires\">2010-08-17 00:00:00</rhn-cert-field>"
- + " <rhn-cert-field name=\"slots\">10</rhn-cert-field>"
- + " <rhn-cert-field name=\"monitoring-slots\">10</rhn-cert-field>"
- + " <rhn-cert-field name=\"provisioning-slots\">10</rhn-cert-field>"
- + " <rhn-cert-field name=\"virtualization_host\">10</rhn-cert-field>"
- + " <rhn-cert-field name=\"virtualization_host_platform\">10</rhn-cert-field>"
- + " <rhn-cert-field name=\"channel-families\" quantity=\"10\" family=\"rhel-server\"/>"
- + " <rhn-cert-field name=\"channel-families\" quantity=\"10\" family=\"rhel-server-vt\"/>"
- + " <rhn-cert-field name=\"channel-families\" quantity=\"10\" family=\"rhn-tools\"/>"
- + " <rhn-cert-field name=\"satellite-version\">5.3</rhn-cert-field>"
- + " <rhn-cert-field name=\"generation\">2</rhn-cert-field>" + " <rhn-cert-signature>"
- + "-----BEGIN PGP SIGNATURE-----" + "-----END PGP SIGNATURE-----" + "</rhn-cert-signature>" + "</rhn-cert>";
-
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNHelperTest.java b/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNHelperTest.java
deleted file mode 100644
index a12aa0b..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNHelperTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package org.rhq.enterprise.server.plugins.rhnhosted;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang.StringUtils;
-
-import org.rhq.enterprise.server.plugin.pc.content.ContentProviderPackageDetails;
-import org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc.ApacheXmlRpcExecutor;
-import org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc.MockRhnHttpURLConnection;
-import org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc.MockRhnXmlRpcExecutor;
-import org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc.RhnHttpURLConnectionFactory;
-
-/**
- * RHNHelper Tester.
- *
- * @author pkilambi
- */
-public class RHNHelperTest extends BaseRHNTest {
-
- private static final String REPO_LABEL = "rhel-i386-server-vt-5";
-
- private RHNHelper helper;
-
- public void setUp() throws Exception {
- super.setUp();
- System.setProperty(ApacheXmlRpcExecutor.class.getName(), MockRhnXmlRpcExecutor.class.getName());
- System.setProperty(RhnHttpURLConnectionFactory.RHN_MOCK_HTTP_URL_CONNECTION, MockRhnHttpURLConnection.class
- .getName());
- helper = new RHNHelper(TEST_SERVER_URL, SYSTEM_ID);
- }
-
- public void testGetPackageDetails() throws Exception {
- boolean success;
-
- try {
- List pids = helper.getChannelPackages(REPO_LABEL);
- List<ContentProviderPackageDetails> pkgdetails = helper.getPackageDetails(pids, REPO_LABEL);
- for (ContentProviderPackageDetails pkg : pkgdetails) {
- assertFalse(StringUtils.isBlank(pkg.getDisplayName()));
- assertFalse(StringUtils.isBlank(pkg.getArchitectureName()));
- assertFalse(StringUtils.isBlank(pkg.getPackageTypeName()));
- assertFalse(StringUtils.isBlank(pkg.getName()));
- assertFalse(StringUtils.isBlank(pkg.getFileName()));
- assertFalse(StringUtils.isBlank(pkg.getLongDescription()));
- assertFalse(StringUtils.isBlank(pkg.getMD5()));
-
- }
- success = true;
- } catch (Exception e) {
- e.printStackTrace();
- success = false;
- }
-
- assertTrue(success);
- }
-
- public void testGetChannelPackages() throws Exception {
- boolean success = true;
- try {
- List<String> pkgIds = helper.getChannelPackages(REPO_LABEL);
- assertTrue(pkgIds.size() > 0);
- } catch (Exception e) {
- e.printStackTrace();
- success = false;
- }
-
- assertTrue(success);
- }
-
- public void testGetSyncableKickstartTrees() throws Exception {
- boolean success = true;
- try {
- List<String> ksLabels = helper.getSyncableKickstartLabels(REPO_LABEL);
- assertTrue(ksLabels.size() > 0);
- } catch (Exception e) {
- e.printStackTrace();
- success = false;
- }
- assertTrue(success);
- }
-
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNProviderTest.java b/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNProviderTest.java
deleted file mode 100644
index bb67e61..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNProviderTest.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.rhq.enterprise.server.plugins.rhnhosted;
-
-import java.io.File;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.testng.annotations.AfterTest;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.Test;
-
-import org.rhq.core.domain.configuration.Configuration;
-import org.rhq.core.domain.configuration.PropertySimple;
-import org.rhq.core.util.MessageDigestGenerator;
-import org.rhq.enterprise.server.plugin.pc.content.ContentProviderPackageDetails;
-import org.rhq.enterprise.server.plugin.pc.content.DistributionDetails;
-import org.rhq.enterprise.server.plugin.pc.content.DistributionFileDetails;
-import org.rhq.enterprise.server.plugin.pc.content.DistributionSyncReport;
-import org.rhq.enterprise.server.plugin.pc.content.PackageSyncReport;
-
-/**
- * @author John Matthews
- */
-public class RHNProviderTest {
- // By Default the tests in this class will be skipped. This class is intended as a simple integration test
- // desire is for it to only run against RHN Hosted, other tests in this package will execute against a mocked RHN
- // connection. This test is a means for us to manually check that Plugin->RHN Hosted communication is behaving as
- // we expect.
- //
- // If you want to run these tests, then set the java property "RunRHNProviderTest"
- //
- private final Log log = LogFactory.getLog(RHNProviderTest.class);
-
- String PROP_NAME_TO_TRIGGER_TEST = "RunRHNProviderTest";
- String PROP_NAME_TO_CHECK_MD5SUMS = "RunRHNMD5SumTests";
- String rhnURL = "http://satellite.rhn.redhat.com";
- String certLoc = "./entitlement-cert.xml";
- boolean isTesting = false;
- boolean isMD5SumTesting = false;
-
- RHNProvider provider = new RHNProvider();
-
- @BeforeTest
- public void setUp() throws Exception {
- String value = System.getProperty(PROP_NAME_TO_TRIGGER_TEST);
- if (!StringUtils.isBlank(value)) {
- isTesting = Boolean.parseBoolean(value);
- }
- value = System.getProperty(PROP_NAME_TO_CHECK_MD5SUMS);
- if (!StringUtils.isBlank(value)) {
- isMD5SumTesting = Boolean.parseBoolean(value);
- }
- }
-
- @AfterTest
- public void tearDown() {
- }
-
- public Configuration getConfiguration() {
- String certData = "";
- try {
- certData = FileUtils.readFileToString(new File(certLoc));
- } catch (Exception e) {
- e.printStackTrace();
- assert false;
- }
- return getConfiguration(rhnURL, certData);
- }
-
- public Configuration getConfiguration(String location, String certData) {
- Configuration config = new Configuration();
- PropertySimple locProp = new PropertySimple();
- locProp.setName("location");
- locProp.setStringValue(location);
- config.put(locProp);
- PropertySimple certProp = new PropertySimple();
- certProp.setName("certificate");
- certProp.setStringValue(certData);
- config.put(certProp);
- return config;
- }
-
- @Test
- public void testGetInputStream() {
- if (!isTesting) {
- System.out
- .println("Intentionally skipping test, since property is missing: -D" + PROP_NAME_TO_TRIGGER_TEST);
- return;
- }
-
- System.out.println("testGetInputStream invoked");
- //
- // systemid used for this test needs to be entitled so the channel/package selected
- //
- String cName = "rhel-x86_64-server-5";
- String rName = "openhpi-2.4.1-6.el5.1.x86_64.rpm";
- RHNProvider provider = new RHNProvider();
- Configuration config = getConfiguration();
- try {
- provider.initialize(config);
- String loc = RHNHelper.constructPackageUrl(rhnURL, cName, rName);
- InputStream in = provider.getInputStream(loc);
- assert (in != null);
- } catch (Exception e) {
- e.printStackTrace();
- assert false;
- }
- System.out.println("testGetInputStream finished.");
- provider.shutdown();
- }
-
- @Test
- public void testSynchronizePackages() {
- if (!isTesting) {
- System.out
- .println("Intentionally skipping test, since property is missing: -D" + PROP_NAME_TO_TRIGGER_TEST);
- return;
- }
-
- String channelName = "rhn-tools-rhel-i386-server-5";
- //String channelName = "rhel-i386-server-5";
- Configuration config = getConfiguration();
- RHNProvider provider = new RHNProvider();
-
- log.info("testSynchronizePackages invoked");
- PackageSyncReport report = new PackageSyncReport();
- List<ContentProviderPackageDetails> existingPackages = new ArrayList<ContentProviderPackageDetails>();
- try {
- provider.initialize(config);
- provider.synchronizePackages(channelName, report, existingPackages);
- Set<ContentProviderPackageDetails> newPkgs = report.getNewPackages();
- log.info(newPkgs.size() + " packages are noted as 'NEW'");
- assert (newPkgs.size() > 0);
- if (isMD5SumTesting) {
- for (ContentProviderPackageDetails pkg : newPkgs) {
- String url = RHNHelper.constructPackageUrl(rhnURL, channelName, pkg.getFileName());
- log.info("Attempting fetch of rpm: " + pkg.getFileName() + " size = " + pkg.getFileSize());
- log.info("URL to use is: " + url);
- InputStream in = provider.getInputStream(url);
- assert (in != null);
- String actualMd5sum = MessageDigestGenerator.getDigestString(in);
- String expectedMd5sum = pkg.getMD5();
- log.info("MD5SUMs actual = " + actualMd5sum + ", expected = " + expectedMd5sum);
- assert (StringUtils.equalsIgnoreCase(actualMd5sum, expectedMd5sum));
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- assert false;
- }
- log.info("testSynchronizePackages() we have package metadata for " + report.getNewPackages().size()
- + " new packages");
- System.out.println("testSynchronizePackages finished.");
- }
-
- @Test
- public void testSynchronizeDistribution() {
- if (true) {
- return;
- }
- if (!isTesting) {
- System.out
- .println("Intentionally skipping test, since property is missing: -D" + PROP_NAME_TO_TRIGGER_TEST);
- return;
- }
- System.out.println("testSynchronizeDistribution invoked");
- String channelName = "rhel-x86_64-server-5";
- int dummyValueContentSourceId = -1;
- DistributionSyncReport report = new DistributionSyncReport(dummyValueContentSourceId);
- List<DistributionDetails> existingDistro = new ArrayList<DistributionDetails>();
- RHNProvider provider = new RHNProvider();
- Configuration config = getConfiguration();
- try {
- provider.initialize(config);
- provider.synchronizeDistribution(channelName, report, existingDistro);
- } catch (Exception e) {
- e.printStackTrace();
- assert false;
- }
- List<DistributionDetails> details = report.getDistributions();
- System.out.println("RHNProviderTest details.size() = " + details.size());
- for (DistributionDetails d : details) {
- System.out.println("Label = " + d.getLabel());
- System.out.println("Path = " + d.getDistributionPath());
- List<DistributionFileDetails> files = d.getFiles();
- for (DistributionFileDetails f : files) {
- System.out.println(d.getLabel() + ", " + d.getDistributionPath() + ", " + f.getRelativeFilename()
- + " , " + f.getMd5sum() + ", lastModified = " + f.getLastModified() + ", fileSize = "
- + f.getFileSize());
- try {
- String url = RHNHelper.constructKickstartFileUrl(rhnURL, channelName, d.getLabel(), f
- .getRelativeFilename());
- InputStream in = provider.getInputStream(url);
- assert (in != null);
- if (isMD5SumTesting) {
- String actualMd5sum = MessageDigestGenerator.getDigestString(in);
- String expectedMd5sum = f.getMd5sum();
- System.out.println("MD5SUMs actual = " + actualMd5sum + ", expected = " + expectedMd5sum);
- assert (StringUtils.equalsIgnoreCase(actualMd5sum, expectedMd5sum));
- }
- } catch (Exception e) {
- e.printStackTrace();
- assert false;
- }
-
- }
- }
- System.out.println("testSynchronizeDistribution finished.");
- }
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNSSLCertReaderTest.java b/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNSSLCertReaderTest.java
deleted file mode 100644
index 8316c3d..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNSSLCertReaderTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.rhq.enterprise.server.plugins.rhnhosted;
-
-import org.testng.annotations.Test;
-
-import java.util.List;
-import java.security.KeyStore;
-import java.io.FileInputStream;
-import java.io.PrintStream;
-import java.net.ServerSocket;
-import java.net.Socket;
-
-import java.security.cert.X509Certificate;
-import javax.net.ssl.KeyManagerFactory;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.SSLServerSocketFactory;
-
-public class RHNSSLCertReaderTest
-{
-
- String cert1Data = RHNSSLCertReader.BEGIN_CERT + "blahblahblah12345\nblahblah\nblah\n" +
- RHNSSLCertReader.END_CERT;
- String cert2Data = RHNSSLCertReader.BEGIN_CERT + "blahblahblah98765434\nblahblah2\nblah3\n" +
- RHNSSLCertReader.END_CERT;
-
- String dummyData = "Dummy Data\n" +
- "Dummy Data 1\n" +
- cert1Data +
- "Dummy Data 2\n" +
- cert2Data;
-
- String sampleSSLCert = RHNSSLCertReader.BEGIN_CERT +
- "MIIDODCCAvWgAwIBAgIESuiB4TALBgcqhkjOOAQDBQAwfzELMAkGA1UEBhMCTkMxDjAMBgNVBAgT\n" +
- "BVN0YXRlMQ0wCwYDVQQHEwRDaXR5MRkwFwYDVQQKExBPcmdhbml6YXRpb25OYW1lMRkwFwYDVQQL\n" +
- "ExBPcmdhbml6YXRpb25Vbml0MRswGQYDVQQDExJGaXJzdE5hbWUgTGFzdE5hbWUwHhcNMDkxMDI4\n" +
- "MTczOTQ1WhcNMTAwMTI2MTczOTQ1WjB/MQswCQYDVQQGEwJOQzEOMAwGA1UECBMFU3RhdGUxDTAL\n" +
- "BgNVBAcTBENpdHkxGTAXBgNVBAoTEE9yZ2FuaXphdGlvbk5hbWUxGTAXBgNVBAsTEE9yZ2FuaXph\n" +
- "dGlvblVuaXQxGzAZBgNVBAMTEkZpcnN0TmFtZSBMYXN0TmFtZTCCAbcwggEsBgcqhkjOOAQBMIIB\n" +
- "HwKBgQD9f1OBHXUSKVLfSpwu7OTn9hG3UjzvRADDHj+AtlEmaUVdQCJR+1k9jVj6v8X1ujD2y5tV\n" +
- "bNeBO4AdNG/yZmC3a5lQpaSfn+gEexAiwk+7qdf+t8Yb+DtX58aophUPBPuD9tPFHsMCNVQTWhaR\n" +
- "MvZ1864rYdcq7/IiAxmd0UgBxwIVAJdgUI8VIwvMspK5gqLrhAvwWBz1AoGBAPfhoIXWmz3ey7yr\n" +
- "XDa4V7l5lK+7+jrqgvlXTAs9B4JnUVlXjrrUWU/mcQcQgYC0SRZxI+hMKBYTt88JMozIpuE8FnqL\n" +
- "VHyNKOCjrh4rs6Z1kW6jfwv6ITVi8ftiegEkO8yk8b6oUZCJqIPf4VrlnwaSi2ZegHtVJWQBTDv+\n" +
- "z0kqA4GEAAKBgG+MiW74SeEG8J79c6gzjQZ6ViFvA4oEYIMUNReZ6V3EX5Z5s99qJPIdXb/hICov\n" +
- "T05z3Ug89ARkCsTWEEFwLx+VjnP2qejeTR8VUkkYNujL2ZFHJk7TBfTrpuatUbEINI1drdV6Br0/\n" +
- "iI7wyP6VW/B2HhvW1dQy1Bq7+GuCNg9DMAsGByqGSM44BAMFAAMwADAtAhQA1HJVck/E2v6va473\n" +
- "V0UxRsKp3QIVAIqj+Do5FKdXxTpQETJleh6Y/uSi\n" +
- RHNSSLCertReader.END_CERT;
-
- @Test
- public void testGetCertText() throws Exception {
- List<String> certs = RHNSSLCertReader.getCertText(dummyData);
- assert certs.size() == 2;
- String parsedCert1 = certs.get(0);
- String parsedCert2 = certs.get(1);
- assert cert1Data.compareTo(parsedCert1) == 0;
- assert cert2Data.compareTo(parsedCert2) == 0;
- }
-
- @Test
- public void testGetSSLCertificates() throws Exception {
- List<X509Certificate> certs = RHNSSLCertReader.getSSLCertificates(sampleSSLCert);
- System.err.println("cert = " + certs.get(0));
- assert certs.size() == 1;
- }
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNSSLSocketFactoryTest.java b/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNSSLSocketFactoryTest.java
deleted file mode 100644
index dc17f15..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/RHNSSLSocketFactoryTest.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.rhq.enterprise.server.plugins.rhnhosted;
-
-import java.io.File;
-import java.net.URL;
-
-import javax.net.ssl.HttpsURLConnection;
-import javax.net.ssl.SSLHandshakeException;
-import javax.net.ssl.SSLSocketFactory;
-
-import org.testng.annotations.Test;
-
-public class RHNSSLSocketFactoryTest {
- String goodUrl = "https://satellite.rhn.redhat.com/rpc/api";
- String badUrl = "https://bankofamerica.com";
- String certPath = RHNConstants.DEFAULT_SSL_CERT_PATH;
-
- protected boolean checkCertPathExists() {
- File f = new File(RHNConstants.DEFAULT_SSL_CERT_PATH);
- if (f.exists() && f.canRead()) {
- return true;
- }
- return false;
- }
-
- @Test
- public void testBasicConnectionNoCert() {
- try {
- if (!checkCertPathExists()) {
- System.out.println("Skipping testBasicConnectionNoCert() since can't find the SSL cert at: "
- + RHNConstants.DEFAULT_SSL_CERT_PATH);
- return;
- }
- HttpsURLConnection conn = (HttpsURLConnection) new URL(goodUrl).openConnection();
- conn.connect();
- // On a clean system, this will not execute, a SSLHandshakeException will be thrown
- // if the below line does execute, then it means that the keystore already has the
- // certs loaded.
- System.out.println("Looks like ssl cert is already loaded into keystore.");
- } catch (SSLHandshakeException e) {
- System.out.println("Caught SSLHandshake exception from connecting with no cert info as expected.");
- } catch (Exception e) {
- e.printStackTrace();
- assert false;
- }
- }
-
- @Test
- public void testGetSSLSocketFactoryFromFile() {
- try {
- if (!checkCertPathExists()) {
- System.out.println("Skipping testBasicConnectionNoCert() since can't find the SSL cert at: "
- + RHNConstants.DEFAULT_SSL_CERT_PATH);
- return;
- }
- SSLSocketFactory sslf = RHNSSLSocketFactory.getSSLSocketFactory(certPath);
- HttpsURLConnection conn = (HttpsURLConnection) new URL(goodUrl).openConnection();
- conn.setSSLSocketFactory(sslf);
- conn.connect();
- System.out.println("Successful Connection");
- } catch (Exception e) {
- e.printStackTrace();
- assert false;
- }
- }
-
- @Test
- public void testGetSSLSocketFactoryFromFileBadURL() {
- try {
- if (!checkCertPathExists()) {
- System.out.println("Skipping testBasicConnectionNoCert() since can't find the SSL cert at: "
- + RHNConstants.DEFAULT_SSL_CERT_PATH);
- return;
- }
- SSLSocketFactory sslf = RHNSSLSocketFactory.getSSLSocketFactory(certPath);
- HttpsURLConnection conn = (HttpsURLConnection) new URL(badUrl).openConnection();
- conn.setSSLSocketFactory(sslf);
- conn.connect();
- assert false;
- } catch (SSLHandshakeException e) {
- System.out.println("Caught cert validation exception as we wanted.");
- } catch (Exception e) {
- e.printStackTrace();
- assert false;
- }
- }
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/BasicRHNTest.java b/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/BasicRHNTest.java
deleted file mode 100644
index 7ad8701..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/BasicRHNTest.java
+++ /dev/null
@@ -1,627 +0,0 @@
-package org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.bind.JAXBElement;
-
-import junit.framework.TestCase;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringUtils;
-import org.apache.xmlrpc.XmlRpcException;
-import org.apache.xmlrpc.client.XmlRpcClient;
-import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
-
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnChannelFamilyType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnChannelType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnErratumType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnKickstartableTreeType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnPackageShortType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnPackageType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnProductNameType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnSatelliteType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnSourcePackageType;
-
-/**
- * Unit test for checking xmlrpc communication with RHN hosted
- */
-public class BasicRHNTest extends TestCase {
- public String systemIdPath = "./src/test/resources/systemid";
- public String badSystemIdPath = "./src/test/resources/systemid-BAD-ID";
-
- protected String serverUrl = "http://satellite.rhn.redhat.com";
- protected boolean debugDumpFile = true;
-
- protected Map getRequestProperties() {
- Map reqProps = new HashMap();
- reqProps.put("X-RHN-Satellite-XML-Dump-Version", "3.3");
- return reqProps;
- }
-
- protected String getSystemId() throws Exception {
- return getSystemId(systemIdPath);
- }
-
- protected String getSystemId(String path) throws Exception {
- if (new File(path).exists() == false) {
- return "";
- }
- return FileUtils.readFileToString(new File(path));
- }
-
- /**
- * Tests get version
- * */
- public void testGetVersion() throws Exception {
- boolean success = true;
-
- try {
- XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
- config.setServerURL(new URL(serverUrl + "/rpc/api"));
- XmlRpcClient client = new XmlRpcClient();
- client.setConfig(config);
- String version = (String) client.execute("api.getVersion", new Object[] {});
- assertTrue(version.length() > 0);
- } catch (Exception e) {
- e.printStackTrace();
- success = false;
- }
- assertTrue(success);
- }
-
- public void testAuthenticationLogin() throws Exception {
- boolean success = true;
-
- try {
- String systemid = getSystemId();
- if (StringUtils.isBlank(systemid)) {
- System.out.println("Skipping test since systemid is not readable");
- return;
- }
- XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
- config.setServerURL(new URL(serverUrl + "/SAT"));
- XmlRpcClient client = new XmlRpcClient();
- client.setConfig(config);
- CustomReqPropTransportFactory transportFactory = new CustomReqPropTransportFactory(client);
- transportFactory.setRequestProperties(getRequestProperties());
- client.setTransportFactory(transportFactory);
-
- Object[] params = new Object[] { systemid };
- Map result = (Map) client.execute("authentication.login", params);
- for (Object key : result.keySet()) {
- System.err.println("Header: " + key + " = " + result.get(key));
- }
- } catch (Exception e) {
- e.printStackTrace();
- success = false;
- }
- assertTrue(success);
- }
-
- public void testAuth() throws Exception {
- boolean success = true;
-
- try {
- String systemid = getSystemId();
- if (StringUtils.isBlank(systemid)) {
- System.out.println("Skipping test since systemid is not readable");
- return;
- }
- XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
- config.setServerURL(new URL(serverUrl + "/SAT"));
- XmlRpcClient client = new XmlRpcClient();
- client.setConfig(config);
- CustomReqPropTransportFactory transportFactory = new CustomReqPropTransportFactory(client);
- transportFactory.setRequestProperties(getRequestProperties());
- client.setTransportFactory(transportFactory);
-
- Object[] params = new Object[] { systemid };
- Integer result = (Integer) client.execute("authentication.check", params);
- assertTrue(result.intValue() == 1);
- } catch (Exception e) {
- e.printStackTrace();
- success = false;
- }
- assertTrue(success);
- }
-
- public void testAuth_BadSystemId() throws Exception {
- boolean success = false;
-
- try {
- String systemid = getSystemId(badSystemIdPath);
- if (StringUtils.isBlank(systemid)) {
- System.out.println("Skipping test since systemid is not readable");
- return;
- }
- XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
- config.setServerURL(new URL(serverUrl + "/SAT"));
- XmlRpcClient client = new XmlRpcClient();
- client.setConfig(config);
- CustomReqPropTransportFactory transportFactory = new CustomReqPropTransportFactory(client);
- transportFactory.setRequestProperties(getRequestProperties());
- client.setTransportFactory(transportFactory);
-
- Object[] params = new Object[] { systemid };
- Integer result = (Integer) client.execute("authentication.check", params);
- assertTrue(false); // We shouldn't reach here, as an exception should be thrown
- } catch (XmlRpcException e) {
- success = true;
- assertTrue(e.getMessage().contains("Invalid System Credentials"));
- assertTrue(e.code == -9);
- }
- assertTrue(success);
- }
-
- public void testDumpProductNames() throws Exception {
- boolean success = true;
-
- try {
- String systemid = getSystemId();
- if (StringUtils.isBlank(systemid)) {
- System.out.println("Skipping test since systemid is not readable");
- return;
- }
-
- XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
- config.setServerURL(new URL(serverUrl + "/SAT-DUMP"));
- XmlRpcClient client = new XmlRpcClient();
- client.setConfig(config);
- RhnJaxbTransportFactory transportFactory = new RhnJaxbTransportFactory(client);
- transportFactory.setRequestProperties(getRequestProperties());
- transportFactory.setJaxbDomain("org.rhq.enterprise.server.plugins.rhnhosted.xml");
- transportFactory.setDumpMessageToFile(debugDumpFile);
- transportFactory.setDumpFilePath("/tmp/sample-rhnhosted-dump.product_names.xml");
- client.setTransportFactory(transportFactory);
-
- Object[] params = new Object[] { systemid };
- JAXBElement<RhnSatelliteType> result = (JAXBElement) client.execute("dump.product_names", params);
- RhnSatelliteType sat = result.getValue();
- List<RhnProductNameType> names = sat.getRhnProductNames().getRhnProductName();
- assertTrue(names.size() > 0);
- for (RhnProductNameType name : names) {
- assertFalse(StringUtils.isBlank(name.getName()));
- assertFalse(StringUtils.isBlank(name.getLabel()));
- }
- } catch (Exception e) {
- e.printStackTrace();
- success = false;
- }
- assertTrue(success);
- }
-
- public void testJaxbCallWithBadSystemId() throws Exception {
- // Point of this test is to use a systemid which is not valid
- // We want to see an exception thrown from the xmlrpc code with a proper
- // message and error code
- boolean success = false;
-
- try {
- String systemid = getSystemId(badSystemIdPath);
- //String systemid = getSystemId();
- if (StringUtils.isBlank(systemid)) {
- System.out.println("Skipping test since systemid is not readable");
- return;
- }
-
- XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
- config.setServerURL(new URL(serverUrl + "/SAT-DUMP"));
- XmlRpcClient client = new XmlRpcClient();
- client.setConfig(config);
- RhnJaxbTransportFactory transportFactory = new RhnJaxbTransportFactory(client);
- transportFactory.setRequestProperties(getRequestProperties());
- transportFactory.setJaxbDomain("org.rhq.enterprise.server.plugins.rhnhosted.xml");
- transportFactory.setDumpMessageToFile(debugDumpFile);
- transportFactory.setDumpFilePath("/tmp/sample-rhnhosted-dump.product_names.xml");
- client.setTransportFactory(transportFactory);
-
- Object[] params = new Object[] { systemid };
- JAXBElement<RhnSatelliteType> result = (JAXBElement) client.execute("dump.product_names", params);
- assertTrue(false); //We should never get here, an exception should be thrown
- } catch (XmlRpcException e) {
- assertTrue(e.getMessage().contains("Invalid System Credentials"));
- assertTrue(e.code == -9);
- success = true;
- }
- assertTrue(success);
- }
-
- public void testDumpChannelFamilies() throws Exception {
- boolean success = true;
-
- try {
- String systemid = getSystemId();
- if (StringUtils.isBlank(systemid)) {
- System.out.println("Skipping test since systemid is not readable");
- return;
- }
-
- XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
- config.setServerURL(new URL(serverUrl + "/SAT-DUMP"));
- XmlRpcClient client = new XmlRpcClient();
- client.setConfig(config);
- RhnJaxbTransportFactory transportFactory = new RhnJaxbTransportFactory(client);
- transportFactory.setRequestProperties(getRequestProperties());
- transportFactory.setJaxbDomain("org.rhq.enterprise.server.plugins.rhnhosted.xml");
- transportFactory.setDumpMessageToFile(debugDumpFile);
- transportFactory.setDumpFilePath("/tmp/sample-rhnhosted-dump.channel_families.xml");
- client.setTransportFactory(transportFactory);
-
- Object[] params = new Object[] { systemid };
- JAXBElement<RhnSatelliteType> result = (JAXBElement) client.execute("dump.channel_families", params);
- RhnSatelliteType sat = result.getValue();
- List<RhnChannelFamilyType> families = sat.getRhnChannelFamilies().getRhnChannelFamily();
- for (RhnChannelFamilyType family : families) {
- /* Note that MaxMembers, VirtSubLevelLabel, and VirtSubLevelName may be null */
- assertFalse(StringUtils.isBlank(family.getChannelLabels()));
- assertFalse(StringUtils.isBlank(family.getId()));
- assertFalse(StringUtils.isBlank(family.getLabel()));
- }
- } catch (Exception e) {
- e.printStackTrace();
- success = false;
- }
- assertTrue(success);
- }
-
- public void testDumpChannels() throws Exception {
- boolean success = true;
-
- try {
- String systemid = getSystemId();
- if (StringUtils.isBlank(systemid)) {
- System.out.println("Skipping test since systemid is not readable");
- return;
- }
-
- XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
- config.setServerURL(new URL(serverUrl + "/SAT-DUMP"));
- XmlRpcClient client = new XmlRpcClient();
- client.setConfig(config);
- RhnJaxbTransportFactory transportFactory = new RhnJaxbTransportFactory(client);
- transportFactory.setRequestProperties(getRequestProperties());
- transportFactory.setJaxbDomain("org.rhq.enterprise.server.plugins.rhnhosted.xml");
- transportFactory.setDumpMessageToFile(debugDumpFile);
- transportFactory.setDumpFilePath("/tmp/sample-rhnhosted-dump.channels.xml");
- client.setTransportFactory(transportFactory);
-
- List<String> channel_labels = new ArrayList<String>();
- channel_labels.add("rhel-i386-server-5");
- channel_labels.add("rhn-tools-rhel-i386-server-5");
- channel_labels.add("rhel-x86_64-server-5");
- channel_labels.add("rhn-tools-rhel-x86_64-server-5");
- Object[] params = new Object[] { systemid, channel_labels };
- JAXBElement<RhnSatelliteType> result = (JAXBElement) client.execute("dump.channels", params);
- RhnSatelliteType sat = result.getValue();
-
- List<RhnChannelType> channels = sat.getRhnChannels().getRhnChannel();
- for (RhnChannelType channel : channels) {
- assertFalse(StringUtils.isBlank(channel.getRhnChannelName()));
- assertFalse(StringUtils.isBlank(channel.getRhnChannelSummary()));
- String packages = channel.getPackages();
- assertFalse(StringUtils.isBlank(packages));
- String[] pkgIds = packages.split(" ");
- assertTrue(pkgIds.length > 1);
- }
- } catch (Exception e) {
- e.printStackTrace();
- success = false;
- }
- assertTrue(success);
- }
-
- public void testDumpPackageShort() throws Exception {
- boolean success = true;
-
- try {
- String systemid = getSystemId();
- if (StringUtils.isBlank(systemid)) {
- System.out.println("Skipping test since systemid is not readable");
- return;
- }
-
- XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
- config.setServerURL(new URL(serverUrl + "/SAT-DUMP"));
- XmlRpcClient client = new XmlRpcClient();
- client.setConfig(config);
- RhnJaxbTransportFactory transportFactory = new RhnJaxbTransportFactory(client);
- transportFactory.setRequestProperties(getRequestProperties());
- transportFactory.setJaxbDomain("org.rhq.enterprise.server.plugins.rhnhosted.xml");
- transportFactory.setDumpMessageToFile(debugDumpFile);
- transportFactory.setDumpFilePath("/tmp/sample-rhnhosted-dump.packages_short.xml");
- client.setTransportFactory(transportFactory);
- List<String> reqPackages = new ArrayList<String>();
- reqPackages.add("rhn-package-386981");
- reqPackages.add("rhn-package-386982");
- reqPackages.add("rhn-package-386983");
- reqPackages.add("rhn-package-386984");
- Object[] params = new Object[] { systemid, reqPackages };
- JAXBElement<RhnSatelliteType> result = (JAXBElement) client.execute("dump.packages_short", params);
- RhnSatelliteType sat = result.getValue();
- List<RhnPackageShortType> pkgs = sat.getRhnPackagesShort().getRhnPackageShort();
- assertTrue(pkgs.size() == reqPackages.size());
-
- for (RhnPackageShortType pkgShort : pkgs) {
- assertFalse(StringUtils.isBlank(pkgShort.getId()));
- assertFalse(StringUtils.isBlank(pkgShort.getName()));
- assertFalse(StringUtils.isBlank(pkgShort.getVersion()));
- assertFalse(StringUtils.isBlank(pkgShort.getRelease()));
- assertFalse(StringUtils.isBlank(pkgShort.getPackageSize()));
- assertFalse(StringUtils.isBlank(pkgShort.getMd5Sum()));
- assertFalse(StringUtils.isBlank(pkgShort.getLastModified()));
- }
- } catch (Exception e) {
- e.printStackTrace();
- success = false;
- }
- assertTrue(success);
- }
-
- public void testDumpPackages() throws Exception {
- boolean success = true;
-
- try {
- String systemid = getSystemId();
- if (StringUtils.isBlank(systemid)) {
- System.out.println("Skipping test since systemid is not readable");
- return;
- }
-
- XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
- config.setServerURL(new URL(serverUrl + "/SAT-DUMP"));
- XmlRpcClient client = new XmlRpcClient();
- client.setConfig(config);
- RhnJaxbTransportFactory transportFactory = new RhnJaxbTransportFactory(client);
- transportFactory.setRequestProperties(getRequestProperties());
- transportFactory.setJaxbDomain("org.rhq.enterprise.server.plugins.rhnhosted.xml");
- transportFactory.setDumpMessageToFile(debugDumpFile);
- transportFactory.setDumpFilePath("/tmp/sample-rhnhosted-dump.packages.xml");
- client.setTransportFactory(transportFactory);
-
- List<String> reqPackages = new ArrayList<String>();
- reqPackages.add("rhn-package-386981");
- reqPackages.add("rhn-package-386982");
- reqPackages.add("rhn-package-386983");
- reqPackages.add("rhn-package-386984");
- Object[] params = new Object[] { systemid, reqPackages };
- JAXBElement<RhnSatelliteType> result = (JAXBElement) client.execute("dump.packages", params);
- RhnSatelliteType sat = result.getValue();
-
- List<RhnPackageType> pkgs = sat.getRhnPackages().getRhnPackage();
- assertTrue(pkgs.size() == reqPackages.size());
-
- for (RhnPackageType pkg : pkgs) {
- assertFalse(StringUtils.isBlank(pkg.getRhnPackageSummary()));
- assertFalse(StringUtils.isBlank(pkg.getRhnPackageDescription()));
- }
- } catch (Exception e) {
- e.printStackTrace();
- success = false;
- }
- assertTrue(success);
- }
-
- public void testDumpSourcePackages() throws Exception {
- boolean success = true;
-
- try {
- String systemid = getSystemId();
- if (StringUtils.isBlank(systemid)) {
- System.out.println("Skipping test since systemid is not readable");
- return;
- }
-
- XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
- config.setServerURL(new URL(serverUrl + "/SAT-DUMP"));
- XmlRpcClient client = new XmlRpcClient();
- client.setConfig(config);
- RhnJaxbTransportFactory transportFactory = new RhnJaxbTransportFactory(client);
- transportFactory.setRequestProperties(getRequestProperties());
- transportFactory.setJaxbDomain("org.rhq.enterprise.server.plugins.rhnhosted.xml");
- transportFactory.setDumpMessageToFile(debugDumpFile);
- transportFactory.setDumpFilePath("/tmp/sample-rhnhosted-dump.source_packages.xml");
- client.setTransportFactory(transportFactory);
-
- List<String> reqPackages = new ArrayList<String>();
- // To get data for this call, look at channels <source-packages>
- reqPackages.add("rhn-source-package-41215");
- reqPackages.add("rhn-source-package-41217");
- reqPackages.add("rhn-source-package-41218");
- reqPackages.add("rhn-source-package-41228");
- Object[] params = new Object[] { systemid, reqPackages };
- JAXBElement<RhnSatelliteType> result = (JAXBElement) client.execute("dump.source_packages", params);
- RhnSatelliteType sat = result.getValue();
-
- List<RhnSourcePackageType> pkgs = sat.getRhnSourcePackages().getRhnSourcePackage();
- assertTrue(pkgs.size() == reqPackages.size());
-
- for (RhnSourcePackageType pkg : pkgs) {
- assertFalse(StringUtils.isBlank(pkg.getBuildTime()));
- assertFalse(StringUtils.isBlank(pkg.getId()));
- assertFalse(StringUtils.isBlank(pkg.getLastModified()));
- assertFalse(StringUtils.isBlank(pkg.getLastModified()));
- assertFalse(StringUtils.isBlank(pkg.getMd5Sum()));
- assertFalse(StringUtils.isBlank(pkg.getPackageSize()));
- assertFalse(StringUtils.isBlank(pkg.getPayloadSize()));
- assertFalse(StringUtils.isBlank(pkg.getRpmVersion()));
- assertFalse(StringUtils.isBlank(pkg.getSourceRpm()));
- System.err.println("SourceRPM = " + pkg.getSourceRpm());
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- success = false;
- }
- assertTrue(success);
- }
-
- public void testDumpKickstartableTrees() throws Exception {
- boolean success = true;
-
- try {
- String systemid = getSystemId();
- if (StringUtils.isBlank(systemid)) {
- System.out.println("Skipping test since systemid is not readable");
- return;
- }
-
- XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
- config.setServerURL(new URL(serverUrl + "/SAT-DUMP"));
- XmlRpcClient client = new XmlRpcClient();
- client.setConfig(config);
- RhnJaxbTransportFactory transportFactory = new RhnJaxbTransportFactory(client);
- transportFactory.setRequestProperties(getRequestProperties());
- transportFactory.setJaxbDomain("org.rhq.enterprise.server.plugins.rhnhosted.xml");
- transportFactory.setDumpMessageToFile(debugDumpFile);
- transportFactory.setDumpFilePath("/tmp/sample-rhnhosted-dump.kickstartable_trees.xml");
- client.setTransportFactory(transportFactory);
-
- List<String> reqLabels = new ArrayList<String>();
- // To get data for this call, look at channels kickstartable-trees=""
- reqLabels.add("ks-rhel-i386-server-5");
- reqLabels.add("ks-rhel-i386-server-5-u1");
- reqLabels.add("ks-rhel-i386-server-5-u2");
- reqLabels.add("ks-rhel-i386-server-5-u3");
- reqLabels.add("ks-rhel-i386-server-5-u4");
- Object[] params = new Object[] { systemid, reqLabels };
- JAXBElement<RhnSatelliteType> result = (JAXBElement) client.execute("dump.kickstartable_trees", params);
- RhnSatelliteType sat = result.getValue();
-
- List<RhnKickstartableTreeType> trees = sat.getRhnKickstartableTrees().getRhnKickstartableTree();
-
- for (RhnKickstartableTreeType t : trees) {
- assertFalse(StringUtils.isBlank(t.getBasePath()));
- assertFalse(StringUtils.isBlank(t.getBootImage()));
- assertFalse(StringUtils.isBlank(t.getChannel()));
- assertFalse(StringUtils.isBlank(t.getInstallTypeLabel()));
- assertFalse(StringUtils.isBlank(t.getInstallTypeName()));
- assertFalse(StringUtils.isBlank(t.getKstreeTypeLabel()));
- assertFalse(StringUtils.isBlank(t.getKstreeTypeName()));
- assertFalse(StringUtils.isBlank(t.getLabel()));
- assertFalse(StringUtils.isBlank(t.getLastModified()));
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- success = false;
- }
- assertTrue(success);
- }
-
- public void testDumpErrata() throws Exception {
- boolean success = true;
-
- try {
- String systemid = getSystemId();
- if (StringUtils.isBlank(systemid)) {
- System.out.println("Skipping test since systemid is not readable");
- return;
- }
-
- XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
- config.setServerURL(new URL(serverUrl + "/SAT-DUMP"));
- XmlRpcClient client = new XmlRpcClient();
- client.setConfig(config);
-
- RhnJaxbTransportFactory transportFactory = new RhnJaxbTransportFactory(client);
- transportFactory.setRequestProperties(getRequestProperties());
- transportFactory.setJaxbDomain("org.rhq.enterprise.server.plugins.rhnhosted.xml");
- transportFactory.setDumpMessageToFile(debugDumpFile);
- transportFactory.setDumpFilePath("/tmp/sample-rhnhosted-dump.errata.xml");
- client.setTransportFactory(transportFactory);
-
- List<String> errataIds = new ArrayList<String>();
-
- errataIds.add("rhn-erratum-6183");
- errataIds.add("rhn-erratum-6184");
- errataIds.add("rhn-erratum-6182");
- Object[] params = new Object[] { systemid, errataIds };
-
- JAXBElement<RhnSatelliteType> result = (JAXBElement) client.execute("dump.errata", params);
- RhnSatelliteType sat = result.getValue();
-
- List<RhnErratumType> errata = sat.getRhnErrata().getRhnErratum();
-
- for (RhnErratumType e : errata) {
- assertFalse(StringUtils.isBlank(e.getAdvisory()));
- assertFalse(StringUtils.isBlank(e.getChannels()));
- assertFalse(StringUtils.isBlank(e.getPackages()));
- assertFalse(StringUtils.isBlank(e.getRhnErratumAdvisoryName()));
- assertFalse(StringUtils.isBlank(e.getRhnErratumAdvisoryType()));
- assertFalse(StringUtils.isBlank(e.getRhnErratumDescription()));
- assertFalse(StringUtils.isBlank(e.getRhnErratumSynopsis()));
- assertTrue(e.getRhnErratumBugs().getRhnErratumBug().size() > 0);
-
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- success = false;
- }
- assertTrue(success);
- }
-
- /**
- Sample info
- handler = /SAT/$RHN/rhel-x86_64-server-5/getPackage/ipsec-tools-0.6.5-6.x86_64.rpm
- header: X-RHN-Auth-Server-Time = 1255722893.21
- header: X-Client-Version = 1
- header: X-RHN-Transport-Capability = ['follow-redirects=2']
- header: X-RHN-Server-Id = XXXXXXXXXX
- header: X-RHN-Auth = zVS7ood7Vg4I+xb2yZ6PJA==
- header: X-RHN-Auth-User-Id =
- header: X-RHN-Auth-Expire-Offset = 7200.0
- header: X-Info = ['RPC Processor (C) Red Hat, Inc (version 135431)']
- */
- public void REQUIRES_AUTHtestGetPackageHTTPClient() throws Exception {
- boolean success = true;
- try {
- String systemid = getSystemId();
- if (StringUtils.isBlank(systemid)) {
- System.out.println("Skipping test since systemid is not readable");
- return;
- }
-
- String extra = "/SAT/$RHN/rhel-x86_64-server-5/getPackage/openhpi-2.4.1-6.el5.1.x86_64.rpm";
- URL url = new URL(serverUrl + extra);
- HttpURLConnection conn = (HttpURLConnection) url.openConnection();
- conn.setRequestProperty("X-Client-Version", "1");
- conn.setRequestProperty("X-RHN-Server-Id", "XXXXXXXXXX");
- conn.setRequestProperty("X-RHN-Auth", "zVS7ood7Vg4I+xb2yZ6PJA==");
- conn.setRequestProperty("X-RHN-Auth-User-Id", "");
- conn.setRequestProperty("X-RHN-Auth-Expire-Offset", "7200.0");
- conn.setRequestProperty("X-RHN-Auth-Server-Time", "1255722893.21");
-
- conn.setRequestMethod("GET");
- conn.connect();
- InputStream in = conn.getInputStream();
-
- String rpmFileName = "/tmp/getPackage-rpmFile.rpm";
- OutputStream out = new FileOutputStream(rpmFileName);
-
- // Transfer bytes from in to out
- byte[] buf = new byte[1024];
- int len;
- while ((len = in.read(buf)) > 0) {
- out.write(buf, 0, len);
- }
- in.close();
- out.close();
- conn.disconnect();
- } catch (Exception e) {
- e.printStackTrace();
- success = false;
- }
- assertTrue(success);
-
- }
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/MockRhnHttpURLConnection.java b/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/MockRhnHttpURLConnection.java
deleted file mode 100644
index a355d3a..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/MockRhnHttpURLConnection.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc;
-
-
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ByteArrayInputStream;
-import java.util.Map;
-import java.util.HashMap;
-
-
-public class MockRhnHttpURLConnection extends HttpURLConnection {
-
- protected Map props;
- protected URL url;
-
- public MockRhnHttpURLConnection(URL u) {
- super(u);
- props = new HashMap();
- }
-
- @Override
- public void setRequestProperty(String key, String value) {
- props.put(key, value);
- }
-
-
- @Override
- public String getRequestProperty(String key) {
- return (String)props.get(key);
- }
-
- public void disconnect() {
-
- }
-
- public boolean usingProxy() {
- return false;
- }
-
-
- public void connect() throws IOException {
-
- }
-
- @Override
- public InputStream getInputStream() throws IOException {
- return new ByteArrayInputStream("Test Data".getBytes());
- }
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/MockRhnXmlRpcExecutor.java b/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/MockRhnXmlRpcExecutor.java
deleted file mode 100644
index 6c18fb4..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/MockRhnXmlRpcExecutor.java
+++ /dev/null
@@ -1,274 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-package org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc;
-
-import java.lang.reflect.Field;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.bind.JAXBElement;
-import javax.xml.namespace.QName;
-
-import org.apache.xmlrpc.XmlRpcException;
-import org.apache.xmlrpc.client.XmlRpcClient;
-import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
-
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnChannelFamiliesType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnChannelFamilyType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnChannelType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnChannelsType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnErrataType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnErratumType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnKickstartFileType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnKickstartFilesType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnKickstartableTreeType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnKickstartableTreesType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnPackageShortType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnPackageType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnPackagesShortType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnPackagesType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnProductNameType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnProductNamesType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnSatelliteType;
-
-/**
- * @author mmccune
- *
- */
-public class MockRhnXmlRpcExecutor implements XmlRpcExecutor {
-
- private URL serverUrl;
-
- /**
- * Constructor
- * @param client to ignore
- */
- public MockRhnXmlRpcExecutor(XmlRpcClient client) {
- XmlRpcClientConfigImpl config = (XmlRpcClientConfigImpl) client.getClientConfig();
- this.serverUrl = config.getServerURL();
- }
-
- /* (non-Javadoc)
- * @see org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc.XmlRpcExecutor#execute(java.lang.String, java.lang.Object[])
- */
- public Object execute(String methodName, Object[] params) throws XmlRpcException {
- //for (Object object : params) {
- // System.out.println("parm: " + object);
- //}
-
- // Check auth
- String systemid = (String) params[0];
- // Check URL
- URLConnection conn;
- try {
- conn = serverUrl.openConnection();
- conn.connect();
- } catch (Exception e) {
- System.out.println("serverUrl: " + serverUrl);
- throw new XmlRpcException(0, "Failed to read server's response");
- }
- if (!systemid.contains("<name>system_id</name>")) {
- throw new XmlRpcException(-9, "Invalid System Credentials");
- }
- if (methodName.equals("authentication.check")) {
- if (systemid.contains("<value><string>ID-0000000000</string></value>")) {
- throw new XmlRpcException(-9, "Invalid System Credentials");
- }
- return new Integer(1);
- } else if (methodName.equals("authentication.login")) {
- Map retval = new HashMap();
- retval.put("foo", "bar");
- return retval;
- } else if (methodName.equals("dump.packages_short")) {
- JAXBElement element = getRhnSatelliteType();
- RhnSatelliteType retval = (RhnSatelliteType) element.getValue();
- List<String> pids = (List<String>) params[1];
- List<RhnPackageShortType> rhnPackageShort = new LinkedList<RhnPackageShortType>();
- for (String pid : pids) {
- // PackageInfoShort
- RhnPackageShortType pstype = new RhnPackageShortType();
- pstype.setId("1");
- pstype.setName("foo");
- pstype.setEpoch("0");
- pstype.setVersion("1");
- pstype.setRelease("1");
- pstype.setPackageSize("999");
- pstype.setMd5Sum("ABCDE");
- pstype.setLastModified("Wed Oct 21 16:03:26 PDT 2009");
- rhnPackageShort.add(pstype);
-
- RhnPackagesShortType pshortypes = new RhnPackagesShortType();
- setPrivateList("rhnPackageShort", pshortypes, rhnPackageShort);
- retval.setRhnPackagesShort(pshortypes);
-
- }
- return element;
- } else if (methodName.equals("dump.kickstartable_trees")) {
- JAXBElement element = getRhnSatelliteType();
- RhnSatelliteType retval = (RhnSatelliteType) element.getValue();
- RhnKickstartableTreesType parentKSTree = new RhnKickstartableTreesType();
- List<RhnKickstartableTreeType> ksTreeList = parentKSTree.getRhnKickstartableTree();
- List<String> kstids = (List<String>) params[1];
- for (String kid : kstids) {
- RhnKickstartableTreeType kstype = new RhnKickstartableTreeType();
- kstype.setBasePath("basepath");
- kstype.setBootImage("boot");
- kstype.setChannel("channel");
- kstype.setInstallTypeLabel("type");
- kstype.setInstallTypeName("name");
- kstype.setKstreeTypeLabel("label");
- kstype.setKstreeTypeName("type");
- kstype.setLabel("label");
- kstype.setLastModified("lastmod");
- // Need to add ks file
- RhnKickstartFilesType parentFiles = new RhnKickstartFilesType();
- List<RhnKickstartFileType> files = parentFiles.getRhnKickstartFile();
- RhnKickstartFileType f = new RhnKickstartFileType();
- f.setFileSize("192");
- f.setLastModified("tbd");
- f.setMd5Sum("tbd");
- f.setRelativePath("path");
- files.add(f);
- kstype.setRhnKickstartFiles(parentFiles);
-
- ksTreeList.add(kstype);
- }
- retval.setRhnKickstartableTrees(parentKSTree);
- return element;
- } else if (methodName.equals("dump.packages")) {
- if (systemid.contains("<value><string>ID-0000000000</string></value>")) {
- throw new XmlRpcException(-9, "Invalid System Credentials");
- }
- JAXBElement element = getRhnSatelliteType();
- RhnSatelliteType retval = (RhnSatelliteType) element.getValue();
- List<String> pids = (List<String>) params[1];
- List<RhnPackageType> rhnPackage = new LinkedList<RhnPackageType>();
- for (String pid : pids) {
- RhnPackageType ptype = new RhnPackageType();
- ptype.setId(pid);
- ptype.setLastModified("lastmod");
- ptype.setRhnPackageSummary("summary");
- ptype.setRhnPackageDescription("desc");
- rhnPackage.add(ptype);
-
- RhnPackagesType ptypes = new RhnPackagesType();
- setPrivateList("rhnPackage", ptypes, rhnPackage);
- retval.setRhnPackages(ptypes);
- }
- return element;
-
- } else if (methodName.equals("dump.errata")) {
- if (systemid.contains("<value><string>ID-0000000000</string></value>")) {
- throw new XmlRpcException(-9, "Invalid System Credentials");
- }
- JAXBElement element = getRhnSatelliteType();
- RhnSatelliteType retval = (RhnSatelliteType) element.getValue();
- RhnErrataType errata = new RhnErrataType();
- List<RhnErratumType> erratum = errata.getRhnErratum();
- List<String> erratumIds = (List<String>) params[1];
- List<RhnErratumType> rhnErrata = new LinkedList<RhnErratumType>();
- for (String eid : erratumIds) {
- RhnErratumType ptype = new RhnErratumType();
- ptype.setAdvisory("RHSA-2007:0540");
- ptype.setChannels("rhel-i386-server-5 rhel-x86_64-server-5 rhel-ia64-server-5 rhel-ppc-server-5");
- ptype.setPackages("rhn-package-410949 rhn-package-410950");
- ptype.setRhnErratumAdvisoryName("RHSA-2007:0540");
- ptype.setRhnErratumAdvisoryType("Security Advisory");
- ptype.setRhnErratumDescription("test errata description");
- ptype.setRhnErratumSynopsis("New package test");
- erratum.add(ptype);
-
- retval.setRhnErrata(errata);
- }
- return element;
-
- } else {
- return getRhnSatelliteType();
- }
-
- }
-
- private JAXBElement getRhnSatelliteType() {
- RhnSatelliteType sattype = new RhnSatelliteType();
-
- // ProductNames
- RhnProductNameType type = new RhnProductNameType();
- type.setLabel("some-prod-label");
- type.setName("some product name");
- List<RhnProductNameType> rhnProductName = new LinkedList<RhnProductNameType>();
- rhnProductName.add(type);
-
- RhnProductNamesType prodNamesType = new RhnProductNamesType();
- setPrivateList("rhnProductName", prodNamesType, rhnProductName);
- sattype.setRhnProductNames(prodNamesType);
-
- // ChannelFamilies
- List<RhnChannelFamilyType> rhnChannelFamily = new LinkedList<RhnChannelFamilyType>();
- RhnChannelFamilyType ctype = new RhnChannelFamilyType();
- ctype.setLabel("channel-fam-label");
- ctype.setMaxMembers("2112");
- ctype.setChannelLabels("foo,bar,baz");
- ctype.setId("1");
- rhnChannelFamily.add(ctype);
-
- RhnChannelFamiliesType cfamtypes = new RhnChannelFamiliesType();
- setPrivateList("rhnChannelFamily", cfamtypes, rhnChannelFamily);
- sattype.setRhnChannelFamilies(cfamtypes);
-
- // Channels
- List<RhnChannelType> rhnChannel = new LinkedList<RhnChannelType>();
- RhnChannelType chantype = new RhnChannelType();
- chantype.setLabel("channel-fam-label");
- chantype.setRhnChannelName("channel name");
- chantype.setRhnChannelSummary("channel summary");
- chantype.setPackages("1 2 3 4");
- chantype.setKickstartableTrees("ks-rhel-i386-server-5 ks-rhel-i386-server-5-u1 ks-rhel-i386-server-5-u2");
- rhnChannel.add(chantype);
-
- RhnChannelsType chantypes = new RhnChannelsType();
- setPrivateList("rhnChannel", chantypes, rhnChannel);
- sattype.setRhnChannels(chantypes);
-
- JAXBElement<RhnSatelliteType> element = new JAXBElement<RhnSatelliteType>(new QName(""),
- RhnSatelliteType.class, sattype);
- element.setValue(sattype);
- return element;
-
- }
-
- private void setPrivateList(String fieldName, Object oIn, List listIn) {
- try {
- Field privateListField = oIn.getClass().getDeclaredField(fieldName);
- privateListField.setAccessible(true);
- privateListField.set(oIn, listIn);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
-
- }
-
- public Object execute(String pMethodName, List pParams) throws XmlRpcException {
- return execute(pMethodName, pParams.toArray());
- }
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnCommTest.java b/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnCommTest.java
deleted file mode 100644
index b5477d3..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/test/java/org/rhq/enterprise/server/plugins/rhnhosted/xmlrpc/RhnCommTest.java
+++ /dev/null
@@ -1,399 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-package org.rhq.enterprise.server.plugins.rhnhosted.xmlrpc;
-
-import java.io.InputStream;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.apache.commons.lang.StringUtils;
-import org.apache.xmlrpc.XmlRpcException;
-
-import org.rhq.enterprise.server.plugins.rhnhosted.BaseRHNTest;
-import org.rhq.enterprise.server.plugins.rhnhosted.RHNHelper;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnChannelFamilyType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnChannelType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnErratumType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnKickstartFileType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnKickstartFilesType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnKickstartableTreeType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnPackageShortType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnPackageType;
-import org.rhq.enterprise.server.plugins.rhnhosted.xml.RhnProductNameType;
-
-public class RhnCommTest extends BaseRHNTest {
-
- public String serverUrl = "http://satellite.rhn.redhat.com";
-
- public static Test suite() {
- return new TestSuite(RhnCommTest.class);
- }
-
- protected RhnComm getRhnComm() {
- RhnComm comm = new RhnComm(serverUrl);
- return comm;
- }
-
- /**
- * method to find a file relative to the calling class. primarily
- * useful when writing tests that need access to external data.
- * this lets you put the data relative to the test class file.
- *
- * @param path the path, relative to caller's location
- * @return URL a URL referencing the file
- * @throws ClassNotFoundException if the calling class can not be found
- * (i.e., should not happen)
- */
- public static URL findTestData(String path) throws ClassNotFoundException {
- Throwable t = new Throwable();
- StackTraceElement[] ste = t.getStackTrace();
-
- String className = ste[1].getClassName();
- Class clazz = Class.forName(className);
-
- URL ret = clazz.getResource(path);
- return ret;
- }
-
- public void testCheckAuth() throws Exception {
- URL f = findTestData("RhnCommTest.class");
- System.out.println("foo: " + f);
- RhnDownloader downloader = new RhnDownloader(serverUrl);
- assertTrue(downloader.checkAuth(SYSTEM_ID));
- }
-
- public void testCheckAuth_withBadSystemId() throws Exception {
- boolean success = false;
- RhnDownloader downloader = new RhnDownloader(serverUrl);
- try {
- boolean result = downloader.checkAuth(SYSTEM_ID_BAD);
- assertTrue(false);
- } catch (XmlRpcException e) {
- assertTrue(e.getMessage().contains("Invalid System Credentials"));
- assertTrue(e.code == -9);
- success = true;
- } catch (Exception e) {
- e.printStackTrace();
- }
- assertTrue(success);
- }
-
- public void testCheckAuth_withBadURL() throws Exception {
- boolean success = false;
- RhnDownloader downloader = new RhnDownloader("http://badurl.example.com/BAD");
- try {
- boolean result = downloader.checkAuth(SYSTEM_ID);
- assertTrue(false);
- } catch (XmlRpcException e) {
- assertTrue(e.getMessage().contains("Failed to read server's response"));
- assertTrue(e.code == 0);
- success = true;
- }
- assertTrue(success);
- }
-
- public void testGetProductNames() throws Exception {
- boolean success = false;
- if (StringUtils.isBlank(SYSTEM_ID)) {
- System.out.println("Skipping test since systemid is not readable");
- return;
- }
-
- RhnComm comm = getRhnComm();
- List<RhnProductNameType> names = comm.getProductNames(SYSTEM_ID);
- assertTrue(names != null);
- assertTrue(names.size() > 0);
- for (RhnProductNameType name : names) {
- assertFalse(StringUtils.isBlank(name.getName()));
- assertFalse(StringUtils.isBlank(name.getLabel()));
- }
- success = true;
- assertTrue(success);
- }
-
- public void testGetChannelFamilies() throws Exception {
- boolean success = false;
- try {
- RhnComm comm = getRhnComm();
- List<RhnChannelFamilyType> families = comm.getChannelFamilies(SYSTEM_ID);
- assertTrue(families != null);
- assertTrue(families.size() > 0);
- for (RhnChannelFamilyType family : families) {
- /* Note that MaxMembers, VirtSubLevelLabel, and VirtSubLevelName may be null */
- assertFalse(StringUtils.isBlank(family.getChannelLabels()));
- assertFalse(StringUtils.isBlank(family.getId()));
- assertFalse(StringUtils.isBlank(family.getLabel()));
- }
- success = true;
- } catch (Exception e) {
- e.printStackTrace();
- throw (e);
- }
- assertTrue(success);
- }
-
- public void testGetChannels() throws Exception {
- boolean success = false;
- try {
- RhnComm comm = getRhnComm();
- List<String> channel_labels = new ArrayList<String>();
- channel_labels.add("rhel-i386-server-5");
- channel_labels.add("rhn-tools-rhel-i386-server-5");
- channel_labels.add("rhel-x86_64-server-5");
- channel_labels.add("rhn-tools-rhel-x86_64-server-5");
- List<RhnChannelType> channels = comm.getChannels(SYSTEM_ID, channel_labels);
- assertTrue(channels != null);
- assertTrue(channels.size() > 0);
- for (RhnChannelType channel : channels) {
- assertFalse(StringUtils.isBlank(channel.getRhnChannelName()));
- assertFalse(StringUtils.isBlank(channel.getRhnChannelSummary()));
- String packages = channel.getPackages();
- assertFalse(StringUtils.isBlank(packages));
- String[] pkgIds = packages.split(" ");
- assertTrue(pkgIds.length > 1);
- System.err.println("testGetChannels: number of packages " + pkgIds.length);
- System.err.println("testGetChannels: " + pkgIds[0]);
- }
- success = true;
- } catch (Exception e) {
- e.printStackTrace();
- throw (e);
- }
- assertTrue(success);
- }
-
- public void testGetPackageShortInfo() throws Exception {
- boolean success = false;
- try {
- RhnComm comm = getRhnComm();
- List<String> reqPackages = new ArrayList<String>();
- reqPackages.add("rhn-package-386981");
- reqPackages.add("rhn-package-386982");
- reqPackages.add("rhn-package-386983");
- reqPackages.add("rhn-package-386984");
- List<RhnPackageShortType> pkgs = comm.getPackageShortInfo(SYSTEM_ID, reqPackages);
- assertTrue(pkgs.size() == reqPackages.size());
- for (RhnPackageShortType pkgShort : pkgs) {
- assertFalse(StringUtils.isBlank(pkgShort.getId()));
- assertFalse(StringUtils.isBlank(pkgShort.getName()));
- assertFalse(StringUtils.isBlank(pkgShort.getVersion()));
- assertFalse(StringUtils.isBlank(pkgShort.getRelease()));
- assertFalse(StringUtils.isBlank(pkgShort.getPackageSize()));
- assertFalse(StringUtils.isBlank(pkgShort.getMd5Sum()));
- assertFalse(StringUtils.isBlank(pkgShort.getLastModified()));
- }
- success = true;
- } catch (Exception e) {
- e.printStackTrace();
- throw (e);
- }
- assertTrue(success);
- }
-
- public void testGetKickstartTreeMetadata() throws Exception {
- boolean success = false;
- try {
- RhnComm comm = getRhnComm();
- List<String> reqLabels = new ArrayList<String>();
- // To get data for this call, look at channels kickstartable-trees=""
- reqLabels.add("ks-rhel-i386-server-5");
- reqLabels.add("ks-rhel-i386-server-5-u1");
- reqLabels.add("ks-rhel-i386-server-5-u2");
- reqLabels.add("ks-rhel-i386-server-5-u3");
- reqLabels.add("ks-rhel-i386-server-5-u4");
-
- List<RhnKickstartableTreeType> ksTrees = comm.getKickstartTreeMetadata(SYSTEM_ID, reqLabels);
- assertTrue(reqLabels.size() == ksTrees.size());
- for (RhnKickstartableTreeType tree : ksTrees) {
- assertFalse(StringUtils.isBlank(tree.getBasePath()));
- assertFalse(StringUtils.isBlank(tree.getBootImage()));
- assertFalse(StringUtils.isBlank(tree.getChannel()));
- assertFalse(StringUtils.isBlank(tree.getInstallTypeLabel()));
- assertFalse(StringUtils.isBlank(tree.getInstallTypeName()));
- assertFalse(StringUtils.isBlank(tree.getKstreeTypeLabel()));
- assertFalse(StringUtils.isBlank(tree.getKstreeTypeName()));
- assertFalse(StringUtils.isBlank(tree.getLabel()));
- assertFalse(StringUtils.isBlank(tree.getLastModified()));
- }
- success = true;
- } catch (Exception e) {
- e.printStackTrace();
- throw (e);
- }
- assertTrue(success);
- }
-
- public void testGetPackageMetada() throws Exception {
- boolean success = false;
- try {
- RhnComm comm = getRhnComm();
- List<String> reqPackages = new ArrayList<String>();
- reqPackages.add("rhn-package-386981");
- reqPackages.add("rhn-package-386982");
- reqPackages.add("rhn-package-386983");
- reqPackages.add("rhn-package-386984");
- List<RhnPackageType> pkgs = comm.getPackageMetadata(SYSTEM_ID, reqPackages);
- assertTrue(pkgs.size() == reqPackages.size());
- for (RhnPackageType pkg : pkgs) {
- assertFalse(StringUtils.isBlank(pkg.getRhnPackageSummary()));
- assertFalse(StringUtils.isBlank(pkg.getRhnPackageDescription()));
- }
- success = true;
- } catch (Exception e) {
- e.printStackTrace();
- }
- assertTrue(success);
- }
-
- public void testGetPackageMetada_withBadSystemId() throws Exception {
- boolean success = false;
- try {
- RhnComm comm = getRhnComm();
- List<String> reqPackages = new ArrayList<String>();
- reqPackages.add("rhn-package-386981");
- reqPackages.add("rhn-package-386982");
- reqPackages.add("rhn-package-386983");
- reqPackages.add("rhn-package-386984");
- List<RhnPackageType> pkgs = comm.getPackageMetadata(SYSTEM_ID_BAD, reqPackages);
- assertTrue(false);
- } catch (XmlRpcException e) {
- assertTrue(e.getMessage().contains("Invalid System Credentials"));
- assertTrue(e.code == -9);
- success = true;
- }
- assertTrue(success);
- }
-
- public void testLogin() throws Exception {
- RhnDownloader comm = new RhnDownloader(serverUrl);
- Map credentials = comm.login(SYSTEM_ID);
- assertNotNull(credentials);
- }
-
- public void testGetRPM() throws Exception {
- boolean success = false;
- try {
- RhnDownloader comm = new RhnDownloader(serverUrl);
- String channelName = "rhel-x86_64-server-5";
- String rpmName = "openhpi-2.4.1-6.el5.1.x86_64.rpm";
- String saveFilePath = "./target/" + rpmName;
- String locationUrl = RHNHelper.constructPackageUrl(serverUrl, channelName, rpmName);
- InputStream is = comm.getFileStream(SYSTEM_ID, locationUrl);
- assertTrue(is != null);
- //exception should be thrown
- success = true;
- } catch (Exception e) {
- e.printStackTrace();
- throw (e);
- }
- assertTrue(success);
- }
-
- public void testGetRPM_withBadSystemId() throws Exception {
- String prop = System.getProperty(RhnHttpURLConnectionFactory.RHN_MOCK_HTTP_URL_CONNECTION);
- if (!StringUtils.isEmpty(prop)) {
- System.err.println("Skipping testGetRPM_withBadSystemId() since we are mocking the HTTP connection.");
- return;
- }
-
- boolean success = false;
- try {
- RhnDownloader comm = new RhnDownloader(serverUrl);
- String channelName = "rhel-x86_64-server-5";
- String rpmName = "openhpi-2.4.1-6.el5.1.x86_64.rpm";
- String locationUrl = RHNHelper.constructPackageUrl(serverUrl, channelName, rpmName);
- InputStream is = comm.getFileStream(SYSTEM_ID, locationUrl);
- //exception should be thrown
- assertTrue(false);
- } catch (XmlRpcException e) {
- assertTrue(e.getMessage().contains("Invalid System Credentials"));
- assertTrue(e.code == -9);
- success = true;
- }
- assertTrue(success);
- }
-
- public void testGetKickstartTree() throws Exception {
- boolean success = false;
- try {
- RhnComm comm = new RhnComm(serverUrl);
- String channelName = "rhel-i386-server-5";
- String ksTreeLabel = "ks-rhel-i386-server-5";
- List<String> reqLabels = new ArrayList<String>();
- // To get data for this call, look at channels kickstartable-trees=""
- reqLabels.add("ks-rhel-i386-server-5");
- List<RhnKickstartableTreeType> ksTrees = comm.getKickstartTreeMetadata(SYSTEM_ID, reqLabels);
- RhnKickstartableTreeType tree = ksTrees.get(0);
- RhnKickstartFilesType ksFiles = tree.getRhnKickstartFiles();
- System.err.println("ksFiles = " + ksFiles);
- List<RhnKickstartFileType> files = ksFiles.getRhnKickstartFile();
- RhnKickstartFileType f = files.get(0);
- //Only fetching one kickstart file to save time.
- //To do a more exhaustive test, simply interate of ks.getRhnKickstartFile()
- //and fetch each file, this will take a few minutes to complete.
- String ksRelativePath = f.getRelativePath();
- assertFalse(StringUtils.isBlank(ksRelativePath));
- System.err.println("fetching ks file: " + f.getRelativePath());
- RhnDownloader downloader = new RhnDownloader(serverUrl);
- String url = RHNHelper.constructKickstartFileUrl(serverUrl, channelName, ksTreeLabel, ksRelativePath);
- InputStream in = downloader.getFileStream(SYSTEM_ID, url);
- assertTrue(in != null);
- in.close();
- success = true;
- } catch (Exception e) {
- e.printStackTrace();
- }
- assertTrue(success);
- }
-
- public void testGetErrata() throws Exception {
- boolean success = false;
- try {
- RhnComm comm = getRhnComm();
-
- List<String> errataIds = new ArrayList<String>();
-
- errataIds.add("rhn-erratum-6183");
- errataIds.add("rhn-erratum-6184");
- errataIds.add("rhn-erratum-6182");
- List<RhnErratumType> errata = comm.getErrataMetadata(SYSTEM_ID, errataIds);
- assertTrue(errata.size() == errataIds.size());
- for (RhnErratumType e : errata) {
- assertFalse(StringUtils.isBlank(e.getAdvisory()));
- assertFalse(StringUtils.isBlank(e.getChannels()));
- assertFalse(StringUtils.isBlank(e.getPackages()));
- assertFalse(StringUtils.isBlank(e.getRhnErratumAdvisoryName()));
- assertFalse(StringUtils.isBlank(e.getRhnErratumAdvisoryType()));
- assertFalse(StringUtils.isBlank(e.getRhnErratumDescription()));
- assertFalse(StringUtils.isBlank(e.getRhnErratumSynopsis()));
-
- }
- success = true;
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
-}
diff --git a/modules/enterprise/server/plugins/rhnhosted/src/test/resources/test-log4j.xml b/modules/enterprise/server/plugins/rhnhosted/src/test/resources/test-log4j.xml
deleted file mode 100644
index e526d2d..0000000
--- a/modules/enterprise/server/plugins/rhnhosted/src/test/resources/test-log4j.xml
+++ /dev/null
@@ -1,464 +0,0 @@
-<?xml version="1.0"?>
-
-<!DOCTYPE log4j:configuration PUBLIC
- "-//log4j/log4j configuration//EN"
- "http://logging.apache.org/log4j/docs/api/org/apache/log4j/xml/log4j.dtd">
-
-<!-- ===================================================================== -->
-<!-- RHQ Server Log4j Configuration -->
-<!-- ===================================================================== -->
-
-<!--
- | For details on configuring Log4J, see: http://logging.apache.org/log4j/docs/
- -->
-
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
-
- <!-- ========= -->
- <!-- Appenders -->
- <!-- ========= -->
-
- <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
- <param name="Target" value="System.out"/>
- <!-- Appender will not log any messages with priority lower than INFO even if the category's priority is set lower.
- So essentially, this means DEBUG and TRACE messages will never be output to the console -->
- <param name="Threshold" value="DEBUG"/>
-
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
- </layout>
- </appender>
-
- <!-- a size-based rolling file appender -->
- <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
- <param name="File" value="target/test-log4j.log"/>
- <param name="Append" value="true"/>
- <param name="MaxFileSize" value="5MB"/>
- <param name="MaxBackupIndex" value="5"/>
-
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
- </layout>
- </appender>
-
- <!-- ========================================= -->
- <!-- Categories for the various RHQ subsystems -->
- <!-- ========================================= -->
-
- <!-- unless otherwise overridden, all org, com and net categories will be at INFO level -->
- <category name="org">
- <priority value="INFO"/>
- </category>
- <category name="com">
- <priority value="INFO"/>
- </category>
- <category name="net">
- <priority value="INFO"/>
- </category>
-
- <!-- this will control RHQ categories - set to DEBUG if you want full RHQ debug messages -->
- <!--
- <category name="org.rhq">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!-- details on dbsetup and dbupgrade ant tasks and their internals -->
- <category name="org.rhq.core.db.ant">
- <priority value="DEBUG"/>
- </category>
-
- <!-- details on the db setup classes used to build the database schema -->
- <category name="org.rhq.core.db.setup">
- <priority value="DEBUG"/>
- </category>
-
- <!-- details for hourly data compression job -->
- <!--
- <category name="org.rhq.enterprise.server.measurement.MeasurementCompressionManagerBean">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!-- trace commands coming in from agents -->
- <!--
- <category name="org.rhq.enterprise.communications.command.server.CommandProcessor">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!-- details on baseline calculations -->
- <!--
- <category name="org.rhq.enterprise.server.measurement.MeasurementBaselineManagerBean">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!-- details on incoming remote pojo invocations; emits concurrency limit debug messages -->
- <!--
- <category name="org.rhq.enterprise.communications.command.impl.remotepojo.server.RemotePojoInvocationCommandService">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!-- emits global concurrency limit debug messages -->
- <!--
- <category name="org.rhq.enterprise.communications.GlobalConcurrencyLimitCommandListener">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!-- details on outgoing messages; emits concurrency limit debug messages -->
- <!--
- <category name="org.rhq.enterprise.communications.command.client.ClientCommandSenderTask">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!-- details on incoming inventory reports -->
- <!--
- <category name="org.rhq.enterprise.server.discovery.DiscoveryBossBean">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!-- Logs Hibernate statistics used to help trace Hibernate queries -->
- <!--
- <category name="org.rhq.enterprise.server.util.HibernatePerformanceMonitor">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!-- Top category for the entire comm module -->
- <!--
- <category name="org.rhq.enterprise.communications">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!-- Agent plugin deployer -->
- <!--
- <category name="org.rhq.enterprise.server.core.plugin">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!-- Top category for the enterprise GUI module -->
- <!--
- <category name="org.rhq.enterprise.gui">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!-- Top category for the serializers to log synchronized access to certain subsystems -->
- <!--
- <category name="org.rhq.enterprise.server.util.concurrent">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!-- INFO level gives full stacks to all threads active in aborted transactions -->
- <!-- Set to WARN to only log these events with single-line messages -->
- <category name="org.rhq.enterprise.server.common.TransactionInterruptInterceptor">
- <priority value="INFO"/>
- </category>
-
- <!-- Setting the status manager bean to DEBUG would allow you to see specific status bits -->
- <!-- DEBUG also has a negative impact on database performance -->
- <category name="org.rhq.enterprise.server.cloud.StatusManagerBean">
- <priority value="INFO" />
- </category>
-
- <!-- Top category for the server-side code, including SLSBs -->
- <!--
- <category name="org.rhq.enterprise.server">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!--
- <category name="org.rhq.enterprise.server.alert">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!--
- <category name="org.rhq.enterprise.server.authz">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!--
- <category name="org.rhq.enterprise.server.cloud">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!--
- <category name="org.rhq.enterprise.server.configuration">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <category name="org.rhq.enterprise.server.content">
- <priority value="DEBUG"/>
- </category>
-
- <category name="org.rhq.enterprise.server.plugin.pc.content">
- <priority value="DEBUG"/>
- </category>
-
- <category name="org.rhq.enterprise.server.plugins.rhnhosted">
- <priority value="DEBUG"/>
- </category>
-
- <!--
- <category name="org.rhq.enterprise.server.core">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!--
- <category name="org.rhq.enterprise.server.discovery">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!--
- <category name="org.rhq.enterprise.server.event">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!--
- <category name="org.rhq.enterprise.server.measurement">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!--
- <category name="org.rhq.enterprise.server.operation">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!--
- <category name="org.rhq.enterprise.server.plugin">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!--
- <category name="org.rhq.enterprise.server.resource">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!--
- <category name="org.rhq.enterprise.server.scheduler">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!--
- <category name="org.rhq.enterprise.server.system">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!--
- <category name="org.rhq.enterprise.server.util">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!-- ============================================= -->
- <!-- Categories for the various JBossAS subsystems -->
- <!-- ============================================= -->
-
- <category name="org.jboss.ejb.EJBDeployer.verifier">
- <priority value="OFF"/>
- </category>
-
- <category name="org.hibernate.ejb.Ejb3Configuration">
- <priority value="WARN"/>
- </category>
-
- <category name="org.jboss.ejb3.JmxKernelAbstraction">
- <priority value="WARN"/>
- </category>
-
- <category name="org.jboss.ejb3.EJBContainer">
- <priority value="WARN"/>
- </category>
-
- <category name="org.jboss.resource.deployment.RARDeployment">
- <priority value="WARN"/>
- </category>
-
- <category name="org.jgroups">
- <priority value="WARN"/>
- </category>
-
- <category name="jacorb">
- <priority value="WARN"/>
- </category>
-
- <category name="org.hibernate.cfg">
- <priority value="WARN"/>
- </category>
-
- <!-- JBNADM-2090: suppress warnings -->
- <category name="org.hibernate.engine.loading.LoadContexts">
- <priority value="OFF"/>
- </category>
-
- <!-- Suppress heavy ERROR level logging generated due to EJB3SafeEndpointInvoker, which unavoidably
- forces this exception, Hibernate has no workaround. -->
- <category name="org.hibernate.LazyInitializationException">
- <priority value="OFF"/>
- </category>
-
- <!-- log SQL statements -->
- <!--
- <category name="org.hibernate.SQL">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!-- log JDBC bind parameters -->
- <!--
- <category name="org.hibernate.type">
- <priority value="INFO"/>
- </category>
- -->
-
- <!-- Show the evolution of the DataSource pool in the logs [inUse/Available/Max]
- <category name="org.jboss.resource.connectionmanager.JBossManagedConnectionPool">
- <priority value="TRACE" class="org.jboss.logging.XLevel"/>
- </category>
- -->
-
- <!-- Increase the priority threshold for the RHQ Datasource category
- Useful for debugging connection leaks
- -->
- <!--
- <category name="RHQDS">
- <priority value="DEBUG"/>
- </category>
- -->
- <!--
- <category name="NoTxRHQDS">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!--
- | An example of enabling the custom TRACE level priority that is used
- | by the JBoss internals to diagnose low level details. This example
- | turns on TRACE level msgs for the org.jboss.ejb.plugins package and its
- | subpackages. This will produce A LOT of logging output.
- <category name="org.jboss.system">
- <priority value="TRACE" class="org.jboss.logging.XLevel"/>
- </category>
- <category name="org.jboss.ejb.plugins">
- <priority value="TRACE" class="org.jboss.logging.XLevel"/>
- </category>
- -->
-
- <!-- Clustering logging -->
- <!-- Uncomment the following to redirect the org.jgroups and
- org.jboss.ha categories to a cluster.log file.
-
- <appender name="CLUSTER" class="org.jboss.logging.appender.RollingFileAppender">
- <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
- <param name="File" value="${jboss.server.log.dir}/cluster.log"/>
- <param name="Append" value="false"/>
- <param name="MaxFileSize" value="500KB"/>
- <param name="MaxBackupIndex" value="1"/>
-
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
- </layout>
- </appender>
- <category name="org.jgroups">
- <priority value="DEBUG" />
- <appender-ref ref="CLUSTER"/>
- </category>
- <category name="org.jboss.ha">
- <priority value="DEBUG" />
- <appender-ref ref="CLUSTER"/>
- </category>
- -->
-
- <!-- JSF RI (i.e. com.sun.faces.*) -->
- <category name="javax.enterprise.resource.webcontainer.jsf.application">
- <priority value="WARN" />
- </category>
- <category name="javax.enterprise.resource.webcontainer.jsf.config">
- <priority value="WARN" />
- </category>
- <category name="javax.enterprise.resource.webcontainer.jsf.context">
- <priority value="WARN" />
- </category>
- <category name="javax.enterprise.resource.webcontainer.jsf.lifecycle">
- <priority value="WARN" />
- </category>
- <category name="javax.enterprise.resource.webcontainer.jsf.managedbean">
- <priority value="WARN" />
- </category>
- <category name="javax.enterprise.resource.webcontainer.jsf.renderkit">
- <priority value="WARN" />
- </category>
- <category name="javax.enterprise.resource.webcontainer.jsf.taglib">
- <priority value="WARN" />
- </category>
- <category name="javax.enterprise.resource.webcontainer.jsf.timing">
- <priority value="WARN" />
- </category>
-
- <!-- ===================================================== -->
- <!-- Categories for the various 3rd-party libs used by RHQ -->
- <!-- ===================================================== -->
-
- <category name="org.quartz.impl.jdbcjobstore.JobStoreCMT">
- <priority value="WARN"/>
- </category>
-
- <category name="org.quartz.impl.jdbcjobstore.StdRowLockSemaphore">
- <priority value="ERROR"/>
- </category>
-
- <category name="org.apache.commons.validator.ValidatorResources">
- <priority value="OFF"/>
- </category>
-
- <category name="org.apache.struts">
- <priority value="ERROR"/>
- </category>
-
- <category name="org.apache.commons.httpclient">
- <priority value="ERROR"/>
- </category>
-
- <category name="org.ajax4jsf">
- <priority value="WARN"/>
- </category>
-
- <category name="org.jboss.seam">
- <priority value="WARN"/>
- </category>
-
- <!-- ================= -->
- <!-- The root category -->
- <!-- ================= -->
-
- <root>
- <!-- default log priority -->
- <priority value="INFO"/>
-
- <appender-ref ref="CONSOLE"/>
- <appender-ref ref="FILE"/>
- </root>
-
-</log4j:configuration>
diff --git a/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml b/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml
index a57d703..28f5f38 100644
--- a/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml
+++ b/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml
@@ -34,7 +34,6 @@
<pathelement location="../disk/target/rhq-serverplugin-disk-${project.version}.jar" />
<pathelement location="../jboss-software/target/rhq-serverplugin-jboss-software-${project.version}.jar" />
- <pathelement location="../rhnhosted/target/rhq-serverplugin-rhnhosted-${project.version}.jar" />
<pathelement location="../url/target/rhq-serverplugin-url-${project.version}.jar" />
<pathelement location="../yum/target/rhq-serverplugin-yum-${project.version}.jar" />
<pathelement location="../alert-email/target/alert-email-${project.version}.jar" />
commit b4fce666acdc478100a4f9b0920c61858b2b5f2e
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Mon Jan 16 14:31:03 2012 -0600
[BZ 535720] Adding back commented line that was causing failures due to content system discovery failure. Also, update the test code to match current CLI interface and resource structure.
diff --git a/modules/cli-tests/src/test/script/org/rhq/enterprise/remoting/cli/test_RepoManager.js b/modules/cli-tests/src/test/script/org/rhq/enterprise/remoting/cli/test_RepoManager.js
index b1b866f..2ef2d7e 100644
--- a/modules/cli-tests/src/test/script/org/rhq/enterprise/remoting/cli/test_RepoManager.js
+++ b/modules/cli-tests/src/test/script/org/rhq/enterprise/remoting/cli/test_RepoManager.js
@@ -242,7 +242,7 @@ function testDeploy() {
// Get the parent
criteria = new ResourceCriteria();
criteria.strict = true;
- criteria.addFilterName( "Tomcat VHost (localhost)" );
+ criteria.addFilterResourceTypeName( "Tomcat Virtual Host" );
criteria.addFilterCurrentAvailability( AvailabilityType.UP );
var vhosts = ResourceManager.findResourcesByCriteria( criteria );
Assert.assertNotNull( vhosts, "Test requires Tomcat VHost (localhost) in inventory.");
@@ -286,7 +286,7 @@ function testDeploy() {
// no required plugin config for this resource type
// no required resource config for this resource type
// resource name defaults to war file name / context root
- ResourceFactoryManager.createPackageBackedResource( vhost.getId(), warType.getId(), null, null, file.getName(), "1.0", null, deployConfig, fileBytes);
+ ResourceFactoryManager.createPackageBackedResource( vhost.getId(), warType.getId(), null, null, file.getName(), "1.0", null, deployConfig, fileBytes, null);
criteria = new ResourceCriteria();
criteria.strict = false;
@@ -494,8 +494,7 @@ function testDeploy() {
Assert.assertNotNull( newBackingPackage, "backing package should exist after update." );
print( "\n After Update: BackingPackage=" + newBackingPackage.getId() );
- // TODO: This test may fail due to RHQ-2387, uncomment when fixed
- // Assert.assertTrue( ( backingPackage,getId() != newBackingPackage.getId() ), "Backing ackage should differ after update" );
+ Assert.assertTrue( ( backingPackage.getId() != newBackingPackage.getId() ), "Backing ackage should differ after update" );
// delete any existing test repos in the db
repos = RepoManager.findRepos(PageControl.getUnlimitedInstance());
commit 147eaace0daa24890d15a0ab1769266c5d0dc1f6
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Mon Jan 16 12:55:04 2012 -0600
[BZ 772722] Updates for the URL parser to correctly load MD5. Also, fixed a couple of failing unit tests due to changed functionality.
diff --git a/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/XmlIndexParser.java b/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/XmlIndexParser.java
index 1ecde5a..34619f3 100644
--- a/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/XmlIndexParser.java
+++ b/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/XmlIndexParser.java
@@ -136,6 +136,7 @@ public class XmlIndexParser implements IndexParser {
details.setFileSize(pkg.getFileSize());
details.setFileCreatedDate(pkg.getFileCreatedDate());
details.setSHA256(pkg.getSha256());
+ details.setMD5(pkg.getMd5());
details.setLicenseName(pkg.getLicenseName());
details.setLicenseVersion(pkg.getLicenseVersion());
if (pkg.getMetadata() != null) {
diff --git a/modules/enterprise/server/plugins/url/src/test/java/org/rhq/enterprise/server/plugins/url/XmlIndexParserTest.java b/modules/enterprise/server/plugins/url/src/test/java/org/rhq/enterprise/server/plugins/url/XmlIndexParserTest.java
index 7798e93..8f4be58 100644
--- a/modules/enterprise/server/plugins/url/src/test/java/org/rhq/enterprise/server/plugins/url/XmlIndexParserTest.java
+++ b/modules/enterprise/server/plugins/url/src/test/java/org/rhq/enterprise/server/plugins/url/XmlIndexParserTest.java
@@ -79,7 +79,7 @@ public class XmlIndexParserTest {
assert "Mazzpackage-type-name".equals(cspd.getPackageTypeName()) : cspd.getPackageTypeName();
assert "Mazzsha256".equals(cspd.getSHA256()) : cspd.getSHA256();
assert "Mazzshort-description".equals(cspd.getShortDescription()) : cspd.getShortDescription();
- assert "Mazzversion".equals(cspd.getVersion()) : cspd.getVersion();
+ assert ("[sha256=" + cspd.getSHA256() + "]").equals(cspd.getVersion()) : cspd.getVersion();
assert cspd.getResourceVersions().contains("Mazzresource-version1") : cspd.getResourceVersions();
assert cspd.getResourceVersions().contains("Mazzresource-version2") : cspd.getResourceVersions();
@@ -168,7 +168,7 @@ public class XmlIndexParserTest {
assert "WOTGORILLApackage-type-name".equals(cspd.getPackageTypeName()) : cspd.getPackageTypeName();
assert null == cspd.getSHA256() : cspd.getSHA256();
assert null == cspd.getShortDescription() : cspd.getShortDescription();
- assert "WOTGORILLAversion".equals(cspd.getVersion()) : cspd.getVersion();
+ assert "[sha256=null]".equals(cspd.getVersion()) : cspd.getVersion();
assert 0 == cspd.getResourceVersions().size() : cspd.getResourceVersions();
}
}
commit cdd378b2cf0b8819f70960a704fd66e14d5e00a1
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Mon Jan 16 09:41:49 2012 -0600
[BZ 771418] Added back delete methods for backward compatibility and created a new version of the method that takes the display version as an argument.
diff --git a/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java b/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java
index 6976d25..63ca2d7 100644
--- a/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java
+++ b/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java
@@ -505,7 +505,11 @@ public class ResourceClientProxy {
return remoteClient.getContentManager().getBackingPackageForResource(remoteClient.getSubject(), resourceClientProxy.resourceId);
}
- public void updateBackingContent(String filename, String contentVersion) {
+ public void updateBackingContent(String filename) {
+ this.updateBackingContent(filename, null);
+ }
+
+ public void updateBackingContent(String filename, String displayVersion) {
File file = new File(filename);
if (!file.exists()) {
throw new IllegalArgumentException("File not found: " + file.getAbsolutePath());
@@ -529,12 +533,12 @@ public class ResourceClientProxy {
InstalledPackage oldPackage = getBackingContent();
PackageVersion pv =
- remoteClient.getContentManager().createPackageVersion(
+ remoteClient.getContentManager().createPackageVersionWithDisplayVersion(
remoteClient.getSubject(),
oldPackage.getPackageVersion().getGeneralPackage().getName(),
oldPackage.getPackageVersion().getGeneralPackage().getPackageType().getId(),
packageVersion,
- contentVersion,
+ displayVersion,
oldPackage.getPackageVersion().getArchitecture().getId(),
fileContents);
@@ -644,9 +648,9 @@ public class ResourceClientProxy {
public InstalledPackage getBackingContent();
+ public void updateBackingContent(String fileName, String displayVersion);
- public void updateBackingContent(String fileName, String contentVersion);
-
+ public void updateBackingContent(String fileName);
public void retrieveBackingContent(String fileName) throws IOException;
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java
index 20c53bc..819a46d 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java
@@ -758,8 +758,8 @@ public class BundleManagerBean implements BundleManagerLocal, BundleManagerRemot
q.setParameter("name", architecture.getName());
architecture = (Architecture) q.getSingleResult();
}
- PackageVersion packageVersion = contentManager.createPackageVersion(subject, name, packageType.getId(),
- version, null, architecture.getId(), fileStream);
+ PackageVersion packageVersion = contentManager.createPackageVersionWithDisplayVersion(subject, name,
+ packageType.getId(), version, null, architecture.getId(), fileStream);
// set the PackageVersion's filename to the bundleFile name, it's left null by default
packageVersion.setFileName(name);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
index 95dcc02..529ac32 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
@@ -1237,8 +1237,14 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
}
}
- public PackageVersion createPackageVersion(Subject subject, String packageName, int packageTypeId, String version, String displayVersion,
+ public PackageVersion createPackageVersion(Subject subject, String packageName, int packageTypeId, String version,
Integer architectureId, byte[] packageBytes) {
+ return createPackageVersionWithDisplayVersion(subject, packageName, packageTypeId, version, null,
+ architectureId, packageBytes);
+ }
+
+ public PackageVersion createPackageVersionWithDisplayVersion(Subject subject, String packageName,
+ int packageTypeId, String version, String displayVersion, Integer architectureId, byte[] packageBytes) {
// Check permissions first
if (!authorizationManager.hasGlobalPermission(subject, Permission.MANAGE_CONTENT)) {
@@ -1246,13 +1252,14 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
+ "] does not have permission to create package versions");
}
- return createPackageVersion(subject, packageName, packageTypeId, version, displayVersion, (null == architectureId) ? getNoArchitecture()
+ return createPackageVersionWithDisplayVersion(subject, packageName, packageTypeId, version, displayVersion,
+ (null == architectureId) ? getNoArchitecture()
.getId() : architectureId, new ByteArrayInputStream(packageBytes));
}
@TransactionAttribute(value = TransactionAttributeType.REQUIRES_NEW)
- public PackageVersion createPackageVersion(Subject subject, String packageName, int packageTypeId,
- String version, String displayVersion, int architectureId, InputStream packageBitStream) {
+ public PackageVersion createPackageVersionWithDisplayVersion(Subject subject, String packageName,
+ int packageTypeId, String version, String displayVersion, int architectureId, InputStream packageBitStream) {
// See if the package version already exists and return that if it does
Query packageVersionQuery = entityManager.createNamedQuery(PackageVersion.QUERY_FIND_BY_PACKAGE_VER_ARCH);
packageVersionQuery.setParameter("name", packageName);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
index 9da3c09..fc72896 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
@@ -234,13 +234,14 @@ public interface ContentManagerLocal {
* @param packageName parent package name; uniquely identifies the package under which this version goes
* @param packageTypeId identifies the type of package in case the general package needs to be created
* @param version identifies the version to be create
+ * @param displayVersion package display version
* @param architectureId architecture of the newly created package version
*
* @return newly created package version if one did not exist; existing package version that matches these data if
* one was found
*/
- PackageVersion createPackageVersion(Subject subject, String packageName, int packageTypeId, String version,
- String displayVersion, int architectureId, InputStream packageBitStream);
+ PackageVersion createPackageVersionWithDisplayVersion(Subject subject, String packageName, int packageTypeId,
+ String version, String displayVersion, int architectureId, InputStream packageBitStream);
/**
* This method is essentially the same as {@link #createPackageVersion(Subject, String, int, String, int, InputStream)}
@@ -350,7 +351,13 @@ public interface ContentManagerLocal {
* @see {@link createPackageVersion(Subject, String, int, String, int, byte[]);
*/
PackageVersion createPackageVersion(Subject subject, String packageName, int packageTypeId, String version,
- String displayVersion, Integer architectureId, byte[] packageBytes);
+ Integer architectureId, byte[] packageBytes);
+
+ /**
+ * @see {@link createPackageVersion(Subject, String, int, String, int, byte[]);
+ */
+ PackageVersion createPackageVersionWithDisplayVersion(Subject subject, String packageName, int packageTypeId,
+ String version, String displayVersion, Integer architectureId, byte[] packageBytes);
/**
* @see {@link ContentManagerRemote#deletePackages(Subject, int, int[], String)}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java
index 52ff38a..a75d78f 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java
@@ -69,6 +69,29 @@ public interface ContentManagerRemote {
@WebParam(name = "packageName") String packageName, //
@WebParam(name = "packageTypeId") int packageTypeId, //
@WebParam(name = "version") String version, //
+ @WebParam(name = "architectureId") Integer architectureId, //
+ @WebParam(name = "packageBytes") byte[] packageBytes);
+
+ /**
+ * Creates a new package version in the system. If the parent package (identified by the packageName parameter) does
+ * not exist, it will be created. If a package version exists with the specified version ID, a new one will not be
+ * created and the existing package version instance will be returned.
+ *
+ * @param subject The logged in subject
+ * @param packageName parent package name; uniquely identifies the package under which this version goes
+ * @param packageTypeId identifies the type of package in case the general package needs to be created
+ * @param version identifies the version to be create
+ * @param architectureId architecture of the newly created package version. If null then no architecture restriction.
+ *
+ * @return newly created package version if one did not exist; existing package version that matches these data if
+ * one was found
+ */
+ @WebMethod
+ PackageVersion createPackageVersionWithDisplayVersion( //
+ @WebParam(name = "subject") Subject subject, //
+ @WebParam(name = "packageName") String packageName, //
+ @WebParam(name = "packageTypeId") int packageTypeId, //
+ @WebParam(name = "version") String version, //
@WebParam(name = "displayVersion") String displayVersion, //
@WebParam(name = "architectureId") Integer architectureId, //
@WebParam(name = "packageBytes") byte[] packageBytes);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerBean.java
index 0cb3349..6c016e7 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerBean.java
@@ -446,8 +446,8 @@ public class ResourceFactoryManagerBean implements ResourceFactoryManagerLocal,
// Create/locate package and package version
PackageVersion packageVersion = null;
if (packageUploadDetails == null) {
- packageVersion = contentManager.createPackageVersion(user, packageName, newPackageType.getId(),
- packageVersionNumber, null, architectureId, packageBitStream);
+ packageVersion = contentManager.createPackageVersionWithDisplayVersion(user, packageName,
+ newPackageType.getId(), packageVersionNumber, null, architectureId, packageBitStream);
} else {
packageVersion = contentManager.getUploadedPackageVersion(user, packageName, newPackageType.getId(),
packageVersionNumber, architectureId, packageBitStream, packageUploadDetails, null);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
index 21e3e1c..fe6725c 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
@@ -507,11 +507,16 @@ public class WebservicesManagerBean implements WebservicesRemote {
//CONTENTMANAGER: BEGIN ----------------------------------
public PackageVersion createPackageVersion(Subject subject, String packageName, int packageTypeId, String version,
- String displayVersion,
Integer architectureId, byte[] packageBytes) {
- return contentManager.createPackageVersion(subject, packageName, packageTypeId, version, displayVersion,
- architectureId,
- packageBytes);
+ return contentManager.createPackageVersionWithDisplayVersion(subject, packageName, packageTypeId, version,
+ null, architectureId, packageBytes);
+ }
+
+ public PackageVersion createPackageVersionWithDisplayVersion(Subject subject, String packageName,
+ int packageTypeId, String version,
+ String displayVersion, Integer architectureId, byte[] packageBytes) {
+ return contentManager.createPackageVersionWithDisplayVersion(subject, packageName, packageTypeId, version,
+ displayVersion, architectureId, packageBytes);
}
public void deletePackages(Subject subject, int resourceId, int[] installedPackageIds, String requestNotes) {
commit 5d744ed0ed9cae0923f0d74e450feddc8bb2cb40
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Fri Jan 13 17:45:25 2012 -0600
[BZ 758753] Adding back old deployPackages method to keep the remote interface backwards compatible. The old method was set to deprecated and no longer used in internal code.
diff --git a/modules/cli-tests/src/test/script/org/rhq/enterprise/remoting/cli/test_RepoManager.js b/modules/cli-tests/src/test/script/org/rhq/enterprise/remoting/cli/test_RepoManager.js
index 69cb01d..b1b866f 100644
--- a/modules/cli-tests/src/test/script/org/rhq/enterprise/remoting/cli/test_RepoManager.js
+++ b/modules/cli-tests/src/test/script/org/rhq/enterprise/remoting/cli/test_RepoManager.js
@@ -462,7 +462,7 @@ function testDeploy() {
Assert.assertNumberEqualsJS( pvsInRepo.get(0).getId(), pv.getId(), "unexpected pv returned" );
// do the update
- ContentManager.deployPackages( [war.getId()], [pv.getId()], "Test Note" );
+ ContentManager.deployPackagesWithNote( [war.getId()], [pv.getId()], "Test Note" );
// Make sure things still look good
diff --git a/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java b/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java
index 5390752..6976d25 100644
--- a/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java
+++ b/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java
@@ -538,7 +538,7 @@ public class ResourceClientProxy {
oldPackage.getPackageVersion().getArchitecture().getId(),
fileContents);
- remoteClient.getContentManager().deployPackages(
+ remoteClient.getContentManager().deployPackagesWithNote(
remoteClient.getSubject(),
new int[] { resourceClientProxy.getId()},
new int[] {pv.getId()},
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/DeployPackagesUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/DeployPackagesUIBean.java
index 3fe6228..4ff6981 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/DeployPackagesUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/DeployPackagesUIBean.java
@@ -94,7 +94,7 @@ public class DeployPackagesUIBean extends PagedDataTableUIBean {
try {
ContentManagerLocal contentManager = LookupUtil.getContentManager();
- contentManager.deployPackages(subject, new int[] { resource.getId() }, packagesVersionsIdsToDeploy, notes);
+ contentManager.deployPackagesWithNote(subject, new int[] { resource.getId() }, packagesVersionsIdsToDeploy, notes);
} catch (Exception e) {
FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, "Could not send deploy request to agent", e);
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/RepoPackageVersionsUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/RepoPackageVersionsUIBean.java
index c6eb4c7..a5776d3 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/RepoPackageVersionsUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/RepoPackageVersionsUIBean.java
@@ -33,8 +33,8 @@ import org.rhq.enterprise.gui.common.framework.PagedDataTableUIBean;
import org.rhq.enterprise.gui.common.paging.PageControlView;
import org.rhq.enterprise.gui.common.paging.PagedListDataModel;
import org.rhq.enterprise.gui.util.EnterpriseFacesContextUtility;
-import org.rhq.enterprise.server.content.RepoManagerLocal;
import org.rhq.enterprise.server.content.ContentManagerLocal;
+import org.rhq.enterprise.server.content.RepoManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
public class RepoPackageVersionsUIBean extends PagedDataTableUIBean {
@@ -68,7 +68,7 @@ public class RepoPackageVersionsUIBean extends PagedDataTableUIBean {
resourceIds[i] = resources.get(i).getId();
}
- contentManager.deployPackages(subject, resourceIds, packageIds, "Repository package install");
+ contentManager.deployPackagesWithNote(subject, resourceIds, packageIds, "Repository package install");
} catch (Exception e) {
FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, "Failed to deploy packages: " + packageIds
+ " to Resources subscribed to repository: " + repoId + " Error: " + e.getMessage());
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
index 5edc4d9..95dcc02 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
@@ -343,7 +343,11 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
+ (System.currentTimeMillis() - start) + "ms");
}
- public void deployPackages(Subject user, int[] resourceIds, int[] packageVersionIds, String requestNotes) {
+ public void deployPackages(Subject user, int[] resourceIds, int[] packageVersionIds) {
+ this.deployPackagesWithNote(user, resourceIds, packageVersionIds, null);
+ }
+
+ public void deployPackagesWithNote(Subject user, int[] resourceIds, int[] packageVersionIds, String requestNotes) {
for (int resourceId : resourceIds) {
Set<ResourcePackageDetails> packages = new HashSet<ResourcePackageDetails>();
for (int packageVersionId : packageVersionIds) {
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
index 9819ee7..9da3c09 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
@@ -363,9 +363,9 @@ public interface ContentManagerLocal {
public void deletePackageVersion(Subject subject, int packageVersionId);
/**
- * @see {@link ContentManagerRemote#deployPackages(Subject, int[], int[], String)}
+ * @see {@link ContentManagerRemote#deployPackagesWithNote(Subject, int[], int[], String)}
*/
- void deployPackages(Subject subject, int[] resourceIds, int[] packageVersionIds, String requestNotes);
+ void deployPackagesWithNote(Subject subject, int[] resourceIds, int[] packageVersionIds, String requestNotes);
/**
* @see {@link ContentManagerRemote#findArchitectures(Subject)}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java
index 439c8a7..52ff38a 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java
@@ -110,9 +110,26 @@ public interface ContentManagerRemote {
* @param packageVersionIds packageVersions we want to install
*/
@WebMethod
+ @Deprecated
void deployPackages(
@WebParam(name = "subject") Subject subject, //
@WebParam(name = "resourceIds") int[] resourceIds, //
+ @WebParam(name = "packageVersionIds") int[] packageVersionIds);
+
+ /**
+ * Deploys packages on the specified resources. Each installed package entry should be populated with the <code>
+ * PackageVersion</code> being installed, along with the deployment configuration values if any. This method will
+ * take care of populating the rest of the values in each installed package object.
+ *
+ * @param subject The logged in subject
+ * @param resourceIds identifies the resources against which the package will be deployed
+ * @param packageVersionIds packageVersions we want to install
+ * @param requestNotes request notes
+ */
+ @WebMethod
+ void deployPackagesWithNote(
+ @WebParam(name = "subject") Subject subject, //
+ @WebParam(name = "resourceIds") int[] resourceIds, //
@WebParam(name = "packageVersionIds") int[] packageVersionIds,
@WebParam(name = "requestNotes") String requestNotes);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
index f5d4a36..21e3e1c 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
@@ -522,8 +522,12 @@ public class WebservicesManagerBean implements WebservicesRemote {
contentManager.deletePackageVersion(subject, packageVersionId);
}
- public void deployPackages(Subject subject, int[] resourceIds, int[] packageVersionIds, String requestNotes) {
- contentManager.deployPackages(subject, resourceIds, packageVersionIds, requestNotes);
+ public void deployPackages(Subject subject, int[] resourceIds, int[] packageVersionIds) {
+ contentManager.deployPackagesWithNote(subject, resourceIds, packageVersionIds, null);
+ }
+
+ public void deployPackagesWithNote(Subject subject, int[] resourceIds, int[] packageVersionIds, String requestNotes) {
+ contentManager.deployPackagesWithNote(subject, resourceIds, packageVersionIds, requestNotes);
}
public List<Architecture> findArchitectures(Subject subject) {
@@ -1240,4 +1244,5 @@ public class WebservicesManagerBean implements WebservicesRemote {
}
}
+
}
commit 308f0b8dab812f3cf5c4097256789c1efc35cc85
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Tue Jan 10 16:23:25 2012 -0600
[BZ 773061] Ignore subfolders discovered in the repo folder. This will prevent attempts to import full folders and/or import packages from sub repos.
diff --git a/modules/enterprise/server/plugins/disk/src/main/java/org/rhq/enterprise/server/plugins/disk/DiskSource.java b/modules/enterprise/server/plugins/disk/src/main/java/org/rhq/enterprise/server/plugins/disk/DiskSource.java
index 2c4e907..2c1f079 100644
--- a/modules/enterprise/server/plugins/disk/src/main/java/org/rhq/enterprise/server/plugins/disk/DiskSource.java
+++ b/modules/enterprise/server/plugins/disk/src/main/java/org/rhq/enterprise/server/plugins/disk/DiskSource.java
@@ -201,19 +201,22 @@ public class DiskSource implements ContentProvider, PackageSource, RepoSource {
if (file.getName().equals(repoName)) {
for (File filePackage : file.listFiles()) {
- ContentProviderPackageDetails details = createPackage(filePackage);
- if (details != null) {
- ContentProviderPackageDetails existing = findPackage(packages, details);
- if (existing == null) {
- report.addNewPackage(details);
- } else {
- packages.remove(existing); // it still exists, remove it from our list
- if (details.getFileCreatedDate().compareTo(existing.getFileCreatedDate()) > 0) {
- report.addUpdatedPackage(details);
+ if (!filePackage.isDirectory()) {
+ ContentProviderPackageDetails details = createPackage(filePackage);
+ if (details != null) {
+ ContentProviderPackageDetails existing = findPackage(packages, details);
+ if (existing == null) {
+ report.addNewPackage(details);
+ } else {
+ packages.remove(existing); // it still exists, remove it from our list
+ if (details.getFileCreatedDate().compareTo(existing.getFileCreatedDate()) > 0) {
+ report.addUpdatedPackage(details);
+ }
}
}
- } else {
- // file does not match any filter and is therefore an unknown type - ignore it
+ else {
+ // file does not match any filter and is therefore an unknown type - ignore it
+ }
}
}
commit ed3a509e8dd2f306fe1ed857503cf16db45a7723
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Mon Jan 9 14:29:15 2012 -0600
[BZ 772722] Update the CSP server side plugin for remote package sources to use SHA256 for version and save the actual version information in the display version field.
diff --git a/modules/enterprise/server/plugins/jboss-software/src/main/java/org/rhq/enterprise/server/plugins/jboss/software/RssFeedParser.java b/modules/enterprise/server/plugins/jboss-software/src/main/java/org/rhq/enterprise/server/plugins/jboss/software/RssFeedParser.java
index 5fb03b2..a30bfab 100644
--- a/modules/enterprise/server/plugins/jboss-software/src/main/java/org/rhq/enterprise/server/plugins/jboss/software/RssFeedParser.java
+++ b/modules/enterprise/server/plugins/jboss-software/src/main/java/org/rhq/enterprise/server/plugins/jboss/software/RssFeedParser.java
@@ -159,14 +159,22 @@ public class RssFeedParser {
// Technically, this is a check for installable patches. But for now, that's the same as a cumulative
// patch
if (softwareType.equals(RSS_SOFTWARE_TYPE_BUGFIX) && instructionCompatibilityVersion != null) {
- String version = parseCumulativePatchVersion(packageName);
- if (version == null) {
- log.error("Could not parse version for package: " + packageName);
+ String displayVersion = parseCumulativePatchVersion(packageName);
+ if (displayVersion == null) {
+ log.error("Could not parse version for package: " + packageName + ". Package skipped.");
continue;
}
+ if (patch.getSha256() == null) {
+ log.error("Could not parse SHA256 for package: " + packageName + ". Package skipped.");
+ continue;
+ }
+
+ String version = "[sha256=" + patch.getSha256() + "]";
+
ContentProviderPackageDetailsKey key = new ContentProviderPackageDetailsKey(packageName, version,
- PACKAGE_TYPE_CUMULATIVE_PATCH, ARCHITECTURE, RESOURCE_TYPE_JBOSS_AS, getPluginName(version));
+ PACKAGE_TYPE_CUMULATIVE_PATCH, ARCHITECTURE, RESOURCE_TYPE_JBOSS_AS,
+ getPluginName(displayVersion));
// If this package is already known to the server, don't add it as a new package
// Remove from the map; entries still in the map will be returned as deleted packages
@@ -187,6 +195,7 @@ public class RssFeedParser {
packageDetails.setLocation(patch.getAutomatedDownloadUrl());
packageDetails.setMD5(patch.getMd5());
packageDetails.setSHA256(patch.getSha256());
+ packageDetails.setDisplayVersion(displayVersion);
packageDetails.setShortDescription(patch.getShortDescription());
packageDetails.setLongDescription(patch.getLongDescription());
commit fa0843f28f77f556f2c19e803fd19934e308b571
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Mon Jan 9 14:03:04 2012 -0600
[BZ 772722] Updates for the url remote repository server side plugin. SHA256 is now used for checksum and version.
diff --git a/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/FullRemotePackageInfo.java b/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/FullRemotePackageInfo.java
index 48361cb..43c7d3a 100644
--- a/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/FullRemotePackageInfo.java
+++ b/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/FullRemotePackageInfo.java
@@ -33,7 +33,7 @@ public class FullRemotePackageInfo extends RemotePackageInfo {
private final ContentProviderPackageDetails details;
public FullRemotePackageInfo(URL url, ContentProviderPackageDetails details) {
- super(details.getLocation(), url, details.getMD5());
+ super(details.getLocation(), url, details.getSHA256());
this.details = details;
// the metadata provided let's us know our package type
@@ -53,7 +53,7 @@ public class FullRemotePackageInfo extends RemotePackageInfo {
StringBuilder str = new StringBuilder("FullRemotePackageInfo: ");
str.append("location=[").append(this.getLocation());
str.append("], url=[").append(this.getUrl());
- str.append("], md5=[").append(this.getMD5());
+ str.append("], sha256=[").append(this.getSHA256());
if (this.getSupportedPackageType() != null) {
str.append("], supportedPackageType=[").append(this.getSupportedPackageType().packageTypeName);
str.append(",").append(this.getSupportedPackageType().architectureName);
diff --git a/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/RemotePackageInfo.java b/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/RemotePackageInfo.java
index a512ec3..71f7fdb 100644
--- a/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/RemotePackageInfo.java
+++ b/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/RemotePackageInfo.java
@@ -23,13 +23,13 @@ import java.net.URL;
public class RemotePackageInfo {
private String location; // the path of the package relative to the root URL
private URL url;
- private String md5;
+ private String sha256;
private SupportedPackageType supportedPackageType;
- public RemotePackageInfo(String location, URL url, String md5) {
+ public RemotePackageInfo(String location, URL url, String sha256) {
this.location = location;
this.url = url;
- this.md5 = md5;
+ this.sha256 = sha256;
this.supportedPackageType = null; // we don't know it
}
@@ -41,8 +41,8 @@ public class RemotePackageInfo {
return this.url;
}
- public String getMD5() {
- return this.md5;
+ public String getSHA256() {
+ return this.sha256;
}
/**
@@ -63,7 +63,7 @@ public class RemotePackageInfo {
StringBuilder str = new StringBuilder("RemotePackageInfo: ");
str.append("location=[").append(this.location);
str.append("], url=[").append(this.url);
- str.append("], md5=[").append(this.md5);
+ str.append("], sha256=[").append(this.sha256);
if (this.supportedPackageType != null) {
str.append("], supportedPackageType=[").append(this.supportedPackageType.packageTypeName);
str.append(",").append(this.supportedPackageType.architectureName);
diff --git a/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/SimpleIndexParser.java b/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/SimpleIndexParser.java
index 8a22062..4e92cc1 100644
--- a/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/SimpleIndexParser.java
+++ b/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/SimpleIndexParser.java
@@ -20,17 +20,17 @@ package org.rhq.enterprise.server.plugins.url;
import java.io.BufferedReader;
import java.io.File;
-import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
-import java.security.MessageDigest;
import java.util.HashMap;
import java.util.Map;
+import org.rhq.core.util.MessageDigestGenerator;
+
/**
- * Parses the simple index txt file whose format is simply "location|md5" where location
+ * Parses the simple index txt file whose format is simply "location|sha256" where location
* is a relative filepath where the file is found on the content source.
*
* @author John Mazzitelli
@@ -38,7 +38,6 @@ import java.util.Map;
public class SimpleIndexParser implements IndexParser {
public Map<String, RemotePackageInfo> parse(InputStream indexStream, UrlProvider contentSource) throws Exception {
-
Map<String, RemotePackageInfo> fileList = new HashMap<String, RemotePackageInfo>();
BufferedReader reader = new BufferedReader(new InputStreamReader(indexStream));
@@ -47,11 +46,11 @@ public class SimpleIndexParser implements IndexParser {
line = (line.length() > 1) ? line.substring(1) : ""; // we don't want a leading slash
}
if (line.length() > 0) {
- String[] locationAndMd5 = line.split("\\|");
- // if the line doesn't have location|md5, we silently skip it
- if (locationAndMd5.length == 2) {
- URL locationUrl = new URL(contentSource.getRootUrl().toString() + locationAndMd5[0]);
- RemotePackageInfo rpi = new RemotePackageInfo(locationAndMd5[0], locationUrl, locationAndMd5[1]);
+ String[] locationAndSHA256 = line.split("\\|");
+ // if the line doesn't have location|sha256, we silently skip it
+ if (locationAndSHA256.length == 2) {
+ URL locationUrl = new URL(contentSource.getRootUrl().toString() + locationAndSHA256[0]);
+ RemotePackageInfo rpi = new RemotePackageInfo(locationAndSHA256[0], locationUrl, locationAndSHA256[1]);
fileList.put(rpi.getLocation(), rpi);
}
}
@@ -103,40 +102,11 @@ public class SimpleIndexParser implements IndexParser {
} else if (!file.getCanonicalPath().equals(new File(root, "content-index.txt").getCanonicalPath())) {
// determine the relative location of the file
String location = file.getCanonicalPath().substring(root.getCanonicalPath().length() + 1);
-
- // we need the MD5 of the file
- String md5;
- FileInputStream is = null;
- try {
- MessageDigest messageDigest = MessageDigest.getInstance("MD5");
- is = new FileInputStream(file);
-
- byte[] bytes = new byte[1024];
- int len;
- while ((len = is.read(bytes, 0, bytes.length)) != -1) {
- messageDigest.update(bytes, 0, len);
- }
-
- bytes = messageDigest.digest();
- StringBuffer sb = new StringBuffer(bytes.length * 2);
-
- for (int i = 0; i < bytes.length; i++) {
- int hi = (bytes[i] >> 4) & 0xf;
- int lo = bytes[i] & 0xf;
- sb.append(Character.forDigit(hi, 16));
- sb.append(Character.forDigit(lo, 16));
- }
- md5 = sb.toString();
- } finally {
- if (is != null) {
- is.close();
- }
- }
+ MessageDigestGenerator messageDigestGenerator = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+ String sha256 = messageDigestGenerator.calcDigestString(file);
// write the line in the index file
- indexWriter.println(location.replace('\\', '/') + '|' + md5);
+ indexWriter.println(location.replace('\\', '/') + '|' + sha256);
}
-
- return;
}
}
diff --git a/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/UrlProvider.java b/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/UrlProvider.java
index c229a2b..9c4a182 100644
--- a/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/UrlProvider.java
+++ b/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/UrlProvider.java
@@ -315,9 +315,9 @@ public class UrlProvider implements ContentProvider, PackageSource {
}
if (pkg == null) {
- String md5 = rpi.getMD5();
+ String sha256 = rpi.getSHA256();
String name = new File(rpi.getLocation()).getName();
- String version = md5; // very crude, but we don't know the "real" version so use md5 as the next best thing
+ String version = "[sha256=" + sha256 + "]";
String packageTypeName = supportedPackageType.packageTypeName;
String architectureName = supportedPackageType.architectureName;
String resourceTypeName = supportedPackageType.resourceTypeName;
@@ -332,7 +332,7 @@ public class UrlProvider implements ContentProvider, PackageSource {
pkg.setFileSize(new Long(urlConn.getContentLength()));
pkg.setDisplayName(name);
pkg.setFileName(name);
- pkg.setMD5(md5);
+ pkg.setSHA256(sha256);
pkg.setLocation(rpi.getLocation());
pkg.setShortDescription(null);
}
diff --git a/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/XmlIndexParser.java b/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/XmlIndexParser.java
index a988f2d..1ecde5a 100644
--- a/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/XmlIndexParser.java
+++ b/modules/enterprise/server/plugins/url/src/main/java/org/rhq/enterprise/server/plugins/url/XmlIndexParser.java
@@ -20,12 +20,10 @@ package org.rhq.enterprise.server.plugins.url;
import java.io.BufferedReader;
import java.io.File;
-import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
-import java.security.MessageDigest;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -49,6 +47,7 @@ import org.rhq.core.domain.configuration.Property;
import org.rhq.core.domain.configuration.PropertyList;
import org.rhq.core.domain.configuration.PropertyMap;
import org.rhq.core.domain.configuration.PropertySimple;
+import org.rhq.core.util.MessageDigestGenerator;
import org.rhq.enterprise.server.plugin.pc.content.ContentProviderPackageDetails;
import org.rhq.enterprise.server.plugin.pc.content.ContentProviderPackageDetailsKey;
import org.rhq.enterprise.server.xmlschema.XmlSchemas;
@@ -123,8 +122,9 @@ public class XmlIndexParser implements IndexParser {
PackageDetailsKeyType keyType = pkg.getPackageDetailsKey();
try {
- ContentProviderPackageDetailsKey key = new ContentProviderPackageDetailsKey(keyType.getName(), keyType
- .getVersion(), keyType.getPackageTypeName(), keyType.getArchitectureName(), keyType
+ String version = "[sha256=" + pkg.getSha256() + "]";
+ ContentProviderPackageDetailsKey key = new ContentProviderPackageDetailsKey(keyType.getName(), version,
+ keyType.getPackageTypeName(), keyType.getArchitectureName(), keyType
.getResourceTypeName(), keyType.getResourceTypePlugin());
ContentProviderPackageDetails details = new ContentProviderPackageDetails(key);
details.setDisplayName(pkg.getDisplayName());
@@ -135,7 +135,6 @@ public class XmlIndexParser implements IndexParser {
details.setFileName(pkg.getFileName());
details.setFileSize(pkg.getFileSize());
details.setFileCreatedDate(pkg.getFileCreatedDate());
- details.setMD5(pkg.getMd5());
details.setSHA256(pkg.getSha256());
details.setLicenseName(pkg.getLicenseName());
details.setLicenseVersion(pkg.getLicenseVersion());
@@ -293,12 +292,15 @@ public class XmlIndexParser implements IndexParser {
}
} else if (!file.getCanonicalPath().equals(new File(root, "content-index.xml").getCanonicalPath())) {
String relativeLocation = file.getCanonicalPath().substring(root.getCanonicalPath().length() + 1);
- String md5 = generateHash(file, "MD5");
- String sha256 = generateHash(file, "SHA-256");
+
+ MessageDigestGenerator messageDigest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+ String sha256 = messageDigest.calcDigestString(file);
+
+ String version = "[sha256=" + sha256 + "]";
PackageDetailsKeyType detailsKeyType = new PackageDetailsKeyType();
detailsKeyType.setName(file.getName());
- detailsKeyType.setVersion(md5);
+ detailsKeyType.setVersion(version);
detailsKeyType.setPackageTypeName(packageTypeInfo.getPackageTypeName());
detailsKeyType.setArchitectureName(packageTypeInfo.getArchitectureName());
detailsKeyType.setResourceTypeName(packageTypeInfo.getResourceTypeName());
@@ -306,21 +308,11 @@ public class XmlIndexParser implements IndexParser {
PackageDetailsType detailsType = new PackageDetailsType();
detailsType.setPackageDetailsKey(detailsKeyType);
- //detailsType.setResourceVersions();
detailsType.setDisplayName(file.getName());
- detailsType.setDisplayVersion(md5);
- //detailsType.setShortDescription();
- //detailsType.setLongDescription();
- //detailsType.setClassification();
detailsType.setFileName(file.getName());
detailsType.setFileSize(file.length());
detailsType.setFileCreatedDate(file.lastModified());
- detailsType.setMd5(md5);
detailsType.setSha256(sha256);
- //detailsType.setLicenseName();
- //detailsType.setLicenseVersion();
- //detailsType.setMetadata();
- //detailsType.setExtraProperties();
detailsType.setLocation(relativeLocation);
list.add(detailsType);
@@ -328,44 +320,4 @@ public class XmlIndexParser implements IndexParser {
return;
}
-
- /**
- * Generates a hash code for the given file.
- * @param file the file whose contents is used to generate the hash
- * @param algorithm "MD5" or "SHA-256"
- * @return
- * @return the hash as a string
- * @throws Exception
- */
- protected static String generateHash(File file, String algorithm) throws Exception {
- String hash;
- FileInputStream is = null;
- try {
- MessageDigest messageDigest = MessageDigest.getInstance(algorithm);
- is = new FileInputStream(file);
-
- byte[] bytes = new byte[1024];
- int len;
- while ((len = is.read(bytes, 0, bytes.length)) != -1) {
- messageDigest.update(bytes, 0, len);
- }
-
- bytes = messageDigest.digest();
- StringBuffer sb = new StringBuffer(bytes.length * 2);
-
- for (int i = 0; i < bytes.length; i++) {
- int hi = (bytes[i] >> 4) & 0xf;
- int lo = bytes[i] & 0xf;
- sb.append(Character.forDigit(hi, 16));
- sb.append(Character.forDigit(lo, 16));
- }
- hash = sb.toString();
- } finally {
- if (is != null) {
- is.close();
- }
- }
-
- return hash;
- }
}
diff --git a/modules/enterprise/server/plugins/url/src/test/java/org/rhq/enterprise/server/plugins/url/XmlIndexParserTest.java b/modules/enterprise/server/plugins/url/src/test/java/org/rhq/enterprise/server/plugins/url/XmlIndexParserTest.java
index 50ed388..7798e93 100644
--- a/modules/enterprise/server/plugins/url/src/test/java/org/rhq/enterprise/server/plugins/url/XmlIndexParserTest.java
+++ b/modules/enterprise/server/plugins/url/src/test/java/org/rhq/enterprise/server/plugins/url/XmlIndexParserTest.java
@@ -51,7 +51,7 @@ public class XmlIndexParserTest {
assert details instanceof FullRemotePackageInfo : "Bad class=" + details.getClass();
FullRemotePackageInfo fullDetails = (FullRemotePackageInfo) details;
assert "Mazzlocation".equals(fullDetails.getLocation()) : fullDetails.getLocation();
- assert "Mazzmd5".equals(fullDetails.getMD5()) : fullDetails.getMD5();
+ assert "Mazzsha256".equals(fullDetails.getSHA256()) : fullDetails.getSHA256();
assert new URL("http://root/url/Mazzlocation").equals(fullDetails.getUrl()) : fullDetails.getUrl();
assert "Mazzarchitecture-name".equals(fullDetails.getSupportedPackageType().architectureName) : fullDetails
.getSupportedPackageType().architectureName;
@@ -140,7 +140,7 @@ public class XmlIndexParserTest {
assert details instanceof FullRemotePackageInfo : "Bad class=" + details.getClass();
fullDetails = (FullRemotePackageInfo) details;
assert "WOTGORILLAlocation".equals(fullDetails.getLocation()) : fullDetails.getLocation();
- assert null == fullDetails.getMD5() : fullDetails.getMD5();
+ assert null == fullDetails.getSHA256() : fullDetails.getSHA256();
assert new URL("http://root/url/WOTGORILLAlocation").equals(fullDetails.getUrl()) : fullDetails.getUrl();
assert "WOTGORILLAarchitecture-name".equals(fullDetails.getSupportedPackageType().architectureName) : fullDetails
.getSupportedPackageType().architectureName;
commit 490ad1f0cdc7f2e7c294dee87f3cc9a9b57ceacf
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Mon Jan 9 13:32:23 2012 -0600
[BZ 772722] Fixes for Yum and disk remote content plugins to use SHA256 for the version and corretly set the display version.
diff --git a/modules/enterprise/server/plugins/disk/src/main/java/org/rhq/enterprise/server/plugins/disk/DiskSource.java b/modules/enterprise/server/plugins/disk/src/main/java/org/rhq/enterprise/server/plugins/disk/DiskSource.java
index 3155976..2c4e907 100644
--- a/modules/enterprise/server/plugins/disk/src/main/java/org/rhq/enterprise/server/plugins/disk/DiskSource.java
+++ b/modules/enterprise/server/plugins/disk/src/main/java/org/rhq/enterprise/server/plugins/disk/DiskSource.java
@@ -234,14 +234,15 @@ public class DiskSource implements ContentProvider, PackageSource, RepoSource {
}
ContentFileInfo fileInfo = ContentFileInfoFactory.createContentFileInfo(file);
- String md5;
+ String sha256;
try {
- md5 = MessageDigestGenerator.getDigestString(file);
+ sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(file);
} catch (IOException e) {
throw new SyncException("Error digesting file", e);
}
String name = file.getName();
- String version = fileInfo.getVersion(md5);
+ String version = "[sha256=" + sha256 + "]";
+ String displayVersion = fileInfo.getVersion(null);
String packageTypeName = supportedPackageType.packageTypeName;
String architectureName = supportedPackageType.architectureName;
String resourceTypeName = supportedPackageType.resourceTypeName;
@@ -255,7 +256,8 @@ public class DiskSource implements ContentProvider, PackageSource, RepoSource {
pkg.setFileName(name);
pkg.setFileCreatedDate(file.lastModified());
pkg.setFileSize(file.length());
- pkg.setMD5(md5);
+ pkg.setSHA256(sha256);
+ pkg.setDisplayVersion(displayVersion);
pkg.setLocation(getRelativePath(file));
pkg.setShortDescription(fileInfo.getDescription(null));
diff --git a/modules/enterprise/server/plugins/yum/src/main/java/org/rhq/enterprise/server/plugins/yum/Repo.java b/modules/enterprise/server/plugins/yum/src/main/java/org/rhq/enterprise/server/plugins/yum/Repo.java
index 616dad4..2a31298 100644
--- a/modules/enterprise/server/plugins/yum/src/main/java/org/rhq/enterprise/server/plugins/yum/Repo.java
+++ b/modules/enterprise/server/plugins/yum/src/main/java/org/rhq/enterprise/server/plugins/yum/Repo.java
@@ -219,7 +219,9 @@ public class Repo {
*/
private ContentProviderPackageDetails getDetails(Element p) throws Exception {
String name = p.getChildText("name", Repodata.yumns);
- String version = encodeVersion(p);
+ String displayVersion = encodeVersion(p);
+ String sha256 = p.getChildText("checksum", Repodata.yumns);
+ String version = "[sha256=" + sha256 + "]";
String arch = p.getChildText("arch", Repodata.yumns);
ContentProviderPackageDetailsKey key = new ContentProviderPackageDetailsKey(name, version, "rpm", arch,
"Linux", "Platforms");
@@ -233,6 +235,7 @@ public class Repo {
pkg.setFileCreatedDate(filedate(p));
pkg.setLicenseName(p.getChild("format", Repodata.yumns).getChildText("license", Repodata.rpmns));
pkg.setSHA256(p.getChildText("checksum", Repodata.yumns));
+ pkg.setDisplayVersion(displayVersion);
pkg.setLocation(location(p));
pkg.setMetadata(gzip(p));
return pkg;
commit 0800e7dfb264d2c97e7f9638e98fcad6deeeab4a
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Thu Jan 5 15:23:07 2012 -0600
[BZ 758753] Revert to using version for querying packages during the merge process. This is possible because the version is now SHA256 across all the plugins.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageVersion.java b/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageVersion.java
index 6a1af87..135a619 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageVersion.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageVersion.java
@@ -58,14 +58,13 @@ import org.rhq.core.domain.util.OSGiVersionComparator;
*/
@Entity
@NamedQueries({
- @NamedQuery(name = PackageVersion.QUERY_FIND_BY_PACKAGE_DETAILS, query = "" //
+ @NamedQuery(name = PackageVersion.QUERY_FIND_BY_PACKAGE_VERSION, query = "" //
+ "SELECT pv FROM PackageVersion AS pv " //
+ " WHERE pv.generalPackage.name = :packageName " //
+ " AND pv.generalPackage.packageType.name = :packageTypeName " //
+ " AND pv.generalPackage.packageType.resourceType.id = :resourceTypeId " //
- + " AND ( ( NOT pv.sha256 IS NULL AND pv.sha256 = :sha ) OR "
- + " ( pv.sha256 IS NULL AND pv.architecture.name = :architectureName AND pv.version = :version ) "
- + " ) "),
+ + " AND pv.version = :version "//
+ + " ORDER BY pv.id DESC "),
@NamedQuery(name = PackageVersion.QUERY_FIND_BY_PACKAGE_SHA, query = "" //
+ "SELECT pv FROM PackageVersion AS pv " //
+ " WHERE pv.generalPackage.name = :packageName " //
@@ -272,7 +271,7 @@ public class PackageVersion implements Serializable {
private static final long serialVersionUID = 1L;
- public static final String QUERY_FIND_BY_PACKAGE_DETAILS = "PackageVersion.findByPackageDetails";
+ public static final String QUERY_FIND_BY_PACKAGE_VERSION = "PackageVersion.findByPackageVersion";
public static final String QUERY_FIND_BY_PACKAGE_VER_ARCH = "PackageVersion.findByPackageVerArch";
public static final String QUERY_FIND_BY_PACKAGE_SHA = "PackageVersion.findByPackageSha";
public static final String QUERY_FIND_BY_PACKAGE_SHA_RES_TYPE = "PackageVersion.findByPackageShaResType";
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
index 234d400..5edc4d9 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
@@ -202,12 +202,12 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
// If the package exists see if package version already exists
if (null != generalPackage) {
Query packageVersionQuery = entityManager
- .createNamedQuery(PackageVersion.QUERY_FIND_BY_PACKAGE_SHA);
+ .createNamedQuery(PackageVersion.QUERY_FIND_BY_PACKAGE_VERSION);
packageVersionQuery.setFlushMode(FlushModeType.COMMIT);
packageVersionQuery.setParameter("packageName", discoveredPackage.getName());
packageVersionQuery.setParameter("packageTypeName", discoveredPackage.getPackageTypeName());
packageVersionQuery.setParameter("resourceTypeId", resource.getResourceType().getId());
- packageVersionQuery.setParameter("sha", discoveredPackage.getSHA256());
+ packageVersionQuery.setParameter("version", discoveredPackage.getVersion());
List<PackageVersion> resultPackageVersions = packageVersionQuery.getResultList();
if (resultPackageVersions.size() > 0) {
packageVersion = resultPackageVersions.get(0);
commit c59b59bdcd6d2d33cc6cce212aee971616fb00aa
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Thu Jan 5 15:06:41 2012 -0600
[BZ 771777] If there are multiple installed packages associated with an application then return the one with the latest timestamp.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
index fd1db2a..234d400 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
@@ -1603,8 +1603,18 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
PageList<InstalledPackage> ips = findInstalledPackagesByCriteria(subject, criteria);
// should not be more than 1
- if ((null != ips) && (1 == ips.size())) {
- result = ips.get(0);
+ if ((null != ips) && (ips.size() > 0)) {
+ int mostRecentPackageIndex = 0;
+
+ if (ips.size() > 1) {
+ for (int index = 1; index < ips.size(); index++) {
+ if (ips.get(index).getInstallationDate() > ips.get(mostRecentPackageIndex).getInstallationDate()) {
+ mostRecentPackageIndex = index;
+ }
+ }
+ }
+
+ result = ips.get(mostRecentPackageIndex);
// fetch these
result.getPackageVersion().getGeneralPackage().getId();
commit 3bfbb166f8d9a5b821869a0462acc677c0b879b2
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Tue Jan 3 15:07:14 2012 -0600
[BZ 771418] updateBackingContent now requires a version from the user. This version will be used as a display version for the uploaded package.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageVersion.java b/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageVersion.java
index 7096645..6a1af87 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageVersion.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageVersion.java
@@ -71,7 +71,8 @@ import org.rhq.core.domain.util.OSGiVersionComparator;
+ " WHERE pv.generalPackage.name = :packageName " //
+ " AND pv.generalPackage.packageType.name = :packageTypeName " //
+ " AND pv.generalPackage.packageType.resourceType.id = :resourceTypeId " //
- + " AND pv.sha256 = :sha "),
+ + " AND pv.sha256 = :sha "
+ + " ORDER BY pv.id DESC "),
@NamedQuery(name = PackageVersion.QUERY_FIND_BY_PACKAGE_VER_ARCH, query = "SELECT pv FROM PackageVersion AS pv "
+ " WHERE pv.generalPackage.name = :name " + " AND pv.generalPackage.packageType.id = :packageTypeId "
+ " AND pv.architecture.id = :architectureId " + " AND pv.version = :version "),
diff --git a/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java b/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java
index eade28b..5390752 100644
--- a/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java
+++ b/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java
@@ -29,11 +29,11 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import javassist.util.proxy.MethodHandler;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import javassist.util.proxy.MethodHandler;
-
import org.rhq.bindings.util.ConfigurationClassBuilder;
import org.rhq.bindings.util.LazyLoadScenario;
import org.rhq.bindings.util.ResourceTypeFingerprint;
@@ -505,7 +505,7 @@ public class ResourceClientProxy {
return remoteClient.getContentManager().getBackingPackageForResource(remoteClient.getSubject(), resourceClientProxy.resourceId);
}
- public void updateBackingContent(String filename) {
+ public void updateBackingContent(String filename, String contentVersion) {
File file = new File(filename);
if (!file.exists()) {
throw new IllegalArgumentException("File not found: " + file.getAbsolutePath());
@@ -524,7 +524,7 @@ public class ResourceClientProxy {
LOG.error("Message digest for the package bits failed.", e);
}
- String version = "[sha256="+sha+"]";
+ String packageVersion = "[sha256="+sha+"]";
InstalledPackage oldPackage = getBackingContent();
@@ -533,7 +533,8 @@ public class ResourceClientProxy {
remoteClient.getSubject(),
oldPackage.getPackageVersion().getGeneralPackage().getName(),
oldPackage.getPackageVersion().getGeneralPackage().getPackageType().getId(),
- version,
+ packageVersion,
+ contentVersion,
oldPackage.getPackageVersion().getArchitecture().getId(),
fileContents);
@@ -644,7 +645,7 @@ public class ResourceClientProxy {
public InstalledPackage getBackingContent();
- public void updateBackingContent(String fileName);
+ public void updateBackingContent(String fileName, String contentVersion);
public void retrieveBackingContent(String fileName) throws IOException;
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java
index 3c2111a..20c53bc 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java
@@ -28,7 +28,6 @@ import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -760,7 +759,7 @@ public class BundleManagerBean implements BundleManagerLocal, BundleManagerRemot
architecture = (Architecture) q.getSingleResult();
}
PackageVersion packageVersion = contentManager.createPackageVersion(subject, name, packageType.getId(),
- version, architecture.getId(), fileStream);
+ version, null, architecture.getId(), fileStream);
// set the PackageVersion's filename to the bundleFile name, it's left null by default
packageVersion.setFileName(name);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
index 5b03fd2..fd1db2a 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
@@ -93,7 +93,6 @@ import org.rhq.core.domain.criteria.PackageCriteria;
import org.rhq.core.domain.criteria.PackageVersionCriteria;
import org.rhq.core.domain.resource.Agent;
import org.rhq.core.domain.resource.Resource;
-import org.rhq.core.domain.resource.ResourceCreationDataType;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.util.MessageDigestGenerator;
@@ -1234,7 +1233,7 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
}
}
- public PackageVersion createPackageVersion(Subject subject, String packageName, int packageTypeId, String version,
+ public PackageVersion createPackageVersion(Subject subject, String packageName, int packageTypeId, String version, String displayVersion,
Integer architectureId, byte[] packageBytes) {
// Check permissions first
@@ -1243,13 +1242,13 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
+ "] does not have permission to create package versions");
}
- return createPackageVersion(subject, packageName, packageTypeId, version, (null == architectureId) ? getNoArchitecture()
+ return createPackageVersion(subject, packageName, packageTypeId, version, displayVersion, (null == architectureId) ? getNoArchitecture()
.getId() : architectureId, new ByteArrayInputStream(packageBytes));
}
@TransactionAttribute(value = TransactionAttributeType.REQUIRES_NEW)
public PackageVersion createPackageVersion(Subject subject, String packageName, int packageTypeId,
- String version, int architectureId, InputStream packageBitStream) {
+ String version, String displayVersion, int architectureId, InputStream packageBitStream) {
// See if the package version already exists and return that if it does
Query packageVersionQuery = entityManager.createNamedQuery(PackageVersion.QUERY_FIND_BY_PACKAGE_VER_ARCH);
packageVersionQuery.setParameter("name", packageName);
@@ -1260,7 +1259,13 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
// Result of the query should be either 0 or 1
List existingVersionList = packageVersionQuery.getResultList();
if (existingVersionList.size() > 0) {
- return (PackageVersion) existingVersionList.get(0);
+ PackageVersion existingPackageVersion = (PackageVersion) existingVersionList.get(0);
+ if (displayVersion != null && !displayVersion.trim().isEmpty()) {
+ existingPackageVersion.setDisplayVersion(displayVersion);
+ existingPackageVersion = persistOrMergePackageVersionSafely(existingPackageVersion);
+ }
+
+ return existingPackageVersion;
}
Architecture architecture = entityManager.find(Architecture.class, architectureId);
@@ -1315,6 +1320,7 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
newPackageVersion.setPackageBits(bits);
newPackageVersion.setFileSize(Long.valueOf(contentDetails.get(UPLOAD_FILE_SIZE)).longValue());
newPackageVersion.setSHA256(contentDetails.get(UPLOAD_SHA256));
+ newPackageVersion.setDisplayVersion(displayVersion);
existingPackage.addVersion(newPackageVersion);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
index 566b4fc..9819ee7 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
@@ -240,7 +240,7 @@ public interface ContentManagerLocal {
* one was found
*/
PackageVersion createPackageVersion(Subject subject, String packageName, int packageTypeId, String version,
- int architectureId, InputStream packageBitStream);
+ String displayVersion, int architectureId, InputStream packageBitStream);
/**
* This method is essentially the same as {@link #createPackageVersion(Subject, String, int, String, int, InputStream)}
@@ -350,7 +350,7 @@ public interface ContentManagerLocal {
* @see {@link createPackageVersion(Subject, String, int, String, int, byte[]);
*/
PackageVersion createPackageVersion(Subject subject, String packageName, int packageTypeId, String version,
- Integer architectureId, byte[] packageBytes);
+ String displayVersion, Integer architectureId, byte[] packageBytes);
/**
* @see {@link ContentManagerRemote#deletePackages(Subject, int, int[], String)}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java
index 0038824..439c8a7 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java
@@ -69,6 +69,7 @@ public interface ContentManagerRemote {
@WebParam(name = "packageName") String packageName, //
@WebParam(name = "packageTypeId") int packageTypeId, //
@WebParam(name = "version") String version, //
+ @WebParam(name = "displayVersion") String displayVersion, //
@WebParam(name = "architectureId") Integer architectureId, //
@WebParam(name = "packageBytes") byte[] packageBytes);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerBean.java
index 37131c2..0cb3349 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerBean.java
@@ -447,7 +447,7 @@ public class ResourceFactoryManagerBean implements ResourceFactoryManagerLocal,
PackageVersion packageVersion = null;
if (packageUploadDetails == null) {
packageVersion = contentManager.createPackageVersion(user, packageName, newPackageType.getId(),
- packageVersionNumber, architectureId, packageBitStream);
+ packageVersionNumber, null, architectureId, packageBitStream);
} else {
packageVersion = contentManager.getUploadedPackageVersion(user, packageName, newPackageType.getId(),
packageVersionNumber, architectureId, packageBitStream, packageUploadDetails, null);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
index 54725a6..f5d4a36 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
@@ -507,8 +507,10 @@ public class WebservicesManagerBean implements WebservicesRemote {
//CONTENTMANAGER: BEGIN ----------------------------------
public PackageVersion createPackageVersion(Subject subject, String packageName, int packageTypeId, String version,
+ String displayVersion,
Integer architectureId, byte[] packageBytes) {
- return contentManager.createPackageVersion(subject, packageName, packageTypeId, version, architectureId,
+ return contentManager.createPackageVersion(subject, packageName, packageTypeId, version, displayVersion,
+ architectureId,
packageBytes);
}
commit e3738bc8c84fa9f42c077db6ee758969c4ddf6a4
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Thu Dec 22 16:29:00 2011 -0600
[BZ 769986] The version field is no longer required when uploading a package. If the user types a version then the display version is used to capture that information.
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateNewPackageUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateNewPackageUIBean.java
index 2a08598..666cac8 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateNewPackageUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateNewPackageUIBean.java
@@ -136,7 +136,7 @@ public class CreateNewPackageUIBean {
return response;
}
- public String createNewPackage(String packageName, String version, int architectureId, int packageTypeId) {
+ private String createNewPackage(String packageName, String displayVersion, int architectureId, int packageTypeId) {
// Collect the necessary information
Subject subject = EnterpriseFacesContextUtility.getSubject();
@@ -155,11 +155,6 @@ public class CreateNewPackageUIBean {
return null;
}
- if (version == null || version.trim().equals("")) {
- FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, "Package version must be specified");
- return null;
- }
-
if (repoOption == null) {
FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR,
"A repository deployment option must be specified");
@@ -189,8 +184,8 @@ public class CreateNewPackageUIBean {
repoId = determineRepo(repoOption, subject, resource.getId());
} catch (ContentException ce) {
String errorMessages = ThrowableUtil.getAllMessages(ce);
- FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, "Failed to determine repository. Cause: "
- + errorMessages);
+ FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR,
+ "Failed to determine repository. Cause: " + errorMessages);
return "failure";
}
} else {
@@ -199,7 +194,7 @@ public class CreateNewPackageUIBean {
repoId = FacesContextUtility.getRequiredRequestParameter("id");
}
}
-
+
try {
PackageVersion packageVersion = null;
try {
@@ -221,31 +216,38 @@ public class CreateNewPackageUIBean {
//store information about uploaded file for packageDetails as most of it is already available
Map<String, String> packageUploadDetails = new HashMap<String, String>();
- packageUploadDetails.put(ContentManagerLocal.UPLOAD_FILE_SIZE, String.valueOf(fileItem.getFileSize()));
- packageUploadDetails.put(ContentManagerLocal.UPLOAD_FILE_INSTALL_DATE, String.valueOf(System
- .currentTimeMillis()));
+ packageUploadDetails.put(ContentManagerLocal.UPLOAD_FILE_SIZE,
+ String.valueOf(fileItem.getFileSize()));
+ packageUploadDetails.put(ContentManagerLocal.UPLOAD_FILE_INSTALL_DATE,
+ String.valueOf(System.currentTimeMillis()));
packageUploadDetails.put(ContentManagerLocal.UPLOAD_OWNER, subject.getName());
packageUploadDetails.put(ContentManagerLocal.UPLOAD_FILE_NAME, fileItem.getFileName());
+ String sha = null;
+ String md5 = null;
try {//Easier to implement here than in server side bean. Shouldn't affect performance too much.
- packageUploadDetails.put(ContentManagerLocal.UPLOAD_MD5, new MessageDigestGenerator(
- MessageDigestGenerator.MD5).calcDigestString(fileItem.getFile()));
- packageUploadDetails.put(ContentManagerLocal.UPLOAD_SHA256, new MessageDigestGenerator(
- MessageDigestGenerator.SHA_256).calcDigestString(fileItem.getFile()));
+ md5 = new MessageDigestGenerator(MessageDigestGenerator.MD5).calcDigestString(fileItem
+ .getFile());
+ sha = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(fileItem
+ .getFile());
} catch (IOException e1) {
log.warn("Error calculating file digest(s)", e1);
}
+ packageUploadDetails.put(ContentManagerLocal.UPLOAD_MD5, md5);
+ packageUploadDetails.put(ContentManagerLocal.UPLOAD_SHA256, sha);
+ packageUploadDetails.put(ContentManagerLocal.UPLOAD_DISPLAY_VERSION, displayVersion);
+
Integer iRepoId = usingARepo ? Integer.parseInt(repoId) : null;
packageVersion = contentManager.getUploadedPackageVersion(subject, packageName, packageTypeId,
- version, architectureId, packageStream, packageUploadDetails, iRepoId);
+ formatVersion(sha), architectureId, packageStream, packageUploadDetails, iRepoId);
} catch (NoResultException nre) {
//eat the exception. Some of the queries return no results if no package yet exists which is fine.
} catch (Exception e) {
String errorMessages = ThrowableUtil.getAllMessages(e);
- FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, "Failed to create package [" + packageName
- + "] in repository. Cause: " + errorMessages);
+ FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, "Failed to create package ["
+ + packageName + "] in repository. Cause: " + errorMessages);
return "failure";
}
} finally {
@@ -258,7 +260,6 @@ public class CreateNewPackageUIBean {
return "failure";
}
-
int[] packageVersionList = new int[] { packageVersion.getId() };
// Put the package ID in the session so it can fit into the deploy existing package workflow
@@ -320,7 +321,7 @@ public class CreateNewPackageUIBean {
public SelectItem[] getPackageTypesWithResourceTypeNames() {
return getPackageTypes(true);
}
-
+
private SelectItem[] getPackageTypes(boolean includeResourceTypeResolution) {
Resource resource = EnterpriseFacesContextUtility.getResourceIfExists();
@@ -346,7 +347,7 @@ public class CreateNewPackageUIBean {
return items;
}
-
+
public SelectItem[] getSubscribedRepos() {
Resource resource = EnterpriseFacesContextUtility.getResource();
@@ -385,7 +386,7 @@ public class CreateNewPackageUIBean {
if (!isResourcePackage()) {
return true;
}
-
+
boolean isPackageBacked = isResourcePackageBacked();
boolean backingPackageExists = lookupBackingPackage() != null;
@@ -395,7 +396,7 @@ public class CreateNewPackageUIBean {
public boolean isResourcePackage() {
return EnterpriseFacesContextUtility.getResourceIfExists() != null;
}
-
+
public boolean isResourcePackageBacked() {
Resource resource = EnterpriseFacesContextUtility.getResource();
ResourceType resourceType = resource.getResourceType();
@@ -446,10 +447,10 @@ public class CreateNewPackageUIBean {
if (packageName != null) {
return packageName;
}
-
+
UploadNewPackageUIBean uploadUIBean = FacesContextUtility.getManagedBean(UploadNewPackageUIBean.class);
UploadItem fileItem = uploadUIBean.getFileItem();
-
+
return fileItem == null ? null : fileItem.getFileName();
}
@@ -540,4 +541,8 @@ public class CreateNewPackageUIBean {
return repoId;
}
+
+ private String formatVersion(String sha) {
+ return "[sha256=" + sha + "]";
+ }
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/DeployPackagesUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/DeployPackagesUIBean.java
index 2e7e95e..3fe6228 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/DeployPackagesUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/DeployPackagesUIBean.java
@@ -80,6 +80,8 @@ public class DeployPackagesUIBean extends PagedDataTableUIBean {
// Going forward, we'll need to create this earlier and store the user entered configuration in these
// objects. jdobies, Mar 3, 2008
+ // The following code is completely unnecessary as the package version ids are already
+ // stored in session.
ContentUIManagerLocal contentUIManager = LookupUtil.getContentUIManager();
int[] packagesVersionsIdsToDeploy = new int[packageIds.length];
for (int iterator = 0; iterator < packageIds.length; iterator++) {
@@ -92,7 +94,7 @@ public class DeployPackagesUIBean extends PagedDataTableUIBean {
try {
ContentManagerLocal contentManager = LookupUtil.getContentManager();
- contentManager.deployPackages(subject, new int[] { resource.getId() }, new int[] {}, notes);
+ contentManager.deployPackages(subject, new int[] { resource.getId() }, packagesVersionsIdsToDeploy, notes);
} catch (Exception e) {
FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, "Could not send deploy request to agent", e);
}
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repo-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repo-plain.xhtml
index b45e738..15c3f35 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repo-plain.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repo-plain.xhtml
@@ -688,10 +688,10 @@
<ui:remove><!-- row 3 --></ui:remove>
<h:panelGroup style="float: right">
- <b>Version <span class="required-marker-text">*</span></b>
+ <b>Version</b>
</h:panelGroup>
<h:panelGroup style="clear: both">
- <h:inputText id="initialVersion" value="#{CreateNewPackageUIBean.version}" required="true"/>
+ <h:inputText id="initialVersion" value="#{CreateNewPackageUIBean.version}"/>
<h:message for="initialVersion" styleClass="ValidationErrorText"/>
</h:panelGroup>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/content/create-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/content/create-plain.xhtml
index dba508b..0b6c45b 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/content/create-plain.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/content/create-plain.xhtml
@@ -89,19 +89,16 @@
<h:panelGrid columns="2">
<h:panelGroup style="float: right">
- <b>Version <span class="required-marker-text">*</span></b>
+ <b>Version</b>
</h:panelGroup>
<h:panelGroup style="clear: both">
- <h:inputText id="updateVersion" value="#{CreateNewPackageUIBean.version}" required="true"/>
- <h:message for="updateVersion" styleClass="ValidationErrorText"/>
+ <h:inputText id="updateVersion" value="#{CreateNewPackageUIBean.version}"/>
</h:panelGroup>
</h:panelGrid>
</rich:panel>
- <div class="note-panel"><span class="required-marker-text">*</span><span> denotes a required field.</span></div>
-
<rich:panel>
<f:facet name="header">Repository</f:facet>
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
index 29c3c85..5b03fd2 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
@@ -1712,13 +1712,14 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
packageVersion.setFileSize(Long.valueOf(contentDetails.get(UPLOAD_FILE_SIZE)).longValue());
packageVersion.setSHA256(contentDetails.get(UPLOAD_SHA256));
-
+
//populate extra details, persist
if (packageUploadDetails != null) {
packageVersion.setFileCreatedDate(Long.valueOf(packageUploadDetails
.get(ContentManagerLocal.UPLOAD_FILE_INSTALL_DATE)));
packageVersion.setFileName(packageUploadDetails.get(ContentManagerLocal.UPLOAD_FILE_NAME));
packageVersion.setMD5(packageUploadDetails.get(ContentManagerLocal.UPLOAD_MD5));
+ packageVersion.setDisplayVersion(packageUploadDetails.get(ContentManagerLocal.UPLOAD_DISPLAY_VERSION));
}
entityManager.merge(packageVersion);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
index 1957091..566b4fc 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
@@ -76,6 +76,8 @@ public interface ContentManagerLocal {
public static final String UPLOAD_MD5 = "md5";
+ public static final String UPLOAD_DISPLAY_VERSION = "displayVersion";
+
/**
* This is currently ignored as the SHA is computed upon
* persist.
commit 4ba6830d2facb77544c50f0db191bfeca8e057b2
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Thu Dec 22 16:26:46 2011 -0600
[BZ 769986] Updated JSF content view to correctly display the version of packages.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/content/InstalledPackage.java b/modules/core/domain/src/main/java/org/rhq/core/domain/content/InstalledPackage.java
index 2bfc04f..ba4eff0 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/content/InstalledPackage.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/content/InstalledPackage.java
@@ -53,7 +53,7 @@ import org.rhq.core.domain.resource.Resource;
@NamedQuery(name = InstalledPackage.QUERY_FIND_BY_RESOURCE_ID_AND_PKG_VER_ID, query = "SELECT ip FROM InstalledPackage AS ip WHERE ip.resource.id = :resourceId AND ip.packageVersion.id = :packageVersionId"),
@NamedQuery(name = InstalledPackage.QUERY_FIND_BY_RESOURCE_AND_PACKAGE, query = "SELECT ip FROM InstalledPackage AS ip WHERE ip.resource.id = :resourceId AND ip.packageVersion.generalPackage.id = :packageId "),
@NamedQuery(name = InstalledPackage.QUERY_FIND_BY_RESOURCE_AND_PACKAGE_VER, query = "SELECT ip FROM InstalledPackage AS ip WHERE ip.resource.id = :resourceId AND ip.packageVersion.id = :packageVersionId "),
- @NamedQuery(name = InstalledPackage.QUERY_FIND_PACKAGE_LIST_ITEM_COMPOSITE, query = "SELECT new org.rhq.core.domain.content.composite.PackageListItemComposite(ip.id, gp.name, pt.displayName, ip.packageVersion.version, ip.installationDate ) "
+ @NamedQuery(name = InstalledPackage.QUERY_FIND_PACKAGE_LIST_ITEM_COMPOSITE, query = "SELECT new org.rhq.core.domain.content.composite.PackageListItemComposite(ip.id, gp.name, pt.displayName, ip.packageVersion.version, ip.packageVersion.displayVersion, ip.installationDate ) "
+ " FROM InstalledPackage ip JOIN ip.resource res LEFT JOIN ip.packageVersion pv LEFT JOIN pv.generalPackage gp LEFT JOIN gp.packageType pt "
+ "WHERE res.id = :resourceId "
+ " AND (:packageTypeFilterId = pt.id OR :packageTypeFilterId is null) "
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/content/composite/PackageListItemComposite.java b/modules/core/domain/src/main/java/org/rhq/core/domain/content/composite/PackageListItemComposite.java
index 76e886e..e51d530 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/content/composite/PackageListItemComposite.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/content/composite/PackageListItemComposite.java
@@ -37,22 +37,17 @@ public class PackageListItemComposite implements Serializable {
private final String packageName;
private final String packageTypeName;
private final String version;
+ private final String displayVersion;
private final Long timestamp;
- public PackageListItemComposite(int id, String packageName, String packageTypeName, String version) {
- this.id = id;
- this.packageName = packageName;
- this.packageTypeName = packageTypeName;
- this.version = version;
- this.timestamp = null;
- }
-
- public PackageListItemComposite(int id, String packageName, String packageTypeName, String version, Long timestamp) {
+ public PackageListItemComposite(int id, String packageName, String packageTypeName, String version,
+ String displayVersion, Long timestamp) {
this.id = id;
this.packageName = packageName;
this.packageTypeName = packageTypeName;
this.version = version;
this.timestamp = timestamp;
+ this.displayVersion = displayVersion;
}
public int getId() {
@@ -71,6 +66,10 @@ public class PackageListItemComposite implements Serializable {
return version;
}
+ public String getDisplayVersion() {
+ return displayVersion;
+ }
+
public Long getTimestamp() {
return timestamp;
}
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/content/view-plain.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/content/view-plain.xhtml
index 7ff59f3..bc551d1 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/content/view-plain.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/content/view-plain.xhtml
@@ -105,7 +105,7 @@
</onc:sortableColumnHeader>
</f:facet>
- <h:outputText value="#{item.version}"/>
+ <h:outputText value="#{ not empty item.displayVersion ? item.displayVersion : item.version }"/>
</rich:column>
<rich:column>
commit a7a26fa49a37a1734c8eea4da55fdac905a0332b
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Wed Dec 21 11:36:07 2011 -0600
[BZ 767393] Update JBoss AS5 plugin to use display version for manifest versions.
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java
index a8eba4d..7d51d3f 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java
@@ -60,6 +60,8 @@ import org.rhq.core.pluginapi.inventory.DeleteResourceFacet;
import org.rhq.core.pluginapi.measurement.MeasurementFacet;
import org.rhq.core.util.ZipUtil;
import org.rhq.core.util.exception.ThrowableUtil;
+import org.rhq.core.util.file.ContentFileInfo;
+import org.rhq.core.util.file.JarContentFileInfo;
import org.rhq.plugins.jbossas5.util.DeploymentUtils;
import org.rhq.plugins.jbossas5.util.FileContentDelegate;
@@ -145,6 +147,8 @@ public class StandaloneManagedDeploymentComponent extends AbstractManagedDeploym
String fileName = this.deploymentFile.getName();
String sha256 = getSHA256(this.deploymentFile);
String version = getVersion(sha256);
+ String displayVersion = getDisplayVersion(deploymentFile);
+
// Package name is the deployment's file name (e.g. foo.ear).
PackageDetailsKey key = new PackageDetailsKey(fileName, version, PKG_TYPE_FILE, ARCHITECTURE);
ResourcePackageDetails packageDetails = new ResourcePackageDetails(key);
@@ -155,6 +159,7 @@ public class StandaloneManagedDeploymentComponent extends AbstractManagedDeploym
packageDetails.setFileCreatedDate(null); // TODO: get created date via SIGAR
packageDetails.setSHA256(sha256);
packageDetails.setInstallationTimestamp(Long.valueOf(System.currentTimeMillis()));
+ packageDetails.setDisplayVersion(displayVersion);
Set<ResourcePackageDetails> packages = new HashSet<ResourcePackageDetails>();
packages.add(packageDetails);
@@ -187,6 +192,20 @@ public class StandaloneManagedDeploymentComponent extends AbstractManagedDeploym
return "[sha256=" + sha256 + "]";
}
+ /**
+ * Retrieve the display version for the component. The display version should be stored
+ * in the manifest of the application (implementation and/or specification version).
+ * It will attempt to retrieve the version for both archived or exploded deployments.
+ *
+ * @param file component file
+ * @return
+ */
+ private String getDisplayVersion(File file) {
+ //JarContentFileInfo extracts the version from archived and exploded deployments
+ ContentFileInfo contentFileInfo = new JarContentFileInfo(file);
+ return contentFileInfo.getVersion(null);
+ }
+
public RemovePackagesResponse removePackages(Set<ResourcePackageDetails> packages) {
throw new UnsupportedOperationException("Cannot remove the package backing an EAR/WAR resource.");
}
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/JarContentDelegate.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/JarContentDelegate.java
index 3bb920a..da4ba86 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/JarContentDelegate.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/JarContentDelegate.java
@@ -36,6 +36,8 @@ import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.content.PackageDetailsKey;
import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
import org.rhq.core.util.MessageDigestGenerator;
+import org.rhq.core.util.file.ContentFileInfo;
+import org.rhq.core.util.file.JarContentFileInfo;
/**
* Discovers Jar files as artifacts including loading their manifest version into the artifact config.
@@ -123,6 +125,7 @@ public class JarContentDelegate extends FileContentDelegate {
details.setFileSize(file.length());
details.setClassification(MIME_TYPE_JAR);
details.setSHA256(sha256);
+ details.setDisplayVersion(getDisplayVersion(file));
details.setExtraProperties(config);
} catch (IOException e) {
@@ -143,4 +146,18 @@ public class JarContentDelegate extends FileContentDelegate {
private String getVersion(String sha256) {
return "[sha256=" + sha256 + "]";
}
+
+ /**
+ * Retrieve the display version for the component. The display version should be stored
+ * in the manifest of the application (implementation and/or specification version).
+ * It will attempt to retrieve the version for both archived or exploded deployments.
+ *
+ * @param file component file
+ * @return
+ */
+ private String getDisplayVersion(File file) {
+ //JarContentFileInfo extracts the version from archived and exploded deployments
+ ContentFileInfo contentFileInfo = new JarContentFileInfo(file);
+ return contentFileInfo.getVersion(null);
+ }
}
commit 548388553e339698d1d4980a9ac5a144d44371ba
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Wed Dec 21 11:20:58 2011 -0600
[BZ 767247] Update JBoss AS4 plugin to use display version for manifest set version.
diff --git a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java
index bf7e925..b2e0185 100644
--- a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java
+++ b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java
@@ -54,6 +54,8 @@ import org.rhq.core.pluginapi.operation.OperationResult;
import org.rhq.core.pluginapi.util.FileUtils;
import org.rhq.core.util.ZipUtil;
import org.rhq.core.util.exception.ThrowableUtil;
+import org.rhq.core.util.file.ContentFileInfo;
+import org.rhq.core.util.file.JarContentFileInfo;
import org.rhq.plugins.jbossas.helper.MainDeployer;
import org.rhq.plugins.jbossas.util.FileContentDelegate;
import org.rhq.plugins.jmx.MBeanResourceComponent;
@@ -129,6 +131,8 @@ public class ApplicationComponent extends MBeanResourceComponent<JBossASServerCo
String sha256 = getSHA256(file);
String version = getVersion(sha256);
+ String displayVersion = getDisplayVersion(file);
+
PackageDetailsKey key = new PackageDetailsKey(fileName, version, PKG_TYPE_FILE, ARCHITECTURE);
ResourcePackageDetails details = new ResourcePackageDetails(key);
details.setFileName(fileName);
@@ -139,6 +143,7 @@ public class ApplicationComponent extends MBeanResourceComponent<JBossASServerCo
details.setFileCreatedDate(file.lastModified()); // TODO: get created date via SIGAR
details.setSHA256(sha256);
details.setInstallationTimestamp(Long.valueOf(System.currentTimeMillis()));
+ details.setDisplayVersion(displayVersion);
packages.add(details);
}
@@ -167,6 +172,20 @@ public class ApplicationComponent extends MBeanResourceComponent<JBossASServerCo
return "[sha256=" + sha256 + "]";
}
+ /**
+ * Retrieve the display version for the component. The display version should be stored
+ * in the manifest of the application (implementation and/or specification version).
+ * It will attempt to retrieve the version for both archived or exploded deployments.
+ *
+ * @param file component file
+ * @return
+ */
+ private String getDisplayVersion(File file) {
+ //JarContentFileInfo extracts the version from archived and exploded deployments
+ ContentFileInfo contentFileInfo = new JarContentFileInfo(file);
+ return contentFileInfo.getVersion(null);
+ }
+
public RemovePackagesResponse removePackages(Set<ResourcePackageDetails> packages) {
throw new UnsupportedOperationException("Cannot remove the package backing an EAR/WAR resource.");
}
diff --git a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/JarContentDelegate.java b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/JarContentDelegate.java
index 9dd080e..33a2f02 100644
--- a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/JarContentDelegate.java
+++ b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/JarContentDelegate.java
@@ -36,6 +36,8 @@ import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.content.PackageDetailsKey;
import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
import org.rhq.core.util.MessageDigestGenerator;
+import org.rhq.core.util.file.ContentFileInfo;
+import org.rhq.core.util.file.JarContentFileInfo;
/**
* Discovers Jar files as artifacts including loading their manifest version into the artifact config.
@@ -121,6 +123,7 @@ public class JarContentDelegate extends FileContentDelegate {
details.setFileSize(file.length());
details.setClassification(MIME_TYPE_JAR);
details.setSHA256(sha256);
+ details.setDisplayVersion(getDisplayVersion(file));
details.setExtraProperties(config);
} catch (IOException e) {
@@ -142,4 +145,17 @@ public class JarContentDelegate extends FileContentDelegate {
return "[sha256=" + sha256 + "]";
}
+ /**
+ * Retrieve the display version for the component. The display version should be stored
+ * in the manifest of the application (implementation and/or specification version).
+ * It will attempt to retrieve the version for both archived or exploded deployments.
+ *
+ * @param file component file
+ * @return
+ */
+ private String getDisplayVersion(File file) {
+ //JarContentFileInfo extracts the version from archived and exploded deployments
+ ContentFileInfo contentFileInfo = new JarContentFileInfo(file);
+ return contentFileInfo.getVersion(null);
+ }
}
\ No newline at end of file
commit 398c5e22e76aab0f16b4abfac37513f5abc5d372
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Wed Dec 21 11:03:01 2011 -0600
[BZ 761593] Make use of display version to extract/report the version from the actual manifest of the deployment.
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
index 5265962..96ae3a3 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
@@ -72,6 +72,8 @@ import org.rhq.core.pluginapi.util.ResponseTimeConfiguration;
import org.rhq.core.pluginapi.util.ResponseTimeLogParser;
import org.rhq.core.util.ZipUtil;
import org.rhq.core.util.exception.ThrowableUtil;
+import org.rhq.core.util.file.ContentFileInfo;
+import org.rhq.core.util.file.JarContentFileInfo;
import org.rhq.plugins.jmx.MBeanResourceComponent;
import org.rhq.plugins.jmx.util.ObjectNameQueryUtility;
@@ -616,6 +618,7 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
String fileName = new File(fullFileName).getName();
String sha256 = getSHA256(file);
String version = getVersion(sha256);
+ String displayVersion = getDisplayVersion(file);
PackageDetailsKey key = new PackageDetailsKey(fileName, version, PKG_TYPE_FILE, ARCHITECTURE);
ResourcePackageDetails details = new ResourcePackageDetails(key);
@@ -626,6 +629,7 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
details.setFileCreatedDate(null); // TODO: get created date via SIGAR
details.setInstallationTimestamp(System.currentTimeMillis()); // TODO: anything better than discovery time
details.setSHA256(sha256);
+ details.setDisplayVersion(displayVersion);
packages.add(details);
}
@@ -658,6 +662,20 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
return "[sha256=" + sha256 + "]";
}
+ /**
+ * Retrieve the display version for the component. The display version should be stored
+ * in the manifest of the application (implementation and/or specification version).
+ * It will attempt to retrieve the version for both archived or exploded deployments.
+ *
+ * @param file component file
+ * @return
+ */
+ private String getDisplayVersion(File file) {
+ //JarContentFileInfo extracts the version from archived and exploded deployments
+ ContentFileInfo contentFileInfo = new JarContentFileInfo(file);
+ return contentFileInfo.getVersion(null);
+ }
+
public List<DeployPackageStep> generateInstallationSteps(ResourcePackageDetails packageDetails) {
return null;
}
commit d64679228d723cc4484da3407e2151a76e6f5acf
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Wed Dec 14 11:07:02 2011 -0600
[BZ 767393] Updated the plugin code to use SHA256 as the version and persist it inside the manifest file. Also, add directory based SHA computation for default server applications.
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java
index ebae861..a8eba4d 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java
@@ -58,11 +58,10 @@ import org.rhq.core.pluginapi.content.ContentFacet;
import org.rhq.core.pluginapi.content.ContentServices;
import org.rhq.core.pluginapi.inventory.DeleteResourceFacet;
import org.rhq.core.pluginapi.measurement.MeasurementFacet;
-import org.rhq.core.util.MessageDigestGenerator;
import org.rhq.core.util.ZipUtil;
import org.rhq.core.util.exception.ThrowableUtil;
-import org.rhq.core.util.file.JarContentFileInfo;
import org.rhq.plugins.jbossas5.util.DeploymentUtils;
+import org.rhq.plugins.jbossas5.util.FileContentDelegate;
/**
* A resource component for managing a standalone/top-level Profile Service managed deployment.
@@ -144,9 +143,8 @@ public class StandaloneManagedDeploymentComponent extends AbstractManagedDeploym
+ getResourceDescription() + " does not exist.");
String fileName = this.deploymentFile.getName();
- JarContentFileInfo fileInfo = new JarContentFileInfo(this.deploymentFile);
- String sha256 = getSHA256(fileInfo);
- String version = getVersion(fileInfo, sha256);
+ String sha256 = getSHA256(this.deploymentFile);
+ String version = getVersion(sha256);
// Package name is the deployment's file name (e.g. foo.ear).
PackageDetailsKey key = new PackageDetailsKey(fileName, version, PKG_TYPE_FILE, ARCHITECTURE);
ResourcePackageDetails packageDetails = new ResourcePackageDetails(key);
@@ -164,46 +162,29 @@ public class StandaloneManagedDeploymentComponent extends AbstractManagedDeploym
return packages;
}
- // TODO: if needed we can speed this up by looking in the ResourceContainer's installedPackage
- // list for previously discovered packages. If there use the sha256 from that record. We'd have to
- // get access to that info by adding access in org.rhq.core.pluginapi.content.ContentServices
- private String getSHA256(JarContentFileInfo fileInfo) {
-
+ /**
+ * Retrieve SHA256 for a deployed app.
+ *
+ * @param file application file
+ * @return SHA256 of the content
+ */
+ private String getSHA256(File file) {
String sha256 = null;
try {
- sha256 = fileInfo.getAttributeValue(RHQ_SHA256, null);
- if (null == sha256) {
- sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(fileInfo
- .getContentFile());
- }
- } catch (IOException iex) {
- //log exception but move on, discovery happens often. No reason to hold up anything.
+ FileContentDelegate fileContentDelegate = new FileContentDelegate(file, null, null);
+ sha256 = fileContentDelegate.getSHA(file);
+ } catch (Exception iex) {
if (log.isDebugEnabled()) {
- log.debug("Problem calculating digest of package [" + fileInfo.getContentFile().getPath() + "]."
- + iex.getMessage());
+ log.debug("Problem calculating digest of package [" + file.getPath() + "]." + iex.getMessage());
}
}
return sha256;
}
- private String getVersion(JarContentFileInfo fileInfo, String sha256) {
- // Version string in order of preference
- // manifestVersion + sha256, sha256, manifestVersion, "0"
- String version = "0";
- String manifestVersion = fileInfo.getVersion(null);
-
- if ((null != manifestVersion) && (null != sha256)) {
- // this protects against the occasional differing binaries with poor manifest maintenance
- version = manifestVersion + " [sha256=" + sha256 + "]";
- } else if (null != sha256) {
- version = "[sha256=" + sha256 + "]";
- } else if (null != manifestVersion) {
- version = manifestVersion;
- }
-
- return version;
+ private String getVersion(String sha256) {
+ return "[sha256=" + sha256 + "]";
}
public RemovePackagesResponse removePackages(Set<ResourcePackageDetails> packages) {
@@ -238,8 +219,11 @@ public class StandaloneManagedDeploymentComponent extends AbstractManagedDeploym
log.debug("Writing new EAR/WAR bits to temporary file...");
File tempFile;
+ String sha = null;
try {
tempFile = writeNewAppBitsToTempFile(contentServices, packageDetails);
+ FileContentDelegate fileContentDelegate = new FileContentDelegate(null, null, null);
+ sha = fileContentDelegate.computeSHAForArchive(tempFile);
} catch (Exception e) {
return failApplicationDeployment("Error writing new application bits to temporary file - cause: " + e,
packageDetails);
@@ -320,6 +304,19 @@ public class StandaloneManagedDeploymentComponent extends AbstractManagedDeploym
// Deploy was successful!
deleteBackupOfOriginalFile(backupOfOriginalFile);
+ if (this.deploymentFile.isDirectory()) {
+ FileContentDelegate fileContentDelegate = new FileContentDelegate(deploymentFile, null, null);
+ try {
+ //This is a simulation of create content from FileContentDelegate split across
+ //this deployment method because JBoss AS5 is using a different deployment model.
+ //The SHA256 was pre-computed earlier (at the time the temp content file was created).
+ //The only thing left at this point is to store it in the manifest file.
+ fileContentDelegate.writeSHAToManifest(deploymentFile, sha);
+ } catch (IOException e) {
+ log.error("Unable to save SHA to manifest file for " + this.deploymentFile.getPath() + ".", e);
+ }
+ }
+
DeployPackagesResponse response = new DeployPackagesResponse(ContentResponseResult.SUCCESS);
DeployIndividualPackageResponse packageResponse = new DeployIndividualPackageResponse(packageDetails.getKey(),
ContentResponseResult.SUCCESS);
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/FileContentDelegate.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/FileContentDelegate.java
index 75f890a..915374a 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/FileContentDelegate.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/FileContentDelegate.java
@@ -26,16 +26,22 @@ import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Set;
+import java.util.Stack;
+import java.util.jar.Attributes;
+import java.util.jar.Manifest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+
import org.rhq.core.domain.content.PackageDetails;
import org.rhq.core.domain.content.PackageDetailsKey;
import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
import org.rhq.core.pluginapi.util.FileUtils;
+import org.rhq.core.util.MessageDigestGenerator;
import org.rhq.core.util.ZipUtil;
import org.rhq.core.util.file.FileUtil;
@@ -46,7 +52,9 @@ import org.rhq.core.util.file.FileUtil;
* @author Jason Dobies
*/
public class FileContentDelegate {
- // Attributes --------------------------------------------
+
+ private static final String RHQ_SHA_256 = "RHQ-Sha256";
+ private static final String MANIFEST_RELATIVE_PATH = "META-INF/MANIFEST.MF";
private final Log log = LogFactory.getLog(FileContentDelegate.class);
@@ -55,16 +63,12 @@ public class FileContentDelegate {
private final String fileEnding;
private final String packageTypeName;
- // Constructors --------------------------------------------
-
public FileContentDelegate(File directory, String fileEnding, String packageTypeName) {
this.directory = directory;
this.fileEnding = fileEnding;
this.packageTypeName = packageTypeName;
}
- // Public --------------------------------------------
-
public String getFileEnding() {
return fileEnding;
}
@@ -145,6 +149,44 @@ public class FileContentDelegate {
}
/**
+ * Retrieves the SHA256 for a deployed application.
+ * 1) If the app is exploded then return RHQ-Sha256 manifest attribute.
+ * 1.1) If RHQ-Sha256 is missing then compute it, save it and return the result.
+ * 2) If the app is an archive then compute SHA256 on fly and return it.
+ *
+ * @param deploymentFile deployment file
+ * @return
+ */
+ public String getSHA(File deploymentFile) {
+ String sha = null;
+ try {
+ if (deploymentFile.isDirectory()) {
+ File manifestFile = new File(deploymentFile.getAbsolutePath(), MANIFEST_RELATIVE_PATH);
+ if (manifestFile.exists()) {
+ InputStream manifestStream = new FileInputStream(manifestFile);
+ Manifest manifest = null;
+ try {
+ manifest = new Manifest(manifestStream);
+ sha = manifest.getMainAttributes().getValue(RHQ_SHA_256);
+ } finally {
+ manifestStream.close();
+ }
+ }
+
+ if (sha == null || sha.trim().isEmpty()) {
+ sha = computeAndSaveSHA(deploymentFile);
+ }
+ } else {
+ sha = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(deploymentFile);
+ }
+ } catch (IOException ex) {
+ throw new RuntimeException("Problem calculating digest of package [" + deploymentFile.getPath() + "].", ex);
+ }
+
+ return sha;
+ }
+
+ /**
* Returns a stream from which the content of the specified package can be read.
*
* @param details package being loaded
@@ -185,4 +227,109 @@ public class FileContentDelegate {
*/
return null;
}
+
+ /**
+ * Computes SHA256 for an archive.
+ *
+ * @param contentFile content archive
+ * @return SHA256 of the archive
+ */
+ public String computeSHAForArchive(File contentFile) {
+ if (!contentFile.isDirectory()) {
+ try {
+ MessageDigestGenerator messageDigest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+ return messageDigest.calcDigestString(contentFile);
+ } catch (Exception ex) {
+ log.error("Not able to compute SHA256 for " + contentFile.getPath() + " .");
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * Compute SHA256 for the content of an exploded war deployment. This method should be used to
+ * compute the SHA256 for content deployed outside RHQ or for the initial content delivered
+ * with the server.
+ *
+ * @param deploymentDirectory app deployment folder
+ * @return
+ */
+ private String computeAndSaveSHA(File deploymentDirectory) {
+ String sha = null;
+ try {
+ if (deploymentDirectory.isDirectory()) {
+ MessageDigestGenerator messageDigest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+
+ Stack<File> unvisitedFolders = new Stack<File>();
+ unvisitedFolders.add(deploymentDirectory);
+ while (!unvisitedFolders.empty()) {
+ for (File file : unvisitedFolders.pop().listFiles()) {
+ if (file.isDirectory()) {
+ unvisitedFolders.add(file);
+ } else {
+ FileInputStream inputStream = null;
+ try {
+ inputStream = new FileInputStream(file);
+ messageDigest.add(inputStream);
+ } finally {
+ if (inputStream != null) {
+ inputStream.close();
+ }
+ }
+ }
+ }
+ }
+
+ sha = messageDigest.getDigestString();
+ writeSHAToManifest(deploymentDirectory, sha);
+ }
+ } catch (IOException e) {
+ throw new RuntimeException("Error creating artifact for contentFile: " + deploymentDirectory, e);
+ }
+
+ return sha;
+ }
+
+ /**
+ * Write the SHA256 to the manifest using the RHQ-Sha256 attribute tag.
+ *
+ * @param deploymentFolder app deployment folder
+ * @param sha SHA256
+ * @throws IOException
+ */
+ public void writeSHAToManifest(File deploymentFolder, String sha) throws IOException {
+ File manifestFile = new File(deploymentFolder, MANIFEST_RELATIVE_PATH);
+ Manifest manifest;
+ if (manifestFile.exists()) {
+ FileInputStream inputStream = new FileInputStream(manifestFile);
+ try {
+ manifest = new Manifest(inputStream);
+ } finally {
+ inputStream.close();
+ }
+ } else {
+ manifest = new Manifest();
+ manifestFile.getParentFile().mkdirs();
+ manifestFile.createNewFile();
+ }
+
+ Attributes attribs = manifest.getMainAttributes();
+
+ //The main section of the manifest file does not get saved if both of
+ //these two attributes are missing. Please see Attributes implementation.
+ if (!attribs.containsKey(Attributes.Name.MANIFEST_VERSION.toString())
+ && !attribs.containsKey(Attributes.Name.SIGNATURE_VERSION.toString())) {
+ attribs.putValue(Attributes.Name.MANIFEST_VERSION.toString(), "1.0");
+ }
+
+ attribs.putValue(RHQ_SHA_256, sha);
+
+ FileOutputStream outputStream = new FileOutputStream(manifestFile);
+ try {
+ manifest.write(outputStream);
+ } finally {
+ outputStream.close();
+ }
+ }
}
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/JarContentDelegate.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/JarContentDelegate.java
index d68f429..3bb920a 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/JarContentDelegate.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/JarContentDelegate.java
@@ -113,9 +113,9 @@ public class JarContentDelegate extends FileContentDelegate {
} catch (Exception e) {
// leave as null
}
- String version = getVersion(manifestVersion, sha256);
+
ResourcePackageDetails details = new ResourcePackageDetails(new PackageDetailsKey(file.getName(),
- version, getPackageTypeName(), "noarch"));
+ getVersion(sha256), getPackageTypeName(), "noarch"));
packages.add(details);
details.setFileCreatedDate(file.lastModified()); // Why don't we have a last modified time?
@@ -140,21 +140,7 @@ public class JarContentDelegate extends FileContentDelegate {
return packages;
}
- private String getVersion(String manifestVersion, String sha256) {
- // Version string in order of preference
- // manifestVersion + sha256, sha256, manifestVersion, "0"
- String version = "0";
-
- if ((null != manifestVersion) && (null != sha256)) {
- // this protects against the occasional differing binaries with poor manifest maintenance
- version = manifestVersion + " [sha256=" + sha256 + "]";
- } else if (null != sha256) {
- version = "[sha256=" + sha256 + "]";
- } else if (null != manifestVersion) {
- version = manifestVersion;
- }
-
- return version;
+ private String getVersion(String sha256) {
+ return "[sha256=" + sha256 + "]";
}
-
}
commit b003470d6580417261a8139bceb81cb496e8209f
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Tue Dec 13 17:17:58 2011 -0600
[BZ 767247] Updated the JBoss AS4 plugin to use the same design as Tomcat plugin with regards to version and SHA256.
diff --git a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java
index a7c70db..bf7e925 100644
--- a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java
+++ b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java
@@ -52,11 +52,10 @@ import org.rhq.core.pluginapi.inventory.DeleteResourceFacet;
import org.rhq.core.pluginapi.operation.OperationFacet;
import org.rhq.core.pluginapi.operation.OperationResult;
import org.rhq.core.pluginapi.util.FileUtils;
-import org.rhq.core.util.MessageDigestGenerator;
import org.rhq.core.util.ZipUtil;
import org.rhq.core.util.exception.ThrowableUtil;
-import org.rhq.core.util.file.JarContentFileInfo;
import org.rhq.plugins.jbossas.helper.MainDeployer;
+import org.rhq.plugins.jbossas.util.FileContentDelegate;
import org.rhq.plugins.jmx.MBeanResourceComponent;
/**
@@ -128,9 +127,8 @@ public class ApplicationComponent extends MBeanResourceComponent<JBossASServerCo
// Package name and file name of the application are the same
String fileName = new File(fullFileName).getName();
- JarContentFileInfo fileInfo = new JarContentFileInfo(file);
- String sha256 = getSHA256(fileInfo);
- String version = getVersion(fileInfo, sha256);
+ String sha256 = getSHA256(file);
+ String version = getVersion(sha256);
PackageDetailsKey key = new PackageDetailsKey(fileName, version, PKG_TYPE_FILE, ARCHITECTURE);
ResourcePackageDetails details = new ResourcePackageDetails(key);
details.setFileName(fileName);
@@ -148,46 +146,25 @@ public class ApplicationComponent extends MBeanResourceComponent<JBossASServerCo
return packages;
}
- // TODO: if needed we can speed this up by looking in the ResourceContainer's installedPackage
- // list for previously discovered packages. If there use the sha256 from that record. We'd have to
- // get access to that info by adding access in org.rhq.core.pluginapi.content.ContentServices
- private String getSHA256(JarContentFileInfo fileInfo) {
+ private String getSHA256(File file) {
String sha256 = null;
try {
- sha256 = fileInfo.getAttributeValue(RHQ_SHA256, null);
- if (null == sha256) {
- sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(fileInfo
- .getContentFile());
- }
- } catch (IOException iex) {
+ FileContentDelegate fileContentDelegate = new FileContentDelegate(file, null, null);
+ sha256 = fileContentDelegate.getSHA(file);
+ } catch (Exception iex) {
//log exception but move on, discovery happens often. No reason to hold up anything.
if (log.isDebugEnabled()) {
- log.debug("Problem calculating digest of package [" + fileInfo.getContentFile().getPath() + "]."
- + iex.getMessage());
+ log.debug("Problem calculating digest of package [" + file.getPath() + "]." + iex.getMessage());
}
}
return sha256;
}
- private String getVersion(JarContentFileInfo fileInfo, String sha256) {
- // Version string in order of preference
- // manifestVersion + sha256, sha256, manifestVersion, "0"
- String version = "0";
- String manifestVersion = fileInfo.getVersion(null);
-
- if ((null != manifestVersion) && (null != sha256)) {
- // this protects against the occasional differing binaries with poor manifest maintenance
- version = manifestVersion + " [sha256=" + sha256 + "]";
- } else if (null != sha256) {
- version = "[sha256=" + sha256 + "]";
- } else if (null != manifestVersion) {
- version = manifestVersion;
- }
-
- return version;
+ private String getVersion(String sha256) {
+ return "[sha256=" + sha256 + "]";
}
public RemovePackagesResponse removePackages(Set<ResourcePackageDetails> packages) {
diff --git a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/JBossASServerComponent.java b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/JBossASServerComponent.java
index 3169376..45de746 100644
--- a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/JBossASServerComponent.java
+++ b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/JBossASServerComponent.java
@@ -100,7 +100,6 @@ import org.rhq.core.pluginapi.support.SnapshotReportResults;
import org.rhq.core.pluginapi.support.SupportFacet;
import org.rhq.core.pluginapi.util.FileUtils;
import org.rhq.core.pluginapi.util.SelectiveSkippingEntityResolver;
-import org.rhq.core.util.MessageDigestGenerator;
import org.rhq.plugins.jbossas.helper.JavaSystemProperties;
import org.rhq.plugins.jbossas.helper.MainDeployer;
import org.rhq.plugins.jbossas.util.ConnectionFactoryConfigurationEditor;
@@ -896,9 +895,7 @@ public class JBossASServerComponent<T extends ResourceComponent<?>> implements M
return;
}
- InputStream isForTempDir = new BufferedInputStream(new FileInputStream(tempFile));
- String shaString = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).getDigestString(tempFile);
- deployer.createContent(details, isForTempDir, !zip, createBackup, shaString);
+ deployer.createContent(details, tempFile, !zip, createBackup);
String vhost = null;
if (resourceTypeName.equals(RESOURCE_TYPE_WAR)) {
diff --git a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java
index 6c4e83b..499d5a5 100644
--- a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java
+++ b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java
@@ -30,6 +30,7 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Set;
+import java.util.Stack;
import java.util.jar.Attributes;
import java.util.jar.Manifest;
@@ -40,6 +41,7 @@ import org.rhq.core.domain.content.PackageDetails;
import org.rhq.core.domain.content.PackageDetailsKey;
import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
import org.rhq.core.pluginapi.util.FileUtils;
+import org.rhq.core.util.MessageDigestGenerator;
import org.rhq.core.util.ZipUtil;
import org.rhq.core.util.file.FileUtil;
@@ -50,7 +52,9 @@ import org.rhq.core.util.file.FileUtil;
* @author Jason Dobies
*/
public class FileContentDelegate {
- // Attributes --------------------------------------------
+
+ private static final String RHQ_SHA_256 = "RHQ-Sha256";
+ private static final String MANIFEST_RELATIVE_PATH = "META-INF/MANIFEST.MF";
private Log log = LogFactory.getLog(FileContentDelegate.class);
@@ -59,16 +63,12 @@ public class FileContentDelegate {
private String fileEnding;
private String packageTypeName;
- // Constructors --------------------------------------------
-
public FileContentDelegate(File directory, String fileEnding, String packageTypeName) {
this.directory = directory;
this.fileEnding = fileEnding;
this.packageTypeName = packageTypeName;
}
- // Public --------------------------------------------
-
public String getFileEnding() {
return fileEnding;
}
@@ -92,41 +92,23 @@ public class FileContentDelegate {
* @param createBackup If <code>true</code>, the original file will be backed up to file.bak
* @param shaString the SHA-256 of the specified input stream
*/
- public void createContent(PackageDetails details, InputStream content, boolean unzip, boolean createBackup,
- String shaString) {
- File contentFile = getPath(details);
+ public void createContent(PackageDetails details, File sourceContentFile, boolean unzip, boolean createBackup) {
+ File destinationContentFile = getPath(details);
try {
if (createBackup) {
- moveToBackup(contentFile, ".bak");
+ moveToBackup(destinationContentFile, ".bak");
}
if (unzip) {
- ZipUtil.unzipFile(content, contentFile);
- File manifestFile = new File(contentFile, "META-INF/MANIFEST.MF");
- Manifest manifest;
- if (manifestFile.exists()) {
- FileInputStream inputStream = new FileInputStream(manifestFile);
- try {
- manifest = new Manifest(inputStream);
- } finally {
- inputStream.close();
- }
- } else {
- manifest = new Manifest();
- }
- Attributes attribs = manifest.getMainAttributes();
- attribs.putValue("RHQ-Sha256", shaString);
- FileOutputStream outputStream = new FileOutputStream(manifestFile);
- try {
- manifest.write(outputStream);
- } finally {
- outputStream.close();
- }
+ ZipUtil.unzipFile(sourceContentFile, destinationContentFile);
+ String shaString = new MessageDigestGenerator(MessageDigestGenerator.SHA_256)
+ .calcDigestString(sourceContentFile);
+ writeSHAToManifest(destinationContentFile, shaString);
} else {
- FileUtil.writeFile(content, contentFile);
+ FileUtil.copyFile(sourceContentFile, destinationContentFile);
}
- details.setFileName(contentFile.getPath());
+ details.setFileName(destinationContentFile.getPath());
} catch (IOException e) {
- throw new RuntimeException("Error creating artifact from details: " + contentFile, e);
+ throw new RuntimeException("Error creating artifact from details: " + destinationContentFile, e);
}
}
@@ -211,4 +193,128 @@ public class FileContentDelegate {
*/
return null;
}
+
+ /**
+ * Retrieves the SHA256 for a deployed application.
+ * 1) If the app is exploded then return RHQ-Sha256 manifest attribute.
+ * 1.1) If RHQ-Sha256 is missing then compute it, save it and return the result.
+ * 2) If the app is an archive then compute SHA256 on fly and return it.
+ *
+ * @param deploymentFile deployment file
+ * @return
+ */
+ public String getSHA(File deploymentFile) {
+ String sha = null;
+ try {
+ if (deploymentFile.isDirectory()) {
+ File manifestFile = new File(deploymentFile.getAbsolutePath(), MANIFEST_RELATIVE_PATH);
+ if (manifestFile.exists()) {
+ InputStream manifestStream = new FileInputStream(manifestFile);
+ Manifest manifest = null;
+ try {
+ manifest = new Manifest(manifestStream);
+ sha = manifest.getMainAttributes().getValue(RHQ_SHA_256);
+ } finally {
+ manifestStream.close();
+ }
+ }
+
+ if (sha == null || sha.trim().isEmpty()) {
+ sha = computeAndSaveSHA(deploymentFile);
+ }
+ } else {
+ sha = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(deploymentFile);
+ }
+ } catch (IOException ex) {
+ throw new RuntimeException("Problem calculating digest of package [" + deploymentFile.getPath() + "].", ex);
+ }
+
+ return sha;
+ }
+
+ /**
+ * Compute SHA256 for the content of an exploded war deployment. This method should be used to
+ * compute the SHA256 for content deployed outside RHQ or for the initial content delivered
+ * with the server.
+ *
+ * @param deploymentDirectory app deployment folder
+ * @return
+ */
+ private String computeAndSaveSHA(File deploymentDirectory) {
+ String sha = null;
+ try {
+ if (deploymentDirectory.isDirectory()) {
+ MessageDigestGenerator messageDigest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+
+ Stack<File> unvisitedFolders = new Stack<File>();
+ unvisitedFolders.add(deploymentDirectory);
+ while (!unvisitedFolders.empty()) {
+ for (File file : unvisitedFolders.pop().listFiles()) {
+ if (file.isDirectory()) {
+ unvisitedFolders.add(file);
+ } else {
+ FileInputStream inputStream = null;
+ try {
+ inputStream = new FileInputStream(file);
+ messageDigest.add(inputStream);
+ } finally {
+ if (inputStream != null) {
+ inputStream.close();
+ }
+ }
+ }
+ }
+ }
+
+ sha = messageDigest.getDigestString();
+ writeSHAToManifest(deploymentDirectory, sha);
+ }
+ } catch (IOException e) {
+ throw new RuntimeException("Error creating artifact for contentFile: " + deploymentDirectory, e);
+ }
+
+ return sha;
+ }
+
+ /**
+ * Write the SHA256 to the manifest using the RHQ-Sha256 attribute tag.
+ *
+ * @param deploymentFolder app deployment folder
+ * @param sha SHA256
+ * @throws IOException
+ */
+ private void writeSHAToManifest(File deploymentFolder, String sha) throws IOException {
+ File manifestFile = new File(deploymentFolder, MANIFEST_RELATIVE_PATH);
+ Manifest manifest;
+ if (manifestFile.exists()) {
+ FileInputStream inputStream = new FileInputStream(manifestFile);
+ try {
+ manifest = new Manifest(inputStream);
+ } finally {
+ inputStream.close();
+ }
+ } else {
+ manifest = new Manifest();
+ manifestFile.getParentFile().mkdirs();
+ manifestFile.createNewFile();
+ }
+
+ Attributes attribs = manifest.getMainAttributes();
+
+ //The main section of the manifest file does not get saved if both of
+ //these two attributes are missing. Please see Attributes implementation.
+ if (!attribs.containsKey(Attributes.Name.MANIFEST_VERSION.toString())
+ && !attribs.containsKey(Attributes.Name.SIGNATURE_VERSION.toString())) {
+ attribs.putValue(Attributes.Name.MANIFEST_VERSION.toString(), "1.0");
+ }
+
+ attribs.putValue(RHQ_SHA_256, sha);
+
+ FileOutputStream outputStream = new FileOutputStream(manifestFile);
+ try {
+ manifest.write(outputStream);
+ } finally {
+ outputStream.close();
+ }
+ }
}
\ No newline at end of file
diff --git a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/JarContentDelegate.java b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/JarContentDelegate.java
index ee3e603..9dd080e 100644
--- a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/JarContentDelegate.java
+++ b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/JarContentDelegate.java
@@ -111,9 +111,9 @@ public class JarContentDelegate extends FileContentDelegate {
} catch (Exception e) {
// leave as null
}
- String version = getVersion(manifestVersion, sha256);
+
ResourcePackageDetails details = new ResourcePackageDetails(new PackageDetailsKey(file.getName(),
- version, getPackageTypeName(), "noarch"));
+ getVersion(sha256), getPackageTypeName(), "noarch"));
packages.add(details);
details.setFileCreatedDate(file.lastModified()); // Why don't we have a last modified time?
@@ -138,21 +138,8 @@ public class JarContentDelegate extends FileContentDelegate {
return packages;
}
- private String getVersion(String manifestVersion, String sha256) {
- // Version string in order of preference
- // manifestVersion + sha256, sha256, manifestVersion, "0"
- String version = "0";
-
- if ((null != manifestVersion) && (null != sha256)) {
- // this protects against the occasional differing binaries with poor manifest maintenance
- version = manifestVersion + " [sha256=" + sha256 + "]";
- } else if (null != sha256) {
- version = "[sha256=" + sha256 + "]";
- } else if (null != manifestVersion) {
- version = manifestVersion;
- }
-
- return version;
+ private String getVersion(String sha256) {
+ return "[sha256=" + sha256 + "]";
}
}
\ No newline at end of file
commit 3bbfcdabea8dad6533e1249f21424cb0d05a2a8e
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Tue Dec 13 11:15:45 2011 -0600
[BZ 761593] Move all the code for computation and retrieval of SHA256 to file content delegate. This way the manifest and digest code is in one location only.
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
index b9bd2fa..5265962 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
@@ -34,7 +34,6 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
-import java.util.jar.Manifest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -71,7 +70,6 @@ import org.rhq.core.pluginapi.operation.OperationResult;
import org.rhq.core.pluginapi.util.FileUtils;
import org.rhq.core.pluginapi.util.ResponseTimeConfiguration;
import org.rhq.core.pluginapi.util.ResponseTimeLogParser;
-import org.rhq.core.util.MessageDigestGenerator;
import org.rhq.core.util.ZipUtil;
import org.rhq.core.util.exception.ThrowableUtil;
import org.rhq.plugins.jmx.MBeanResourceComponent;
@@ -636,43 +634,18 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
}
/**
- * Retrieve SHA 256 for a deployed app.
- * 1) If the app is exploded then look into the manifest file for the RHQ-Sha265 attribute.
- * The SHA should have been computed and the attribute added during package deployment.
- * 2) If the app is not exploded then compute the SHA256 for the archive.
+ * Retrieve SHA256 for a deployed app.
*
* @param file application file
- * @return the SHA 256
+ * @return SHA256 of the content
*/
private String getSHA256(File file) {
-
String sha256 = null;
try {
- //if the filesize of discovered package is null then it's an exploded and deployed war/ear.
- File app = new File(file.getPath());
- if (app.isDirectory()) {
- File manifestFile = new File(app.getAbsolutePath(), "META-INF/MANIFEST.MF");
- if (manifestFile.exists()) {
- InputStream manifestStream = new FileInputStream(manifestFile);
- Manifest manifest = null;
- try {
- manifest = new Manifest(manifestStream);
- sha256 = manifest.getMainAttributes().getValue("RHQ-Sha256");
- } finally {
- manifestStream.close();
- }
- }
-
- if (sha256 == null || sha256.trim().isEmpty()) {
- FileContentDelegate fileContentDelegate = new FileContentDelegate(app);
- sha256 = fileContentDelegate.calculateSHAForCotent(app);
- }
- } else {
- sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(app);
- }
- } catch (IOException iex) {
- //log exception but move on, discovery happens often. No reason to hold up anything.
+ FileContentDelegate fileContentDelegate = new FileContentDelegate(file);
+ sha256 = fileContentDelegate.getSHA(file);
+ } catch (Exception iex) {
if (log.isDebugEnabled()) {
log.debug("Problem calculating digest of package [" + file.getPath() + "]." + iex.getMessage());
}
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java
index 5699ab4..6f914db 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java
@@ -51,6 +51,9 @@ import org.rhq.core.util.file.FileUtil;
*/
public class FileContentDelegate {
+ private static final String RHQ_SHA_256 = "RHQ-Sha256";
+ private static final String MANIFEST_RELATIVE_PATH = "META-INF/MANIFEST.MF";
+
private File deployDirectory;
public FileContentDelegate(File directory) {
@@ -92,44 +95,38 @@ public class FileContentDelegate {
}
/**
- * Calculate SHA256 for the content of an exploded war deployment. This method should be used to
- * compute the SHA256 for content deployed outside RHQ or for the initial content delivered
- * with the server.
+ * Retrieves the SHA256 for a deployed application.
+ * 1) If the app is exploded then return RHQ-Sha256 manifest attribute.
+ * 1.1) If RHQ-Sha256 is missing then compute it, save it and return the result.
+ * 2) If the app is an archive then compute SHA256 on fly and return it.
*
- * @param deploymentDirectory app deployment folder
+ * @param deploymentFile deployment file
* @return
*/
- public String calculateSHAForCotent(File deploymentDirectory) {
+ public String getSHA(File deploymentFile) {
String sha = null;
try {
- if (deploymentDirectory.isDirectory()) {
- MessageDigestGenerator messageDigest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
-
- Stack<File> unvisitedFolders = new Stack<File>();
- unvisitedFolders.add(deploymentDirectory);
- while (!unvisitedFolders.empty()) {
- for (File file : unvisitedFolders.pop().listFiles()) {
- if (file.isDirectory()) {
- unvisitedFolders.add(file);
- } else {
- FileInputStream inputStream = null;
- try {
- inputStream = new FileInputStream(file);
- messageDigest.add(inputStream);
- } finally {
- if (inputStream != null) {
- inputStream.close();
- }
- }
- }
+ if (deploymentFile.isDirectory()) {
+ File manifestFile = new File(deploymentFile.getAbsolutePath(), MANIFEST_RELATIVE_PATH);
+ if (manifestFile.exists()) {
+ InputStream manifestStream = new FileInputStream(manifestFile);
+ Manifest manifest = null;
+ try {
+ manifest = new Manifest(manifestStream);
+ sha = manifest.getMainAttributes().getValue(RHQ_SHA_256);
+ } finally {
+ manifestStream.close();
}
}
- sha = messageDigest.getDigestString();
- writeSHAToManifest(deploymentDirectory, sha);
+ if (sha == null || sha.trim().isEmpty()) {
+ sha = computeAndSaveSHA(deploymentFile);
+ }
+ } else {
+ sha = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(deploymentFile);
}
- } catch (IOException e) {
- throw new RuntimeException("Error creating artifact for contentFile: " + deploymentDirectory, e);
+ } catch (IOException ex) {
+ throw new RuntimeException("Problem calculating digest of package [" + deploymentFile.getPath() + "].", ex);
}
return sha;
@@ -200,6 +197,50 @@ public class FileContentDelegate {
}
/**
+ * Compute SHA256 for the content of an exploded war deployment. This method should be used to
+ * compute the SHA256 for content deployed outside RHQ or for the initial content delivered
+ * with the server.
+ *
+ * @param deploymentDirectory app deployment folder
+ * @return
+ */
+ private String computeAndSaveSHA(File deploymentDirectory) {
+ String sha = null;
+ try {
+ if (deploymentDirectory.isDirectory()) {
+ MessageDigestGenerator messageDigest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+
+ Stack<File> unvisitedFolders = new Stack<File>();
+ unvisitedFolders.add(deploymentDirectory);
+ while (!unvisitedFolders.empty()) {
+ for (File file : unvisitedFolders.pop().listFiles()) {
+ if (file.isDirectory()) {
+ unvisitedFolders.add(file);
+ } else {
+ FileInputStream inputStream = null;
+ try {
+ inputStream = new FileInputStream(file);
+ messageDigest.add(inputStream);
+ } finally {
+ if (inputStream != null) {
+ inputStream.close();
+ }
+ }
+ }
+ }
+ }
+
+ sha = messageDigest.getDigestString();
+ writeSHAToManifest(deploymentDirectory, sha);
+ }
+ } catch (IOException e) {
+ throw new RuntimeException("Error creating artifact for contentFile: " + deploymentDirectory, e);
+ }
+
+ return sha;
+ }
+
+ /**
* Write the SHA256 to the manifest using the RHQ-Sha256 attribute tag.
*
* @param deploymentFolder app deployment folder
@@ -207,7 +248,7 @@ public class FileContentDelegate {
* @throws IOException
*/
private void writeSHAToManifest(File deploymentFolder, String sha) throws IOException {
- File manifestFile = new File(deploymentFolder, "META-INF/MANIFEST.MF");
+ File manifestFile = new File(deploymentFolder, MANIFEST_RELATIVE_PATH);
Manifest manifest;
if (manifestFile.exists()) {
FileInputStream inputStream = new FileInputStream(manifestFile);
@@ -231,7 +272,7 @@ public class FileContentDelegate {
attribs.putValue(Attributes.Name.MANIFEST_VERSION.toString(), "1.0");
}
- attribs.putValue("RHQ-Sha256", sha);
+ attribs.putValue(RHQ_SHA_256, sha);
FileOutputStream outputStream = new FileOutputStream(manifestFile);
try {
commit b960588d8d6f13d9fcfe2c5c48c1252adad8819a
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Tue Dec 13 09:40:15 2011 -0600
[BZ 761593] Compute SHA256 for content that was deployed outside RHQ or for default content delivered with the server.
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatVHostComponent.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatVHostComponent.java
index f605e2d..0024cf8 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatVHostComponent.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatVHostComponent.java
@@ -302,7 +302,7 @@ public class TomcatVHostComponent extends MBeanResourceComponent<TomcatServerCom
return;
}
- FileContentDelegate fileContent = new FileContentDelegate(deployDir, details.getPackageTypeName());
+ FileContentDelegate fileContent = new FileContentDelegate(deployDir);
fileContent.createContent(path, tempFile, explodeOnDeploy);
// Resource key is a canonical objectName similar to:
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
index 0aedf94..b9bd2fa 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
@@ -511,7 +511,7 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
log.warn("Failed to create app backup but proceeding with redeploy of " + appFile.getPath() + ": " + e);
}
- FileContentDelegate contentDelegate = new FileContentDelegate(appFile.getParentFile(), packageDetails.getName());
+ FileContentDelegate contentDelegate = new FileContentDelegate(appFile.getParentFile());
try {
// Write the new bits for the application. If successful Tomcat will pick it up and complete the deploy.
@@ -653,13 +653,20 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
File app = new File(file.getPath());
if (app.isDirectory()) {
File manifestFile = new File(app.getAbsolutePath(), "META-INF/MANIFEST.MF");
- InputStream manifestStream = new FileInputStream(manifestFile);
- Manifest manifest = null;
- try {
- manifest = new Manifest(manifestStream);
- sha256 = manifest.getMainAttributes().getValue("RHQ-Sha256");
- } finally {
- manifestStream.close();
+ if (manifestFile.exists()) {
+ InputStream manifestStream = new FileInputStream(manifestFile);
+ Manifest manifest = null;
+ try {
+ manifest = new Manifest(manifestStream);
+ sha256 = manifest.getMainAttributes().getValue("RHQ-Sha256");
+ } finally {
+ manifestStream.close();
+ }
+ }
+
+ if (sha256 == null || sha256.trim().isEmpty()) {
+ FileContentDelegate fileContentDelegate = new FileContentDelegate(app);
+ sha256 = fileContentDelegate.calculateSHAForCotent(app);
}
} else {
sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(app);
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java
index a93eddf..5699ab4 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java
@@ -30,6 +30,7 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Set;
+import java.util.Stack;
import java.util.jar.Attributes;
import java.util.jar.Manifest;
@@ -49,24 +50,18 @@ import org.rhq.core.util.file.FileUtil;
* @author Jason Dobies
*/
public class FileContentDelegate {
- // Attributes --------------------------------------------
private File deployDirectory;
- private String packageTypeName;
- // Constructors --------------------------------------------
-
- public FileContentDelegate(File directory, String packageTypeName) {
+ public FileContentDelegate(File directory) {
this.deployDirectory = directory;
- this.packageTypeName = packageTypeName;
- }
-
- // Public --------------------------------------------
-
- public String getPackageTypeName() {
- return packageTypeName;
}
+ /**
+ * Getter for deployment directory.
+ *
+ * @return deploy directory
+ */
public File getDirectory() {
return deployDirectory;
}
@@ -85,30 +80,8 @@ public class FileContentDelegate {
try {
if (unzip) {
ZipUtil.unzipFile(content, destination);
-
- File manifestFile = new File(destination, "META-INF/MANIFEST.MF");
- Manifest manifest;
- if (manifestFile.exists()) {
- FileInputStream inputStream = new FileInputStream(manifestFile);
- try {
- manifest = new Manifest(inputStream);
- } finally {
- inputStream.close();
- }
- } else {
- manifest = new Manifest();
- }
-
- Attributes attribs = manifest.getMainAttributes();
String sha = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(content);
- attribs.putValue("RHQ-Sha256", sha);
-
- FileOutputStream outputStream = new FileOutputStream(manifestFile);
- try {
- manifest.write(outputStream);
- } finally {
- outputStream.close();
- }
+ writeSHAToManifest(destination, sha);
} else {
InputStream contentStream = new BufferedInputStream(new FileInputStream(content));
FileUtil.writeFile(contentStream, destination);
@@ -118,6 +91,50 @@ public class FileContentDelegate {
}
}
+ /**
+ * Calculate SHA256 for the content of an exploded war deployment. This method should be used to
+ * compute the SHA256 for content deployed outside RHQ or for the initial content delivered
+ * with the server.
+ *
+ * @param deploymentDirectory app deployment folder
+ * @return
+ */
+ public String calculateSHAForCotent(File deploymentDirectory) {
+ String sha = null;
+ try {
+ if (deploymentDirectory.isDirectory()) {
+ MessageDigestGenerator messageDigest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+
+ Stack<File> unvisitedFolders = new Stack<File>();
+ unvisitedFolders.add(deploymentDirectory);
+ while (!unvisitedFolders.empty()) {
+ for (File file : unvisitedFolders.pop().listFiles()) {
+ if (file.isDirectory()) {
+ unvisitedFolders.add(file);
+ } else {
+ FileInputStream inputStream = null;
+ try {
+ inputStream = new FileInputStream(file);
+ messageDigest.add(inputStream);
+ } finally {
+ if (inputStream != null) {
+ inputStream.close();
+ }
+ }
+ }
+ }
+ }
+
+ sha = messageDigest.getDigestString();
+ writeSHAToManifest(deploymentDirectory, sha);
+ }
+ } catch (IOException e) {
+ throw new RuntimeException("Error creating artifact for contentFile: " + deploymentDirectory, e);
+ }
+
+ return sha;
+ }
+
public File getPath(PackageDetails details) {
/* JBNADM-2022 - It still needs to be determined if it is the responsibility of the plugin container or the
* plugin to be concerned with path information in the package name. For now, it's the plugin's
@@ -181,4 +198,46 @@ public class FileContentDelegate {
*/
return null;
}
+
+ /**
+ * Write the SHA256 to the manifest using the RHQ-Sha256 attribute tag.
+ *
+ * @param deploymentFolder app deployment folder
+ * @param sha SHA256
+ * @throws IOException
+ */
+ private void writeSHAToManifest(File deploymentFolder, String sha) throws IOException {
+ File manifestFile = new File(deploymentFolder, "META-INF/MANIFEST.MF");
+ Manifest manifest;
+ if (manifestFile.exists()) {
+ FileInputStream inputStream = new FileInputStream(manifestFile);
+ try {
+ manifest = new Manifest(inputStream);
+ } finally {
+ inputStream.close();
+ }
+ } else {
+ manifest = new Manifest();
+ manifestFile.getParentFile().mkdirs();
+ manifestFile.createNewFile();
+ }
+
+ Attributes attribs = manifest.getMainAttributes();
+
+ //The main section of the manifest file does not get saved if both of
+ //these two attributes are missing. Please see Attributes implementation.
+ if (!attribs.containsKey(Attributes.Name.MANIFEST_VERSION.toString())
+ && !attribs.containsKey(Attributes.Name.SIGNATURE_VERSION.toString())) {
+ attribs.putValue(Attributes.Name.MANIFEST_VERSION.toString(), "1.0");
+ }
+
+ attribs.putValue("RHQ-Sha256", sha);
+
+ FileOutputStream outputStream = new FileOutputStream(manifestFile);
+ try {
+ manifest.write(outputStream);
+ } finally {
+ outputStream.close();
+ }
+ }
}
\ No newline at end of file
commit 1dd4054df01aa17977498813f8b9dd5fcf3bc697
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Mon Dec 12 13:51:12 2011 -0600
[BZ 758753] Use SHA as the version for the package; the format is consistent with the existing versioning scheme.
diff --git a/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java b/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java
index 25068bd..eade28b 100644
--- a/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java
+++ b/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java
@@ -66,6 +66,7 @@ import org.rhq.core.domain.util.PageList;
import org.rhq.core.domain.util.PageOrdering;
import org.rhq.core.domain.util.Summary;
import org.rhq.core.server.MeasurementConverter;
+import org.rhq.core.util.MessageDigestGenerator;
import org.rhq.enterprise.server.content.ContentManagerRemote;
import org.rhq.enterprise.server.resource.ResourceTypeNotFoundException;
@@ -513,32 +514,26 @@ public class ResourceClientProxy {
throw new IllegalArgumentException("File expected, found directory: " + file.getAbsolutePath());
}
-
- InstalledPackage oldPackage = getBackingContent();
-
-
- String oldVersion = oldPackage.getPackageVersion().getVersion();
- String newVersion = "1.0";
- if (oldVersion != null && oldVersion.length() != 0) {
- String[] parts = oldVersion.split("[^a-zA-Z0-9]");
- String lastPart = parts[parts.length-1];
- try {
- int lastNumber = Integer.parseInt(lastPart);
- newVersion = oldVersion.substring(0, oldVersion.length() - lastPart.length()) + (lastNumber + 1);
- } catch (NumberFormatException nfe) {
- newVersion = oldVersion + ".1";
- }
+ byte[] fileContents = new ScriptUtil(remoteClient).getFileBytes(filename);
+ String sha = null;
+ try {
+ sha = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(fileContents);
+ }
+ catch(Exception e){
+ //do nothing because the sha will remain null.
+ LOG.error("Message digest for the package bits failed.", e);
}
- byte[] fileContents = new ScriptUtil(remoteClient).getFileBytes(filename);
+ String version = "[sha256="+sha+"]";
+ InstalledPackage oldPackage = getBackingContent();
PackageVersion pv =
remoteClient.getContentManager().createPackageVersion(
remoteClient.getSubject(),
oldPackage.getPackageVersion().getGeneralPackage().getName(),
oldPackage.getPackageVersion().getGeneralPackage().getPackageType().getId(),
- newVersion,
+ version,
oldPackage.getPackageVersion().getArchitecture().getId(),
fileContents);
@@ -547,8 +542,6 @@ public class ResourceClientProxy {
new int[] { resourceClientProxy.getId()},
new int[] {pv.getId()},
"CLI deployment request");
-
-
}
public void retrieveBackingContent(String fileName) throws IOException {
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
index f2191d4..0aedf94 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
@@ -74,7 +74,6 @@ import org.rhq.core.pluginapi.util.ResponseTimeLogParser;
import org.rhq.core.util.MessageDigestGenerator;
import org.rhq.core.util.ZipUtil;
import org.rhq.core.util.exception.ThrowableUtil;
-import org.rhq.core.util.file.JarContentFileInfo;
import org.rhq.plugins.jmx.MBeanResourceComponent;
import org.rhq.plugins.jmx.util.ObjectNameQueryUtility;
@@ -618,8 +617,7 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
// Package name and file name of the application are the same
String fileName = new File(fullFileName).getName();
String sha256 = getSHA256(file);
- JarContentFileInfo info = new JarContentFileInfo(file);
- String version = getVersion(info, sha256);
+ String version = getVersion(sha256);
PackageDetailsKey key = new PackageDetailsKey(fileName, version, PKG_TYPE_FILE, ARCHITECTURE);
ResourcePackageDetails details = new ResourcePackageDetails(key);
@@ -676,22 +674,8 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
return sha256;
}
- private String getVersion(JarContentFileInfo fileInfo, String sha256) {
- // Version string in order of preference
- // manifestVersion + sha256, sha256, manifestVersion, "0"
- String version = "0";
- String manifestVersion = fileInfo.getVersion(null);
-
- if ((null != manifestVersion) && (null != sha256)) {
- // this protects against the occasional differing binaries with poor manifest maintenance
- version = manifestVersion + " [sha256=" + sha256 + "]";
- } else if (null != sha256) {
- version = "[sha256=" + sha256 + "]";
- } else if (null != manifestVersion) {
- version = manifestVersion;
- }
-
- return version;
+ private String getVersion(String sha256) {
+ return "[sha256=" + sha256 + "]";
}
public List<DeployPackageStep> generateInstallationSteps(ResourcePackageDetails packageDetails) {
commit 5fced2929b4840cf01b6eeab7dc35ed38b379e9b
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Mon Dec 12 10:03:40 2011 -0600
[BZ 758753] Use SHA as the identifier for package discovery. The version is unreliable and not correctly updated between server and agent.
Also, populate the installed package during discovery; the complete method is not the correct place because it does not necessarly mean that the package was fully deployed even if copied.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageVersion.java b/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageVersion.java
index d64d8a5..7096645 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageVersion.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageVersion.java
@@ -57,7 +57,7 @@ import org.rhq.core.domain.util.OSGiVersionComparator;
* @author Jason Dobies
*/
@Entity
-@NamedQueries( {
+@NamedQueries({
@NamedQuery(name = PackageVersion.QUERY_FIND_BY_PACKAGE_DETAILS, query = "" //
+ "SELECT pv FROM PackageVersion AS pv " //
+ " WHERE pv.generalPackage.name = :packageName " //
@@ -66,6 +66,12 @@ import org.rhq.core.domain.util.OSGiVersionComparator;
+ " AND ( ( NOT pv.sha256 IS NULL AND pv.sha256 = :sha ) OR "
+ " ( pv.sha256 IS NULL AND pv.architecture.name = :architectureName AND pv.version = :version ) "
+ " ) "),
+ @NamedQuery(name = PackageVersion.QUERY_FIND_BY_PACKAGE_SHA, query = "" //
+ + "SELECT pv FROM PackageVersion AS pv " //
+ + " WHERE pv.generalPackage.name = :packageName " //
+ + " AND pv.generalPackage.packageType.name = :packageTypeName " //
+ + " AND pv.generalPackage.packageType.resourceType.id = :resourceTypeId " //
+ + " AND pv.sha256 = :sha "),
@NamedQuery(name = PackageVersion.QUERY_FIND_BY_PACKAGE_VER_ARCH, query = "SELECT pv FROM PackageVersion AS pv "
+ " WHERE pv.generalPackage.name = :name " + " AND pv.generalPackage.packageType.id = :packageTypeId "
+ " AND pv.architecture.id = :architectureId " + " AND pv.version = :version "),
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
index 70f5c0c..29c3c85 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
@@ -203,13 +203,11 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
// If the package exists see if package version already exists
if (null != generalPackage) {
Query packageVersionQuery = entityManager
- .createNamedQuery(PackageVersion.QUERY_FIND_BY_PACKAGE_DETAILS);
+ .createNamedQuery(PackageVersion.QUERY_FIND_BY_PACKAGE_SHA);
packageVersionQuery.setFlushMode(FlushModeType.COMMIT);
packageVersionQuery.setParameter("packageName", discoveredPackage.getName());
packageVersionQuery.setParameter("packageTypeName", discoveredPackage.getPackageTypeName());
packageVersionQuery.setParameter("resourceTypeId", resource.getResourceType().getId());
- packageVersionQuery.setParameter("architectureName", discoveredPackage.getArchitectureName());
- packageVersionQuery.setParameter("version", discoveredPackage.getVersion());
packageVersionQuery.setParameter("sha", discoveredPackage.getSHA256());
List<PackageVersion> resultPackageVersions = packageVersionQuery.getResultList();
if (resultPackageVersions.size() > 0) {
@@ -546,10 +544,6 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
// We're closing out the package request for this package version, so remove it from the cache of entries
// that need to be closed
inProgressEntries.remove(packageVersion);
-
- if (singleResponse.getResult() == ContentResponseResult.SUCCESS) {
- updateInstalledPackages(resource, packageVersion);
- }
}
// For any entries that were not closed, add closing entries
@@ -2077,37 +2071,4 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
ex.printStackTrace();
}
}
-
- /**
- * Update the set of installed packages for a content type resource.
- * Existing installed packages are purged and a new set of installed
- * packages is created. Currently, a content type resource has only
- * and only one installed package.
- *
- * @param resource resource
- * @param packageVersion package version
- */
- @SuppressWarnings("unchecked")
- private void updateInstalledPackages(Resource resource, PackageVersion packageVersion) {
- if (resource.getResourceType().getCreationDataType() == ResourceCreationDataType.CONTENT) {
- Query installedPackageQuery = entityManager.createNamedQuery(InstalledPackage.QUERY_FIND_BY_RESOURCE_ID);
- installedPackageQuery.setParameter("resourceId", resource.getId());
-
- List<InstalledPackage> installedPackages = installedPackageQuery.getResultList();
- if ((installedPackages != null) && (installedPackages.size() > 0)) {
- for (InstalledPackage installedPackage : installedPackages) {
- entityManager.refresh(installedPackage);
- entityManager.remove(installedPackage);
- }
- }
-
- InstalledPackage installedPackage = new InstalledPackage();
- installedPackage.setInstallationDate(System.currentTimeMillis());
- installedPackage.setPackageVersion(packageVersion);
- installedPackage.setResource(resource);
- entityManager.persist(installedPackage);
-
- entityManager.flush();
- }
- }
}
\ No newline at end of file
commit f185673bc3ec2c9739912b62e2700814d73494aa
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Thu Dec 8 16:41:19 2011 -0600
[BZ 761593] Update the code to correctly compute SHA 265 for the exploded war file. The existing code was computing MD5 sums.
Also, removed warning supression code left behind from incorrect use of the message digest generator.
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatVHostComponent.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatVHostComponent.java
index aa48a20..f605e2d 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatVHostComponent.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatVHostComponent.java
@@ -228,7 +228,6 @@ public class TomcatVHostComponent extends MBeanResourceComponent<TomcatServerCom
return report;
}
- @SuppressWarnings("static-access")
private void warCreate(CreateResourceReport report) throws Exception {
ResourcePackageDetails details = report.getPackageDetails();
PackageDetailsKey key = details.getKey();
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java
index 42dbde7..a93eddf 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java
@@ -81,7 +81,6 @@ public class FileContentDelegate {
* it is written, using the package name as the base directory; if <code>false</code> the
* content will be written to directly to a file using the package name as the file name
*/
- @SuppressWarnings("static-access")
public void createContent(File destination, File content, boolean unzip) {
try {
if (unzip) {
@@ -101,7 +100,7 @@ public class FileContentDelegate {
}
Attributes attribs = manifest.getMainAttributes();
- String sha = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).getDigestString(content);
+ String sha = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(content);
attribs.putValue("RHQ-Sha256", sha);
FileOutputStream outputStream = new FileOutputStream(manifestFile);
commit 53268f7ce298e11e1a5fa079ff3c25b051d75746
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Thu Dec 8 16:38:17 2011 -0600
[BZ 761593] The plugin was not obtaining the SHA from the manifest file. Since the deployment is exploded the existing code would just fail.
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
index 0a95ad7..f2191d4 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
@@ -34,6 +34,7 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
+import java.util.jar.Manifest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -636,9 +637,15 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
return packages;
}
- // TODO: if needed we can speed this up by looking in the ResourceContainer's installedPackage
- // list for previously discovered packages. If there use the sha256 from that record. We'd have to
- // get access to that info by adding access in org.rhq.core.pluginapi.content.ContentServices
+ /**
+ * Retrieve SHA 256 for a deployed app.
+ * 1) If the app is exploded then look into the manifest file for the RHQ-Sha265 attribute.
+ * The SHA should have been computed and the attribute added during package deployment.
+ * 2) If the app is not exploded then compute the SHA256 for the archive.
+ *
+ * @param file application file
+ * @return the SHA 256
+ */
private String getSHA256(File file) {
String sha256 = null;
@@ -647,8 +654,15 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
//if the filesize of discovered package is null then it's an exploded and deployed war/ear.
File app = new File(file.getPath());
if (app.isDirectory()) {
- File associatedWarFile = new File(app.getAbsolutePath() + ".war");
- sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(associatedWarFile);
+ File manifestFile = new File(app.getAbsolutePath(), "META-INF/MANIFEST.MF");
+ InputStream manifestStream = new FileInputStream(manifestFile);
+ Manifest manifest = null;
+ try {
+ manifest = new Manifest(manifestStream);
+ sha256 = manifest.getMainAttributes().getValue("RHQ-Sha256");
+ } finally {
+ manifestStream.close();
+ }
} else {
sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(app);
}
commit 810fa9312582fa68526aaffab74eabca35ffa7c7
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Thu Dec 8 14:45:00 2011 -0600
[BZ 761593] The war component was not using the content delegate to redeploy applications. Because of this any redeployments were missing the SHA manifest attribute.
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatVHostComponent.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatVHostComponent.java
index 0f63e1f..aa48a20 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatVHostComponent.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatVHostComponent.java
@@ -23,13 +23,10 @@
package org.jboss.on.plugins.tomcat;
-import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
-import java.io.InputStream;
import java.io.OutputStream;
import java.util.StringTokenizer;
import java.util.jar.JarEntry;
@@ -54,7 +51,6 @@ import org.rhq.core.pluginapi.content.ContentServices;
import org.rhq.core.pluginapi.inventory.ApplicationServerComponent;
import org.rhq.core.pluginapi.inventory.CreateChildResourceFacet;
import org.rhq.core.pluginapi.inventory.CreateResourceReport;
-import org.rhq.core.util.MessageDigestGenerator;
import org.rhq.core.util.exception.ThrowableUtil;
import org.rhq.plugins.jmx.MBeanResourceComponent;
@@ -308,9 +304,7 @@ public class TomcatVHostComponent extends MBeanResourceComponent<TomcatServerCom
}
FileContentDelegate fileContent = new FileContentDelegate(deployDir, details.getPackageTypeName());
- InputStream isForTempDir = new BufferedInputStream(new FileInputStream(tempFile));
- String sha = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).getDigestString(tempFile);
- fileContent.createContent(path, isForTempDir, explodeOnDeploy, sha);
+ fileContent.createContent(path, tempFile, explodeOnDeploy);
// Resource key is a canonical objectName similar to:
// Catalina:j2eeType=WebModule,name=//<vHost>/<path>,J2EEApplication=none,J2EEServer=none
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
index 75f8e92..0a95ad7 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
@@ -43,6 +43,7 @@ import org.mc4j.ems.connection.bean.EmsBean;
import org.mc4j.ems.connection.bean.attribute.EmsAttribute;
import org.mc4j.ems.connection.bean.operation.EmsOperation;
+import org.jboss.on.plugins.tomcat.helper.FileContentDelegate;
import org.jboss.on.plugins.tomcat.helper.TomcatApplicationDeployer;
import org.rhq.core.domain.configuration.Configuration;
@@ -510,15 +511,17 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
log.warn("Failed to create app backup but proceeding with redeploy of " + appFile.getPath() + ": " + e);
}
+ FileContentDelegate contentDelegate = new FileContentDelegate(appFile.getParentFile(), packageDetails.getName());
+
try {
// Write the new bits for the application. If successful Tomcat will pick it up and complete the deploy.
- moveTempFileToDeployLocation(tempFile, appFile, isExploded);
+ contentDelegate.createContent(appFile, tempFile, isExploded);
} catch (Exception e) {
// Deploy failed - rollback to the original app file...
String errorMessage = ThrowableUtil.getAllMessages(e);
try {
FileUtils.purge(appFile, true);
- moveTempFileToDeployLocation(backupFile, appFile, isExploded);
+ contentDelegate.createContent(appFile, backupFile, isExploded);
errorMessage += " ***** ROLLED BACK TO ORIGINAL APPLICATION FILE. *****";
} catch (Exception e1) {
errorMessage += " ***** FAILED TO ROLLBACK TO ORIGINAL APPLICATION FILE. *****: "
@@ -539,17 +542,6 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
return response;
}
- private void moveTempFileToDeployLocation(File tempFile, File appFile, boolean isExploded) throws IOException {
- InputStream tempIs = null;
- if (isExploded) {
- tempIs = new BufferedInputStream(new FileInputStream(tempFile));
- appFile.mkdir();
- ZipUtil.unzipFile(tempIs, appFile);
- } else {
- tempFile.renameTo(appFile);
- }
- }
-
private File backupAppBitsToTempFile(File appFile) throws Exception {
File tempDir = getResourceContext().getTemporaryDirectory();
File tempFile = new File(tempDir.getAbsolutePath(), appFile.getName() + System.currentTimeMillis());
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java
index 709c6b7..42dbde7 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java
@@ -37,6 +37,7 @@ import org.rhq.core.domain.content.PackageDetails;
import org.rhq.core.domain.content.PackageDetailsKey;
import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
import org.rhq.core.pluginapi.util.FileUtils;
+import org.rhq.core.util.MessageDigestGenerator;
import org.rhq.core.util.ZipUtil;
import org.rhq.core.util.file.FileUtil;
@@ -80,12 +81,13 @@ public class FileContentDelegate {
* it is written, using the package name as the base directory; if <code>false</code> the
* content will be written to directly to a file using the package name as the file name
*/
- public void createContent(File contentFile, InputStream content, boolean unzip, String sha) {
+ @SuppressWarnings("static-access")
+ public void createContent(File destination, File content, boolean unzip) {
try {
if (unzip) {
- ZipUtil.unzipFile(content, contentFile);
+ ZipUtil.unzipFile(content, destination);
- File manifestFile = new File(contentFile, "META-INF/MANIFEST.MF");
+ File manifestFile = new File(destination, "META-INF/MANIFEST.MF");
Manifest manifest;
if (manifestFile.exists()) {
FileInputStream inputStream = new FileInputStream(manifestFile);
@@ -99,6 +101,7 @@ public class FileContentDelegate {
}
Attributes attribs = manifest.getMainAttributes();
+ String sha = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).getDigestString(content);
attribs.putValue("RHQ-Sha256", sha);
FileOutputStream outputStream = new FileOutputStream(manifestFile);
@@ -108,10 +111,11 @@ public class FileContentDelegate {
outputStream.close();
}
} else {
- FileUtil.writeFile(content, contentFile);
+ InputStream contentStream = new BufferedInputStream(new FileInputStream(content));
+ FileUtil.writeFile(contentStream, destination);
}
} catch (IOException e) {
- throw new RuntimeException("Error creating artifact for contentFile: " + contentFile, e);
+ throw new RuntimeException("Error creating artifact for contentFile: " + destination, e);
}
}
commit 9149b3a7b20af133724d7f0a2dda4f09f54105ae
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Thu Dec 8 12:14:16 2011 -0600
[BZ 761593] Add SHA to manifest for exploded WAR deployments.
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatVHostComponent.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatVHostComponent.java
index 7f600a7..0f63e1f 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatVHostComponent.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatVHostComponent.java
@@ -54,6 +54,7 @@ import org.rhq.core.pluginapi.content.ContentServices;
import org.rhq.core.pluginapi.inventory.ApplicationServerComponent;
import org.rhq.core.pluginapi.inventory.CreateChildResourceFacet;
import org.rhq.core.pluginapi.inventory.CreateResourceReport;
+import org.rhq.core.util.MessageDigestGenerator;
import org.rhq.core.util.exception.ThrowableUtil;
import org.rhq.plugins.jmx.MBeanResourceComponent;
@@ -231,6 +232,7 @@ public class TomcatVHostComponent extends MBeanResourceComponent<TomcatServerCom
return report;
}
+ @SuppressWarnings("static-access")
private void warCreate(CreateResourceReport report) throws Exception {
ResourcePackageDetails details = report.getPackageDetails();
PackageDetailsKey key = details.getKey();
@@ -307,11 +309,11 @@ public class TomcatVHostComponent extends MBeanResourceComponent<TomcatServerCom
FileContentDelegate fileContent = new FileContentDelegate(deployDir, details.getPackageTypeName());
InputStream isForTempDir = new BufferedInputStream(new FileInputStream(tempFile));
- fileContent.createContent(path, isForTempDir, explodeOnDeploy);
-
- // Resource key is a canonical objectName similar to :
- // Catalina:j2eeType=WebModule,name=//<vHost>/<path>,J2EEApplication=none,J2EEServer=none
+ String sha = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).getDigestString(tempFile);
+ fileContent.createContent(path, isForTempDir, explodeOnDeploy, sha);
+ // Resource key is a canonical objectName similar to:
+ // Catalina:j2eeType=WebModule,name=//<vHost>/<path>,J2EEApplication=none,J2EEServer=none
String objectName = "Catalina:j2eeType=WebModule,J2EEApplication=none,J2EEServer=none,name=//" + getName()
+ "/" + contextRoot;
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java
index 1d2b6b2..709c6b7 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java
@@ -26,9 +26,12 @@ import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Set;
+import java.util.jar.Attributes;
+import java.util.jar.Manifest;
import org.rhq.core.domain.content.PackageDetails;
import org.rhq.core.domain.content.PackageDetailsKey;
@@ -77,10 +80,33 @@ public class FileContentDelegate {
* it is written, using the package name as the base directory; if <code>false</code> the
* content will be written to directly to a file using the package name as the file name
*/
- public void createContent(File contentFile, InputStream content, boolean unzip) {
+ public void createContent(File contentFile, InputStream content, boolean unzip, String sha) {
try {
if (unzip) {
ZipUtil.unzipFile(content, contentFile);
+
+ File manifestFile = new File(contentFile, "META-INF/MANIFEST.MF");
+ Manifest manifest;
+ if (manifestFile.exists()) {
+ FileInputStream inputStream = new FileInputStream(manifestFile);
+ try {
+ manifest = new Manifest(inputStream);
+ } finally {
+ inputStream.close();
+ }
+ } else {
+ manifest = new Manifest();
+ }
+
+ Attributes attribs = manifest.getMainAttributes();
+ attribs.putValue("RHQ-Sha256", sha);
+
+ FileOutputStream outputStream = new FileOutputStream(manifestFile);
+ try {
+ manifest.write(outputStream);
+ } finally {
+ outputStream.close();
+ }
} else {
FileUtil.writeFile(content, contentFile);
}
commit a49908fba6460d7d310268c5f187e94f7ce1614d
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Tue Dec 6 12:46:44 2011 -0600
[BZ 758753] If a package is successfully installed and the resource is a cotennt resource then update the installed package information in the database (delete old entry and add a new entry).
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
index 3a985b8..70f5c0c 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
@@ -93,6 +93,7 @@ import org.rhq.core.domain.criteria.PackageCriteria;
import org.rhq.core.domain.criteria.PackageVersionCriteria;
import org.rhq.core.domain.resource.Agent;
import org.rhq.core.domain.resource.Resource;
+import org.rhq.core.domain.resource.ResourceCreationDataType;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.util.MessageDigestGenerator;
@@ -545,6 +546,10 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
// We're closing out the package request for this package version, so remove it from the cache of entries
// that need to be closed
inProgressEntries.remove(packageVersion);
+
+ if (singleResponse.getResult() == ContentResponseResult.SUCCESS) {
+ updateInstalledPackages(resource, packageVersion);
+ }
}
// For any entries that were not closed, add closing entries
@@ -2073,4 +2078,36 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
}
}
+ /**
+ * Update the set of installed packages for a content type resource.
+ * Existing installed packages are purged and a new set of installed
+ * packages is created. Currently, a content type resource has only
+ * and only one installed package.
+ *
+ * @param resource resource
+ * @param packageVersion package version
+ */
+ @SuppressWarnings("unchecked")
+ private void updateInstalledPackages(Resource resource, PackageVersion packageVersion) {
+ if (resource.getResourceType().getCreationDataType() == ResourceCreationDataType.CONTENT) {
+ Query installedPackageQuery = entityManager.createNamedQuery(InstalledPackage.QUERY_FIND_BY_RESOURCE_ID);
+ installedPackageQuery.setParameter("resourceId", resource.getId());
+
+ List<InstalledPackage> installedPackages = installedPackageQuery.getResultList();
+ if ((installedPackages != null) && (installedPackages.size() > 0)) {
+ for (InstalledPackage installedPackage : installedPackages) {
+ entityManager.refresh(installedPackage);
+ entityManager.remove(installedPackage);
+ }
+ }
+
+ InstalledPackage installedPackage = new InstalledPackage();
+ installedPackage.setInstallationDate(System.currentTimeMillis());
+ installedPackage.setPackageVersion(packageVersion);
+ installedPackage.setResource(resource);
+ entityManager.persist(installedPackage);
+
+ entityManager.flush();
+ }
+ }
}
\ No newline at end of file
commit 0db85189e02048786d8cd6ad83d8c4ef04076846
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Mon Dec 5 09:32:43 2011 -0600
[BZ 758753] Use a single bean method for all deployment requests. A single point of entry simplifies design and allows adding post installation processing code in a single place.
diff --git a/modules/cli-tests/src/test/script/org/rhq/enterprise/remoting/cli/test_RepoManager.js b/modules/cli-tests/src/test/script/org/rhq/enterprise/remoting/cli/test_RepoManager.js
index 0ad272c..69cb01d 100644
--- a/modules/cli-tests/src/test/script/org/rhq/enterprise/remoting/cli/test_RepoManager.js
+++ b/modules/cli-tests/src/test/script/org/rhq/enterprise/remoting/cli/test_RepoManager.js
@@ -462,7 +462,7 @@ function testDeploy() {
Assert.assertNumberEqualsJS( pvsInRepo.get(0).getId(), pv.getId(), "unexpected pv returned" );
// do the update
- ContentManager.deployPackages( [war.getId()], [pv.getId()] );
+ ContentManager.deployPackages( [war.getId()], [pv.getId()], "Test Note" );
// Make sure things still look good
diff --git a/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java b/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java
index 928468b..25068bd 100644
--- a/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java
+++ b/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/ResourceClientProxy.java
@@ -545,7 +545,8 @@ public class ResourceClientProxy {
remoteClient.getContentManager().deployPackages(
remoteClient.getSubject(),
new int[] { resourceClientProxy.getId()},
- new int[] {pv.getId()});
+ new int[] {pv.getId()},
+ "CLI deployment request");
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/DeployPackagesUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/DeployPackagesUIBean.java
index f5d973f..2e7e95e 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/DeployPackagesUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/DeployPackagesUIBean.java
@@ -18,9 +18,6 @@
*/
package org.rhq.enterprise.gui.content;
-import java.util.HashSet;
-import java.util.Set;
-
import javax.faces.application.FacesMessage;
import javax.faces.component.UIData;
import javax.faces.model.DataModel;
@@ -34,7 +31,6 @@ import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.content.Package;
import org.rhq.core.domain.content.PackageVersion;
import org.rhq.core.domain.content.composite.PackageVersionComposite;
-import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
@@ -85,11 +81,10 @@ public class DeployPackagesUIBean extends PagedDataTableUIBean {
// Going forward, we'll need to create this earlier and store the user entered configuration in these
// objects. jdobies, Mar 3, 2008
ContentUIManagerLocal contentUIManager = LookupUtil.getContentUIManager();
- Set<ResourcePackageDetails> packagesToDeploy = new HashSet<ResourcePackageDetails>(packageIds.length);
- for (int pkgId : packageIds) {
- PackageVersion packageVersion = contentUIManager.getPackageVersion(pkgId);
- ResourcePackageDetails pkgDetails = ContentUtils.toResourcePackageDetails(packageVersion);
- packagesToDeploy.add(pkgDetails);
+ int[] packagesVersionsIdsToDeploy = new int[packageIds.length];
+ for (int iterator = 0; iterator < packageIds.length; iterator++) {
+ PackageVersion packageVersion = contentUIManager.getPackageVersion(packageIds[iterator]);
+ packagesVersionsIdsToDeploy[iterator] = packageVersion.getId();
}
Subject subject = EnterpriseFacesContextUtility.getSubject();
@@ -97,7 +92,7 @@ public class DeployPackagesUIBean extends PagedDataTableUIBean {
try {
ContentManagerLocal contentManager = LookupUtil.getContentManager();
- contentManager.deployPackages(subject, resource.getId(), packagesToDeploy, notes);
+ contentManager.deployPackages(subject, new int[] { resource.getId() }, new int[] {}, notes);
} catch (Exception e) {
FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, "Could not send deploy request to agent", e);
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/RepoPackageVersionsUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/RepoPackageVersionsUIBean.java
index f00118b..c6eb4c7 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/RepoPackageVersionsUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/RepoPackageVersionsUIBean.java
@@ -68,7 +68,7 @@ public class RepoPackageVersionsUIBean extends PagedDataTableUIBean {
resourceIds[i] = resources.get(i).getId();
}
- contentManager.deployPackages(subject, resourceIds, packageIds);
+ contentManager.deployPackages(subject, resourceIds, packageIds, "Repository package install");
} catch (Exception e) {
FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, "Failed to deploy packages: " + packageIds
+ " to Resources subscribed to repository: " + repoId + " Error: " + e.getMessage());
diff --git a/modules/enterprise/remoting/webservices/src/test/java/org/rhq/enterprise/server/ws/WsRepoManagerTest.java b/modules/enterprise/remoting/webservices/src/test/java/org/rhq/enterprise/server/ws/WsRepoManagerTest.java
index 2267411..b94e422 100644
--- a/modules/enterprise/remoting/webservices/src/test/java/org/rhq/enterprise/server/ws/WsRepoManagerTest.java
+++ b/modules/enterprise/remoting/webservices/src/test/java/org/rhq/enterprise/server/ws/WsRepoManagerTest.java
@@ -512,7 +512,7 @@ public class WsRepoManagerTest extends AssertJUnit implements TestPropertiesInte
// ContentManager.deployPackages( [war.getId()], [pv.getId()] );
List<Integer> warBag = new ArrayList<Integer>();
warBag.add(war.getId());
- WEBSERVICE_REMOTE.deployPackages(subject, warBag, pvBag);
+ WEBSERVICE_REMOTE.deployPackages(subject, warBag, pvBag, "Test Notes");
// Make sure things still look good
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
index 121ea7e..3a985b8 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
@@ -345,7 +345,7 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
+ (System.currentTimeMillis() - start) + "ms");
}
- public void deployPackages(Subject user, int[] resourceIds, int[] packageVersionIds) {
+ public void deployPackages(Subject user, int[] resourceIds, int[] packageVersionIds, String requestNotes) {
for (int resourceId : resourceIds) {
Set<ResourcePackageDetails> packages = new HashSet<ResourcePackageDetails>();
for (int packageVersionId : packageVersionIds) {
@@ -359,7 +359,7 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
packages.add(details);
}
- deployPackages(user, resourceId, packages, null);
+ deployPackages(user, resourceId, packages, requestNotes);
}
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
index 4295e3a..1957091 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
@@ -64,18 +64,18 @@ public interface ContentManagerLocal {
* upon persist.
*/
public static final String UPLOAD_FILE_SIZE = "fileSize";
-
+
public static final String UPLOAD_FILE_INSTALL_DATE = "fileInstallDate";
-
+
/**
* This doesn't seem to serve any purpose.
*/
public static final String UPLOAD_OWNER = "owner";
-
+
public static final String UPLOAD_FILE_NAME = "fileName";
-
+
public static final String UPLOAD_MD5 = "md5";
-
+
/**
* This is currently ignored as the SHA is computed upon
* persist.
@@ -338,7 +338,6 @@ public interface ContentManagerLocal {
*/
PackageType getResourceCreationPackageType(int resourceTypeId);
-
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
// The following are shared with the Remote Interface
@@ -362,9 +361,9 @@ public interface ContentManagerLocal {
public void deletePackageVersion(Subject subject, int packageVersionId);
/**
- * @see {@link ContentManagerRemote#deployPackages(Subject, int[], int[])}
+ * @see {@link ContentManagerRemote#deployPackages(Subject, int[], int[], String)}
*/
- void deployPackages(Subject subject, int[] resourceIds, int[] packageVersionIds);
+ void deployPackages(Subject subject, int[] resourceIds, int[] packageVersionIds, String requestNotes);
/**
* @see {@link ContentManagerRemote#findArchitectures(Subject)}
@@ -381,12 +380,12 @@ public interface ContentManagerLocal {
* @see {@link ContentManagerRemote#findPackageType(Subject, Integer, String)}
*/
PackageType findPackageType(Subject subject, Integer resourceTypeId, String packageTypeName);
-
+
/**
* @see {@link ContentManagerRemote#findPackageTypeWithVersionFormat(Subject, Integer, String)}
*/
PackageTypeAndVersionFormatComposite findPackageTypeWithVersionFormat(Subject subject, Integer resourceTypeId, String packageTypeName);
-
+
/**
* @see {@link ContentManagerRemote#findInstalledPackagesByCriteria(Subject, InstalledPackageCriteria)}
*/
@@ -430,7 +429,7 @@ public interface ContentManagerLocal {
* @throws IllegalArgumentException if the supplied package type has non-null resource type
*/
PackageType persistServersidePackageType(PackageType packageType);
-
+
void writeBlobOutToStream(OutputStream stream, PackageBits bits, boolean closeStreams);
void updateBlobStream(InputStream stream, PackageBits bits, Map<String, String> contentDetails);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java
index edeb2b2..0038824 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerRemote.java
@@ -109,10 +109,11 @@ public interface ContentManagerRemote {
* @param packageVersionIds packageVersions we want to install
*/
@WebMethod
- void deployPackages( //
+ void deployPackages(
@WebParam(name = "subject") Subject subject, //
@WebParam(name = "resourceIds") int[] resourceIds, //
- @WebParam(name = "packageVersionIds") int[] packageVersionIds);
+ @WebParam(name = "packageVersionIds") int[] packageVersionIds,
+ @WebParam(name = "requestNotes") String requestNotes);
/**
* Returns all architectures known to the system.
@@ -157,7 +158,7 @@ public interface ContentManagerRemote {
@WebParam(name = "resourceTypeId") Integer resourceTypeId,
@WebParam(name = "packageTypeName") String packageTypeName
);
-
+
/**
* Similar to {@link #findPackageType(Subject, Integer, String)} but
* returns the package type along with the version format specification.
@@ -172,6 +173,7 @@ public interface ContentManagerRemote {
@WebParam(name = "subject") Subject subject,
@WebParam(name ="resourceTypeId") Integer resourceTypeId,
@WebParam(name = "packageTypeName") String packageTypeName);
+
/**
* @param subject
* @param criteria {@link InstalledPackageCriteria}
@@ -210,7 +212,7 @@ public interface ContentManagerRemote {
PageList<Package> findPackagesByCriteria(
@WebParam(name = "subject") Subject subject,
@WebParam(name = "criteria") PackageCriteria criteria);
-
+
/**
* Akin to {@link #findPackagesByCriteria(Subject, PackageCriteria)} but also
* determines the latest version of the returned packages.
@@ -222,11 +224,11 @@ public interface ContentManagerRemote {
* @return
* @throws IllegalArgumentException if the criteria doesn't define a repo filter
*/
- @WebMethod
+ @WebMethod
PageList<PackageAndLatestVersionComposite> findPackagesWithLatestVersion(
@WebParam(name = "subject") Subject subject,
@WebParam(name = "criteria") PackageCriteria criteria);
-
+
/**
* For a resource that is content-backed (aka package-backed), this call will return InstalledPackage information
* for the backing content (package).
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
index 1cb14b2..54725a6 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
@@ -520,8 +520,8 @@ public class WebservicesManagerBean implements WebservicesRemote {
contentManager.deletePackageVersion(subject, packageVersionId);
}
- public void deployPackages(Subject subject, int[] resourceIds, int[] packageVersionIds) {
- contentManager.deployPackages(subject, resourceIds, packageVersionIds);
+ public void deployPackages(Subject subject, int[] resourceIds, int[] packageVersionIds, String requestNotes) {
+ contentManager.deployPackages(subject, resourceIds, packageVersionIds, requestNotes);
}
public List<Architecture> findArchitectures(Subject subject) {
@@ -1202,7 +1202,7 @@ public class WebservicesManagerBean implements WebservicesRemote {
public void setSystemSettings(Subject subject, SystemSettings settings) throws Exception {
systemManager.setSystemSettings(subject, settings);
}
-
+
//SYSTEMMANAGER: END ------------------------------------
//SYNCHRONIZATIONMANANGER: BEGIN -------------------------
12 years, 4 months
[rhq] Branch 'stefan/backingcontent' - modules/plugins
by snegrea
modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/script/ScriptComponent.java | 6
modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/ScriptComponentTest.java | 110 ++++++++++
2 files changed, 115 insertions(+), 1 deletion(-)
New commits:
commit b4d61faa0938ac6a812f2244796564e26a2f9672
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Tue Feb 7 10:31:56 2012 -0600
[BZ 727959] The script path was not using the bin subdirectory of the server home directory. Updated the code to point to the correct file before attempting to compute the SHA256.
Also, added unit tests to verify the new behavior.
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/script/ScriptComponent.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/script/ScriptComponent.java
index 36682c4..2b1f1c1 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/script/ScriptComponent.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/script/ScriptComponent.java
@@ -213,7 +213,11 @@ public class ScriptComponent implements ResourceComponent<ApplicationServerCompo
public Set<ResourcePackageDetails> discoverDeployedPackages(PackageType type) {
Set<ResourcePackageDetails> results = new HashSet<ResourcePackageDetails>();
if (PACKAGE_TYPE.equals(type.getName())) {
- File scriptFile = new File(resourceContext.getResourceKey());
+ String jbossHomeDir = resourceContext.getParentResourceComponent().getResourceContext()
+ .getPluginConfiguration().getSimpleValue(ApplicationServerPluginConfigurationProperties.HOME_DIR, null);
+ File binDirectory = new File(jbossHomeDir, "bin");
+
+ File scriptFile = new File(binDirectory, resourceContext.getResourceKey());
PackageDetailsKey key = new PackageDetailsKey(scriptFile.getName(), PACKAGE_VERSION, PACKAGE_TYPE,
PACKAGE_ARCHITECTURE);
diff --git a/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/ScriptComponentTest.java b/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/ScriptComponentTest.java
new file mode 100644
index 0000000..86b4b4e
--- /dev/null
+++ b/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/ScriptComponentTest.java
@@ -0,0 +1,110 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.plugins.jbossas5.test;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Matchers.isNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+import java.util.Set;
+
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.testng.PowerMockObjectFactory;
+import org.testng.Assert;
+import org.testng.IObjectFactory;
+import org.testng.annotations.ObjectFactory;
+import org.testng.annotations.Test;
+
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.content.PackageType;
+import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
+import org.rhq.core.pluginapi.inventory.ResourceContext;
+import org.rhq.core.util.MessageDigestGenerator;
+import org.rhq.plugins.jbossas5.ApplicationServerComponent;
+import org.rhq.plugins.jbossas5.script.ScriptComponent;
+
+@PrepareForTest({ ScriptComponent.class })
+public class ScriptComponentTest {
+
+ @ObjectFactory
+ public IObjectFactory getObjectFactory() {
+ return new PowerMockObjectFactory();
+ }
+
+ @Test
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ public void testDiscoverDeployedPackages() throws Exception {
+ //tell the method story as it happens: mock or create dependencies and configure
+ //those dependencies to get the method under test to completion.
+ ResourceContext<ApplicationServerComponent<?>> mockResourceContext = mock(ResourceContext.class);
+
+ ApplicationServerComponent mockApplicationServerComponent = mock(ApplicationServerComponent.class);
+ when(mockResourceContext.getParentResourceComponent()).thenReturn(mockApplicationServerComponent);
+ when(mockApplicationServerComponent.getResourceContext()).thenReturn(mockResourceContext);
+ Configuration mockConfiguration = mock(Configuration.class);
+ when(mockResourceContext.getPluginConfiguration()).thenReturn(mockConfiguration);
+ when(mockConfiguration.getSimpleValue(eq("homeDir"), isNull(String.class))).thenReturn("testHomeDir");
+
+ File mockDirectory = mock(File.class);
+ PowerMockito.whenNew(File.class).withParameterTypes(String.class, String.class)
+ .withArguments(eq("testHomeDir"), eq("bin"))
+ .thenReturn(mockDirectory);
+
+ when(mockResourceContext.getResourceKey()).thenReturn("testResource");
+
+ File mockFile = mock(File.class);
+ PowerMockito.whenNew(File.class).withParameterTypes(File.class, String.class)
+ .withArguments(eq(mockDirectory), eq("testResource")).thenReturn(mockFile);
+
+ when(mockFile.getName()).thenReturn("testResource");
+
+ MessageDigestGenerator mockMessageDigestGenerator = mock(MessageDigestGenerator.class);
+ PowerMockito.whenNew(MessageDigestGenerator.class).withParameterTypes(String.class).withArguments(anyString())
+ .thenReturn(mockMessageDigestGenerator);
+ when(mockMessageDigestGenerator.calcDigestString(any(File.class))).thenReturn("abcd1234");
+
+ PackageType mockPackageType = mock(PackageType.class);
+ when(mockPackageType.getName()).thenReturn("script");
+
+ //create object to test and inject required dependencies
+ ScriptComponent objectUnderTest = new ScriptComponent();
+ objectUnderTest.start(mockResourceContext);
+
+ //run code under test
+ Set<ResourcePackageDetails> result = objectUnderTest.discoverDeployedPackages(mockPackageType);
+
+ //verify the results (Assert and mock verification)
+ Assert.assertEquals(result.size(), 1);
+
+ ResourcePackageDetails resultPackageDetails = (ResourcePackageDetails) result.toArray()[0];
+
+ Assert.assertEquals(resultPackageDetails.getSHA256(), "abcd1234");
+
+ PowerMockito.verifyNew(File.class).withArguments(eq("testHomeDir"), eq("bin"));
+ PowerMockito.verifyNew(File.class).withArguments(eq(mockDirectory), eq("testResource"));
+ verify(mockMessageDigestGenerator).calcDigestString(any(File.class));
+ verify(mockResourceContext).getParentResourceComponent();
+ }
+}
\ No newline at end of file
12 years, 4 months
[rhq] Branch 'rc/jon3.0.1.GA' - 21 commits - modules/common modules/core modules/enterprise modules/integration-tests modules/plugins
by Simeon Pinder
modules/common/ant-bundle/src/test/java/org/rhq/bundle/ant/AntLauncherTest.java | 25
modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftClient.java | 3
modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftDetector.java | 151 +-
modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftFilesSender.java | 119 +-
modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftManager.java | 82 -
modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java | 287 ++---
modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ResourceContainer.java | 4
modules/core/plugin-container/src/main/java/org/rhq/core/pc/upgrade/ResourceUpgradeDelegate.java | 2
modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java | 123 +-
modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftManagerTest.java | 53
modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTest.java | 10
modules/core/util/src/main/java/org/rhq/core/util/file/FileUtil.java | 72 +
modules/core/util/src/main/java/org/rhq/core/util/updater/Deployer.java | 135 ++
modules/core/util/src/test/java/org/rhq/core/util/file/FileUtilTest.java | 98 +
modules/core/util/src/test/java/org/rhq/core/util/updater/DeployerTest.java | 49
modules/core/util/src/test/java/org/rhq/core/util/updater/SimpleDeployerTest.java | 77 +
modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java | 119 +-
modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/i18n/AgentI18NResourceKeys.java | 9
modules/enterprise/binding/pom.xml | 2
modules/enterprise/binding/src/main/java/org/rhq/bindings/SandboxedScriptEngine.java | 3
modules/enterprise/binding/src/main/java/org/rhq/bindings/ScriptEngineFactory.java | 60 +
modules/enterprise/binding/src/main/java/org/rhq/bindings/StandardScriptPermissions.java | 6
modules/enterprise/binding/src/test/java/org/rhq/bindings/ScriptEngineTest.java | 9
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftCarouselView.java | 17
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/ha/ViewAgentUIBean.java | 8
modules/enterprise/remoting/cli/pom.xml | 5
modules/enterprise/server/client-api/pom.xml | 67 -
modules/enterprise/server/client-api/src/main/java/org/rhq/enterprise/client/LocalClientProxy.java | 20
modules/enterprise/server/container-lib/pom.xml | 6
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/AccessCheckingInitialContextFactoryBuilder.java | 252 ++++
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/AllowRhqServerInternalsAccessPermission.java | 36
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/DecoratingInitialContextFactory.java | 110 ++
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingContextDecorator.java | 264 ++++
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingContextDecoratorSetContext.java | 75 +
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingDirContextDecorator.java | 187 +++
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingEventContextDecorator.java | 69 +
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingEventDirContextDecorator.java | 96 +
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingLdapContextDecorator.java | 85 +
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/ContextDecorator.java | 33
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecorator.java | 222 ++++
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecoratorHelper.java | 76 +
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecoratorSetContext.java | 71 +
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringDirContextDecorator.java | 185 +++
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringEventContextDecorator.java | 81 +
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringEventDirContextDecorator.java | 104 +
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringLdapContextDecorator.java | 94 +
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/mbean/AccessCheckingInitialContextFactoryBuilderInstaller.java | 45
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/mbean/AccessCheckingInitialContextFactoryBuilderInstallerMBean.java | 32
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratingInvocationHandler.java | 55 +
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratorPicker.java | 195 +++
modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratorSetContext.java | 59 +
modules/enterprise/server/container-lib/src/test/java/org/rhq/jndi/context/DecoratingInvocationHandlerTest.java | 145 ++
modules/enterprise/server/container-lib/src/test/java/org/rhq/jndi/context/DecoratorPickerTest.java | 180 +++
modules/enterprise/server/container/src/main/resources/jbossas/server/default/conf/jboss-service.xml | 7
modules/enterprise/server/itests/pom.xml | 50
modules/enterprise/server/itests/src/test/java/org/rhq/enterprise/client/security/test/JndiAccessTest.java | 196 +++
modules/enterprise/server/itests/src/test/java/org/rhq/enterprise/server/drift/DriftServerTest.java | 19
modules/enterprise/server/itests/src/test/resources/embedded-jboss-beans.xml | 10
modules/enterprise/server/itests/src/test/resources/security.policy | 10
modules/enterprise/server/jar/pom.xml | 7
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java | 36
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java | 80 +
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftTemplateManagerBean.java | 40
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/bundle/BundleManagerBeanTest.java | 30
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/cloud/FailoverListManagerBeanTest.java | 14
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java | 58 -
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentManagerBeanTest.java | 19
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java | 538 ++++++++++
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java | 22
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/drift/DriftManagerBeanTest.java | 11
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java | 128 +-
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncContentProviderTest.java | 112 +-
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncRepoTest.java | 107 +
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/group/test/LdapGroupManagerBeanTest.java | 28
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/ContentMetadataManagerBeanTest.java | 137 --
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/EventMetadataManagerBeanTest.java | 75 -
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataBeanTest.java | 35
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdatePluginMetadataTestBase.java | 37
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceFactoryManagerBeanTest.java | 22
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/scheduler/jobs/DataPurgeJobTest.java | 35
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SynchronizationManagerBeanTest.java | 214 +--
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/system/SystemManagerBeanTest.java | 55 -
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java | 53
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/LargeGroupTestBase.java | 12
modules/enterprise/server/jar/src/test/resources/embedded-jboss-beans.xml | 10
modules/enterprise/server/plugins/alert-cli/src/main/java/org/rhq/enterprise/server/plugins/alertCli/CliSender.java | 9
modules/enterprise/server/pom.xml | 2
modules/integration-tests/jndi-access/jndi-access-test/pom.xml | 315 +++++
modules/integration-tests/jndi-access/jndi-access-test/src/test/java/org/rhq/jndi/test/JndiAccessTest.java | 190 +++
modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/hibernate.properties | 26
modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/log4j.xml | 78 +
modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/security.policy | 10
modules/integration-tests/jndi-access/pom.xml | 21
modules/integration-tests/jndi-access/remote-server/pom.xml | 72 +
modules/integration-tests/jndi-access/remote-server/src/main/java/org/rhq/jndi/test/Server.java | 79 +
modules/integration-tests/jndi-access/remote-server/src/main/resources/jndi.properties | 2
modules/integration-tests/jndi-access/remote-server/src/main/resources/log4j.properties | 5
modules/integration-tests/pom.xml | 4
modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java | 152 ++
modules/plugins/ant-bundle/src/test/resources/test-bundle-manage-root-dir.xml | 16
modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerComponent.java | 1
101 files changed, 6356 insertions(+), 1205 deletions(-)
New commits:
commit 3ec3b0ea25fef3942d26ca83182c855947a956c6
Merge: 9c40d8d 6f5ed95
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Tue Feb 7 10:56:02 2012 -0500
Merge branch 'release/jon3.0.x' into rc/jon3.0.1.GA
commit 6f5ed9501dd2661c32466c344f3d37d7ad33ad7f
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Tue Feb 7 10:00:22 2012 -0500
[BZ 772095] fixing permissions for extracted CLI directory.
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index 8ed89b5..c8221a5 100644
--- a/modules/enterprise/remoting/cli/pom.xml
+++ b/modules/enterprise/remoting/cli/pom.xml
@@ -185,6 +185,11 @@
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
+ <archiverConfig>
+ <!-- permissions for archiver configuration are in decimal (not octal) -->
+ <!-- 493 (decimal) = 755 (octal)-->
+ <defaultDirectoryMode>493</defaultDirectoryMode>
+ </archiverConfig>
<descriptors>
<descriptor>src/main/scripts/rhq-client.assembly.xml</descriptor>
</descriptors>
commit 1c7b0aefd0060c2daf15cb95512704934c7ee1af
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Mon Feb 6 22:58:54 2012 +0100
Merging the secured JNDI access from master to release/jon3.0.x.
This is a cherry-pick of commits:
3bf2fbfd118d30e2c0c9b616ff12ba7bc9e9492c
94b7a562f4efb9e4d9922e090ceca49deef5c1fd
cb78bd893aa614d0fcc5760f2a25a73175fe6c2e
from master into release/jon3.0.x
diff --git a/modules/enterprise/binding/pom.xml b/modules/enterprise/binding/pom.xml
index 59cb2f0..cc1544f 100644
--- a/modules/enterprise/binding/pom.xml
+++ b/modules/enterprise/binding/pom.xml
@@ -208,6 +208,8 @@
<!-- <argLine>-Xdebug -Xnoagent -Djava.compiler=NONE
-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y</argLine> -->
<argLine>-Djava.security.manager -Djava.security.policy==${project.build.testOutputDirectory}/allow-all.policy</argLine>
+ <!-- This is important, because some of the tests try to exit the JVM. -->
+ <failIfNoTests>true</failIfNoTests>
</configuration>
</plugin>
diff --git a/modules/enterprise/binding/src/main/java/org/rhq/bindings/SandboxedScriptEngine.java b/modules/enterprise/binding/src/main/java/org/rhq/bindings/SandboxedScriptEngine.java
index 7b34c6d..f994f09 100644
--- a/modules/enterprise/binding/src/main/java/org/rhq/bindings/SandboxedScriptEngine.java
+++ b/modules/enterprise/binding/src/main/java/org/rhq/bindings/SandboxedScriptEngine.java
@@ -40,6 +40,9 @@ import javax.script.ScriptEngineFactory;
import javax.script.ScriptException;
/**
+ * <b>DO NOT USE THIS CLASS DIRECTLY!!!!</b> Use {@link org.rhq.bindings.ScriptEngineFactory#getSecuredScriptEngine(String, org.rhq.bindings.util.PackageFinder, StandardBindings, PermissionCollection)}
+ * method instead for a reliably secured script engine.
+ * <p>
* This is a decorator class for any other {@link ScriptEngine} implementation
* that runs any of the eval methods with the defined set of {@link Permission}s.
* <p>
diff --git a/modules/enterprise/binding/src/main/java/org/rhq/bindings/ScriptEngineFactory.java b/modules/enterprise/binding/src/main/java/org/rhq/bindings/ScriptEngineFactory.java
index 168d2fb..5834922 100644
--- a/modules/enterprise/binding/src/main/java/org/rhq/bindings/ScriptEngineFactory.java
+++ b/modules/enterprise/binding/src/main/java/org/rhq/bindings/ScriptEngineFactory.java
@@ -25,6 +25,15 @@ import java.beans.Introspector;
import java.beans.MethodDescriptor;
import java.io.IOException;
import java.lang.reflect.Method;
+import java.net.URL;
+import java.security.AccessControlContext;
+import java.security.AccessController;
+import java.security.CodeSource;
+import java.security.PermissionCollection;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
+import java.security.ProtectionDomain;
+import java.security.cert.Certificate;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
@@ -79,7 +88,7 @@ public class ScriptEngineFactory {
public static ScriptEngine getScriptEngine(String language, PackageFinder packageFinder, StandardBindings bindings)
throws ScriptException, IOException {
ScriptEngineInitializer initializer = getInitializer(language);
-
+
if (initializer == null) {
return null;
}
@@ -92,6 +101,55 @@ public class ScriptEngineFactory {
return engine;
}
+
+ /**
+ * This method is similar to the {@link #getScriptEngine(String, PackageFinder, StandardBindings)} method
+ * but additionally applies a security wrapper on the returned script engine so that the scripts execute
+ * with the provided java permissions.
+ *
+ * @see #getScriptEngine(String, PackageFinder, StandardBindings)
+ */
+ public static ScriptEngine getSecuredScriptEngine(final String language, final PackageFinder packageFinder, final StandardBindings bindings, final PermissionCollection permissions) throws ScriptException, IOException {
+ CodeSource src = new CodeSource(new URL("http://rhq-project.org/scripting"), (Certificate[]) null);
+ ProtectionDomain scriptDomain = new ProtectionDomain(src, permissions);
+ AccessControlContext ctx = new AccessControlContext(new ProtectionDomain[] { scriptDomain });
+ try {
+ return AccessController.doPrivileged(new PrivilegedExceptionAction<ScriptEngine>() {
+ @Override
+ public ScriptEngine run() throws Exception {
+ //This might seem a bit excessive but is necessary due to the
+ //change in security handling in the rhino script engine
+ //that occured in Java6u27 (due to a CVE desribed here:
+ //https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2011-3544)
+
+ //In Java 6u26 and earlier, it was enough to wrap a script engine
+ //in the sandbox and everything would work.
+
+ //Java 6u27 introduced new behavior where the rhino script engine
+ //remembers the access control context with which it has been
+ //constructed and combines that with the callers protection domain
+ //when a script is executed. Because this class has all perms and
+ //all the code in RHQ that called ScriptEngine.eval* also
+ //had all perms, the scripts would never be sandboxed even if the call
+ //was pushed through the SandboxedScriptEngine.
+
+ //This means that the below wrapping is necessary for the security
+ //to work in java6 pre u27 while the surrounding privileged block
+ //is necessary for the security to be applied in java6 u27 and later.
+ return new SandboxedScriptEngine(getScriptEngine(language, packageFinder, bindings), permissions);
+ }
+ }, ctx);
+ } catch (PrivilegedActionException e) {
+ Throwable cause = e.getCause();
+ if (cause instanceof IOException) {
+ throw (IOException) cause;
+ } else if (cause instanceof ScriptException) {
+ throw (ScriptException) cause;
+ } else {
+ throw new ScriptException(e);
+ }
+ }
+ }
/**
* Injects the values provided in the bindings into the {@link ScriptContext#ENGINE_SCOPE engine scope}
diff --git a/modules/enterprise/binding/src/main/java/org/rhq/bindings/StandardScriptPermissions.java b/modules/enterprise/binding/src/main/java/org/rhq/bindings/StandardScriptPermissions.java
index 894c953..5822d44 100644
--- a/modules/enterprise/binding/src/main/java/org/rhq/bindings/StandardScriptPermissions.java
+++ b/modules/enterprise/binding/src/main/java/org/rhq/bindings/StandardScriptPermissions.java
@@ -20,6 +20,7 @@
package org.rhq.bindings;
import java.io.FilePermission;
+import java.io.SerializablePermission;
import java.lang.reflect.ReflectPermission;
import java.net.SocketPermission;
import java.security.Permission;
@@ -83,6 +84,11 @@ public class StandardScriptPermissions extends PermissionCollection {
add(new PropertyPermission("*", "read"));
add(new ReflectPermission("suppressAccessChecks"));
+
+ //these 2 are required for server-side scripts to be able to
+ //invoke remote EJBs.
+ add(new SerializablePermission("enableSubclassImplementation"));
+ add(new RuntimePermission("reflectionFactoryAccess"));
}
public void add(Permission permission) {
diff --git a/modules/enterprise/binding/src/test/java/org/rhq/bindings/ScriptEngineTest.java b/modules/enterprise/binding/src/test/java/org/rhq/bindings/ScriptEngineTest.java
index 69874e4..15184c1 100644
--- a/modules/enterprise/binding/src/test/java/org/rhq/bindings/ScriptEngineTest.java
+++ b/modules/enterprise/binding/src/test/java/org/rhq/bindings/ScriptEngineTest.java
@@ -40,6 +40,7 @@ import org.rhq.bindings.util.PackageFinder;
*
* @author Lukas Krejci
*/
+@Test
public class ScriptEngineTest {
private static StandardBindings EMPTY_BINDINGS = new StandardBindings(new PrintWriter(System.out), new FakeRhqFacade());
@@ -52,9 +53,7 @@ public class ScriptEngineTest {
@Test
public void testSandbox() throws ScriptException, IOException {
- ScriptEngine engine = getScriptEngine();
-
- SandboxedScriptEngine sandbox = new SandboxedScriptEngine(engine, new StandardScriptPermissions());
+ ScriptEngine sandbox = getSecuredScriptEngine();
try {
sandbox.eval("java.lang.System.exit(1);");
@@ -90,6 +89,10 @@ public class ScriptEngineTest {
return ScriptEngineFactory.getScriptEngine("JavaScript", new PackageFinder(Collections.<File>emptyList()), EMPTY_BINDINGS);
}
+ private ScriptEngine getSecuredScriptEngine() throws ScriptException, IOException {
+ return ScriptEngineFactory.getSecuredScriptEngine("JavaScript", new PackageFinder(Collections.<File>emptyList()), EMPTY_BINDINGS, new StandardScriptPermissions());
+ }
+
private void assertSecurityExceptionPresent(Throwable t) {
boolean ok = false;
while (t != null) {
diff --git a/modules/enterprise/server/client-api/pom.xml b/modules/enterprise/server/client-api/pom.xml
index 0ec74f9..370eee5 100644
--- a/modules/enterprise/server/client-api/pom.xml
+++ b/modules/enterprise/server/client-api/pom.xml
@@ -15,47 +15,32 @@
<name>RHQ Enterprise Server Client API</name>
<description>The implementation of the client API when accessing the server locally</description>
- <properties>
- <persistence-api.version>1.0</persistence-api.version>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.rhq</groupId>
- <artifactId>rhq-script-bindings</artifactId>
- <version>${project.version}</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>javax.persistence</groupId>
- <artifactId>persistence-api</artifactId>
- <version>${persistence-api.version}</version>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>hibernate-annotations</groupId>
- <artifactId>hibernate-annotations</artifactId>
- <!-- NOTE: The version is defined in the root POM's dependencyManagement
- section. -->
- <scope>provided</scope>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
-
- <plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <excludedGroups>${rhq.testng.excludedGroups}</excludedGroups>
- <!-- <argLine>-Xdebug -Xnoagent -Djava.compiler=NONE
- -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y</argLine> -->
- </configuration>
- </plugin>
-
- </plugins>
- </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-container-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-enterprise-server</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-script-bindings</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.persistence</groupId>
+ <artifactId>persistence-api</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
<profiles>
diff --git a/modules/enterprise/server/client-api/src/main/java/org/rhq/enterprise/client/LocalClientProxy.java b/modules/enterprise/server/client-api/src/main/java/org/rhq/enterprise/client/LocalClientProxy.java
index 5f3ff90..e9f1e4d 100644
--- a/modules/enterprise/server/client-api/src/main/java/org/rhq/enterprise/client/LocalClientProxy.java
+++ b/modules/enterprise/server/client-api/src/main/java/org/rhq/enterprise/client/LocalClientProxy.java
@@ -20,6 +20,8 @@
package org.rhq.enterprise.client;
import java.lang.reflect.Method;
+import java.security.AccessController;
+import java.security.PrivilegedExceptionAction;
import java.util.Arrays;
import org.apache.commons.logging.Log;
@@ -54,11 +56,21 @@ public class LocalClientProxy extends AbstractRhqFacadeProxy<LocalClient> {
}
}
- protected Object doInvoke(Object proxy, Method originalMethod, java.lang.Class<?>[] argTypes, Object[] args) throws Throwable {
+ protected Object doInvoke(Object proxy, Method originalMethod, java.lang.Class<?>[] argTypes, final Object[] args) throws Throwable {
try {
- Method realMethod = localSLSB.getClass().getMethod(originalMethod.getName(), argTypes);
-
- return realMethod.invoke(localSLSB, args);
+ final Method realMethod = localSLSB.getClass().getMethod(originalMethod.getName(), argTypes);
+
+ //run this through the privileged block to elevate the privs of the script
+ //the scripts don't have the AllowEjbAccessPermission but this code has
+ //all perms (or at least all perms assigned to it by the current context,
+ //which at the time of writing is defined by the rhq-server.policy file
+ //which gives all code all permissions).
+ return AccessController.doPrivileged(new PrivilegedExceptionAction<Object>() {
+ @Override
+ public Object run() throws Exception {
+ return realMethod.invoke(localSLSB, args);
+ }
+ });
} catch (NoSuchMethodException e) {
throw new IllegalArgumentException("Method [" + originalMethod + "] does not have a desimplified counterpart with arguments " + Arrays.asList(argTypes) + ".", e);
}
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index 07a7d9b..391aef4 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -48,6 +48,12 @@
<scope>provided</scope> <!-- by JBossAS -->
</dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jnpserver</artifactId>
+ <version>4.2.2.GA</version>
+ <scope>provided</scope>
+ </dependency>
</dependencies>
<profiles>
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/AccessCheckingInitialContextFactoryBuilder.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/AccessCheckingInitialContextFactoryBuilder.java
new file mode 100644
index 0000000..9abe13c
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/AccessCheckingInitialContextFactoryBuilder.java
@@ -0,0 +1,252 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2011 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi;
+
+import java.net.InetAddress;
+import java.net.NetworkInterface;
+import java.net.SocketException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.UnknownHostException;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.Set;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.naming.directory.DirContext;
+import javax.naming.event.EventContext;
+import javax.naming.event.EventDirContext;
+import javax.naming.ldap.LdapContext;
+import javax.naming.spi.InitialContextFactory;
+import javax.naming.spi.InitialContextFactoryBuilder;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jnp.interfaces.NamingContextFactory;
+
+import org.rhq.jndi.context.AccessCheckingContextDecorator;
+import org.rhq.jndi.context.AccessCheckingContextDecoratorSetContext;
+import org.rhq.jndi.context.ContextDecorator;
+import org.rhq.jndi.context.URLPreferringContextDecoratorSetContext;
+import org.rhq.jndi.util.DecoratorPicker;
+
+/**
+ * This initial context factory builder is installed early on during the RHQ server startup
+ * and is later on used for obtaining the {@link Context}s for all JNDI lookups in the
+ * RHQ server.
+ * <p>
+ * We use a custom initial context factory builder to prevent the potential malicious 3rd party
+ * code (like CLI alert scripts) from supplying custom environment variables to {@link InitialContext}
+ * that would modify the JNDI lookup to skip our security access checks.
+ * <p>
+ * By using a builder we effectively take control of the initial context creation process
+ * and are free to ignore whatever the script is trying to supply.
+ * <p>
+ * This builder makes sure to install the RHQ server's security access checks to whatever
+ * initial context that is configured by the standard environment variables
+ * ({@link Context#INITIAL_CONTEXT_FACTORY}, etc.)
+ * <p>
+ * This class is heavily inspired by the implementation of a similar builder in JBoss AS 7.
+ *
+ * @see AllowRhqServerInternalsAccessPermission
+ *
+ * @author Lukas Krejci
+ */
+public class AccessCheckingInitialContextFactoryBuilder implements InitialContextFactoryBuilder {
+ private static final Log LOG = LogFactory.getLog(AccessCheckingInitialContextFactoryBuilder.class);
+
+ /**
+ * The list of JNDI name schemes that should be checked for security permissions
+ * (in addition to the names with no scheme).
+ *
+ * @see AccessCheckingContextDecorator
+ */
+ private static final String[] CHECKED_SCHEMES = { "java" };
+
+ private static final Set<Class<? extends Context>> SUPPORTED_CONTEXT_INTERFACES;
+
+ static {
+ SUPPORTED_CONTEXT_INTERFACES = new HashSet<Class<? extends Context>>();
+ SUPPORTED_CONTEXT_INTERFACES.add(Context.class);
+ SUPPORTED_CONTEXT_INTERFACES.add(DirContext.class);
+ SUPPORTED_CONTEXT_INTERFACES.add(EventContext.class);
+ SUPPORTED_CONTEXT_INTERFACES.add(EventDirContext.class);
+ SUPPORTED_CONTEXT_INTERFACES.add(LdapContext.class);
+ }
+
+ private static final Set<InetAddress> SERVER_BIND_IPS;
+ static {
+ SERVER_BIND_IPS = new HashSet<InetAddress>();
+
+ try {
+ String bindingAddressString = System.getProperty("jboss.bind.address");
+ InetAddress bindingAddress = InetAddress.getByName(bindingAddressString);
+
+ if (bindingAddress.isAnyLocalAddress()) {
+ Enumeration<NetworkInterface> ifaces = NetworkInterface.getNetworkInterfaces();
+ while (ifaces.hasMoreElements()) {
+ NetworkInterface iface = ifaces.nextElement();
+ SERVER_BIND_IPS.addAll(Collections.list(iface.getInetAddresses()));
+ }
+ } else {
+ SERVER_BIND_IPS.add(bindingAddress);
+ }
+ } catch (SocketException e) {
+ LOG.error("Could not obtain the list of local IPs", e);
+ } catch (UnknownHostException e) {
+ LOG.error("Failed to get the binding address of the RHQ server.", e);
+ }
+ }
+
+ private static final int JNP_PORT = Integer.parseInt(System.getProperty("rhq.server.startup.namingservice.port",
+ "2099"));
+
+ /**
+ * This is the default initial context factory that is returned when no other is
+ * configured using the environment variables.
+ * <p>
+ * It uses {@link NamingContextFactory} as the underlying mechanism - the same
+ * as the default configuration in JBoss 4.
+ */
+ private static final InitialContextFactory DEFAULT_FACTORY = new InitialContextFactory() {
+ public Context getInitialContext(Hashtable<?, ?> environment) throws NamingException {
+ return createSecureWrapper(new NamingContextFactory(), environment).getInitialContext(environment);
+ }
+ };
+
+ /**
+ * Create a InitialContext factory. If the environment does not override the factory class it will use the
+ * default context factory.
+ *
+ * @param environment The environment
+ * @return An initial context factory
+ * @throws NamingException If an error occurs loading the factory class.
+ */
+ public InitialContextFactory createInitialContextFactory(Hashtable<?, ?> environment) throws NamingException {
+ final String factoryClassName = (String) environment.get(Context.INITIAL_CONTEXT_FACTORY);
+ if (factoryClassName == null) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("No " + Context.INITIAL_CONTEXT_FACTORY + " set. Using the default factory.");
+ }
+ return DEFAULT_FACTORY;
+ }
+ final ClassLoader classLoader = getContextClassLoader();
+ try {
+ final Class<?> factoryClass = Class.forName(factoryClassName, true, classLoader);
+ InitialContextFactory configuredFactory = (InitialContextFactory) factoryClass.newInstance();
+ return createSecureWrapper(configuredFactory, environment);
+ } catch (Exception e) {
+ throw new NamingException("Failed instantiate InitialContextFactory " + factoryClassName
+ + " from classloader " + classLoader);
+ }
+ }
+
+ private ClassLoader getContextClassLoader() {
+ return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+ public ClassLoader run() {
+ return Thread.currentThread().getContextClassLoader();
+ }
+ });
+ }
+
+ private static InitialContextFactory
+ createSecureWrapper(InitialContextFactory factory, Hashtable<?, ?> environment) {
+ String providerUrl = (String) environment.get(Context.PROVIDER_URL);
+
+ if (providerUrl == null) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Wrapping " + factory + " of class " + factory.getClass() + " in an access checking wrapper. No provider URL detected.");
+ }
+ return getAccessCheckingFactory(factory);
+ } else {
+ try {
+ URI uri = new URI(providerUrl);
+ InetAddress providerHost = InetAddress.getByName(uri.getHost());
+
+ //check if we are accessing the RHQ server through some remoting
+ //interface.
+ if (uri.getPort() == JNP_PORT && SERVER_BIND_IPS.contains(providerHost)) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Wrapping " + factory + " of class " + factory.getClass() + " in an access checking wrapper. The provider URL points to this server.");
+ }
+ return getAccessCheckingFactory(factory);
+ } else {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Wrapping " + factory + " of class " + factory.getClass() + " in an URL preferring wrapper to enable remote connections.");
+ }
+ return getURLPreferringFactory(factory);
+ }
+ } catch (URISyntaxException e) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("The " + Context.PROVIDER_URL
+ + " is not a valid URI. Falling back to using the access checking wrapper for the factory "
+ + factory + " of class " + factory.getClass() + ".", e);
+ }
+ return getAccessCheckingFactory(factory);
+ } catch (UnknownHostException e) {
+ //let the factory deal with the unknown host...
+ //this most probably shouldn't be secured because localhost addresses
+ //should be resolvable.
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("The " + Context.PROVIDER_URL
+ + " is not resolvable. Falling back to using the URL preferring wrapper for the factory "
+ + factory + " of class " + factory.getClass() + ".", e);
+ }
+ return getURLPreferringFactory(factory);
+ }
+ }
+ }
+
+ private static InitialContextFactory getAccessCheckingFactory(InitialContextFactory original) {
+ ArrayList<DecoratorPicker<Context, ContextDecorator>> pickers = new ArrayList<DecoratorPicker<Context,ContextDecorator>>();
+ pickers.add(getURLPreferringDecoratorPicker());
+ pickers.add(getAccessCheckingDecoratorPicker());
+
+ return new DecoratingInitialContextFactory(original, pickers);
+ }
+
+ private static InitialContextFactory getURLPreferringFactory(InitialContextFactory original) {
+ ArrayList<DecoratorPicker<Context, ContextDecorator>> pickers = new ArrayList<DecoratorPicker<Context,ContextDecorator>>();
+ pickers.add(getURLPreferringDecoratorPicker());
+
+ return new DecoratingInitialContextFactory(original, pickers);
+ }
+
+ private static DecoratorPicker<Context, ContextDecorator> getAccessCheckingDecoratorPicker() {
+ DecoratorPicker<Context, ContextDecorator> ret = new DecoratorPicker<Context, ContextDecorator>();
+ ret.setContext(new AccessCheckingContextDecoratorSetContext(SUPPORTED_CONTEXT_INTERFACES, CHECKED_SCHEMES));
+
+ return ret;
+ }
+
+ private static DecoratorPicker<Context, ContextDecorator> getURLPreferringDecoratorPicker() {
+ DecoratorPicker<Context, ContextDecorator> ret = new DecoratorPicker<Context, ContextDecorator>();
+ ret.setContext(new URLPreferringContextDecoratorSetContext(SUPPORTED_CONTEXT_INTERFACES));
+
+ return ret;
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/AllowRhqServerInternalsAccessPermission.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/AllowRhqServerInternalsAccessPermission.java
new file mode 100644
index 0000000..aa807d6
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/AllowRhqServerInternalsAccessPermission.java
@@ -0,0 +1,36 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2011 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi;
+
+import java.security.BasicPermission;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class AllowRhqServerInternalsAccessPermission extends BasicPermission {
+
+ private static final long serialVersionUID = 1L;
+
+ public AllowRhqServerInternalsAccessPermission() {
+ super("org.rhq.allow.server.internals.access");
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/DecoratingInitialContextFactory.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/DecoratingInitialContextFactory.java
new file mode 100644
index 0000000..e0f1d84
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/DecoratingInitialContextFactory.java
@@ -0,0 +1,110 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi;
+
+import java.lang.reflect.Proxy;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Set;
+
+import javax.naming.Context;
+import javax.naming.NamingException;
+import javax.naming.spi.InitialContextFactory;
+
+import org.rhq.jndi.context.ContextDecorator;
+import org.rhq.jndi.util.DecoratorPicker;
+import org.rhq.jndi.util.DecoratingInvocationHandler;
+
+/**
+ * This class implements an initial context factory that decorates the contexts
+ * returned from a "wrapped" initial factory passed to this class in the constructor.
+ * <p>
+ * The contexts returned from the wrapped initial factory are hidden behind a proxy
+ * that implements the intersection of interfaces from the <code>supportedContextInterfaces</code>
+ * constructor parameter and the actual interfaces the wrapped context implements.
+ * <p>
+ * The proxy method calls are handled using the {@link DecoratingInvocationHandler} which is initialized
+ * with the list of {@link DecoratorPicker pickers} that are used to intercept the method
+ * calls on the wrapped context.
+ *
+ * @see DecoratorPicker
+ * @see DecoratingInvocationHandler
+ *
+ * @author Lukas Krejci
+ */
+public class DecoratingInitialContextFactory implements InitialContextFactory {
+
+ List<DecoratorPicker<Context, ContextDecorator>> pickers;
+ private InitialContextFactory factory;
+ private Set<Class<? extends Context>> supportedContextInterfaces;
+
+ public DecoratingInitialContextFactory(InitialContextFactory factory, List<DecoratorPicker<Context, ContextDecorator>> decoratorPickers) {
+ this.factory = factory;
+ this.pickers = decoratorPickers;
+ this.supportedContextInterfaces = new HashSet<Class<? extends Context>>();
+ for(DecoratorPicker<Context, ContextDecorator> picker : pickers) {
+ supportedContextInterfaces.addAll(picker.getContext().getSupportedInterfaces());
+ }
+ }
+
+ public Context getInitialContext(Hashtable<?, ?> environment) throws NamingException {
+ Context ctx = factory.getInitialContext(environment);
+
+ Set<Class<?>> implementedIfaces = getAllImplementedInterfaces(ctx.getClass());
+ Class<?>[] ii = new Class<?>[implementedIfaces.size()];
+ implementedIfaces.toArray(ii);
+
+ return (Context) Proxy.newProxyInstance(ctx.getClass().getClassLoader(), ii, new DecoratingInvocationHandler<Context, ContextDecorator>(pickers, ctx));
+ }
+
+ private Set<Class<?>> getAllImplementedInterfaces(Class<?> cls) {
+ HashSet<Class<?>> ret = new HashSet<Class<?>>();
+ getAllImplementedInterfaces(cls, ret);
+
+ ret.retainAll(supportedContextInterfaces);
+
+ return ret;
+ }
+
+ private static void getAllImplementedInterfaces(Class<?> cls, Set<Class<?>> output) {
+ Class<?>[] ifaces = cls.getInterfaces();
+
+ for (Class<?> iface : Arrays.asList(ifaces)) {
+ output.add(iface);
+ getAllImplementedInterfaces(iface, output);
+ }
+
+ if (cls.getSuperclass() != null) {
+ getAllImplementedInterfaces(cls.getSuperclass(), output);
+ }
+ }
+
+ @Override
+ public int hashCode() {
+ return factory.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ return factory.equals(o);
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingContextDecorator.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingContextDecorator.java
new file mode 100644
index 0000000..8970b0a
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingContextDecorator.java
@@ -0,0 +1,264 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2011 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import java.io.Serializable;
+import java.util.Arrays;
+import java.util.Hashtable;
+import java.util.List;
+
+import javax.naming.Binding;
+import javax.naming.Context;
+import javax.naming.Name;
+import javax.naming.NameClassPair;
+import javax.naming.NameParser;
+import javax.naming.NamingEnumeration;
+import javax.naming.NamingException;
+
+import org.rhq.jndi.AllowRhqServerInternalsAccessPermission;
+
+/**
+ * This is the "meat" of the RHQ's secured JNDI access. This {@link Context} decorator
+ * applied security checks in each method (lookups, (un)bindings, etc).
+ * <p>
+ * The security check consists of checking if the current callstack has the {@link AllowRhqServerInternalsAccessPermission}.
+ * <p>
+ * This decorator applies the security check on any JNDI name without a scheme and
+ * on any name that has a scheme listed in the {@link #checkedSchemes} list supplied
+ * in the constructor.
+ *
+ * @author Lukas Krejci
+ */
+public class AccessCheckingContextDecorator implements Context, ContextDecorator, Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private static final AllowRhqServerInternalsAccessPermission PERM = new AllowRhqServerInternalsAccessPermission();
+ private Context original;
+ private List<String> checkedSchemes;
+
+ public AccessCheckingContextDecorator(String... checkedSchemes) {
+ this.checkedSchemes = Arrays.asList(checkedSchemes);
+ }
+
+ public AccessCheckingContextDecorator(Context original, String... checkedSchemes) {
+ this.original = original;
+ this.checkedSchemes = Arrays.asList(checkedSchemes);
+ }
+
+ public void init(Context ctx) {
+ this.original = ctx;
+ }
+
+ protected Context getOriginal() {
+ return original;
+ }
+
+ protected static void check() {
+ SecurityManager sm = System.getSecurityManager();
+ if (sm != null) sm.checkPermission(PERM);
+ }
+
+ private void checkScheme(String scheme) {
+ if (scheme == null || checkedSchemes.contains(scheme)) {
+ check();
+ }
+ }
+
+ protected void check(String name) {
+ checkScheme(getURLScheme(name));
+ }
+
+ protected void check(Name name) {
+ if (name.size() == 0) {
+ check();
+ } else {
+ String first = name.get(0);
+ checkScheme(getURLScheme(first));
+ }
+ }
+
+ public Object lookup(Name name) throws NamingException {
+ check(name);
+ return original.lookup(name);
+ }
+
+ public Object lookup(String name) throws NamingException {
+ check(name);
+ return original.lookup(name);
+ }
+
+ public void bind(Name name, Object obj) throws NamingException {
+ check(name);
+ original.bind(name, obj);
+ }
+
+ public void bind(String name, Object obj) throws NamingException {
+ check(name);
+ original.bind(name, obj);
+ }
+
+ public void rebind(Name name, Object obj) throws NamingException {
+ check(name);
+ original.rebind(name, obj);
+ }
+
+ public void rebind(String name, Object obj) throws NamingException {
+ check(name);
+ original.rebind(name, obj);
+ }
+
+ public void unbind(Name name) throws NamingException {
+ check(name);
+ original.unbind(name);
+ }
+
+ public void unbind(String name) throws NamingException {
+ check(name);
+ original.unbind(name);
+ }
+
+ public void rename(Name oldName, Name newName) throws NamingException {
+ check(oldName);
+ check(newName);
+ original.rename(oldName, newName);
+ }
+
+ public void rename(String oldName, String newName) throws NamingException {
+ check(oldName);
+ check(newName);
+ original.rename(oldName, newName);
+ }
+
+ public NamingEnumeration<NameClassPair> list(Name name) throws NamingException {
+ check(name);
+ return original.list(name);
+ }
+
+ public NamingEnumeration<NameClassPair> list(String name) throws NamingException {
+ check(name);
+ return original.list(name);
+ }
+
+ public NamingEnumeration<Binding> listBindings(Name name) throws NamingException {
+ check(name);
+ return original.listBindings(name);
+ }
+
+ public NamingEnumeration<Binding> listBindings(String name) throws NamingException {
+ check(name);
+ return original.listBindings(name);
+ }
+
+ public void destroySubcontext(Name name) throws NamingException {
+ check(name);
+ original.destroySubcontext(name);
+ }
+
+ public void destroySubcontext(String name) throws NamingException {
+ check(name);
+ original.destroySubcontext(name);
+ }
+
+ public Context createSubcontext(Name name) throws NamingException {
+ check(name);
+ return original.createSubcontext(name);
+ }
+
+ public Context createSubcontext(String name) throws NamingException {
+ check(name);
+ return original.createSubcontext(name);
+ }
+
+ public Object lookupLink(Name name) throws NamingException {
+ check(name);
+ return original.lookupLink(name);
+ }
+
+ public Object lookupLink(String name) throws NamingException {
+ check(name);
+ return original.lookupLink(name);
+ }
+
+ public NameParser getNameParser(Name name) throws NamingException {
+ check(name);
+ return original.getNameParser(name);
+ }
+
+ public NameParser getNameParser(String name) throws NamingException {
+ check(name);
+ return original.getNameParser(name);
+ }
+
+ public Name composeName(Name name, Name prefix) throws NamingException {
+ check(name);
+ return original.composeName(name, prefix);
+ }
+
+ public String composeName(String name, String prefix) throws NamingException {
+ check(name);
+ return original.composeName(name, prefix);
+ }
+
+ public Object addToEnvironment(String propName, Object propVal) throws NamingException {
+ check();
+ return original.addToEnvironment(propName, propVal);
+ }
+
+ public Object removeFromEnvironment(String propName) throws NamingException {
+ check();
+ return original.removeFromEnvironment(propName);
+ }
+
+ public Hashtable<?, ?> getEnvironment() throws NamingException {
+ check();
+ return original.getEnvironment();
+ }
+
+ public void close() throws NamingException {
+ check();
+ original.close();
+ }
+
+ public String getNameInNamespace() throws NamingException {
+ check();
+ return original.getNameInNamespace();
+ }
+
+ //copied from InitialContext
+ private static String getURLScheme(String str) {
+ int colon_posn = str.indexOf(':');
+ int slash_posn = str.indexOf('/');
+
+ if (colon_posn > 0 && (slash_posn == -1 || colon_posn < slash_posn))
+ return str.substring(0, colon_posn);
+ return null;
+ }
+
+ @Override
+ public int hashCode() {
+ return getOriginal() == null ? super.hashCode() : getOriginal().hashCode();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ return getOriginal() == null ? super.equals(o) : getOriginal().equals(o);
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingContextDecoratorSetContext.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingContextDecoratorSetContext.java
new file mode 100644
index 0000000..284fd0c
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingContextDecoratorSetContext.java
@@ -0,0 +1,75 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import java.lang.reflect.Constructor;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.naming.Context;
+
+import org.rhq.jndi.util.DecoratorSetContext;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class AccessCheckingContextDecoratorSetContext implements DecoratorSetContext<Context, ContextDecorator> {
+
+ private static final Set<Class<? extends ContextDecorator>> DECORATOR_CLASSES;
+ static {
+ HashSet<Class<? extends ContextDecorator>> tmp = new HashSet<Class<? extends ContextDecorator>>();
+ tmp.add(AccessCheckingContextDecorator.class);
+ tmp.add(AccessCheckingDirContextDecorator.class);
+ tmp.add(AccessCheckingEventContextDecorator.class);
+ tmp.add(AccessCheckingEventDirContextDecorator.class);
+ tmp.add(AccessCheckingLdapContextDecorator.class);
+
+ DECORATOR_CLASSES = Collections.unmodifiableSet(tmp);
+ }
+
+ private Set<Class<? extends Context>> supportedInterfaces;
+ private String[] checkedSchemes;
+
+ public AccessCheckingContextDecoratorSetContext(Set<Class<? extends Context>> supportedInterfaces, String... checkedSchemes) {
+ this.supportedInterfaces = supportedInterfaces;
+ this.checkedSchemes = checkedSchemes;
+ }
+
+ public ContextDecorator instantiate(Class<? extends ContextDecorator> decoratorClass) throws Exception {
+ Constructor<? extends ContextDecorator> ctor = decoratorClass.getConstructor(String[].class);
+
+ return ctor.newInstance((Object)checkedSchemes);
+ }
+
+ public Set<Class<? extends Context>> getSupportedInterfaces() {
+ return supportedInterfaces;
+ }
+
+ public Set<Class<? extends ContextDecorator>> getDecoratorClasses() {
+ return DECORATOR_CLASSES;
+ }
+
+ public void init(ContextDecorator decorator, Context object) throws Exception {
+ decorator.init(object);
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingDirContextDecorator.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingDirContextDecorator.java
new file mode 100644
index 0000000..1614180
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingDirContextDecorator.java
@@ -0,0 +1,187 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import javax.naming.Name;
+import javax.naming.NamingEnumeration;
+import javax.naming.NamingException;
+import javax.naming.directory.Attributes;
+import javax.naming.directory.DirContext;
+import javax.naming.directory.ModificationItem;
+import javax.naming.directory.SearchControls;
+import javax.naming.directory.SearchResult;
+
+/**
+ * A decorator of {@link DirContext}.
+ *
+ * @author Lukas Krejci
+ */
+public class AccessCheckingDirContextDecorator extends AccessCheckingContextDecorator implements DirContext {
+
+ private static final long serialVersionUID = 1L;
+
+ public AccessCheckingDirContextDecorator(String... checkedSchemes) {
+ super(checkedSchemes);
+ }
+
+ public AccessCheckingDirContextDecorator(DirContext original, String... checkedSchemes) {
+ super(original, checkedSchemes);
+ }
+
+ @Override
+ protected DirContext getOriginal() {
+ return (DirContext) super.getOriginal();
+ }
+
+ public Attributes getAttributes(Name name) throws NamingException {
+ check(name);
+ return getOriginal().getAttributes(name);
+ }
+
+ public Attributes getAttributes(String name) throws NamingException {
+ check(name);
+ return getOriginal().getAttributes(name);
+ }
+
+ public Attributes getAttributes(Name name, String[] attrIds) throws NamingException {
+ check(name);
+ return getOriginal().getAttributes(name, attrIds);
+ }
+
+ public Attributes getAttributes(String name, String[] attrIds) throws NamingException {
+ check(name);
+ return getOriginal().getAttributes(name, attrIds);
+ }
+
+ public void modifyAttributes(Name name, int mod_op, Attributes attrs) throws NamingException {
+ check(name);
+ getOriginal().modifyAttributes(name, mod_op, attrs);
+ }
+
+ public void modifyAttributes(String name, int mod_op, Attributes attrs) throws NamingException {
+ check(name);
+ getOriginal().modifyAttributes(name, mod_op, attrs);
+ }
+
+ public void modifyAttributes(Name name, ModificationItem[] mods) throws NamingException {
+ check(name);
+ getOriginal().modifyAttributes(name, mods);
+ }
+
+ public void modifyAttributes(String name, ModificationItem[] mods) throws NamingException {
+ check(name);
+ getOriginal().modifyAttributes(name, mods);
+ }
+
+ public void bind(Name name, Object obj, Attributes attrs) throws NamingException {
+ check(name);
+ getOriginal().bind(name, obj, attrs);
+ }
+
+ public void bind(String name, Object obj, Attributes attrs) throws NamingException {
+ check(name);
+ getOriginal().bind(name, obj, attrs);
+ }
+
+ public void rebind(Name name, Object obj, Attributes attrs) throws NamingException {
+ check(name);
+ getOriginal().rebind(name, obj, attrs);
+ }
+
+ public void rebind(String name, Object obj, Attributes attrs) throws NamingException {
+ check(name);
+ getOriginal().rebind(name, obj, attrs);
+ }
+
+ public DirContext createSubcontext(Name name, Attributes attrs) throws NamingException {
+ check(name);
+ return getOriginal().createSubcontext(name, attrs);
+ }
+
+ public DirContext createSubcontext(String name, Attributes attrs) throws NamingException {
+ check(name);
+ return getOriginal().createSubcontext(name, attrs);
+ }
+
+ public DirContext getSchema(Name name) throws NamingException {
+ check(name);
+ return getOriginal().getSchema(name);
+ }
+
+ public DirContext getSchema(String name) throws NamingException {
+ check(name);
+ return getOriginal().getSchema(name);
+ }
+
+ public DirContext getSchemaClassDefinition(Name name) throws NamingException {
+ check(name);
+ return getOriginal().getSchemaClassDefinition(name);
+ }
+
+ public DirContext getSchemaClassDefinition(String name) throws NamingException {
+ check(name);
+ return getOriginal().getSchema(name);
+ }
+
+ public NamingEnumeration<SearchResult>
+ search(Name name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException {
+ check(name);
+ return getOriginal().search(name, matchingAttributes, attributesToReturn);
+ }
+
+ public NamingEnumeration<SearchResult> search(String name, Attributes matchingAttributes,
+ String[] attributesToReturn) throws NamingException {
+ check(name);
+ return getOriginal().search(name, matchingAttributes, attributesToReturn);
+ }
+
+ public NamingEnumeration<SearchResult> search(Name name, Attributes matchingAttributes) throws NamingException {
+ check(name);
+ return getOriginal().search(name, matchingAttributes);
+ }
+
+ public NamingEnumeration<SearchResult> search(String name, Attributes matchingAttributes) throws NamingException {
+ check(name);
+ return getOriginal().search(name, matchingAttributes);
+ }
+
+ public NamingEnumeration<SearchResult> search(Name name, String filter, SearchControls cons) throws NamingException {
+ check(name);
+ return getOriginal().search(name, filter, cons);
+ }
+
+ public NamingEnumeration<SearchResult> search(String name, String filter, SearchControls cons)
+ throws NamingException {
+ check(name);
+ return getOriginal().search(name, filter, cons);
+ }
+
+ public NamingEnumeration<SearchResult>
+ search(Name name, String filterExpr, Object[] filterArgs, SearchControls cons) throws NamingException {
+ check(name);
+ return getOriginal().search(name, filterExpr, filterArgs, cons);
+ }
+
+ public NamingEnumeration<SearchResult> search(String name, String filterExpr, Object[] filterArgs,
+ SearchControls cons) throws NamingException {
+ check(name);
+ return getOriginal().search(name, filterExpr, filterArgs, cons);
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingEventContextDecorator.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingEventContextDecorator.java
new file mode 100644
index 0000000..67a9527
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingEventContextDecorator.java
@@ -0,0 +1,69 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import javax.naming.Name;
+import javax.naming.NamingException;
+import javax.naming.event.EventContext;
+import javax.naming.event.NamingListener;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class AccessCheckingEventContextDecorator extends AccessCheckingContextDecorator implements EventContext {
+
+ private static final long serialVersionUID = 1L;
+
+ public AccessCheckingEventContextDecorator(String... checkedSchemes) {
+ super(checkedSchemes);
+ }
+
+ public AccessCheckingEventContextDecorator(EventContext original, String... checkedSchemes) {
+ super(original, checkedSchemes);
+ }
+
+ @Override
+ protected EventContext getOriginal() {
+ return (EventContext) super.getOriginal();
+ }
+
+ public void addNamingListener(Name target, int scope, NamingListener l) throws NamingException {
+ check(target);
+ getOriginal().addNamingListener(target, scope, l);
+ }
+
+ public void addNamingListener(String target, int scope, NamingListener l) throws NamingException {
+ check(target);
+ getOriginal().addNamingListener(target, scope, l);
+ }
+
+ public void removeNamingListener(NamingListener l) throws NamingException {
+ check();
+ getOriginal().removeNamingListener(l);
+ }
+
+ public boolean targetMustExist() throws NamingException {
+ check();
+ return getOriginal().targetMustExist();
+ }
+
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingEventDirContextDecorator.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingEventDirContextDecorator.java
new file mode 100644
index 0000000..ed7a848
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingEventDirContextDecorator.java
@@ -0,0 +1,96 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import javax.naming.Name;
+import javax.naming.NamingException;
+import javax.naming.directory.SearchControls;
+import javax.naming.event.EventDirContext;
+import javax.naming.event.NamingListener;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class AccessCheckingEventDirContextDecorator extends AccessCheckingDirContextDecorator implements
+ EventDirContext {
+
+ private static final long serialVersionUID = 1L;
+
+ public AccessCheckingEventDirContextDecorator(String... checkedSchemes) {
+ super(checkedSchemes);
+ }
+
+ public AccessCheckingEventDirContextDecorator(EventDirContext original, String... checkedSchemes) {
+ super(original, checkedSchemes);
+ }
+
+ @Override
+ protected EventDirContext getOriginal() {
+ return (EventDirContext) super.getOriginal();
+ }
+
+ public void addNamingListener(Name target, int scope, NamingListener l) throws NamingException {
+ check(target);
+ getOriginal().addNamingListener(target, scope, l);
+ }
+
+ public void addNamingListener(String target, int scope, NamingListener l) throws NamingException {
+ check(target);
+ getOriginal().addNamingListener(target, scope, l);
+ }
+
+ public void removeNamingListener(NamingListener l) throws NamingException {
+ check();
+ getOriginal().removeNamingListener(l);
+ }
+
+ public boolean targetMustExist() throws NamingException {
+ check();
+ return getOriginal().targetMustExist();
+ }
+
+ public void addNamingListener(Name target, String filter, SearchControls ctls, NamingListener l)
+ throws NamingException {
+ check(target);
+ getOriginal().addNamingListener(target, filter, ctls, l);
+ }
+
+ public void addNamingListener(String target, String filter, SearchControls ctls, NamingListener l)
+ throws NamingException {
+ check(target);
+ getOriginal().addNamingListener(target, filter, ctls, l);
+ }
+
+ public void
+ addNamingListener(Name target, String filter, Object[] filterArgs, SearchControls ctls, NamingListener l)
+ throws NamingException {
+ check(target);
+ getOriginal().addNamingListener(target, filter, filterArgs, ctls, l);
+ }
+
+ public void addNamingListener(String target, String filter, Object[] filterArgs, SearchControls ctls,
+ NamingListener l) throws NamingException {
+ check(target);
+ getOriginal().addNamingListener(target, filter, filterArgs, ctls, l);
+ }
+
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingLdapContextDecorator.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingLdapContextDecorator.java
new file mode 100644
index 0000000..e361db8
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/AccessCheckingLdapContextDecorator.java
@@ -0,0 +1,85 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import javax.naming.NamingException;
+import javax.naming.ldap.Control;
+import javax.naming.ldap.ExtendedRequest;
+import javax.naming.ldap.ExtendedResponse;
+import javax.naming.ldap.LdapContext;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class AccessCheckingLdapContextDecorator extends AccessCheckingDirContextDecorator implements LdapContext {
+
+ private static final long serialVersionUID = 1L;
+
+ public AccessCheckingLdapContextDecorator(String... checkedSchemes) {
+ super(checkedSchemes);
+ }
+
+ public AccessCheckingLdapContextDecorator(LdapContext original, String... checkedSchemes) {
+ super(original, checkedSchemes);
+ }
+
+ @Override
+ protected LdapContext getOriginal() {
+ return (LdapContext) super.getOriginal();
+ }
+
+ public ExtendedResponse extendedOperation(ExtendedRequest request) throws NamingException {
+ check();
+ return getOriginal().extendedOperation(request);
+ }
+
+ public LdapContext newInstance(Control[] requestControls) throws NamingException {
+ check();
+ return getOriginal().newInstance(requestControls);
+ }
+
+ public void reconnect(Control[] connCtls) throws NamingException {
+ check();
+ getOriginal().reconnect(connCtls);
+ }
+
+ public Control[] getConnectControls() throws NamingException {
+ check();
+ return getOriginal().getConnectControls();
+ }
+
+ public void setRequestControls(Control[] requestControls) throws NamingException {
+ check();
+ getOriginal().setRequestControls(requestControls);
+ }
+
+ public Control[] getRequestControls() throws NamingException {
+ check();
+ return getOriginal().getRequestControls();
+ }
+
+ public Control[] getResponseControls() throws NamingException {
+ check();
+ return getOriginal().getResponseControls();
+ }
+
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/ContextDecorator.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/ContextDecorator.java
new file mode 100644
index 0000000..5755ebd
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/ContextDecorator.java
@@ -0,0 +1,33 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import javax.naming.Context;
+import javax.naming.NamingException;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public interface ContextDecorator extends Context {
+
+ void init(Context context) throws NamingException;
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecorator.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecorator.java
new file mode 100644
index 0000000..3f3a95d
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecorator.java
@@ -0,0 +1,222 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2011 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import java.io.Serializable;
+import java.util.Hashtable;
+
+import javax.naming.Binding;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.Name;
+import javax.naming.NameClassPair;
+import javax.naming.NameParser;
+import javax.naming.NamingEnumeration;
+import javax.naming.NamingException;
+
+import org.rhq.jndi.AccessCheckingInitialContextFactoryBuilder;
+
+/**
+ * This is a wrapper class around another {@link Context} implementation that
+ * prefers to use an URL context for some operation if the JNDI name contains
+ * a scheme rather than the original. This is the behavior of {@link InitialContext}
+ * which we need to restore in the contexts created by the {@link AccessCheckingInitialContextFactoryBuilder}
+ * (which an {@link InitialContext} uses exclusively if the builder is set).
+ * <p>
+ * This is important because RHQ server has its own initial context factory
+ * builder that creates factories that in turn create contexts. If the default
+ * {@link InitialContext} implementation was used, we'd never be able to lookup
+ * scheme-based names because the default implementation of the {@link InitialContext}
+ * always uses the default context of the builder if one is installed no matter
+ * the scheme in the name.
+ * <p>
+ * The {@link AccessCheckingInitialContextFactoryBuilder} wraps the context returned
+ * by the factory in an instance of this class and thus is restoring the original
+ * intended behavior of the {@link InitialContext}. It looks at the name being looked
+ * up (bound or whatever) and prefers to use the URL context factories if the name
+ * contains the scheme (as does the {@link InitialContext} if no builder is installed).
+ * If the name doesn't contain a scheme, the provided default context factory is used to
+ * look up the name.
+ *
+ * @author Lukas Krejci
+ */
+public class URLPreferringContextDecorator implements Context, ContextDecorator, Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private Context original;
+
+ public URLPreferringContextDecorator() {
+
+ }
+
+ public URLPreferringContextDecorator(Context ctx) {
+ original = ctx;
+ }
+
+ public void init(Context context) {
+ original = context;
+ }
+
+ protected Context getOriginal() throws NamingException {
+ return original;
+ }
+
+ protected Context getURLOrDefaultInitCtx(Name name) throws NamingException {
+ @SuppressWarnings("unchecked")
+ Context urlContext = URLPreferringContextDecoratorHelper.getURLContext(name, (Hashtable<Object, Object>) getEnvironment());
+ return urlContext == null ? getOriginal() : urlContext;
+ }
+
+ protected Context getURLOrDefaultInitCtx(String name) throws NamingException {
+ @SuppressWarnings("unchecked")
+ Context urlContext = URLPreferringContextDecoratorHelper.getURLContext(name, (Hashtable<Object, Object>) getEnvironment());
+ return urlContext == null ? getOriginal() : urlContext;
+ }
+
+ public Object lookup(Name name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).lookup(name);
+ }
+
+ public Object lookup(String name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).lookup(name);
+ }
+
+ public void bind(Name name, Object obj) throws NamingException {
+ getURLOrDefaultInitCtx(name).bind(name, obj);
+ }
+
+ public void bind(String name, Object obj) throws NamingException {
+ getURLOrDefaultInitCtx(name).bind(name, obj);
+ }
+
+ public void rebind(Name name, Object obj) throws NamingException {
+ getURLOrDefaultInitCtx(name).rebind(name, obj);
+ }
+
+ public void rebind(String name, Object obj) throws NamingException {
+ getURLOrDefaultInitCtx(name).rebind(name, obj);
+ }
+
+ public void unbind(Name name) throws NamingException {
+ getURLOrDefaultInitCtx(name).unbind(name);
+ }
+
+ public void unbind(String name) throws NamingException {
+ getURLOrDefaultInitCtx(name).unbind(name);
+ }
+
+ public void rename(Name oldName, Name newName) throws NamingException {
+ getURLOrDefaultInitCtx(oldName).rename(oldName, newName);
+ }
+
+ public void rename(String oldName, String newName) throws NamingException {
+ getURLOrDefaultInitCtx(oldName).rename(oldName, newName);
+ }
+
+ public NamingEnumeration<NameClassPair> list(Name name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).list(name);
+ }
+
+ public NamingEnumeration<NameClassPair> list(String name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).list(name);
+ }
+
+ public NamingEnumeration<Binding> listBindings(Name name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).listBindings(name);
+ }
+
+ public NamingEnumeration<Binding> listBindings(String name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).listBindings(name);
+ }
+
+ public void destroySubcontext(Name name) throws NamingException {
+ getURLOrDefaultInitCtx(name).destroySubcontext(name);
+ }
+
+ public void destroySubcontext(String name) throws NamingException {
+ getURLOrDefaultInitCtx(name).destroySubcontext(name);
+ }
+
+ public Context createSubcontext(Name name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).createSubcontext(name);
+ }
+
+ public Context createSubcontext(String name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).createSubcontext(name);
+ }
+
+ public Object lookupLink(Name name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).lookupLink(name);
+ }
+
+ public Object lookupLink(String name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).lookupLink(name);
+ }
+
+ public NameParser getNameParser(Name name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).getNameParser(name);
+ }
+
+ public NameParser getNameParser(String name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).getNameParser(name);
+ }
+
+ public Name composeName(Name name, Name prefix) throws NamingException {
+ return getOriginal().composeName(name, prefix);
+ }
+
+ public String composeName(String name, String prefix) throws NamingException {
+ return getOriginal().composeName(name, prefix);
+ }
+
+ public Object addToEnvironment(String propName, Object propVal) throws NamingException {
+ return getOriginal().addToEnvironment(propName, propVal);
+ }
+
+ public Object removeFromEnvironment(String propName) throws NamingException {
+ return getOriginal().removeFromEnvironment(propName);
+ }
+
+ public Hashtable<?, ?> getEnvironment() throws NamingException {
+ return getOriginal().getEnvironment();
+ }
+
+ public void close() throws NamingException {
+ if (getOriginal() != null) {
+ getOriginal().close();
+ original = null;
+ }
+ }
+
+ public String getNameInNamespace() throws NamingException {
+ return getOriginal().getNameInNamespace();
+ }
+
+ @Override
+ public int hashCode() {
+ return original == null ? super.hashCode() : original.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ return original == null ? super.equals(o) : original.equals(o);
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecoratorHelper.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecoratorHelper.java
new file mode 100644
index 0000000..6e7debc
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecoratorHelper.java
@@ -0,0 +1,76 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import java.util.Hashtable;
+
+import javax.naming.Context;
+import javax.naming.Name;
+import javax.naming.NamingException;
+import javax.naming.spi.NamingManager;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class URLPreferringContextDecoratorHelper {
+
+ private URLPreferringContextDecoratorHelper() {
+
+ }
+
+ public static Context getURLContext(String name, Hashtable<Object, Object> env) throws NamingException {
+ String scheme = getURLScheme(name);
+ if (scheme != null) {
+ Context ctx = NamingManager.getURLContext(scheme, env);
+ if (ctx != null) {
+ return ctx;
+ }
+ }
+
+ return null;
+ }
+
+ public static Context getURLContext(Name name, Hashtable<Object, Object> env) throws NamingException {
+ if (name.size() > 0) {
+ String first = name.get(0);
+ String scheme = getURLScheme(first);
+ if (scheme != null) {
+ Context ctx = NamingManager.getURLContext(scheme, env);
+ if (ctx != null) {
+ return ctx;
+ }
+ }
+ }
+
+ return null;
+ }
+
+ //copied from InitialContext
+ private static String getURLScheme(String str) {
+ int colon_posn = str.indexOf(':');
+ int slash_posn = str.indexOf('/');
+
+ if (colon_posn > 0 && (slash_posn == -1 || colon_posn < slash_posn))
+ return str.substring(0, colon_posn);
+ return null;
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecoratorSetContext.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecoratorSetContext.java
new file mode 100644
index 0000000..828cd74
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringContextDecoratorSetContext.java
@@ -0,0 +1,71 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.naming.Context;
+
+import org.rhq.jndi.util.DecoratorSetContext;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class URLPreferringContextDecoratorSetContext implements DecoratorSetContext<Context, ContextDecorator> {
+
+ private static final Set<Class<? extends ContextDecorator>> DECORATOR_CLASSES;
+ static {
+ HashSet<Class<? extends ContextDecorator>> tmp = new HashSet<Class<? extends ContextDecorator>>();
+ tmp.add(URLPreferringContextDecorator.class);
+ tmp.add(URLPreferringDirContextDecorator.class);
+ tmp.add(URLPreferringEventContextDecorator.class);
+ tmp.add(URLPreferringEventDirContextDecorator.class);
+ tmp.add(URLPreferringLdapContextDecorator.class);
+
+ DECORATOR_CLASSES = Collections.unmodifiableSet(tmp);
+ }
+
+ private Set<Class<? extends Context>> supportedInterfaces;
+
+ public URLPreferringContextDecoratorSetContext(Set<Class<? extends Context>> supportedInterfaces) {
+ this.supportedInterfaces = supportedInterfaces;
+ }
+
+ public Set<Class<? extends Context>> getSupportedInterfaces() {
+ return supportedInterfaces;
+ }
+
+ public Set<Class<? extends ContextDecorator>> getDecoratorClasses() {
+ return DECORATOR_CLASSES;
+ }
+
+ public ContextDecorator instantiate(Class<? extends ContextDecorator> decoratorClass) throws Exception {
+ return decoratorClass.newInstance();
+ }
+
+ public void init(ContextDecorator decorator, Context object) throws Exception {
+ decorator.init(object);
+ }
+
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringDirContextDecorator.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringDirContextDecorator.java
new file mode 100644
index 0000000..6a49942
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringDirContextDecorator.java
@@ -0,0 +1,185 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import javax.naming.Context;
+import javax.naming.Name;
+import javax.naming.NamingEnumeration;
+import javax.naming.NamingException;
+import javax.naming.NoInitialContextException;
+import javax.naming.NotContextException;
+import javax.naming.directory.Attributes;
+import javax.naming.directory.DirContext;
+import javax.naming.directory.ModificationItem;
+import javax.naming.directory.SearchControls;
+import javax.naming.directory.SearchResult;
+
+/**
+ * Akin to {@link URLPreferringContextDecorator} this class implements the similar logic
+ * for {@link DirContext}s.
+ *
+ * @author Lukas Krejci
+ */
+public class URLPreferringDirContextDecorator extends URLPreferringContextDecorator implements DirContext {
+
+ private static final long serialVersionUID = 1L;
+
+ public URLPreferringDirContextDecorator() {
+ super(null);
+ }
+
+ public URLPreferringDirContextDecorator(DirContext ctx) {
+ super(ctx);
+ }
+
+ protected DirContext checkAndCast(Context ctx) throws NamingException {
+ if (!(ctx instanceof DirContext)) {
+ if (ctx == null) {
+ throw new NoInitialContextException();
+ } else {
+ throw new NotContextException(
+ "Not an instance of DirContext");
+ }
+ }
+
+ return (DirContext) ctx;
+ }
+
+ @Override
+ protected DirContext getURLOrDefaultInitCtx(Name name) throws NamingException {
+ Context ctx = super.getURLOrDefaultInitCtx(name);
+ return checkAndCast(ctx);
+ }
+
+ @Override
+ protected DirContext getURLOrDefaultInitCtx(String name) throws NamingException {
+ Context ctx = super.getURLOrDefaultInitCtx(name);
+ return checkAndCast(ctx);
+ }
+
+ public Attributes getAttributes(Name name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).getAttributes(name);
+ }
+
+ public Attributes getAttributes(String name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).getAttributes(name);
+ }
+
+ public Attributes getAttributes(Name name, String[] attrIds) throws NamingException {
+ return getURLOrDefaultInitCtx(name).getAttributes(name, attrIds);
+ }
+
+ public Attributes getAttributes(String name, String[] attrIds) throws NamingException {
+ return getURLOrDefaultInitCtx(name).getAttributes(name, attrIds);
+ }
+
+ public void modifyAttributes(Name name, int mod_op, Attributes attrs) throws NamingException {
+ getURLOrDefaultInitCtx(name).modifyAttributes(name, mod_op, attrs);
+ }
+
+ public void modifyAttributes(String name, int mod_op, Attributes attrs) throws NamingException {
+ getURLOrDefaultInitCtx(name).modifyAttributes(name, mod_op, attrs);
+ }
+
+ public void modifyAttributes(Name name, ModificationItem[] mods) throws NamingException {
+ getURLOrDefaultInitCtx(name).modifyAttributes(name, mods);
+ }
+
+ public void modifyAttributes(String name, ModificationItem[] mods) throws NamingException {
+ getURLOrDefaultInitCtx(name).modifyAttributes(name, mods);
+ }
+
+ public void bind(Name name, Object obj, Attributes attrs) throws NamingException {
+ getURLOrDefaultInitCtx(name).bind(name, obj, attrs);
+ }
+
+ public void bind(String name, Object obj, Attributes attrs) throws NamingException {
+ getURLOrDefaultInitCtx(name).bind(name, obj, attrs);
+ }
+
+ public void rebind(Name name, Object obj, Attributes attrs) throws NamingException {
+ getURLOrDefaultInitCtx(name).rebind(name, obj, attrs);
+ }
+
+ public void rebind(String name, Object obj, Attributes attrs) throws NamingException {
+ getURLOrDefaultInitCtx(name).rebind(name, obj, attrs);
+ }
+
+ public DirContext createSubcontext(Name name, Attributes attrs) throws NamingException {
+ return getURLOrDefaultInitCtx(name).createSubcontext(name, attrs);
+ }
+
+ public DirContext createSubcontext(String name, Attributes attrs) throws NamingException {
+ return getURLOrDefaultInitCtx(name).createSubcontext(name, attrs);
+ }
+
+ public DirContext getSchema(Name name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).getSchema(name);
+ }
+
+ public DirContext getSchema(String name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).getSchema(name);
+ }
+
+ public DirContext getSchemaClassDefinition(Name name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).getSchemaClassDefinition(name);
+ }
+
+ public DirContext getSchemaClassDefinition(String name) throws NamingException {
+ return getURLOrDefaultInitCtx(name).getSchemaClassDefinition(name);
+ }
+
+ public NamingEnumeration<SearchResult>
+ search(Name name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException {
+ return getURLOrDefaultInitCtx(name).search(name, matchingAttributes, attributesToReturn);
+ }
+
+ public NamingEnumeration<SearchResult> search(String name, Attributes matchingAttributes,
+ String[] attributesToReturn) throws NamingException {
+ return getURLOrDefaultInitCtx(name).search(name, matchingAttributes, attributesToReturn);
+ }
+
+ public NamingEnumeration<SearchResult> search(Name name, Attributes matchingAttributes) throws NamingException {
+ return getURLOrDefaultInitCtx(name).search(name, matchingAttributes);
+ }
+
+ public NamingEnumeration<SearchResult> search(String name, Attributes matchingAttributes) throws NamingException {
+ return getURLOrDefaultInitCtx(name).search(name, matchingAttributes);
+ }
+
+ public NamingEnumeration<SearchResult> search(Name name, String filter, SearchControls cons) throws NamingException {
+ return getURLOrDefaultInitCtx(name).search(name, filter, cons);
+ }
+
+ public NamingEnumeration<SearchResult> search(String name, String filter, SearchControls cons)
+ throws NamingException {
+ return getURLOrDefaultInitCtx(name).search(name, filter, cons);
+ }
+
+ public NamingEnumeration<SearchResult>
+ search(Name name, String filterExpr, Object[] filterArgs, SearchControls cons) throws NamingException {
+ return getURLOrDefaultInitCtx(name).search(name, filterExpr, filterArgs, cons);
+ }
+
+ public NamingEnumeration<SearchResult> search(String name, String filterExpr, Object[] filterArgs,
+ SearchControls cons) throws NamingException {
+ return getURLOrDefaultInitCtx(name).search(name, filterExpr, filterArgs, cons);
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringEventContextDecorator.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringEventContextDecorator.java
new file mode 100644
index 0000000..e3298a0
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringEventContextDecorator.java
@@ -0,0 +1,81 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import javax.naming.Context;
+import javax.naming.Name;
+import javax.naming.NamingException;
+import javax.naming.NoInitialContextException;
+import javax.naming.NotContextException;
+import javax.naming.event.EventContext;
+import javax.naming.event.NamingListener;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class URLPreferringEventContextDecorator extends URLPreferringContextDecorator implements EventContext {
+
+ private static final long serialVersionUID = 1L;
+
+ public URLPreferringEventContextDecorator() {
+ super(null);
+ }
+
+ public URLPreferringEventContextDecorator(EventContext ctx) {
+ super(ctx);
+ }
+
+ protected EventContext checkAndCast(Context ctx) throws NamingException {
+ if (!(ctx instanceof EventContext)) {
+ if (ctx == null) {
+ throw new NoInitialContextException();
+ } else {
+ throw new NotContextException(
+ "Not an instance of EventContext");
+ }
+ }
+
+ return (EventContext) ctx;
+ }
+
+ @Override
+ protected EventContext getOriginal() throws NamingException {
+ return checkAndCast(super.getOriginal());
+ }
+
+ public void addNamingListener(Name target, int scope, NamingListener l) throws NamingException {
+ getOriginal().addNamingListener(target, scope, l);
+ }
+
+ public void addNamingListener(String target, int scope, NamingListener l) throws NamingException {
+ getOriginal().addNamingListener(target, scope, l);
+ }
+
+ public void removeNamingListener(NamingListener l) throws NamingException {
+ getOriginal().removeNamingListener(l);
+ }
+
+ public boolean targetMustExist() throws NamingException {
+ return getOriginal().targetMustExist();
+ }
+
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringEventDirContextDecorator.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringEventDirContextDecorator.java
new file mode 100644
index 0000000..4925297
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringEventDirContextDecorator.java
@@ -0,0 +1,104 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import javax.naming.Context;
+import javax.naming.Name;
+import javax.naming.NamingException;
+import javax.naming.NoInitialContextException;
+import javax.naming.NotContextException;
+import javax.naming.directory.SearchControls;
+import javax.naming.event.EventDirContext;
+import javax.naming.event.NamingListener;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class URLPreferringEventDirContextDecorator extends URLPreferringDirContextDecorator implements EventDirContext {
+
+ private static final long serialVersionUID = 1L;
+
+ public URLPreferringEventDirContextDecorator() {
+ super(null);
+ }
+
+ public URLPreferringEventDirContextDecorator(EventDirContext ctx) {
+ super(ctx);
+ }
+
+ @Override
+ protected EventDirContext checkAndCast(Context ctx) throws NamingException {
+ if (!(ctx instanceof EventDirContext)) {
+ if (ctx == null) {
+ throw new NoInitialContextException();
+ } else {
+ throw new NotContextException(
+ "Not an instance of EventDirContext");
+ }
+ }
+
+ return (EventDirContext) ctx;
+ }
+
+ @Override
+ protected EventDirContext getOriginal() throws NamingException {
+ return checkAndCast(super.getOriginal());
+ }
+
+ public void addNamingListener(Name target, int scope, NamingListener l) throws NamingException {
+ getOriginal().addNamingListener(target, scope, l);
+ }
+
+ public void addNamingListener(String target, int scope, NamingListener l) throws NamingException {
+ getOriginal().addNamingListener(target, scope, l);
+ }
+
+ public void removeNamingListener(NamingListener l) throws NamingException {
+ getOriginal().removeNamingListener(l);
+ }
+
+ public boolean targetMustExist() throws NamingException {
+ return getOriginal().targetMustExist();
+ }
+
+ public void addNamingListener(Name target, String filter, SearchControls ctls, NamingListener l)
+ throws NamingException {
+ getOriginal().addNamingListener(target, filter, ctls, l);
+ }
+
+ public void addNamingListener(String target, String filter, SearchControls ctls, NamingListener l)
+ throws NamingException {
+ getOriginal().addNamingListener(target, filter, ctls, l);
+ }
+
+ public void
+ addNamingListener(Name target, String filter, Object[] filterArgs, SearchControls ctls, NamingListener l)
+ throws NamingException {
+ getOriginal().addNamingListener(target, filter, filterArgs, ctls, l);
+ }
+
+ public void addNamingListener(String target, String filter, Object[] filterArgs, SearchControls ctls,
+ NamingListener l) throws NamingException {
+ getOriginal().addNamingListener(target, filter, filterArgs, ctls, l);
+ }
+
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringLdapContextDecorator.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringLdapContextDecorator.java
new file mode 100644
index 0000000..c74df39
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/context/URLPreferringLdapContextDecorator.java
@@ -0,0 +1,94 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import javax.naming.Context;
+import javax.naming.NamingException;
+import javax.naming.NoInitialContextException;
+import javax.naming.NotContextException;
+import javax.naming.ldap.Control;
+import javax.naming.ldap.ExtendedRequest;
+import javax.naming.ldap.ExtendedResponse;
+import javax.naming.ldap.LdapContext;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class URLPreferringLdapContextDecorator extends URLPreferringDirContextDecorator implements LdapContext {
+
+ private static final long serialVersionUID = 1L;
+
+ public URLPreferringLdapContextDecorator() {
+ super(null);
+ }
+
+ public URLPreferringLdapContextDecorator(LdapContext original) {
+ super(original);
+ }
+
+ @Override
+ protected LdapContext checkAndCast(Context ctx) throws NamingException {
+ if (!(ctx instanceof LdapContext)) {
+ if (ctx == null) {
+ throw new NoInitialContextException();
+ } else {
+ throw new NotContextException("Not an instance of LdapContext");
+ }
+ }
+
+ return (LdapContext) ctx;
+ }
+
+ @Override
+ protected LdapContext getOriginal() throws NamingException {
+ return checkAndCast(super.getOriginal());
+ }
+
+ public ExtendedResponse extendedOperation(ExtendedRequest request) throws NamingException {
+ return getOriginal().extendedOperation(request);
+ }
+
+ public LdapContext newInstance(Control[] requestControls) throws NamingException {
+ return new URLPreferringLdapContextDecorator(getOriginal().newInstance(requestControls));
+ }
+
+ public void reconnect(Control[] connCtls) throws NamingException {
+ getOriginal().reconnect(connCtls);
+ }
+
+ public Control[] getConnectControls() throws NamingException {
+ return getOriginal().getConnectControls();
+ }
+
+ public void setRequestControls(Control[] requestControls) throws NamingException {
+ getOriginal().setRequestControls(requestControls);
+ }
+
+ public Control[] getRequestControls() throws NamingException {
+ return getOriginal().getRequestControls();
+ }
+
+ public Control[] getResponseControls() throws NamingException {
+ return getOriginal().getResponseControls();
+ }
+
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/mbean/AccessCheckingInitialContextFactoryBuilderInstaller.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/mbean/AccessCheckingInitialContextFactoryBuilderInstaller.java
new file mode 100644
index 0000000..a1ccb4f
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/mbean/AccessCheckingInitialContextFactoryBuilderInstaller.java
@@ -0,0 +1,45 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2011 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.mbean;
+
+import javax.naming.spi.NamingManager;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import org.rhq.jndi.AccessCheckingInitialContextFactoryBuilder;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class AccessCheckingInitialContextFactoryBuilderInstaller implements AccessCheckingInitialContextFactoryBuilderInstallerMBean {
+ private static final Log LOG = LogFactory.getLog(AccessCheckingInitialContextFactoryBuilderInstaller.class);
+
+ public void start() throws Exception {
+ LOG.info("Installing RHQ's access permission checking initial context factory builder");
+
+ NamingManager.setInitialContextFactoryBuilder(new AccessCheckingInitialContextFactoryBuilder());
+ }
+
+ public void stop() throws Exception {
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/mbean/AccessCheckingInitialContextFactoryBuilderInstallerMBean.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/mbean/AccessCheckingInitialContextFactoryBuilderInstallerMBean.java
new file mode 100644
index 0000000..87d19ab
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/mbean/AccessCheckingInitialContextFactoryBuilderInstallerMBean.java
@@ -0,0 +1,32 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2011 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.mbean;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public interface AccessCheckingInitialContextFactoryBuilderInstallerMBean {
+
+ void start() throws Exception;
+
+ void stop() throws Exception;
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratingInvocationHandler.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratingInvocationHandler.java
new file mode 100644
index 0000000..1bfa7ac
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratingInvocationHandler.java
@@ -0,0 +1,55 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.util;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.List;
+
+public class DecoratingInvocationHandler<Type, Decorator extends Type> implements InvocationHandler {
+
+ private final List<DecoratorPicker<Type, Decorator>> pickers;
+ private Type object;
+
+ public DecoratingInvocationHandler(List<DecoratorPicker<Type, Decorator>> pickers, Type object) {
+ this.pickers = pickers;
+ this.object = object;
+ }
+
+ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+ Type target = object;
+ Class<?> methodClass = method.getDeclaringClass();
+
+ for(DecoratorPicker<Type, Decorator> picker : pickers) {
+ target = picker.decorate(target, methodClass);
+ }
+
+ try {
+ return method.invoke(target, args);
+ } catch (InvocationTargetException e) {
+ if (e.getCause() != null) {
+ throw e.getCause();
+ } else {
+ throw e;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratorPicker.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratorPicker.java
new file mode 100644
index 0000000..017d29f
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratorPicker.java
@@ -0,0 +1,195 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.util;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Given as set of decorators extending given type, this class can pick
+ * the most appropriate set of decorators for a class or a method call.
+ * <p>
+ * To configure the decorator, one has to provide a {@link DecoratorSetContext} that
+ * is then used to obtain the list of
+ * {@link DecoratorSetContext#getSupportedInterfaces() supported interfaces}, which are
+ * all the interfaces that should be used for decorator resolution (i.e. all other interfaces
+ * that a class might implement are ignored during decorator resolution), the list of
+ * {@link DecoratorSetContext#getDecoratorClasses() decorator classes}, which is a list
+ * of decorators the picker can choose from and is also used to instantiate and initialize
+ * the decorators.
+ *
+ * @author Lukas Krejci
+ */
+public class DecoratorPicker<Type, Decorator extends Type> {
+
+ private DecoratorSetContext<Type, Decorator> context;
+
+ public DecoratorSetContext<Type, Decorator> getContext() {
+ return context;
+ }
+
+ public void setContext(DecoratorSetContext<Type, Decorator> decoratorSetContext) {
+ this.context = decoratorSetContext;
+ }
+
+ /**
+ * Returns a set of decorators applicable for given method. The set is established based
+ * on the declaring class of the method.
+ *
+ * @param method the method to inspect
+ * @return the set of decorators that can be used to wrap a method call
+ * @throws Exception
+ */
+ public Set<Decorator> getDecoratorsForMethod(Method method) throws Exception {
+ return getDecoratorsForClass_Private(method.getDeclaringClass());
+ }
+
+ /**
+ * Returns a set of decorators that can be used on instances of given class.
+ * @param cls the class to inspect
+ * @return
+ * @throws Exception
+ */
+ public Set<Decorator> getDecoratorsForClass(Class<? extends Type> cls) throws Exception {
+ return getDecoratorsForClass_Private(cls);
+ }
+
+ /**
+ * This method first establishes the set of decorators to use based on the class of the supplied
+ * object and then chains the decorators (in arbitrary order) with the supplied object at the
+ * "root" of the chain.
+ * <p>
+ * If a method is then called on the returned object, the methods of all the decorators are called
+ * in chain (each supposedly calling the next) and finally, at the end of the chain, the method on
+ * the original object (the one supplied to this method) is called.
+ * <p>
+ * Note that the above is only an intended behavior and actually depends on the implementation of
+ * the decorators that are resposinble for the chaining. Each decorator is initialized
+ * (@{link {@link DecoratorSetContext#init(Object, Object)} which should set it up for such chaining.
+ *
+ * @param object
+ * @return
+ * @throws Exception
+ */
+ public Type decorate(Type object) throws Exception {
+ Set<Decorator> decs = getDecoratorsForClass_Private(object.getClass());
+ Type ret = object;
+ for(Decorator d : decs) {
+ context.init(d, ret);
+ ret = d;
+ }
+
+ return ret;
+ }
+
+ /**
+ * Similar to {@link #decorate(Object)} but instead of the class of the object itself,
+ * uses the significantSuperClass as the basis for the decorator resolution.
+ * <p>
+ * This is important, because if the object implements two mutually incompatible sub-interfaces of <code>Type</code>,
+ * the chained decorators might fail to execute a method later on if the decorator depends on the upper part
+ * of the chain to implement certain sub-interface of <code>Type</code>.
+ *
+ * @param object the object to wrap in decorators
+ * @param significantSuperClass the class to base the decorator resolution on
+ * @return
+ * @throws Exception
+ */
+ public Type decorate(Type object, Class<?> significantSuperClass) throws Exception {
+ Set<Decorator> decs = getDecoratorsForClass_Private(significantSuperClass);
+ Type ret = object;
+ for(Decorator d : decs) {
+ context.init(d, ret);
+ ret = d;
+ }
+
+ return ret;
+ }
+
+ private Set<Decorator> getDecoratorsForClass_Private(Class<?> cls) throws Exception {
+ Set<Class<? extends Type>> ifaces = getNearestApplicableInterfaces(cls);
+
+ HashSet<Decorator> ret = new HashSet<Decorator>();
+
+ for (Class<? extends Type> iface : ifaces) {
+ for (Class<? extends Decorator> decClass : getMatch(iface)) {
+ ret.add(context.instantiate(decClass));
+ }
+ }
+
+ return ret;
+ }
+
+ private Set<Class<? extends Type>> getNearestApplicableInterfaces(Class<?> cls) {
+ List<Class<? extends Type>> ifaces = new ArrayList<Class<? extends Type>>(getAllApplicableInterfaces(cls));
+
+ //now compact the set to only contain the most concrete interfaces
+
+ Iterator<Class<? extends Type>> it = ifaces.iterator();
+ while (it.hasNext()) {
+ Class<? extends Type> c = it.next();
+
+ for (int i = 0; i < ifaces.size(); ++i) {
+ Class<? extends Type> nextC = ifaces.get(i);
+ if (!c.equals(nextC) && c.isAssignableFrom(nextC)) {
+ it.remove();
+ break;
+ }
+ }
+ }
+
+ return new HashSet<Class<? extends Type>>(ifaces);
+ }
+
+ private Set<Class<? extends Type>> getAllApplicableInterfaces(Class<?> cls) {
+ Set<Class<? extends Type>> ifaces = new HashSet<Class<? extends Type>>();
+
+ for (Class<? extends Type> iface : context.getSupportedInterfaces()) {
+ if (iface.isAssignableFrom(cls)) {
+ ifaces.add(iface);
+ }
+ }
+
+ if (ifaces.isEmpty()) {
+ throw new IllegalArgumentException("Class " + cls
+ + " doesn't implement any of the applicable interfaces. Cannot find decorators for it.");
+ }
+
+ return ifaces;
+ }
+
+ private Set<Class<? extends Decorator>> getMatch(Class<?> targetIface) {
+
+ Set<Class<? extends Decorator>> ret = new HashSet<Class<? extends Decorator>>();
+
+ for (Class<? extends Decorator> cls : context.getDecoratorClasses()) {
+ if (Arrays.asList(cls.getInterfaces()).contains(targetIface)) {
+ ret.add(cls);
+ }
+ }
+
+ return ret;
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratorSetContext.java b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratorSetContext.java
new file mode 100644
index 0000000..d7b1676
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/main/java/org/rhq/jndi/util/DecoratorSetContext.java
@@ -0,0 +1,59 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.util;
+
+import java.util.Set;
+
+/**
+ * Implementations of this interface provide a context to the {@link DecoratorPicker}.
+ *
+ * @author Lukas Krejci
+ */
+public interface DecoratorSetContext<Type, Decorator> {
+
+ /**
+ * @return the set of interfaces that the decorators are able support.
+ * Usually this should be just a union of all interfaces the decorators implement
+ * but can be trimmed down.
+ */
+ Set<Class<? extends Type>> getSupportedInterfaces();
+
+ /**
+ * @return the set of all decorator classes in this set
+ */
+ Set<Class<? extends Decorator>> getDecoratorClasses();
+
+ /**
+ * Instantiates a new decorator of given class.
+ * @param decoratorClass
+ * @return
+ * @throws Exception
+ */
+ Decorator instantiate(Class<? extends Decorator> decoratorClass) throws Exception;
+
+ /**
+ * Initializes the decorator to decorate given object.
+ *
+ * @param decorator
+ * @param object
+ * @throws Exception on error
+ */
+ void init(Decorator decorator, Type object) throws Exception;
+}
diff --git a/modules/enterprise/server/container-lib/src/test/java/org/rhq/jndi/context/DecoratingInvocationHandlerTest.java b/modules/enterprise/server/container-lib/src/test/java/org/rhq/jndi/context/DecoratingInvocationHandlerTest.java
new file mode 100644
index 0000000..45ba114
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/test/java/org/rhq/jndi/context/DecoratingInvocationHandlerTest.java
@@ -0,0 +1,145 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.Properties;
+import java.util.Set;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.Name;
+import javax.naming.NamingException;
+import javax.naming.directory.DirContext;
+import javax.naming.event.EventContext;
+import javax.naming.event.NamingListener;
+import javax.naming.spi.InitialContextFactory;
+import javax.naming.spi.NamingManager;
+
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import org.rhq.jndi.AccessCheckingInitialContextFactoryBuilder;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+@Test
+public class DecoratingInvocationHandlerTest {
+ private static final Set<String> INVOKED_METHODS = new HashSet<String>();
+
+ private static final InvocationHandler NOTE_TAKING_HANDLER = new InvocationHandler() {
+
+ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+ INVOKED_METHODS.add(method.getName());
+
+ if ("hashCode".equals(method.getName())) {
+ return 0;
+ } else if ("equals".equals(method.getName())) {
+ return false;
+ }
+
+ return null;
+ }
+ };
+
+ private static Class<?>[] CONTEXT_INTERFACES;
+
+ public static class Factory implements InitialContextFactory {
+ public Context getInitialContext(Hashtable<?, ?> environment)
+ throws NamingException {
+
+ return (Context) Proxy.newProxyInstance(DecoratingInvocationHandlerTest.class.getClassLoader(), CONTEXT_INTERFACES, NOTE_TAKING_HANDLER);
+ }
+ }
+
+ private static class DummyInitialEventContext extends InitialContext implements EventContext {
+
+ /**
+ * @param environment
+ * @throws NamingException
+ */
+ public DummyInitialEventContext(Hashtable<?, ?> environment) throws NamingException {
+ super(environment);
+ }
+
+ public void addNamingListener(Name target, int scope, NamingListener l) throws NamingException {
+ ((EventContext)getURLOrDefaultInitCtx(target)).addNamingListener(target, scope, l);
+ }
+
+ public void addNamingListener(String target, int scope, NamingListener l) throws NamingException {
+ ((EventContext)getURLOrDefaultInitCtx(target)).addNamingListener(target, scope, l);
+ }
+
+ public void removeNamingListener(NamingListener l) throws NamingException {
+ ((EventContext)getDefaultInitCtx()).removeNamingListener(l);
+ }
+
+ public boolean targetMustExist() throws NamingException {
+ return ((EventContext)getDefaultInitCtx()).targetMustExist();
+ }
+
+
+ }
+
+ @BeforeClass
+ public void setBuilder() throws Exception {
+ NamingManager.setInitialContextFactoryBuilder(new AccessCheckingInitialContextFactoryBuilder());
+ }
+
+ public void testSimpleDispatch() throws Exception {
+ INVOKED_METHODS.clear();
+ Properties env = new Properties();
+ env.put(Context.INITIAL_CONTEXT_FACTORY, Factory.class.getName());
+
+ CONTEXT_INTERFACES = new Class<?>[] { Context.class };
+
+ InitialContext ctx = new InitialContext(env);
+
+ ctx.lookup("asdf");
+
+ assert INVOKED_METHODS.contains("lookup") : "The lookup doesn't seem to have propagated to the actual context to be used.";
+ }
+
+ public void testMultiInterfaceDispatch() throws Exception {
+ INVOKED_METHODS.clear();
+ Properties env = new Properties();
+ env.put(Context.INITIAL_CONTEXT_FACTORY, Factory.class.getName());
+
+ CONTEXT_INTERFACES = new Class<?>[] { EventContext.class, DirContext.class };
+
+ InitialContext ctx = new InitialContext(env);
+
+ ctx.lookup("asdf");
+
+ DummyInitialEventContext ectx = new DummyInitialEventContext(env);
+
+ ectx.addNamingListener("hodiny", 0, null);
+
+ assert INVOKED_METHODS.contains("lookup") : "The lookup doesn't seem to have propagated to the actual context to be used.";
+ assert INVOKED_METHODS.contains("addNamingListener") : "The addNamingListener doesn't seem to have propagated to the actual context to be used.";
+ }
+}
diff --git a/modules/enterprise/server/container-lib/src/test/java/org/rhq/jndi/context/DecoratorPickerTest.java b/modules/enterprise/server/container-lib/src/test/java/org/rhq/jndi/context/DecoratorPickerTest.java
new file mode 100644
index 0000000..e2d7429
--- /dev/null
+++ b/modules/enterprise/server/container-lib/src/test/java/org/rhq/jndi/context/DecoratorPickerTest.java
@@ -0,0 +1,180 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.context;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.naming.Context;
+import javax.naming.directory.DirContext;
+import javax.naming.event.EventContext;
+import javax.naming.ldap.LdapContext;
+
+import org.testng.annotations.Test;
+
+import org.rhq.jndi.util.DecoratorPicker;
+import org.rhq.jndi.util.DecoratorSetContext;
+
+/**
+ * @author Lukas Krejci
+ */
+@Test
+public class DecoratorPickerTest {
+
+ private static final InvocationHandler DUMMY_HANDLER = new InvocationHandler() {
+
+ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+ if ("hashCode".equals(method.getName())) {
+ return 0;
+ } else if ("equals".equals(method.getName())) {
+ return false;
+ }
+
+ return null;
+ }
+ };
+
+ private static final Class<?> TEST_OBJECT_CLASS1 = createProxyClass(Context.class);
+ private static final Class<?> TEST_OBJECT_CLASS2 = createProxyClass(DirContext.class);
+ private static final Class<?> TEST_OBJECT_CLASS3 = createProxyClass(LdapContext.class);
+ private static final Class<?> TEST_OBJECT_CLASS4 = createProxyClass(LdapContext.class, EventContext.class);
+ private static final Class<?> DECORATOR_CLASS1 = createProxyClass(Context.class);
+ private static final Class<?> DECORATOR_CLASS2 = createProxyClass(EventContext.class);
+ private static final Class<?> DECORATOR_CLASS3 = createProxyClass(LdapContext.class);
+ private static final Class<?> DECORATOR_CLASS4 = createProxyClass(DirContext.class);
+
+ public void testSimpleDecoratorIdentifiedByClass() throws Exception {
+ DecoratorPicker<Object, Object> picker = createTestPicker();
+
+ Set<Object> contextDecorators = picker.getDecoratorsForClass(TEST_OBJECT_CLASS1);
+ assertEquals(contextDecorators.size(), 1, "Expected exactly one decorator for Context class");
+ assertEquals(contextDecorators.iterator().next().getClass().getInterfaces()[0], Context.class);
+ }
+
+ public void testSuperClassDecoratorHasPrecedenceOverSubClassDecorator() throws Exception {
+ DecoratorPicker<Object, Object> picker = createTestPicker();
+
+ //this tests that the LdapContext isn't returned even though it subclasses the DirContext
+ Set<Object> contextDecorators = picker.getDecoratorsForClass(TEST_OBJECT_CLASS2);
+ assertEquals(contextDecorators.size(), 1, "Expected exactly one decorator for DirContext class");
+ assertEquals(contextDecorators.iterator().next().getClass().getInterfaces()[0], DirContext.class);
+ }
+
+ public void testSubClassDecoratorCorrectlyIdentified() throws Exception {
+ DecoratorPicker<Object, Object> picker = createTestPicker();
+
+ Set<Object> contextDecorators = picker.getDecoratorsForClass(TEST_OBJECT_CLASS3);
+ assertEquals(contextDecorators.size(), 1, "Expected exactly one decorator for LdapContext class");
+ assertEquals(contextDecorators.iterator().next().getClass().getInterfaces()[0], LdapContext.class);
+ }
+
+ public void testMultipleDecoratorsDetectable() throws Exception {
+ DecoratorPicker<Object, Object> picker = createTestPicker();
+
+ Set<Object> decorators = picker.getDecoratorsForClass(TEST_OBJECT_CLASS4);
+ assertEquals(decorators.size(), 2,
+ "Exactly 2 decorators should have been found for a class implementing 2 interfaces.");
+
+ boolean ldapContextDecoratorFound = false;
+ boolean eventContextDecoratorFound = false;
+
+ for (Object d : decorators) {
+ if (LdapContext.class.isAssignableFrom(d.getClass())) {
+ ldapContextDecoratorFound = true;
+ continue; //just to make sure that somehow the decorator doesn't implement both
+ }
+ if (EventContext.class.isAssignableFrom(d.getClass())) {
+ eventContextDecoratorFound = true;
+ }
+ }
+
+ assertTrue(ldapContextDecoratorFound && eventContextDecoratorFound,
+ "The found decorators don't implement the desired interfaces.");
+ }
+
+ public void testDecoratorsIdentifiedByMethod() throws Exception {
+ DecoratorPicker<Object, Object> picker = createTestPicker();
+
+ Set<Object> decorators =
+ picker.getDecoratorsForMethod(LdapContext.class.getMethod("getConnectControls", (Class<?>[]) null));
+ assertEquals(decorators.size(), 1,
+ "Expected exactly one decorator for method 'getConnectControls()' from LdapContext class");
+ assertEquals(decorators.iterator().next().getClass().getInterfaces()[0], LdapContext.class);
+ }
+
+ public void testMethodFromSubclassMatchesSubclassDecorator() throws Exception {
+ DecoratorPicker<Object, Object> picker = createTestPicker();
+
+ //this is a method from the DirContext but we're asking for it from a class
+ //that implements also an LdapContext
+ //The LdapContext decorator also inherits from the DirContext decorator
+ //(by the virtue of LdapContext interface inheriting from the DirContext)
+ //The picker should therefore match the LdapContext decorator because its
+ //the "closest" one to the actual class.
+ Set<Object> decorators =
+ picker.getDecoratorsForMethod(TEST_OBJECT_CLASS3.getMethod("getSchemaClassDefinition",
+ new Class<?>[] { String.class }));
+ assertEquals(decorators.size(), 1,
+ "Expected exactly one decorator for method 'getSchemaClassDefinition(String)' from LdapContext class");
+ assertEquals(decorators.iterator().next().getClass().getInterfaces()[0], LdapContext.class);
+ }
+
+ private static Class<?> createProxyClass(Class<?>... ifaces) {
+ return Proxy.getProxyClass(DecoratorPickerTest.class.getClassLoader(), ifaces);
+ }
+
+ private static DecoratorPicker<Object, Object> createTestPicker() {
+ DecoratorPicker<Object, Object> picker = new DecoratorPicker<Object, Object>();
+
+ DecoratorSetContext<Object, Object> decSet = new DecoratorSetContext<Object, Object>() {
+
+ public Object instantiate(Class<? extends Object> decoratorClass) throws Exception {
+ Constructor<? extends Object> ctor = decoratorClass.getConstructor(InvocationHandler.class);
+ return ctor.newInstance(DUMMY_HANDLER);
+ }
+
+ public void init(Object decorator, Object object) throws Exception {
+ }
+
+ @SuppressWarnings("unchecked")
+ public Set<Class<? extends Object>> getSupportedInterfaces() {
+ return new HashSet<Class<? extends Object>>(Arrays.asList(Context.class, EventContext.class,
+ LdapContext.class, DirContext.class));
+ }
+
+ @SuppressWarnings("unchecked")
+ public Set<Class<? extends Object>> getDecoratorClasses() {
+ return new HashSet<Class<? extends Object>>(Arrays.asList(DECORATOR_CLASS1, DECORATOR_CLASS2, DECORATOR_CLASS3, DECORATOR_CLASS4));
+ }
+ };
+
+ picker.setContext(decSet);
+
+ return picker;
+ }
+}
diff --git a/modules/enterprise/server/container/src/main/resources/jbossas/server/default/conf/jboss-service.xml b/modules/enterprise/server/container/src/main/resources/jbossas/server/default/conf/jboss-service.xml
index 859b552..f231f15 100644
--- a/modules/enterprise/server/container/src/main/resources/jbossas/server/default/conf/jboss-service.xml
+++ b/modules/enterprise/server/container/src/main/resources/jbossas/server/default/conf/jboss-service.xml
@@ -225,6 +225,13 @@
<!-- JNDI -->
<!-- ==================================================================== -->
+ <!-- This installs a custom initial context factory builder into the JVM
+ that will ensure that all the default InitialContexts are going to check
+ for the permission to access the RHQ internals. -->
+ <mbean code="org.rhq.jndi.mbean.AccessCheckingInitialContextFactoryBuilderInstaller"
+ name="org.rhq:service=AccessCheckingInitialContextFactoryBuilderInstaller">
+ </mbean>
+
<!-- A simple mbean wrapper around the jndi Naming object. This
only handles an in memory instance. The NamingService uses this
as the JNDI store and exposes it remotely.
diff --git a/modules/enterprise/server/itests/pom.xml b/modules/enterprise/server/itests/pom.xml
index 817c02c..b95ab65 100644
--- a/modules/enterprise/server/itests/pom.xml
+++ b/modules/enterprise/server/itests/pom.xml
@@ -56,6 +56,13 @@
<dependency>
<groupId>org.rhq</groupId>
+ <artifactId>rhq-container-lib</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server</artifactId>
<version>${project.version}</version>
<scope>test</scope>
@@ -78,6 +85,32 @@
</dependency>
<dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-script-bindings</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-enterprise-server</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-server-client-api</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-enterprise-server</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
<groupId>org.rhq.helpers</groupId>
<artifactId>perftest-support</artifactId>
<version>${project.version}</version>
@@ -258,6 +291,23 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <!-- Everything but the web service tests, this is the standard test execution -->
+ <configuration>
+ <excludedGroups>${rhq.testng.excludedGroups}</excludedGroups>
+ <groups>${rhq.testng.includedGroups}</groups>
+ <systemPropertyVariables>
+ <embeddedDeployment>true</embeddedDeployment>
+ <deploymentDirectory>target/test-classes</deploymentDirectory>
+ </systemPropertyVariables>
+ <argLine>-Djava.security.manager -Djava.security.policy==${basedir}/target/test-classes/security.policy</argLine>
+ <additionalClasspathElements>
+ <!-- The below is required for tests to run against Oracle. -->
+ <additionalClasspathElement>${settings.localRepository}/com/oracle/ojdbc5/${ojdbc5.version}/ojdbc5-${ojdbc5.version}.jar</additionalClasspathElement>
+ </additionalClasspathElements>
+ </configuration>
+ </plugin>
</plugins>
</build>
</project>
diff --git a/modules/enterprise/server/itests/src/test/java/org/rhq/enterprise/client/security/test/JndiAccessTest.java b/modules/enterprise/server/itests/src/test/java/org/rhq/enterprise/client/security/test/JndiAccessTest.java
new file mode 100644
index 0000000..af90701
--- /dev/null
+++ b/modules/enterprise/server/itests/src/test/java/org/rhq/enterprise/client/security/test/JndiAccessTest.java
@@ -0,0 +1,196 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2011 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.client.security.test;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.SerializablePermission;
+import java.security.PermissionCollection;
+import java.util.Collections;
+
+import javax.script.ScriptEngine;
+import javax.script.ScriptException;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import org.rhq.bindings.SandboxedScriptEngine;
+import org.rhq.bindings.ScriptEngineFactory;
+import org.rhq.bindings.StandardBindings;
+import org.rhq.bindings.StandardScriptPermissions;
+import org.rhq.bindings.util.PackageFinder;
+import org.rhq.core.domain.auth.Subject;
+import org.rhq.enterprise.client.LocalClient;
+import org.rhq.enterprise.server.test.AbstractEJB3Test;
+import org.rhq.enterprise.server.util.LookupUtil;
+import org.rhq.jndi.AllowRhqServerInternalsAccessPermission;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+@Test
+public class JndiAccessTest extends AbstractEJB3Test {
+
+ public void testEjbsAccessibleThroughPrivilegedCode() {
+ LookupUtil.getSubjectManager().getOverlord();
+ }
+
+ public void testEjbsAccessibleThroughLocalClient() throws ScriptException, IOException {
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+
+ ScriptEngine engine = getEngine(overlord);
+
+ engine.eval("SubjectManager.getSubjectByName('rhqadmin');");
+ }
+
+ public void testLocalEjbsInaccessibleThroughJndiLookup() throws ScriptException, IOException {
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+
+ ScriptEngine engine = getEngine(overlord);
+
+ try {
+ engine.eval(""
+ + "var ctx = new javax.naming.InitialContext();\n"
+ + "var subjectManager = ctx.lookup('SubjectManagerBean/local');\n"
+ + "subjectManager.getOverlord();");
+
+ Assert.fail("The script shouldn't have been able to call local SLSB method.");
+ } catch (ScriptException e) {
+ checkIsDesiredSecurityException(e);
+ }
+ }
+
+ public void testRemoteEjbsInaccessibleThroughJndiLookup() throws ScriptException, IOException {
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+
+ ScriptEngine engine = getEngine(overlord);
+
+ try {
+ engine.eval(""
+ + "var ctx = new javax.naming.InitialContext();\n"
+ + "var subjectManager = ctx.lookup('SubjectManagerBean/remote');\n"
+ + "subjectManager.getSubjectByName('rhqadmin');");
+
+ Assert.fail("The script shouldn't have been able to call remote SLSB method directly.");
+ } catch (ScriptException e) {
+ checkIsDesiredSecurityException(e);
+ }
+ }
+
+ public void testScriptCantUseSessionManagerMethods() throws Exception {
+
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+
+ final ScriptEngine engine = getEngine(overlord);
+
+ class G {
+ private String sessionManager = ""
+ + "org.rhq.enterprise.server.auth.SessionManager.getInstance().";
+
+ public void testInvoke(String methodCall) throws ScriptException {
+ String code = sessionManager + methodCall;
+
+ try {
+ engine.eval(code);
+ Assert.fail("The script shouldn't have been able to call a method on a SessionManager: " + methodCall);
+ } catch (ScriptException e) {
+ checkIsDesiredSecurityException(e);
+ }
+ }
+ };
+ G manager = new G();
+
+ manager.testInvoke("getlastAccess(0);");
+ manager.testInvoke("getOverlord()");
+ manager.testInvoke("getSubject(2);");
+ manager.testInvoke("invalidate(0);");
+ manager.testInvoke("invalidate(\"\");");
+ manager.testInvoke("put(new org.rhq.core.domain.auth.Subject());");
+ manager.testInvoke("put(new org.rhq.core.domain.auth.Subject(), 0);");
+ }
+
+ public void testScriptCantObtainRawJDBCConnectionsWithoutCredentials() throws Exception {
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+
+ ScriptEngine engine = getEngine(overlord);
+
+ try {
+ engine.eval(""
+ + "var ctx = new javax.naming.InitialContext();\n"
+ + "var datasource = ctx.lookup('java:/RHQDS');\n"
+ + "con = datasource.getConnection();");
+
+ Assert.fail("The script shouldn't have been able to obtain the datasource from the JNDI.");
+ } catch (ScriptException e) {
+ checkIsDesiredSecurityException(e);
+ }
+ }
+
+ public void testScriptCantUseEntityManager() throws Exception {
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+
+ ScriptEngine engine = getEngine(overlord);
+
+ try {
+ engine.eval(""
+ + "var ctx = new javax.naming.InitialContext();\n"
+ + "var entityManagerFactory = ctx.lookup('java:/RHQEntityManagerFactory');\n"
+ + "var entityManager = entityManagerFactory.createEntityManager();\n"
+ + "entityManager.find(java.lang.Class.forName('org.rhq.core.domain.resource.Resource'), java.lang.Integer.valueOf('10001'));");
+
+ Assert.fail("The script shouldn't have been able to use the EntityManager.");
+ } catch (ScriptException e) {
+ checkIsDesiredSecurityException(e);
+ }
+
+ //try harder with manually specifying the initial context factory
+ try {
+ engine.eval(""
+ + "var env = new java.util.Hashtable();"
+ + "env.put('java.naming.factory.initial', 'org.jnp.interfaces.LocalOnlyContextFactory');"
+ + "env.put('java.naming.factory.url.pkgs', 'org.jboss.naming:org.jnp.interfaces');"
+ + "var ctx = new javax.naming.InitialContext(env);\n"
+ + "var entityManagerFactory = ctx.lookup('java:/RHQEntityManagerFactory');\n"
+ + "var entityManager = entityManagerFactory.createEntityManager();\n"
+ + "entityManager.find(java.lang.Class.forName('org.rhq.core.domain.resource.Resource'), java.lang.Integer.valueOf('10001'));");
+
+ Assert.fail("The script shouldn't have been able to use the EntityManager even using custom initial context factory.");
+ } catch (ScriptException e) {
+ checkIsDesiredSecurityException(e);
+ }
+ }
+
+ private ScriptEngine getEngine(Subject subject) throws ScriptException, IOException {
+ StandardBindings bindings = new StandardBindings(new PrintWriter(System.out), new LocalClient(subject));
+
+ PermissionCollection perms = new StandardScriptPermissions();
+
+ return ScriptEngineFactory.getSecuredScriptEngine("JavaScript", new PackageFinder(Collections.<File>emptyList()), bindings, perms);
+ }
+
+ private static void checkIsDesiredSecurityException(ScriptException e) {
+ String message = e.getMessage();
+ String permissionTrace = AllowRhqServerInternalsAccessPermission.class.getName();
+
+ Assert.assertTrue(message.contains(permissionTrace), "The script exception doesn't seem to be caused by the AllowRhqServerInternalsAccessPermission security exception. " + message);
+ }
+}
diff --git a/modules/enterprise/server/itests/src/test/resources/embedded-jboss-beans.xml b/modules/enterprise/server/itests/src/test/resources/embedded-jboss-beans.xml
index 05edefa..85e2fb3 100644
--- a/modules/enterprise/server/itests/src/test/resources/embedded-jboss-beans.xml
+++ b/modules/enterprise/server/itests/src/test/resources/embedded-jboss-beans.xml
@@ -4,6 +4,14 @@
xsi:schemaLocation="urn:jboss:bean-deployer:2.0 bean-deployer_2_0.xsd"
xmlns="urn:jboss:bean-deployer:2.0">
+ <!-- This installs a custom initial context factory builder into the JVM
+ that will ensure that all the default InitialContexts are going to check
+ for the permission to access the RHQ internals. -->
+ <bean class="org.rhq.jndi.mbean.AccessCheckingInitialContextFactoryBuilderInstaller"
+ name="AccessCheckingInitialContextFactoryBuilderInstaller">
+ </bean>
+
+
<bean name="Naming" class="org.jnp.server.SingletonNamingServer"/>
<bean name="InitialContextProperties" class="java.util.Hashtable">
@@ -20,7 +28,7 @@
</entry>
</map>
</parameter>
- </constructor>
+ </constructor>
</bean>
<bean name="java:comp/Initializer" class="org.jboss.ejb3.embedded.JavaCompInitializer">
diff --git a/modules/enterprise/server/itests/src/test/resources/security.policy b/modules/enterprise/server/itests/src/test/resources/security.policy
new file mode 100644
index 0000000..8860b47
--- /dev/null
+++ b/modules/enterprise/server/itests/src/test/resources/security.policy
@@ -0,0 +1,10 @@
+// We need the SecurityManager installed to enable sandboxing of CLI scripts
+// but we don't define any other security measures on the RHQ server itself.
+//
+// Granting all permissions allows us to run the RHQ server as if no security
+// manager was in place (which is assumed by default by JBoss AS) but be able
+// to use it when we need it for our own purposes.
+
+grant {
+ permission java.security.AllPermission;
+};
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 9a9ba84..8830f0e 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -84,6 +84,13 @@
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rhq-container-lib</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+
<dependency>
<groupId>com.googlecode.java-diff-utils</groupId>
<artifactId>diffutils</artifactId>
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java
index 39b6076..ecf2f6f 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java
@@ -26,29 +26,41 @@ import java.util.Random;
import org.rhq.core.domain.auth.Subject;
import org.rhq.enterprise.server.util.LookupUtil;
+import org.rhq.jndi.AllowRhqServerInternalsAccessPermission;
/**
* This is the JON Server's own session ID generator. It is outside any container-provided session mechanism. Its sole
* purpose is to provide session IDs to logged in {@link Subject}s. It will timeout those sessions regardless of any
* container-provided session-timeout mechanism.
- *
+ * <p>
+ * Because this is a very security-sensitive class, any public method requires the caller to
+ * have the {@link AllowEjbAccessPermission} as any other calls to the EJB layer. This is so that the
+ * malicious users can't trick the EJB layer into thinking that some users are logged in or log out other
+ * users.
+ * <p>
+ * Also, for security reasons, this class is final so that malicious code can't subclass it and modify its
+ * behavior.
+ *
* <p>This object is a {@link #getInstance() singleton}.</p>
*/
-public class SessionManager {
+public final class SessionManager {
+
+ private static final AllowRhqServerInternalsAccessPermission ACCESS_PERMISSION = new AllowRhqServerInternalsAccessPermission();
+
/**
* Our source for random session IDs.
*/
- private static Random _random = new Random();
+ private static final Random _random = new Random();
/**
* Our session cache that is keyed on the session ID.
*/
- private static Map<Integer, AuthSession> _cache = new HashMap<Integer, AuthSession>();
+ private static final Map<Integer, AuthSession> _cache = new HashMap<Integer, AuthSession>();
/**
* The singleton instance
*/
- private static SessionManager _manager = new SessionManager();
+ private static final SessionManager _manager = new SessionManager();
/**
* The timeout for all user sessions.
@@ -78,7 +90,7 @@ public class SessionManager {
/**
* Return the singleton object.
- *
+ *
* @return the {@link SessionManager}
*/
public static SessionManager getInstance() {
@@ -95,6 +107,7 @@ public class SessionManager {
* sessionId will be assigned.
*/
public Subject put(Subject subject) {
+ checkPermission();
return put(subject, DEFAULT_TIMEOUT);
}
@@ -108,6 +121,7 @@ public class SessionManager {
* that Subject is overlord). The sessionId will be assigned.
*/
public synchronized Subject put(Subject subject, long timeout) {
+ checkPermission();
Integer key;
do {
@@ -141,6 +155,7 @@ public class SessionManager {
* @throws SessionTimeoutException
*/
public synchronized Subject getSubject(int sessionId) throws SessionNotFoundException, SessionTimeoutException {
+ checkPermission();
Integer id = new Integer(sessionId);
AuthSession session = _cache.get(id);
@@ -162,6 +177,7 @@ public class SessionManager {
* @param sessionId session id to invalidate
*/
public synchronized void invalidate(int sessionId) {
+ checkPermission();
_cache.remove(new Integer(sessionId));
// while we are here, let's go through the entire session cache and remove expired sessions
@@ -187,6 +203,7 @@ public class SessionManager {
* @param username username for the sessions to be invalidated
*/
public synchronized void invalidate(String username) {
+ checkPermission();
List<Integer> doomedSessionIds = new ArrayList<Integer>(_cache.size());
for (AuthSession s : _cache.values()) {
if (username.equals(s.getSubject(false).getName())) {
@@ -201,6 +218,7 @@ public class SessionManager {
}
public long getlastAccess(int sessionId) {
+ checkPermission();
AuthSession session = _cache.get(sessionId);
if (session == null) {
return -1;
@@ -209,6 +227,7 @@ public class SessionManager {
}
public Subject getOverlord() {
+ checkPermission();
if (overlordSubject == null) {
overlordSubject = LookupUtil.getSubjectManager().getSubjectById(OVERLORD_SUBJECT_ID);
@@ -256,4 +275,9 @@ public class SessionManager {
return copy;
}
+
+ private static void checkPermission() {
+ SecurityManager sm = System.getSecurityManager();
+ if (sm != null) sm.checkPermission(ACCESS_PERMISSION);
+ }
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/test/resources/embedded-jboss-beans.xml b/modules/enterprise/server/jar/src/test/resources/embedded-jboss-beans.xml
index 05edefa..85e2fb3 100644
--- a/modules/enterprise/server/jar/src/test/resources/embedded-jboss-beans.xml
+++ b/modules/enterprise/server/jar/src/test/resources/embedded-jboss-beans.xml
@@ -4,6 +4,14 @@
xsi:schemaLocation="urn:jboss:bean-deployer:2.0 bean-deployer_2_0.xsd"
xmlns="urn:jboss:bean-deployer:2.0">
+ <!-- This installs a custom initial context factory builder into the JVM
+ that will ensure that all the default InitialContexts are going to check
+ for the permission to access the RHQ internals. -->
+ <bean class="org.rhq.jndi.mbean.AccessCheckingInitialContextFactoryBuilderInstaller"
+ name="AccessCheckingInitialContextFactoryBuilderInstaller">
+ </bean>
+
+
<bean name="Naming" class="org.jnp.server.SingletonNamingServer"/>
<bean name="InitialContextProperties" class="java.util.Hashtable">
@@ -20,7 +28,7 @@
</entry>
</map>
</parameter>
- </constructor>
+ </constructor>
</bean>
<bean name="java:comp/Initializer" class="org.jboss.ejb3.embedded.JavaCompInitializer">
diff --git a/modules/enterprise/server/plugins/alert-cli/src/main/java/org/rhq/enterprise/server/plugins/alertCli/CliSender.java b/modules/enterprise/server/plugins/alert-cli/src/main/java/org/rhq/enterprise/server/plugins/alertCli/CliSender.java
index 3aab6a2..43090c7 100644
--- a/modules/enterprise/server/plugins/alert-cli/src/main/java/org/rhq/enterprise/server/plugins/alertCli/CliSender.java
+++ b/modules/enterprise/server/plugins/alert-cli/src/main/java/org/rhq/enterprise/server/plugins/alertCli/CliSender.java
@@ -127,8 +127,6 @@ public class CliSender extends AlertSender<CliComponent> {
engine = getScriptEngine(alert, scriptOut, config);
- final SandboxedScriptEngine sandbox = new SandboxedScriptEngine(engine, new StandardScriptPermissions());
-
InputStream packageBits = getPackageBits(config.packageId, config.repoId);
reader = new BufferedReader(new InputStreamReader(packageBits));
@@ -137,10 +135,11 @@ public class CliSender extends AlertSender<CliComponent> {
final ExceptionHolder exceptionHolder = new ExceptionHolder();
+ final ScriptEngine e = engine;
Thread scriptRunner = new Thread(new Runnable() {
public void run() {
try {
- sandbox.eval(rdr);
+ e.eval(rdr);
} catch (ScriptException e) {
exceptionHolder.scriptException = e;
}
@@ -414,8 +413,8 @@ public class CliSender extends AlertSender<CliComponent> {
ScriptEngine engine = SCRIPT_ENGINES.poll();
if (engine == null) {
- engine = ScriptEngineFactory.getScriptEngine(ENGINE_NAME, new PackageFinder(Collections
- .<File> emptyList()), bindings);
+ engine = ScriptEngineFactory.getSecuredScriptEngine(ENGINE_NAME, new PackageFinder(Collections
+ .<File> emptyList()), bindings, new StandardScriptPermissions());
} else {
ScriptEngineFactory.injectStandardBindings(engine, bindings, true);
}
diff --git a/modules/enterprise/server/pom.xml b/modules/enterprise/server/pom.xml
index 9c43783..f049b3a 100644
--- a/modules/enterprise/server/pom.xml
+++ b/modules/enterprise/server/pom.xml
@@ -34,6 +34,7 @@
</activation>
<modules>
<module>xml-schemas</module>
+ <module>container-lib</module>
<module>jar</module>
<module>sars</module>
<module>plugins</module>
@@ -53,6 +54,7 @@
</activation>
<modules>
<module>xml-schemas</module>
+ <module>container-lib</module>
<module>jar</module>
<module>safe-invoker</module>
</modules>
diff --git a/modules/integration-tests/jndi-access/jndi-access-test/pom.xml b/modules/integration-tests/jndi-access/jndi-access-test/pom.xml
new file mode 100644
index 0000000..1991e0e
--- /dev/null
+++ b/modules/integration-tests/jndi-access/jndi-access-test/pom.xml
@@ -0,0 +1,315 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>jndi-access-test-parent</artifactId>
+ <groupId>org.rhq</groupId>
+ <version>4.3.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.rhq</groupId>
+ <artifactId>jndi-access-test</artifactId>
+ <packaging>jar</packaging>
+
+ <name>JNDI access integration test</name>
+ <description>Tests for local and remote JNDI access from within serverside scripts.</description>
+
+ <properties>
+ <rhq.server.datasource>java:/RHQDS</rhq.server.datasource>
+ <rhq.server.ds-mapping>PostgreSQL</rhq.server.ds-mapping>
+ <jboss-embeddable-ejb3.version>1.0.0.Alpha9</jboss-embeddable-ejb3.version>
+ <jnp.port>54987</jnp.port>
+ <jnp.rmiPort>54988</jnp.rmiPort>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <!--================ Test Deps ================ -->
+
+ <!-- Note, the test deps are intentionally placed above the other
+ scoped deps because of classpath reasons. Maven orders the [test] classpath
+ in the order listed in the pom. We specifically need the embeddable-ejb3
+ jar above the standard ejb3 jars because we need the embeddble packages loaded
+ when testing. -->
+
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>test-utils</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-core-domain</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-enterprise-server</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-enterprise-server</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rhq-core-client-api</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rhq-container-lib</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rhq-server-client-api</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>jndi-access-remote-server</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>jboss.jboss-embeddable-ejb3</groupId>
+ <artifactId>jboss-ejb3-all</artifactId>
+ <version>${jboss-embeddable-ejb3.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- NOTE: The remaining test deps correspond to the classes contained
+ in hibernate-all.jar and thirdparty-all.jar. -->
+
+ <dependency>
+ <groupId>javassist</groupId>
+ <artifactId>javassist</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- needed by embedded ejb container -->
+ <dependency>
+ <groupId>trove</groupId>
+ <artifactId>trove</artifactId>
+ <version>1.0.2</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- needed by embedded ejb container -->
+ <dependency>
+ <groupId>xerces</groupId>
+ <artifactId>xercesImpl</artifactId>
+ <version>2.8.1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- 3rd Party Deps -->
+
+ <!-- required by RHQ server classes, as well as EJB3 Embedded -->
+ <dependency>
+ <groupId>dom4j</groupId>
+ <artifactId>dom4j</artifactId>
+ <version>1.6.1-jboss</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>hibernate</groupId>
+ <artifactId>hibernate3</artifactId>
+ <!-- NOTE: The version is defined in the root POM's dependencyManagement
+ section. -->
+ <scope>provided</scope> <!-- by JBossAS -->
+ </dependency>
+
+ <dependency>
+ <groupId>hibernate-annotations</groupId>
+ <artifactId>hibernate-annotations</artifactId>
+ <!-- NOTE: The version is defined in the root POM's dependencyManagement
+ section. -->
+ <scope>provided</scope> <!-- by JBossAS -->
+ </dependency>
+
+ <dependency>
+ <groupId>hibernate-entitymanager</groupId>
+ <artifactId>hibernate-entitymanager</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.mail</groupId>
+ <artifactId>mail</artifactId>
+ <version>1.4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.persistence</groupId>
+ <artifactId>persistence-api</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope> <!-- by JBossAS -->
+ </dependency>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-annotations-ejb3</artifactId>
+ <!-- NOTE: The version is defined in the root POM's dependencyManagement
+ section. -->
+ <scope>provided</scope> <!-- by JBossAS -->
+ </dependency>
+
+ <!-- includes the org.jboss.ejb3.StrictMaxPool class, which is needed
+ by the PoolClass annotation used on some of our SLSB's -->
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-ejb3</artifactId>
+ <!-- NOTE: The version is defined in the root POM's dependencyManagement
+ section. -->
+ <scope>provided</scope> <!-- by JBossAS -->
+ </dependency>
+
+ <!-- for the transaction interrupt EJB3 interceptor -->
+ <dependency>
+ <groupId>org.jboss.transaction</groupId>
+ <artifactId>jboss-jta</artifactId>
+ <!-- NOTE: The version is defined in the root POM's dependencyManagement
+ section. -->
+ <scope>provided</scope> <!-- by JBossAS -->
+ </dependency>
+
+ <dependency>
+ <groupId>org.opensymphony.quartz</groupId>
+ <artifactId>quartz</artifactId>
+ <!-- NOTE: The version is defined in the root POM's dependencyManagement
+ section. -->
+ <scope>provided</scope> <!-- by JBossAS itself, which the container build has packaged with 1.6.5 -->
+ </dependency>
+
+ <dependency>
+ <groupId>org.opensymphony.quartz</groupId>
+ <artifactId>quartz-oracle</artifactId>
+ <!-- NOTE: The version is defined in the root POM's dependencyManagement
+ section. -->
+ <scope>provided</scope> <!-- by JBossAS itself, which the container build has packaged with 1.6.5 -->
+ </dependency>
+
+ <!-- This is needed cglib which is in turn needed by hibernate -->
+ <dependency>
+ <groupId>org.easymock</groupId>
+ <artifactId>easymockclassextension</artifactId>
+ <version>2.2</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.freemarker</groupId>
+ <artifactId>freemarker</artifactId>
+ <version>2.3.18</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>resteasy-jaxrs</artifactId>
+ <version>${resteasy.version}</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <testResources>
+ <testResource>
+ <directory>src/test/resources</directory>
+ <filtering>true</filtering>
+ </testResource>
+ </testResources>
+
+ <plugins>
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <!-- in order to get JMS to work properly in embedded
+ test container, extract jms-rs.rar classes -->
+ <execution>
+ <id>Extract JMS classes from RAR needed for JMS tests</id>
+ <phase>process-classes</phase>
+ <configuration>
+ <tasks>
+ <unzip src="src/test/resources/jms-ra.rar"
+ dest="target">
+ <patternset>
+ <include name="jms-ra.jar" />
+ </patternset>
+ </unzip>
+ <unzip src="target/jms-ra.jar"
+ dest="target/test-classes">
+ <patternset>
+ <include name="org/**" />
+ </patternset>
+ </unzip>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <!-- Everything but the web service tests, this is the standard
+ test execution -->
+ <configuration>
+ <excludedGroups>${rhq.testng.excludedGroups}</excludedGroups>
+ <groups>${rhq.testng.includedGroups}</groups>
+ <systemPropertyVariables>
+ <embeddedDeployment>true</embeddedDeployment>
+ <deploymentDirectory>target/test-classes</deploymentDirectory>
+ <hibernate.dialect>${rhq.test.ds.hibernate-dialect}</hibernate.dialect>
+ <clean.db>${clean.db}</clean.db>
+ <test.server.jar.path>${settings.localRepository}/org/rhq/jndi-access-remote-server/${project.version}/jndi-access-remote-server-${project.version}.jar</test.server.jar.path>
+ <jnp.port>${jnp.port}</jnp.port>
+ <jnp.rmiPort>${jnp.rmiPort}</jnp.rmiPort>
+ </systemPropertyVariables>
+ <argLine>-Djava.security.manager -Djava.security.policy==target/test-classes/security.policy</argLine>
+ <additionalClasspathElements>
+ <!-- The below is required for tests to run against
+ Oracle. -->
+ <additionalClasspathElement>${settings.localRepository}/com/oracle/ojdbc5/${ojdbc5.version}/ojdbc5-${ojdbc5.version}.jar</additionalClasspathElement>
+ </additionalClasspathElements>
+ </configuration>
+ </plugin>
+
+ </plugins>
+ </build>
+
+</project>
diff --git a/modules/integration-tests/jndi-access/jndi-access-test/src/test/java/org/rhq/jndi/test/JndiAccessTest.java b/modules/integration-tests/jndi-access/jndi-access-test/src/test/java/org/rhq/jndi/test/JndiAccessTest.java
new file mode 100644
index 0000000..56ad048
--- /dev/null
+++ b/modules/integration-tests/jndi-access/jndi-access-test/src/test/java/org/rhq/jndi/test/JndiAccessTest.java
@@ -0,0 +1,190 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.jndi.test;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.util.Collections;
+import java.util.Properties;
+
+import javax.naming.InitialContext;
+import javax.script.ScriptEngine;
+import javax.script.ScriptException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.testng.Assert;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
+
+import org.rhq.bindings.ScriptEngineFactory;
+import org.rhq.bindings.StandardBindings;
+import org.rhq.bindings.StandardScriptPermissions;
+import org.rhq.bindings.util.PackageFinder;
+import org.rhq.core.domain.auth.Subject;
+import org.rhq.enterprise.client.LocalClient;
+import org.rhq.enterprise.server.test.AbstractEJB3Test;
+import org.rhq.enterprise.server.util.LookupUtil;
+import org.rhq.jndi.AllowRhqServerInternalsAccessPermission;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+@Test
+public class JndiAccessTest extends AbstractEJB3Test {
+ private static final Log JNP_SERVER_LOG = LogFactory.getLog("Test JNP Server");
+
+ private Process testServerProcess;
+ private Thread testServerStdErrReader;
+ private Thread testServerStdOutReader;
+
+ @BeforeClass
+ @Parameters({"test.server.jar.path", "jnp.port", "jnp.rmiPort"})
+ public void startTestJnpServer(String testServerJar, int jnpPort, int rmiPort) throws Exception {
+ ProcessBuilder bld = new ProcessBuilder("java", "-Djnp.port=" + jnpPort, "-Djnp.rmiPort=" + rmiPort, "-jar", testServerJar);
+
+ testServerProcess = bld.start();
+
+ testServerStdErrReader = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ BufferedReader rdr = new BufferedReader(new InputStreamReader(testServerProcess.getErrorStream()));
+ try {
+ String line;
+ while((line = rdr.readLine()) != null) {
+ JNP_SERVER_LOG.warn(line);
+ }
+ } catch (IOException e) {
+ JNP_SERVER_LOG.error("Reading test JNP server error output failed.", e);
+ } finally {
+ try {
+ rdr.close();
+ } catch (IOException e) {
+ JNP_SERVER_LOG.error("Failed to close the test server error stream.", e);
+ }
+ }
+ }
+ });
+ testServerStdErrReader.start();
+
+ testServerStdOutReader = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ BufferedReader rdr = new BufferedReader(new InputStreamReader(testServerProcess.getInputStream()));
+ try {
+ String line;
+ while((line = rdr.readLine()) != null) {
+ JNP_SERVER_LOG.debug(line);
+ }
+ } catch (IOException e) {
+ JNP_SERVER_LOG.error("Reading test JNP server standard output failed.", e);
+ } finally {
+ try {
+ rdr.close();
+ } catch (IOException e) {
+ JNP_SERVER_LOG.error("Failed to close the test server standard output stream.", e);
+ }
+ }
+ }
+ });
+ testServerStdOutReader.start();
+
+ //give the JNP server some time to start up
+ Thread.sleep(5000);
+ }
+
+ @AfterClass
+ public void stopTestJnpServer() throws Exception {
+ testServerProcess.destroy();
+ testServerStdErrReader.join();
+ testServerStdOutReader.join();
+ }
+
+ @Parameters("jnp.port")
+ public void testRemoteConnectionWorkingFromJava(int jnpPort) throws Exception {
+ Properties env = new Properties();
+ env.put("java.naming.factory.initial", "org.jboss.naming.NamingContextFactory");
+ env.put("java.naming.provider.url", "jnp://localhost:" + jnpPort);
+ InitialContext ctx = new InitialContext(env);
+ Object kachny = ctx.lookup("kachny");
+
+ assert kachny != null;
+ }
+
+ public void testLocalJNDILookupFailsFromScripts() throws Exception {
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+
+ ScriptEngine engine = getEngine(overlord);
+
+ try {
+ engine.eval(""
+ + "var ctx = new javax.naming.InitialContext();\n"
+ + "var entityManagerFactory = ctx.lookup('java:/RHQEntityManagerFactory');\n"
+ + "var entityManager = entityManagerFactory.createEntityManager();\n"
+ + "entityManager.find(java.lang.Class.forName('org.rhq.core.domain.resource.Resource'), java.lang.Integer.valueOf('10001'));");
+
+ Assert.fail("The script shouldn't have been able to use the EntityManager.");
+ } catch (ScriptException e) {
+ checkIsDesiredSecurityException(e);
+ }
+ }
+
+ @Parameters("jnp.port")
+ public void testRemoteJNDILookupWorksFromScripts(int jnpPort) throws Exception {
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+
+ ScriptEngine engine = getEngine(overlord);
+
+ try {
+ engine.eval(""
+ + "var env = new java.util.Hashtable();"
+ + "env.put('java.naming.factory.initial', 'org.jboss.naming.NamingContextFactory');"
+ + "env.put('java.naming.provider.url', 'jnp://localhost:" + jnpPort + "');"
+ + "var ctx = new javax.naming.InitialContext(env);\n"
+ + "var kachny = ctx.lookup('kachny');\n"
+ + "assertNotNull(kachny);\n");
+ } catch (ScriptException e) {
+ Assert.fail("The script should have been able to access a remote JNDI server.", e);
+ }
+ }
+
+ private ScriptEngine getEngine(Subject subject) throws ScriptException, IOException {
+ StandardBindings bindings = new StandardBindings(new PrintWriter(System.out), new LocalClient(subject));
+ ScriptEngine engine = ScriptEngineFactory.getScriptEngine("JavaScript", new PackageFinder(Collections.<File>emptyList()), bindings);
+
+ PermissionCollection perms = new StandardScriptPermissions();
+
+ return new SandboxedScriptEngine(engine, perms);
+ }
+
+ private static void checkIsDesiredSecurityException(ScriptException e) {
+ String message = e.getMessage();
+ String permissionTrace = AllowRhqServerInternalsAccessPermission.class.getName();
+
+ Assert.assertTrue(message.contains(permissionTrace), "The script exception doesn't seem to be caused by the AllowRhqServerInternalsAccessPermission security exception. " + message);
+ }
+}
diff --git a/modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/hibernate.properties b/modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/hibernate.properties
new file mode 100644
index 0000000..1951b84
--- /dev/null
+++ b/modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/hibernate.properties
@@ -0,0 +1,26 @@
+# FOR SOME STRANGE REASON, THIS FILE NEEDS TO BE HERE FOR THE HIBERNATE TO CORRECTLY
+# INITIALIZE. I DON'T KNOW WHY THE STANDARD default.persistence.properties FILE DOESN'T
+# WORK IN THIS MODULE.
+
+hibernate.transaction.manager_lookup_class=org.hibernate.transaction.JBossTransactionManagerLookup
+#hibernate.connection.release_mode=after_statement
+#hibernate.transaction.flush_before_completion=false
+#hibernate.transaction.auto_close_session=false
+#hibernate.query.factory_class=org.hibernate.hql.ast.ASTQueryTranslatorFactory
+#hibernate.hbm2ddl.auto=create-drop
+#hibernate.hbm2ddl.auto=create
+hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider
+# Clustered cache with TreeCache
+#hibernate.cache.provider_class=org.jboss.ejb3.entity.TreeCacheProviderHook
+#hibernate.treecache.mbean.object_name=jboss.cache:service=EJB3EntityTreeCache
+#hibernate.dialect=org.hibernate.dialect.HSQLDialect
+hibernate.jndi.java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+hibernate.jndi.java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
+hibernate.bytecode.use_reflection_optimizer=false
+# I don't think this is honored, but EJB3Deployer uses it
+hibernate.bytecode.provider=javassist
+hibernate.jdbc.use_streams_for_binary=true
+hibernate.show_sql=false
+hibernate.format_sql=true
+hibernate.default_batch_fetch_size=16
+hibernate.jdbc.batch_size=20
diff --git a/modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/log4j.xml b/modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/log4j.xml
new file mode 100644
index 0000000..ec09ed7
--- /dev/null
+++ b/modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/log4j.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- Log4j Configuration -->
+<!-- -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml 39945 2006-01-12 02:44:07Z bill $ -->
+
+<!--
+ | For more configuration infromation and examples see the Jakarta Log4j
+ | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true">
+
+ <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Target" value="System.out"/>
+ <param name="Threshold" value="WARN"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Messagen -->
+ <!--
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+ -->
+ <param name="ConversionPattern" value="%-5p %d{dd-MM HH:mm:ss,SSS} [%c] (%F:%M:%L) -%m%n"/>
+ </layout>
+ </appender>
+
+ <appender name="FILE" class="org.apache.log4j.RollingFileAppender">
+ <param name="File" value="target/server-jar-test.log"/>
+ <param name="Threshold" value="WARN"/>
+ <param name="Append" value="false"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Messagen -->
+ <!--
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+ -->
+ <param name="ConversionPattern" value="%-5p %d{dd-MM HH:mm:ss,SSS} [%c] (%F:%M:%L) -%m%n"/>
+ </layout>
+ </appender>
+
+ <category name="Test JNP Server">
+ <priority value="DEBUG"/>
+ </category>
+
+ <!-- Hibernate logs WARNINGS frequent from this class, in test envs. -->
+ <category name="org.hibernate.hql.ast.QueryTranslatorImpl">
+ <priority value="ERROR"/>
+ </category>
+
+ <!-- hides the TIMER SERVICE IS NOT INSTALLED warning - we know embedded EJB3 container doesn't support timers -->
+ <category name="org.jboss.ejb3.timerservice.jboss.JBossTimerServiceFactory">
+ <priority value="ERROR"/>
+ </category>
+
+ <!-- hides the shutdown warnings - for some reason, the container spits out some warnings when shutting down -->
+ <category name="org.jboss.kernel.plugins.dependency.StartStopLifecycleAction">
+ <priority value="ERROR"/>
+ </category>
+
+ <!-- Hibernate SQL logs -->
+ <!--
+ <category name="org.hibernate.SQL">
+ <priority value="DEBUG"/>
+ </category>
+ -->
+
+ <root>
+ <appender-ref ref="CONSOLE"/>
+ <appender-ref ref="FILE"/>
+ </root>
+
+</log4j:configuration>
diff --git a/modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/security.policy b/modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/security.policy
new file mode 100644
index 0000000..8860b47
--- /dev/null
+++ b/modules/integration-tests/jndi-access/jndi-access-test/src/test/resources/security.policy
@@ -0,0 +1,10 @@
+// We need the SecurityManager installed to enable sandboxing of CLI scripts
+// but we don't define any other security measures on the RHQ server itself.
+//
+// Granting all permissions allows us to run the RHQ server as if no security
+// manager was in place (which is assumed by default by JBoss AS) but be able
+// to use it when we need it for our own purposes.
+
+grant {
+ permission java.security.AllPermission;
+};
diff --git a/modules/integration-tests/jndi-access/pom.xml b/modules/integration-tests/jndi-access/pom.xml
new file mode 100644
index 0000000..6e9c673
--- /dev/null
+++ b/modules/integration-tests/jndi-access/pom.xml
@@ -0,0 +1,21 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>rhq-integration-tests</artifactId>
+ <groupId>org.rhq</groupId>
+ <version>4.3.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.rhq</groupId>
+ <artifactId>jndi-access-test-parent</artifactId>
+ <packaging>pom</packaging>
+
+ <name>JNDI access tests</name>
+ <description>Tests for the secured JNDI access tests</description>
+
+ <modules>
+ <module>remote-server</module>
+ <module>jndi-access-test</module>
+ </modules>
+</project>
diff --git a/modules/integration-tests/jndi-access/remote-server/pom.xml b/modules/integration-tests/jndi-access/remote-server/pom.xml
new file mode 100644
index 0000000..9046e6f
--- /dev/null
+++ b/modules/integration-tests/jndi-access/remote-server/pom.xml
@@ -0,0 +1,72 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>jndi-access-test-parent</artifactId>
+ <groupId>org.rhq</groupId>
+ <version>4.3.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.rhq</groupId>
+ <artifactId>jndi-access-remote-server</artifactId>
+ <packaging>jar</packaging>
+
+ <name>Test JNDI-enabled remote server</name>
+ <description>
+ A testing JNDI-enabled server to test the ability to connect to remote servers without security
+ checks from within the scripts running inside the RHQ server.
+ </description>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jnpserver</artifactId>
+ <version>4.2.2.GA</version>
+ </dependency>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-common</artifactId>
+ <version>4.2.2.GA</version>
+ </dependency>
+
+ <dependency>
+ <groupId>oswego-concurrent</groupId>
+ <artifactId>concurrent</artifactId>
+ <version>1.3.4-jboss</version>
+ </dependency>
+
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>package</id>
+ <phase>package</phase>
+ <goals><goal>single</goal></goals>
+ <configuration>
+ <archive>
+ <manifest>
+ <mainClass>org.rhq.jndi.test.Server</mainClass>
+ </manifest>
+ </archive>
+ <descriptorRefs>
+ <descriptorRef>jar-with-dependencies</descriptorRef>
+ </descriptorRefs>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+ </build>
+</project>
diff --git a/modules/integration-tests/jndi-access/remote-server/src/main/java/org/rhq/jndi/test/Server.java b/modules/integration-tests/jndi-access/remote-server/src/main/java/org/rhq/jndi/test/Server.java
new file mode 100644
index 0000000..7bfb8e8
--- /dev/null
+++ b/modules/integration-tests/jndi-access/remote-server/src/main/java/org/rhq/jndi/test/Server.java
@@ -0,0 +1,79 @@
+package org.rhq.jndi.test;
+import java.util.Properties;
+
+import javax.naming.CompoundName;
+
+import org.jnp.server.Main;
+import org.jnp.server.NamingBeanImpl;
+
+import org.jboss.logging.Logger;
+
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2012 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class Server {
+ private static final Logger LOG = Logger.getLogger(Server.class);
+
+ private static Server INSTANCE;
+
+ private Main jnpServer;
+
+ public static void main(String[] args) throws Exception {
+ LOG.debug("System properties: " + System.getProperties());
+ Server.start();
+ }
+
+ private Server() {
+ jnpServer = new Main("org.rhq.jndi.access.test.server");
+ }
+
+ public static synchronized Server getInstance() {
+ if (INSTANCE == null) {
+ INSTANCE = new Server();
+ }
+
+ return INSTANCE;
+ }
+
+ public static void start() throws Exception {
+ LOG.debug("Initializing the JNP server");
+
+ NamingBeanImpl nbi = new NamingBeanImpl();
+ getInstance().jnpServer.setNamingInfo(nbi);
+ nbi.start();
+
+ LOG.debug("Binding kachny");
+
+ nbi.getNamingInstance().bind(new CompoundName("kachny", new Properties()), "KACHNY!", String.class.getName());
+
+ LOG.debug("Starting the JNP server");
+
+ getInstance().jnpServer.start();
+ }
+
+ public static void stop() {
+ LOG.debug("Stopping the JNP server");
+ getInstance().jnpServer.stop();
+ }
+}
diff --git a/modules/integration-tests/jndi-access/remote-server/src/main/resources/jndi.properties b/modules/integration-tests/jndi-access/remote-server/src/main/resources/jndi.properties
new file mode 100644
index 0000000..a45f2ce
--- /dev/null
+++ b/modules/integration-tests/jndi-access/remote-server/src/main/resources/jndi.properties
@@ -0,0 +1,2 @@
+java.naming.factory.initial=org.jboss.naming.NamingContextFactory
+java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
\ No newline at end of file
diff --git a/modules/integration-tests/jndi-access/remote-server/src/main/resources/log4j.properties b/modules/integration-tests/jndi-access/remote-server/src/main/resources/log4j.properties
new file mode 100644
index 0000000..2d41f83
--- /dev/null
+++ b/modules/integration-tests/jndi-access/remote-server/src/main/resources/log4j.properties
@@ -0,0 +1,5 @@
+log4j.rootCategory=TRACE, CONSOLE
+
+log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
+log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
+log4j.appender.CONSOLE.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n
diff --git a/modules/integration-tests/pom.xml b/modules/integration-tests/pom.xml
index d3b2b85..e82ca08 100644
--- a/modules/integration-tests/pom.xml
+++ b/modules/integration-tests/pom.xml
@@ -64,9 +64,9 @@
</dependencies>
-
<modules>
<module>jboss-as-7-plugin-test</module>
<module>apache-plugin-test</module>
+ <module>jndi-access</module>
</modules>
-</project>
\ No newline at end of file
+</project>
commit 31daf6e07787ec5505ace5192971801e75b5ae55
Author: John Sanda <jsanda(a)redhat.com>
Date: Mon Feb 6 10:26:36 2012 -0500
Fixing error in test class that resulted from merge conflict
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java
index d427229..209a7cc 100644
--- a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java
@@ -199,7 +199,7 @@ public class DriftFilesSenderTest extends DriftTest {
sender.setHeaders(headers);
sender.run();
- assertEquals(driftClient.getSendChangeSetContentInvocationCount(), 0,
+ assertEquals(driftClient.getSendChangeSetInvocationCount(), 0,
"Do not call DriftClient to send content to server when there is no content to send.");
assertContentFileExists(changeSetDir(driftDefName));
}
commit 4886f73e5afb984f4039318da21cc5fbd37482bc
Author: John Sanda <jsanda(a)redhat.com>
Date: Wed Dec 14 20:59:56 2011 -0500
[BZ 767205] Only read snapshot file once when looking for content to send to server
With this commit DriftFilesSender now builds an index of the file
entries key offed of the SHA so that is can quickly find files without
having to repeatedly scan the snapshot file on disk.
Conflicts:
modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftFilesSender.java
modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftClient.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftClient.java
index 1649819..761b3df 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftClient.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftClient.java
@@ -24,7 +24,8 @@ public interface DriftClient {
* @param driftDefinitionName
* @param contentDir
*/
- void sendChangeSetContentToServer(int resourceId, String driftDefinitionName, File contentDir);
+ //void sendChangeSetContentToServer(int resourceId, String driftDefinitionName, File contentDir);
+ void sendChangeSetContentToServer(int resourceId, String driftDefName, File contentZipFile);
void repeatChangeSet(int resourceId, String driftDefName, int version);
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftFilesSender.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftFilesSender.java
index d8d2b46..d7ec560 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftFilesSender.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftFilesSender.java
@@ -1,13 +1,5 @@
package org.rhq.core.pc.drift;
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.List;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -17,6 +9,13 @@ import org.rhq.common.drift.Headers;
import org.rhq.core.domain.drift.DriftFile;
import org.rhq.core.util.stream.StreamUtil;
+import java.io.*;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
+
public class DriftFilesSender implements Runnable {
private Log log = LogFactory.getLog(DriftFilesSender.class);
@@ -53,23 +52,95 @@ public class DriftFilesSender implements Runnable {
@Override
public void run() {
+ ZipOutputStream stream = null;
try {
+ if (log.isInfoEnabled()) {
+ log.info("Preparing to send content to server for " + defToString());
+ }
+ long startTime = System.currentTimeMillis();
File changeSet = changeSetMgr.findChangeSet(resourceId, headers.getDriftDefinitionName());
- File contentDir = new File(changeSet.getParentFile(), "content");
- contentDir.mkdir();
-
- for (DriftFile driftFile : driftFiles) {
+ File changeSetDir = changeSet.getParentFile();
+
+ // Note that the content file has a specific format that the server
+ // expects. The file name is of the form content_<token>.zip where
+ // token is a unique string that the agent can use to identify the
+ // content zip file when the server sends an acknowledgement. The
+ // token is necessary because it is possible, albeit not likely,
+ // for a a particular definition to wind up with multiple content
+ // zip files and there is no guarantee that they will be acked in
+ // the order in which they were sent. The name of each file in the
+ // zip file should be the SHA for that file. The server uses that
+ // SHA to look up the DriftFile object it has already created for
+ // the content.
+ //
+ // jsanda
+
+ String timestamp = Long.toString(System.currentTimeMillis());
+ String contentFileName = "content_" + timestamp + ".zip";
+ final File zipFile = new File(changeSetDir, contentFileName);
+ stream = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFile)));
+
+ if (driftFiles.size() == 1) {
+ DriftFile driftFile = driftFiles.get(0);
File file = find(driftFile);
if (file == null || !file.exists()) {
log.warn("Unable to find file for " + driftFile);
} else {
- StreamUtil.copy(new BufferedInputStream(new FileInputStream(file)), new BufferedOutputStream(
- new FileOutputStream(new File(contentDir, driftFile.getHashId()))), true);
+ if (log.isDebugEnabled()) {
+ log.debug("Adding " + file.getPath() + " to " + contentFileName);
+ }
+ addFileToContentZipFile(stream, driftFile, file);
}
+ } else {
+ Map<String, FileEntry> fileEntries = createSnapshotIndex();
+
+ for (DriftFile driftFile : driftFiles) {
+ FileEntry entry = fileEntries.get(driftFile.getHashId());
+ if (entry == null) {
+ continue;
+ }
+ File file = new File(headers.getBasedir(), entry.getFile());
+ if (file == null || !file.exists()) {
+ log.warn("Unable to find file for " + driftFile);
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug("Adding " + file.getPath() + " to " + contentFileName);
+ }
+ addFileToContentZipFile(stream, driftFile, file);
+ }
+ }
+ }
+
+ stream.close();
+ stream = null;
+
+ driftClient.sendChangeSetContentToServer(resourceId, headers.getDriftDefinitionName(), zipFile);
+
+ if (log.isInfoEnabled()) {
+ long endTime = System.currentTimeMillis();
+ log.info("Finished submitting request to send content to server in " + (endTime - startTime) +
+ " ms");
}
- driftClient.sendChangeSetContentToServer(resourceId, headers.getDriftDefinitionName(), contentDir);
+
} catch (IOException e) {
log.error("Failed to send drift files.", e);
+ } finally {
+ if (stream != null) {
+ try {
+ stream.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+ }
+
+ private void addFileToContentZipFile(ZipOutputStream stream, DriftFile driftFile, File file) throws IOException {
+ FileInputStream fis = new FileInputStream(file);
+ try {
+ stream.putNextEntry(new ZipEntry(driftFile.getHashId()));
+ StreamUtil.copy(fis, stream, false);
+ } finally {
+ fis.close();
}
}
@@ -87,4 +158,22 @@ public class DriftFilesSender implements Runnable {
reader.close();
}
}
+
+ private Map<String, FileEntry> createSnapshotIndex() throws IOException {
+ ChangeSetReader reader = changeSetMgr.getChangeSetReader(resourceId, headers.getDriftDefinitionName());
+ try {
+ Map<String, FileEntry> map = new TreeMap<String, FileEntry>();
+ for (FileEntry entry : reader) {
+ map.put(entry.getNewSHA(), entry);
+ }
+ return map;
+ } finally {
+ reader.close();
+ }
+ }
+
+ private String defToString() {
+ return "[resourceId: " + resourceId + ", driftDefinitionId: " + headers.getDriftDefinitionId() +
+ ", driftDefinitionName: " + headers.getDriftDefinitionName() + "]";
+ }
}
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftManager.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftManager.java
index 7b0752d..36e0545 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftManager.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftManager.java
@@ -19,30 +19,8 @@
package org.rhq.core.pc.drift;
-import static org.rhq.common.drift.FileEntry.addedFileEntry;
-import static org.rhq.common.drift.FileEntry.changedFileEntry;
-import static org.rhq.common.drift.FileEntry.removedFileEntry;
-import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
-import static org.rhq.core.domain.drift.DriftChangeSetCategory.DRIFT;
-import static org.rhq.core.domain.drift.DriftComplianceStatus.OUT_OF_COMPLIANCE_NO_BASEDIR;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.FilenameFilter;
-import java.io.IOException;
-import java.util.List;
-import java.util.concurrent.ScheduledThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
import org.rhq.common.drift.ChangeSetWriter;
import org.rhq.common.drift.Headers;
import org.rhq.core.clientapi.agent.drift.DriftAgentService;
@@ -63,6 +41,18 @@ import org.rhq.core.pc.measurement.MeasurementManager;
import org.rhq.core.util.file.FileUtil;
import org.rhq.core.util.stream.StreamUtil;
+import java.io.*;
+import java.util.List;
+import java.util.concurrent.ScheduledThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
+
+import static org.rhq.common.drift.FileEntry.*;
+import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
+import static org.rhq.core.domain.drift.DriftChangeSetCategory.DRIFT;
+import static org.rhq.core.domain.drift.DriftComplianceStatus.OUT_OF_COMPLIANCE_NO_BASEDIR;
+
public class DriftManager extends AgentService implements DriftAgentService, DriftClient, ContainerService {
private final Log log = LogFactory.getLog(DriftManager.class);
@@ -251,7 +241,8 @@ public class DriftManager extends AgentService implements DriftAgentService, Dri
if (log.isDebugEnabled()) {
log.debug("Resending " + contentZipFile.getPath());
}
- sendContentZipFile(Integer.parseInt(resourceDir.getName()), defDir.getName(), contentZipFile);
+ sendChangeSetContentToServer(Integer.parseInt(resourceDir.getName()), defDir.getName(),
+ contentZipFile);
}
}
}
@@ -342,46 +333,7 @@ public class DriftManager extends AgentService implements DriftAgentService, Dri
}
@Override
- public void sendChangeSetContentToServer(int resourceId, String driftDefinitionName, final File contentDir) {
- ZipOutputStream stream = null;
- try {
- String timestamp = Long.toString(System.currentTimeMillis());
- String contentFileName = "content_" + timestamp + ".zip";
- final File zipFile = new File(contentDir.getParentFile(), contentFileName);
- stream = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFile)));
-
- for (File file : contentDir.listFiles()) {
- FileInputStream fis = new FileInputStream(file);
- try {
- stream.putNextEntry(new ZipEntry(file.getName()));
- StreamUtil.copy(fis, stream, false);
- } finally {
- fis.close();
- }
- }
- stream.close();
- stream = null;
- sendContentZipFile(resourceId, driftDefinitionName, zipFile);
- } catch (IOException e) {
- log.error("An error occurred while trying to send content for changeset[resourceId: " + resourceId
- + ", driftDefinition: " + driftDefinitionName + "]", e);
- } finally {
- if (stream != null) {
- try {
- stream.close();
- } catch (IOException e) {
- }
- }
- }
-
- for (File file : contentDir.listFiles()) {
- if (!file.delete()) {
- log.warn("Unable to clean up content directory. Failed to delete " + file.getPath());
- }
- }
- }
-
- private void sendContentZipFile(int resourceId, String driftDefName, File contentZipFile) {
+ public void sendChangeSetContentToServer(int resourceId, String driftDefName, File contentZipFile) {
try {
int startIndex = "content_".length();
int endIndex = contentZipFile.getName().indexOf(".");
@@ -389,10 +341,10 @@ public class DriftManager extends AgentService implements DriftAgentService, Dri
DriftServerService driftServer = pluginContainerConfiguration.getServerServices().getDriftServerService();
driftServer.sendFilesZip(resourceId, driftDefName, token, contentZipFile.length(),
- remoteInputStream(new BufferedInputStream(new FileInputStream(contentZipFile))));
+ remoteInputStream(new BufferedInputStream(new FileInputStream(contentZipFile))));
} catch (FileNotFoundException e) {
log.error("An error occurred while trying to send change set content zip file " + contentZipFile.getPath()
- + " to server.", e);
+ + " to server.", e);
}
}
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java
index 5fd6528..d427229 100644
--- a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftFilesSenderTest.java
@@ -19,18 +19,24 @@
package org.rhq.core.pc.drift;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
import org.rhq.common.drift.ChangeSetWriter;
import org.rhq.common.drift.Headers;
import org.rhq.core.domain.drift.DriftChangeSetCategory;
import org.rhq.core.domain.drift.DriftFile;
import org.rhq.core.domain.drift.JPADriftFile;
+import org.rhq.core.util.ZipUtil;
+import org.rhq.test.AssertUtils;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.io.File;
+import java.io.FilenameFilter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
import static org.rhq.common.drift.FileEntry.addedFileEntry;
import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
@@ -39,7 +45,7 @@ import static org.testng.Assert.assertTrue;
public class DriftFilesSenderTest extends DriftTest {
- DriftClient driftClient;
+ DriftClientTestStub driftClient;
DriftFilesSender sender;
@@ -54,6 +60,27 @@ public class DriftFilesSenderTest extends DriftTest {
}
@Test
+ public void sendOneFile() throws Exception {
+ String driftDefName = "send-one-file-test";
+ File serverConf = createRandomFile(resourceDir, "server.conf");
+ String serverConfHash = sha256(serverConf);
+
+ File changeSetDir = changeSetDir(driftDefName);
+ Headers headers = createHeaders(driftDefName, COVERAGE);
+
+ ChangeSetWriter writer = changeSetMgr.getChangeSetWriter(resourceId(), headers);
+ writer.write(addedFileEntry("server.conf", serverConfHash));
+ writer.close();
+
+ sender.setDriftFiles(driftFiles(serverConfHash));
+ sender.setHeaders(headers);
+ sender.run();
+
+ assertContentFileExists(changeSetDir);
+ assertContentFileMatches(changeSetDir, serverConfHash);
+ }
+
+ @Test
public void sendFilesInOneDirectory() throws Exception {
String driftDefName = "single-directory-test";
@@ -74,14 +101,11 @@ public class DriftFilesSenderTest extends DriftTest {
writer.close();
sender.setDriftFiles(driftFiles(server1ConfHash, server2ConfHash));
- sender.setHeaders(createHeaders(driftDefName, COVERAGE));
+ sender.setHeaders(headers);
sender.run();
- File contentDir = mkdir(changeSetDir, "content");
-
- assertEquals(contentDir.list().length, 2, "Expected to find two files in " + contentDir.getAbsolutePath());
- assertFileCopiedToContentDir(contentDir, server1ConfHash);
- assertFileCopiedToContentDir(contentDir, server2ConfHash);
+ assertContentFileExists(changeSetDir);
+ assertContentFileMatches(changeSetDir, server1ConfHash, server2ConfHash);
}
@Test
@@ -114,16 +138,11 @@ public class DriftFilesSenderTest extends DriftTest {
// Note that the order of the drift files is random. When the server sends a request
// for files we cannot assume that the files will be in any particular order.
sender.setDriftFiles(driftFiles(server1JarHash, server2ConfHash, server2JarHash, server1ConfHash));
- sender.setHeaders(createHeaders(driftDefName, COVERAGE));
+ sender.setHeaders(headers);
sender.run();
- File contentDir = mkdir(changeSetDir, "content");
-
- assertEquals(contentDir.list().length, 4, "Expected to find four files in " + contentDir.getAbsolutePath());
- assertFileCopiedToContentDir(contentDir, server1ConfHash);
- assertFileCopiedToContentDir(contentDir, server2ConfHash);
- assertFileCopiedToContentDir(contentDir, server1JarHash);
- assertFileCopiedToContentDir(contentDir, server2JarHash);
+ assertContentFileExists(changeSetDir);
+ assertContentFileMatches(changeSetDir, server1ConfHash, server2ConfHash, server1JarHash, server2JarHash);
}
@Test
@@ -155,10 +174,64 @@ public class DriftFilesSenderTest extends DriftTest {
sender.setHeaders(headers);
sender.run();
- File contentDir = mkdir(changeSetDir, "content");
+ assertContentFileExists(changeSetDir);
+ assertContentFileMatches(changeSetDir, server2ConfHash);
+ }
+
+ @Test
+ public void doNotSendEmptyZipFileToServer() throws Exception {
+ String driftDefName = "empty_content_test";
+
+ File confDir = mkdir(resourceDir, "conf");
+ File serverConf = createRandomFile(confDir, "server.conf");
+
+ String serverConfHash = sha256(serverConf);
+
+ Headers headers = createHeaders(driftDefName, COVERAGE);
+
+ ChangeSetWriter writer = changeSetMgr.getChangeSetWriter(resourceId(), headers);
+ writer.write(addedFileEntry("conf/server.conf", serverConfHash));
+ writer.close();
+
+ serverConf.delete();
+
+ sender.setDriftFiles(driftFiles(serverConfHash));
+ sender.setHeaders(headers);
+ sender.run();
+
+ assertEquals(driftClient.getSendChangeSetContentInvocationCount(), 0,
+ "Do not call DriftClient to send content to server when there is no content to send.");
+ assertContentFileExists(changeSetDir(driftDefName));
+ }
+
+ void assertContentFileExists(File changeSetDir) {
+ File[] files = getContentFiles(changeSetDir);
+ assertEquals(files.length, 1, "Expected to find a single content zip file but found " + Arrays.toString(files));
+ }
+
+ void assertContentFileMatches(File changeSetDir, String... expectedFileNames) throws Exception {
+ File contentFile = getContentFiles(changeSetDir)[0];
+ final List<String> actualFileNames = new LinkedList<String>();
+
+ ZipUtil.walkZipFile(contentFile, new ZipUtil.ZipEntryVisitor() {
+ @Override
+ public boolean visit(ZipEntry entry, ZipInputStream stream) throws Exception {
+ actualFileNames.add(entry.getName());
+ return true;
+ }
+ });
+
+ AssertUtils.assertCollectionEqualsNoOrder(Arrays.asList(expectedFileNames), actualFileNames,
+ "The content file " + contentFile.getPath() + " does not contain the correct entries");
+ }
- assertEquals(contentDir.list().length, 1, "Expected to find one file in " + contentDir.getAbsolutePath());
- assertFileCopiedToContentDir(contentDir, server2ConfHash);
+ private File[] getContentFiles(File changeSetDir) {
+ return changeSetDir.listFiles(new FilenameFilter() {
+ @Override
+ public boolean accept(File dir, String name) {
+ return name.startsWith("content_") && name.endsWith(".zip");
+ }
+ });
}
/**
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftManagerTest.java b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftManagerTest.java
index c3e28f5..e1ec00d 100644
--- a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftManagerTest.java
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/drift/DriftManagerTest.java
@@ -133,7 +133,8 @@ public class DriftManagerTest extends DriftTest {
File changeSetDir = changeSetDir(config.getName());
File snapshotFile = createRandomFile(changeSetDir, "changeset.txt");
File previousSnapshotFile = createRandomFile(changeSetDir, "changeset.txt.previous");
- File changeSetZipFile = createRandomFile(changeSetDir, "changeset_" + System.currentTimeMillis() + ".zip");
+
+ createRandomFile(changeSetDir, "changeset_" + System.currentTimeMillis() + ".zip");
driftMgr.ackChangeSet(resourceId(), config.getName());
@@ -145,53 +146,11 @@ public class DriftManagerTest extends DriftTest {
}
@Test
- public void writeContentZipFileToChangeSetContentDirectory() throws Exception {
- String configName = "send-content-in-zip";
- final File changeSetDir = changeSetDir(configName);
- final File contentDir = mkdir(changeSetDir, "content");
-
- createRandomFile(contentDir, "content-1");
- createRandomFile(contentDir, "content-2");
-
- setDriftServiceCallback(new DriftServiceCallback() {
- @Override
- public void execute() {
- assertThatZipFileExists(changeSetDir, "content_", "Expected to find content zip file in "
- + changeSetDir.getPath() + ". The file name should follow the pattern "
- + "content_<integer_timestamp>.zip");
- }
- });
-
- driftMgr.sendChangeSetContentToServer(resourceId(), configName, contentDir);
- }
-
- @Test
- public void sendContentToServerInZipFile() throws Exception {
- String configName = "send-content-in-zip";
- File changeSetDir = changeSetDir(configName);
- File contentDir = mkdir(changeSetDir, "content");
-
- final File content1 = createRandomFile(contentDir, "content-1");
- final File content2 = createRandomFile(contentDir, "content-2");
-
- setDriftServiceCallback(new DriftServiceCallback() {
- @Override
- public void execute() {
- assertZipFileMatches(driftServerService.inputStream, content1, content2);
- }
- });
-
- driftMgr.sendChangeSetContentToServer(resourceId(), configName, contentDir);
-
- // verify that the content directory is purged
- assertThatDirectoryIsEmpty(contentDir);
- }
-
- @Test
public void cleanUpWhenServerAcksChangeSetContent() throws Exception {
String configName = "cleanup-when-server-acks-content";
File changeSetDir = changeSetDir(configName);
- File contentDir = mkdir(changeSetDir, "content");
+
+ mkdir(changeSetDir, "content");
String token = Long.toString(System.currentTimeMillis());
File contentZipFile = createRandomFile(changeSetDir, "content_" + token + ".zip");
@@ -309,10 +268,6 @@ public class DriftManagerTest extends DriftTest {
}
}
- private void assertThatDirectoryIsEmpty(File dir) {
- assertEquals(dir.listFiles().length, 0, "Expected " + dir.getPath() + " to be empty");
- }
-
private File findFile(File dir, File file) {
for (File f : dir.listFiles()) {
if (f.getName().equals(file.getName())) {
commit d3ec74ff1488065b54e3b0b81eca0ba59ccfb2fd
Author: John Sanda <jsanda(a)redhat.com>
Date: Tue Dec 13 17:12:32 2011 -0500
[BZ 767328] Make sure that each drift def is loaded into the persistence context
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftTemplateManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftTemplateManagerBean.java
index 361eb44..9a1c980 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftTemplateManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/drift/DriftTemplateManagerBean.java
@@ -19,26 +19,11 @@
package org.rhq.enterprise.server.drift;
-import static javax.ejb.TransactionAttributeType.NEVER;
-import static org.rhq.core.domain.common.EntityContext.forResource;
-import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
-import static org.rhq.core.domain.drift.DriftConfigurationDefinition.DriftHandlingMode.normal;
-
-import javax.ejb.EJB;
-import javax.ejb.Stateless;
-import javax.ejb.TransactionAttribute;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.authz.Permission;
import org.rhq.core.domain.criteria.DriftDefinitionCriteria;
import org.rhq.core.domain.criteria.DriftDefinitionTemplateCriteria;
-import org.rhq.core.domain.drift.DriftDefinition;
-import org.rhq.core.domain.drift.DriftDefinitionComparator;
-import org.rhq.core.domain.drift.DriftDefinitionTemplate;
-import org.rhq.core.domain.drift.DriftSnapshot;
-import org.rhq.core.domain.drift.DriftSnapshotRequest;
+import org.rhq.core.domain.drift.*;
import org.rhq.core.domain.drift.dto.DriftChangeSetDTO;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.util.PageList;
@@ -49,6 +34,17 @@ import org.rhq.enterprise.server.resource.ResourceTypeNotFoundException;
import org.rhq.enterprise.server.util.CriteriaQueryGenerator;
import org.rhq.enterprise.server.util.CriteriaQueryRunner;
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+import javax.ejb.TransactionAttribute;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import static javax.ejb.TransactionAttributeType.NEVER;
+import static org.rhq.core.domain.common.EntityContext.forResource;
+import static org.rhq.core.domain.drift.DriftChangeSetCategory.COVERAGE;
+import static org.rhq.core.domain.drift.DriftConfigurationDefinition.DriftHandlingMode.normal;
+
@Stateless
public class DriftTemplateManagerBean implements DriftTemplateManagerLocal, DriftTemplateManagerRemote {
@@ -205,13 +201,15 @@ public class DriftTemplateManagerBean implements DriftTemplateManagerLocal, Drif
DriftDefinition templateDef = template.getTemplateDefinition();
for (DriftDefinition resourceDef : template.getDriftDefinitions()) {
- if (resourceDef.isAttached()) {
- resourceDef.setInterval(templateDef.getInterval());
- resourceDef.setDriftHandlingMode(templateDef.getDriftHandlingMode());
- resourceDef.setEnabled(templateDef.isEnabled());
+ DriftDefinition driftDef = entityMgr.find(DriftDefinition.class, resourceDef.getId());
+ if (driftDef.isAttached()) {
+ driftDef.setInterval(templateDef.getInterval());
+ driftDef.setDriftHandlingMode(templateDef.getDriftHandlingMode());
+ driftDef.setEnabled(templateDef.isEnabled());
- driftMgr.updateDriftDefinition(subject, forResource(resourceDef.getResource().getId()), resourceDef);
+ driftMgr.updateDriftDefinition(subject, forResource(driftDef.getResource().getId()), driftDef);
}
}
}
+
}
commit 841dccecd66424c5f7286298f64b098ec2034a9e
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Feb 3 13:11:27 2012 -0500
[BZ 773031] enhance test to check and make sure the state is set properly
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTest.java b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTest.java
index 39ae23d..f35965a 100644
--- a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTest.java
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/upgrade/ResourceUpgradeTest.java
@@ -35,7 +35,9 @@ import org.rhq.core.domain.resource.InventoryStatus;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.pc.PluginContainer;
import org.rhq.core.pc.ServerServices;
+import org.rhq.core.pc.inventory.InventoryManager;
import org.rhq.core.pc.inventory.ResourceContainer;
+import org.rhq.core.pc.inventory.ResourceContainer.ResourceComponentState;
import org.rhq.test.pc.PluginContainerSetup;
import org.rhq.test.pc.PluginContainerTest;
@@ -299,6 +301,14 @@ public class ResourceUpgradeTest extends ResourceUpgradeTestBase {
assertEquals(discoveredResource.getName(), "resource-name-v1");
assertEquals(discoveredResource.getDescription(), "resource-description-v1");
+ InventoryManager im = PluginContainer.getInstance().getInventoryManager();
+ ResourceContainer container = im.getResourceContainer(discoveredResource.getId());
+ if (discoveredResource.getInventoryStatus() == InventoryStatus.COMMITTED) {
+ assert container.getResourceComponentState() == ResourceComponentState.STARTED;
+ } else {
+ assert container.getResourceComponentState() == ResourceComponentState.STOPPED;
+ }
+
return inv;
}
commit 81dd1704b92668879b6b83efd946f44d09d5a343
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Feb 2 13:32:01 2012 -0500
[BZ 768706] add some more code to make sure we do proper error correction/checking
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
index 2a4a3f2..c350176 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
@@ -1464,6 +1464,7 @@ public class InventoryManager extends AgentService implements ContainerService,
// state is a transient field, so reinitialize it just in case this is invoked just after loadFromDisk()
if (state == null) {
container.setResourceComponentState(ResourceComponentState.STOPPED);
+ state = ResourceComponentState.STOPPED;
}
// if the component exists and is not stopped then we may not have to do anything
@@ -1590,11 +1591,19 @@ public class InventoryManager extends AgentService implements ContainerService,
if (prepareResourceForActivation(resource, container, updatedPluginConfig)) {
container.setResourceComponentState(ResourceComponentState.STARTING);
- ResourceContext context = container.getResourceContext();
+ ResourceContext context;
+ ResourceComponent component;
- // Wrap the component in a proxy that will provide locking and a timeout for the call to start().
- ResourceComponent component = container.createResourceComponentProxy(ResourceComponent.class,
- FacetLockType.READ, COMPONENT_START_TIMEOUT, true, false);
+ try {
+ context = container.getResourceContext();
+
+ // Wrap the component in a proxy that will provide locking and a timeout for the call to start().
+ component = container.createResourceComponentProxy(ResourceComponent.class, FacetLockType.READ,
+ COMPONENT_START_TIMEOUT, true, false);
+ } catch (Throwable t) {
+ container.setResourceComponentState(ResourceComponentState.STOPPED);
+ throw new PluginContainerException("Failed getting proxy for resource " + resource + ".", t);
+ }
try {
component.start(context);
commit 4e39e89a96afaa6878c82a511171cd7052961722
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Feb 3 15:13:42 2012 -0500
[Bug 773031 - Component start() called more than once without an intervening stop()]
A variety of auto-formatting changes took place, actual changes are in:
InventoryManager.prepareResourceForActivation
InventoryManager.activateResource
The resource component state could be STOPPED or STARTED. There was a
large window while a component was actually starting that a call
to prepareResourceForActivation would happily allow the component to
again be activated. So, added an actual STARTING state that can block
redundant activation.
Additionally, if forcing reactivation ensure a STARTED component is
stopped before being restarted.
Also:
- remove unnecessary and bad lazy state check
- comment out some unused/debug code
- remove warnings
Conflicts:
modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
index eaee690..2a4a3f2 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
@@ -130,6 +130,7 @@ import org.rhq.core.util.exception.WrappedRemotingException;
* @author Ian Springer
* @author Jay Shaughnessy
*/
+@SuppressWarnings({ "rawtypes", "unchecked" })
public class InventoryManager extends AgentService implements ContainerService, DiscoveryAgentService {
private static final String INVENTORY_THREAD_POOL_NAME = "InventoryManager.discovery";
private static final String AVAIL_THREAD_POOL_NAME = "InventoryManager.availability";
@@ -245,16 +246,19 @@ public class InventoryManager extends AgentService implements ContainerService,
// inside EmbJopr).
if (configuration.isInsideAgent()) {
// After an initial delay (5s by default), periodically run an availability check (every 1m by default).
- availabilityThreadPoolExecutor.scheduleWithFixedDelay(availabilityExecutor, configuration
- .getAvailabilityScanInitialDelay(), configuration.getAvailabilityScanPeriod(), TimeUnit.SECONDS);
+ availabilityThreadPoolExecutor.scheduleWithFixedDelay(availabilityExecutor,
+ configuration.getAvailabilityScanInitialDelay(), configuration.getAvailabilityScanPeriod(),
+ TimeUnit.SECONDS);
// After an initial delay (10s by default), periodically run a server discovery scan (every 15m by default).
- inventoryThreadPoolExecutor.scheduleWithFixedDelay(serverScanExecutor, configuration
- .getServerDiscoveryInitialDelay(), configuration.getServerDiscoveryPeriod(), TimeUnit.SECONDS);
+ inventoryThreadPoolExecutor.scheduleWithFixedDelay(serverScanExecutor,
+ configuration.getServerDiscoveryInitialDelay(), configuration.getServerDiscoveryPeriod(),
+ TimeUnit.SECONDS);
// After an initial delay (20s by default), periodically run a service discovery scan (every 1d by default).
- inventoryThreadPoolExecutor.scheduleWithFixedDelay(serviceScanExecutor, configuration
- .getServiceDiscoveryInitialDelay(), configuration.getServiceDiscoveryPeriod(), TimeUnit.SECONDS);
+ inventoryThreadPoolExecutor.scheduleWithFixedDelay(serviceScanExecutor,
+ configuration.getServiceDiscoveryInitialDelay(), configuration.getServiceDiscoveryPeriod(),
+ TimeUnit.SECONDS);
}
} finally {
inventoryLock.writeLock().unlock();
@@ -311,8 +315,8 @@ public class InventoryManager extends AgentService implements ContainerService,
long timeout = getDiscoveryComponentTimeout(context.getResourceType());
try {
- ResourceDiscoveryComponent proxy = this.discoveryComponentProxyFactory.getDiscoveryComponentProxy(context
- .getResourceType(), component, timeout, parentResourceContainer);
+ ResourceDiscoveryComponent proxy = this.discoveryComponentProxyFactory.getDiscoveryComponentProxy(
+ context.getResourceType(), component, timeout, parentResourceContainer);
Set<DiscoveredResourceDetails> results = proxy.discoverResources(context);
return results;
} catch (TimeoutException te) {
@@ -347,8 +351,8 @@ public class InventoryManager extends AgentService implements ContainerService,
long timeout = getDiscoveryComponentTimeout(context.getResourceType());
try {
- ManualAddFacet proxy = this.discoveryComponentProxyFactory.getDiscoveryComponentProxy(context
- .getResourceType(), component, timeout, ManualAddFacet.class, parentResourceContainer);
+ ManualAddFacet proxy = this.discoveryComponentProxyFactory.getDiscoveryComponentProxy(
+ context.getResourceType(), component, timeout, ManualAddFacet.class, parentResourceContainer);
DiscoveredResourceDetails result = proxy.discoverResource(pluginConfig, context);
return result;
} catch (TimeoutException te) {
@@ -387,8 +391,8 @@ public class InventoryManager extends AgentService implements ContainerService,
component, timeout, ClassLoaderFacet.class, parentContainer);
ResourceDiscoveryContext discoveryContext = new ResourceDiscoveryContext(resourceType, parentComponent,
- parentResourceContext, SystemInfoFactory.createSystemInfo(), null, null, this.configuration
- .getContainerName(), this.configuration.getPluginContainerDeployment());
+ parentResourceContext, SystemInfoFactory.createSystemInfo(), null, null,
+ this.configuration.getContainerName(), this.configuration.getPluginContainerDeployment());
// Configurations are not immutable, so clone the plugin config, so the plugin will not be able to change the
// actual PC-managed plugin config.
@@ -409,7 +413,6 @@ public class InventoryManager extends AgentService implements ContainerService,
long timeout = getDiscoveryComponentTimeout(resourceType);
try {
- @SuppressWarnings("unchecked")
ResourceUpgradeFacet<T> proxy = this.discoveryComponentProxyFactory.getDiscoveryComponentProxy(
resourceType, component, timeout, ResourceUpgradeFacet.class, parentResourceContainer);
@@ -641,7 +644,6 @@ public class InventoryManager extends AgentService implements ContainerService,
return new Availability(resource, new Date(), availType);
}
- @SuppressWarnings("unchecked")
public MergeResourceResponse manuallyAddResource(ResourceType resourceType, int parentResourceId,
Configuration pluginConfiguration, int ownerSubjectId) throws InvalidPluginConfigurationClientException,
PluginContainerException {
@@ -676,8 +678,8 @@ public class InventoryManager extends AgentService implements ContainerService,
ResourceDiscoveryContext<ResourceComponent<?>> discoveryContext = new ResourceDiscoveryContext<ResourceComponent<?>>(
resourceType, parentResourceComponent, parentResourceContainer.getResourceContext(),
SystemInfoFactory.createSystemInfo(), new ArrayList<ProcessScanResult>(0),
- new ArrayList<Configuration>(0), this.configuration.getContainerName(), this.configuration
- .getPluginContainerDeployment());
+ new ArrayList<Configuration>(0), this.configuration.getContainerName(),
+ this.configuration.getPluginContainerDeployment());
// Ask the plugin's discovery component to find the new resource, throwing exceptions if it cannot be
// found at all.
@@ -880,8 +882,7 @@ public class InventoryManager extends AgentService implements ContainerService,
if ((this.platform != null) && (this.platform.getInventoryStatus() == InventoryStatus.NEW)
&& newPlatformWasDeletedRecently) {
// let's make sure we are registered; its probable that our platform was deleted and we need to re-register
- log
- .info("No committed resources to send in our availability report - the platform/agent was deleted, let's re-register again");
+ log.info("No committed resources to send in our availability report - the platform/agent was deleted, let's re-register again");
registerWithServer();
newPlatformWasDeletedRecently = false; // we've tried to recover from our platform being deleted, let's not do it again
}
@@ -924,8 +925,8 @@ public class InventoryManager extends AgentService implements ContainerService,
log.debug("Availability report content: " + report.toString(log.isTraceEnabled()));
}
- boolean ok = configuration.getServerServices().getDiscoveryServerService().mergeAvailabilityReport(
- report);
+ boolean ok = configuration.getServerServices().getDiscoveryServerService()
+ .mergeAvailabilityReport(report);
if (!ok) {
// I guess I could immediately call executeAvailabilityScanImmediately and pass its results to
// mergeAvailabilityReport again right now, but what happens if we've queued up a bunch of
@@ -971,10 +972,9 @@ public class InventoryManager extends AgentService implements ContainerService,
(System.currentTimeMillis() - startTime)));
}
} catch (StaleTypeException e) {
- log
- .error("Failed to merge inventory report with server. The report contains one or more resource types "
- + "that have been marked for deletion. Notifying the plugin container that a reboot is needed to purge "
- + "stale types.");
+ log.error("Failed to merge inventory report with server. The report contains one or more resource types "
+ + "that have been marked for deletion. Notifying the plugin container that a reboot is needed to purge "
+ + "stale types.");
PluginContainer.getInstance().notifyRebootRequestListener();
return false;
} catch (InvalidInventoryReportException e) {
@@ -982,8 +982,7 @@ public class InventoryManager extends AgentService implements ContainerService,
if ((this.platform != null) && (this.platform.getInventoryStatus() == InventoryStatus.NEW)
&& newPlatformWasDeletedRecently) {
// let's make sure we are registered; its probable that our platform was deleted and we need to re-register
- log
- .info("The inventory report was invalid probably because the platform/Agent was deleted; let's re-register...");
+ log.info("The inventory report was invalid probably because the platform/Agent was deleted; let's re-register...");
registerWithServer();
newPlatformWasDeletedRecently = false; // we've tried to recover from our platform being deleted, let's not do it again
}
@@ -1179,8 +1178,8 @@ public class InventoryManager extends AgentService implements ContainerService,
parent.removeChildResource(resource);
}
- PluginContainer.getInstance().getMeasurementManager().unscheduleCollection(
- Collections.singleton(resource.getId()));
+ PluginContainer.getInstance().getMeasurementManager()
+ .unscheduleCollection(Collections.singleton(resource.getId()));
if (this.resourceContainers.remove(resource.getUuid()) == null) {
if (log.isDebugEnabled()) {
@@ -1286,8 +1285,8 @@ public class InventoryManager extends AgentService implements ContainerService,
logMessage.append("description, ");
}
- logMessage.replace(logMessage.length() - 1, logMessage.length(), "to become [").append(
- existingResource.toString()).append("]");
+ logMessage.replace(logMessage.length() - 1, logMessage.length(), "to become [")
+ .append(existingResource.toString()).append("]");
log.info(logMessage.toString());
} else {
@@ -1450,25 +1449,48 @@ public class InventoryManager extends AgentService implements ContainerService,
*/
private boolean prepareResourceForActivation(Resource resource, @NotNull ResourceContainer container,
boolean forceReinitialization) throws InvalidPluginConfigurationException, PluginContainerException {
+
if (resourceUpgradeDelegate.hasUpgradeFailed(resource)) {
if (log.isTraceEnabled()) {
log.trace("Skipping activation of " + resource + " - it has failed to upgrade.");
}
+
return false;
}
ResourceComponent component = container.getResourceComponent();
+ ResourceComponentState state = container.getResourceComponentState();
- // if the component already exists and is started, and the resource's plugin config has not changed, there is
- // nothing to do, so return immediately
- if ((component != null)
- && (container.getResourceComponentState() == ResourceComponentState.STARTED && !forceReinitialization)) {
- if (log.isTraceEnabled()) {
- log.trace("No need to prepare the activation of resource " + resource
- + " - its component is already started and its plugin "
- + "config has not been updated since it was last started.");
+ // state is a transient field, so reinitialize it just in case this is invoked just after loadFromDisk()
+ if (state == null) {
+ container.setResourceComponentState(ResourceComponentState.STOPPED);
+ }
+
+ // if the component exists and is not stopped then we may not have to do anything
+ if ((component != null) && (state != ResourceComponentState.STOPPED)) {
+
+ // if STARTED and we are forced to restart (e.g. plugin config change), then stop the component
+ // and continue. If STARTING just let it continue to start as interruption could put us in a bad state.
+ if (forceReinitialization) {
+ switch (state) {
+ case STARTED:
+ component.stop();
+ break;
+ case STARTING:
+ log.warn("Could not force initialization of component for resource [" + resource.getId()
+ + "] as it is already in the process of starting.");
+
+ return false;
+ }
+ } else {
+ if (log.isTraceEnabled()) {
+ log.trace("No need to prepare the activation of resource " + resource
+ + " - its component is already started and its plugin "
+ + "config has not been updated since it was last started.");
+ }
+
+ return false;
}
- return false;
}
if (log.isDebugEnabled()) {
@@ -1484,16 +1506,13 @@ public class InventoryManager extends AgentService implements ContainerService,
}
try {
component = PluginContainer.getInstance().getPluginComponentFactory().buildResourceComponent(resource);
+
} catch (Throwable e) {
throw new PluginContainerException("Could not build component for Resource [" + resource + "]", e);
}
container.setResourceComponent(component);
}
- //this is a transient field, so reinitialize it just in case this is invoked just after
- //loadFromDisk()
- container.setResourceComponentState(ResourceComponentState.STOPPED);
-
// start the resource, but only if its parent component is running. If the parent is null, that means
// the resource is, itself, the root platform and we always activate that.
ResourceContainer parentResourceContainer;
@@ -1523,8 +1542,8 @@ public class InventoryManager extends AgentService implements ContainerService,
log.warn("Cannot give activated resource its discovery component. Cause: " + e);
}
- ConfigurationUtility.normalizeConfiguration(resource.getPluginConfiguration(), type
- .getPluginConfigurationDefinition());
+ ConfigurationUtility.normalizeConfiguration(resource.getPluginConfiguration(),
+ type.getPluginConfigurationDefinition());
ResourceComponent<?> parentComponent = null;
if (resource.getParentResource() != null) {
@@ -1532,10 +1551,9 @@ public class InventoryManager extends AgentService implements ContainerService,
}
ResourceContext context = createResourceContext(resource, parentComponent, discoveryComponent);
-
container.setResourceContext(context);
-
return true;
+
} else {
if (log.isDebugEnabled()) {
log.debug("Resource [" + resource + "] not being prepared for activation; parent isn't started: "
@@ -1559,9 +1577,9 @@ public class InventoryManager extends AgentService implements ContainerService,
* plugin configuration
* @throws PluginContainerException for all other errors
*/
- @SuppressWarnings("unchecked")
public void activateResource(Resource resource, @NotNull ResourceContainer container, boolean updatedPluginConfig)
throws InvalidPluginConfigurationException, PluginContainerException {
+
if (resourceUpgradeDelegate.hasUpgradeFailed(resource)) {
if (log.isTraceEnabled()) {
log.trace("Skipping activation of " + resource + " - it has failed to upgrade.");
@@ -1570,6 +1588,7 @@ public class InventoryManager extends AgentService implements ContainerService,
}
if (prepareResourceForActivation(resource, container, updatedPluginConfig)) {
+ container.setResourceComponentState(ResourceComponentState.STARTING);
ResourceContext context = container.getResourceContext();
@@ -1578,27 +1597,26 @@ public class InventoryManager extends AgentService implements ContainerService,
FacetLockType.READ, COMPONENT_START_TIMEOUT, true, false);
try {
- // One last check to make sure another thread didn't beat us to the punch.
- // TODO: Add some real synchronization to this method. (ips, 07/09/07)
- if (container.getResourceComponentState() == ResourceComponentState.STARTED) {
- if (log.isTraceEnabled()) {
- log.trace("Skipping activation of " + resource + " - its component is already started.");
- }
- return;
- }
component.start(context);
container.setResourceComponentState(ResourceComponentState.STARTED);
resource.setConnected(true); // This tells the server-side that the resource has connected successfully.
+
} catch (Throwable t) {
+ // Don't leave in a STARTING state. Don't actually call component.stop(),
+ // because we're not actually STARTED
+ container.setResourceComponentState(ResourceComponentState.STOPPED);
+
if (updatedPluginConfig || (t instanceof InvalidPluginConfigurationException)) {
if (log.isDebugEnabled()) {
log.debug("Resource has a bad config, waiting for this to go away: " + resource);
}
InventoryEventListener iel = new ResourceGotActivatedListener();
addInventoryEventListener(iel);
+
throw new InvalidPluginConfigurationException("Failed to start component for resource " + resource
+ ".", t);
}
+
throw new PluginContainerException("Failed to start component for resource " + resource + ".", t);
}
@@ -1662,8 +1680,8 @@ public class InventoryManager extends AgentService implements ContainerService,
resource.setConnected(false); // invalid plugin configuration infers the resource component is disconnected
// Give the server-side an error message describing the connection failure that can be
// displayed on the resource's Inventory page.
- ResourceError resourceError = new ResourceError(resource, ResourceErrorType.INVALID_PLUGIN_CONFIGURATION, t
- .getLocalizedMessage(), ThrowableUtil.getStackAsString(t), System.currentTimeMillis());
+ ResourceError resourceError = new ResourceError(resource, ResourceErrorType.INVALID_PLUGIN_CONFIGURATION,
+ t.getLocalizedMessage(), ThrowableUtil.getStackAsString(t), System.currentTimeMillis());
return sendResourceErrorToServer(resourceError);
}
@@ -1751,37 +1769,39 @@ public class InventoryManager extends AgentService implements ContainerService,
return servers;
}
- private void activateFromDisk(Resource resource) throws PluginContainerException {
- if (resource.getId() == 0) {
- return; // This is for the case of a resource that hadn't been synced to the server (there are probably better places to handle this)
- }
-
- resource.setAgent(this.agent);
- ResourceContainer container = getResourceContainer(resource.getId());
- if (container == null) {
- if (log.isDebugEnabled()) {
- log.debug("Could not find a container for resource: " + resource);
- }
- return;
- }
- if (container.getSynchronizationState() != ResourceContainer.SynchronizationState.SYNCHRONIZED) {
- if (log.isDebugEnabled()) {
- log.debug("Stopped activating resources at unsynchronized resource [" + resource + "]");
- }
- return;
- }
-
- try {
- activateResource(resource, container, false);
- } catch (Exception e) {
- log.debug("Failed to activate from disk [" + resource + "]");
- }
-
- for (Resource child : resource.getChildResources()) {
- initResourceContainer(child);
- activateFromDisk(child);
- }
- }
+ // commenting out dead code, leaving for reference -jshaughn
+ //
+ // private void activateFromDisk(Resource resource) throws PluginContainerException {
+ // if (resource.getId() == 0) {
+ // return; // This is for the case of a resource that hadn't been synced to the server (there are probably better places to handle this)
+ // }
+ //
+ // resource.setAgent(this.agent);
+ // ResourceContainer container = getResourceContainer(resource.getId());
+ // if (container == null) {
+ // if (log.isDebugEnabled()) {
+ // log.debug("Could not find a container for resource: " + resource);
+ // }
+ // return;
+ // }
+ // if (container.getSynchronizationState() != ResourceContainer.SynchronizationState.SYNCHRONIZED) {
+ // if (log.isDebugEnabled()) {
+ // log.debug("Stopped activating resources at unsynchronized resource [" + resource + "]");
+ // }
+ // return;
+ // }
+ //
+ // try {
+ // activateResource(resource, container, false);
+ // } catch (Exception e) {
+ // log.debug("Failed to activate from disk [" + resource + "]");
+ // }
+ //
+ // for (Resource child : resource.getChildResources()) {
+ // initResourceContainer(child);
+ // activateFromDisk(child);
+ // }
+ // }
/**
* Tries to load an existing inventory from the file data/inventory.dat
@@ -1876,7 +1896,6 @@ public class InventoryManager extends AgentService implements ContainerService,
* TODO GH: Move this to another class (this one is getting too big)
* @return The discovered platform (which might be a dummy in case of testing)
*/
- @SuppressWarnings("unchecked")
private Resource discoverPlatform() {
PluginManager pluginManager = PluginContainer.getInstance().getPluginManager();
PluginComponentFactory componentFactory = PluginContainer.getInstance().getPluginComponentFactory();
@@ -1922,8 +1941,7 @@ public class InventoryManager extends AgentService implements ContainerService,
}
} else {
// This is very strange - there are no platform types - we should never be missing the built-in platform plugin.
- log
- .error("Missing platform plugin(s) - falling back to dummy platform impl; this should only occur in tests!");
+ log.error("Missing platform plugin(s) - falling back to dummy platform impl; this should only occur in tests!");
// TODO: Set sysprop (e.g. rhq.test.mode=true) in integration tests,
// and throw a runtime exception here if that sysprop is not set.
return getTestPlatform();
@@ -2308,8 +2326,8 @@ public class InventoryManager extends AgentService implements ContainerService,
try {
ResourceDiscoveryContext context = new ResourceDiscoveryContext(resourceType, parentComponent,
parentResourceContext, SystemInfoFactory.createSystemInfo(), processScanResults,
- Collections.EMPTY_LIST, this.configuration.getContainerName(), this.configuration
- .getPluginContainerDeployment());
+ Collections.EMPTY_LIST, this.configuration.getContainerName(),
+ this.configuration.getPluginContainerDeployment());
newResources = new HashSet<Resource>();
try {
Set<DiscoveredResourceDetails> discoveredResources = invokeDiscoveryComponent(parentContainer,
@@ -2420,19 +2438,19 @@ public class InventoryManager extends AgentService implements ContainerService,
return contentContext;
}
- private ResourceComponent<?> createTestPlatformComponent() {
- return new ResourceComponent() {
- public AvailabilityType getAvailability() {
- return AvailabilityType.UP;
- }
-
- public void start(ResourceContext context) {
- }
-
- public void stop() {
- }
- };
- }
+ // private ResourceComponent<?> createTestPlatformComponent() {
+ // return new ResourceComponent() {
+ // public AvailabilityType getAvailability() {
+ // return AvailabilityType.UP;
+ // }
+ //
+ // public void start(ResourceContext context) {
+ // }
+ //
+ // public void stop() {
+ // }
+ // };
+ // }
private void updateResourceVersion(Resource resource, String version) {
String existingVersion = resource.getVersion();
@@ -2548,8 +2566,8 @@ public class InventoryManager extends AgentService implements ContainerService,
if (log.isDebugEnabled()) {
log.debug("Merging [" + modifiedResourceIds.size() + "] modified Resources into local inventory...");
}
- Set<Resource> modifiedResources = configuration.getServerServices().getDiscoveryServerService().getResources(
- modifiedResourceIds, false);
+ Set<Resource> modifiedResources = configuration.getServerServices().getDiscoveryServerService()
+ .getResources(modifiedResourceIds, false);
syncSchedules(modifiedResources); // RHQ-792, mtime is the indicator that schedules should be sync'ed too
syncDriftDefinitions(modifiedResources);
for (Resource modifiedResource : modifiedResources) {
@@ -2591,16 +2609,16 @@ public class InventoryManager extends AgentService implements ContainerService,
return;
}
- private void print(Resource resourceTreeNode, int level) {
- StringBuilder builder = new StringBuilder();
- for (int i = 0; i < level; i++) {
- builder.append(" ");
- }
- log.info(builder.toString() + resourceTreeNode.getId() + " " + resourceTreeNode.getUuid());
- for (Resource child : resourceTreeNode.getChildResources()) {
- print(child, level + 1);
- }
- }
+ // private void print(Resource resourceTreeNode, int level) {
+ // StringBuilder builder = new StringBuilder();
+ // for (int i = 0; i < level; i++) {
+ // builder.append(" ");
+ // }
+ // log.info(builder.toString() + resourceTreeNode.getId() + " " + resourceTreeNode.getUuid());
+ // for (Resource child : resourceTreeNode.getChildResources()) {
+ // print(child, level + 1);
+ // }
+ // }
private void mergeResource(Resource resource) {
if (log.isDebugEnabled()) {
@@ -2798,10 +2816,9 @@ public class InventoryManager extends AgentService implements ContainerService,
log.info("Resource activation and upgrade finished.");
} catch (Throwable t) {
- log
- .error(
- "Resource activation or upgrade failed with an exception. An attempt to merely activate the resources will be made now.",
- t);
+ log.error(
+ "Resource activation or upgrade failed with an exception. An attempt to merely activate the resources will be made now.",
+ t);
//make sure to at least activate the resources
activateAndUpgradeResourceRecursively(getPlatform(), false);
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ResourceContainer.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ResourceContainer.java
index 854e624..c348a57 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ResourceContainer.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ResourceContainer.java
@@ -67,7 +67,7 @@ import org.rhq.core.pluginapi.inventory.ResourceContext;
* @author John Mazzitelli
* @author Ian Springer
*/
-@SuppressWarnings("unchecked")
+@SuppressWarnings({ "rawtypes", "unchecked" })
public class ResourceContainer implements Serializable {
private static final long serialVersionUID = 1L;
@@ -76,7 +76,7 @@ public class ResourceContainer implements Serializable {
}
public enum ResourceComponentState {
- STARTED, STOPPED
+ STARTED, STOPPED, STARTING
}
// thread pools used to invoke methods on container's components
commit ac6eedae2d41ac18cf05672a1a37e7b0b8ea917a
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Dec 5 15:51:07 2011 -0500
[Bug 760289 - Excessive file scanning in drift detection when using includes filters]
Now, when using includes file paths limit the directory scanning to only
those included directories.
Note that using a "." as an includes path basically translates to using
the base directory, in which case the scan will be as it is now.
A future enhancement may be to analyze the pattern and decide
whether a recursive scan is necessary. Currently. So, using includes
patterns to just look for certain files in the base directory will
expose you to the full scan.
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftDetector.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftDetector.java
index b376c59..8099de5 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftDetector.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/drift/DriftDetector.java
@@ -27,6 +27,7 @@ import org.rhq.common.drift.FileEntry;
import org.rhq.common.drift.Headers;
import org.rhq.core.domain.drift.DriftChangeSetCategory;
import org.rhq.core.domain.drift.DriftDefinition;
+import org.rhq.core.domain.drift.Filter;
import org.rhq.core.util.MessageDigestGenerator;
import org.rhq.core.util.file.FileVisitor;
@@ -172,13 +173,12 @@ public class DriftDetector implements Runnable {
log.debug("Generating drift change set for " + schedule);
- File currentSnapshot = changeSetMgr.findChangeSet(schedule.getResourceId(),
- schedule.getDriftDefinition().getName(), COVERAGE);
+ File currentSnapshot = changeSetMgr.findChangeSet(schedule.getResourceId(), schedule.getDriftDefinition()
+ .getName(), COVERAGE);
File snapshotFile = currentSnapshot;
if (schedule.getDriftDefinition().isPinned()) {
snapshotFile = new File(snapshotFile.getParentFile(), "snapshot.pinned");
-
}
final File basedir = new File(basedir(schedule.getResourceId(), schedule.getDriftDefinition()));
@@ -208,43 +208,50 @@ public class DriftDetector implements Runnable {
}
// First look for files that have either been modified or deleted
- scanForModifiedOrDeletedFiles(schedule, basedir, processedFiles, snapshotEntries, deltaEntries, coverageReader);
+ scanForModifiedOrDeletedFiles(schedule, basedir, processedFiles, snapshotEntries, deltaEntries,
+ coverageReader);
} finally {
coverageReader.close();
}
// If the basedir is still valid we need to do a directory tree scan to look for newly added files
if (basedir.isDirectory()) {
- forEachFile(basedir, new FilterFileVisitor(basedir, schedule.getDriftDefinition().getIncludes(), schedule
- .getDriftDefinition().getExcludes(), new FileVisitor() {
- @Override
- public void visit(File file) {
- try {
- if (processedFiles.contains(file)) {
- return;
- }
+ DriftDefinition driftDef = schedule.getDriftDefinition();
+ List<Filter> includes = driftDef.getIncludes();
+ List<Filter> excludes = driftDef.getExcludes();
+
+ for (File dir : getScanDirectories(basedir, includes)) {
+ forEachFile(dir, new FilterFileVisitor(basedir, includes, excludes, new FileVisitor() {
+ @Override
+ public void visit(File file) {
+ try {
+ if (processedFiles.contains(file)) {
+ return;
+ }
- if (!file.canRead()) {
- if (log.isDebugEnabled()) {
- log.debug("Skipping " + file.getPath() + " since it is not readable.");
+ if (!file.canRead()) {
+ if (log.isDebugEnabled()) {
+ log.debug("Skipping " + file.getPath() + " since it is not readable.");
+ }
+ return;
}
- return;
- }
- if (log.isInfoEnabled()) {
- log.info("Detected added file for " + schedule + " --> " + file.getAbsolutePath());
- }
+ if (log.isInfoEnabled()) {
+ log.info("Detected added file for " + schedule + " --> " + file.getAbsolutePath());
+ }
- FileEntry newEntry = addedFileEntry(relativePath(basedir, file), sha256(file));
- deltaEntries.add(newEntry);
- snapshotEntries.add(newEntry);
- } catch (IOException e) {
- log.error("An error occurred while generating a drift change set for " + schedule + ": "
- + e.getMessage());
- throw new DriftDetectionException("An error occurred while generating a drift change set", e);
+ FileEntry newEntry = addedFileEntry(relativePath(basedir, file), sha256(file));
+ deltaEntries.add(newEntry);
+ snapshotEntries.add(newEntry);
+ } catch (IOException e) {
+ log.error("An error occurred while generating a drift change set for " + schedule + ": "
+ + e.getMessage());
+ throw new DriftDetectionException("An error occurred while generating a drift change set",
+ e);
+ }
}
- }
- }));
+ }));
+ }
}
if (deltaEntries.isEmpty()) {
@@ -255,8 +262,8 @@ public class DriftDetector implements Runnable {
// the current snapshot to match the pinned snapshot. Note though
// that we increment the snapshot version in order to let the server
// know about the state change.
- if (schedule.getDriftDefinition().isPinned() && newVersion > 1 && !isPreviousChangeSetEmpty(
- schedule.getResourceId(), schedule.getDriftDefinition())) {
+ if (schedule.getDriftDefinition().isPinned() && newVersion > 1
+ && !isPreviousChangeSetEmpty(schedule.getResourceId(), schedule.getDriftDefinition())) {
currentSnapshot.delete();
File newSnapshot = updateCurrentSnapshot(schedule, snapshotEntries, newVersion);
@@ -264,8 +271,8 @@ public class DriftDetector implements Runnable {
// TODO report back to the server that we are back in compliance
}
} else {
- if (schedule.getDriftDefinition().isPinned() && newVersion > 1 &&
- isSameAsPreviousChangeSet(deltaEntries, currentSnapshot)) {
+ if (schedule.getDriftDefinition().isPinned() && newVersion > 1
+ && isSameAsPreviousChangeSet(deltaEntries, currentSnapshot)) {
// if we are still out of compliance just report, we report a
// repeat change set to indicate no changes but also still out
// of compliance.
@@ -281,6 +288,26 @@ public class DriftDetector implements Runnable {
}
}
+ private Set<File> getScanDirectories(final File basedir, List<Filter> includes) {
+
+ Set<File> directories = new HashSet<File>();
+
+ if (null == includes || includes.isEmpty()) {
+ directories.add(basedir);
+ } else {
+ for (Filter filter : includes) {
+ String path = filter.getPath();
+ if (".".equals(path)) {
+ directories.add(basedir);
+ } else {
+ directories.add(new File(basedir, path));
+ }
+ }
+ }
+
+ return directories;
+ }
+
private void scanForModifiedOrDeletedFiles(DriftDetectionSchedule schedule, File basedir, Set<File> processedFiles,
List<FileEntry> snapshotEntries, List<FileEntry> deltaEntries, ChangeSetReader coverageReader)
throws IOException {
@@ -317,6 +344,7 @@ public class DriftDetector implements Runnable {
}
}
+ @SuppressWarnings("unused")
private boolean isPreviousChangeSetEmpty(int resourceId, DriftDefinition definition) throws IOException {
File changeSet = changeSetMgr.findChangeSet(resourceId, definition.getName(), DRIFT);
if (!changeSet.exists()) {
@@ -342,15 +370,14 @@ public class DriftDetector implements Runnable {
}
private void updateDeltaSnapshot(DriftDetectionSummary summary, DriftDetectionSchedule schedule,
- List<FileEntry> deltaEntries, int newVersion, File oldSnapshot, File newSnapshot)
- throws IOException {
+ List<FileEntry> deltaEntries, int newVersion, File oldSnapshot, File newSnapshot) throws IOException {
ChangeSetWriter deltaWriter = null;
try {
Headers deltaHeaders = createHeaders(schedule, DRIFT, newVersion);
- File driftChangeSet = changeSetMgr.findChangeSet(schedule.getResourceId(),
- schedule.getDriftDefinition().getName(), DRIFT);
+ File driftChangeSet = changeSetMgr.findChangeSet(schedule.getResourceId(), schedule.getDriftDefinition()
+ .getName(), DRIFT);
deltaWriter = changeSetMgr.getChangeSetWriter(driftChangeSet, deltaHeaders);
summary.setDriftChangeSet(driftChangeSet);
@@ -381,10 +408,9 @@ public class DriftDetector implements Runnable {
try {
Headers snapshotHeaders = createHeaders(schedule, COVERAGE, newVersion);
- File newSnapshot = changeSetMgr.findChangeSet(schedule.getResourceId(),
- schedule.getDriftDefinition().getName(), COVERAGE);
- newSnapshotWriter = changeSetMgr.getChangeSetWriter(schedule.getResourceId(),
- snapshotHeaders);
+ File newSnapshot = changeSetMgr.findChangeSet(schedule.getResourceId(), schedule.getDriftDefinition()
+ .getName(), COVERAGE);
+ newSnapshotWriter = changeSetMgr.getChangeSetWriter(schedule.getResourceId(), snapshotHeaders);
for (FileEntry entry : snapshotEntries) {
newSnapshotWriter.write(entry);
@@ -416,19 +442,19 @@ public class DriftDetector implements Runnable {
return false;
}
switch (entry.getType()) {
- case FILE_ADDED:
- if (!entry.getNewSHA().equals(newEntry.getNewSHA())) {
- return false;
- }
- case FILE_CHANGED:
- if (!entry.getNewSHA().equals(newEntry.getNewSHA()) ||
- !entry.getOldSHA().equals(newEntry.getOldSHA())) {
- return false;
- }
- default: // FILE_REMOVED
- if (!entry.getOldSHA().equals(newEntry.getOldSHA())) {
- return false;
- }
+ case FILE_ADDED:
+ if (!entry.getNewSHA().equals(newEntry.getNewSHA())) {
+ return false;
+ }
+ case FILE_CHANGED:
+ if (!entry.getNewSHA().equals(newEntry.getNewSHA())
+ || !entry.getOldSHA().equals(newEntry.getOldSHA())) {
+ return false;
+ }
+ default: // FILE_REMOVED
+ if (!entry.getOldSHA().equals(newEntry.getOldSHA())) {
+ return false;
+ }
}
numEntries++;
}
@@ -448,9 +474,9 @@ public class DriftDetector implements Runnable {
if (!basedir.exists()) {
if (log.isWarnEnabled()) {
- log.warn("The base directory [" + basedir.getAbsolutePath() + "] for " + schedule + " does not " +
- "exist. You may want review the drift definition and verify that the value of the base " +
- "directory is in fact correct.");
+ log.warn("The base directory [" + basedir.getAbsolutePath() + "] for " + schedule + " does not "
+ + "exist. You may want review the drift definition and verify that the value of the base "
+ + "directory is in fact correct.");
}
summary.setBaseDirExists(false);
return;
@@ -482,9 +508,13 @@ public class DriftDetector implements Runnable {
}
private void doDirectoryScan(final DriftDetectionSchedule schedule, DriftDefinition driftDef, final File basedir,
- final ChangeSetWriter writer) {
- forEachFile(basedir, new FilterFileVisitor(basedir, driftDef.getIncludes(), driftDef.getExcludes(),
- new FileVisitor() {
+ final ChangeSetWriter writer) {
+
+ List<Filter> includes = driftDef.getIncludes();
+ List<Filter> excludes = driftDef.getExcludes();
+
+ for (File dir : getScanDirectories(basedir, includes)) {
+ forEachFile(dir, new FilterFileVisitor(basedir, includes, excludes, new FileVisitor() {
@Override
public void visit(File file) {
try {
@@ -506,6 +536,7 @@ public class DriftDetector implements Runnable {
}
}
}));
+ }
}
private String relativePath(File basedir, File file) {
commit 3595dcc97f66f1b280eb5e8b46e764cc937dba00
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Dec 9 14:05:05 2011 -0500
[Bug 765592 - drift diff is different depending on order in which files are selected]
Fixed, the new changes will now always get the "+" prefixes and the older
will get the "-" prefixes.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftCarouselView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftCarouselView.java
index 544ef81..6899913 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftCarouselView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftCarouselView.java
@@ -267,11 +267,18 @@ public class DriftCarouselView extends BookmarkableCarousel implements DetailsVi
public void executeAction(Object actionValue) {
- String id1 = selectedRecords.get(0).getAttribute(DriftDataSource.ATTR_ID);
- String id2 = selectedRecords.get(1).getAttribute(DriftDataSource.ATTR_ID);
- final String path = selectedRecords.get(0).getAttribute(DriftDataSource.ATTR_PATH);
-
- GWTServiceLookup.getDriftService().generateUnifiedDiffByIds(id1, id2,
+ Record record1 = selectedRecords.get(0);
+ Record record2 = selectedRecords.get(1);
+ final String path = record1.getAttribute(DriftDataSource.ATTR_PATH);
+ String id1 = record1.getAttribute(DriftDataSource.ATTR_ID);
+ String id2 = record2.getAttribute(DriftDataSource.ATTR_ID);
+ // regardless of selection order, compare the same way, showing newest changes with '+' signs
+ int version1 = record1.getAttributeAsInt(DriftDataSource.ATTR_CHANGESET_VERSION);
+ int version2 = record2.getAttributeAsInt(DriftDataSource.ATTR_CHANGESET_VERSION);
+ String diffOldId = (version1 < version2) ? id1 : id2;
+ String diffNewId = (version1 < version2) ? id2 : id1;
+
+ GWTServiceLookup.getDriftService().generateUnifiedDiffByIds(diffOldId, diffNewId,
new AsyncCallback<FileDiffReport>() {
@Override
public void onFailure(Throwable caught) {
commit c69f86e8c6d6674db90419751eb4daeaa62eac49
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri Feb 3 13:13:18 2012 +0100
[BZ 773661] - Reporting invalid plugin configuration if the resource starts
failing startup after upgrade and after manual add of a resource.
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
index 98310a1..eaee690 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
@@ -795,6 +795,7 @@ public class InventoryManager extends AgentService implements ContainerService,
performServiceScan(resource.getId());
if (null != startError) {
+ handleInvalidPluginConfigurationResourceError(resource, startError);
throw new PluginContainerException("The resource [" + resource
+ "] has been added but could not be started. Verify the supplied configuration values: ",
startError);
@@ -1657,7 +1658,7 @@ public class InventoryManager extends AgentService implements ContainerService,
* @param t the exception that indicates the problem with the plugin configuration
* @return true if the error was sent successfully, or false otherwise
*/
- private boolean handleInvalidPluginConfigurationResourceError(Resource resource, Throwable t) {
+ public boolean handleInvalidPluginConfigurationResourceError(Resource resource, Throwable t) {
resource.setConnected(false); // invalid plugin configuration infers the resource component is disconnected
// Give the server-side an error message describing the connection failure that can be
// displayed on the resource's Inventory page.
@@ -2872,4 +2873,4 @@ public class InventoryManager extends AgentService implements ContainerService,
// nothing to do
}
}
-}
\ No newline at end of file
+}
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/upgrade/ResourceUpgradeDelegate.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/upgrade/ResourceUpgradeDelegate.java
index c32ca97..ffd2065 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/upgrade/ResourceUpgradeDelegate.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/upgrade/ResourceUpgradeDelegate.java
@@ -217,8 +217,10 @@ public class ResourceUpgradeDelegate {
inventoryManager.activateResource(resource, container, true);
} catch (InvalidPluginConfigurationException e) {
log.debug("Resource [" + resource + "] failed to start up after upgrade.", e);
+ inventoryManager.handleInvalidPluginConfigurationResourceError(resource, e);
} catch (Throwable t) {
log.error("Failed to activate the resource [" + resource + "] after upgrade.", t);
+ inventoryManager.handleInvalidPluginConfigurationResourceError(resource, t);
}
}
}
commit c5622ffb62e3f568d01975aa7eba6d1bfee301fe
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri Feb 3 13:15:05 2012 +0100
[BZ 773661] - The security exception is thrown directly if the principal is
null but wrapped in another exception if the principal is non-null.
Report both instances as InvalidPluginConfigurationExceptions while
connecting to profile service.
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerComponent.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerComponent.java
index 299bdcd..804657c 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerComponent.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerComponent.java
@@ -371,6 +371,7 @@ public class ApplicationServerComponent<T extends ResourceComponent<?>> implemen
this.connection = connectionProvider.connect();
} catch (RuntimeException e) {
Throwable rootCause = ExceptionUtils.getRootCause(e);
+ rootCause = rootCause == null ? e : rootCause;
if (rootCause instanceof SecurityException) {
if (log.isDebugEnabled()) {
log.debug("Failed to connect to Profile Service.", e);
commit 458626ace44e55ebe9c88c00cdacadb6856a8dec
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri Feb 3 13:34:21 2012 +0100
[BZ 773661] - Invalid plugin configuration errors are now reported also
during the InventoryManager start up.
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
index 51ad1b7..98310a1 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
@@ -2831,8 +2831,10 @@ public class InventoryManager extends AgentService implements ContainerService,
}
} catch (InvalidPluginConfigurationException e) {
log.debug("Failed to activate resource [" + resource + "] due to invalid plugin configuration.", e);
+ handleInvalidPluginConfigurationResourceError(resource, e);
} catch (Throwable t) {
log.error("Exception thrown while activating [" + resource + "].", t);
+ handleInvalidPluginConfigurationResourceError(resource, t);
}
}
}
commit 9eebf13c055908a1afd357ff4e507052190fb890
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Feb 2 08:45:39 2012 -0500
[BZ 784124] forgot to fix this test
Due to the conflict here, I also pulled in BZ 751027 (commit d1e85ac2ef91f4578861f139bbc248603fea782e)
This BZ was simply to make sure the test only runs on RH flavors, not just any old Linux.
Conflicts:
modules/common/ant-bundle/src/test/java/org/rhq/bundle/ant/AntLauncherTest.java
diff --git a/modules/common/ant-bundle/src/test/java/org/rhq/bundle/ant/AntLauncherTest.java b/modules/common/ant-bundle/src/test/java/org/rhq/bundle/ant/AntLauncherTest.java
index 1df24d6..bd2d35d 100644
--- a/modules/common/ant-bundle/src/test/java/org/rhq/bundle/ant/AntLauncherTest.java
+++ b/modules/common/ant-bundle/src/test/java/org/rhq/bundle/ant/AntLauncherTest.java
@@ -59,6 +59,7 @@ import org.rhq.core.util.updater.FileHashcodeMap;
public class AntLauncherTest {
private static final File DEPLOY_DIR = new File("target/test-ant-bundle").getAbsoluteFile();
private static final String ANT_BASEDIR = "target/test-classes";
+ private static final File REDHAT_RELEASE_FILE = new File("/etc/redhat-release");
private int deploymentId;
@@ -107,12 +108,13 @@ public class AntLauncherTest {
public void testInstall() throws Exception {
- if (skipNonLinux("testInstall")) return;
+ if (skipNonRHLinux("testInstall"))
+ return;
// We want to test a fresh install, so make sure the deploy dir doesn't pre-exist.
FileUtil.purge(DEPLOY_DIR, true);
- // but we do want to add an unrelated file to see that it remains untouched - the install just "goes around" it
+ // but we do want to add an unrelated file to see that it goes away - since we have manageRootDir=true
File unrelatedFile = writeFile("unrelated content", DEPLOY_DIR, "unrelated-file.txt");
AntLauncher ant = new AntLauncher();
@@ -156,16 +158,16 @@ public class AntLauncherTest {
assert new File(DEPLOY_DIR, "subdir/test.properties").exists() : "missing file";
assert new File(DEPLOY_DIR, "archived-bundle-file.txt").exists() : "missing archived bundle file";
assert new File(DEPLOY_DIR, "archived-subdir/archived-file-in-subdir.properties").exists() : "missing subdir archive file";
- assert unrelatedFile.exists() : "unrelated file was removed during the install";
+ assert !unrelatedFile.exists() : "unrelated file was not removed during the install";
assert readPropsFile(new File(DEPLOY_DIR, "subdir/test.properties")).getProperty("junk.listener.port").equals(
"10000");
assert readPropsFile(new File(DEPLOY_DIR, "archived-subdir/archived-file-in-subdir.properties")).getProperty(
"templatized.variable").equals("10000");
}
- private boolean skipNonLinux(String meth) {
- if (!System.getProperty("os.name").equals("Linux")) {
- System.out.println("Skipping " + meth + "() as this only works on Linux");
+ private boolean skipNonRHLinux(String meth) {
+ if (!System.getProperty("os.name").equals("Linux") || !REDHAT_RELEASE_FILE.exists()) {
+ System.out.println("Skipping " + meth + "() as this only works on Red Hat Linux flavors");
return true;
}
return false;
@@ -174,10 +176,10 @@ public class AntLauncherTest {
@Test(dependsOnMethods = "testInstall")
public void testUpgrade() throws Exception {
- if (skipNonLinux("testUpgrade")) return;
+ if (skipNonRHLinux("testUpgrade"))
+ return;
- // We want to test an upgrade, so do *not* wipe out the deploy dir - our test method @dependsOnMethods testInstall
- // but we do want to add an unrelated file to see that it gets deleted as part of the upgrade
+ // add an unrelated file to see that it gets deleted as part of the upgrade
File unrelatedFile = writeFile("unrelated content", DEPLOY_DIR, "unrelated-file.txt");
AntLauncher ant = new AntLauncher();
@@ -230,14 +232,15 @@ public class AntLauncherTest {
public void testUpgradeNoManageRootDir() throws Exception {
- if (skipNonLinux("testInstall")) return;
+ if (skipNonRHLinux("testInstall"))
+ return;
// We want to test an upgrade, so do *not* wipe out the deploy dir - let's re-invoke testInstall
// to get us to an initial state of the v1 bundle installed
testInstall();
// we still want the unrelated file - we want to see that manageRootDir=false works (unrelated files should not be deleted)
- File unrelatedFile = new File(DEPLOY_DIR, "unrelated-file.txt");
+ File unrelatedFile = writeFile("unrelated content", DEPLOY_DIR, "unrelated-file.txt");
assert unrelatedFile.exists() : "our initial install test method should have prepared an unmanaged file";
AntLauncher ant = new AntLauncher();
commit 43ba87eadc086fe9da031584620168f1f04d9ec1
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jan 26 17:19:43 2012 -0500
[BZ 784124] fix the issue where, on initial deployment of a bundle, we didn't clean out any files that happen to be in the deployment dir.
we need to remove them, they are in the way. we do back them up so they can be manually retrieved if the user screwed up.
diff --git a/modules/core/util/src/main/java/org/rhq/core/util/file/FileUtil.java b/modules/core/util/src/main/java/org/rhq/core/util/file/FileUtil.java
index c4ac737..9135279 100644
--- a/modules/core/util/src/main/java/org/rhq/core/util/file/FileUtil.java
+++ b/modules/core/util/src/main/java/org/rhq/core/util/file/FileUtil.java
@@ -33,6 +33,7 @@ import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.util.ArrayList;
import java.util.Deque;
import java.util.LinkedList;
import java.util.List;
@@ -102,6 +103,77 @@ public class FileUtil {
StreamUtil.copy(is, os);
}
+ public static void copyDirectory(File inDir, File outDir) throws IOException {
+ if (inDir.exists()) {
+ if (!inDir.isDirectory()) {
+ throw new IOException("Source directory [" + inDir + "] is not a directory");
+ }
+ } else {
+ throw new FileNotFoundException("Source directory [" + inDir + "] does not exist");
+ }
+
+ if (!outDir.mkdirs()) {
+ throw new IOException("Destination directory [" + outDir + "] failed to be created");
+ }
+
+ if (!canWrite(outDir)) {
+ throw new IOException("Cannot write to destination directory [" + outDir + "]");
+ }
+
+ // TODO do we care to restore the last mod time on the destination dir?
+ //outDir.setLastModified(inDir.lastModified());
+
+ File[] files = inDir.listFiles();
+ if (files == null) {
+ throw new IOException("Failed to get the list of files in source directory [" + inDir + "]");
+ }
+ for (File file : files) {
+ File copiedFile = new File(outDir, file.getName());
+ if (file.isDirectory()) {
+ copyDirectory(file, copiedFile);
+ } else {
+ copyFile(file, copiedFile);
+ }
+ }
+
+ files = null; // help GC
+ return;
+ }
+
+ /**
+ * Obtains the list of all files in the given directory and, recursively, all its subdirectories.
+ * Note that the returns list is only regular files - directory names are NOT in the list. Also,
+ * the names in the list are relative to the given directory.
+ * @param directory the directory whose files are to be returned
+ * @return list of files in the directory, not sorted in any particular order
+ * @throws IOException if directory does not exist or is not a directory
+ */
+ public static List<File> getDirectoryFiles(File directory) throws IOException {
+ ArrayList<File> files = new ArrayList<File>();
+ if (!directory.isDirectory()) {
+ throw new IOException("[" + directory + "] is not an existing directory");
+ }
+ getDirectoryFilesRecursive(directory, files, null);
+ return files;
+ }
+
+ private static void getDirectoryFilesRecursive(File directory, List<File> files, String relativeTo)
+ throws IOException {
+ File[] children = directory.listFiles();
+ if (children == null) {
+ throw new IOException("Cannot obtain files from directory [" + directory + "]");
+ }
+ for (File child : children) {
+ if (child.isDirectory()) {
+ getDirectoryFilesRecursive(child, files, ((relativeTo == null) ? "" : relativeTo) + child.getName()
+ + File.separatorChar);
+ } else {
+ files.add(new File(relativeTo, child.getName()));
+ }
+ }
+ return;
+ }
+
/**
* Copy a stream, using a buffer.
* @deprecated use {@link StreamUtil} for more methods like this - those are unit tested and used more
diff --git a/modules/core/util/src/main/java/org/rhq/core/util/updater/Deployer.java b/modules/core/util/src/main/java/org/rhq/core/util/updater/Deployer.java
index 652bcda..40ce727 100644
--- a/modules/core/util/src/main/java/org/rhq/core/util/updater/Deployer.java
+++ b/modules/core/util/src/main/java/org/rhq/core/util/updater/Deployer.java
@@ -28,6 +28,8 @@ import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
+import java.io.FilenameFilter;
+import java.io.IOException;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
@@ -301,9 +303,9 @@ public class Deployer {
return;
}
- debug("Estimated disk usage for this deployment is [", usage.getDiskUsage(), "] bytes (file count=[", usage
- .getFileCount(), "]). The maximum disk space currently usable is estimated to be [", usage
- .getMaxDiskUsable(), "] bytes.");
+ debug("Estimated disk usage for this deployment is [", usage.getDiskUsage(), "] bytes (file count=[",
+ usage.getFileCount(), "]). The maximum disk space currently usable is estimated to be [",
+ usage.getMaxDiskUsable(), "] bytes.");
if (usage.getDiskUsage() > usage.getMaxDiskUsable()) {
throw new Exception(
@@ -316,6 +318,31 @@ public class Deployer {
}
private FileHashcodeMap performInitialDeployment(DeployDifferences diff, boolean dryRun) throws Exception {
+ // If we are to fully manage the deployment dir, then we need to delete everything we find here.
+ // Any old files do not belong here - only our bundle files should live here now.
+ if (this.deploymentData.isManageRootDir()) {
+ File destDir = this.deploymentData.getDestinationDir();
+ log.info(buildLogMessage("Will be managing the deploy dir[", destDir,
+ "]; backing up and purging any obsolete content existing in there"));
+ if (destDir.isDirectory()) {
+ int deploymentId = this.deploymentData.getDeploymentProps().getDeploymentId();
+ backupFiles(diff, deploymentId, destDir, dryRun, null, true);
+ if (!dryRun) {
+ // we want to purge everything that is originally in here, but we backed up the files in here
+ // so make sure we don't delete our metadata directory, which is where the backed up files are
+ File[] doomedFiles = destDir.listFiles(new FilenameFilter() {
+ @Override
+ public boolean accept(File dir, String name) {
+ return !DeploymentsMetadata.METADATA_DIR.equals(name);
+ }
+ });
+ for (File doomedFile : doomedFiles) {
+ FileUtil.purge(doomedFile, true);
+ }
+ }
+ }
+ }
+
FileHashcodeMap newFileHashcodeMap = extractZipAndRawFiles(new HashMap<String, String>(0), diff, dryRun);
// this is an initial deployment, so we know every file is new - tell our diff about them all
@@ -340,8 +367,8 @@ public class Deployer {
// * if a current file is backed up
FileHashcodeMap original = this.deploymentsMetadata.getCurrentDeploymentFileHashcodes();
- ChangesFileHashcodeMap current = original.rescan(this.deploymentData.getDestinationDir(), this.deploymentData
- .getIgnoreRegex(), this.deploymentData.isManageRootDir());
+ ChangesFileHashcodeMap current = original.rescan(this.deploymentData.getDestinationDir(),
+ this.deploymentData.getIgnoreRegex(), this.deploymentData.isManageRootDir());
FileHashcodeMap newFiles = getNewDeploymentFileHashcodeMap();
if (current.getUnknownContent() != null) {
@@ -457,7 +484,8 @@ public class Deployer {
int backupDeploymentId = props.getDeploymentId();
debug("Backing up files as part of update deployment. dryRun=", dryRun);
for (String fileToBackupPath : currentFilesToBackup) {
- backupFile(diff, backupDeploymentId, fileToBackupPath, dryRun);
+ boolean toBeDeleted = currentFilesToDelete.remove(fileToBackupPath);
+ backupFile(diff, backupDeploymentId, fileToBackupPath, dryRun, toBeDeleted);
}
}
@@ -503,8 +531,8 @@ public class Deployer {
return newFileHashCodeMap;
}
- private void backupFile(DeployDifferences diff, int deploymentId, final String fileToBackupPath, boolean dryRun)
- throws Exception {
+ private void backupFile(DeployDifferences diff, int deploymentId, final String fileToBackupPath, boolean dryRun,
+ boolean removeFileToBackup) throws Exception {
File bakFile;
@@ -536,8 +564,8 @@ public class Deployer {
String destDirDriveLetter = FileUtil.stripDriveLetter(destDirAbsPathBuilder);
if (destDirDriveLetter == null || driveLetter.equals(destDirDriveLetter)) {
bakFile = new File(backupDir, fileToBackupPath);
- fileToBackup = new File(this.deploymentData.getDestinationDir(), fileToBackupPathNoDriveLetter
- .toString());
+ fileToBackup = new File(this.deploymentData.getDestinationDir(),
+ fileToBackupPathNoDriveLetter.toString());
} else {
throw new Exception("Cannot backup relative path [" + fileToBackupPath
+ "] whose drive letter is different than the destination directory ["
@@ -549,20 +577,77 @@ public class Deployer {
}
}
+ boolean deleted = false; // will be true if we were told to delete the file and we actually did delete it
+
if (!dryRun) {
bakFile.getParentFile().mkdirs();
- FileUtil.copyFile(fileToBackup, bakFile);
+ // try to do a rename first if we are to remove the file, since this is more likely
+ // much faster and more efficient.
+ // if it fails (perhaps because we are crossing file systems), try a true copy
+ if (removeFileToBackup) {
+ boolean movedSuccessfully = fileToBackup.renameTo(bakFile);
+ if (movedSuccessfully) {
+ deleted = true;
+ } else {
+ FileUtil.copyFile(fileToBackup, bakFile);
+ deleted = fileToBackup.delete();
+ if (deleted == false) {
+ // TODO: what should we do? is it a major failure if we can't remove files here?
+ debug("Failed to delete file [", fileToBackup, "] but it is backed up");
+ if (diff != null) {
+ diff.addError(fileToBackupPath, "File [" + fileToBackup.getAbsolutePath()
+ + "] did not delete");
+ }
+ }
+ }
+ } else {
+ FileUtil.copyFile(fileToBackup, bakFile);
+ }
+ } else {
+ deleted = removeFileToBackup; // this is a dry run, pretend we deleted it if we were asked to
}
debug("Backed up file [", fileToBackup, "] to [", bakFile, "]. dryRun=", dryRun);
+ if (deleted) {
+ debug("Deleted file [", fileToBackup, "] after backing it up. dryRun=", dryRun);
+ }
if (diff != null) {
diff.addBackedUpFile(fileToBackupPath, bakFile.getAbsolutePath());
+ if (deleted) {
+ diff.addDeletedFile(fileToBackupPath);
+ }
}
return;
}
+ private void backupFiles(DeployDifferences diff, int deploymentId, File dirToBackup, boolean dryRun,
+ String relativeTo, boolean removeSourceFiles) throws Exception {
+ File[] files = dirToBackup.listFiles();
+ if (files == null) {
+ throw new IOException("Failed to get the list of files in source directory [" + dirToBackup + "]");
+ }
+ if (files.length > 0) {
+ this.deploymentsMetadata.getMetadataDirectory().mkdirs(); // make sure we create this, might not be there yet
+ for (File file : files) {
+ if (file.isDirectory()) {
+ if (file.getName().equals(DeploymentsMetadata.METADATA_DIR)) {
+ continue; // skip the RHQ metadata directory, its where we are putting our backups!
+ }
+ backupFiles(diff, deploymentId, file, dryRun,
+ ((relativeTo == null) ? "" : relativeTo) + file.getName() + File.separatorChar,
+ removeSourceFiles);
+ } else {
+ backupFile(diff, deploymentId, ((relativeTo == null) ? "" : relativeTo) + file.getName(), dryRun,
+ removeSourceFiles);
+ }
+ }
+
+ files = null; // help GC
+ }
+ }
+
private FileHashcodeMap extractZipAndRawFiles(Map<String, String> currentFilesToLeaveAlone, DeployDifferences diff,
boolean dryRun) throws Exception {
@@ -615,8 +700,8 @@ public class Deployer {
ZipUtil.walkZipFile(zipFile, visitor);
// we have to compress the file again - our new compressed file will have the new realized files in them
if (!dryRun) {
- createZipFile(compressedFile, this.deploymentData.getDestinationDir(), visitor
- .getFileHashcodeMap());
+ createZipFile(compressedFile, this.deploymentData.getDestinationDir(),
+ visitor.getFileHashcodeMap());
}
}
@@ -1040,16 +1125,20 @@ public class Deployer {
private void debug(Object... objs) {
if (log.isDebugEnabled()) {
- String bundleName = this.deploymentData.getDeploymentProps().getBundleName();
- String bundleVersion = this.deploymentData.getDeploymentProps().getBundleVersion();
- int deploymentId = this.deploymentData.getDeploymentProps().getDeploymentId();
- StringBuilder str = new StringBuilder();
- str.append("Bundle [").append(bundleName).append(" v").append(bundleVersion).append(']');
- str.append("; Deployment [").append(deploymentId).append("]: ");
- for (Object o : objs) {
- str.append(o);
- }
- log.debug(str.toString());
+ log.debug(buildLogMessage(objs));
+ }
+ }
+
+ private String buildLogMessage(Object... objs) {
+ String bundleName = this.deploymentData.getDeploymentProps().getBundleName();
+ String bundleVersion = this.deploymentData.getDeploymentProps().getBundleVersion();
+ int deploymentId = this.deploymentData.getDeploymentProps().getDeploymentId();
+ StringBuilder str = new StringBuilder();
+ str.append("Bundle [").append(bundleName).append(" v").append(bundleVersion).append(']');
+ str.append("; Deployment [").append(deploymentId).append("]: ");
+ for (Object o : objs) {
+ str.append(o);
}
+ return str.toString();
}
}
diff --git a/modules/core/util/src/test/java/org/rhq/core/util/file/FileUtilTest.java b/modules/core/util/src/test/java/org/rhq/core/util/file/FileUtilTest.java
index 31659bd..bb7ad34 100644
--- a/modules/core/util/src/test/java/org/rhq/core/util/file/FileUtilTest.java
+++ b/modules/core/util/src/test/java/org/rhq/core/util/file/FileUtilTest.java
@@ -22,21 +22,92 @@
*/
package org.rhq.core.util.file;
+import static java.util.Arrays.asList;
+import static org.apache.commons.io.FileUtils.deleteDirectory;
+import static org.apache.commons.io.FileUtils.toFile;
+import static org.apache.commons.io.FileUtils.touch;
+import static org.rhq.test.AssertUtils.assertCollectionEqualsNoOrder;
+
+import java.io.ByteArrayInputStream;
import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
import org.testng.annotations.Test;
-import static java.util.Arrays.asList;
-import static org.apache.commons.io.FileUtils.deleteDirectory;
-import static org.apache.commons.io.FileUtils.toFile;
-import static org.apache.commons.io.FileUtils.touch;
-import static org.rhq.test.AssertUtils.assertCollectionEqualsNoOrder;
+import org.rhq.core.util.stream.StreamUtil;
@Test
public class FileUtilTest {
+ public void testCopyDirectory() throws Exception {
+ try {
+ FileUtil.copyDirectory(new File("this.does.not.exist"), new File("dummy"));
+ assert false : "the source directory did not exist, this should have failed because of that";
+ } catch (Exception ok) {
+ }
+
+ // create a source directory and a destination directory. Make sure we start off
+ // with a non-existent destination directory - we want the copyDirectory to create it for us.
+ File outDir = FileUtil.createTempDirectory("fileUtilTestCopyDir", ".dest", null);
+ assert outDir.delete() : "failed to start out with a non-existent dest directory";
+ assert !outDir.exists() : "dest directory should not exist"; // yes, I am paranoid
+
+ File inDir = FileUtil.createTempDirectory("fileUtilTestCopyDir", ".src", null);
+ try {
+ // create some test files in our source directory
+ String testFilename0 = "file0.txt";
+ String testFilename1 = "subdir" + File.separatorChar + "subfile1.txt";
+ String testFilename2 = "subdir" + File.separatorChar + "subfile2.txt";
+
+ File testFile = new File(inDir, testFilename0);
+ StreamUtil.copy(new ByteArrayInputStream("0".getBytes()), new FileOutputStream(testFile));
+ assert "0".equals(new String(StreamUtil.slurp(new FileInputStream(testFile)))); // sanity check, make sure its there
+
+ testFile = new File(inDir, testFilename1);
+ testFile.getParentFile().mkdirs();
+ StreamUtil.copy(new ByteArrayInputStream("1".getBytes()), new FileOutputStream(testFile));
+ assert "1".equals(new String(StreamUtil.slurp(new FileInputStream(testFile)))); // sanity check, make sure its there
+ testFile = new File(inDir, testFilename2);
+ testFile.getParentFile().mkdirs();
+ StreamUtil.copy(new ByteArrayInputStream("2".getBytes()), new FileOutputStream(testFile));
+ assert "2".equals(new String(StreamUtil.slurp(new FileInputStream(testFile)))); // sanity check, make sure its there
+
+ // copy our source directory and confirm the copies are correct
+ FileUtil.copyDirectory(inDir, outDir);
+
+ testFile = new File(outDir, testFilename0);
+ assert testFile.exists() : "file did not get created: " + testFile;
+ assert "0".equals(new String(StreamUtil.slurp(new FileInputStream(testFile))));
+ testFile = new File(outDir, testFilename1);
+ assert testFile.exists() : "file did not get created: " + testFile;
+ assert "1".equals(new String(StreamUtil.slurp(new FileInputStream(testFile))));
+ testFile = new File(outDir, testFilename2);
+ assert testFile.exists() : "file did not get created: " + testFile;
+ assert "2".equals(new String(StreamUtil.slurp(new FileInputStream(testFile))));
+
+ // let's test getDirectoryFiles while we are here
+ List<File> outFiles = FileUtil.getDirectoryFiles(outDir);
+ assert outFiles != null : outFiles;
+ assert outFiles.size() == 3 : outFiles;
+ assert outFiles.contains(new File(testFilename0)) : outFiles;
+ assert outFiles.contains(new File(testFilename1)) : outFiles;
+ assert outFiles.contains(new File(testFilename2)) : outFiles;
+ } finally {
+ // clean up our test
+ try {
+ FileUtil.purge(inDir, true);
+ } catch (Exception ignore) {
+ }
+ try {
+ FileUtil.purge(outDir, true);
+ } catch (Exception ignore) {
+ }
+ }
+ }
+
public void testStripDriveLetter() {
StringBuilder str;
@@ -142,8 +213,7 @@ public class FileUtilTest {
}
});
- assertCollectionEqualsNoOrder(expectedFiles, actualFiles,
- "Expected to visit all files in directory");
+ assertCollectionEqualsNoOrder(expectedFiles, actualFiles, "Expected to visit all files in directory");
}
@Test
@@ -176,8 +246,7 @@ public class FileUtilTest {
}
});
- assertCollectionEqualsNoOrder(expectedFiles, actualFiles,
- "Expected to visit files in sub directories");
+ assertCollectionEqualsNoOrder(expectedFiles, actualFiles, "Expected to visit files in sub directories");
}
@Test
@@ -210,8 +279,7 @@ public class FileUtilTest {
}
});
- assertCollectionEqualsNoOrder(expectedFiles, actualFiles,
- "Expected to visit files in nested sub directories");
+ assertCollectionEqualsNoOrder(expectedFiles, actualFiles, "Expected to visit files in nested sub directories");
}
public void testGetPattern() {
@@ -222,8 +290,8 @@ public class FileUtilTest {
assert regex.matcher("/basedir/test1.txt").matches();
assert !regex.matcher("/basedir/test2.txt").matches();
- regex = assertPatternsRegex("(/basedir/easy\\.txt)|(/basedir/test\\.txt)",
- new PathFilter("/basedir/easy.txt", null), new PathFilter("/basedir/test.txt", null));
+ regex = assertPatternsRegex("(/basedir/easy\\.txt)|(/basedir/test\\.txt)", new PathFilter("/basedir/easy.txt",
+ null), new PathFilter("/basedir/test.txt", null));
assert regex.matcher("/basedir/easy.txt").matches();
assert regex.matcher("/basedir/test.txt").matches();
@@ -244,8 +312,8 @@ public class FileUtilTest {
assert !regex.matcher("/basedir/subdir/foo.txt").matches();
assert !regex.matcher("/basedir/foo.txt.swp").matches();
- regex = assertPatternsRegex("(/var/lib/([^/]*\\.war))|(/var/lib/([^/]*\\.ear))",
- new PathFilter("/var/lib", "*.war"), new PathFilter("/var/lib", "*.ear"));
+ regex = assertPatternsRegex("(/var/lib/([^/]*\\.war))|(/var/lib/([^/]*\\.ear))", new PathFilter("/var/lib",
+ "*.war"), new PathFilter("/var/lib", "*.ear"));
assert regex.matcher("/var/lib/myapp.war").matches();
assert regex.matcher("/var/lib/myapp.ear").matches();
diff --git a/modules/core/util/src/test/java/org/rhq/core/util/updater/DeployerTest.java b/modules/core/util/src/test/java/org/rhq/core/util/updater/DeployerTest.java
index 69d6d53..a69931a 100644
--- a/modules/core/util/src/test/java/org/rhq/core/util/updater/DeployerTest.java
+++ b/modules/core/util/src/test/java/org/rhq/core/util/updater/DeployerTest.java
@@ -230,12 +230,13 @@ public class DeployerTest {
final String file999 = "dir1" + fileSeparator + "file999";
try {
- if (ignore) {
- // create a file that will be retained because we will be ignoring it
- File ignoreDir = FileUtil.createTempDirectory("ignoreme", ".dir", tmpDir);
- fileToIgnore = new File(ignoreDir, "some-log.log");
- StreamUtil.copy(new ByteArrayInputStream("boo".getBytes()), new FileOutputStream(fileToIgnore));
- }
+ // this is a file that will be removed because our initial deployment is managing the root deploy dir
+ // later we will recreate it to see that we ignore it during the upgrade.
+ // note that during the initial deployment, we will still back it up.
+ File ignoreDir = FileUtil.createTempDirectory("ignoreme", ".dir", tmpDir);
+ fileToIgnore = new File(ignoreDir, "some-log.log");
+ StreamUtil.copy(new ByteArrayInputStream("boo".getBytes()), new FileOutputStream(fileToIgnore));
+ String fileToIgnorePath = ignoreDir.getName() + "/" + fileToIgnore.getName(); // yes, use /, even if we are on windows
File testZipFile1 = new File("target/test-classes/updater-test1.zip");
File testZipFile2 = new File("target/test-classes/updater-test2.zip");
@@ -267,15 +268,25 @@ public class DeployerTest {
deployer.deploy(diff);
- if (ignore) {
- assert "boo".equals(new String(StreamUtil.slurp(new FileInputStream(fileToIgnore))));
- assert diff.getIgnoredFiles().size() == 0 : "this was an initial deploy - nothing to ignore (ignore is only for updates)";
- }
+ // our initial deploy should have deleted this because we are managing the root dir
+ assert !fileToIgnore.exists() : "should have removed this file since we are managing the root dir";
+ assert !fileToIgnore.getParentFile().exists() : "should have removed this file since we are managing the root dir";
+ assert diff.getIgnoredFiles().size() == 0 : "this was an initial deploy - nothing to ignore (ignore is only for updates)";
assert diff.getAddedFiles().size() == 6 : diff;
- assert diff.getDeletedFiles().size() == 0 : diff;
+ assert diff.getDeletedFiles().size() == 1 : diff;
+ assert diff.getDeletedFiles().contains(fileToIgnorePath) : "should have deleted this unknown file" + diff;
assert diff.getChangedFiles().size() == 0 : diff;
assert diff.getRealizedFiles().size() == 0 : "No fileA to realize in this deployment: " + diff;
- assert diff.getBackedUpFiles().size() == 0 : "No fileA to realize in this deployment: " + diff;
+ assert diff.getBackedUpFiles().size() == 1 : diff;
+ assert diff.getBackedUpFiles().get(fileToIgnorePath) != null : "should have backed up this file" + diff;
+
+ if (ignore) {
+ // let's create this again to make sure we really do ignore it
+ ignoreDir = FileUtil.createTempDirectory("ignoreme", ".dir", tmpDir);
+ fileToIgnore = new File(ignoreDir, "some-log.log");
+ StreamUtil.copy(new ByteArrayInputStream("boo".getBytes()), new FileOutputStream(fileToIgnore));
+ fileToIgnorePath = ignoreDir.getName() + "/" + fileToIgnore.getName(); // yes, use /, even if we are on windows
+ }
StreamUtil.copy(new ByteArrayInputStream("X".getBytes()), new FileOutputStream(new File(tmpDir, file1)));
StreamUtil.copy(new ByteArrayInputStream("X".getBytes()), new FileOutputStream(updaterAabsolute));
@@ -295,7 +306,7 @@ public class DeployerTest {
templateEngine, ignoreRegex, true, null);
deployer = new Deployer(dd);
diff = new DeployDifferences();
- deployer.deploy(diff);
+ deployer.deploy(diff); // this is an upgrade
if (ignore) {
assert "boo".equals(new String(StreamUtil.slurp(new FileInputStream(fileToIgnore))));
@@ -396,11 +407,11 @@ public class DeployerTest {
assert diff.getChangedFiles().contains(fileB) : diff;
assert diff.getBackedUpFiles().size() == 4 : diff;
assert diff.getBackedUpFiles().containsKey(diff.convertPath(updaterAabsolute.getAbsolutePath())) : diff;
- assert diff.getBackedUpFiles().get(diff.convertPath(updaterAabsolute.getAbsolutePath())).equals(
- diff.convertPath(updaterAabsoluteBackupTo2)) : diff;
+ assert diff.getBackedUpFiles().get(diff.convertPath(updaterAabsolute.getAbsolutePath()))
+ .equals(diff.convertPath(updaterAabsoluteBackupTo2)) : diff;
assert diff.getBackedUpFiles().containsKey(diff.convertPath(updaterBabsolute.getAbsolutePath())) : diff;
- assert diff.getBackedUpFiles().get(diff.convertPath(updaterBabsolute.getAbsolutePath())).equals(
- diff.convertPath(updaterBabsoluteBackupTo2)) : diff;
+ assert diff.getBackedUpFiles().get(diff.convertPath(updaterBabsolute.getAbsolutePath()))
+ .equals(diff.convertPath(updaterBabsoluteBackupTo2)) : diff;
assert diff.getBackedUpFiles().containsKey(fileB) : diff;
assert diff.getBackedUpFiles().get(fileB).equals(diff.convertPath(fileBbackupTo2.getAbsolutePath())) : diff;
assert diff.getBackedUpFiles().containsKey(file999) : diff;
@@ -442,8 +453,8 @@ public class DeployerTest {
assert diff.getChangedFiles().contains(diff.convertPath(updaterBabsolute.getAbsolutePath())) : diff;
assert diff.getBackedUpFiles().size() == 1 : diff;
assert diff.getBackedUpFiles().containsKey(diff.convertPath(updaterBabsolute.getAbsolutePath())) : diff;
- assert diff.getBackedUpFiles().get(diff.convertPath(updaterBabsolute.getAbsolutePath())).equals(
- diff.convertPath(updaterBabsoluteBackupTo3)) : diff;
+ assert diff.getBackedUpFiles().get(diff.convertPath(updaterBabsolute.getAbsolutePath()))
+ .equals(diff.convertPath(updaterBabsoluteBackupTo3)) : diff;
if (realize) {
assert diff.getRealizedFiles().size() == 1 : diff;
assert diff.getRealizedFiles().containsKey(fileA) : diff;
diff --git a/modules/core/util/src/test/java/org/rhq/core/util/updater/SimpleDeployerTest.java b/modules/core/util/src/test/java/org/rhq/core/util/updater/SimpleDeployerTest.java
index f875576..2736f16 100644
--- a/modules/core/util/src/test/java/org/rhq/core/util/updater/SimpleDeployerTest.java
+++ b/modules/core/util/src/test/java/org/rhq/core/util/updater/SimpleDeployerTest.java
@@ -205,7 +205,15 @@ public class SimpleDeployerTest {
baseNoNewWithCurrentDifferentThanOriginal(true);
}
- public void testWithSubdirectories() throws Exception {
+ public void testWithSubdirectoriesManageRootDir() throws Exception {
+ testWithSubdirectories(true);
+ }
+
+ public void testWithSubdirectoriesNoManageRootDir() throws Exception {
+ testWithSubdirectories(false);
+ }
+
+ private void testWithSubdirectories(boolean manageRootDir) throws Exception {
// this test is different than all the rest, start with clean tmp/dest dirs with no beforeMethod buildup
FileUtil.purge(this.tmpDir, false);
FileUtil.purge(this.deployDir, false);
@@ -227,14 +235,40 @@ public class SimpleDeployerTest {
this.originalZipFiles.add(originalZipFile);
this.originalDeployProps = new DeploymentProperties(1, "simple", "1.0", "original test deployment");
DeploymentData dd = new DeploymentData(originalDeployProps, originalZipFiles, null, tmpDir, deployDir, null,
- null, null, null, true, null);
+ null, null, null, manageRootDir, null);
+ this.diff = new DeployDifferences();
Deployer deployer = new Deployer(dd);
- this.originalFileHashcodeMap = deployer.deploy(null);
+ this.originalFileHashcodeMap = deployer.deploy(this.diff);
assert new File(this.deployDir, origFileName1).exists();
assert new File(this.deployDir, origFileName2).exists();
- assert unrelated1.exists() : "the deployment removed unrelated file1";
- assert unrelated2.getParentFile().isDirectory() : "the deployment removed an unrelated dir";
- assert unrelated2.exists() : "the deployment removed unrelated file2";
+ if (manageRootDir) {
+ assert !unrelated1.exists() : "the deployment should have removed unrelated file1";
+ assert !unrelated2.getParentFile().isDirectory() : "the deployment should have removed an unrelated dir";
+ assert !unrelated2.exists() : "the deployment should have removed unrelated file2";
+
+ assert this.diff.getBackedUpFiles().size() == 2 : this.diff;
+ assert new File(this.diff.getBackedUpFiles().get(unrelatedFileName1)).exists() : this.diff;
+ assert new File(this.diff.getBackedUpFiles().get(unrelatedFileName2)).exists() : this.diff;
+ assert this.diff.getDeletedFiles().size() == 2 : this.diff;
+ assert this.diff.getDeletedFiles().contains(unrelatedFileName1) : this.diff;
+ assert this.diff.getDeletedFiles().contains(unrelatedFileName2) : this.diff;
+ } else {
+ assert this.diff.getBackedUpFiles().size() == 0 : this.diff;
+ assert this.diff.getDeletedFiles().size() == 0 : this.diff;
+ assert unrelated1.exists() : "the deployment removed unrelated file1";
+ assert unrelated2.getParentFile().isDirectory() : "the deployment removed an unrelated dir";
+ assert unrelated2.exists() : "the deployment removed unrelated file2";
+ }
+
+ assert this.diff.getAddedFiles().size() == 2 : this.diff;
+ assert this.diff.getAddedFiles().contains(origFileName1) : this.diff;
+ assert this.diff.getAddedFiles().contains(origFileName2) : this.diff;
+ assert this.diff.getChangedFiles().isEmpty() : this.diff;
+ assert this.diff.getIgnoredFiles().isEmpty() : this.diff;
+ assert this.diff.getRealizedFiles().isEmpty() : this.diff;
+ assert this.diff.getRestoredFiles().isEmpty() : this.diff;
+ assert !this.diff.wasCleaned() : this.diff;
+ assert this.diff.getErrors().isEmpty() : this.diff;
// deploy new content
this.newDeployProps = new DeploymentProperties(2, "simple", "2.0", "new test deployment");
@@ -246,19 +280,36 @@ public class SimpleDeployerTest {
new String[] { newFileName1, newFileName2 });
HashSet<File> newZipFiles = new HashSet<File>(1);
newZipFiles.add(newZipFile);
- dd = new DeploymentData(newDeployProps, newZipFiles, null, tmpDir, deployDir, null, null, null, null, true,
- null);
+ dd = new DeploymentData(newDeployProps, newZipFiles, null, tmpDir, deployDir, null, null, null, null,
+ manageRootDir, null);
deployer = new Deployer(dd);
FileHashcodeMap newFileHashcodeMap = deployer.deploy(this.diff);
+ assert newFileHashcodeMap != null;
assert new File(this.deployDir, newFileName1).exists();
assert new File(this.deployDir, newFileName2).exists();
assert !new File(this.deployDir, origFileName1).exists();
assert !new File(this.deployDir, origFileName2).exists();
- assert !unrelated1.exists() : "the deployment did not remove unrelated file1";
- assert !unrelated2.exists() : "the deployment did not remove unrelated file1";
- assert this.diff.getBackedUpFiles().size() == 2 : this.diff;
- assert new File(this.diff.getBackedUpFiles().get(unrelatedFileName1)).exists() : this.diff;
- assert new File(this.diff.getBackedUpFiles().get(unrelatedFileName2)).exists() : this.diff;
+ if (manageRootDir) {
+ assert !unrelated1.exists() : "the deployment did not remove unrelated file1";
+ assert !unrelated2.exists() : "the deployment did not remove unrelated file1";
+ } else {
+ assert unrelated1.exists() : "the deployment removed unrelated file1 but we aren't managing the root dir";
+ assert unrelated2.exists() : "the deployment removed unrelated file1 but we aren't managing the root dir";
+ }
+
+ assert this.diff.getAddedFiles().size() == 2 : this.diff;
+ assert this.diff.getAddedFiles().contains(newFileName1) : this.diff;
+ assert this.diff.getAddedFiles().contains(newFileName2) : this.diff;
+ assert this.diff.getDeletedFiles().size() == 2 : this.diff;
+ assert this.diff.getDeletedFiles().contains(origFileName1) : this.diff;
+ assert this.diff.getDeletedFiles().contains(origFileName2) : this.diff;
+ assert this.diff.getChangedFiles().isEmpty() : this.diff;
+ assert this.diff.getBackedUpFiles().isEmpty() : this.diff;
+ assert this.diff.getIgnoredFiles().isEmpty() : this.diff;
+ assert this.diff.getRealizedFiles().isEmpty() : this.diff;
+ assert this.diff.getRestoredFiles().isEmpty() : this.diff;
+ assert !this.diff.wasCleaned() : this.diff;
+ assert this.diff.getErrors().isEmpty() : this.diff;
}
private void baseX_X_X(boolean dryRun) throws Exception {
diff --git a/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java b/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java
index a772ef0..d712401 100644
--- a/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java
+++ b/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java
@@ -231,11 +231,17 @@ public class AntBundlePluginComponentTest {
upgrade(true);
}
+ @Test(enabled = true)
+ public void testAntBundleInitialInstall() throws Exception {
+ doAntBundleInitialInstall(true);
+ }
+
/**
* Test deployment of an RHQ bundle recipe with archive file and raw file
+ * @param startClean if true, the destination directory will be non-existent and thus clean
+ * if false, this will put some junk files in the dest directory
*/
- @Test(enabled = true)
- public void testAntBundleInitialInstall() throws Exception {
+ private void doAntBundleInitialInstall(boolean startClean) throws Exception {
ResourceType resourceType = new ResourceType("testSimpleBundle2Type", "plugin", ResourceCategory.SERVER, null);
BundleType bundleType = new BundleType("testSimpleBundle2BType", resourceType);
Repo repo = new Repo("test-bundle-two");
@@ -273,6 +279,25 @@ public class AntBundlePluginComponentTest {
props.store(outputStream, "test.properties comment");
outputStream.close();
+ // if we are not to start clean, create some junk files that will need to be backed up and moved away
+ if (startClean == false) {
+ this.destDir.mkdirs();
+ File junk1 = new File(this.destDir, "junk1.properties");
+ Properties junkProps = new Properties();
+ junkProps.setProperty("junk1", "wot gorilla?");
+ FileOutputStream os = new FileOutputStream(junk1);
+ junkProps.store(os, "junk1.properties comment");
+ os.close();
+
+ File junk2 = new File(this.destDir, "junksubdir" + File.separatorChar + "junk2.properties");
+ junk2.getParentFile().mkdirs();
+ junkProps = new Properties();
+ junkProps.setProperty("junk2", "more junk");
+ os = new FileOutputStream(junk2);
+ junkProps.store(os, "junk2.properties comment");
+ os.close();
+ }
+
BundleDeployRequest request = new BundleDeployRequest();
request.setBundleFilesLocation(this.bundleFilesDir);
request.setResourceDeployment(new BundleResourceDeployment(deployment, null));
@@ -501,8 +526,129 @@ public class AntBundlePluginComponentTest {
assert "2".equals(props.getProperty("external2")) : "bundle purge removed our unmanaged file 2";
}
+ /**
+ * Test deployment of an RHQ bundle recipe where the deploy directory is to be fully managed.
+ * This is the typical use-case and the default behavior.
+ */
+ @Test(enabled = true)
+ public void testAntBundleManageRootDir() throws Exception {
+ ResourceType resourceType = new ResourceType("testManageRootDirBundle", "plugin", ResourceCategory.SERVER, null);
+ BundleType bundleType = new BundleType("testManageRootDirBundle", resourceType);
+ Repo repo = new Repo("testManageRootDirBundle");
+ PackageType packageType = new PackageType("testManageRootDirBundle", resourceType);
+ Bundle bundle = new Bundle("testManageRootDirBundle", bundleType, repo, packageType);
+ BundleVersion bundleVersion = new BundleVersion("testManageRootDirBundle", "1.0", bundle,
+ getRecipeFromFile("test-bundle-manage-root-dir.xml"));
+ BundleDestination destination = new BundleDestination(bundle, "testManageRootDirBundle", new ResourceGroup(
+ "testManageRootDirBundle"), DEST_BASE_DIR_NAME, this.destDir.getAbsolutePath());
+ Configuration config = new Configuration();
+
+ BundleDeployment deployment = new BundleDeployment();
+ deployment.setName("test bundle deployment name");
+ deployment.setBundleVersion(bundleVersion);
+ deployment.setConfiguration(config);
+ deployment.setDestination(destination);
+
+ // create bundle test files
+ File file0 = new File(this.bundleFilesDir, "zero.properties");
+ Properties props = new Properties();
+ props.setProperty("zero", "0");
+ FileOutputStream outputStream = new FileOutputStream(file0);
+ props.store(outputStream, "zero file");
+ outputStream.close();
+
+ File file1 = new File(this.bundleFilesDir, "one.properties");
+ props.clear();
+ props.setProperty("one", "1");
+ outputStream = new FileOutputStream(file1);
+ props.store(outputStream, "one file");
+ outputStream.close();
+
+ File file2 = new File(this.bundleFilesDir, "two.properties");
+ props.clear();
+ props.setProperty("two", "2");
+ outputStream = new FileOutputStream(file2);
+ props.store(outputStream, "two file");
+ outputStream.close();
+
+ // create some external test files that don't belong to the bundle but are in the dest dir (which is to be managed by the bundle)
+ this.destDir.mkdirs();
+ File external1 = new File(this.destDir, "external1.properties");
+ props.clear();
+ props.setProperty("external1", "1");
+ outputStream = new FileOutputStream(external1);
+ props.store(outputStream, "external1 file");
+ outputStream.close();
+
+ File external2 = new File(this.destDir, "extdir/external2.properties");
+ external2.getParentFile().mkdirs();
+ props.clear();
+ props.setProperty("external2", "2");
+ outputStream = new FileOutputStream(external2);
+ props.store(outputStream, "external2 file");
+ outputStream.close();
+
+ // deploy the bundle
+ BundleDeployRequest request = new BundleDeployRequest();
+ request.setBundleFilesLocation(this.bundleFilesDir);
+ request.setResourceDeployment(new BundleResourceDeployment(deployment, null));
+ request.setBundleManagerProvider(new MockBundleManagerProvider());
+ request.setAbsoluteDestinationDirectory(this.destDir);
+
+ BundleDeployResult results = plugin.deployBundle(request);
+
+ assertResultsSuccess(results);
+
+ // test that files were deployed in the proper place
+ props.clear();
+ loadProperties(props, new FileInputStream(new File(this.destDir, "zero.properties")));
+ assert "0".equals(props.getProperty("zero")) : "did not deploy bundle correctly 0";
+ loadProperties(props, new FileInputStream(new File(this.destDir, "subdir1/one.properties")));
+ assert "1".equals(props.getProperty("one")) : "did not deploy bundle correctly 1";
+ loadProperties(props, new FileInputStream(new File(this.destDir, "subdir2/two.properties")));
+ assert "2".equals(props.getProperty("two")) : "did not deploy bundle correctly 2";
+
+ DeploymentsMetadata metadata = new DeploymentsMetadata(this.destDir);
+ assert metadata.isManaged() == true : "missing metadata directory";
+ assert metadata.getCurrentDeploymentProperties().getManageRootDir() == true : "should be managing root dir";
+
+ // make sure our external files/directories were removed because
+ // they aren't part of the bundle and we are fully managing the dest dir
+ props.clear();
+ try {
+ loadProperties(props, new FileInputStream(new File(this.destDir, "external1.properties")));
+ assert false : "bundle deployment did not remove our managed file 1";
+ } catch (Exception ok) {
+ }
+ try {
+ loadProperties(props, new FileInputStream(new File(this.destDir, "extdir/external2.properties")));
+ assert false : "bundle deployment did not remove our managed file 2";
+ } catch (Exception ok) {
+ }
+
+ // now purge the bundle - this should purge everything in the deploy dir because we are fully managing it
+ BundlePurgeRequest purgeRequest = new BundlePurgeRequest();
+ purgeRequest.setLiveResourceDeployment(new BundleResourceDeployment(deployment, null));
+ purgeRequest.setBundleManagerProvider(new MockBundleManagerProvider());
+ purgeRequest.setAbsoluteDestinationDirectory(this.destDir);
+
+ BundlePurgeResult purgeResults = plugin.purgeBundle(purgeRequest);
+ assertResultsSuccess(purgeResults);
+
+ // make sure our bundle files have been completely purged; the metadata directory should have been purged too
+ assert new File(this.destDir, "zero.properties").exists() == false;
+ assert new File(this.destDir, "subdir1/one.properties").exists() == false;
+ assert new File(this.destDir, "subdir2/two.properties").exists() == false;
+ assert new File(this.destDir, "subdir1").exists() == false;
+ assert new File(this.destDir, "subdir2").exists() == false;
+ assert this.destDir.exists() == false : "deploy dir should not exist, we were told to fully manage it";
+
+ metadata = new DeploymentsMetadata(this.destDir);
+ assert metadata.getMetadataDirectory().exists() == false : "metadata directory should not exist";
+ }
+
private void upgrade(boolean clean) throws Exception {
- testAntBundleInitialInstall(); // install a bundle first
+ doAntBundleInitialInstall(clean); // install a bundle first
cleanPluginDirs(); // clean everything but the dest dir - we want to upgrade the destination
prepareBeforeTestMethod(); // prepare for our new test
diff --git a/modules/plugins/ant-bundle/src/test/resources/test-bundle-manage-root-dir.xml b/modules/plugins/ant-bundle/src/test/resources/test-bundle-manage-root-dir.xml
new file mode 100644
index 0000000..9b77dd8
--- /dev/null
+++ b/modules/plugins/ant-bundle/src/test/resources/test-bundle-manage-root-dir.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+
+<project name="simple-build" default="main"
+ xmlns:rhq="antlib:org.rhq.bundle">
+
+ <rhq:bundle name="testManageRootDirBundle" version="1.0">
+ <rhq:deployment-unit name="simulated-war" manageRootDir="true">
+ <rhq:file name="zero.properties" destinationFile="zero.properties"/>
+ <rhq:file name="one.properties" destinationFile="subdir1/one.properties"/>
+ <rhq:file name="two.properties" destinationFile="subdir2/two.properties"/>
+ </rhq:deployment-unit>
+ </rhq:bundle>
+
+ <target name="main"/>
+
+</project>
\ No newline at end of file
commit a2d31a6fe235423914045354efea4063208c3830
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Mon Jan 23 12:09:18 2012 -0500
[BZ 784006] rename agent option to --fullcleanconfig and change the error you get so the user knows the command line argument to pass to set the token.
diff --git a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java
index c7e0cfc..805d280 100644
--- a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java
+++ b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java
@@ -2917,7 +2917,7 @@ public class AgentMain {
new LongOpt("console", LongOpt.REQUIRED_ARGUMENT, null, 'e'),
new LongOpt("daemon", LongOpt.NO_ARGUMENT, null, 'd'),
new LongOpt("cleanconfig", LongOpt.NO_ARGUMENT, null, 'l'),
- new LongOpt("cleanallconfig", LongOpt.NO_ARGUMENT, null, 'L'),
+ new LongOpt("fullcleanconfig", LongOpt.NO_ARGUMENT, null, 'L'),
new LongOpt("advanced", LongOpt.NO_ARGUMENT, null, 'a'),
new LongOpt("setup", LongOpt.NO_ARGUMENT, null, 's'),
new LongOpt("nostart", LongOpt.NO_ARGUMENT, null, 'n'),
diff --git a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/i18n/AgentI18NResourceKeys.java b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/i18n/AgentI18NResourceKeys.java
index 6489401..0a3930f 100644
--- a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/i18n/AgentI18NResourceKeys.java
+++ b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/i18n/AgentI18NResourceKeys.java
@@ -614,7 +614,7 @@ public interface AgentI18NResourceKeys {
+ "\\ -h, --help Shows this help message (default)\\n\\\n"
+ "\\ -i, --input=<filename> Specifies a script file to be used for input\\n\\\n"
+ "\\ -l, --cleanconfig Clears out existing configuration and data files, except for the security token.\\n\\\n"
- + "\\ -L, --cleanallconfig Clears out all existing configuration and data files so the agent starts with a totally clean slate\\n\\\n"
+ + "\\ -L, --fullcleanconfig Clears out all existing configuration and data files so the agent starts with a totally clean slate\\n\\\n"
+ "\\ -n, --nostart If specified, the agent will not be automatically started\\n\\\n"
+ "\\ -o, --output=<filename> Specifies a file to write all output (excluding log messages)\\n\\\n"
+ "\\ -p, --pref=<preferences name> Specifies the agent preferences name used to identify what configuration to use\\n\\\n"
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
index 75c4d65..9afc3b9 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
@@ -135,9 +135,11 @@ public class CoreServerServiceImpl implements CoreServerService {
if (agentByName != null) {
// the agent request provided a name that already is in use by an agent. However, the request
// provided a security token that was not assigned to any agent! How can this be? Something is fishy.
- String msg = "The agent asking for registration under the name [" + request.getName()
+ String msg = "The agent asking for registration under the name ["
+ + request.getName()
+ "] provided an invalid security token. This request will fail. "
- + "Please consult an administrator to reconfigure this agent with its proper security token.";
+ + "Please consult an administrator to obtain the agent's proper security token "
+ + "and restart the agent with the option \"-Drhq.agent.security-token=<the valid security token>\"";
throw new AgentRegistrationException(msg);
}
Agent agentByAddressPort = getAgentManager().getAgentByAddressAndPort(request.getAddress(),
@@ -172,9 +174,11 @@ public class CoreServerServiceImpl implements CoreServerService {
+ " and same security token.";
throw new AgentRegistrationException(msg);
} else {
- String msg = "The agent [" + request.getName()
+ String msg = "The agent ["
+ + request.getName()
+ "] is attempting to re-register without a security token. "
- + "Please consult an administrator to reconfigure this agent with its proper security token.";
+ + "Please consult an administrator to obtain the agent's proper security token "
+ + "and restart the agent with the option \"-Drhq.agent.security-token=<the valid security token>\"";
throw new AgentRegistrationException(msg);
}
commit 8bcb3666b7baf41af741f9078a215b97b6c31884
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Jan 19 13:06:11 2012 -0500
It seems we didn't really understand how testng was executing tests
when we submitted many test classes in a run. For example, when we
submit the server jar tests we assumed that the test classes would
be run sequentially, in perhaps some random order, and that each would
have its Before/AfterClass methods executed atthe start and end of each
test class execution.
That is not true.
Although testng seems to run most tests from a test class together, it does
not seem to make that guarantee. From latest traces it seems that the
test classes are, toa degree, pooled and:
1) you can not assume that all test methods for a test class will execute
before execution of test methods from another test class.
2) you can not assume that multiple BeforeClass methods will not execute
prior to an AfterClass. For example, this can happen:
Class1:BeforeClass
Class2:BeforeClass
Class1:AfterClass
Class2:AfterClass
Put another way: You can only assume that BeforeClass and AfterClass
execute in order, for a single test class. You can not predict the
execution order of all Before|AfterClass methods for all test classes.
3) The same rules as described in 2 apply to Before|AfterGroups
What this means is that you must be very careful with what is done in
Before|AfterClass and BeforeAfter|Groups. The work must not conflict
with work done in other test classes that will execute in the same test
suite.
This is very important when multiple test classes are sharing some sort
of test resource.
In general, it is much safer, although perhaps a bit slower, to use
@BeforeMethod() and @AfterMethod(alwaysRun=true).
This misunderstanding was particularly bad for us in the server jar tests,
where many test classes extend AbstractEJB3Test and utilize the jboss
mbean server under the covers, in the prepareXXX methods. This caused
clashes described above.
So, for server jar testing this reworks things to better share the mbean
server, even among tests in the same class. And migrates all
AbstractEJB3Test.prepare/unprepare calls from Before|AfterClass|Groups to
Before|After|Method.
also - remove/suppress IDE warnings from touched test classes
Conflicts:
modules/enterprise/server/itests/src/test/java/org/rhq/enterprise/server/drift/DriftServerTest.java
diff --git a/modules/enterprise/server/itests/src/test/java/org/rhq/enterprise/server/drift/DriftServerTest.java b/modules/enterprise/server/itests/src/test/java/org/rhq/enterprise/server/drift/DriftServerTest.java
index 375ec1e..9d1764d 100644
--- a/modules/enterprise/server/itests/src/test/java/org/rhq/enterprise/server/drift/DriftServerTest.java
+++ b/modules/enterprise/server/itests/src/test/java/org/rhq/enterprise/server/drift/DriftServerTest.java
@@ -109,7 +109,8 @@ public class DriftServerTest extends AbstractEJB3Test {
private void shutDownDriftServer() throws Exception {
unprepareServerPluginService();
- driftServerPluginService.stopMasterPluginContainer();
+ //already done by the above call
+ //driftServerPluginService.stopMasterPluginContainer();
}
private void shutDownAgentServices() {
@@ -178,10 +179,9 @@ public class DriftServerTest extends AbstractEJB3Test {
protected void deleteEntity(Class<?> clazz, String name, EntityManager em) {
try {
- Object entity = em.createQuery(
- "select entity from " + clazz.getSimpleName() + " entity where entity.name = :name")
- .setParameter("name", name)
- .getSingleResult();
+ Object entity = em
+ .createQuery("select entity from " + clazz.getSimpleName() + " entity where entity.name = :name")
+ .setParameter("name", name).getSingleResult();
em.remove(entity);
} catch (NoResultException e) {
// we can ignore no results because this code will run when the db
@@ -208,13 +208,8 @@ public class DriftServerTest extends AbstractEJB3Test {
}
protected void initResource() {
- resource = new ResourceBuilder().createResource()
- .withId(0)
- .withName(RESOURCE_NAME)
- .withResourceKey(RESOURCE_NAME)
- .withRandomUuid()
- .withResourceType(resourceType)
- .build();
+ resource = new ResourceBuilder().createResource().withId(0).withName(RESOURCE_NAME)
+ .withResourceKey(RESOURCE_NAME).withRandomUuid().withResourceType(resourceType).build();
}
protected Subject getOverlord() {
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/bundle/BundleManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/bundle/BundleManagerBeanTest.java
index 40a0168..587bdfb 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/bundle/BundleManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/bundle/BundleManagerBeanTest.java
@@ -37,9 +37,7 @@ import javax.persistence.Query;
import javax.transaction.TransactionManager;
import org.hibernate.LazyInitializationException;
-import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -94,7 +92,7 @@ import org.rhq.enterprise.server.util.LookupUtil;
* @author John Mazzitelli
* @author Jay Shaughnessy
*/
-@SuppressWarnings( { "unused" })
+@SuppressWarnings({ "unused" })
@Test
public class BundleManagerBeanTest extends AbstractEJB3Test {
@@ -115,19 +113,11 @@ public class BundleManagerBeanTest extends AbstractEJB3Test {
private Subject overlord;
TestServerCommunicationsService agentServiceContainer;
- @BeforeClass
- public void beforeClass() {
+ @BeforeMethod
+ public void beforeMethod() throws Exception {
agentServiceContainer = prepareForTestAgents();
agentServiceContainer.bundleService = new TestAgentClient(null, agentServiceContainer);
- }
- @AfterClass
- public void afterClass() throws Exception {
- unprepareForTestAgents();
- }
-
- @BeforeMethod
- public void beforeMethod() throws Exception {
this.ps = new TestBundleServerPluginService();
prepareCustomServerPluginService(this.ps);
bundleManager = LookupUtil.getBundleManager();
@@ -141,9 +131,14 @@ public class BundleManagerBeanTest extends AbstractEJB3Test {
@AfterMethod(alwaysRun = true)
public void afterMethod() throws Exception {
- cleanupDatabase();
- unprepareServerPluginService();
- this.ps = null;
+ unprepareForTestAgents();
+
+ try {
+ this.ps = null;
+ cleanupDatabase();
+ } finally {
+ unprepareServerPluginService();
+ }
}
private void cleanupDatabase() {
@@ -189,8 +184,7 @@ public class BundleManagerBeanTest extends AbstractEJB3Test {
+ TEST_PREFIX + "%'");
doomed = q.getResultList();
for (Object removeMe : doomed) {
- em.remove(em
- .getReference(BundleResourceDeployment.class, ((BundleResourceDeployment) removeMe).getId()));
+ em.remove(em.getReference(BundleResourceDeployment.class, ((BundleResourceDeployment) removeMe).getId()));
}
// remove any orphaned bds
q = em.createQuery("SELECT bd FROM BundleDeployment bd WHERE bd.description LIKE '" + TEST_PREFIX + "%'");
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/cloud/FailoverListManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/cloud/FailoverListManagerBeanTest.java
index 6b95388..29e9e58 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/cloud/FailoverListManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/cloud/FailoverListManagerBeanTest.java
@@ -27,7 +27,6 @@ import java.util.Set;
import javax.persistence.EntityManager;
-import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
@@ -86,13 +85,6 @@ public class FailoverListManagerBeanTest extends AbstractEJB3Test {
servers = new ArrayList<Server>();
agents = new ArrayList<Agent>();
newAgents = new ArrayList<Agent>();
-
- prepareForTestAgents();
- }
-
- @AfterClass
- public void afterClass() throws Exception {
- this.unprepareForTestAgents();
}
@BeforeMethod
@@ -100,9 +92,11 @@ public class FailoverListManagerBeanTest extends AbstractEJB3Test {
servers.clear();
agents.clear();
newAgents.clear();
+
+ prepareForTestAgents();
}
- @AfterMethod
+ @AfterMethod(alwaysRun = true)
public void afterMethod() throws Exception {
try {
getTransactionManager().begin();
@@ -151,6 +145,8 @@ public class FailoverListManagerBeanTest extends AbstractEJB3Test {
}
throw e;
+ } finally {
+ this.unprepareForTestAgents();
}
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
index 1dfd79a..3645d77 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
@@ -26,8 +26,6 @@ import java.util.Map;
import javax.persistence.EntityManager;
-import org.rhq.core.domain.criteria.ResourceConfigurationUpdateCriteria;
-import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
@@ -48,6 +46,7 @@ import org.rhq.core.domain.configuration.PluginConfigurationUpdate;
import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.configuration.ResourceConfigurationUpdate;
import org.rhq.core.domain.configuration.group.GroupPluginConfigurationUpdate;
+import org.rhq.core.domain.criteria.ResourceConfigurationUpdateCriteria;
import org.rhq.core.domain.discovery.AvailabilityReport;
import org.rhq.core.domain.discovery.MergeResourceResponse;
import org.rhq.core.domain.discovery.ResourceSyncInfo;
@@ -70,6 +69,7 @@ import org.rhq.enterprise.server.util.SessionTestHelper;
* Tests the configuration manager.
*/
@Test
+@SuppressWarnings("all")
public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
private static final boolean ENABLE_TESTS = true;
@@ -97,32 +97,27 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
configurationManager = LookupUtil.getConfigurationManager();
resourceManager = LookupUtil.getResourceManager();
overlord = LookupUtil.getSubjectManager().getOverlord();
-
- TestServerCommunicationsService agentServiceContainer = prepareForTestAgents();
- TestServices testServices = new TestServices();
- agentServiceContainer.configurationService = testServices;
- agentServiceContainer.discoveryService = testServices;
- }
-
- @AfterClass
- public void afterClass() throws Exception {
- unprepareForTestAgents();
}
@BeforeMethod
public void beforeMethod() throws Exception {
prepareScheduler();
+ TestServerCommunicationsService agentServiceContainer = prepareForTestAgents();
+ TestServices testServices = new TestServices();
+ agentServiceContainer.configurationService = testServices;
+ agentServiceContainer.discoveryService = testServices;
+
getTransactionManager().begin();
EntityManager em = getEntityManager();
try {
compatibleGroup = SessionTestHelper.createNewCompatibleGroupForRole(em, null, // no role necessary here
"compat");
- newResource1 = SessionTestHelper.createNewResourceForGroup(em, compatibleGroup, "res"
- + System.currentTimeMillis());
- newResource2 = SessionTestHelper.createNewResourceForGroup(em, compatibleGroup, "res"
- + System.currentTimeMillis());
+ newResource1 = SessionTestHelper.createNewResourceForGroup(em, compatibleGroup,
+ "res" + System.currentTimeMillis());
+ newResource2 = SessionTestHelper.createNewResourceForGroup(em, compatibleGroup,
+ "res" + System.currentTimeMillis());
// set one resource as the child of another, so that they don't both look like platforms under the agent
newResource1.addChildResource(newResource2);
@@ -145,7 +140,7 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
}
}
- @AfterMethod
+ @AfterMethod(alwaysRun = true)
public void afterMethod() throws Exception {
try {
// perform in-band and out-of-band work in quick succession
@@ -202,6 +197,7 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
} finally {
unprepareScheduler();
+ unprepareForTestAgents();
}
}
@@ -425,18 +421,18 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
configuration2.put(new PropertySimple("fail", "false"));
/* begin simple checks */
- PluginConfigurationUpdate update1 = configurationManager.updatePluginConfiguration(overlord, resource1
- .getId(), configuration1);
+ PluginConfigurationUpdate update1 = configurationManager.updatePluginConfiguration(overlord,
+ resource1.getId(), configuration1);
assert update1.getErrorMessage() == null : "We weren't expecting a failure here";
- PluginConfigurationUpdate update2 = configurationManager.updatePluginConfiguration(overlord, resource2
- .getId(), configuration2);
+ PluginConfigurationUpdate update2 = configurationManager.updatePluginConfiguration(overlord,
+ resource2.getId(), configuration2);
assert update2.getErrorMessage() == null : "We weren't expecting a failure here";
- Configuration updatedConfiguration1 = configurationManager.getPluginConfiguration(overlord, resource1
- .getId());
- Configuration updatedConfiguration2 = configurationManager.getPluginConfiguration(overlord, resource2
- .getId());
+ Configuration updatedConfiguration1 = configurationManager.getPluginConfiguration(overlord,
+ resource1.getId());
+ Configuration updatedConfiguration2 = configurationManager.getPluginConfiguration(overlord,
+ resource2.getId());
assert updatedConfiguration1.equals(configuration1) : "configuration1 was: " + updatedConfiguration1 + ", "
+ "expected was: " + configuration1;
@@ -487,8 +483,8 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
Map<Integer, Configuration> memberConfigs = new HashMap<Integer, Configuration>();
memberConfigs.put(resource1.getId(), configuration1);
memberConfigs.put(resource2.getId(), configuration2);
- int groupUpdateId = configurationManager.scheduleGroupPluginConfigurationUpdate(overlord, compatibleGroup
- .getId(), memberConfigs);
+ int groupUpdateId = configurationManager.scheduleGroupPluginConfigurationUpdate(overlord,
+ compatibleGroup.getId(), memberConfigs);
// instead of sleeping, let's directly execute what would normally be scheduled
//configurationManager.completeGroupPluginConfigurationUpdate(groupUpdateId);
@@ -713,8 +709,8 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
criteria.addFilterResourceIds(resource.getId());
criteria.fetchConfiguration(true);
criteria.addSortCreatedTime(PageOrdering.ASC);
- List<ResourceConfigurationUpdate> history =
- configurationManager.findResourceConfigurationUpdatesByCriteria(overlord, criteria);
+ List<ResourceConfigurationUpdate> history = configurationManager.findResourceConfigurationUpdatesByCriteria(
+ overlord, criteria);
assert history != null;
assert history.size() == 3;
@@ -1011,8 +1007,8 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
} else {
mybool.setErrorMessage(ThrowableUtil.getStackAsString(new IllegalArgumentException(
"Not a valid boolean")));
- response = new ConfigurationUpdateResponse(request.getConfigurationUpdateId(), request
- .getConfiguration(), new NullPointerException("This simulates a failed update"));
+ response = new ConfigurationUpdateResponse(request.getConfigurationUpdateId(),
+ request.getConfiguration(), new NullPointerException("This simulates a failed update"));
}
LookupUtil.getConfigurationManager().completeResourceConfigurationUpdate(response);
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentManagerBeanTest.java
index 6f75197..ea48c65 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentManagerBeanTest.java
@@ -28,7 +28,6 @@ import java.util.Set;
import javax.persistence.EntityManager;
import javax.persistence.Query;
-import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
@@ -146,23 +145,15 @@ public class ContentManagerBeanTest extends AbstractEJB3Test {
contentManager = LookupUtil.getContentManager();
subjectManager = LookupUtil.getSubjectManager();
- TestServerCommunicationsService agentServiceContainer = prepareForTestAgents();
- agentServiceContainer.contentService = contentAgentService;
-
populateResponseSteps();
}
- @AfterClass
- public void teardownAfterClass() throws Exception {
- unprepareForTestAgents();
- }
-
@BeforeMethod
public void setupBeforeMethod() throws Exception {
setupTestEnvironment();
}
- @AfterMethod
+ @AfterMethod(alwaysRun = true)
public void tearDownAfterMethod() throws Exception {
tearDownTestEnvironment();
}
@@ -316,8 +307,8 @@ public class ContentManagerBeanTest extends AbstractEJB3Test {
report.addDeployedPackage(package3);
// Package where entire package does not exist
- PackageDetailsKey key4 = new PackageDetailsKey("PackageX", "1.0.0", packageType4.getName(), architecture1
- .getName());
+ PackageDetailsKey key4 = new PackageDetailsKey("PackageX", "1.0.0", packageType4.getName(),
+ architecture1.getName());
ResourcePackageDetails package4 = new ResourcePackageDetails(key4);
// Fully populate this version to make sure the translation from details -> domain model works
@@ -1385,6 +1376,9 @@ public class ContentManagerBeanTest extends AbstractEJB3Test {
// Private --------------------------------------------
private void setupTestEnvironment() throws Exception {
+ TestServerCommunicationsService agentServiceContainer = prepareForTestAgents();
+ agentServiceContainer.contentService = contentAgentService;
+
getTransactionManager().begin();
EntityManager em = getEntityManager();
@@ -1567,6 +1561,7 @@ public class ContentManagerBeanTest extends AbstractEJB3Test {
}
} finally {
em.close();
+ unprepareForTestAgents();
}
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java
index 5a702ff..8c356f1 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java
@@ -29,8 +29,9 @@ import java.util.Properties;
import javax.management.MBeanServer;
import javax.persistence.Query;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
+import org.testng.annotations.AfterGroups;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import org.rhq.core.clientapi.server.core.AgentRegistrationException;
@@ -92,7 +93,7 @@ import org.rhq.enterprise.server.util.LookupUtil;
// J. testAttemptToChangeAgentName
// 1) register agent "newName" but with Z's host/port/token. In effect, this is trying to change the agent's name. (REJECT - you are not allowed to rename agents)
-@Test
+@Test(groups = { "core.agent-registration" })
public class CoreServerServiceImplTest extends AbstractEJB3Test {
private static final String TEST_AGENT_NAME_PREFIX = "CoreServerServiceImplTest.Agent";
private static final String RHQ_SERVER_NAME_PROPERTY = "rhq.server.high-availability.name";
@@ -109,6 +110,80 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
private static final int B_PORT = 22222;
private static final String B_HOST = "hostB";
+ @AfterGroups(groups = { "core.agent-registration" })
+ public void afterGroup() throws Exception {
+ // clean up any agents we might have created
+ Query q = getEntityManager().createQuery(
+ "select a from Agent a where name like '" + TEST_AGENT_NAME_PREFIX + "%'");
+ List<Agent> doomed = (List<Agent>) q.getResultList();
+ for (Agent deleteMe : doomed) {
+ LookupUtil.getAgentManager().deleteAgent(deleteMe);
+ }
+ }
+
+ @BeforeMethod
+ public void prepare() throws Exception {
+ // mock the name of our server via the sysprop (in production, this is normally set in rhq-server.properties)
+ oldServerNamePropertyValue = System.getProperty(RHQ_SERVER_NAME_PROPERTY);
+ String newServerNamePropertyValue = "CoreServerServiceImplTest.Server";
+ System.setProperty(RHQ_SERVER_NAME_PROPERTY, newServerNamePropertyValue);
+
+ // mock up our core server MBean that provides information about where the jboss home dir is
+ MBeanServer mbs = getJBossMBeanServer();
+ DummyCoreServer mbean = new DummyCoreServer();
+ mbs.registerMBean(mbean, CoreServerMBean.OBJECT_NAME);
+
+ // in order to register, we need to mock out the agent version file used by the server
+ // to determine the agent version it supports.
+ agentVersion = new AgentVersion("1.2.3", "12345");
+ File agentVersionFile = new File(mbean.getJBossServerHomeDir(),
+ "deploy/rhq.ear/rhq-downloads/rhq-agent/rhq-server-agent-versions.properties");
+ agentVersionFile.getParentFile().mkdirs();
+ agentVersionFile.delete();
+ Properties agentVersionProps = new Properties();
+ agentVersionProps.put("rhq-agent.latest.version", agentVersion.getVersion());
+ agentVersionProps.put("rhq-agent.latest.build-number", agentVersion.getBuild());
+ FileOutputStream fos = new FileOutputStream(agentVersionFile);
+ try {
+ agentVersionProps.store(fos, "This file was created by " + CoreServerServiceImplTest.class.getName());
+ } finally {
+ fos.close();
+ }
+
+ // this mocks out the endpoint ping - the server will think the agent that is registering is up and pingable
+ prepareForTestAgents();
+
+ // mock our server
+ server = new Server();
+ server.setName(newServerNamePropertyValue);
+ server.setAddress("CoreServerServiceImplTest.localhost");
+ server.setPort(12345);
+ server.setSecurePort(12346);
+ server.setOperationMode(OperationMode.NORMAL);
+ int serverId = LookupUtil.getServerManager().create(server);
+ server.setId(serverId);
+ }
+
+ @AfterMethod
+ public void unprepare() throws Exception {
+
+ // cleanup our test server
+ LookupUtil.getCloudManager().updateServerMode(new Integer[] { server.getId() }, OperationMode.DOWN);
+ LookupUtil.getCloudManager().deleteServer(server.getId());
+
+ // shutdown our mock mbean server
+ MBeanServer mbs = getJBossMBeanServer();
+ mbs.unregisterMBean(CoreServerMBean.OBJECT_NAME);
+
+ unprepareForTestAgents();
+
+ // in case this was set before our tests, put it back the way it was
+ if (oldServerNamePropertyValue != null) {
+ System.setProperty(RHQ_SERVER_NAME_PROPERTY, oldServerNamePropertyValue);
+ }
+ }
+
+ @Test
public void testNewAgentRegistrationWithOldToken() throws Exception {
// this tests the case where someone purged an agent from the DB, but then
// changed their mind and want to re-run that agent and re-register it again.
@@ -125,6 +200,7 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
LookupUtil.getAgentManager().deleteAgent(agent);
}
+ @Test
public void testChangeAddressPort() throws Exception {
CoreServerServiceImpl service = new CoreServerServiceImpl();
AgentRegistrationRequest request;
@@ -379,75 +455,6 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
}
}
- @BeforeClass
- public void prepare() throws Exception {
- // mock the name of our server via the sysprop (in production, this is normally set in rhq-server.properties)
- oldServerNamePropertyValue = System.getProperty(RHQ_SERVER_NAME_PROPERTY);
- String newServerNamePropertyValue = "CoreServerServiceImplTest.Server";
- System.setProperty(RHQ_SERVER_NAME_PROPERTY, newServerNamePropertyValue);
-
- // mock up our core server MBean that provides information about where the jboss home dir is
- MBeanServer mbs = getJBossMBeanServer();
- DummyCoreServer mbean = new DummyCoreServer();
- mbs.registerMBean(mbean, CoreServerMBean.OBJECT_NAME);
-
- // in order to register, we need to mock out the agent version file used by the server
- // to determine the agent version it supports.
- agentVersion = new AgentVersion("1.2.3", "12345");
- File agentVersionFile = new File(mbean.getJBossServerHomeDir(),
- "deploy/rhq.ear/rhq-downloads/rhq-agent/rhq-server-agent-versions.properties");
- agentVersionFile.getParentFile().mkdirs();
- agentVersionFile.delete();
- Properties agentVersionProps = new Properties();
- agentVersionProps.put("rhq-agent.latest.version", agentVersion.getVersion());
- agentVersionProps.put("rhq-agent.latest.build-number", agentVersion.getBuild());
- FileOutputStream fos = new FileOutputStream(agentVersionFile);
- try {
- agentVersionProps.store(fos, "This file was created by " + CoreServerServiceImplTest.class.getName());
- } finally {
- fos.close();
- }
-
- // this mocks out the endpoint ping - the server will think the agent that is registering is up and pingable
- prepareForTestAgents();
-
- // mock our server
- server = new Server();
- server.setName(newServerNamePropertyValue);
- server.setAddress("CoreServerServiceImplTest.localhost");
- server.setPort(12345);
- server.setSecurePort(12346);
- server.setOperationMode(OperationMode.NORMAL);
- int serverId = LookupUtil.getServerManager().create(server);
- server.setId(serverId);
- }
-
- @AfterClass
- public void unprepare() throws Exception {
- // clean up any agents we might have created
- Query q = getEntityManager().createQuery(
- "select a from Agent a where name like '" + TEST_AGENT_NAME_PREFIX + "%'");
- List<Agent> doomed = (List<Agent>) q.getResultList();
- for (Agent deleteMe : doomed) {
- LookupUtil.getAgentManager().deleteAgent(deleteMe);
- }
-
- // cleanup our test server
- LookupUtil.getCloudManager().updateServerMode(new Integer[] { server.getId() }, OperationMode.DOWN);
- LookupUtil.getCloudManager().deleteServer(server.getId());
-
- // shutdown our mock mbean server
- MBeanServer mbs = getJBossMBeanServer();
- mbs.unregisterMBean(CoreServerMBean.OBJECT_NAME);
-
- unprepareForTestAgents();
-
- // in case this was set before our tests, put it back the way it was
- if (oldServerNamePropertyValue != null) {
- System.setProperty(RHQ_SERVER_NAME_PROPERTY, oldServerNamePropertyValue);
- }
- }
-
interface DummyCoreServerMBean extends CoreServerMBean {
};
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java
index 082bd6b..630b778 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/discovery/DiscoveryBossBeanTest.java
@@ -39,7 +39,7 @@ import org.dbunit.ext.oracle.Oracle10DataTypeFactory;
import org.dbunit.ext.oracle.OracleDataTypeFactory;
import org.dbunit.ext.postgresql.PostgresqlDataTypeFactory;
import org.dbunit.operation.DatabaseOperation;
-import org.testng.annotations.AfterClass;
+import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -74,20 +74,15 @@ public class DiscoveryBossBeanTest extends AbstractEJB3Test {
@BeforeClass
public void beforeClass() throws Exception {
discoveryBoss = LookupUtil.getDiscoveryBoss();
+ }
+ @BeforeMethod
+ public void setupTestData() throws Exception {
dummyJBossMBeanServer = MBeanServerFactory.createMBeanServer("jboss");
MBeanServerLocator.setJBoss(dummyJBossMBeanServer);
dummyJBossMBeanServer.registerMBean(new ServerCommunicationsService(),
- ServerCommunicationsServiceMBean.OBJECT_NAME);
- }
-
- @AfterClass
- public void afterClass() {
- MBeanServerFactory.releaseMBeanServer(dummyJBossMBeanServer);
- }
+ ServerCommunicationsServiceMBean.OBJECT_NAME);
- @BeforeMethod
- public void setupTestData() throws Exception {
initDB();
platformType = getEntityManager().find(ResourceType.class, 1);
serverType = getEntityManager().find(ResourceType.class, 2);
@@ -96,6 +91,11 @@ public class DiscoveryBossBeanTest extends AbstractEJB3Test {
agent = getEntityManager().find(Agent.class, 1);
}
+ @AfterMethod(alwaysRun = true)
+ public void afterMethod() throws Exception {
+ MBeanServerFactory.releaseMBeanServer(dummyJBossMBeanServer);
+ }
+
@Test(groups = "integration.ejb3")
public void testBasicInventoryReport() throws Exception {
InventoryReport inventoryReport = new InventoryReport(agent);
@@ -211,7 +211,7 @@ public class DiscoveryBossBeanTest extends AbstractEJB3Test {
IDataSet getDataSet() throws Exception {
FlatXmlProducer xmlProducer = new FlatXmlProducer(new InputSource(getClass().getResourceAsStream(
- getDataSetFile())));
+ getDataSetFile())));
xmlProducer.setColumnSensing(true);
return new FlatXmlDataSet(xmlProducer);
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/drift/DriftManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/drift/DriftManagerBeanTest.java
index 5dabd97..e06329b 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/drift/DriftManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/drift/DriftManagerBeanTest.java
@@ -46,7 +46,6 @@ import org.rhq.core.clientapi.server.drift.DriftServerService;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.common.EntityContext;
import org.rhq.core.domain.configuration.Configuration;
-import org.rhq.core.domain.criteria.GenericDriftChangeSetCriteria;
import org.rhq.core.domain.criteria.JPADriftChangeSetCriteria;
import org.rhq.core.domain.criteria.ResourceCriteria;
import org.rhq.core.domain.drift.Drift;
@@ -109,19 +108,18 @@ public class DriftManagerBeanTest extends AbstractEJB3Test {
overlord = LookupUtil.getSubjectManager().getOverlord();
driftServerService = new DriftServerServiceImpl();
-
- TestServerCommunicationsService agentServiceContainer = prepareForTestAgents();
- agentServiceContainer.driftService = new TestDefService();
}
- @AfterClass
+ @AfterClass(alwaysRun = true)
public void afterClass() {
driftServerService = null;
- unprepareForTestAgents();
}
@BeforeMethod
public void beforeMethod() throws Exception {
+ TestServerCommunicationsService agentServiceContainer = prepareForTestAgents();
+ agentServiceContainer.driftService = new TestDefService();
+
prepareScheduler();
deleteDriftFiles();
@@ -134,6 +132,7 @@ public class DriftManagerBeanTest extends AbstractEJB3Test {
try {
deleteNewResource(newResource);
} finally {
+ unprepareForTestAgents();
unprepareScheduler();
}
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
index f068ead..bce9bad 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
@@ -35,8 +35,8 @@ import org.testng.annotations.Test;
import org.rhq.core.clientapi.agent.PluginContainerException;
import org.rhq.core.clientapi.agent.operation.CancelResults;
-import org.rhq.core.clientapi.agent.operation.OperationAgentService;
import org.rhq.core.clientapi.agent.operation.CancelResults.InterruptedState;
+import org.rhq.core.clientapi.agent.operation.OperationAgentService;
import org.rhq.core.clientapi.server.operation.OperationServerService;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.configuration.Configuration;
@@ -108,19 +108,18 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
overlord = LookupUtil.getSubjectManager().getOverlord();
operationServerService = new OperationServerServiceImpl();
-
- TestServerCommunicationsService agentServiceContainer = prepareForTestAgents();
- agentServiceContainer.operationService = new TestConfigService();
}
- @AfterClass
+ @AfterClass(alwaysRun = true)
public void afterClass() {
operationServerService = null;
- unprepareForTestAgents();
}
@BeforeMethod
public void beforeMethod() throws Exception {
+ TestServerCommunicationsService agentServiceContainer = prepareForTestAgents();
+ agentServiceContainer.operationService = new TestConfigService();
+
prepareScheduler();
simulatedOperation_Sleep = 500L;
@@ -137,6 +136,7 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
try {
deleteNewResource(newResource);
} finally {
+ unprepareForTestAgents();
unprepareScheduler();
}
}
@@ -226,8 +226,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
.getGroup().getId());
PageList<GroupOperationHistory> results;
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results.size() == 0;
// should be no resource histories that belong to it
@@ -290,8 +290,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert list.size() == 0;
PageList<GroupOperationHistory> results;
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results.size() == 0;
// should be no resource histories that belong to it
@@ -336,14 +336,14 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
Thread.sleep(9000L); // wait for it to be triggered and finish
PageList<GroupOperationHistory> results;
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results.size() == 1 : "Expected 1 result, but got " + results.size();
operationManager.deleteOperationHistory(overlord, results.get(0).getId(), false);
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results.size() == 0;
// purging group history purges all resource histories that belong to it
@@ -375,8 +375,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// wait for it to be triggered so we get a history item
for (int i = 0; i < 5; i++) {
Thread.sleep(1000L);
- results = operationManager.findPendingGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findPendingGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
if ((results != null) && (results.size() > 0)) {
break; // operation was triggered - got the history item
}
@@ -406,8 +406,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// cancel the group history - which cancels all the resource histories
operationManager.cancelOperationHistory(overlord, history.getId(), false);
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 1;
assert results.get(0).getStatus() == OperationRequestStatus.CANCELED : results.get(0);
@@ -426,8 +426,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// purge the group history
operationManager.deleteOperationHistory(overlord, history.getId(), false);
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 0; // none left, we purged the only group history there was
@@ -460,8 +460,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// wait for it to be triggered so we get a history item
for (int i = 0; i < 5; i++) {
Thread.sleep(1000L);
- results = operationManager.findPendingGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findPendingGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
if ((results != null) && (results.size() > 0)) {
break; // operation was triggered - got the history item
}
@@ -474,8 +474,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// get the one resource history from the group
PageList<ResourceOperationHistory> results2;
- results2 = operationManager.findPendingResourceOperationHistories(overlord, newResource.getId(), PageControl
- .getUnlimitedInstance());
+ results2 = operationManager.findPendingResourceOperationHistories(overlord, newResource.getId(),
+ PageControl.getUnlimitedInstance());
assert results2.size() == 1 : "Should have had 1 resource history result: " + results2;
ResourceOperationHistory rHistory = results2.get(0);
@@ -485,28 +485,28 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// this doesn't actually cancel the FINISHED resource operation. This simulates the fact that
// the agent couldn't cancel the resource op since it already finished.
operationManager.cancelOperationHistory(overlord, history.getId(), false);
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results.size() == 1;
assert results.get(0).getStatus() == OperationRequestStatus.CANCELED : results.get(0);
- results = operationManager.findPendingGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findPendingGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results.size() == 0;
// still pending - our operation wasn't really canceled - waiting for the agent to tell us its finished
results2 = operationManager.findCompletedResourceOperationHistories(overlord, newResource.getId(), null, null,
PageControl.getUnlimitedInstance());
assert results2.size() == 0;
- results2 = operationManager.findPendingResourceOperationHistories(overlord, newResource.getId(), PageControl
- .getUnlimitedInstance());
+ results2 = operationManager.findPendingResourceOperationHistories(overlord, newResource.getId(),
+ PageControl.getUnlimitedInstance());
assert results2.size() == 1;
assert results2.get(0).getStatus() == OperationRequestStatus.INPROGRESS : results2.get(0);
// purge the group history (note we tell it to even purge those in progress)
operationManager.deleteOperationHistory(overlord, history.getId(), true);
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 0; // none left, we purged the only group history there was
@@ -536,8 +536,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
Thread.sleep(4000L); // wait for it to finish, should be fast
PageList<GroupOperationHistory> results;
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 1;
GroupOperationHistory history = results.get(0);
@@ -573,8 +573,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert rHistory.getSubjectName().equals(overlord.getName()) : rHistory;
operationManager.deleteOperationHistory(overlord, history.getId(), false);
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 0; // none left, we purged the only group history there was
@@ -607,8 +607,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
Thread.sleep(8000L); // wait for it to finish, should be fast
PageList<GroupOperationHistory> results;
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
// the group job executed twice
assert results != null;
@@ -663,8 +663,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
operationManager.deleteOperationHistory(overlord, history0.getId(), false);
operationManager.deleteOperationHistory(overlord, history1.getId(), false);
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 0 : results; // none left, we purged the two group histories
@@ -710,8 +710,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
Thread.sleep(4000L); // wait for it to finish, should be fast
PageList<GroupOperationHistory> results;
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 1;
GroupOperationHistory history = results.get(0);
@@ -742,8 +742,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert rHistory.getSubjectName().equals(overlord.getName()) : rHistory;
// parameters and results are lazily loaded in the paginated queries, but are eagerly individually
- rHistory = (ResourceOperationHistory) operationManager.getOperationHistoryByHistoryId(overlord, rHistory
- .getId());
+ rHistory = (ResourceOperationHistory) operationManager.getOperationHistoryByHistoryId(overlord,
+ rHistory.getId());
assert rHistory.getResults() != null;
assert rHistory.getResults().getSimple("param1echo") != null;
assert rHistory.getResults().getSimple("param1echo").getStringValue().equals("group-test");
@@ -751,8 +751,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert rHistory.getParameters().getId() != history.getParameters().getId() : "params should be copies - not shared";
operationManager.deleteOperationHistory(overlord, history.getId(), false);
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 0; // none left, we purged the only group history there was
@@ -781,8 +781,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
Thread.sleep(4000L); // wait for it to finish, should be fast
PageList<GroupOperationHistory> results;
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 1 : "Did not get 1 result back, but " + results.size();
GroupOperationHistory history = results.get(0);
@@ -810,8 +810,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert rHistory.getSubjectName().equals(overlord.getName()) : rHistory;
operationManager.deleteOperationHistory(overlord, history.getId(), false);
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 0; // none left, we purged the only group history there was
@@ -840,8 +840,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
Thread.sleep(4000L); // wait for it to finish, should be fast
PageList<GroupOperationHistory> results;
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 1;
GroupOperationHistory history = results.get(0);
@@ -869,8 +869,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert rHistory.getSubjectName().equals(overlord.getName()) : rHistory;
operationManager.deleteOperationHistory(overlord, history.getId(), false);
- results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findCompletedGroupOperationHistories(overlord, newGroup.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 0; // none left, we purged the only group history there was
@@ -1174,8 +1174,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// wait for it to be triggered so we get a history item
for (int i = 0; i < 5; i++) {
Thread.sleep(1000L);
- results = operationManager.findPendingResourceOperationHistories(overlord, resource.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findPendingResourceOperationHistories(overlord, resource.getId(),
+ PageControl.getUnlimitedInstance());
if ((results != null) && (results.size() > 0)) {
break; // operation was triggered - got the history item
}
@@ -1233,8 +1233,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// wait for it to be triggered so we get a history item
for (int i = 0; i < 5; i++) {
Thread.sleep(1000L);
- results = operationManager.findPendingResourceOperationHistories(overlord, resource.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findPendingResourceOperationHistories(overlord, resource.getId(),
+ PageControl.getUnlimitedInstance());
if ((results != null) && (results.size() > 0)) {
break; // operation was triggered - got the history item
}
@@ -1254,8 +1254,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert results.size() == 0;
// still pending - our operation wasn't really canceled - waiting for the agent to tell us its finished
- results = operationManager.findPendingResourceOperationHistories(overlord, resource.getId(), PageControl
- .getUnlimitedInstance());
+ results = operationManager.findPendingResourceOperationHistories(overlord, resource.getId(),
+ PageControl.getUnlimitedInstance());
assert results != null;
assert results.size() == 1;
history = results.get(0);
@@ -1308,8 +1308,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert history.getSubjectName().equals(overlord.getName()) : history;
PageList<ResourceOperationLastCompletedComposite> list;
- list = operationManager.findRecentlyCompletedResourceOperations(overlord, null, PageControl
- .getUnlimitedInstance());
+ list = operationManager.findRecentlyCompletedResourceOperations(overlord, null,
+ PageControl.getUnlimitedInstance());
assert list.size() == 1;
assert list.get(0).getOperationHistoryId() == history.getId();
assert list.get(0).getResourceId() == resource.getId();
@@ -1322,8 +1322,8 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
assert results != null;
assert results.size() == 0;
- list = operationManager.findRecentlyCompletedResourceOperations(overlord, null, PageControl
- .getUnlimitedInstance());
+ list = operationManager.findRecentlyCompletedResourceOperations(overlord, null,
+ PageControl.getUnlimitedInstance());
assert list.size() == 0;
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncContentProviderTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncContentProviderTest.java
index d0beddc..dd72437 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncContentProviderTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncContentProviderTest.java
@@ -27,7 +27,6 @@ import java.util.List;
import java.util.Set;
import javax.persistence.EntityManager;
-import javax.transaction.Transaction;
import javax.transaction.TransactionManager;
import org.testng.annotations.AfterMethod;
@@ -121,58 +120,60 @@ public class ContentProviderManagerSyncContentProviderTest extends AbstractEJB3T
@AfterMethod
public void tearDownAfterMethod() throws Exception {
- // Transactional stuff
- TransactionManager tx = getTransactionManager();
- tx.begin();
- EntityManager entityManager = getEntityManager();
-
- RepoManagerLocal repoManager = LookupUtil.getRepoManagerLocal();
- SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
- Subject overlord = subjectManager.getOverlord();
-
- // Delete the repo relationships
- entityManager.createNamedQuery(RepoRepoRelationship.DELETE_BY_REPO_ID).setParameter("repoId", repoId)
- .executeUpdate();
-
- entityManager.createNamedQuery(RepoRelationship.DELETE_BY_RELATED_REPO_ID).setParameter("relatedRepoId",
- relatedRepoId).executeUpdate();
+ try {
+ // Transactional stuff
+ TransactionManager tx = getTransactionManager();
+ tx.begin();
+ EntityManager entityManager = getEntityManager();
- // Delete any repos that were created in this test
- for (Integer repoId : reposToDelete) {
- repoManager.deleteRepo(overlord, repoId);
- }
- reposToDelete.clear();
+ RepoManagerLocal repoManager = LookupUtil.getRepoManagerLocal();
+ SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
+ Subject overlord = subjectManager.getOverlord();
- // Delete any repo groups that were created in this test
- for (Integer repoGroupId : repoGroupsToDelete) {
- repoManager.deleteRepoGroup(overlord, repoGroupId);
+ // Delete the repo relationships
+ entityManager.createNamedQuery(RepoRepoRelationship.DELETE_BY_REPO_ID).setParameter("repoId", repoId)
+ .executeUpdate();
+
+ entityManager.createNamedQuery(RepoRelationship.DELETE_BY_RELATED_REPO_ID)
+ .setParameter("relatedRepoId", relatedRepoId).executeUpdate();
+
+ // Delete any repos that were created in this test
+ for (Integer repoId : reposToDelete) {
+ repoManager.deleteRepo(overlord, repoId);
+ }
+ reposToDelete.clear();
+
+ // Delete any repo groups that were created in this test
+ for (Integer repoGroupId : repoGroupsToDelete) {
+ repoManager.deleteRepoGroup(overlord, repoGroupId);
+ }
+ repoGroupsToDelete.clear();
+
+ // First disassociate packages from the content source
+ entityManager.createNamedQuery(PackageVersionContentSource.DELETE_BY_CONTENT_SOURCE_ID)
+ .setParameter("contentSourceId", syncSource.getId()).executeUpdate();
+
+ // Delete the existing repos
+ nonCandidateOnOtherSource = entityManager.find(Repo.class, nonCandidateOnOtherSource.getId());
+ entityManager.remove(nonCandidateOnOtherSource);
+
+ // Delete the source that was created
+ syncSource = entityManager.find(ContentSource.class, syncSource.getId());
+ entityManager.remove(syncSource);
+
+ nonSyncSource = entityManager.find(ContentSource.class, nonSyncSource.getId());
+ entityManager.remove(nonSyncSource);
+
+ // Delete the fake source type
+ testSourceType = entityManager.find(ContentSourceType.class, testSourceType.getId());
+ entityManager.remove(testSourceType);
+
+ tx.commit();
+ } finally {
+ // Plugin service teardown
+ unprepareServerPluginService();
+ unprepareScheduler();
}
- repoGroupsToDelete.clear();
-
- // First disassociate packages from the content source
- entityManager.createNamedQuery(PackageVersionContentSource.DELETE_BY_CONTENT_SOURCE_ID).setParameter(
- "contentSourceId", syncSource.getId()).executeUpdate();
-
- // Delete the existing repos
- nonCandidateOnOtherSource = entityManager.find(Repo.class, nonCandidateOnOtherSource.getId());
- entityManager.remove(nonCandidateOnOtherSource);
-
- // Delete the source that was created
- syncSource = entityManager.find(ContentSource.class, syncSource.getId());
- entityManager.remove(syncSource);
-
- nonSyncSource = entityManager.find(ContentSource.class, nonSyncSource.getId());
- entityManager.remove(nonSyncSource);
-
- // Delete the fake source type
- testSourceType = entityManager.find(ContentSourceType.class, testSourceType.getId());
- entityManager.remove(testSourceType);
-
- tx.commit();
-
- // Plugin service teardown
- unprepareServerPluginService();
- unprepareScheduler();
}
@Test
@@ -210,12 +211,13 @@ public class ContentProviderManagerSyncContentProviderTest extends AbstractEJB3T
previousRepo.addContentSource(syncSource);
repoManager.createRepo(overlord, previousRepo);
- // Test
- // --------------------------------------------
- // TestContentProviderManager providerManager = new TestContentProviderManager();
+ // Test
+ // --------------------------------------------
+ // TestContentProviderManager providerManager = new TestContentProviderManager();
pluginService.getContentProviderManager().testConnection(syncSource.getId());
- boolean completed = pluginService.getContentProviderManager().synchronizeContentProvider(syncSource.getId());
+ boolean completed = pluginService.getContentProviderManager()
+ .synchronizeContentProvider(syncSource.getId());
assert completed;
// Verify RepoGroups
@@ -303,7 +305,7 @@ public class ContentProviderManagerSyncContentProviderTest extends AbstractEJB3T
assert retrievedRepos.size() == 0;
getTransactionManager().commit();
- } catch(Throwable t) {
+ } catch (Throwable t) {
getTransactionManager().rollback();
}
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncRepoTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncRepoTest.java
index 22d65e2..65154bb 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncRepoTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/plugin/pc/content/ContentProviderManagerSyncRepoTest.java
@@ -167,76 +167,79 @@ public class ContentProviderManagerSyncRepoTest extends AbstractEJB3Test {
@AfterMethod
public void tearDownAfterMethod() throws Exception {
+ try {
- TransactionManager tx = getTransactionManager();
- tx.begin();
- EntityManager entityManager = getEntityManager();
+ TransactionManager tx = getTransactionManager();
+ tx.begin();
+ EntityManager entityManager = getEntityManager();
- Query query;
+ Query query;
- ContentSourceManagerLocal contentSourceManagerLocal = LookupUtil.getContentSourceManager();
- RepoManagerLocal repoManager = LookupUtil.getRepoManagerLocal();
- DistributionManagerLocal distroManager = LookupUtil.getDistributionManagerLocal();
- SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
- Subject overlord = subjectManager.getOverlord();
+ ContentSourceManagerLocal contentSourceManagerLocal = LookupUtil.getContentSourceManager();
+ RepoManagerLocal repoManager = LookupUtil.getRepoManagerLocal();
+ DistributionManagerLocal distroManager = LookupUtil.getDistributionManagerLocal();
+ SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
+ Subject overlord = subjectManager.getOverlord();
- // Delete all distributions
- distroManager.deleteDistributionMappingsForRepo(overlord, repoToSync.getId());
+ // Delete all distributions
+ distroManager.deleteDistributionMappingsForRepo(overlord, repoToSync.getId());
- for (String distroLabel : TestContentProvider.DISTRIBUTIONS.keySet()) {
- Distribution distro = distroManager.getDistributionByLabel(distroLabel);
- if (distro != null) {
- // Delete the files
- query = entityManager.createNamedQuery(DistributionFile.DELETE_BY_DIST_ID);
- query.setParameter("distId", distro.getId());
- query.executeUpdate();
+ for (String distroLabel : TestContentProvider.DISTRIBUTIONS.keySet()) {
+ Distribution distro = distroManager.getDistributionByLabel(distroLabel);
+ if (distro != null) {
+ // Delete the files
+ query = entityManager.createNamedQuery(DistributionFile.DELETE_BY_DIST_ID);
+ query.setParameter("distId", distro.getId());
+ query.executeUpdate();
- // Delete the actual distro
- distroManager.deleteDistributionByDistId(overlord, distro.getId());
+ // Delete the actual distro
+ distroManager.deleteDistributionByDistId(overlord, distro.getId());
+ }
}
- }
- // Delete all package version <-> content source mappings
- for (ContentSource source : repoContentSources) {
- contentSourceManagerLocal.deleteContentSource(overlord, source.getId());
- }
- repoContentSources.clear();
+ // Delete all package version <-> content source mappings
+ for (ContentSource source : repoContentSources) {
+ contentSourceManagerLocal.deleteContentSource(overlord, source.getId());
+ }
+ repoContentSources.clear();
- // Delete the repo
- repoManager.deleteRepo(overlord, repoToSync.getId());
+ // Delete the repo
+ repoManager.deleteRepo(overlord, repoToSync.getId());
- // Delete any packages that were created
- for (ContentProviderPackageDetails details : TestContentProvider.PACKAGES.values()) {
- String packageName = details.getContentProviderPackageDetailsKey().getName();
+ // Delete any packages that were created
+ for (ContentProviderPackageDetails details : TestContentProvider.PACKAGES.values()) {
+ String packageName = details.getContentProviderPackageDetailsKey().getName();
- query = entityManager.createNamedQuery(Package.QUERY_FIND_BY_NAME_PKG_TYPE_ID);
- query.setParameter("name", packageName);
- query.setParameter("packageTypeId", packageType.getId());
+ query = entityManager.createNamedQuery(Package.QUERY_FIND_BY_NAME_PKG_TYPE_ID);
+ query.setParameter("name", packageName);
+ query.setParameter("packageTypeId", packageType.getId());
- Package p = (Package) query.getSingleResult();
- entityManager.remove(p);
- }
+ Package p = (Package) query.getSingleResult();
+ entityManager.remove(p);
+ }
- // Delete the package type
- packageType = entityManager.find(PackageType.class, packageType.getId());
- entityManager.remove(packageType);
+ // Delete the package type
+ packageType = entityManager.find(PackageType.class, packageType.getId());
+ entityManager.remove(packageType);
- resourceType = entityManager.find(ResourceType.class, resourceType.getId());
- entityManager.remove(resourceType);
+ resourceType = entityManager.find(ResourceType.class, resourceType.getId());
+ entityManager.remove(resourceType);
- // Delete the content source type
- contentSourceType = entityManager.find(ContentSourceType.class, contentSourceType.getId());
- entityManager.remove(contentSourceType);
+ // Delete the content source type
+ contentSourceType = entityManager.find(ContentSourceType.class, contentSourceType.getId());
+ entityManager.remove(contentSourceType);
- tx.commit();
+ tx.commit();
- // Cleanup providers between tests
- contentProvider1.reset();
- contentProvider2.reset();
+ // Cleanup providers between tests
+ contentProvider1.reset();
+ contentProvider2.reset();
- // Plugin service teardown
- unprepareServerPluginService();
- unprepareScheduler();
+ } finally {
+ // Plugin service teardown
+ unprepareServerPluginService();
+ unprepareScheduler();
+ }
}
@Test(enabled = TESTS_ENABLED)
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/group/test/LdapGroupManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/group/test/LdapGroupManagerBeanTest.java
index c4cfca5..78d23e8 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/group/test/LdapGroupManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/group/test/LdapGroupManagerBeanTest.java
@@ -25,8 +25,9 @@ import java.util.Properties;
import javax.persistence.Query;
-import org.testng.annotations.AfterClass;
+import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import org.rhq.core.domain.common.SystemConfiguration;
@@ -65,6 +66,7 @@ import org.rhq.test.TransactionCallback;
* @author loleary
*
*/
+@SuppressWarnings("deprecation")
public class LdapGroupManagerBeanTest extends AbstractEJB3Test {
/**
@@ -95,7 +97,7 @@ public class LdapGroupManagerBeanTest extends AbstractEJB3Test {
private LdapGroupManagerLocal ldapGroupManager = null;
private SystemManagerLocal systemManager = null;
private TestServerPluginService testServerPluginService = null;
-
+
// private Subject overlord = null;
@BeforeClass
@@ -104,12 +106,15 @@ public class LdapGroupManagerBeanTest extends AbstractEJB3Test {
// overlord = LookupUtil.getSubjectManager().getOverlord();
systemManager = LookupUtil.getSystemManager();
ldapGroupManager = LookupUtil.getLdapGroupManager();
+ }
+ @BeforeMethod
+ public void beforeMethod() throws Exception {
//we need this because the drift plugins are referenced from the system settings that we use in our tests
testServerPluginService = new TestServerPluginService();
prepareCustomServerPluginService(testServerPluginService);
testServerPluginService.startMasterPluginContainer();
-
+
// get our Maven properties for LDAP testing
java.net.URL url = LdapGroupManagerBeanTest.class.getClassLoader().getResource("test-ldap.properties");
Properties mvnProps = new Properties();
@@ -146,12 +151,11 @@ public class LdapGroupManagerBeanTest extends AbstractEJB3Test {
this.setLdapGroupMemberAttribute("member");
}
- @AfterClass
- public void tearDown() throws Exception {
+ @AfterMethod(alwaysRun = true)
+ public void afterMethod() throws Exception {
unprepareServerPluginService();
- testServerPluginService.stopMasterPluginContainer();
}
-
+
/**
* Test {@link LdapGroupManagerBean#findAvailableGroupsFor(String)} method
* using a user who does not exist in the test LDAP instance.
@@ -485,21 +489,21 @@ public class LdapGroupManagerBeanTest extends AbstractEJB3Test {
private void setLdapCtxFactory(final String name) throws Exception {
//this is a readonly system property that we are trying to override, so we
//need to be a little bit more persuasive...
- executeInTransaction(new TransactionCallback() {
+ executeInTransaction(new TransactionCallback() {
@Override
public void execute() throws Exception {
Query q = getEntityManager().createNamedQuery(SystemConfiguration.FIND_PROPERTY_BY_KEY);
q.setParameter("key", SystemSetting.LDAP_NAMING_FACTORY.getInternalName());
-
+
SystemConfiguration config = (SystemConfiguration) q.getSingleResult();
config.setPropertyValue(name);
-
+
getEntityManager().merge(config);
-
+
getEntityManager().flush();
}
});
-
+
//reload the system settings cache so that the new value is reflected there immediately
systemManager.loadSystemConfigurationCache();
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/ContentMetadataManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/ContentMetadataManagerBeanTest.java
index 07d320e..712606d 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/ContentMetadataManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/ContentMetadataManagerBeanTest.java
@@ -1,7 +1,7 @@
package org.rhq.enterprise.server.resource.metadata;
-import java.util.Arrays;
-import java.util.Collections;
+import static java.util.Arrays.asList;
+import static java.util.Collections.EMPTY_LIST;
import org.testng.annotations.Test;
@@ -10,62 +10,43 @@ import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
import org.rhq.core.domain.content.PackageType;
import org.rhq.core.domain.resource.ResourceType;
-import static java.util.Arrays.asList;
-import static java.util.Collections.EMPTY_LIST;
-
public class ContentMetadataManagerBeanTest extends MetadataBeanTest {
- @Test(groups = {"plugin.metadata", "Content.NewPlugin"})
+ @Test(groups = { "plugin.metadata", "Content.NewPlugin" })
public void registerContentPlugin() throws Exception {
createPlugin("content-test-plugin", "1.0", "plugin_v1.xml");
}
- @Test(groups = {"plugin.metadata", "Content.UpgradePlugin"}, dependsOnGroups = {"Content.NewPlugin"})
+ @Test(groups = { "plugin.metadata", "Content.UpgradePlugin" }, dependsOnGroups = { "Content.NewPlugin" })
public void upgradeContentPlugin() throws Exception {
createPlugin("content-test-plugin", "2.0", "plugin_v2.xml");
}
- @Test(groups = {"plugin.metadata", "Content.UpgradePlugin"}, dependsOnMethods = {"upgradeContentPlugin"})
+ @Test(groups = { "plugin.metadata", "Content.UpgradePlugin" }, dependsOnMethods = { "upgradeContentPlugin" })
public void addPackageTypes() throws Exception {
- assertResourceTypeAssociationEquals(
- "ContentServer1",
- "ContentMetadataManagerBeanTestPlugin",
- "packageTypes",
- asList("ContentServer1.Content.1", "ContentServer1.Content.2")
- );
- }
-
- @Test(groups = {"plugin.metadata", "Content.UpgradePlugin"}, dependsOnMethods = {"upgradeContentPlugin"})
+ assertResourceTypeAssociationEquals("ContentServer1", "ContentMetadataManagerBeanTestPlugin", "packageTypes",
+ asList("ContentServer1.Content.1", "ContentServer1.Content.2"));
+ }
+
+ @Test(groups = { "plugin.metadata", "Content.UpgradePlugin" }, dependsOnMethods = { "upgradeContentPlugin" })
public void deletePackageTypes() throws Exception {
- assertResourceTypeAssociationEquals(
- "ContentServer2",
- "ContentMetadataManagerBeanTestPlugin",
- "packageTypes",
- EMPTY_LIST
- );
+ assertResourceTypeAssociationEquals("ContentServer2", "ContentMetadataManagerBeanTestPlugin", "packageTypes",
+ EMPTY_LIST);
}
- @Test(groups = {"plugin.metadata", "Content.UpgradePlugin"}, dependsOnMethods = {"upgradeContentPlugin"})
+ @Test(groups = { "plugin.metadata", "Content.UpgradePlugin" }, dependsOnMethods = { "upgradeContentPlugin" })
public void deletePackageTypesThatExistsInOldResourceTypeButNotInNewResourceType() throws Exception {
- assertResourceTypeAssociationEquals(
- "ContentServer3",
- "ContentMetadataManagerBeanTestPlugin",
- "packageTypes",
- asList("ContentServer3.Content.2", "ContentServer3.Content.3")
- );
+ assertResourceTypeAssociationEquals("ContentServer3", "ContentMetadataManagerBeanTestPlugin", "packageTypes",
+ asList("ContentServer3.Content.2", "ContentServer3.Content.3"));
}
- @Test(groups = {"plugin.metadata", "Content.UpgradePlugin"}, dependsOnMethods = {"upgradeContentPlugin"})
+ @Test(groups = { "plugin.metadata", "Content.UpgradePlugin" }, dependsOnMethods = { "upgradeContentPlugin" })
public void addPackageThatAreAddedInNewResourceType() throws Exception {
- assertResourceTypeAssociationEquals(
- "ContentServer4",
- "ContentMetadataManagerBeanTestPlugin",
- "packageTypes",
- asList("ContentServer4.Content.1", "ContentServer4.Content.2")
- );
+ assertResourceTypeAssociationEquals("ContentServer4", "ContentMetadataManagerBeanTestPlugin", "packageTypes",
+ asList("ContentServer4.Content.1", "ContentServer4.Content.2"));
}
- @Test(groups = {"plugin.metadata", "Content.UpgradePlugin"}, dependsOnMethods = {"upgradeContentPlugin"})
+ @Test(groups = { "plugin.metadata", "Content.UpgradePlugin" }, dependsOnMethods = { "upgradeContentPlugin" })
public void addNewDeploymentConfigurationDefinition() throws Exception {
PackageType packageType = loadPackageType("ContentServer", "ContentMetadataManagerBeanTestPlugin",
"ContentServer.Content.1");
@@ -74,67 +55,49 @@ public class ContentMetadataManagerBeanTest extends MetadataBeanTest {
assertNotNull(
"Failed to create new deployment configuration definition for package type that previously did not have one",
- deploymentConfigDef
- );
- assertEquals(
- "Expected to find 1 property definition in new deployment configuration definition",
- 1,
- deploymentConfigDef.getPropertyDefinitions().size()
- );
- assertNotNull(
- "Expected to find 1 property definition, <version>, in new deployment configuration definition",
- deploymentConfigDef.get("version")
- );
+ deploymentConfigDef);
+ assertEquals("Expected to find 1 property definition in new deployment configuration definition", 1,
+ deploymentConfigDef.getPropertyDefinitions().size());
+ assertNotNull("Expected to find 1 property definition, <version>, in new deployment configuration definition",
+ deploymentConfigDef.get("version"));
}
- @Test(groups = {"plugin.metadata", "Content.UpgradePlugin"}, dependsOnMethods = {"upgradeContentPlugin"})
+ @Test(groups = { "plugin.metadata", "Content.UpgradePlugin" }, dependsOnMethods = { "upgradeContentPlugin" })
public void updateDeploymentConfigDefThatExistsInOldAndNewResourceType() throws Exception {
PackageType packageType = loadPackageType("ContentServer5", "ContentMetadataManagerBeanTestPlugin",
"ContentServer5.Content.1");
ConfigurationDefinition deploymentConfigDef = packageType.getDeploymentConfigurationDefinition();
assertNotNull("Failed to update deployment configuration definition for package type", deploymentConfigDef);
- assertEquals(
- "Expected to find 2 property definitions in updated deployment configuration definition",
- 2,
- deploymentConfigDef.getPropertyDefinitions().size()
- );
- assertNotNull(
- "Expected existing property definition to be retained across update",
- deploymentConfigDef.get("x")
- );
- assertNotNull(
- "Expected new property definition to be added during update",
- deploymentConfigDef.get("y")
- );
- }
+ assertEquals("Expected to find 2 property definitions in updated deployment configuration definition", 2,
+ deploymentConfigDef.getPropertyDefinitions().size());
+ assertNotNull("Expected existing property definition to be retained across update",
+ deploymentConfigDef.get("x"));
+ assertNotNull("Expected new property definition to be added during update", deploymentConfigDef.get("y"));
+ }
- @Test(groups = {"plugin.metadata", "Content.UpgradePlugin"}, dependsOnMethods = {"upgradeContentPlugin"})
+ @Test(groups = { "plugin.metadata", "Content.UpgradePlugin" }, dependsOnMethods = { "upgradeContentPlugin" })
public void deleteDeploymentConfigDefThatIsRemovedInNewResourceType() {
PackageType packageType = loadPackageType("ContentServer5", "ContentMetadataManagerBeanTestPlugin",
"ContentServer5.Content.2");
assertNull(
"Expected deployment configuration definition to be removed since it was removed from new resource type",
- packageType.getDeploymentConfigurationDefinition()
- );
+ packageType.getDeploymentConfigurationDefinition());
}
- @Test(groups = {"plugin.metadata", "Content.UpgradePlugin"}, dependsOnMethods = {"upgradeContentPlugin"})
+ @Test(groups = { "plugin.metadata", "Content.UpgradePlugin" }, dependsOnMethods = { "upgradeContentPlugin" })
public void updateBundleType() {
ResourceType resourceType = loadResourceTypeWithBundleType("ContentServer7",
"ContentMetadataManagerBeanTestPlugin");
BundleType bundleType = resourceType.getBundleType();
assertNotNull("Failed to upgrade bundle type", bundleType);
- assertEquals(
- "Failed to upgrade bundle type correctly. The bundle type name is wrong",
- "ContentServer.Bundle.2",
- bundleType.getName()
- );
+ assertEquals("Failed to upgrade bundle type correctly. The bundle type name is wrong",
+ "ContentServer.Bundle.2", bundleType.getName());
}
- @Test(groups = {"plugin.metadata", "Content.UpgradePlugin"}, dependsOnMethods = {"upgradeContentPlugin"})
+ @Test(groups = { "plugin.metadata", "Content.UpgradePlugin" }, dependsOnMethods = { "upgradeContentPlugin" })
public void addBundleTypeThatOnlyExistsInNewResourceType() {
ResourceType resourceType = loadResourceTypeWithBundleType("ContentServer6",
"ContentMetadataManagerBeanTestPlugin");
@@ -146,23 +109,19 @@ public class ContentMetadataManagerBeanTest extends MetadataBeanTest {
}
PackageType loadPackageType(String resourceType, String plugin, String packageType) {
- return (PackageType) getEntityManager().createQuery(
- "from PackageType p left join fetch p.deploymentConfigurationDefinition " +
- "where p.name = :packageType and " +
- "p.resourceType.name = :resourceType and " +
- "p.resourceType.plugin = :plugin")
- .setParameter("packageType", packageType)
- .setParameter("plugin", plugin)
- .setParameter("resourceType", resourceType)
- .getSingleResult();
+ return (PackageType) getEntityManager()
+ .createQuery(
+ "from PackageType p left join fetch p.deploymentConfigurationDefinition "
+ + "where p.name = :packageType and " + "p.resourceType.name = :resourceType and "
+ + "p.resourceType.plugin = :plugin").setParameter("packageType", packageType)
+ .setParameter("plugin", plugin).setParameter("resourceType", resourceType).getSingleResult();
}
ResourceType loadResourceTypeWithBundleType(String resourceType, String plugin) {
- return (ResourceType) getEntityManager().createQuery(
- "from ResourceType t left join fetch t.bundleType where t.name = :resourceType and t.plugin = :plugin")
- .setParameter("resourceType", resourceType)
- .setParameter("plugin", plugin)
- .getSingleResult();
- }
+ return (ResourceType) getEntityManager()
+ .createQuery(
+ "from ResourceType t left join fetch t.bundleType where t.name = :resourceType and t.plugin = :plugin")
+ .setParameter("resourceType", resourceType).setParameter("plugin", plugin).getSingleResult();
+ }
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/EventMetadataManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/EventMetadataManagerBeanTest.java
index a8bb5e4..99e1e22 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/EventMetadataManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/EventMetadataManagerBeanTest.java
@@ -1,33 +1,26 @@
package org.rhq.enterprise.server.resource.metadata;
-import java.util.Arrays;
-import java.util.Collections;
+import static java.util.Arrays.asList;
+import static java.util.Collections.EMPTY_LIST;
import org.testng.annotations.Test;
import org.rhq.core.domain.event.EventDefinition;
-import static java.util.Arrays.asList;
-import static java.util.Collections.EMPTY_LIST;
-
public class EventMetadataManagerBeanTest extends MetadataBeanTest {
- @Test(groups = {"plugin.metadata", "Events.NewPlugin"})
+ @Test(groups = { "plugin.metadata", "Events.NewPlugin" })
public void registerEventsPlugin() throws Exception {
createPlugin("event-test-plugin", "1.0", "plugin_v1.xml");
}
- @Test(groups = {"plugin.metadata", "Events.NewPlugin"}, dependsOnMethods = {"registerEventsPlugin"})
+ @Test(groups = { "plugin.metadata", "Events.NewPlugin" }, dependsOnMethods = { "registerEventsPlugin" })
public void persistNewEventDefs() throws Exception {
- assertResourceTypeAssociationEquals(
- "EventServer1",
- "EventMetadataManagerBeanTestPlugin",
- "eventDefinitions",
- asList("event1", "event2")
- );
+ assertResourceTypeAssociationEquals("EventServer1", "EventMetadataManagerBeanTestPlugin", "eventDefinitions",
+ asList("event1", "event2"));
}
- @Test(groups = {"plugin.metadata", "Events.NewPlugin"}, dependsOnMethods = {"persistNewEventDefs"})
+ @Test(groups = { "plugin.metadata", "Events.NewPlugin" }, dependsOnMethods = { "persistNewEventDefs" })
public void persistNewEventDefProperties() {
EventDefinition eventDef = loadEventDef("event1", "EventServer1");
@@ -35,60 +28,42 @@ public class EventMetadataManagerBeanTest extends MetadataBeanTest {
assertEquals("Failed to set EventDefinition.description", "Event 1", eventDef.getDescription());
}
- @Test(groups = {"plugin.metadata", "Events.UpgradePlugin"}, dependsOnGroups = {"Events.NewPlugin"})
+ @Test(groups = { "plugin.metadata", "Events.UpgradePlugin" }, dependsOnGroups = { "Events.NewPlugin" })
public void upgradeEventsPlugin() throws Exception {
createPlugin("event-test-plugin", "2.0", "plugin_v2.xml");
}
- @Test(groups = {"plugin.metadata", "Events.UpgradePlugin"}, dependsOnMethods = {"upgradeEventsPlugin"})
+ @Test(groups = { "plugin.metadata", "Events.UpgradePlugin" }, dependsOnMethods = { "upgradeEventsPlugin" })
public void retainEventDefsOfTypeThatIsNotChangedDuringUpgrade() throws Exception {
- assertResourceTypeAssociationEquals(
- "EventServer1",
- "EventMetadataManagerBeanTestPlugin",
- "eventDefinitions",
- asList("event1", "event2")
- );
+ assertResourceTypeAssociationEquals("EventServer1", "EventMetadataManagerBeanTestPlugin", "eventDefinitions",
+ asList("event1", "event2"));
}
- @Test(groups = {"plugin.metadata", "Events.UpgradePlugin"}, dependsOnMethods = {"upgradeEventsPlugin"})
+ @Test(groups = { "plugin.metadata", "Events.UpgradePlugin" }, dependsOnMethods = { "upgradeEventsPlugin" })
public void addNewEventDefs() throws Exception {
- assertResourceTypeAssociationEquals(
- "EventServer2",
- "EventMetadataManagerBeanTestPlugin",
- "eventDefinitions",
- asList("event1", "event2")
- );
+ assertResourceTypeAssociationEquals("EventServer2", "EventMetadataManagerBeanTestPlugin", "eventDefinitions",
+ asList("event1", "event2"));
}
- @Test(groups = {"plugin.metadata", "Events.UpgradePlugin"}, dependsOnMethods = {"upgradeEventsPlugin"})
+ @Test(groups = { "plugin.metadata", "Events.UpgradePlugin" }, dependsOnMethods = { "upgradeEventsPlugin" })
public void deleteEventDefsThatHaveBeenRemovedInUpgradedType() throws Exception {
- assertResourceTypeAssociationEquals(
- "EventServer3",
- "EventMetadataManagerBeanTestPlugin",
- "eventDefinitions",
- EMPTY_LIST
- );
- }
-
- @Test(groups = {"plugin.metadata", "Events.UpgradePlugin"}, dependsOnMethods = {"upgradeEventsPlugin"})
+ assertResourceTypeAssociationEquals("EventServer3", "EventMetadataManagerBeanTestPlugin", "eventDefinitions",
+ EMPTY_LIST);
+ }
+
+ @Test(groups = { "plugin.metadata", "Events.UpgradePlugin" }, dependsOnMethods = { "upgradeEventsPlugin" })
public void updateExistingEventDefs() throws Exception {
- assertResourceTypeAssociationEquals(
- "EventServer4",
- "EventMetadataManagerBeanTestPlugin",
- "eventDefinitions",
- asList("event1", "event3")
- );
+ assertResourceTypeAssociationEquals("EventServer4", "EventMetadataManagerBeanTestPlugin", "eventDefinitions",
+ asList("event1", "event3"));
EventDefinition eventDef = loadEventDef("event1", "EventServer4");
assertEquals("The description property should have been updated", "EVENT ONE", eventDef.getDescription());
}
EventDefinition loadEventDef(String name, String resourceType) {
- return (EventDefinition) getEntityManager().createQuery(
- "from EventDefinition e where e.name = :name and e.resourceType.name = :resourceType")
- .setParameter("name", name)
- .setParameter("resourceType", resourceType)
- .getSingleResult();
+ return (EventDefinition) getEntityManager()
+ .createQuery("from EventDefinition e where e.name = :name and e.resourceType.name = :resourceType")
+ .setParameter("name", name).setParameter("resourceType", resourceType).getSingleResult();
}
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataBeanTest.java
index 7ffacbf..fac9251 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/MetadataBeanTest.java
@@ -1,5 +1,7 @@
package org.rhq.enterprise.server.resource.metadata;
+import static org.rhq.core.clientapi.shared.PluginDescriptorUtil.loadPluginDescriptor;
+
import java.io.File;
import java.net.URL;
import java.sql.Connection;
@@ -23,7 +25,9 @@ import org.dbunit.dataset.xml.FlatXmlDataSet;
import org.dbunit.dataset.xml.FlatXmlProducer;
import org.dbunit.operation.DatabaseOperation;
import org.testng.annotations.AfterGroups;
+import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeGroups;
+import org.testng.annotations.BeforeMethod;
import org.xml.sax.InputSource;
import org.rhq.core.clientapi.descriptor.plugin.PluginDescriptor;
@@ -37,8 +41,6 @@ import org.rhq.enterprise.server.resource.ResourceTypeManagerLocal;
import org.rhq.enterprise.server.test.AbstractEJB3Test;
import org.rhq.enterprise.server.util.LookupUtil;
-import static org.rhq.core.clientapi.shared.PluginDescriptorUtil.loadPluginDescriptor;
-
public class MetadataBeanTest extends AbstractEJB3Test {
private static List<String> plugins = new ArrayList<String>();
@@ -49,9 +51,25 @@ public class MetadataBeanTest extends AbstractEJB3Test {
}
@BeforeGroups(groups = { "plugin.metadata" }, dependsOnGroups = { "integration.ejb3" })
- public void startMBeanServer() throws Exception {
+ public void beforeGroups() throws Exception {
setupDB();
+ }
+ /**
+ * Need to delete rows from RHQ_PLUGINS because subsequent tests in server/jar would otherwise fail. Some tests look
+ * at what plugins are in the database, and then look for corresponding plugin files on the file system. MetadataTest
+ * however removes the generated plugin files during each test run.
+ */
+ @AfterGroups(alwaysRun = true, groups = { "plugin.metadata" })
+ void afterGroups() throws Exception {
+ getTransactionManager().begin();
+ getEntityManager().createQuery("delete from Plugin p where p.name in (:plugins)")
+ .setParameter("plugins", plugins).executeUpdate();
+ getTransactionManager().commit();
+ }
+
+ @BeforeMethod(groups = { "plugin.metadata" }, dependsOnGroups = { "integration.ejb3" })
+ public void beforeMethod() throws Exception {
TestBundleServerPluginService bundleService = new TestBundleServerPluginService();
prepareCustomServerPluginService(bundleService);
bundleService.startMasterPluginContainerWithoutSchedulingJobs();
@@ -63,14 +81,10 @@ public class MetadataBeanTest extends AbstractEJB3Test {
* at what plugins are in the database, and then look for corresponding plugin files on the file system. MetadataTest
* however removes the generated plugin files during each test run.
*/
- @AfterGroups(groups = { "plugin.metadata" })
- void removePluginsFromDB() throws Exception {
+ @AfterMethod(alwaysRun = true, groups = { "plugin.metadata" })
+ void afterMethod() throws Exception {
+ unprepareServerPluginService();
unprepareScheduler();
-
- getTransactionManager().begin();
- getEntityManager().createQuery("delete from Plugin p where p.name in (:plugins)").setParameter("plugins",
- plugins).executeUpdate();
- getTransactionManager().commit();
}
protected void setupDB() throws Exception {
@@ -145,6 +159,7 @@ public class MetadataBeanTest extends AbstractEJB3Test {
return getClass().getResource(dir + "/" + descriptor);
}
+ @SuppressWarnings("unused")
private String getPluginWorkDir() throws Exception {
return getCurrentWorkingDir() + "/work";
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdatePluginMetadataTestBase.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdatePluginMetadataTestBase.java
index 535fd06..f381318 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdatePluginMetadataTestBase.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdatePluginMetadataTestBase.java
@@ -37,7 +37,7 @@ import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
+import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.rhq.core.clientapi.agent.measurement.MeasurementAgentService;
@@ -77,8 +77,18 @@ public class UpdatePluginMetadataTestBase extends AbstractEJB3Test {
protected static ResourceTypeManagerLocal resourceTypeManager;
protected static ResourceManagerLocal resourceManager;
+ @AfterClass
+ public void afterClass() throws Exception {
+ cleanupTest();
+ }
+
@BeforeMethod
protected void init() {
+ agentServiceContainer = prepareForTestAgents();
+ prepareMockAgentServiceContainer();
+
+ prepareScheduler();
+
try {
pluginMgr = LookupUtil.getPluginManager();
resourceTypeManager = LookupUtil.getResourceTypeManager();
@@ -91,25 +101,16 @@ public class UpdatePluginMetadataTestBase extends AbstractEJB3Test {
}
}
- @BeforeClass
- public void beforeClass() {
- agentServiceContainer = prepareForTestAgents();
- prepareMockAgentServiceContainer();
-
- prepareScheduler();
+ @AfterMethod(alwaysRun = true)
+ public void afterMethod() throws Exception {
+ unprepareForTestAgents();
+ unprepareScheduler();
}
protected void prepareMockAgentServiceContainer() {
agentServiceContainer.measurementService = new MockMeasurementAgentService();
}
- @AfterClass
- public void afterClass() throws Exception {
- unprepareForTestAgents();
- unprepareScheduler();
- cleanupTest();
- }
-
protected ResourceType getResourceType(String typeName) {
return getResourceType(typeName, PLUGIN_NAME);
}
@@ -225,8 +226,8 @@ public class UpdatePluginMetadataTestBase extends AbstractEJB3Test {
protected int getPluginId(EntityManager entityManager) throws NoResultException {
Plugin existingPlugin;
try {
- existingPlugin = (Plugin) entityManager.createNamedQuery(Plugin.QUERY_FIND_BY_NAME).setParameter("name",
- PLUGIN_NAME).getSingleResult();
+ existingPlugin = (Plugin) entityManager.createNamedQuery(Plugin.QUERY_FIND_BY_NAME)
+ .setParameter("name", PLUGIN_NAME).getSingleResult();
int plugin1Id = existingPlugin.getId();
return plugin1Id;
} catch (NoResultException nre) {
@@ -247,8 +248,8 @@ public class UpdatePluginMetadataTestBase extends AbstractEJB3Test {
protected Agent getAgent(EntityManager entityManager) throws NoResultException {
Agent existingAgent;
try {
- existingAgent = (Agent) entityManager.createNamedQuery(Agent.QUERY_FIND_BY_NAME).setParameter("name",
- AGENT_NAME).getSingleResult();
+ existingAgent = (Agent) entityManager.createNamedQuery(Agent.QUERY_FIND_BY_NAME)
+ .setParameter("name", AGENT_NAME).getSingleResult();
return existingAgent;
} catch (NoResultException nre) {
throw nre;
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceFactoryManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceFactoryManagerBeanTest.java
index f38c1a4..fdb6607 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceFactoryManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceFactoryManagerBeanTest.java
@@ -26,9 +26,6 @@ import java.util.Set;
import javax.persistence.EntityManager;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
@@ -68,8 +65,6 @@ import org.rhq.enterprise.server.util.LookupUtil;
public class ResourceFactoryManagerBeanTest extends AbstractEJB3Test {
// Attributes --------------------------------------------
- private final Log log = LogFactory.getLog(ResourceFactoryManagerBeanTest.class);
-
private ResourceFactoryManagerLocal resourceFactoryManager;
private ResourceManagerLocal resourceManager;
private Subject overlord;
@@ -89,7 +84,10 @@ public class ResourceFactoryManagerBeanTest extends AbstractEJB3Test {
resourceFactoryManager = LookupUtil.getResourceFactoryManager();
resourceManager = LookupUtil.getResourceManager();
overlord = LookupUtil.getSubjectManager().getOverlord();
+ }
+ @BeforeMethod
+ public void setupBeforeMethod() throws Exception {
prepareScheduler();
TestServerCommunicationsService agentServiceContainer = prepareForTestAgents();
agentServiceContainer.resourceFactoryService = mockAgentService;
@@ -98,22 +96,16 @@ public class ResourceFactoryManagerBeanTest extends AbstractEJB3Test {
StandardServerPluginService serverPluginService = new StandardServerPluginService();
prepareCustomServerPluginService(serverPluginService);
serverPluginService.startMasterPluginContainer();
+
+ setupResourceEnvironment();
}
- @AfterClass
- public void teardownAfterClass() throws Exception {
+ @AfterMethod(alwaysRun = true)
+ public void teardownAfterMethod() throws Exception {
unprepareForTestAgents();
unprepareScheduler();
unprepareServerPluginService();
- }
- @BeforeMethod
- public void setupBeforeMethod() throws Exception {
- setupResourceEnvironment();
- }
-
- @AfterMethod
- public void teardownAfterMethod() throws Exception {
teardownResourceEnvironment();
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/scheduler/jobs/DataPurgeJobTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/scheduler/jobs/DataPurgeJobTest.java
index e3f52f5..7506aaa 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/scheduler/jobs/DataPurgeJobTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/scheduler/jobs/DataPurgeJobTest.java
@@ -36,9 +36,7 @@ import javax.transaction.SystemException;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.JobListener;
-import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -94,27 +92,19 @@ import org.rhq.enterprise.server.util.LookupUtil;
public class DataPurgeJobTest extends AbstractEJB3Test {
private Resource newResource;
+ @SuppressWarnings("unused")
private int agentId;
private int resourceTypeId;
private TestServerPluginService testServerPluginService;
-
- @BeforeClass
- public void setup() {
- //we need this because the drift plugins are referenced from the system settings that we use in our tests
- testServerPluginService = new TestServerPluginService();
- prepareCustomServerPluginService(testServerPluginService);
- testServerPluginService.startMasterPluginContainer();
- }
- @AfterClass
- public void tearDown() throws Exception {
- unprepareServerPluginService();
- testServerPluginService.stopMasterPluginContainer();
- }
-
@BeforeMethod
public void beforeMethod() throws Throwable {
try {
+ //we need this because the drift plugins are referenced from the system settings that we use in our tests
+ testServerPluginService = new TestServerPluginService();
+ prepareCustomServerPluginService(testServerPluginService);
+ testServerPluginService.startMasterPluginContainer();
+
prepareScheduler();
TestServerCommunicationsService agentContainer = prepareForTestAgents();
newResource = createNewResource();
@@ -125,12 +115,13 @@ public class DataPurgeJobTest extends AbstractEJB3Test {
}
}
- @AfterMethod
+ @AfterMethod(alwaysRun = true)
public void afterMethod() throws Throwable {
try {
deleteNewResource(newResource);
unprepareForTestAgents();
unprepareScheduler();
+ unprepareServerPluginService();
} catch (Throwable t) {
System.err.println("Cannot unprepare test: " + t);
t.printStackTrace();
@@ -369,8 +360,8 @@ public class DataPurgeJobTest extends AbstractEJB3Test {
}
mgr.addTraitData(dataset);
- List<MeasurementDataTrait> persistedTraits = mgr.findTraits(LookupUtil.getSubjectManager().getOverlord(), res
- .getId(), traitSchedule.getDefinition().getId());
+ List<MeasurementDataTrait> persistedTraits = mgr.findTraits(LookupUtil.getSubjectManager().getOverlord(),
+ res.getId(), traitSchedule.getDefinition().getId());
assert persistedTraits.size() == count : "did not persist trait data:" + persistedTraits.size() + ":"
+ persistedTraits;
}
@@ -424,9 +415,9 @@ public class DataPurgeJobTest extends AbstractEJB3Test {
mgr.addEventData(eventMap);
Subject overlord = LookupUtil.getSubjectManager().getOverlord();
- PageList<EventComposite> persistedEvents = mgr.findEventComposites(overlord, EntityContext.forResource(res
- .getId()), timestamp - 1L, timestamp + count + 1L, new EventSeverity[] { EventSeverity.DEBUG }, null, null,
- new PageControl());
+ PageList<EventComposite> persistedEvents = mgr.findEventComposites(overlord,
+ EntityContext.forResource(res.getId()), timestamp - 1L, timestamp + count + 1L,
+ new EventSeverity[] { EventSeverity.DEBUG }, null, null, new PageControl());
assert persistedEvents.getTotalSize() == count : "did not persist all events, only persisted: "
+ persistedEvents.getTotalSize();
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SynchronizationManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SynchronizationManagerBeanTest.java
index 41f9a56..1f5d0b9 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SynchronizationManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/sync/test/SynchronizationManagerBeanTest.java
@@ -132,12 +132,12 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
public static boolean importerConfigured;
public static boolean importValidatorsObtainedAfterConfiguration;
-
+
public static void reset() {
importerConfigured = false;
importValidatorsObtainedAfterConfiguration = false;
}
-
+
@Override
public void initialize(Subject subject, EntityManager entityManager) {
}
@@ -150,13 +150,13 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
public ExportingIterator<String> getExportingIterator() {
return new ExportingIterator<String>() {
boolean ran = false;
-
+
@Override
public boolean hasNext() {
if (ran) {
return false;
}
-
+
ran = true;
return true;
}
@@ -181,7 +181,7 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
public String getNotes() {
return null;
}
-
+
};
}
@@ -189,7 +189,7 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
public String getNotes() {
return null;
}
-
+
};
}
@@ -215,20 +215,20 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
@Override
public Set<EntityValidator<String>> getEntityValidators() {
EntityValidator<String> v = new EntityValidator<String>() {
-
+
@Override
public void validateExportedEntity(String entity) throws ValidationException {
}
-
+
@Override
public void initialize(Subject subject, EntityManager entityManager) {
}
};
-
+
if (importerConfigured) {
importValidatorsObtainedAfterConfiguration = true;
}
-
+
return Collections.singleton(v);
}
@@ -245,7 +245,7 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
public String finishImport() throws Exception {
return null;
}
-
+
};
}
@@ -253,9 +253,9 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
public Set<ConsistencyValidator> getRequiredValidators() {
return Collections.emptySet();
}
-
+
}
-
+
private TestData testData;
//I just don't get why this can't be a @BeforeTest
@@ -270,9 +270,8 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
//add our new metric template that we are going to perform the tests with
testData.fakeType = new ResourceType(RESOURCE_TYPE_NAME, PLUGIN_NAME, ResourceCategory.PLATFORM, null);
- MeasurementDefinition mdef =
- new MeasurementDefinition(METRIC_NAME, MeasurementCategory.PERFORMANCE, MeasurementUnits.NONE,
- DataType.MEASUREMENT, true, 600000, DisplayType.SUMMARY);
+ MeasurementDefinition mdef = new MeasurementDefinition(METRIC_NAME, MeasurementCategory.PERFORMANCE,
+ MeasurementUnits.NONE, DataType.MEASUREMENT, true, 600000, DisplayType.SUMMARY);
testData.fakeType.addMetricDefinition(mdef);
em.persist(testData.fakeType);
@@ -310,43 +309,46 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
systemManager.loadSystemConfigurationCache();
testData.systemSettings = systemManager.getSystemConfiguration(freshUser());
-
+
if (createExport) {
export = synchronizationManager.exportAllSubsystems(freshUser());
}
}
private void tearDown() throws Exception {
- getTransactionManager().begin();
try {
- LookupUtil.getSystemManager().setSystemConfiguration(freshUser(), testData.systemSettings, true);
-
- EntityManager em = getEntityManager();
+ getTransactionManager().begin();
+ try {
+ LookupUtil.getSystemManager().setSystemConfiguration(freshUser(), testData.systemSettings, true);
- MeasurementSchedule sched =
- em.find(MeasurementSchedule.class, testData.fakePlatform.getSchedules().iterator().next().getId());
- em.remove(sched);
+ EntityManager em = getEntityManager();
- Resource attachedPlatform = em.find(Resource.class, testData.fakePlatform.getId());
- em.remove(attachedPlatform);
+ MeasurementSchedule sched = em.find(MeasurementSchedule.class, testData.fakePlatform.getSchedules()
+ .iterator().next().getId());
+ em.remove(sched);
- ResourceType attachedType = em.find(ResourceType.class, testData.fakeType.getId());
- em.remove(attachedType);
+ Resource attachedPlatform = em.find(Resource.class, testData.fakePlatform.getId());
+ em.remove(attachedPlatform);
- em.flush();
+ ResourceType attachedType = em.find(ResourceType.class, testData.fakeType.getId());
+ em.remove(attachedType);
- getTransactionManager().commit();
- } catch (Exception e) {
- getTransactionManager().rollback();
- throw e;
- }
+ em.flush();
- unprepareServerPluginService();
- testData.testServerPluginService.stopMasterPluginContainer();
+ getTransactionManager().commit();
+ } catch (Exception e) {
+ getTransactionManager().rollback();
+ throw e;
+ }
+ } finally {
+ unprepareServerPluginService();
+ //unnecessary, done by above method
+ //testData.testServerPluginService.stopMasterPluginContainer();
- export = null;
- testData = null;
- synchronizationManager = null;
+ export = null;
+ testData = null;
+ synchronizationManager = null;
+ }
}
public void testExport() throws Exception {
@@ -364,16 +366,16 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
try {
SystemManagerLocal systemManager = LookupUtil.getSystemManager();
- MeasurementDefinitionManagerLocal measurementDefinitionManager =
- LookupUtil.getMeasurementDefinitionManager();
+ MeasurementDefinitionManagerLocal measurementDefinitionManager = LookupUtil
+ .getMeasurementDefinitionManager();
Properties beforeSystemSettings = systemManager.getSystemConfiguration(freshUser());
MeasurementDefinitionCriteria criteria = new MeasurementDefinitionCriteria();
criteria.setPageControl(PageControl.getUnlimitedInstance());
criteria.fetchResourceType(true);
- List<MeasurementDefinition> beforeMeasurementDefinitions =
- measurementDefinitionManager.findMeasurementDefinitionsByCriteria(freshUser(), criteria);
+ List<MeasurementDefinition> beforeMeasurementDefinitions = measurementDefinitionManager
+ .findMeasurementDefinitionsByCriteria(freshUser(), criteria);
synchronizationManager.importAllSubsystems(freshUser(), export.getExportFile(), null);
@@ -381,16 +383,16 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
systemManager.loadSystemConfigurationCache();
Properties afterSystemSettings = systemManager.getSystemConfiguration(freshUser());
- List<MeasurementDefinition> afterMeasurementDefinitions =
- measurementDefinitionManager.findMeasurementDefinitionsByCriteria(freshUser(), criteria);
+ List<MeasurementDefinition> afterMeasurementDefinitions = measurementDefinitionManager
+ .findMeasurementDefinitionsByCriteria(freshUser(), criteria);
assertEquals("System settings unexpectedly differ", beforeSystemSettings, afterSystemSettings);
//make sure we don't fail on simple order differences, which are not important here..
- Set<MeasurementDefinition> beforeDefsToCheck =
- new HashSet<MeasurementDefinition>(beforeMeasurementDefinitions);
- Set<MeasurementDefinition> afterDefsToCheck =
- new HashSet<MeasurementDefinition>(afterMeasurementDefinitions);
+ Set<MeasurementDefinition> beforeDefsToCheck = new HashSet<MeasurementDefinition>(
+ beforeMeasurementDefinitions);
+ Set<MeasurementDefinition> afterDefsToCheck = new HashSet<MeasurementDefinition>(
+ afterMeasurementDefinitions);
assertEquals("Measurement definitions unexpectedly differ", beforeDefsToCheck, afterDefsToCheck);
} finally {
tearDown();
@@ -420,13 +422,13 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
assertEquals(settings.getProperty("CAM_BASE_URL"), "http://testing.domain:7080");
- MeasurementDefinitionManagerLocal measurementDefinitionManager =
- LookupUtil.getMeasurementDefinitionManager();
+ MeasurementDefinitionManagerLocal measurementDefinitionManager = LookupUtil
+ .getMeasurementDefinitionManager();
MeasurementDefinitionCriteria crit = new MeasurementDefinitionCriteria();
crit.addFilterResourceTypeName(RESOURCE_TYPE_NAME);
crit.addFilterName(METRIC_NAME);
- MeasurementDefinition mdef =
- measurementDefinitionManager.findMeasurementDefinitionsByCriteria(freshUser(), crit).get(0);
+ MeasurementDefinition mdef = measurementDefinitionManager.findMeasurementDefinitionsByCriteria(freshUser(),
+ crit).get(0);
assertEquals("The " + METRIC_NAME + " metric should have been updated with default interval of 30s",
Long.valueOf(30000), new Long(mdef.getDefaultInterval()));
@@ -445,9 +447,8 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
//now find the schedule for the measurement
MeasurementScheduleManagerLocal measurementScheduleManager = LookupUtil.getMeasurementScheduleManager();
- List<MeasurementSchedule> schedules =
- measurementScheduleManager.findSchedulesByResourceIdAndDefinitionIds(freshUser(), platformResourceId,
- new int[] { mdef.getId() });
+ List<MeasurementSchedule> schedules = measurementScheduleManager.findSchedulesByResourceIdAndDefinitionIds(
+ freshUser(), platformResourceId, new int[] { mdef.getId() });
assertEquals("Unexpected number of '" + METRIC_NAME + "' schedules found.", 1, schedules.size());
@@ -469,13 +470,13 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
String originalBaseUrl = settings.getProperty("CAM_BASE_URL");
- MeasurementDefinitionManagerLocal measurementDefinitionManager =
- LookupUtil.getMeasurementDefinitionManager();
+ MeasurementDefinitionManagerLocal measurementDefinitionManager = LookupUtil
+ .getMeasurementDefinitionManager();
MeasurementDefinitionCriteria crit = new MeasurementDefinitionCriteria();
crit.addFilterResourceTypeName(RESOURCE_TYPE_NAME);
crit.addFilterName(METRIC_NAME);
- MeasurementDefinition distroNameDef =
- measurementDefinitionManager.findMeasurementDefinitionsByCriteria(freshUser(), crit).get(0);
+ MeasurementDefinition distroNameDef = measurementDefinitionManager.findMeasurementDefinitionsByCriteria(
+ freshUser(), crit).get(0);
long originalInterval = distroNameDef.getDefaultInterval();
@@ -489,12 +490,12 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
//let's just use the default configs so that we don't apply the changes suggested in
//the changed default configs created above
- ImportConfiguration systemSettingsConfiguration =
- new ImportConfiguration(SystemSettingsSynchronizer.class.getName(), new SystemSettingsSynchronizer()
- .getImporter().getImportConfigurationDefinition().getDefaultTemplate().createConfiguration());
- ImportConfiguration metricTemplatesConfiguration =
- new ImportConfiguration(MetricTemplateSynchronizer.class.getName(), new MetricTemplateSynchronizer()
- .getImporter().getImportConfigurationDefinition().getDefaultTemplate().createConfiguration());
+ ImportConfiguration systemSettingsConfiguration = new ImportConfiguration(
+ SystemSettingsSynchronizer.class.getName(), new SystemSettingsSynchronizer().getImporter()
+ .getImportConfigurationDefinition().getDefaultTemplate().createConfiguration());
+ ImportConfiguration metricTemplatesConfiguration = new ImportConfiguration(
+ MetricTemplateSynchronizer.class.getName(), new MetricTemplateSynchronizer().getImporter()
+ .getImportConfigurationDefinition().getDefaultTemplate().createConfiguration());
try {
synchronizationManager.importAllSubsystems(freshUser(), exportData,
@@ -529,9 +530,8 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
//now find the schedule for the measurement
MeasurementScheduleManagerLocal measurementScheduleManager = LookupUtil.getMeasurementScheduleManager();
- List<MeasurementSchedule> schedules =
- measurementScheduleManager.findSchedulesByResourceIdAndDefinitionIds(freshUser(), platformResourceId,
- new int[] { distroNameDef.getId() });
+ List<MeasurementSchedule> schedules = measurementScheduleManager.findSchedulesByResourceIdAndDefinitionIds(
+ freshUser(), platformResourceId, new int[] { distroNameDef.getId() });
assertEquals("Unexpected number of '" + METRIC_NAME + "' schedules found.", 1, schedules.size());
@@ -549,43 +549,42 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
try {
String export = getExportData();
- Document xml =
- DocumentBuilderFactory.newInstance().newDocumentBuilder()
- .parse(new InputSource(new StringReader(export)));
-
+ Document xml = DocumentBuilderFactory.newInstance().newDocumentBuilder()
+ .parse(new InputSource(new StringReader(export)));
+
Element unknownValidator = xml.createElement("validator");
unknownValidator.setAttribute(SynchronizationConstants.CLASS_ATTRIBUTE, "org.nothing.UnknownValidator");
-
+
xml.getDocumentElement().insertBefore(unknownValidator, xml.getDocumentElement().getFirstChild());
-
+
export = documentToString(xml);
-
+
InputStream exportStream = createCompressedStream(export);
-
+
synchronizationManager.importAllSubsystems(freshUser(), exportStream, null);
} finally {
tearDown();
}
}
- public void testImporterConfiguredBeforeValidatorsObtained() throws Exception {
+ public void testImporterConfiguredBeforeValidatorsObtained() throws Exception {
setup(false);
-
+
try {
ImportConfigurationCheckingSynchronizer.reset();
-
+
synchronizationManager.setSynchronizerFactory(new SynchronizerFactory() {
@Override
public Set<Synchronizer<?, ?>> getAllSynchronizers() {
- return Collections.<Synchronizer<?, ?>>singleton(new ImportConfigurationCheckingSynchronizer());
+ return Collections.<Synchronizer<?, ?>> singleton(new ImportConfigurationCheckingSynchronizer());
}
});
-
+
export = synchronizationManager.exportAllSubsystems(freshUser());
-
+
//and import it back again, so that we actually invoke the import validation
synchronizationManager.importAllSubsystems(freshUser(), export.getExportFile(), null);
-
+
assertTrue(ImportConfigurationCheckingSynchronizer.importerConfigured);
assertTrue(ImportConfigurationCheckingSynchronizer.importValidatorsObtainedAfterConfiguration);
} finally {
@@ -596,8 +595,8 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
}
private String getExportData() throws IOException {
- InputStreamReader str =
- new InputStreamReader(new GZIPInputStream(new ByteArrayInputStream(export.getExportFile())), "UTF-8");
+ InputStreamReader str = new InputStreamReader(new GZIPInputStream(new ByteArrayInputStream(
+ export.getExportFile())), "UTF-8");
try {
char[] buf = new char[32768];
StringBuilder bld = new StringBuilder();
@@ -634,17 +633,14 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
XPath xpath = XPathFactory.newInstance().newXPath();
xpath.setNamespaceContext(SynchronizationConstants.createConfigurationExportNamespaceContext());
- XPathExpression systemSettingsConfigurationPath =
- xpath
- .compile("/:configuration-export/:entities[@id='org.rhq.enterprise.server.sync.SystemSettingsSynchronizer']/:default-configuration/ci:simple-property[@name='propertiesToImport']");
+ XPathExpression systemSettingsConfigurationPath = xpath
+ .compile("/:configuration-export/:entities[@id='org.rhq.enterprise.server.sync.SystemSettingsSynchronizer']/:default-configuration/ci:simple-property[@name='propertiesToImport']");
- XPathExpression baseUrlSettingPath =
- xpath
- .compile("/:configuration-export/:entities[@id='org.rhq.enterprise.server.sync.SystemSettingsSynchronizer']/:entity/:data/systemSettings/entry[@key='CAM_BASE_URL']");
+ XPathExpression baseUrlSettingPath = xpath
+ .compile("/:configuration-export/:entities[@id='org.rhq.enterprise.server.sync.SystemSettingsSynchronizer']/:entity/:data/systemSettings/entry[@key='CAM_BASE_URL']");
- Element systemSettingsConfiguration =
- (Element) systemSettingsConfigurationPath.evaluate(new InputSource(new StringReader(exportXML)),
- XPathConstants.NODE);
+ Element systemSettingsConfiguration = (Element) systemSettingsConfigurationPath.evaluate(new InputSource(
+ new StringReader(exportXML)), XPathConstants.NODE);
String propsToImport = systemSettingsConfiguration.getAttribute("value");
propsToImport += ", CAM_BASE_URL";
@@ -653,8 +649,8 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
exportXML = documentToString(systemSettingsConfiguration.getOwnerDocument());
- Element baseUrlSetting =
- (Element) baseUrlSettingPath.evaluate(new InputSource(new StringReader(exportXML)), XPathConstants.NODE);
+ Element baseUrlSetting = (Element) baseUrlSettingPath.evaluate(new InputSource(new StringReader(exportXML)),
+ XPathConstants.NODE);
baseUrlSetting.setTextContent("http://testing.domain:7080");
@@ -665,12 +661,11 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
XPath xpath = XPathFactory.newInstance().newXPath();
xpath.setNamespaceContext(SynchronizationConstants.createConfigurationExportNamespaceContext());
- XPathExpression overridesPath =
- xpath
- .compile("/:configuration-export/:entities[@id='org.rhq.enterprise.server.sync.MetricTemplateSynchronizer']/:default-configuration/ci:list-property[@name='metricUpdateOverrides']");
+ XPathExpression overridesPath = xpath
+ .compile("/:configuration-export/:entities[@id='org.rhq.enterprise.server.sync.MetricTemplateSynchronizer']/:default-configuration/ci:list-property[@name='metricUpdateOverrides']");
- Element overrides =
- (Element) overridesPath.evaluate(new InputSource(new StringReader(exportXML)), XPathConstants.NODE);
+ Element overrides = (Element) overridesPath.evaluate(new InputSource(new StringReader(exportXML)),
+ XPathConstants.NODE);
Document doc = overrides.getOwnerDocument();
@@ -691,13 +686,12 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
exportXML = documentToString(doc);
//now redefine the collection interval of the above metric so that we can see the change after the import
- XPathExpression distroNameMetricPath =
- xpath
- .compile("/:configuration-export/:entities[@id='org.rhq.enterprise.server.sync.MetricTemplateSynchronizer']/:entity/:data/metricTemplate[@metricName='"
- + METRIC_NAME + "']");
+ XPathExpression distroNameMetricPath = xpath
+ .compile("/:configuration-export/:entities[@id='org.rhq.enterprise.server.sync.MetricTemplateSynchronizer']/:entity/:data/metricTemplate[@metricName='"
+ + METRIC_NAME + "']");
- Element metric =
- (Element) distroNameMetricPath.evaluate(new InputSource(new StringReader(exportXML)), XPathConstants.NODE);
+ Element metric = (Element) distroNameMetricPath.evaluate(new InputSource(new StringReader(exportXML)),
+ XPathConstants.NODE);
doc = metric.getOwnerDocument();
@@ -730,7 +724,7 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
user = subjectManager.getOverlord();
return user;
}
-
+
private InputStream createCompressedStream(String exportData) throws UnsupportedEncodingException, IOException {
ByteArrayOutputStream compressed = new ByteArrayOutputStream();
OutputStreamWriter wrt = new OutputStreamWriter(new GZIPOutputStream(compressed), "UTF-8");
@@ -740,6 +734,6 @@ public class SynchronizationManagerBeanTest extends AbstractEJB3Test {
wrt.close();
}
- return new ByteArrayInputStream(compressed.toByteArray());
+ return new ByteArrayInputStream(compressed.toByteArray());
}
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/system/SystemManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/system/SystemManagerBeanTest.java
index 8d27267..ede29a4 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/system/SystemManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/system/SystemManagerBeanTest.java
@@ -20,7 +20,7 @@ package org.rhq.enterprise.server.system;
import java.util.Properties;
-import org.testng.annotations.AfterClass;
+import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -43,24 +43,25 @@ public class SystemManagerBeanTest extends AbstractEJB3Test {
@BeforeClass
public void setupServer() {
systemManager = LookupUtil.getSystemManager();
-
+ }
+
+ @BeforeMethod
+ public void beforeMethod() {
+ // do this each method so it doesn't expire
+ overlord = LookupUtil.getSubjectManager().getOverlord();
+
//we need this because the drift plugins are referenced from the system settings that we use in our tests
testServerPluginService = new TestServerPluginService();
prepareCustomServerPluginService(testServerPluginService);
testServerPluginService.startMasterPluginContainer();
}
- @AfterClass
+ @AfterMethod(alwaysRun = true)
public void tearDownServer() throws Exception {
unprepareServerPluginService();
- testServerPluginService.stopMasterPluginContainer();
- }
-
- @BeforeMethod
- public void beforeMethod() {
- overlord = LookupUtil.getSubjectManager().getOverlord();
}
+ @SuppressWarnings("deprecation")
public void testGetSystemConfiguration() {
assert null != systemManager.getSystemConfiguration(overlord);
}
@@ -88,7 +89,7 @@ public class SystemManagerBeanTest extends AbstractEJB3Test {
public void testVacuumAppdef() {
systemManager.vacuumAppdef(overlord);
}
-
+
@SuppressWarnings("deprecation")
public void testLegacySystemSettingsInCorrectFormat() throws Exception {
//some of the properties are represented differently
@@ -96,45 +97,45 @@ public class SystemManagerBeanTest extends AbstractEJB3Test {
//settings (and consequently database).
//These two still co-exist together in the codebase
//so let's make sure the values correspond to each other.
-
+
SystemSettings settings = systemManager.getSystemSettings(overlord);
Properties config = systemManager.getSystemConfiguration(overlord);
-
+
SystemSettings origSettings = new SystemSettings(settings);
-
+
try {
//let's make sure the values are the same
checkFormats(settings, config);
-
+
boolean currentJaasProvider = Boolean.valueOf(settings.get(SystemSetting.LDAP_BASED_JAAS_PROVIDER));
settings.put(SystemSetting.LDAP_BASED_JAAS_PROVIDER, Boolean.toString(!currentJaasProvider));
-
+
boolean currentUseSslForLdap = Boolean.valueOf(settings.get(SystemSetting.USE_SSL_FOR_LDAP));
settings.put(SystemSetting.USE_SSL_FOR_LDAP, Boolean.toString(!currentUseSslForLdap));
-
+
systemManager.setSystemSettings(overlord, settings);
-
+
settings = systemManager.getSystemSettings(overlord);
config = systemManager.getSystemConfiguration(overlord);
-
+
checkFormats(settings, config);
} finally {
systemManager.setSystemSettings(overlord, origSettings);
}
}
-
- private void checkFormats(SystemSettings settings, Properties config) {
+
+ private void checkFormats(SystemSettings settings, Properties config) {
assert settings.size() == config.size() : "The old and new style system settings differ in size";
-
- for(String name : config.stringPropertyNames()) {
+
+ for (String name : config.stringPropertyNames()) {
SystemSetting setting = SystemSetting.getByInternalName(name);
-
- String oldStyleValue = config.getProperty(name);
+
+ String oldStyleValue = config.getProperty(name);
String newStyleValue = settings.get(setting);
-
+
assert setting != null : "Could not find a system setting called '" + name + "'.";
-
- switch(setting) {
+
+ switch (setting) {
case USE_SSL_FOR_LDAP:
if (RHQConstants.LDAP_PROTOCOL_SECURED.equals(oldStyleValue)) {
assert Boolean.valueOf(newStyleValue) : "Secured LDAP protocol should be represented by a 'true' in new style settings.";
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java
index 45bda40..566bc21 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java
@@ -72,6 +72,7 @@ public abstract class AbstractEJB3Test extends AssertJUnit {
private static EJB3StandaloneDeployer deployer;
private static Statistics stats;
+ @SuppressWarnings("unused")
private static long start; // see endTest() if you want to output this
private SchedulerService schedulerService;
private ServerPluginService serverPluginService;
@@ -257,6 +258,13 @@ public abstract class AbstractEJB3Test extends AssertJUnit {
return dummyJBossMBeanServer;
}
+ public void releaseJBossMBeanServer() {
+ if (dummyJBossMBeanServer != null) {
+ MBeanServerFactory.releaseMBeanServer(dummyJBossMBeanServer);
+ dummyJBossMBeanServer = null;
+ }
+ }
+
/**
* If you need to test round trips from server to agent and back, you first must install the server communications
* service that houses all the agent clients. Call this method and add your test agent services to the public fields
@@ -285,10 +293,18 @@ public abstract class AbstractEJB3Test extends AssertJUnit {
* {@link #prepareForTestAgents()}.
*/
public void unprepareForTestAgents() {
+ unprepareForTestAgents(false);
+ }
+
+ public void unprepareForTestAgents(boolean beanOnly) {
try {
- MBeanServer mbs = getJBossMBeanServer();
- if (mbs.isRegistered(ServerCommunicationsServiceMBean.OBJECT_NAME)) {
- mbs.unregisterMBean(ServerCommunicationsServiceMBean.OBJECT_NAME);
+ if (beanOnly) {
+ MBeanServer mbs = getJBossMBeanServer();
+ if (mbs.isRegistered(ServerCommunicationsServiceMBean.OBJECT_NAME)) {
+ mbs.unregisterMBean(ServerCommunicationsServiceMBean.OBJECT_NAME);
+ }
+ } else {
+ releaseJBossMBeanServer();
}
} catch (Exception e) {
throw new RuntimeException(e);
@@ -317,10 +333,25 @@ public abstract class AbstractEJB3Test extends AssertJUnit {
}
public void unprepareServerPluginService() throws Exception {
+ unprepareServerPluginService(false);
+ }
+
+ public void unprepareServerPluginService(boolean beanOnly) throws Exception {
if (serverPluginService != null) {
serverPluginService.stopMasterPluginContainer();
serverPluginService.stop();
- getJBossMBeanServer().unregisterMBean(ServerPluginService.OBJECT_NAME);
+ if (beanOnly) {
+ MBeanServer mbs = getJBossMBeanServer();
+ if (mbs.isRegistered(ServerPluginService.OBJECT_NAME)) {
+ getJBossMBeanServer().unregisterMBean(ServerPluginService.OBJECT_NAME);
+ }
+ if (mbs.isRegistered(ServerPluginServiceManagement.OBJECT_NAME)) {
+ getJBossMBeanServer().unregisterMBean(ServerPluginServiceManagement.OBJECT_NAME);
+ }
+
+ } else {
+ releaseJBossMBeanServer();
+ }
serverPluginService = null;
}
}
@@ -351,9 +382,21 @@ public abstract class AbstractEJB3Test extends AssertJUnit {
}
public void unprepareScheduler() throws Exception {
+ unprepareScheduler(false);
+ }
+
+ public void unprepareScheduler(boolean beanOnly) throws Exception {
if (schedulerService != null) {
schedulerService.stop();
- getJBossMBeanServer().unregisterMBean(SchedulerServiceMBean.SCHEDULER_MBEAN_NAME);
+ if (beanOnly) {
+ MBeanServer mbs = getJBossMBeanServer();
+ if (mbs.isRegistered(SchedulerServiceMBean.SCHEDULER_MBEAN_NAME)) {
+ getJBossMBeanServer().unregisterMBean(SchedulerServiceMBean.SCHEDULER_MBEAN_NAME);
+ }
+ } else {
+ releaseJBossMBeanServer();
+ }
+
schedulerService = null;
}
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/LargeGroupTestBase.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/LargeGroupTestBase.java
index 1fd16a9..cbafd46 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/LargeGroupTestBase.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/LargeGroupTestBase.java
@@ -25,8 +25,9 @@ import javax.persistence.NoResultException;
import javax.persistence.Query;
import javax.transaction.TransactionManager;
-import org.testng.annotations.AfterClass;
+import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.authz.Permission;
@@ -86,20 +87,23 @@ public abstract class LargeGroupTestBase extends AbstractEJB3Test {
* Prepares things for the entire test class.
*/
@BeforeClass
- public void beforeClass() {
+ public void beforeClassBase() {
configurationManager = LookupUtil.getConfigurationManager();
resourceManager = LookupUtil.getResourceManager();
resourceGroupManager = LookupUtil.getResourceGroupManager();
subjectManager = LookupUtil.getSubjectManager();
+ }
+ @BeforeMethod
+ public void beforeMethodBase() throws Exception {
TestServerCommunicationsService agentServiceContainer = prepareForTestAgents();
setupMockAgentServices(agentServiceContainer);
prepareScheduler();
}
- @AfterClass(alwaysRun = true)
- public void afterClass() throws Exception {
+ @AfterMethod(alwaysRun = true)
+ public void afterMethodBase() throws Exception {
try {
unprepareForTestAgents();
} finally {
commit 1b40790c2c5deb8db9ec87ccfc3d56a235eb5b00
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Wed Jan 18 17:19:58 2012 -0500
[BZ 782612][BZ 772318] the agent registration now requires a token. null tokens are rejected unless its a new agent.
diff --git a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java
index 5359c3c..c7e0cfc 100644
--- a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java
+++ b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java
@@ -751,8 +751,8 @@ public class AgentMain {
try {
shutdownPluginContainer();
} catch (Throwable ignore) {
- LOG.warn(AgentI18NResourceKeys.FAILED_TO_SHUTDOWN_COMPONENT, "Plugin Container", ThrowableUtil
- .getAllMessages(ignore));
+ LOG.warn(AgentI18NResourceKeys.FAILED_TO_SHUTDOWN_COMPONENT, "Plugin Container",
+ ThrowableUtil.getAllMessages(ignore));
}
///////
@@ -984,8 +984,8 @@ public class AgentMain {
LOG.debug(AgentI18NResourceKeys.FAILOVER_LIST_LOADED, failoverListFile, list.size());
} catch (Exception e) {
list = new FailoverListComposite(new ArrayList<ServerEntry>());
- LOG.warn(e, AgentI18NResourceKeys.FAILOVER_LIST_CANNOT_BE_LOADED, failoverListFile, ThrowableUtil
- .getAllMessages(e));
+ LOG.warn(e, AgentI18NResourceKeys.FAILOVER_LIST_CANNOT_BE_LOADED, failoverListFile,
+ ThrowableUtil.getAllMessages(e));
}
}
@@ -1191,8 +1191,10 @@ public class AgentMain {
// store is the default value.
// But first we need to backup these original preferences in case the config file fails to load -
// we'll restore the original values in that case.
-
+ // Note that we squirrel away any security token we already have - we need to preserve this when we can
+ // because otherwise the agent will not be able to re-register with any previous name is was registered with.
Preferences preferencesNode = getPreferencesNode();
+ String securityToken = preferencesNode.get(AgentConfigurationConstants.AGENT_SECURITY_TOKEN, null);
ByteArrayOutputStream backup = new ByteArrayOutputStream();
preferencesNode.exportSubtree(backup);
preferencesNode.clear();
@@ -1213,10 +1215,26 @@ public class AgentMain {
ByteArrayInputStream new_config_input_stream = new ByteArrayInputStream(new_config.getBytes());
Preferences.importPreferences(new_config_input_stream);
- if (new AgentConfiguration(preferencesNode).getAgentConfigurationVersion() == 0) {
+ AgentConfiguration newAgentConfig = new AgentConfiguration(preferencesNode);
+ if (newAgentConfig.getAgentConfigurationVersion() == 0) {
throw new IllegalArgumentException(MSG.getMsg(AgentI18NResourceKeys.BAD_NODE_NAME_IN_CONFIG_FILE,
file_name, m_agentPreferencesNodeName));
}
+
+ // If we had a security token, restore it so we can maintain our known registration with the server.
+ // Note that if the configuration file already had a security token defined, it will be used and the old
+ // token we had will be thrown away.
+ if (securityToken != null) {
+ if (newAgentConfig.getAgentSecurityToken() == null) {
+ LOG.debug(AgentI18NResourceKeys.RESTORING_SECURITY_TOKEN);
+ newAgentConfig.setAgentSecurityToken(securityToken);
+ } else {
+ LOG.info(AgentI18NResourceKeys.NOT_RESTORING_SECURITY_TOKEN);
+ }
+ }
+
+ preferencesNode.flush();
+
} catch (Exception e) {
// a problem occurred importing the config file; let's restore our original values
try {
@@ -2297,8 +2315,8 @@ public class AgentMain {
*/
private void prepareAutoDiscoveryListener() throws Exception {
if (m_configuration.isServerAutoDetectionEnabled()) {
- ServiceContainerConfiguration comm_config = new ServiceContainerConfiguration(m_configuration
- .getPreferences());
+ ServiceContainerConfiguration comm_config = new ServiceContainerConfiguration(
+ m_configuration.getPreferences());
if (comm_config.isMulticastDetectorEnabled()) {
m_autoDiscoveryListener = new AgentAutoDiscoveryListener(this, createServerRemoteCommunicator(null,
false, false));
@@ -2469,8 +2487,8 @@ public class AgentMain {
if (wait > 0) {
long now = System.currentTimeMillis();
if ((started + wait) < now) {
- throw new RuntimeException(MSG
- .getMsg(AgentI18NResourceKeys.CANNOT_WAIT_TO_BE_REGISTERED_ANY_LONGER));
+ throw new RuntimeException(
+ MSG.getMsg(AgentI18NResourceKeys.CANNOT_WAIT_TO_BE_REGISTERED_ANY_LONGER));
}
}
@@ -2570,27 +2588,27 @@ public class AgentMain {
Map<String, String> config = new HashMap<String, String>();
if (SecurityUtil.isTransportSecure(uri)) {
- config.put(SSLSocketBuilder.REMOTING_KEY_STORE_FILE_PATH, m_configuration
- .getClientSenderSecurityKeystoreFile());
- config.put(SSLSocketBuilder.REMOTING_KEY_STORE_ALGORITHM, m_configuration
- .getClientSenderSecurityKeystoreAlgorithm());
+ config.put(SSLSocketBuilder.REMOTING_KEY_STORE_FILE_PATH,
+ m_configuration.getClientSenderSecurityKeystoreFile());
+ config.put(SSLSocketBuilder.REMOTING_KEY_STORE_ALGORITHM,
+ m_configuration.getClientSenderSecurityKeystoreAlgorithm());
config.put(SSLSocketBuilder.REMOTING_KEY_STORE_TYPE, m_configuration.getClientSenderSecurityKeystoreType());
- config.put(SSLSocketBuilder.REMOTING_KEY_STORE_PASSWORD, m_configuration
- .getClientSenderSecurityKeystorePassword());
- config.put(SSLSocketBuilder.REMOTING_KEY_PASSWORD, m_configuration
- .getClientSenderSecurityKeystoreKeyPassword());
- config.put(SSLSocketBuilder.REMOTING_TRUST_STORE_FILE_PATH, m_configuration
- .getClientSenderSecurityTruststoreFile());
- config.put(SSLSocketBuilder.REMOTING_TRUST_STORE_ALGORITHM, m_configuration
- .getClientSenderSecurityTruststoreAlgorithm());
- config.put(SSLSocketBuilder.REMOTING_TRUST_STORE_TYPE, m_configuration
- .getClientSenderSecurityTruststoreType());
- config.put(SSLSocketBuilder.REMOTING_TRUST_STORE_PASSWORD, m_configuration
- .getClientSenderSecurityTruststorePassword());
+ config.put(SSLSocketBuilder.REMOTING_KEY_STORE_PASSWORD,
+ m_configuration.getClientSenderSecurityKeystorePassword());
+ config.put(SSLSocketBuilder.REMOTING_KEY_PASSWORD,
+ m_configuration.getClientSenderSecurityKeystoreKeyPassword());
+ config.put(SSLSocketBuilder.REMOTING_TRUST_STORE_FILE_PATH,
+ m_configuration.getClientSenderSecurityTruststoreFile());
+ config.put(SSLSocketBuilder.REMOTING_TRUST_STORE_ALGORITHM,
+ m_configuration.getClientSenderSecurityTruststoreAlgorithm());
+ config.put(SSLSocketBuilder.REMOTING_TRUST_STORE_TYPE,
+ m_configuration.getClientSenderSecurityTruststoreType());
+ config.put(SSLSocketBuilder.REMOTING_TRUST_STORE_PASSWORD,
+ m_configuration.getClientSenderSecurityTruststorePassword());
config.put(SSLSocketBuilder.REMOTING_SSL_PROTOCOL, m_configuration.getClientSenderSecuritySocketProtocol());
config.put(SSLSocketBuilder.REMOTING_KEY_ALIAS, m_configuration.getClientSenderSecurityKeystoreAlias());
- config.put(SSLSocketBuilder.REMOTING_SERVER_AUTH_MODE, Boolean.toString(m_configuration
- .isClientSenderSecurityServerAuthMode()));
+ config.put(SSLSocketBuilder.REMOTING_SERVER_AUTH_MODE,
+ Boolean.toString(m_configuration.isClientSenderSecurityServerAuthMode()));
config.put(SSLSocketBuilder.REMOTING_SOCKET_USE_CLIENT_MODE, "true");
// since we do not know the server's client-auth mode, assume we need a keystore and let's make sure we have one
@@ -2600,10 +2618,10 @@ public class AgentMain {
dummy_sslbuilder.setKeyStoreURL(m_configuration.getClientSenderSecurityKeystoreFile());
} catch (Exception e) {
// this probably is due to the fact that the keystore doesn't exist yet - let's prepare one now
- SecurityUtil.createKeyStore(m_configuration.getClientSenderSecurityKeystoreFile(), m_configuration
- .getClientSenderSecurityKeystoreAlias(), "CN=RHQ, OU=RedHat, O=redhat.com, C=US", m_configuration
- .getClientSenderSecurityKeystorePassword(), m_configuration
- .getClientSenderSecurityKeystoreKeyPassword(), "DSA", 36500);
+ SecurityUtil.createKeyStore(m_configuration.getClientSenderSecurityKeystoreFile(),
+ m_configuration.getClientSenderSecurityKeystoreAlias(), "CN=RHQ, OU=RedHat, O=redhat.com, C=US",
+ m_configuration.getClientSenderSecurityKeystorePassword(),
+ m_configuration.getClientSenderSecurityKeystoreKeyPassword(), "DSA", 36500);
// now try to set it again, if an exception is still thrown, it's an unrecoverable error
dummy_sslbuilder.setKeyStoreURL(m_configuration.getClientSenderSecurityKeystoreFile());
@@ -2702,8 +2720,8 @@ public class AgentMain {
StreamUtil.copy(byteStream, fileStream, true);
LOG.debug(AgentI18NResourceKeys.FAILOVER_LIST_PERSISTED, failoverListFile);
} catch (Exception e) {
- LOG.warn(e, AgentI18NResourceKeys.FAILOVER_LIST_CANNOT_BE_PERSISTED, failoverListFile, ThrowableUtil
- .getAllMessages(e));
+ LOG.warn(e, AgentI18NResourceKeys.FAILOVER_LIST_CANNOT_BE_PERSISTED, failoverListFile,
+ ThrowableUtil.getAllMessages(e));
}
// let's be kind to the user - if any server address is "localhost" or "127.0.0.#"
@@ -2773,8 +2791,8 @@ public class AgentMain {
break;
}
} catch (Throwable t) {
- m_output.println(MSG.getMsg(AgentI18NResourceKeys.COMMAND_FAILURE, cmd, ThrowableUtil
- .getAllMessages(t)));
+ m_output.println(MSG.getMsg(AgentI18NResourceKeys.COMMAND_FAILURE, cmd,
+ ThrowableUtil.getAllMessages(t)));
LOG.debug(t, AgentI18NResourceKeys.COMMAND_FAILURE_STACK_TRACE);
}
}
@@ -2890,7 +2908,7 @@ public class AgentMain {
* @throws HelpException if help was requested and the agent should not be created
*/
private void processArguments(String[] args) throws Exception {
- String sopts = "-:hdlasntguD:i:o:c:p:e:";
+ String sopts = "-:hdlLasntguD:i:o:c:p:e:";
LongOpt[] lopts = { new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h'),
new LongOpt("input", LongOpt.REQUIRED_ARGUMENT, null, 'i'),
new LongOpt("output", LongOpt.REQUIRED_ARGUMENT, null, 'o'),
@@ -2899,6 +2917,7 @@ public class AgentMain {
new LongOpt("console", LongOpt.REQUIRED_ARGUMENT, null, 'e'),
new LongOpt("daemon", LongOpt.NO_ARGUMENT, null, 'd'),
new LongOpt("cleanconfig", LongOpt.NO_ARGUMENT, null, 'l'),
+ new LongOpt("cleanallconfig", LongOpt.NO_ARGUMENT, null, 'L'),
new LongOpt("advanced", LongOpt.NO_ARGUMENT, null, 'a'),
new LongOpt("setup", LongOpt.NO_ARGUMENT, null, 's'),
new LongOpt("nostart", LongOpt.NO_ARGUMENT, null, 'n'),
@@ -2908,6 +2927,7 @@ public class AgentMain {
String config_file_name = null;
boolean clean_config = false;
+ boolean clean_token = false; // only used if clean_config = true
boolean purge_data = false;
boolean purge_plugins = false;
AgentInputReaderFactory.ConsoleType console_type = null;
@@ -2967,6 +2987,13 @@ public class AgentMain {
break;
}
+ case 'L': {
+ clean_config = true;
+ purge_data = true;
+ clean_token = true;
+ break;
+ }
+
case 'u': {
purge_data = true;
break;
@@ -3051,7 +3078,21 @@ public class AgentMain {
// now that all the arguments were processed, let's load in our config (this allows the -p to come after -c)
if (clean_config) {
- getPreferencesNode().removeNode();
+ Preferences prefsNode = getPreferencesNode();
+ if (clean_token) {
+ prefsNode.removeNode();
+ } else {
+ // remove everything EXCEPT the security token
+ String[] prefKeys = prefsNode.keys();
+ if (prefKeys != null && prefKeys.length > 0) {
+ for (String prefKey : prefKeys) {
+ if (!prefKey.equals(AgentConfigurationConstants.AGENT_SECURITY_TOKEN)) {
+ prefsNode.remove(prefKey);
+ }
+ }
+ }
+ }
+ prefsNode.flush();
}
if (config_file_name != null) {
@@ -3260,6 +3301,8 @@ public class AgentMain {
preferencesNode.put(ServiceContainerConfigurationConstants.DATA_DIRECTORY, data_dir);
}
+ prefs.flush();
+
LOG.debug(AgentI18NResourceKeys.CONFIGURATION, agent_configuration);
return;
diff --git a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/i18n/AgentI18NResourceKeys.java b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/i18n/AgentI18NResourceKeys.java
index b0608c2..6489401 100644
--- a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/i18n/AgentI18NResourceKeys.java
+++ b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/i18n/AgentI18NResourceKeys.java
@@ -613,7 +613,8 @@ public interface AgentI18NResourceKeys {
+ "\\ -g, --purgeplugins Deletes all plugins, forcing the agent to re-download all of them\\n\\\n"
+ "\\ -h, --help Shows this help message (default)\\n\\\n"
+ "\\ -i, --input=<filename> Specifies a script file to be used for input\\n\\\n"
- + "\\ -l, --cleanconfig Clears out any existing configuration and data files so the agent starts with a totally clean slate\\n\\\n"
+ + "\\ -l, --cleanconfig Clears out existing configuration and data files, except for the security token.\\n\\\n"
+ + "\\ -L, --cleanallconfig Clears out all existing configuration and data files so the agent starts with a totally clean slate\\n\\\n"
+ "\\ -n, --nostart If specified, the agent will not be automatically started\\n\\\n"
+ "\\ -o, --output=<filename> Specifies a file to write all output (excluding log messages)\\n\\\n"
+ "\\ -p, --pref=<preferences name> Specifies the agent preferences name used to identify what configuration to use\\n\\\n"
@@ -2104,4 +2105,10 @@ public interface AgentI18NResourceKeys {
@I18NMessage("Restarting the plugin container due to previous failure to merge the upgrade results with the server.")
String RESTARTING_PLUGIN_CONTAINER_AFTER_UPGRADE_MERGE_FAILURE = "AgentMain.pc-conditional-restart";
+
+ @I18NMessage("Restoring the original security token.")
+ String RESTORING_SECURITY_TOKEN = "AgentMain.restoring-security-token";
+
+ @I18NMessage("The config file already has a security token defined. The original security token will be thrown away.")
+ String NOT_RESTORING_SECURITY_TOKEN = "AgentMain.not-restoring-security-token";
}
\ No newline at end of file
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/ha/ViewAgentUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/ha/ViewAgentUIBean.java
index fd2286c..90d7042 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/ha/ViewAgentUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/ha/ViewAgentUIBean.java
@@ -56,6 +56,9 @@ public class ViewAgentUIBean extends PagedDataTableUIBean {
hasPermission();
int agentId = FacesContextUtility.getRequiredRequestParameter("agentId", Integer.class);
agent = agentManager.getAgentByID(agentId);
+ if (!hasPermissionToViewSecurityToken()) {
+ agent.setAgentToken("******");
+ }
}
return agent;
}
@@ -94,4 +97,9 @@ public class ViewAgentUIBean extends PagedDataTableUIBean {
+ "] does not have the proper permissions to view or manage agents");
}
}
+
+ private boolean hasPermissionToViewSecurityToken() {
+ Subject subject = EnterpriseFacesContextUtility.getSubject();
+ return LookupUtil.getAuthorizationManager().hasGlobalPermission(subject, Permission.MANAGE_SECURITY);
+ }
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
index e380b6e..75c4d65 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
@@ -104,14 +104,10 @@ public class CoreServerServiceImpl implements CoreServerService {
* something else".
*
* If there is no original token with the request, this is either a brand new agent never before registered, or it
- * is an agent that has been registered before but for some reason lost its token. In this case, we will look at
- * this registration's host/port of this new agent. If it matches the host/port of another agent but the
- * existing name and the new agent's name don't match, the server will abort and tell the agent, "You don't know
- * who you are, but I know there is already an agent with the host and port you are trying to register with
- * under a different name - so I'm going to trust this original agent and not allow you to register that name
- * under a different host/port. If you are that original agent, then you need to register with that original
- * name". When the agent registers again, this time with the correct name, the agent will be given its token.
- * This usually will occur if you reinstall the agent and try to register it under a different name.
+ * is an agent that has been registered before but for some reason lost its token.
+ * In this case, if there is no agent with the name being requested, we register this as a new agent.
+ * If, however, the agent name is already in use, we abort the request. An agent cannot register with an
+ * existing agent without sending that agent's security token.
*/
if (request.getOriginalToken() != null) {
@@ -140,19 +136,24 @@ public class CoreServerServiceImpl implements CoreServerService {
// the agent request provided a name that already is in use by an agent. However, the request
// provided a security token that was not assigned to any agent! How can this be? Something is fishy.
String msg = "The agent asking for registration under the name [" + request.getName()
- + "] provided an invalid security token. This request will fail.";
+ + "] provided an invalid security token. This request will fail. "
+ + "Please consult an administrator to reconfigure this agent with its proper security token.";
throw new AgentRegistrationException(msg);
}
Agent agentByAddressPort = getAgentManager().getAgentByAddressAndPort(request.getAddress(),
request.getPort());
if (agentByAddressPort != null) {
- // the agent request provided a security token but it is an unknown/unused/bogus token.
+ // The agent is requesting to register an unused agent name - so this is considered a new agent.
+ // It provided a security token but it is an unknown/obsolete/bogus token (usually due to the
+ // fact that someone purged the platform/agent from the server database but the old agent is
+ // still around with its old token).
// However, the IP/port it wants to use is already in-use. This sounds fishy. If we let this
// go through, this agent with an unknown/bogus token will essentially hijack this IP/port
// belonging to an existing agent. If the agent wants to reuse an IP/port already in existence, it should
// already know its security token associated with that IP/port. Thus, we will abort this request.
String msg = "The agent asking for registration under the name [" + request.getName()
- + "] is attempting to authenticate using an unknown security token. This request will fail.";
+ + "] is attempting to take another agent's address/port [" + request.getAddress() + ":"
+ + request.getPort() + "] with an unknown security token. This request will fail.";
throw new AgentRegistrationException(msg);
}
}
@@ -167,23 +168,25 @@ public class CoreServerServiceImpl implements CoreServerService {
+ request.getPort()
+ "] that is already registered under a different name ["
+ agentByAddressPort.getName()
- + "]; if this new agent is actually the same as the original, then re-register with the same name";
+ + "]; if this new agent is actually the same as the original, then re-register with the same name"
+ + " and same security token.";
throw new AgentRegistrationException(msg);
+ } else {
+ String msg = "The agent [" + request.getName()
+ + "] is attempting to re-register without a security token. "
+ + "Please consult an administrator to reconfigure this agent with its proper security token.";
+ throw new AgentRegistrationException(msg);
+
}
} else {
if (agentByName != null) {
- // the name being registered already exists, however, the agent request is trying to set it
- // to some unknown IP/port combination and there is no security token to authenticate this request!
+ // the name being registered already exists - but there is no security token to authenticate this request!
// Therefore, because this agent name is already registered and because this current request
// cannot authenticate itself with the proper security token, we fail.
String msg = "An agent is trying to register with an existing agent name ["
+ request.getName()
- + "]. The registration request is attempting to assign the agent an unknown address/port ["
- + request.getAddress()
- + ":"
- + request.getPort()
+ "] without providing a valid security token. If you are attempting to re-register this agent, "
- + "make sure you register with its prior address/port.";
+ + "please consult an administrator to reconfigure this agent with its proper security token.";
throw new AgentRegistrationException(msg);
}
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java
index a3dda5e..5a702ff 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java
@@ -41,12 +41,57 @@ import org.rhq.core.domain.cloud.Server;
import org.rhq.core.domain.cloud.Server.OperationMode;
import org.rhq.core.domain.common.ProductInfo;
import org.rhq.core.domain.resource.Agent;
+import org.rhq.core.util.exception.ThrowableUtil;
import org.rhq.enterprise.server.test.AbstractEJB3Test;
import org.rhq.enterprise.server.util.LookupUtil;
/**
+ * This tests the core server service. This includes agent registration.
+ *
* @author John Mazzitelli
*/
+
+// These are the agent registration unit test cases.
+// (allowed) means the registration should succeed.
+// (REJECT) means the server should reject that agent registration request.
+// ---
+// A. testNewAgentRegistrationWithOldToken
+// 1) register a new agent with a non-null, unknown security token (allowed)
+// B. testChangeAddressPort
+// 1) register a new agent Z with null security token (allowed)
+// 2) re-register agent Z with its token but change its host (allowed)
+// 3) re-register agent Z with its token but change its port (allowed)
+// 4) re-register agent Z with its token but change its host and port (allowed)
+// 5) re-register agent Z with its token but change nothing (allowed)
+// 6) re-register agent Z with NO token but change its host (REJECT)
+// 7) re-register agent Z with NO token but change its port (REJECT)
+// 8) re-register agent Z with NO token but change its host and port (REJECT)
+// 9) re-register agent Z with NO token but change nothing (REJECT)
+// C. testNormalAgentRegistration
+// 1) register a new agent A with a null security token (allowed, same as B.1)
+// D. testHijackExistingAgentAddressPort
+// 1) register a new agent B with null security token but using A's host/port (REJECT)
+// E. testHijackExistingAgentName
+// 1) register an agent using an already-existing agent name A, and using A's host but a different port with a null token (REJECT - missing the token)
+// 2) register an agent using an already-existing agent name A, and using A's port but a different host with a null token (REJECT - missing the token)
+// 3) register an agent using an already-existing agent name A, and using a different port and host with a null token (REJECT - missing the token)
+// F. testHijackExistingAgentAddressPortWithBogusToken
+// 1) register a new agent B with A's host and port but with a bogus token (REJECT)
+// G. testHijackExistingAgentNameWithBogusToken
+// 1) re-register agent A with its original host and port but with a bogus token (REJECT)
+// 2) re-register agent A with its original host, different port but with bogus token (REJECT)
+// 3) re-register agent A with different host, original port but with bogus token (REJECT)
+// 4) re-register agent A with different host and port but with bogus token (REJECT)
+// H. testHijackExistingAgentNameWithAnotherAgentToken
+// 1) re-register agent A with its original host and port but with Z's security token (REJECT - you cannot authenticate using another agent's token)
+// 2) re-register agent A with different host and original port but with Z's security token (REJECT - you cannot authenticate using another agent's token)
+// 3) re-register agent A with original host and different port but with Z's security token (REJECT - you cannot authenticate using another agent's token)
+// 4) re-register agent A with different host and port but with Z's security token (REJECT - you cannot authenticate using another agent's token)
+// I. testAgentHijackingAnotherAgentAddressPort
+// 1) re-register agent A using A's correct security token but with Z's host and Z's port (REJECT - one agent cannot steal another agent's host/port endpoint) NOTE: this is not D.1 because in D.1, the request doesn't have a token. This I.1 test has a token and it really authenticates the agent A making the request. This also isn't F.1 because F.1, while it has a token, it is not a valid token, thus its agent is not authentic.
+// J. testAttemptToChangeAgentName
+// 1) register agent "newName" but with Z's host/port/token. In effect, this is trying to change the agent's name. (REJECT - you are not allowed to rename agents)
+
@Test
public class CoreServerServiceImplTest extends AbstractEJB3Test {
private static final String TEST_AGENT_NAME_PREFIX = "CoreServerServiceImplTest.Agent";
@@ -67,7 +112,7 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
public void testNewAgentRegistrationWithOldToken() throws Exception {
// this tests the case where someone purged an agent from the DB, but then
// changed their mind and want to re-run that agent and re-register it again.
- // In this case, the agent (if not using --cleanconfig) would still have the old token.
+ // In this case, the agent (if not using --cleanallconfig) would still have the old token.
// The agent should still be allowed to register again.
CoreServerServiceImpl service = new CoreServerServiceImpl();
AgentRegistrationRequest request = createRequest(prefixName("old"), "hostOld", 12345, "oldtoken");
@@ -128,18 +173,40 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
assert agent.getAddress().equals("hostZdoubleprime");
assert agent.getPort() == 55552;
- // now don't change Z's host/port but re-register everything the same, but with no token
- request = createRequest(zName, "hostZdoubleprime", 55552, null);
- results = service.registerAgent(request);
- assert results != null;
- agent = LookupUtil.getAgentManager().getAgentByAgentToken(results.getAgentToken());
- assert agent.getName().equals(zName);
- assert agent.getAddress().equals("hostZdoubleprime");
- assert agent.getPort() == 55552;
-
// remember this agent so our later tests can use it
zReq = request;
zResults = results;
+
+ // Try to re-register changes to host and/or port but do not send any token.
+ // Because there is no token, these should fail.
+ request = createRequest(zName, B_HOST, zReq.getPort(), null);
+ try {
+ service.registerAgent(request);
+ assert false : "(1) Should not have been able to register without a token";
+ } catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
+ }
+ request = createRequest(zName, zReq.getAddress(), B_PORT, null);
+ try {
+ service.registerAgent(request);
+ assert false : "(2) Should not have been able to register without a token";
+ } catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
+ }
+ request = createRequest(zName, B_HOST, B_PORT, null);
+ try {
+ service.registerAgent(request);
+ assert false : "(3) Should not have been able to register without a token";
+ } catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
+ }
+ request = createRequest(zName, zReq.getAddress(), zReq.getPort(), null);
+ try {
+ service.registerAgent(request);
+ assert false : "(4) Should not have been able to register without a token";
+ } catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
+ }
}
@Test(dependsOnMethods = "testChangeAddressPort")
@@ -159,6 +226,7 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
service.registerAgent(request);
assert false : "Should not have been able to hijack a used host/port with new agent name";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
}
@@ -171,18 +239,21 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
service.registerAgent(request);
assert false : "Should not have been able to hijack a used agent name without a token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
request = createRequest(aReq.getName(), B_HOST, aReq.getPort(), null);
try {
service.registerAgent(request);
assert false : "Should not have been able to hijack a used agent name without a token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
request = createRequest(aReq.getName(), B_HOST, B_PORT, null);
try {
service.registerAgent(request);
assert false : "Should not have been able to hijack a used agent name without a token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
}
@@ -195,6 +266,7 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
service.registerAgent(request);
assert false : "Should not have been able to hijack a used host/port with new agent name and invalid token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
}
@@ -207,24 +279,28 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
service.registerAgent(request);
assert false : "Should not have been able to hijack a used agent name with an invalid token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
request = createRequest(aReq.getName(), aReq.getAddress(), B_PORT, "badtoken");
try {
service.registerAgent(request);
assert false : "Should not have been able to hijack a used agent name with an invalid token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
request = createRequest(aReq.getName(), B_HOST, aReq.getPort(), "badtoken");
try {
service.registerAgent(request);
assert false : "Should not have been able to hijack a used agent name with an invalid token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
request = createRequest(aReq.getName(), B_HOST, B_PORT, "badtoken");
try {
service.registerAgent(request);
assert false : "Should not have been able to hijack a used agent name with an invalid token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
}
@@ -237,24 +313,28 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
service.registerAgent(request);
assert false : "Should not have been able to hijack agent A using Z's token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
request = createRequest(aReq.getName(), B_HOST, aReq.getPort(), zResults.getAgentToken());
try {
service.registerAgent(request);
assert false : "Should not have been able to hijack agent A using Z's token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
request = createRequest(aReq.getName(), aReq.getAddress(), B_PORT, zResults.getAgentToken());
try {
service.registerAgent(request);
assert false : "Should not have been able to hijack agent A using Z's token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
request = createRequest(aReq.getName(), B_HOST, B_PORT, zResults.getAgentToken());
try {
service.registerAgent(request);
assert false : "Should not have been able to hijack agent A using Z's token";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
}
@@ -267,6 +347,7 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
service.registerAgent(request);
assert false : "An agent should not have been able to hijack another agent's host/port";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
}
@@ -279,6 +360,7 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
service.registerAgent(request);
assert false : "An agent should not be able to change its name";
} catch (AgentRegistrationException ok) {
+ debugPrintThrowable(ok);
}
}
@@ -291,6 +373,12 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
return TEST_AGENT_NAME_PREFIX + name;
}
+ private void debugPrintThrowable(Throwable t) {
+ if (true) {
+ System.out.println(ThrowableUtil.getAllMessages(t));
+ }
+ }
+
@BeforeClass
public void prepare() throws Exception {
// mock the name of our server via the sysprop (in production, this is normally set in rhq-server.properties)
commit a51904cf0250d43f5c9f27f42521352f47750052
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Tue Jan 17 14:48:11 2012 -0500
[BZ 772318] forgot to test the most obvious and most common scenario - re-starting the agent. My original fix broke that. This fixes it back again and adds a unit test for it.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
index 85aa364..e380b6e 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
@@ -125,7 +125,7 @@ public class CoreServerServiceImpl implements CoreServerService {
} else {
Agent agentByAddressPort = getAgentManager().getAgentByAddressAndPort(request.getAddress(),
request.getPort());
- if (agentByAddressPort != null) {
+ if (agentByAddressPort != null && !agentByAddressPort.getName().equals(request.getName())) {
// the agent request provided information about an authentic agent but it is trying to
// steal another agent's host/port. Thus, we will abort this request.
String msg = "The agent asking for registration [" + request.getName()
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java
index 0abbbeb..a3dda5e 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java
@@ -119,6 +119,15 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
assert agent.getAddress().equals("hostZdoubleprime");
assert agent.getPort() == 55552;
+ // now don't change Z's host/port but re-register everything the same with its token
+ request = createRequest(zName, "hostZdoubleprime", 55552, results.getAgentToken());
+ results = service.registerAgent(request);
+ assert results != null;
+ agent = LookupUtil.getAgentManager().getAgentByAgentToken(results.getAgentToken());
+ assert agent.getName().equals(zName);
+ assert agent.getAddress().equals("hostZdoubleprime");
+ assert agent.getPort() == 55552;
+
// now don't change Z's host/port but re-register everything the same, but with no token
request = createRequest(zName, "hostZdoubleprime", 55552, null);
results = service.registerAgent(request);
@@ -343,6 +352,8 @@ public class CoreServerServiceImplTest extends AbstractEJB3Test {
MBeanServer mbs = getJBossMBeanServer();
mbs.unregisterMBean(CoreServerMBean.OBJECT_NAME);
+ unprepareForTestAgents();
+
// in case this was set before our tests, put it back the way it was
if (oldServerNamePropertyValue != null) {
System.setProperty(RHQ_SERVER_NAME_PROPERTY, oldServerNamePropertyValue);
commit c9ad8035f689423b5c06b1818d16b9574442b30e
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Tue Jan 17 12:04:00 2012 -0500
[BZ 772318] the agent registration process was lax and allowed somethings that it shouldn't have. This closes the known holes and adds unit tests to check that all known use-cases are handled properly.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
index 3b5ecc7..85aa364 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/CoreServerServiceImpl.java
@@ -94,9 +94,6 @@ public class CoreServerServiceImpl implements CoreServerService {
// If not, no point in continuing - the server won't be able to talk to the agent anyway.
pingEndpoint(request.getRemoteEndpoint());
- // TODO (ghinkle): Check platform limit - do we still care about this?
- //getPlatformManager().enforceLicenseLimit(args.getCpuCount());
-
Agent agentByName = getAgentManager().getAgentByName(request.getName());
/*
@@ -125,6 +122,38 @@ public class CoreServerServiceImpl implements CoreServerService {
String msg = "The agent asking for registration is already registered with the name ["
+ agentByToken.getName() + "], it cannot change its name to [" + request.getName() + "]";
throw new AgentRegistrationException(msg);
+ } else {
+ Agent agentByAddressPort = getAgentManager().getAgentByAddressAndPort(request.getAddress(),
+ request.getPort());
+ if (agentByAddressPort != null) {
+ // the agent request provided information about an authentic agent but it is trying to
+ // steal another agent's host/port. Thus, we will abort this request.
+ String msg = "The agent asking for registration [" + request.getName()
+ + "] is trying to register the same address/port [" + request.getAddress() + ":"
+ + request.getPort() + "] that is already registered under a different name ["
+ + agentByAddressPort.getName() + "]";
+ throw new AgentRegistrationException(msg);
+ }
+ }
+ } else {
+ if (agentByName != null) {
+ // the agent request provided a name that already is in use by an agent. However, the request
+ // provided a security token that was not assigned to any agent! How can this be? Something is fishy.
+ String msg = "The agent asking for registration under the name [" + request.getName()
+ + "] provided an invalid security token. This request will fail.";
+ throw new AgentRegistrationException(msg);
+ }
+ Agent agentByAddressPort = getAgentManager().getAgentByAddressAndPort(request.getAddress(),
+ request.getPort());
+ if (agentByAddressPort != null) {
+ // the agent request provided a security token but it is an unknown/unused/bogus token.
+ // However, the IP/port it wants to use is already in-use. This sounds fishy. If we let this
+ // go through, this agent with an unknown/bogus token will essentially hijack this IP/port
+ // belonging to an existing agent. If the agent wants to reuse an IP/port already in existence, it should
+ // already know its security token associated with that IP/port. Thus, we will abort this request.
+ String msg = "The agent asking for registration under the name [" + request.getName()
+ + "] is attempting to authenticate using an unknown security token. This request will fail.";
+ throw new AgentRegistrationException(msg);
}
}
} else {
@@ -141,6 +170,22 @@ public class CoreServerServiceImpl implements CoreServerService {
+ "]; if this new agent is actually the same as the original, then re-register with the same name";
throw new AgentRegistrationException(msg);
}
+ } else {
+ if (agentByName != null) {
+ // the name being registered already exists, however, the agent request is trying to set it
+ // to some unknown IP/port combination and there is no security token to authenticate this request!
+ // Therefore, because this agent name is already registered and because this current request
+ // cannot authenticate itself with the proper security token, we fail.
+ String msg = "An agent is trying to register with an existing agent name ["
+ + request.getName()
+ + "]. The registration request is attempting to assign the agent an unknown address/port ["
+ + request.getAddress()
+ + ":"
+ + request.getPort()
+ + "] without providing a valid security token. If you are attempting to re-register this agent, "
+ + "make sure you register with its prior address/port.";
+ throw new AgentRegistrationException(msg);
+ }
}
}
@@ -196,8 +241,8 @@ public class CoreServerServiceImpl implements CoreServerService {
// the agent does not yet exist, we need to create it
try {
- agentByName = new Agent(request.getName(), request.getAddress(), request.getPort(), request
- .getRemoteEndpoint(), generateAgentToken());
+ agentByName = new Agent(request.getName(), request.getAddress(), request.getPort(),
+ request.getRemoteEndpoint(), generateAgentToken());
agentByName.setServer(registeringServer);
agentManager.createAgent(agentByName);
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java
new file mode 100644
index 0000000..0abbbeb
--- /dev/null
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/CoreServerServiceImplTest.java
@@ -0,0 +1,432 @@
+/*
+ * RHQ Management Platform
+ * Copyright 2011, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package org.rhq.enterprise.server.core;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.util.Date;
+import java.util.List;
+import java.util.Properties;
+
+import javax.management.MBeanServer;
+import javax.persistence.Query;
+
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import org.rhq.core.clientapi.server.core.AgentRegistrationException;
+import org.rhq.core.clientapi.server.core.AgentRegistrationRequest;
+import org.rhq.core.clientapi.server.core.AgentRegistrationResults;
+import org.rhq.core.clientapi.server.core.AgentVersion;
+import org.rhq.core.domain.cloud.Server;
+import org.rhq.core.domain.cloud.Server.OperationMode;
+import org.rhq.core.domain.common.ProductInfo;
+import org.rhq.core.domain.resource.Agent;
+import org.rhq.enterprise.server.test.AbstractEJB3Test;
+import org.rhq.enterprise.server.util.LookupUtil;
+
+/**
+ * @author John Mazzitelli
+ */
+@Test
+public class CoreServerServiceImplTest extends AbstractEJB3Test {
+ private static final String TEST_AGENT_NAME_PREFIX = "CoreServerServiceImplTest.Agent";
+ private static final String RHQ_SERVER_NAME_PROPERTY = "rhq.server.high-availability.name";
+ private AgentVersion agentVersion;
+ private Server server;
+ private String oldServerNamePropertyValue = null;
+ private AgentRegistrationRequest aReq = null;
+ private AgentRegistrationResults aResults = null;
+ private AgentRegistrationRequest zReq = null;
+ private AgentRegistrationResults zResults = null;
+
+ private static final int A_PORT = 11111;
+ private static final String A_HOST = "hostA";
+ private static final int B_PORT = 22222;
+ private static final String B_HOST = "hostB";
+
+ public void testNewAgentRegistrationWithOldToken() throws Exception {
+ // this tests the case where someone purged an agent from the DB, but then
+ // changed their mind and want to re-run that agent and re-register it again.
+ // In this case, the agent (if not using --cleanconfig) would still have the old token.
+ // The agent should still be allowed to register again.
+ CoreServerServiceImpl service = new CoreServerServiceImpl();
+ AgentRegistrationRequest request = createRequest(prefixName("old"), "hostOld", 12345, "oldtoken");
+ AgentRegistrationResults results = service.registerAgent(request);
+ assert results != null : "cannot re-register an old agent";
+ Agent agent = LookupUtil.getAgentManager().getAgentByAgentToken(results.getAgentToken());
+ assert agent.getName().equals(request.getName());
+ assert agent.getAddress().equals(request.getAddress());
+ assert agent.getPort() == request.getPort();
+ LookupUtil.getAgentManager().deleteAgent(agent);
+ }
+
+ public void testChangeAddressPort() throws Exception {
+ CoreServerServiceImpl service = new CoreServerServiceImpl();
+ AgentRegistrationRequest request;
+ AgentRegistrationResults results;
+
+ String zName = prefixName("Z");
+
+ // create a new agent Z with host/port of hostZ/55550
+ request = createRequest(zName, "hostZ", 55550, null);
+ results = service.registerAgent(request);
+ assert results != null : "got null results";
+
+ // now change Z's host to hostZprime
+ request = createRequest(zName, "hostZprime", 55550, results.getAgentToken());
+ results = service.registerAgent(request);
+ assert results != null;
+ Agent agent = LookupUtil.getAgentManager().getAgentByAgentToken(results.getAgentToken());
+ assert agent.getName().equals(zName);
+ assert agent.getAddress().equals("hostZprime");
+ assert agent.getPort() == 55550;
+
+ // now change Z's port to 55551
+ request = createRequest(zName, "hostZprime", 55551, results.getAgentToken());
+ results = service.registerAgent(request);
+ assert results != null;
+ agent = LookupUtil.getAgentManager().getAgentByAgentToken(results.getAgentToken());
+ assert agent.getName().equals(zName);
+ assert agent.getAddress().equals("hostZprime");
+ assert agent.getPort() == 55551;
+
+ // now change Z's host/port to hostZdoubleprime/55552
+ request = createRequest(zName, "hostZdoubleprime", 55552, results.getAgentToken());
+ results = service.registerAgent(request);
+ assert results != null;
+ agent = LookupUtil.getAgentManager().getAgentByAgentToken(results.getAgentToken());
+ assert agent.getName().equals(zName);
+ assert agent.getAddress().equals("hostZdoubleprime");
+ assert agent.getPort() == 55552;
+
+ // now don't change Z's host/port but re-register everything the same, but with no token
+ request = createRequest(zName, "hostZdoubleprime", 55552, null);
+ results = service.registerAgent(request);
+ assert results != null;
+ agent = LookupUtil.getAgentManager().getAgentByAgentToken(results.getAgentToken());
+ assert agent.getName().equals(zName);
+ assert agent.getAddress().equals("hostZdoubleprime");
+ assert agent.getPort() == 55552;
+
+ // remember this agent so our later tests can use it
+ zReq = request;
+ zResults = results;
+ }
+
+ @Test(dependsOnMethods = "testChangeAddressPort")
+ public void testNormalAgentRegistration() throws Exception {
+ CoreServerServiceImpl service = new CoreServerServiceImpl();
+ aReq = createRequest(prefixName("A"), A_HOST, A_PORT, null);
+ aResults = service.registerAgent(aReq);
+ assert aResults != null : "got null results";
+ }
+
+ @Test(dependsOnMethods = "testNormalAgentRegistration")
+ public void testHijackExistingAgentAddressPort() throws Exception {
+ CoreServerServiceImpl service = new CoreServerServiceImpl();
+ AgentRegistrationRequest request;
+ request = createRequest(prefixName("B"), aReq.getAddress(), aReq.getPort(), null);
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack a used host/port with new agent name";
+ } catch (AgentRegistrationException ok) {
+ }
+ }
+
+ @Test(dependsOnMethods = "testNormalAgentRegistration")
+ public void testHijackExistingAgentName() throws Exception {
+ CoreServerServiceImpl service = new CoreServerServiceImpl();
+ AgentRegistrationRequest request;
+ request = createRequest(aReq.getName(), aReq.getAddress(), B_PORT, null);
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack a used agent name without a token";
+ } catch (AgentRegistrationException ok) {
+ }
+ request = createRequest(aReq.getName(), B_HOST, aReq.getPort(), null);
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack a used agent name without a token";
+ } catch (AgentRegistrationException ok) {
+ }
+ request = createRequest(aReq.getName(), B_HOST, B_PORT, null);
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack a used agent name without a token";
+ } catch (AgentRegistrationException ok) {
+ }
+ }
+
+ @Test(dependsOnMethods = "testNormalAgentRegistration")
+ public void testHijackExistingAgentAddressPortWithBogusToken() throws Exception {
+ CoreServerServiceImpl service = new CoreServerServiceImpl();
+ AgentRegistrationRequest request;
+ request = createRequest(prefixName("B"), aReq.getAddress(), aReq.getPort(), "badtoken");
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack a used host/port with new agent name and invalid token";
+ } catch (AgentRegistrationException ok) {
+ }
+ }
+
+ @Test(dependsOnMethods = "testNormalAgentRegistration")
+ public void testHijackExistingAgentNameWithBogusToken() throws Exception {
+ CoreServerServiceImpl service = new CoreServerServiceImpl();
+ AgentRegistrationRequest request;
+ request = createRequest(aReq.getName(), aReq.getAddress(), aReq.getPort(), "badtoken");
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack a used agent name with an invalid token";
+ } catch (AgentRegistrationException ok) {
+ }
+ request = createRequest(aReq.getName(), aReq.getAddress(), B_PORT, "badtoken");
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack a used agent name with an invalid token";
+ } catch (AgentRegistrationException ok) {
+ }
+ request = createRequest(aReq.getName(), B_HOST, aReq.getPort(), "badtoken");
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack a used agent name with an invalid token";
+ } catch (AgentRegistrationException ok) {
+ }
+ request = createRequest(aReq.getName(), B_HOST, B_PORT, "badtoken");
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack a used agent name with an invalid token";
+ } catch (AgentRegistrationException ok) {
+ }
+ }
+
+ @Test(dependsOnMethods = "testNormalAgentRegistration")
+ public void testHijackExistingAgentNameWithAnotherAgentToken() throws Exception {
+ CoreServerServiceImpl service = new CoreServerServiceImpl();
+ AgentRegistrationRequest request;
+ request = createRequest(aReq.getName(), aReq.getAddress(), aReq.getPort(), zResults.getAgentToken());
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack agent A using Z's token";
+ } catch (AgentRegistrationException ok) {
+ }
+ request = createRequest(aReq.getName(), B_HOST, aReq.getPort(), zResults.getAgentToken());
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack agent A using Z's token";
+ } catch (AgentRegistrationException ok) {
+ }
+ request = createRequest(aReq.getName(), aReq.getAddress(), B_PORT, zResults.getAgentToken());
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack agent A using Z's token";
+ } catch (AgentRegistrationException ok) {
+ }
+ request = createRequest(aReq.getName(), B_HOST, B_PORT, zResults.getAgentToken());
+ try {
+ service.registerAgent(request);
+ assert false : "Should not have been able to hijack agent A using Z's token";
+ } catch (AgentRegistrationException ok) {
+ }
+ }
+
+ @Test(dependsOnMethods = "testNormalAgentRegistration")
+ public void testAgentHijackingAnotherAgentAddressPort() throws Exception {
+ CoreServerServiceImpl service = new CoreServerServiceImpl();
+ AgentRegistrationRequest request;
+ request = createRequest(aReq.getName(), zReq.getAddress(), zReq.getPort(), aResults.getAgentToken());
+ try {
+ service.registerAgent(request);
+ assert false : "An agent should not have been able to hijack another agent's host/port";
+ } catch (AgentRegistrationException ok) {
+ }
+ }
+
+ @Test(dependsOnMethods = "testNormalAgentRegistration")
+ public void testAttemptToChangeAgentName() throws Exception {
+ CoreServerServiceImpl service = new CoreServerServiceImpl();
+ AgentRegistrationRequest request;
+ request = createRequest(prefixName("newName"), zReq.getAddress(), zReq.getPort(), zResults.getAgentToken());
+ try {
+ service.registerAgent(request);
+ assert false : "An agent should not be able to change its name";
+ } catch (AgentRegistrationException ok) {
+ }
+ }
+
+ private AgentRegistrationRequest createRequest(String name, String address, int port, String token) {
+ return new AgentRegistrationRequest(name, address, port, "socket://" + address + ":" + port
+ + "/?rhq.communications.connector.rhqtype=agent", true, token, agentVersion);
+ }
+
+ private String prefixName(String name) {
+ return TEST_AGENT_NAME_PREFIX + name;
+ }
+
+ @BeforeClass
+ public void prepare() throws Exception {
+ // mock the name of our server via the sysprop (in production, this is normally set in rhq-server.properties)
+ oldServerNamePropertyValue = System.getProperty(RHQ_SERVER_NAME_PROPERTY);
+ String newServerNamePropertyValue = "CoreServerServiceImplTest.Server";
+ System.setProperty(RHQ_SERVER_NAME_PROPERTY, newServerNamePropertyValue);
+
+ // mock up our core server MBean that provides information about where the jboss home dir is
+ MBeanServer mbs = getJBossMBeanServer();
+ DummyCoreServer mbean = new DummyCoreServer();
+ mbs.registerMBean(mbean, CoreServerMBean.OBJECT_NAME);
+
+ // in order to register, we need to mock out the agent version file used by the server
+ // to determine the agent version it supports.
+ agentVersion = new AgentVersion("1.2.3", "12345");
+ File agentVersionFile = new File(mbean.getJBossServerHomeDir(),
+ "deploy/rhq.ear/rhq-downloads/rhq-agent/rhq-server-agent-versions.properties");
+ agentVersionFile.getParentFile().mkdirs();
+ agentVersionFile.delete();
+ Properties agentVersionProps = new Properties();
+ agentVersionProps.put("rhq-agent.latest.version", agentVersion.getVersion());
+ agentVersionProps.put("rhq-agent.latest.build-number", agentVersion.getBuild());
+ FileOutputStream fos = new FileOutputStream(agentVersionFile);
+ try {
+ agentVersionProps.store(fos, "This file was created by " + CoreServerServiceImplTest.class.getName());
+ } finally {
+ fos.close();
+ }
+
+ // this mocks out the endpoint ping - the server will think the agent that is registering is up and pingable
+ prepareForTestAgents();
+
+ // mock our server
+ server = new Server();
+ server.setName(newServerNamePropertyValue);
+ server.setAddress("CoreServerServiceImplTest.localhost");
+ server.setPort(12345);
+ server.setSecurePort(12346);
+ server.setOperationMode(OperationMode.NORMAL);
+ int serverId = LookupUtil.getServerManager().create(server);
+ server.setId(serverId);
+ }
+
+ @AfterClass
+ public void unprepare() throws Exception {
+ // clean up any agents we might have created
+ Query q = getEntityManager().createQuery(
+ "select a from Agent a where name like '" + TEST_AGENT_NAME_PREFIX + "%'");
+ List<Agent> doomed = (List<Agent>) q.getResultList();
+ for (Agent deleteMe : doomed) {
+ LookupUtil.getAgentManager().deleteAgent(deleteMe);
+ }
+
+ // cleanup our test server
+ LookupUtil.getCloudManager().updateServerMode(new Integer[] { server.getId() }, OperationMode.DOWN);
+ LookupUtil.getCloudManager().deleteServer(server.getId());
+
+ // shutdown our mock mbean server
+ MBeanServer mbs = getJBossMBeanServer();
+ mbs.unregisterMBean(CoreServerMBean.OBJECT_NAME);
+
+ // in case this was set before our tests, put it back the way it was
+ if (oldServerNamePropertyValue != null) {
+ System.setProperty(RHQ_SERVER_NAME_PROPERTY, oldServerNamePropertyValue);
+ }
+ }
+
+ interface DummyCoreServerMBean extends CoreServerMBean {
+ };
+
+ class DummyCoreServer implements DummyCoreServerMBean {
+
+ @Override
+ public String getName() {
+ return "CoreServer";
+ }
+
+ @Override
+ public int getState() {
+ return 0;
+ }
+
+ @Override
+ public String getStateString() {
+ return "";
+ }
+
+ @Override
+ public void jbossInternalLifecycle(String arg0) throws Exception {
+ }
+
+ @Override
+ public void create() throws Exception {
+ }
+
+ @Override
+ public void destroy() {
+ }
+
+ @Override
+ public void start() throws Exception {
+ }
+
+ @Override
+ public void stop() {
+ }
+
+ @Override
+ public String getVersion() {
+ return null;
+ }
+
+ @Override
+ public String getBuildNumber() {
+ return null;
+ }
+
+ @Override
+ public Date getBootTime() {
+ return null;
+ }
+
+ @Override
+ public File getInstallDir() {
+ return null;
+ }
+
+ @Override
+ public File getJBossServerHomeDir() {
+ return new File(System.getProperty("java.io.tmpdir"), "CoreServerServiceImplTest");
+ }
+
+ @Override
+ public File getJBossServerDataDir() {
+ return null;
+ }
+
+ @Override
+ public File getJBossServerTempDir() {
+ return null;
+ }
+
+ @Override
+ public ProductInfo getProductInfo() {
+ return null;
+ }
+ }
+}
12 years, 4 months