Uploaded image for project: 'jUDDI (Retired)'
  1. jUDDI (Retired)
  2. JUDDI-43

IdentifierBag and CategoryBag should not be empty

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.9rc3
    • 2.0rc5
    • None
    • None

    Description

      If we look uddi_v2.xsd,
      <xsd:complexType name="categoryBag">
      <xsd:sequence>
      <xsd:element ref="uddi:keyedReference" maxOccurs="unbounded"/>
      </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="identifierBag">
      <xsd:sequence>
      <xsd:element ref="uddi:keyedReference" maxOccurs="unbounded"/>
      </xsd:sequence>
      </xsd:complexType>
      we need a keyedReference at least in categoryBag or identifierBag.

      In fetchBusiness mathod of JDBCDataStore.java(src\java\org\apache\juddi\datastore\jdbc). jUDDI get infomation from database, and create the struct:
      < IdentifierBag identifierBag = new IdentifierBag();
      < identifierBag.setKeyedReferenceVector(BusinessIdentifierTable.select(businessKey,connection));
      < business.setIdentifierBag(identifierBag);
      <
      < CategoryBag categoryBag = new CategoryBag();
      < categoryBag.setKeyedReferenceVector(BusinessCategoryTable.select(businessKey,connection));
      < business.setCategoryBag(categoryBag);
      It's wrong if database table doesn't contain IdentifierTable and CategoryTable. It should be:
      > Vector identVector = BusinessIdentifierTable.select(businessKey,connection);
      > if (identVector.size() > 0)
      >

      { > IdentifierBag identifierBag = new IdentifierBag(); > identifierBag.setKeyedReferenceVector(identVector); > business.setIdentifierBag(identifierBag); > }

      > Vector categoryVector = BusinessCategoryTable.select(businessKey,connection);
      > if (categoryVector.size() > 0)
      >

      { > CategoryBag categoryBag = new CategoryBag(); > categoryBag.setKeyedReferenceVector(categoryVector); > business.setCategoryBag(categoryBag); > }

      and in fetchService method, we should do same thing:
      < CategoryBag bag = new CategoryBag();
      < bag.setKeyedReferenceVector(ServiceCategoryTable.select(serviceKey,connection));
      < service.setCategoryBag(bag);

      >
      > Vector categoryVector = ServiceCategoryTable.select(serviceKey,connection);
      > if (categoryVector.size() > 0)
      >

      { > CategoryBag bag = new CategoryBag(); > bag.setKeyedReferenceVector(categoryVector); > service.setCategoryBag(bag); > }

      Attachments

        Activity

          People

            sviens Stephen Viens
            shihang Jeff Zhang
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment