Example usage for javax.xml.registry RegistryService getBusinessQueryManager

List of usage examples for javax.xml.registry RegistryService getBusinessQueryManager

Introduction

In this page you can find the example usage for javax.xml.registry RegistryService getBusinessQueryManager.

Prototype

BusinessQueryManager getBusinessQueryManager() throws JAXRException;

Source Link

Document

Returns the BusinessQueryManager object implemented by the JAXR provider.

Usage

From source file:JAXRPublishHelloOrg.java

/**
     * Creates an organization, its classification, and its
     * services, and saves it to the registry.
     */*from   w ww  .  j a va2 s.  co  m*/
     * @param username  the username for the registry
     * @param password  the password for the registry
     */
    public void executePublish(String uuidString, String username, String password) {
        RegistryService rs = null;
        BusinessLifeCycleManager blcm = null;
        BusinessQueryManager bqm = null;

        try {
            // Get registry service and managers
            rs = connection.getRegistryService();
            bqm = rs.getBusinessQueryManager();
            blcm = rs.getBusinessLifeCycleManager();
            System.out.println("Got registry service, query " + "manager, and life cycle manager");

            // Get authorization from the registry
            PasswordAuthentication passwdAuth = new PasswordAuthentication(username, password.toCharArray());

            HashSet<PasswordAuthentication> creds = new HashSet<PasswordAuthentication>();
            creds.add(passwdAuth);
            connection.setCredentials(creds);
            System.out.println("Established security credentials");

            ResourceBundle bundle = ResourceBundle.getBundle("JAXRExamples");

            // Create organization name and description
            InternationalString s = blcm.createInternationalString(bundle.getString("wsdlorg.name"));
            Organization org = blcm.createOrganization(s);
            s = blcm.createInternationalString(bundle.getString("wsdlorg.description"));
            org.setDescription(s);

            // Create primary contact, set name
            User primaryContact = blcm.createUser();
            PersonName pName = blcm.createPersonName(bundle.getString("wsdlorg.person.name"));
            primaryContact.setPersonName(pName);
            s = blcm.createInternationalString(bundle.getString("wsdlorg.person.description"));
            primaryContact.setDescription(s);

            // Set primary contact phone number
            TelephoneNumber tNum = blcm.createTelephoneNumber();
            tNum.setNumber(bundle.getString("wsdlorg.phone"));

            Collection<TelephoneNumber> phoneNums = new ArrayList<TelephoneNumber>();
            phoneNums.add(tNum);
            primaryContact.setTelephoneNumbers(phoneNums);

            // Set primary contact email address
            EmailAddress emailAddress = blcm.createEmailAddress(bundle.getString("wsdlorg.email.address"));
            Collection<EmailAddress> emailAddresses = new ArrayList<EmailAddress>();
            emailAddresses.add(emailAddress);
            primaryContact.setEmailAddresses(emailAddresses);

            // Set primary contact for organization
            org.setPrimaryContact(primaryContact);

            // Create services and service
            Collection<Service> services = new ArrayList<Service>();
            s = blcm.createInternationalString(bundle.getString("wsdlorg.svc.name"));

            Service service = blcm.createService(s);
            s = blcm.createInternationalString(bundle.getString("wsdlorg.svc.description"));
            service.setDescription(s);

            // Create service bindings
            Collection<ServiceBinding> serviceBindings = new ArrayList<ServiceBinding>();
            ServiceBinding binding = blcm.createServiceBinding();
            s = blcm.createInternationalString(bundle.getString("wsdlorg.svcbnd.description"));
            binding.setDescription(s);
            binding.setAccessURI(bundle.getString("wsdlorg.svcbnd.uri"));

            /*
             * Find the uddi-org:types classification scheme defined
             * by the UDDI specification, using well-known key id.
             */
            String uuid_types = "uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4";
            ClassificationScheme uddiOrgTypes = (ClassificationScheme) bqm.getRegistryObject(uuid_types,
                    LifeCycleManager.CLASSIFICATION_SCHEME);

            /*
             * Create a classification, specifying the scheme
             *  and the taxonomy name and value defined for WSDL
             *  documents by the UDDI specification.
             */
            Classification wsdlSpecClassification = blcm.createClassification(uddiOrgTypes,
                    blcm.createInternationalString("wsdlSpec"), "wsdlSpec");

            // Define classifications
            Collection<Classification> classifications = new ArrayList<Classification>();
            classifications.add(wsdlSpecClassification);

            // Find the concept by its UUID
            Concept specConcept = (Concept) bqm.getRegistryObject(uuidString, LifeCycleManager.CONCEPT);

            // If we found the concept, we can save the organization
            if (specConcept != null) {
                String name = getName(specConcept);

                Collection links = specConcept.getExternalLinks();

                System.out.println("\nSpecification Concept:\n\tName: " + name + "\n\tKey: " + getKey(specConcept));

                if (links.size() > 0) {
                    ExternalLink link = (ExternalLink) links.iterator().next();
                    System.out.println("\tURL of WSDL document: '" + link.getExternalURI() + "'");
                }

                // Now set the specification link for the service binding
                SpecificationLink specLink = blcm.createSpecificationLink();
                specLink.setSpecificationObject(specConcept);

                binding.addSpecificationLink(specLink);
                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<Organization> orgs = new ArrayList<Organization>();
                orgs.add(org);

                BulkResponse response = blcm.saveOrganizations(orgs);
                Collection exceptions = response.getExceptions();

                if (exceptions == null) {
                    System.out.println("Organization saved");

                    Collection keys = response.getCollection();

                    for (Object k : keys) {
                        Key orgKey = (Key) k;
                        String id = orgKey.getId();
                        System.out.println("Organization key is " + id);
                    }
                } else {
                    for (Object e : exceptions) {
                        Exception exception = (Exception) e;
                        System.err.println("Exception on save: " + exception.toString());
                    }
                }
            } else {
                System.out.println("Specified concept not found, " + "organization not saved");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // At end, close connection to registry
            if (connection != null) {
                try {
                    connection.close();
                } catch (JAXRException je) {
                }
            }
        }
    }

From source file:it.cnr.icar.eric.client.ui.swing.BusinessQueryPanel.java

/**
 * Execute the query using parameters defined by the fields in QueryPanel.
 *//*from ww w  . j av a 2  s.c om*/
BulkResponse executeQuery() {
    BulkResponse resp = null;

    try {
        // create namePattern collection
        String nameStr = nameText.getText();
        String descStr = descText.getText();

        ArrayList<Object> classifications = ((ClassificationsListModel) (classificationsList.getModel()))
                .getModels();
        ArrayList<?> extIds = ((ExternalIdentifiersListModel) (extIdsList.getModel())).getModels();
        ArrayList<?> extLinks = ((ExternalLinksListModel) (linksList.getModel())).getModels();

        JAXRClient client = RegistryBrowser.getInstance().getClient();
        Connection connection = RegistryBrowser.client.getConnection();
        RegistryService service = connection.getRegistryService();
        @SuppressWarnings("unused")
        BusinessQueryManagerImpl bqm = (BusinessQueryManagerImpl) service.getBusinessQueryManager();
        DeclarativeQueryManagerImpl dqm = (DeclarativeQueryManagerImpl) service.getDeclarativeQueryManager();

        Object objectTypeObj = getObjectType();
        if (!(objectTypeObj instanceof Concept)) {
            throw new JAXRException("Search not supported for objectType: " + objectTypeObj.toString());
        }

        Concept objectType = (Concept) objectTypeObj;
        if (!(objectType.getPath()
                .startsWith("/" + BindingUtility.CANONICAL_CLASSIFICATION_SCHEME_ID_ObjectType))) {
            throw new JAXRException("Search not supported for objectType: " + objectType.getPath());
        }

        boolean isIntrinsic = isIntrinsicObjectType(objectType);
        boolean caseSensitive = caseSensitiveCheckBox.isSelected();

        // make declarative query
        String queryStr = "SELECT obj.* from ";

        if (isIntrinsic) {
            queryStr += (objectType.getValue() + " obj ");
        } else {
            //Following using RegistryObject as it could be an ExtrinsicObject
            //or an ExternalLink
            queryStr += "RegistryObject obj, ClassificationNode typeNode ";
        }

        //Add name to tables in join
        if ((nameStr != null) && (nameStr.length() != 0)) {
            queryStr += ", Name_ nm ";
        }

        //Add description to tables in join
        if ((descStr != null) && (descStr.length() != 0)) {
            queryStr += ", Description des ";
        }

        boolean addedPredicate = false;

        //Add objectType predicate
        if (!isIntrinsic) {
            if (!addedPredicate) {
                queryStr += "WHERE ";
                addedPredicate = true;
            } else {
                queryStr += "AND ";
            }

            queryStr += ("((obj.objectType = typeNode.id) AND " + "(typeNode.path LIKE '" + objectType.getPath()
                    + "' OR typeNode.path LIKE '" + objectType.getPath() + "/%'))");
        }

        //Add name predicate if needed
        if ((nameStr != null) && (nameStr.length() > 0)) {
            if (!addedPredicate) {
                queryStr += "WHERE ";
                addedPredicate = true;
            } else {
                queryStr += "AND ";
            }

            queryStr += ("((nm.parent = obj.id) AND ("
                    + BusinessQueryManagerImpl.caseSensitise("nm.value", caseSensitive) + " LIKE "
                    + BusinessQueryManagerImpl.caseSensitise("'" + nameStr + "'", caseSensitive) + ")) ");
        }

        //Add description predicate if needed
        if ((descStr != null) && (descStr.length() > 0)) {
            if (!addedPredicate) {
                queryStr += "WHERE ";
                addedPredicate = true;
            } else {
                queryStr += "AND ";
            }

            queryStr += ("((des.parent = obj.id) AND ("
                    + BusinessQueryManagerImpl.caseSensitise("des.value", caseSensitive) + " LIKE "
                    + BusinessQueryManagerImpl.caseSensitise("'" + descStr + "'", caseSensitive) + ")) ");
        }

        //Add nested query for Classifications if needed
        if (classifications.size() > 0) {
            if (!addedPredicate) {
                queryStr += "WHERE ";
                addedPredicate = true;
            } else {
                queryStr += "AND ";
            }

            queryStr += qu.getClassificationsPredicate(classifications, "obj.id", null);
        }

        //Add predicate for ExternalIdentifiers if needed
        if (extIds.size() > 0) {
            if (!addedPredicate) {
                queryStr += "WHERE ";
                addedPredicate = true;
            } else {
                queryStr += "AND ";
            }

            queryStr += qu.getExternalIdentifiersPredicate(extIds, "obj.id", null);
        }

        //Add nested query for ExternalLinks if needed
        if (extLinks.size() > 0) {
            if (!addedPredicate) {
                queryStr += "WHERE ";
                addedPredicate = true;
            } else {
                queryStr += "AND ";
            }

            queryStr += qu.getExternalLinksPredicate(extLinks, "obj.id", null);
        }

        QueryImpl query = (QueryImpl) dqm.createQuery(Query.QUERY_TYPE_SQL, queryStr);
        query.setFederated(isFederated());

        // make JAXR request
        resp = dqm.executeQuery(query);

        client.checkBulkResponse(resp);
    } catch (JAXRException e) {
        RegistryBrowser.displayError(e);
    }

    return resp;
}