OPENDJ-2987 Simplify ways to retrieve an object class from the DirectoryServer
Keep only DirectoryServer.getObjectClass() and DirectoryServer.getDefaultObjectClass()
methods
| | |
| | | if (attribute.getAttributeDescription().getAttributeType().isObjectClass()) { |
| | | for (ByteString attrName : attribute) { |
| | | try { |
| | | entry.addObjectClass(DirectoryServer.getObjectClass2(attrName.toString())); |
| | | entry.addObjectClass(DirectoryServer.getObjectClass(attrName.toString())); |
| | | } catch (DirectoryException e) { |
| | | throw new IllegalStateException(e.getMessage(), e); |
| | | } |
| | |
| | | for (Object value : getAttributeValues(attrType.getNameOrOID())) |
| | | { |
| | | String ocName = value.toString().trim(); |
| | | objectClasses.put(DirectoryServer.getObjectClass2(ocName), ocName); |
| | | objectClasses.put(DirectoryServer.getObjectClass(ocName), ocName); |
| | | } |
| | | } |
| | | else |
| | |
| | | for (Object value : csr.getAttributeValues(attrType.getNameOrOID())) |
| | | { |
| | | String ocName = value.toString().trim(); |
| | | objectClasses.put(DirectoryServer.getObjectClass2(ocName), ocName); |
| | | objectClasses.put(DirectoryServer.getObjectClass(ocName), ocName); |
| | | } |
| | | } |
| | | else |
| | |
| | | final LinkedHashMap<ObjectClass, String> ocMap = new LinkedHashMap<>(objectClassNames.size()); |
| | | for (final String name : objectClassNames) |
| | | { |
| | | ocMap.put(DirectoryServer.getObjectClass2(name), name); |
| | | ocMap.put(DirectoryServer.getObjectClass(name), name); |
| | | } |
| | | if (sync) |
| | | { |
| | |
| | | */ |
| | | public ObjectClass getMonitorObjectClass() |
| | | { |
| | | return DirectoryServer.getObjectClass2(OC_EXTENSIBLE_OBJECT_LC); |
| | | return DirectoryServer.getObjectClass(OC_EXTENSIBLE_OBJECT_LC); |
| | | } |
| | | |
| | | |
| | |
| | | // Construct the backup base entry. |
| | | LinkedHashMap<ObjectClass,String> objectClasses = new LinkedHashMap<>(2); |
| | | objectClasses.put(DirectoryServer.getTopObjectClass(), OC_TOP); |
| | | objectClasses.put(DirectoryServer.getObjectClass2(OC_UNTYPED_OBJECT_LC), OC_UNTYPED_OBJECT); |
| | | objectClasses.put(DirectoryServer.getObjectClass(OC_UNTYPED_OBJECT_LC), OC_UNTYPED_OBJECT); |
| | | |
| | | LinkedHashMap<AttributeType,List<Attribute>> opAttrs = new LinkedHashMap<>(0); |
| | | LinkedHashMap<AttributeType,List<Attribute>> userAttrs = new LinkedHashMap<>(1); |
| | |
| | | LinkedHashMap<ObjectClass,String> ocMap = new LinkedHashMap<>(2); |
| | | ocMap.put(DirectoryServer.getTopObjectClass(), OC_TOP); |
| | | |
| | | ocMap.put(DirectoryServer.getObjectClass2(OC_BACKUP_DIRECTORY), OC_BACKUP_DIRECTORY); |
| | | ocMap.put(DirectoryServer.getObjectClass(OC_BACKUP_DIRECTORY), OC_BACKUP_DIRECTORY); |
| | | |
| | | LinkedHashMap<AttributeType,List<Attribute>> opAttrs = new LinkedHashMap<>(0); |
| | | LinkedHashMap<AttributeType,List<Attribute>> userAttrs = new LinkedHashMap<>(3); |
| | |
| | | // Construct the backup entry to return. |
| | | LinkedHashMap<ObjectClass, String> ocMap = new LinkedHashMap<>(3); |
| | | ocMap.put(DirectoryServer.getTopObjectClass(), OC_TOP); |
| | | ocMap.put(DirectoryServer.getObjectClass2(OC_BACKUP_INFO), OC_BACKUP_INFO); |
| | | ocMap.put(DirectoryServer.getObjectClass2(OC_EXTENSIBLE_OBJECT_LC), OC_EXTENSIBLE_OBJECT); |
| | | ocMap.put(DirectoryServer.getObjectClass(OC_BACKUP_INFO), OC_BACKUP_INFO); |
| | | ocMap.put(DirectoryServer.getObjectClass(OC_EXTENSIBLE_OBJECT_LC), OC_EXTENSIBLE_OBJECT); |
| | | |
| | | LinkedHashMap<AttributeType, List<Attribute>> opAttrs = new LinkedHashMap<>(0); |
| | | LinkedHashMap<AttributeType, List<Attribute>> userAttrs = new LinkedHashMap<>(); |
| | |
| | | CHANGELOG_ROOT_OBJECT_CLASSES = new LinkedHashMap<>(2); |
| | | static |
| | | { |
| | | CHANGELOG_ROOT_OBJECT_CLASSES.put(DirectoryServer.getObjectClass2(OC_TOP), OC_TOP); |
| | | CHANGELOG_ROOT_OBJECT_CLASSES.put(DirectoryServer.getObjectClass2("container"), "container"); |
| | | CHANGELOG_ROOT_OBJECT_CLASSES.put(DirectoryServer.getObjectClass(OC_TOP), OC_TOP); |
| | | CHANGELOG_ROOT_OBJECT_CLASSES.put(DirectoryServer.getObjectClass("container"), "container"); |
| | | } |
| | | |
| | | /** The set of objectclasses that will be used in ECL entries. */ |
| | |
| | | CHANGELOG_ENTRY_OBJECT_CLASSES = new LinkedHashMap<>(2); |
| | | static |
| | | { |
| | | CHANGELOG_ENTRY_OBJECT_CLASSES.put(DirectoryServer.getObjectClass2(OC_TOP), OC_TOP); |
| | | CHANGELOG_ENTRY_OBJECT_CLASSES.put(DirectoryServer.getObjectClass2(OC_CHANGELOG_ENTRY), OC_CHANGELOG_ENTRY); |
| | | CHANGELOG_ENTRY_OBJECT_CLASSES.put(DirectoryServer.getObjectClass(OC_TOP), OC_TOP); |
| | | CHANGELOG_ENTRY_OBJECT_CLASSES.put(DirectoryServer.getObjectClass(OC_CHANGELOG_ENTRY), OC_CHANGELOG_ENTRY); |
| | | } |
| | | |
| | | /** The attribute type for the "creatorsName" attribute. */ |
| | |
| | | addAll(userDefinedAttributes, configEntry.getOperationalAttributes().values()); |
| | | |
| | | // Construct the set of objectclasses to include in the base monitor entry. |
| | | monitorObjectClasses.put(DirectoryServer.getObjectClass2(OC_TOP), OC_TOP); |
| | | monitorObjectClasses.put(DirectoryServer.getObjectClass2(OC_MONITOR_ENTRY), OC_MONITOR_ENTRY); |
| | | monitorObjectClasses.put(DirectoryServer.getObjectClass(OC_TOP), OC_TOP); |
| | | monitorObjectClasses.put(DirectoryServer.getObjectClass(OC_MONITOR_ENTRY), OC_MONITOR_ENTRY); |
| | | |
| | | // Create the set of base DNs that we will handle. In this case, it's just |
| | | // the DN of the base monitor entry. |
| | |
| | | */ |
| | | private Entry getBaseMonitorEntry() |
| | | { |
| | | final ObjectClass extensibleObjectOC = DirectoryServer.getObjectClass2(OC_EXTENSIBLE_OBJECT_LC); |
| | | final ObjectClass extensibleObjectOC = DirectoryServer.getObjectClass(OC_EXTENSIBLE_OBJECT_LC); |
| | | final HashMap<ObjectClass, String> monitorClasses = newObjectClasses(extensibleObjectOC, OC_EXTENSIBLE_OBJECT); |
| | | |
| | | final HashMap<AttributeType, List<Attribute>> monitorUserAttrs = new LinkedHashMap<>(); |
| | |
| | | */ |
| | | private Entry getBranchMonitorEntry(final DN dn) |
| | | { |
| | | final ObjectClass monitorOC = DirectoryServer.getObjectClass2(OC_MONITOR_BRANCH); |
| | | final ObjectClass monitorOC = DirectoryServer.getObjectClass(OC_MONITOR_BRANCH); |
| | | final HashMap<ObjectClass, String> monitorClasses = newObjectClasses(monitorOC, OC_MONITOR_BRANCH); |
| | | |
| | | final HashMap<AttributeType, List<Attribute>> monitorUserAttrs = new LinkedHashMap<>(); |
| | |
| | | objectClasses.put(DirectoryServer.getTopObjectClass(), "top"); |
| | | |
| | | String nulOCName = "nullbackendobject"; |
| | | ObjectClass nulOC = DirectoryServer.getObjectClass2(nulOCName); |
| | | ObjectClass nulOC = DirectoryServer.getObjectClass(nulOCName); |
| | | try { |
| | | DirectoryServer.registerObjectClass(nulOC, false); |
| | | } catch (DirectoryException de) { |
| | |
| | | |
| | | // Construct the set of objectclasses to include in the root DSE entry. |
| | | dseObjectClasses = new HashMap<>(2); |
| | | dseObjectClasses.put(DirectoryServer.getObjectClass2(OC_TOP), OC_TOP); |
| | | dseObjectClasses.put(DirectoryServer.getObjectClass2(OC_ROOT_DSE), OC_ROOT_DSE); |
| | | dseObjectClasses.put(DirectoryServer.getObjectClass(OC_TOP), OC_TOP); |
| | | dseObjectClasses.put(DirectoryServer.getObjectClass(OC_ROOT_DSE), OC_ROOT_DSE); |
| | | |
| | | // Set the backend ID for this backend. The identifier needs to be |
| | | // specific enough to avoid conflict with user backend identifiers. |
| | |
| | | // Construct the set of objectclasses to include in the schema entry. |
| | | schemaObjectClasses = new LinkedHashMap<>(3); |
| | | schemaObjectClasses.put(DirectoryServer.getTopObjectClass(), OC_TOP); |
| | | schemaObjectClasses.put(DirectoryServer.getObjectClass2(OC_LDAP_SUBENTRY_LC), OC_LDAP_SUBENTRY); |
| | | schemaObjectClasses.put(DirectoryServer.getObjectClass2(OC_SUBSCHEMA), OC_SUBSCHEMA); |
| | | schemaObjectClasses.put(DirectoryServer.getObjectClass(OC_LDAP_SUBENTRY_LC), OC_LDAP_SUBENTRY); |
| | | schemaObjectClasses.put(DirectoryServer.getObjectClass(OC_SUBSCHEMA), OC_SUBSCHEMA); |
| | | |
| | | configEntryDN = configEntry.getName(); |
| | | baseDNs = cfg.getBaseDN(); |
| | |
| | | { |
| | | Map<ObjectClass,String> objectClasses = new LinkedHashMap<>(); |
| | | objectClasses.put(DirectoryServer.getTopObjectClass(), OC_TOP); |
| | | objectClasses.put(DirectoryServer.getObjectClass2(OC_LDAP_SUBENTRY_LC), OC_LDAP_SUBENTRY); |
| | | objectClasses.put(DirectoryServer.getObjectClass2(OC_SUBSCHEMA), OC_SUBSCHEMA); |
| | | objectClasses.put(DirectoryServer.getObjectClass(OC_LDAP_SUBENTRY_LC), OC_LDAP_SUBENTRY); |
| | | objectClasses.put(DirectoryServer.getObjectClass(OC_SUBSCHEMA), OC_SUBSCHEMA); |
| | | |
| | | Map<AttributeType,List<Attribute>> userAttributes = new LinkedHashMap<>(); |
| | | Map<AttributeType,List<Attribute>> operationalAttributes = new LinkedHashMap<>(); |
| | |
| | | // Construct the trust store base entry. |
| | | LinkedHashMap<ObjectClass,String> objectClasses = new LinkedHashMap<>(2); |
| | | objectClasses.put(DirectoryServer.getTopObjectClass(), OC_TOP); |
| | | objectClasses.put(DirectoryServer.getObjectClass2("ds-cfg-branch"), "ds-cfg-branch"); |
| | | objectClasses.put(DirectoryServer.getObjectClass("ds-cfg-branch"), "ds-cfg-branch"); |
| | | |
| | | LinkedHashMap<AttributeType,List<Attribute>> userAttrs = new LinkedHashMap<>(1); |
| | | for (AVA ava : getBaseDN().rdn()) |
| | |
| | | // Construct the certificate entry to return. |
| | | LinkedHashMap<ObjectClass,String> ocMap = new LinkedHashMap<>(2); |
| | | ocMap.put(DirectoryServer.getTopObjectClass(), OC_TOP); |
| | | ocMap.put(DirectoryServer.getObjectClass2(OC_CRYPTO_INSTANCE_KEY), OC_CRYPTO_INSTANCE_KEY); |
| | | ocMap.put(DirectoryServer.getObjectClass(OC_CRYPTO_INSTANCE_KEY), OC_CRYPTO_INSTANCE_KEY); |
| | | |
| | | LinkedHashMap<AttributeType,List<Attribute>> opAttrs = new LinkedHashMap<>(0); |
| | | LinkedHashMap<AttributeType,List<Attribute>> userAttrs = new LinkedHashMap<>(3); |
| | |
| | | throw new DirectoryException(ResultCode.ENTRY_ALREADY_EXISTS, message); |
| | | } |
| | | |
| | | if (entry.hasObjectClass(DirectoryServer.getObjectClass2(OC_SELF_SIGNED_CERT_REQUEST))) |
| | | if (entry.hasObjectClass(DirectoryServer.getObjectClass(OC_SELF_SIGNED_CERT_REQUEST))) |
| | | { |
| | | try |
| | | { |
| | |
| | | for (ByteString os : a.getValues()) |
| | | { |
| | | String ocName = os.toString(); |
| | | objectClasses.put(getObjectClass2(ocName), ocName); |
| | | objectClasses.put(getObjectClass(ocName), ocName); |
| | | } |
| | | } |
| | | else if (attrType.isOperational()) |
| | |
| | | import org.forgerock.opendj.ldap.schema.MatchingRule; |
| | | import org.forgerock.opendj.ldap.schema.MatchingRuleUse; |
| | | import org.forgerock.opendj.ldap.schema.ObjectClass; |
| | | import org.forgerock.opendj.ldap.schema.ObjectClassType; |
| | | import org.forgerock.opendj.ldap.schema.Syntax; |
| | | import org.forgerock.opendj.ldap.schema.UnknownSchemaElementException; |
| | | import org.forgerock.opendj.server.config.server.AlertHandlerCfg; |
| | |
| | | } |
| | | |
| | | /** |
| | | * Retrieves the objectclass for the provided lowercase name or OID. |
| | | * Retrieves the objectclass for the provided name or OID. It can optionally return a generated |
| | | * "default" version if the requested objectclass is not defined in the schema. |
| | | * |
| | | * @param lowerName The lowercase name or OID for the objectclass to |
| | | * retrieve. |
| | | * |
| | | * @return The requested objectclass, or {@code null} if there is no |
| | | * such objectclass defined in the server schema. |
| | | * @param nameOrOid |
| | | * The name or OID for the objectclass to retrieve. |
| | | * @return The objectclass type, or {@code null} if there is no objectclass with the specified |
| | | * name or OID defined in the server schema and a default class should not be returned. |
| | | */ |
| | | public static ObjectClass getObjectClass(String lowerName) |
| | | public static ObjectClass getObjectClass(String nameOrOid) |
| | | { |
| | | return directoryServer.schema.getObjectClass(lowerName); |
| | | } |
| | | |
| | | /** |
| | | * Retrieves the objectclass for the provided name or OID. It can |
| | | * optionally return a generated "default" version if the requested |
| | | * objectclass is not defined in the schema. |
| | | * |
| | | * @param nameOrOid The name or OID for the objectclass to retrieve. |
| | | * @return The objectclass type, or {@code null} if there is no |
| | | * objectclass with the specified name or OID defined in the server |
| | | * schema and a default class should not be returned. |
| | | */ |
| | | public static ObjectClass getObjectClass2(String nameOrOid) |
| | | { |
| | | ObjectClass oc = getObjectClass(toLowerCase(nameOrOid)); |
| | | return oc != null ? oc : getDefaultObjectClass(nameOrOid); |
| | | return directoryServer.schema.getObjectClass(nameOrOid); |
| | | } |
| | | |
| | | /** |
| | |
| | | /** |
| | | * Deregisters the provided objectclass with the Directory Server. |
| | | * |
| | | * @param objectClass The objectclass instance to deregister with the |
| | | * server. |
| | | * @param objectClass |
| | | * The objectclass instance to deregister with the server. |
| | | * @throws DirectoryException |
| | | * If a conflict is encountered |
| | | */ |
| | | public static void deregisterObjectClass(ObjectClass objectClass) |
| | | public static void deregisterObjectClass(ObjectClass objectClass) throws DirectoryException |
| | | { |
| | | directoryServer.schema.deregisterObjectClass(objectClass); |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * Causes the Directory Server to construct a new auxiliary objectclass |
| | | * definition with the provided name and with no required or allowed |
| | | * attributes. This should only be used if there is no objectclass for the |
| | | * specified name. It will not register the created objectclass with the |
| | | * Directory Server. |
| | | * |
| | | * @param name The name to use for the objectclass, as provided by the user. |
| | | * |
| | | * @return The constructed objectclass definition. |
| | | */ |
| | | public static ObjectClass getDefaultAuxiliaryObjectClass(String name) |
| | | { |
| | | String lowerName = toLowerCase(name); |
| | | ObjectClass objectClass = directoryServer.schema.getObjectClass(lowerName); |
| | | if (objectClass == null) |
| | | { |
| | | String oid = lowerName + "-oid"; |
| | | String definition = "( " + oid + " NAME '" + name + "' ABSTRACT )"; |
| | | |
| | | objectClass = new ObjectClass(definition, name, |
| | | Collections.singleton(name), oid, null, |
| | | Collections.singleton(getTopObjectClass()), |
| | | null, null, |
| | | ObjectClassType.AUXILIARY, false, null); |
| | | } |
| | | |
| | | return objectClass; |
| | | } |
| | | |
| | | /** |
| | | * Retrieves the set of attribute type definitions that have been |
| | | * defined in the Directory Server. |
| | | * |
| | |
| | | { |
| | | } |
| | | |
| | | ocInstanceKey = DirectoryServer.getObjectClass2(OC_CRYPTO_INSTANCE_KEY); |
| | | ocCipherKey = DirectoryServer.getObjectClass2(OC_CRYPTO_CIPHER_KEY); |
| | | ocMacKey = DirectoryServer.getObjectClass2(OC_CRYPTO_MAC_KEY); |
| | | ocInstanceKey = DirectoryServer.getObjectClass(OC_CRYPTO_INSTANCE_KEY); |
| | | ocCipherKey = DirectoryServer.getObjectClass(OC_CRYPTO_CIPHER_KEY); |
| | | ocMacKey = DirectoryServer.getObjectClass(OC_CRYPTO_MAC_KEY); |
| | | |
| | | attrCert = getAttributeType(ATTR_CRYPTO_PUBLIC_KEY_CERTIFICATE); |
| | | attrAlias = getAttributeType(ATTR_CRYPTO_KEY_ID); |
| | |
| | | ifNull(entry); |
| | | |
| | | // FIXME -- This needs to exclude enhanced groups once we have support for them. |
| | | return entry.hasObjectClass(DirectoryServer.getObjectClass2(OC_GROUP_OF_URLS_LC)); |
| | | return entry.hasObjectClass(DirectoryServer.getObjectClass(OC_GROUP_OF_URLS_LC)); |
| | | } |
| | | |
| | | @Override |
| | |
| | | |
| | | private boolean hasObjectClass(Entry entry, String ocName) |
| | | { |
| | | return entry.hasObjectClass(DirectoryServer.getObjectClass2(ocName)); |
| | | return entry.hasObjectClass(DirectoryServer.getObjectClass(ocName)); |
| | | } |
| | | |
| | | @Override |
| | |
| | | ifNull(entry); |
| | | |
| | | // FIXME -- This needs to exclude enhanced groups once we have support for them. |
| | | return entry.hasObjectClass(DirectoryServer.getObjectClass2(OC_VIRTUAL_STATIC_GROUP)); |
| | | return entry.hasObjectClass(DirectoryServer.getObjectClass(OC_VIRTUAL_STATIC_GROUP)); |
| | | } |
| | | |
| | | @Override |
| | |
| | | @Override |
| | | public ObjectClass getMonitorObjectClass() |
| | | { |
| | | return DirectoryServer.getObjectClass2(OC_MONITOR_BACKEND); |
| | | return DirectoryServer.getObjectClass(OC_MONITOR_BACKEND); |
| | | } |
| | | |
| | | @Override |
| | |
| | | @Override |
| | | public ObjectClass getMonitorObjectClass() |
| | | { |
| | | return DirectoryServer.getObjectClass2(OC_MONITOR_CONNHANDLER); |
| | | return DirectoryServer.getObjectClass(OC_MONITOR_CONNHANDLER); |
| | | } |
| | | |
| | | |
| | |
| | | { |
| | | LinkedHashMap<ObjectClass,String> objectClasses = new LinkedHashMap<>(); |
| | | put(objectClasses, DirectoryServer.getTopObjectClass()); |
| | | put(objectClasses, DirectoryServer.getObjectClass2(OC_PERSON)); |
| | | put(objectClasses, DirectoryServer.getObjectClass2(OC_ROOT_DN)); |
| | | put(objectClasses, DirectoryServer.getObjectClass(OC_PERSON)); |
| | | put(objectClasses, DirectoryServer.getObjectClass(OC_ROOT_DN)); |
| | | |
| | | LinkedHashMap<AttributeType,List<Attribute>> userAttrs = new LinkedHashMap<>(); |
| | | put(userAttrs, ATTR_COMMON_NAME, commonName); |
| | |
| | | for (ByteString v : a) |
| | | { |
| | | String ocName = v.toString(); |
| | | objectClasses.put(DirectoryServer.getObjectClass2(ocName), ocName); |
| | | objectClasses.put(DirectoryServer.getObjectClass(ocName), ocName); |
| | | } |
| | | } |
| | | else |
| | |
| | | @Override |
| | | public ObjectClass getMonitorObjectClass() |
| | | { |
| | | return DirectoryServer.getObjectClass2(OC_MONITOR_CONNHANDLERSTATS); |
| | | return DirectoryServer.getObjectClass(OC_MONITOR_CONNHANDLERSTATS); |
| | | } |
| | | |
| | | @Override |
| | |
| | | for (ByteString os : a.getValues()) |
| | | { |
| | | String ocName = os.toString(); |
| | | ObjectClass oc = DirectoryServer.getObjectClass2(ocName); |
| | | ObjectClass oc = DirectoryServer.getObjectClass(ocName); |
| | | objectClasses.put(oc, ocName); |
| | | } |
| | | } |
| | |
| | | for (ByteString v : a) |
| | | { |
| | | String stringValue = v.toString(); |
| | | objectClasses.put(DirectoryServer.getObjectClass2(stringValue), stringValue); |
| | | objectClasses.put(DirectoryServer.getObjectClass(stringValue), stringValue); |
| | | } |
| | | } |
| | | else if (t.isOperational()) |
| | |
| | | |
| | | for (String objectClassName : objectClassNames) |
| | | { |
| | | ObjectClass c = DirectoryServer.getObjectClass2(objectClassName); |
| | | ObjectClass c = DirectoryServer.getObjectClass(objectClassName); |
| | | for (AttributeType t : c.getRequiredAttributes()) |
| | | { |
| | | if (t.isOperational()) |
| | |
| | | for (TemplateValue v : valueList) |
| | | { |
| | | String ocName = toLowerCase(v.getValue().toString()); |
| | | objectClasses.put(DirectoryServer.getObjectClass2(ocName), ocName); |
| | | objectClasses.put(DirectoryServer.getObjectClass(ocName), ocName); |
| | | } |
| | | } |
| | | else if (t.isOperational()) |
| | |
| | | for (ByteString v : a) |
| | | { |
| | | String ocName = v.toString(); |
| | | ocs.put(DirectoryServer.getObjectClass2(ocName), ocName); |
| | | ocs.put(DirectoryServer.getObjectClass(ocName), ocName); |
| | | } |
| | | |
| | | AttributeDescription attrDesc = a.getAttributeDescription(); |
| | |
| | | { |
| | | entryBuffer.position(startPos); |
| | | final String ocName = entryBuffer.readStringUtf8(endPos - startPos); |
| | | objectClasses.put(DirectoryServer.getObjectClass2(ocName), ocName); |
| | | objectClasses.put(DirectoryServer.getObjectClass(ocName), ocName); |
| | | } |
| | | |
| | | /** |
| | |
| | | String lowerName = toLowerName(rule, v); |
| | | |
| | | // Create a default object class if necessary. |
| | | ObjectClass oc = DirectoryServer.getObjectClass2(lowerName); |
| | | ObjectClass oc = DirectoryServer.getObjectClass(lowerName); |
| | | |
| | | if (replace) |
| | | { |
| | |
| | | } |
| | | |
| | | String ocName = value.toString().trim(); |
| | | ObjectClass objectClass = DirectoryServer.getObjectClass2(ocName); |
| | | ObjectClass objectClass = DirectoryServer.getObjectClass(ocName); |
| | | if (objectClasses.containsKey(objectClass)) |
| | | { |
| | | logger.warn(WARN_LDIF_DUPLICATE_OBJECTCLASS, entryDN, lastEntryLineNumber, ocName); |
| | |
| | | // then we'll need to include the extensibleObject class. |
| | | if (!structuralClass.isRequiredOrOptional(attrType) && !extensibleObjectAdded) |
| | | { |
| | | ObjectClass extensibleObjectOC = DirectoryServer.getObjectClass2(OC_EXTENSIBLE_OBJECT_LC); |
| | | ObjectClass extensibleObjectOC = DirectoryServer.getObjectClass(OC_EXTENSIBLE_OBJECT_LC); |
| | | objectClasses.put(extensibleObjectOC, OC_EXTENSIBLE_OBJECT); |
| | | extensibleObjectAdded = true; |
| | | } |
| | |
| | | |
| | | // check the object classes were not changed |
| | | for (String ocBefore : entryBefore.getObjectClasses().values()) { |
| | | ObjectClass objectClass = DirectoryServer.getObjectClass2(ocBefore); |
| | | ObjectClass objectClass = DirectoryServer.getObjectClass(ocBefore); |
| | | String ocAfter = entryAfter.getObjectClasses().get(objectClass); |
| | | assertEquals(ocBefore, ocAfter); |
| | | } |
| | |
| | | |
| | | UpdatePreOpPlugin.reset(); |
| | | |
| | | ObjectClass oc = DirectoryServer.getObjectClass2("extensibleobject"); |
| | | ObjectClass oc = DirectoryServer.getObjectClass("extensibleobject"); |
| | | UpdatePreOpPlugin.addObjectClassToAdd(oc); |
| | | |
| | | AddOperation addOperation = getRootConnection().processAdd(entry); |
| | |
| | | |
| | | UpdatePreOpPlugin.reset(); |
| | | |
| | | ObjectClass oc = DirectoryServer.getObjectClass2("extensibleobject"); |
| | | ObjectClass oc = DirectoryServer.getObjectClass("extensibleobject"); |
| | | UpdatePreOpPlugin.addObjectClassToRemove(oc); |
| | | |
| | | AddOperation addOperation = getRootConnection().processAdd(entry); |
| | |
| | | retrieveSuccessfulOperationElements(modifyOperation); |
| | | |
| | | Entry e = DirectoryServer.getEntry(DN.valueOf("uid=test.user," + baseDN)); |
| | | assertFalse(e.hasObjectClass(DirectoryServer.getObjectClass2("extensibleobject"))); |
| | | assertFalse(e.hasObjectClass(DirectoryServer.getObjectClass("extensibleobject"))); |
| | | } |
| | | |
| | | |
| | |
| | | retrieveSuccessfulOperationElements(modifyOperation); |
| | | |
| | | Entry e = DirectoryServer.getEntry(DN.valueOf("uid=test.user," + baseDN)); |
| | | assertTrue(e.hasObjectClass(DirectoryServer.getObjectClass2("extensibleobject"))); |
| | | assertTrue(e.hasObjectClass(DirectoryServer.getObjectClass2("inetOrgPerson"))); |
| | | assertTrue(e.hasObjectClass(DirectoryServer.getObjectClass2("organizationalPerson"))); |
| | | assertTrue(e.hasObjectClass(DirectoryServer.getObjectClass2("person"))); |
| | | assertTrue(e.hasObjectClass(DirectoryServer.getObjectClass2("top"))); |
| | | assertTrue(e.hasObjectClass(DirectoryServer.getObjectClass("extensibleobject"))); |
| | | assertTrue(e.hasObjectClass(DirectoryServer.getObjectClass("inetOrgPerson"))); |
| | | assertTrue(e.hasObjectClass(DirectoryServer.getObjectClass("organizationalPerson"))); |
| | | assertTrue(e.hasObjectClass(DirectoryServer.getObjectClass("person"))); |
| | | assertTrue(e.hasObjectClass(DirectoryServer.getObjectClass("top"))); |
| | | assertEquals(e.getUserAttributes().size(), 8, "Incorrect number of user attributes"); |
| | | } |
| | | |
| | |
| | | final int restoreBeginCountStart = restoreBeginCount.get(); |
| | | final int restoreEndCountStart = restoreEndCount.get(); |
| | | |
| | | ObjectClass backupClass = DirectoryServer.getObjectClass2("ds-task-backup"); |
| | | ObjectClass backupClass = DirectoryServer.getObjectClass("ds-task-backup"); |
| | | |
| | | testTask(taskEntry, expectedState, 30); |
| | | if (expectedState == TaskState.COMPLETED_SUCCESSFULLY || |
| | |
| | | int importEndCount = TestTaskListener.importEndCount.get(); |
| | | |
| | | ObjectClass exportClass = |
| | | DirectoryServer.getObjectClass2("ds-task-export"); |
| | | DirectoryServer.getObjectClass("ds-task-export"); |
| | | |
| | | // Use a big timeout since this test is sensitive to host environment (e.g. |
| | | // low memory, etc). See issue OPENDJ-256. |