Beispiel #1
0
  /**
   * Test isExtramural method using two different connections with two different users. Note that
   * this users 2 different pre-defined users from the server keystore in two different Connections.
   */
  public void testIsExtramural1() throws Exception {

    Connection nikolaConnection = getConnection(AuthenticationServiceImpl.ALIAS_NIKOLA);
    DeclarativeQueryManagerImpl nikolaDQM =
        (DeclarativeQueryManagerImpl)
            nikolaConnection.getRegistryService().getDeclarativeQueryManager();
    BusinessQueryManager nikolaBQM =
        nikolaConnection.getRegistryService().getBusinessQueryManager();
    BusinessLifeCycleManager nikolaLCM =
        nikolaConnection.getRegistryService().getBusinessLifeCycleManager();

    Connection farrukhConnection = getConnection(AuthenticationServiceImpl.ALIAS_FARRUKH);
    DeclarativeQueryManagerImpl farrukhDQM =
        (DeclarativeQueryManagerImpl)
            farrukhConnection.getRegistryService().getDeclarativeQueryManager();
    BusinessQueryManager farrukhBQM =
        farrukhConnection.getRegistryService().getBusinessQueryManager();
    BusinessLifeCycleManager farrukhLCM =
        farrukhConnection.getRegistryService().getBusinessLifeCycleManager();

    RegistryObject nikolaUser = nikolaDQM.getCallersUser();
    RegistryObject farrukhUser = farrukhDQM.getCallersUser();

    Concept assocType =
        (Concept)
            farrukhDQM.getRegistryObject(
                BindingUtility.CANONICAL_ASSOCIATION_TYPE_ID_RelatedTo, LifeCycleManager.CONCEPT);

    // Create an extramural assoc
    Association extramuralAss = farrukhLCM.createAssociation(nikolaUser, assocType);
    farrukhUser.addAssociation(extramuralAss);

    assertTrue(
        "isExtraMural return false for extramural Association", (extramuralAss.isExtramural()));
  }
Beispiel #2
0
  /** Test isConfirmedBySourceOwner, isConfirmedByTargetOwner methods. */
  public void testIsConfirmedBy() throws Exception {
    RegistryObject mySourceObject = lcm.createRegistryPackage("testIsConfirmedBy mySourceObject");
    RegistryObject myTargetObject = lcm.createRegistryPackage("testIsConfirmedBy myTargetObject");

    RegistryObject othersObject =
        dqm.getRegistryObject(
            BindingUtility.CANONICAL_CLASSIFICATION_SCHEME_ID_ObjectType,
            LifeCycleManager.CLASSIFICATION_SCHEME);

    Concept assocType =
        (Concept)
            dqm.getRegistryObject(
                BindingUtility.CANONICAL_ASSOCIATION_TYPE_ID_RelatedTo, LifeCycleManager.CONCEPT);

    // Create an extramural assoc
    Association extramuralAss = lcm.createAssociation(othersObject, assocType);
    mySourceObject.addAssociation(extramuralAss);

    boolean confirmedBySourceOwner = extramuralAss.isConfirmedBySourceOwner();
    assertFalse("isConfirmedBySourceOwner should have been false", confirmedBySourceOwner);

    Slot slot =
        lcm.createSlot(
            BindingUtility.IMPL_SLOT_ASSOCIATION_IS_CONFIRMED_BY_SRC_OWNER,
            "true",
            BindingUtility.CANONICAL_DATA_TYPE_ID_Boolean);
    extramuralAss.addSlot(slot);
    confirmedBySourceOwner = extramuralAss.isConfirmedBySourceOwner();
    assertTrue("isConfirmedBySourceOwner should have been true", confirmedBySourceOwner);

    boolean confirmedByTargetOwner = extramuralAss.isConfirmedByTargetOwner();
    assertFalse("isConfirmedByTargetOwner should have been false", confirmedByTargetOwner);

    slot =
        lcm.createSlot(
            BindingUtility.IMPL_SLOT_ASSOCIATION_IS_CONFIRMED_BY_TARGET_OWNER,
            "true",
            BindingUtility.CANONICAL_DATA_TYPE_ID_Boolean);
    extramuralAss.addSlot(slot);
    confirmedByTargetOwner = extramuralAss.isConfirmedByTargetOwner();
    assertTrue("isConfirmedByTargetOwner should have been true", confirmedByTargetOwner);
  }
Beispiel #3
0
  /** Test isExtramural method. */
  public void testIsExtramural2() throws Exception {

    RegistryObject mySourceObject = lcm.createRegistryPackage("testIsExtramural mySourceObject");
    RegistryObject myTargetObject = lcm.createRegistryPackage("testIsExtramural myTargetObject");

    RegistryObject othersObject =
        dqm.getRegistryObject(
            BindingUtility.CANONICAL_CLASSIFICATION_SCHEME_ID_ObjectType,
            LifeCycleManager.CLASSIFICATION_SCHEME);

    Concept assocType =
        (Concept)
            dqm.getRegistryObject(
                BindingUtility.CANONICAL_ASSOCIATION_TYPE_ID_RelatedTo, LifeCycleManager.CONCEPT);

    // Create an extramural assoc
    Association extramuralAss = lcm.createAssociation(othersObject, assocType);
    mySourceObject.addAssociation(extramuralAss);

    // Create an intramural assoc
    Association intramuralAss = lcm.createAssociation(myTargetObject, assocType);
    mySourceObject.addAssociation(intramuralAss);

    ArrayList objects = new ArrayList();
    objects.add(mySourceObject);
    objects.add(myTargetObject);
    lcm.saveObjects(objects);

    mySourceObject =
        dqm.getRegistryObject(mySourceObject.getKey().getId(), LifeCycleManager.REGISTRY_PACKAGE);
    myTargetObject =
        dqm.getRegistryObject(myTargetObject.getKey().getId(), LifeCycleManager.REGISTRY_PACKAGE);

    extramuralAss =
        (Association)
            dqm.getRegistryObject(extramuralAss.getKey().getId(), LifeCycleManager.ASSOCIATION);
    assertTrue(
        "isExtraMural return false for extramural Association", (extramuralAss.isExtramural()));

    intramuralAss =
        (Association)
            dqm.getRegistryObject(intramuralAss.getKey().getId(), LifeCycleManager.ASSOCIATION);
    assertFalse(
        "isExtraMural return true for intramural Association", (intramuralAss.isExtramural()));
  }
Beispiel #4
0
  public void testDeleteAssociation() throws Exception {
    String mySourceObjectId =
        "urn:freebxml:registry:test:AssociationTest.testDeleteAssociation:srcpkg";
    String myTargetObjectId =
        "urn:freebxml:registry:test:AssociationTest.testDeleteAssociation:tgtpkg";
    String myAssocId = "urn:freebxml:registry:test:AssociationTest.testDeleteAssociation:assoc";

    // pre test clean-up
    deleteIfExist(mySourceObjectId, LifeCycleManager.REGISTRY_PACKAGE);
    deleteIfExist(myTargetObjectId, LifeCycleManager.REGISTRY_PACKAGE);
    deleteIfExist(myAssocId, LifeCycleManager.ASSOCIATION);

    RegistryObject mySourceObject =
        lcm.createRegistryPackage("testDeleteAssociation mySourceObject");
    RegistryObject myTargetObject =
        lcm.createRegistryPackage("testDeleteAssociation myTargetObject");
    mySourceObject.setKey(lcm.createKey(mySourceObjectId));
    myTargetObject.setKey(lcm.createKey(myTargetObjectId));

    Concept assocType =
        (Concept)
            dqm.getRegistryObject(
                BindingUtility.CANONICAL_ASSOCIATION_TYPE_ID_RelatedTo, LifeCycleManager.CONCEPT);

    // Create an assoc
    Association myAssoc = lcm.createAssociation(myTargetObject, assocType);
    myAssoc.setKey(lcm.createKey(myAssocId));
    mySourceObject.addAssociation(myAssoc);

    Collection saveObjects = new ArrayList();
    saveObjects.add(mySourceObject);
    saveObjects.add(myTargetObject);
    saveObjects.add(myAssoc);
    BulkResponse br = lcm.saveObjects(saveObjects, dontVersionSlotsMap);
    assertResponseSuccess("Saving test objects failed.", br);

    try {

      br =
          lcm.deleteObjects(
              Collections.singletonList(myAssoc.getKey()), null, forceRemoveRequestSlotsMap, null);
      assertResponseSuccess("Deleting assoc failed.", br);

      RegistryObject gotSource =
          bqm.getRegistryObject(mySourceObjectId, LifeCycleManager.REGISTRY_PACKAGE);
      assertNotNull("Association source was also deleted", gotSource);

      RegistryObject gotTarget =
          bqm.getRegistryObject(myTargetObjectId, LifeCycleManager.REGISTRY_PACKAGE);
      assertNotNull("Association target was also deleted", gotTarget);

      RegistryObject gotAssoc = bqm.getRegistryObject(myAssocId, LifeCycleManager.ASSOCIATION);
      assertNull("Association was not deleted", gotAssoc);

    } finally {
      // post test clean-up
      deleteIfExist(mySourceObjectId, LifeCycleManager.REGISTRY_PACKAGE);
      deleteIfExist(myTargetObjectId, LifeCycleManager.REGISTRY_PACKAGE);
      deleteIfExist(myAssocId, LifeCycleManager.ASSOCIATION);
    }
  }
Beispiel #5
0
  public void testSaveUnownedAssociations() throws Exception {

    String folderId = null;
    String farrukhExtrinsicObjectId = null;
    String farrukhAssociationId = null;
    String nikolaExtrinsicObjectId = null;
    String nikolaAssociationId = null;

    String keystorePath =
        RegistryProperties.getInstance().getProperty("omar.security.keystoreFile");
    String storepass =
        RegistryProperties.getInstance().getProperty("omar.security.keystorePassword");

    ConnectionFactory connFactory = JAXRUtility.getConnectionFactory();
    Properties props = new Properties();
    props.put("javax.xml.registry.queryManagerURL", regSoapUrl);
    connFactory.setProperties(props);

    try {

      // create connection for Farrukh

      Connection farrukhConnection = connFactory.createConnection();
      String farrukhAlias = "urn:freebxml:registry:predefinedusers:registryoperator";
      Set farrukhCredentials =
          getCredentialsFromKeystore(keystorePath, storepass, farrukhAlias, farrukhAlias);
      farrukhConnection.setCredentials(farrukhCredentials);
      BusinessQueryManagerImpl farrukhBQM =
          (BusinessQueryManagerImpl)
              farrukhConnection.getRegistryService().getBusinessQueryManager();
      LifeCycleManager farrukhLCM =
          farrukhConnection.getRegistryService().getBusinessLifeCycleManager();

      // Create the folder as Farrukh

      RegistryPackage folder = farrukhLCM.createRegistryPackage("Farrukh's Folder");
      folderId = folder.getKey().getId();
      System.out.println("Created folder with id '" + folderId + "'");

      // using farrukh's connection, saveObjects() with extrinsic object and hasMember association
      File file = createTempFile(true);
      FileDataSource fds = new FileDataSource(file);
      DataHandler dataHandler = new DataHandler(fds);
      ExtrinsicObject farrukhExtrinsicObject =
          (ExtrinsicObject) farrukhLCM.createExtrinsicObject(dataHandler);
      String eoId = Utility.getInstance().createId();
      farrukhExtrinsicObject.getKey().setId(eoId);
      farrukhExtrinsicObject.setName(
          farrukhLCM.createInternationalString("Farrukh's Extrinsic Object"));

      Concept associationConcept =
          farrukhBQM.findConceptByPath(
              "/"
                  + BindingUtility.CANONICAL_CLASSIFICATION_SCHEME_LID_AssociationType
                  + "/"
                  + BindingUtility.CANONICAL_ASSOCIATION_TYPE_CODE_HasMember);
      Association farrukhAssociation =
          farrukhLCM.createAssociation(farrukhExtrinsicObject, associationConcept);
      farrukhAssociation.setSourceObject(folder);

      ArrayList objectsToSave = new ArrayList();
      objectsToSave.add(folder);
      objectsToSave.add(farrukhAssociation);
      objectsToSave.add(farrukhExtrinsicObject);
      System.out.println(
          "Saving farrukh's extrinsic object '"
              + farrukhExtrinsicObject.getKey().getId()
              + "' under folder '"
              + folderId
              + "' with hasMember association '"
              + farrukhAssociation.getKey().getId()
              + "'");
      BulkResponse br = farrukhLCM.saveObjects(objectsToSave);
      JAXRUtility.checkBulkResponse(br);
      farrukhExtrinsicObjectId = farrukhExtrinsicObject.getKey().getId();
      farrukhAssociationId = farrukhAssociation.getKey().getId();
      System.out.println(
          "Objects '"
              + farrukhExtrinsicObject.getKey().getId()
              + "' and '"
              + farrukhAssociation.getKey().getId()
              + "' saved successfully");

      // create connection for Nikola

      Connection nikolaConnection = connFactory.createConnection();
      String nikolaAlias = "urn:freebxml:registry:predefinedusers:nikola";
      Set nikolaCredentials =
          getCredentialsFromKeystore(keystorePath, storepass, nikolaAlias, nikolaAlias);
      nikolaConnection.setCredentials(nikolaCredentials);
      BusinessQueryManagerImpl nikolaBQM =
          (BusinessQueryManagerImpl)
              nikolaConnection.getRegistryService().getBusinessQueryManager();
      LifeCycleManager nikolaLCM =
          nikolaConnection.getRegistryService().getBusinessLifeCycleManager();

      // Get the folder

      /*RegistryPackage*/ folder = (RegistryPackage) nikolaBQM.getRegistryObject(folderId);
      Assert.assertNotNull("Could not find root folder", folder);

      // using nikola's connection, saveObjects() with extrinsic object and hasMember association
      file = createTempFile(true);
      fds = new FileDataSource(file);
      dataHandler = new DataHandler(fds);
      ExtrinsicObject nikolaExtrinsicObject =
          (ExtrinsicObject) nikolaLCM.createExtrinsicObject(dataHandler);
      eoId = Utility.getInstance().createId();
      nikolaExtrinsicObject.getKey().setId(eoId);
      nikolaExtrinsicObject.setName(
          nikolaLCM.createInternationalString("Nikola's Extrinsic Object"));

      associationConcept =
          nikolaBQM.findConceptByPath(
              "/"
                  + BindingUtility.CANONICAL_CLASSIFICATION_SCHEME_LID_AssociationType
                  + "/"
                  + BindingUtility.CANONICAL_ASSOCIATION_TYPE_CODE_HasMember);
      Association nikolaAssociation =
          nikolaLCM.createAssociation(nikolaExtrinsicObject, associationConcept);
      nikolaAssociation.setSourceObject(folder);

      objectsToSave = new ArrayList();
      objectsToSave.add(folder);
      objectsToSave.add(nikolaAssociation);
      System.out.println(
          "Saving nikola's extrinsic object '"
              + nikolaExtrinsicObject.getKey().getId()
              + "' under folder '"
              + folderId
              + "' with hasMember association '"
              + nikolaAssociation.getKey().getId()
              + "'");
      objectsToSave.add(nikolaExtrinsicObject);
      br = nikolaLCM.saveObjects(objectsToSave);
      JAXRUtility.checkBulkResponse(br);
      nikolaExtrinsicObjectId = nikolaExtrinsicObject.getKey().getId();
      nikolaAssociationId = nikolaAssociation.getKey().getId();
      System.out.println(
          "Objects '"
              + nikolaExtrinsicObject.getKey().getId()
              + "' and '"
              + nikolaAssociation.getKey().getId()
              + "' saved successfully");
    } finally {
      // remove extrinsic objects and associations as registry operator
      try {
        Connection roConnection = connFactory.createConnection();
        String roAlias = "urn:freebxml:registry:predefinedusers:registryoperator";
        Set roCredentials = getCredentialsFromKeystore(keystorePath, storepass, roAlias, roAlias);
        roConnection.setCredentials(roCredentials);
        LifeCycleManagerImpl roLCM =
            (LifeCycleManagerImpl) roConnection.getRegistryService().getBusinessLifeCycleManager();

        if (folderId != null) {
          System.out.println("Deleting '" + folderId + "'");
          HashSet keys = new HashSet();
          keys.add(roLCM.createKey(folderId));
          roLCM.deleteObjects(keys, null, forceRemoveRequestSlotsMap, null);
          System.out.println("Successfully deleted '" + folderId + "'");
        }

        if (farrukhExtrinsicObjectId != null) {
          System.out.println("Deleting '" + farrukhExtrinsicObjectId + "'");
          HashSet keys = new HashSet();
          keys.add(roLCM.createKey(farrukhExtrinsicObjectId));
          roLCM.deleteObjects(keys, null, forceRemoveRequestSlotsMap, null);
          System.out.println("Successfully deleted '" + farrukhExtrinsicObjectId + "'");
        }

        if (farrukhAssociationId != null) {
          System.out.println("Deleting '" + farrukhAssociationId + "'");
          HashSet keys = new HashSet();
          keys.add(roLCM.createKey(farrukhAssociationId));
          roLCM.deleteObjects(keys, null, forceRemoveRequestSlotsMap, null);
          System.out.println("Successfully deleted '" + farrukhAssociationId + "'");
        }

        if (nikolaExtrinsicObjectId != null) {
          System.out.println("Deleting '" + nikolaExtrinsicObjectId + "'");
          HashSet keys = new HashSet();
          keys.add(roLCM.createKey(nikolaExtrinsicObjectId));
          roLCM.deleteObjects(keys, null, forceRemoveRequestSlotsMap, null);
          System.out.println("Successfully deleted '" + nikolaExtrinsicObjectId + "'");
        }

        if (nikolaAssociationId != null) {
          System.out.println("Deleting '" + nikolaAssociationId + "'");
          HashSet keys = new HashSet();
          keys.add(roLCM.createKey(nikolaAssociationId));
          roLCM.deleteObjects(keys, null, forceRemoveRequestSlotsMap, null);
          System.out.println("Successfully deleted '" + nikolaAssociationId + "'");
        }

      } catch (Throwable t) {
        System.err.println(
            "Failed to remove some or all of the test objects. Exception: " + t.getMessage());
        t.printStackTrace();
      }
    }
  }