summaryrefslogtreecommitdiffstats
path: root/pki/base/common/src/com/netscape/cmscore
diff options
context:
space:
mode:
authorawnuk <awnuk@c9f7a03b-bd48-0410-a16d-cbbf54688b0b>2010-12-21 07:42:50 +0000
committerawnuk <awnuk@c9f7a03b-bd48-0410-a16d-cbbf54688b0b>2010-12-21 07:42:50 +0000
commit5a467a1aa4e26db85e25a35275c5dfd0d320d7b2 (patch)
treeb0d2c21179fd12ed3bfc2da154b03e201c39a25a /pki/base/common/src/com/netscape/cmscore
parent9a945471f8dcf20441f18ae28b610f52905e51c5 (diff)
downloadpki-5a467a1aa4e26db85e25a35275c5dfd0d320d7b2.tar.gz
pki-5a467a1aa4e26db85e25a35275c5dfd0d320d7b2.tar.xz
pki-5a467a1aa4e26db85e25a35275c5dfd0d320d7b2.zip
Fixed bugzilla bug #649343.
git-svn-id: svn+ssh://svn.fedorahosted.org/svn/pki/trunk@1659 c9f7a03b-bd48-0410-a16d-cbbf54688b0b
Diffstat (limited to 'pki/base/common/src/com/netscape/cmscore')
-rw-r--r--pki/base/common/src/com/netscape/cmscore/dbs/DBSubsystem.java9
-rw-r--r--pki/base/common/src/com/netscape/cmscore/dbs/RepositoryRecord.java18
-rw-r--r--pki/base/common/src/com/netscape/cmscore/dbs/RepositorySchema.java1
-rw-r--r--pki/base/common/src/com/netscape/cmscore/ldap/PublisherProcessor.java4
-rw-r--r--pki/base/common/src/com/netscape/cmscore/request/RequestQueue.java8
-rw-r--r--pki/base/common/src/com/netscape/cmscore/request/RequestRepository.java66
6 files changed, 98 insertions, 8 deletions
diff --git a/pki/base/common/src/com/netscape/cmscore/dbs/DBSubsystem.java b/pki/base/common/src/com/netscape/cmscore/dbs/DBSubsystem.java
index 84744af36..797dd8324 100644
--- a/pki/base/common/src/com/netscape/cmscore/dbs/DBSubsystem.java
+++ b/pki/base/common/src/com/netscape/cmscore/dbs/DBSubsystem.java
@@ -792,10 +792,15 @@ public class DBSubsystem implements IDBSubsystem {
reg.registerObjectClass(
RepositoryRecord.class.getName(), repRecordOC);
}
- if (!reg.isAttributeRegistered(RepositoryRecord.ATTR_SERIALNO)) {
- reg.registerAttribute(RepositoryRecord.ATTR_SERIALNO,
+ if (!reg.isAttributeRegistered(IRepositoryRecord.ATTR_SERIALNO)) {
+ reg.registerAttribute(IRepositoryRecord.ATTR_SERIALNO,
new BigIntegerMapper(RepositorySchema.LDAP_ATTR_SERIALNO));
}
+ if (!reg.isAttributeRegistered(IRepositoryRecord.ATTR_PUB_STATUS)) {
+ reg.registerAttribute(IRepositoryRecord.ATTR_PUB_STATUS,
+ new StringMapper(RepositorySchema.LDAP_ATTR_PUB_STATUS));
+ }
+
} catch (EBaseException e) {
if (CMS.isPreOpMode())
return;
diff --git a/pki/base/common/src/com/netscape/cmscore/dbs/RepositoryRecord.java b/pki/base/common/src/com/netscape/cmscore/dbs/RepositoryRecord.java
index e177f8d2e..7aa63fa1d 100644
--- a/pki/base/common/src/com/netscape/cmscore/dbs/RepositoryRecord.java
+++ b/pki/base/common/src/com/netscape/cmscore/dbs/RepositoryRecord.java
@@ -39,13 +39,13 @@ import com.netscape.certsrv.dbs.repository.*;
*/
public class RepositoryRecord implements IRepositoryRecord {
- public final static String ATTR_SERIALNO = "serialNo";
-
private BigInteger mSerialNo = null;
+ private String mPublishingStatus = null;
protected static Vector mNames = new Vector();
static {
- mNames.addElement(ATTR_SERIALNO);
+ mNames.addElement(IRepositoryRecord.ATTR_SERIALNO);
+ mNames.addElement(IRepositoryRecord.ATTR_PUB_STATUS);
}
/**
@@ -59,8 +59,10 @@ public class RepositoryRecord implements IRepositoryRecord {
* Sets attribute.
*/
public void set(String name, Object obj) throws EBaseException {
- if (name.equalsIgnoreCase(ATTR_SERIALNO)) {
+ if (name.equalsIgnoreCase(IRepositoryRecord.ATTR_SERIALNO)) {
mSerialNo = (BigInteger) obj;
+ } else if (name.equalsIgnoreCase(IRepositoryRecord.ATTR_PUB_STATUS)) {
+ mPublishingStatus = (String) obj;
} else {
throw new EBaseException(CMS.getUserMessage("CMS_BASE_INVALID_ATTRIBUTE", name));
}
@@ -70,8 +72,10 @@ public class RepositoryRecord implements IRepositoryRecord {
* Retrieves attribute from this record.
*/
public Object get(String name) throws EBaseException {
- if (name.equalsIgnoreCase(ATTR_SERIALNO)) {
+ if (name.equalsIgnoreCase(IRepositoryRecord.ATTR_SERIALNO)) {
return mSerialNo;
+ } else if (name.equalsIgnoreCase(IRepositoryRecord.ATTR_PUB_STATUS)) {
+ return mPublishingStatus;
} else {
throw new EBaseException(CMS.getUserMessage("CMS_BASE_INVALID_ATTRIBUTE", name));
}
@@ -101,4 +105,8 @@ public class RepositoryRecord implements IRepositoryRecord {
public BigInteger getSerialNumber() {
return mSerialNo;
}
+
+ public String getPublishingStatus() {
+ return mPublishingStatus;
+ }
}
diff --git a/pki/base/common/src/com/netscape/cmscore/dbs/RepositorySchema.java b/pki/base/common/src/com/netscape/cmscore/dbs/RepositorySchema.java
index 70bb7d4be..436c8633e 100644
--- a/pki/base/common/src/com/netscape/cmscore/dbs/RepositorySchema.java
+++ b/pki/base/common/src/com/netscape/cmscore/dbs/RepositorySchema.java
@@ -40,4 +40,5 @@ public class RepositorySchema {
public static final String LDAP_OC_TOP = "top";
public static final String LDAP_OC_REPOSITORY = "repository";
public static final String LDAP_ATTR_SERIALNO = "serialno";
+ public static final String LDAP_ATTR_PUB_STATUS = "publishingStatus";
}
diff --git a/pki/base/common/src/com/netscape/cmscore/ldap/PublisherProcessor.java b/pki/base/common/src/com/netscape/cmscore/ldap/PublisherProcessor.java
index 3ae3380e5..7d7b8e9b5 100644
--- a/pki/base/common/src/com/netscape/cmscore/ldap/PublisherProcessor.java
+++ b/pki/base/common/src/com/netscape/cmscore/ldap/PublisherProcessor.java
@@ -418,6 +418,7 @@ public class PublisherProcessor implements
int publishingQueuePriorityLevel = queueConfig.getInteger("priorityLevel", 0);
int maxNumberOfPublishingThreads = queueConfig.getInteger("maxNumberOfThreads", 1);
int publishingQueuePageSize = queueConfig.getInteger("pageSize", 100);
+ int savePublishingStatus = queueConfig.getInteger("saveStatus", 0);
CMS.debug("PublisherProcessor: startup: Publishing Queue Enabled: " + isPublishingQueueEnabled +
" Priority Level: " + publishingQueuePriorityLevel +
" Maximum Number of Threads: " + maxNumberOfPublishingThreads +
@@ -426,7 +427,8 @@ public class PublisherProcessor implements
reqNotifier.setPublishingQueue (isPublishingQueueEnabled,
publishingQueuePriorityLevel,
maxNumberOfPublishingThreads,
- publishingQueuePageSize);
+ publishingQueuePageSize,
+ savePublishingStatus);
}
}
}
diff --git a/pki/base/common/src/com/netscape/cmscore/request/RequestQueue.java b/pki/base/common/src/com/netscape/cmscore/request/RequestQueue.java
index ff9ceb4f6..f390d436d 100644
--- a/pki/base/common/src/com/netscape/cmscore/request/RequestQueue.java
+++ b/pki/base/common/src/com/netscape/cmscore/request/RequestQueue.java
@@ -602,6 +602,14 @@ public class RequestQueue
return (IRepository) mRepository;
}
+ public String getPublishingStatus() {
+ return mRepository.getPublishingStatus();
+ }
+
+ public void setPublishingStatus(String status) {
+ mRepository.setPublishingStatus(status);
+ }
+
protected String mBaseDN;
protected IDBSubsystem mDB;
protected RequestRepository mRepository;
diff --git a/pki/base/common/src/com/netscape/cmscore/request/RequestRepository.java b/pki/base/common/src/com/netscape/cmscore/request/RequestRepository.java
index db77f41ac..c6ab7129e 100644
--- a/pki/base/common/src/com/netscape/cmscore/request/RequestRepository.java
+++ b/pki/base/common/src/com/netscape/cmscore/request/RequestRepository.java
@@ -23,6 +23,7 @@ import java.math.*;
import com.netscape.certsrv.dbs.EDBException;
import com.netscape.certsrv.dbs.IDBSubsystem;
import com.netscape.certsrv.dbs.*;
+import com.netscape.certsrv.dbs.repository.*;
import com.netscape.certsrv.request.*;
import com.netscape.certsrv.base.*;
import com.netscape.certsrv.apps.*;
@@ -145,4 +146,69 @@ class RequestRepository
* the LDAP base DN for this repository
*/
protected String mBaseDN;
+
+
+ public String getPublishingStatus() {
+ RepositoryRecord record = null;
+ Object obj = null;
+ IDBSSession dbs = null;
+ String status = null;
+
+ try {
+ dbs = mDB.createSession();
+ obj = dbs.read(mBaseDN);
+ } catch (Exception e) {
+ CMS.debug("RequestRepository: getPublishingStatus: Error: " + e);
+ CMS.debugStackTrace();
+ } finally {
+ // Close session - ignoring errors (UTIL)
+ if (dbs != null) {
+ try {
+ dbs.close();
+ } catch (Exception ex) {
+ CMS.debug("RequestRepository: getPublishingStatus: Error: " + ex);
+ }
+ }
+ }
+
+ if (obj != null || (obj instanceof RepositoryRecord)) {
+ record = (RepositoryRecord) obj;
+ status = record.getPublishingStatus();
+ } else {
+ CMS.debug("RequestRepository: obj is NOT instanceof RepositoryRecord");
+ }
+ CMS.debug("RequestRepository: getPublishingStatus mBaseDN: " + mBaseDN +
+ " status: " + ((status != null)?status:"null"));
+
+ return status;
+ }
+
+ public void setPublishingStatus(String status) {
+ IDBSSession dbs = null;
+
+ CMS.debug("RequestRepository: setPublishingStatus mBaseDN: " + mBaseDN + " status: " + status);
+ ModificationSet mods = new ModificationSet();
+
+ if (status != null && status.length() > 0) {
+ mods.add(IRepositoryRecord.ATTR_PUB_STATUS,
+ Modification.MOD_REPLACE, status);
+
+ try {
+ dbs = mDB.createSession();
+ dbs.modify(mBaseDN, mods);
+ } catch (Exception e) {
+ CMS.debug("RequestRepository: setPublishingStatus: Error: " + e);
+ CMS.debugStackTrace();
+ } finally {
+ // Close session - ignoring errors (UTIL)
+ if (dbs != null) {
+ try {
+ dbs.close();
+ } catch (Exception ex) {
+ CMS.debug("RequestRepository: setPublishingStatus: Error: " + ex);
+ }
+ }
+ }
+ }
+ }
}