/** * Helper method for adding to the response's already existing collection. This method should only * be called before returning the response to the client. */ public void addCollection(Collection bCollection) { if (bCollection != null) { Iterator iter = bCollection.iterator(); while (iter.hasNext()) { collection.add(iter.next()); } } }
/** * Add multiple exceptions to exception collection. This method should only be called before * returning the response to the client. */ public void addException(Collection bException) { if (bException != null && bException.size() > 0) { setStatus(STATUS_FAILURE); initExceptions(); Iterator iter = bException.iterator(); while (iter.hasNext()) { exceptions.add(iter.next()); } } }
/** * Utility method for combining the contents of many bulk responses into one. This is useful for * JAXR calls that will include multiple calls to the registry for information. * * <p>If any of the given responses have isPartial set to true, then the returned response will * have isPartial set to true as well. * * <p>This method does not set requestId on the returned bulk response. * * <p>Status for the returned response is determined after the information has been filled in as * follows: 1. default = STATUS_SUCCESS 2. if partial, STATUS_WARNING 3. if exceptions.size() > 0, * STATUS_FAILURE * * @param responses A Collection of BulkResponses * @return A BulkResponse containing all the included information */ public static BulkResponse combineBulkResponses(Collection responses) { BulkResponseImpl combinedResponse = new BulkResponseImpl(); combinedResponse.setStatus(JAXRResponse.STATUS_SUCCESS); try { BulkResponseImpl response = null; Collection information = new ArrayList(); Collection exceptions = new ArrayList(); boolean isPartial = false; Iterator iter = responses.iterator(); while (iter.hasNext()) { response = (BulkResponseImpl) iter.next(); information.addAll(response.getCollection()); if (response.getExceptions() != null) { exceptions.addAll(response.getExceptions()); } if (response.isPartialResponse() == true) { isPartial = true; } } // set partial status before collection combinedResponse.setPartialResponse(isPartial); if (isPartial == true) { combinedResponse.setStatus(JAXRResponse.STATUS_WARNING); } combinedResponse.setCollection(information); if (exceptions.size() > 0) { combinedResponse.setExceptions(exceptions); combinedResponse.setStatus(JAXRResponse.STATUS_FAILURE); } } catch (JAXRException e) { logger.log(Level.SEVERE, e.getMessage(), e); } return combinedResponse; }
/** * Creates an organization, its classification, and its services, and saves it to the registry. */ public String executePublish(String username, String password, String endpoint) { String id = null; RegistryService rs = null; BusinessLifeCycleManager blcm = null; BusinessQueryManager bqm = null; try { rs = connection.getRegistryService(); blcm = rs.getBusinessLifeCycleManager(); bqm = rs.getBusinessQueryManager(); System.out.println("Got registry service, query " + "manager, and life cycle manager"); // Get authorization from the registry PasswordAuthentication passwdAuth = new PasswordAuthentication(username, password.toCharArray()); Set creds = new HashSet(); creds.add(passwdAuth); connection.setCredentials(creds); System.out.println("Established security credentials"); // Get hardcoded strings from a ResourceBundle ResourceBundle bundle = ResourceBundle.getBundle("com.sun.cb.CoffeeRegistry"); // Create organization name and description Organization org = blcm.createOrganization(bundle.getString("org.name")); InternationalString s = blcm.createInternationalString(bundle.getString("org.description")); org.setDescription(s); // Create primary contact, set name User primaryContact = blcm.createUser(); PersonName pName = blcm.createPersonName(bundle.getString("person.name")); primaryContact.setPersonName(pName); // Set primary contact phone number TelephoneNumber tNum = blcm.createTelephoneNumber(); tNum.setNumber(bundle.getString("phone.number")); Collection phoneNums = new ArrayList(); phoneNums.add(tNum); primaryContact.setTelephoneNumbers(phoneNums); // Set primary contact email address EmailAddress emailAddress = blcm.createEmailAddress(bundle.getString("email.address")); Collection emailAddresses = new ArrayList(); emailAddresses.add(emailAddress); primaryContact.setEmailAddresses(emailAddresses); // Set primary contact for organization org.setPrimaryContact(primaryContact); // Set classification scheme to NAICS ClassificationScheme cScheme = bqm.findClassificationSchemeByName(null, bundle.getString("classification.scheme")); // Create and add classification Classification classification = (Classification) blcm.createClassification( cScheme, bundle.getString("classification.name"), bundle.getString("classification.value")); Collection classifications = new ArrayList(); classifications.add(classification); org.addClassifications(classifications); // Create services and service Collection services = new ArrayList(); Service service = blcm.createService(bundle.getString("service.name")); InternationalString is = blcm.createInternationalString(bundle.getString("service.description")); service.setDescription(is); // Create service bindings Collection serviceBindings = new ArrayList(); ServiceBinding binding = blcm.createServiceBinding(); is = blcm.createInternationalString(bundle.getString("service.binding")); binding.setDescription(is); binding.setValidateURI(false); binding.setAccessURI(endpoint); serviceBindings.add(binding); // Add service bindings to service service.addServiceBindings(serviceBindings); // Add service to services, then add services to organization services.add(service); org.addServices(services); // Add organization and submit to registry // Retrieve key if successful Collection orgs = new ArrayList(); orgs.add(org); BulkResponse response = blcm.saveOrganizations(orgs); Collection exceptions = response.getExceptions(); if (exceptions == null) { System.out.println("Organization saved"); Collection keys = response.getCollection(); Iterator keyIter = keys.iterator(); if (keyIter.hasNext()) { javax.xml.registry.infomodel.Key orgKey = (javax.xml.registry.infomodel.Key) keyIter.next(); id = orgKey.getId(); System.out.println("Organization key is " + id); } } else { Iterator excIter = exceptions.iterator(); Exception exception = null; while (excIter.hasNext()) { exception = (Exception) excIter.next(); System.err.println("Exception on save: " + exception.toString()); } } } catch (Exception e) { e.printStackTrace(); if (connection != null) { try { connection.close(); } catch (JAXRException je) { System.err.println("Connection close failed"); } } } return id; }