Searches a registry for information about organizations whose names contain a user-supplied string : XML Registry « XML « Java

Java
1. 2D Graphics GUI
2. 3D
3. Advanced Graphics
4. Ant
5. Apache Common
6. Chart
7. Class
8. Collections Data Structure
9. Data Type
10. Database SQL JDBC
11. Design Pattern
12. Development Class
13. EJB3
14. Email
15. Event
16. File Input Output
17. Game
18. Generics
19. GWT
20. Hibernate
21. I18N
22. J2EE
23. J2ME
24. JDK 6
25. JNDI LDAP
26. JPA
27. JSP
28. JSTL
29. Language Basics
30. Network Protocol
31. PDF RTF
32. Reflection
33. Regular Expressions
34. Scripting
35. Security
36. Servlets
37. Spring
38. Swing Components
39. Swing JFC
40. SWT JFace Eclipse
41. Threads
42. Tiny Application
43. Velocity
44. Web Services SOA
45. XML
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java » XML » XML RegistryScreenshots 
Searches a registry for information about organizations whose names contain a user-supplied string
 

/*
 * Copyright 2007 Sun Microsystems, Inc.
 * All rights reserved.  You may not modify, use,
 * reproduce, or distribute this software except in
 * compliance with  the terms of the License at:
 * http://developer.sun.com/berkeley_license.html
 */

/*
Copyright 1994-2006 Sun Microsystems, Inc. All Rights Reserved.
Redistribution and use in source and binary forms, with or without modification, 
are permitted provided that the following conditions are met:
 

* Redistribution of source code must retain the above copyright notice, 
this list of conditions and the following disclaimer.

* Redistribution in binary form must reproduce the above copyright notice, 
this list of conditions and the following disclaimer in the documentation 
and/or other materials provided with the distribution.

 
Neither the name of Sun Microsystems, Inc. or the names of contributors may be 
used to endorse or promote products derived from this software without specific 
prior written permission.
 
This software is provided "AS IS," without a warranty of any kind. ALL EXPRESS OR 
IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY 
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY 
EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY 
DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS 
SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY 
LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, 
INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF 
LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF 
SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
 
You acknowledge that this software is not designed, licensed or intended for use in 
the design, construction, operation or maintenance of any nuclear facility. 
*/



import javax.xml.registry.Connection;
import javax.xml.registry.ConnectionFactory;
import javax.xml.registry.RegistryService;
import javax.xml.registry.BusinessQueryManager;
import javax.xml.registry.BulkResponse;
import javax.xml.registry.JAXRException;
import static javax.xml.registry.FindQualifier.SORT_BY_NAME_DESC;
import javax.xml.registry.infomodel.RegistryObject;
import javax.xml.registry.infomodel.Organization;
import javax.xml.registry.infomodel.User;
import javax.xml.registry.infomodel.PersonName;
import javax.xml.registry.infomodel.TelephoneNumber;
import javax.xml.registry.infomodel.EmailAddress;
import javax.xml.registry.infomodel.Service;
import javax.xml.registry.infomodel.ServiceBinding;
import javax.xml.registry.infomodel.ClassificationScheme;
import javax.xml.registry.infomodel.Classification;
import java.util.ResourceBundle;
import java.util.Properties;
import java.util.Collection;
import java.util.ArrayList;


/**
 * The JAXRQuery class consists of a main method, a
 * makeConnection method, an executeQuery method, and some
 * private helper methods. It searches a registry for
 * information about organizations whose names contain a
 * user-supplied string.
 */
public class JAXRQuery {
    Connection connection = null;

    public JAXRQuery() {
    }

    public static void main(String[] args) {
        ResourceBundle registryBundle = ResourceBundle.getBundle(
                    "JAXRExamples");

        String queryURL = registryBundle.getString("query.url");
        String publishURL = registryBundle.getString("publish.url");

        if (args.length < 1) {
            System.out.println(
                    "Argument required: " "-Dquery-string=<value>");
            System.exit(1);
        }

        String queryString = args[0];
        System.out.println("Query string is " + queryString);

        JAXRQuery jq = new JAXRQuery();

        jq.makeConnection(queryURL, publishURL);

        jq.executeQuery(queryString);
    }

    /**
     * Establishes a connection to a registry.
     *
     @param queryUrl        the URL of the query registry
     @param publishUrl        the URL of the publish registry
     */
    public void makeConnection(
        String queryUrl,
        String publishUrl) {
        /*
         * Specify proxy information in case you
         *  are going beyond your firewall.
         */
        ResourceBundle registryBundle = ResourceBundle.getBundle(
                    "JAXRExamples");
        String httpProxyHost = registryBundle.getString("http.proxyHost");
        String httpProxyPort = registryBundle.getString("http.proxyPort");

        /*
         * Define connection configuration properties.
         * For simple queries, you need the query URL.
         */
        Properties props = new Properties();
        props.setProperty("javax.xml.registry.queryManagerURL", queryUrl);
        props.setProperty("com.sun.xml.registry.http.proxyHost", httpProxyHost);
        props.setProperty("com.sun.xml.registry.http.proxyPort", httpProxyPort);

        try {
            // Create the connection, passing it the 
            // configuration properties
            ConnectionFactory factory = ConnectionFactory.newInstance();
            factory.setProperties(props);
            connection = factory.createConnection();
            System.out.println("Created connection to registry");
        catch (Exception e) {
            e.printStackTrace();

            if (connection != null) {
                try {
                    connection.close();
                catch (JAXRException je) {
                }
            }
        }
    }

    /**
     * Searches for organizations containing a string and
     * displays data about them.
     *
     @param qString        the string argument
     */
    public void executeQuery(String qString) {
        RegistryService rs = null;
        BusinessQueryManager bqm = null;

        try {
            // Get registry service and query manager
            rs = connection.getRegistryService();
            bqm = rs.getBusinessQueryManager();
            System.out.println("Got registry service and query manager");

            // Define find qualifiers and name patterns
            Collection<String> findQualifiers = new ArrayList<String>();
            findQualifiers.add(SORT_BY_NAME_DESC);

            Collection<String> namePatterns = new ArrayList<String>();
            namePatterns.add("%" + qString + "%");

            // Find orgs with names that contain qString
            BulkResponse response = bqm.findOrganizations(
                        findQualifiers,
                        namePatterns,
                        null,
                        null,
                        null,
                        null);
            Collection orgs = response.getCollection();

            // Display information about the organizations found
            int numOrgs = 0;

            if (orgs.isEmpty()) {
                System.out.println("No organizations found");
            else {
                for (Object o : orgs) {
                    numOrgs++;

                    Organization org = (Organizationo;
                    System.out.println("Org name: " + getName(org));
                    System.out.println(
                            "Org description: " + getDescription(org));
                    System.out.println("Org key id: " + getKey(org));

                    // Display primary contact information
                    User pc = org.getPrimaryContact();

                    if (pc != null) {
                        PersonName pcName = pc.getPersonName();
                        System.out.println(
                                " Contact name: " + pcName.getFullName());

                        Collection phNums = pc.getTelephoneNumbers(null);

                        for (Object n : phNums) {
                            TelephoneNumber num = (TelephoneNumbern;
                            System.out.println(
                                    "  Phone number: " + num.getNumber());
                        }

                        Collection eAddrs = pc.getEmailAddresses();

                        for (Object a : eAddrs) {
                            EmailAddress eAd = (EmailAddressa;
                            System.out.println(
                                    "  Email address: " + eAd.getAddress());
                        }
                    }

                    // Display service and binding information
                    Collection services = org.getServices();

                    for (Object s : services) {
                        Service svc = (Services;
                        System.out.println(" Service name: " + getName(svc));
                        System.out.println(
                                " Service description: " + getDescription(svc));

                        Collection serviceBindings = svc.getServiceBindings();

                        for (Object b : serviceBindings) {
                            ServiceBinding sb = (ServiceBindingb;
                            System.out.println(
                                    "  Binding description: "
                                    + getDescription(sb));
                            System.out.println(
                                    "  Access URI: " + sb.getAccessURI());
                        }
                    }

                    // Print spacer between organizations
                    System.out.println(" --- ");
                }
            }

            System.out.println("Found " + numOrgs + " organization(s)");
        catch (Exception e) {
            e.printStackTrace();
        finally {
            // At end, close connection to registry
            if (connection != null) {
                try {
                    connection.close();
                catch (JAXRException je) {
                }
            }
        }
    }

    /**
     * Returns the name value for a registry object.
     *
     @param ro        a RegistryObject
     @return                the String value
     */
    private String getName(RegistryObject rothrows JAXRException {
        try {
            return ro.getName()
                     .getValue();
        catch (NullPointerException npe) {
            return "No Name";
        }
    }

    /**
     * Returns the description value for a registry object.
     *
     @param ro        a RegistryObject
     @return                the String value
     */
    private String getDescription(RegistryObject rothrows JAXRException {
        try {
            return ro.getDescription()
                     .getValue();
        catch (NullPointerException npe) {
            return "No Description";
        }
    }

    /**
     * Returns the key id value for a registry object.
     *
     @param ro        a RegistryObject
     @return                the String value
     */
    private String getKey(RegistryObject rothrows JAXRException {
        try {
            return ro.getKey()
                     .getId();
        catch (NullPointerException npe) {
            return "No Key";
        }
    }
}


//////////////////////////////
//
//    File: JAXRExamples.properties
//
//////////////////////////////
## Registry Server:
query.url=http://localhost:8080/RegistryServer/
publish.url=http://localhost:8080/RegistryServer/
registry.username=testuser
registry.password=testuser
## HTTP and HTTPS proxy host and port
http.proxyHost=
http.proxyPort=8080
https.proxyHost=
https.proxyPort=8080
## Values used by publish examples
org.name=The Coffee Break
org.description=Purveyor of the finest coffees. Established 1950
person.name=Jane Doe
phone.number=(800555-1212
email.address=jane.doe@TheCoffeeBreak.com
classification.scheme=ntis-gov:naics:1997
classification.name=All Other Specialty Food Stores
classification.value=445299
service.name=My Service Name
service.description=My Service Description
svcbinding.description=My Service Binding Description
svcbinding.accessURI=http://TheCoffeeBreak.com:8080/sb/
## Values used by postal address examples
postal.taxonomy.filenames=postalconcepts.xml
postal.scheme.name=MyPostalAddressScheme
postal.scheme.description=A ClassificationScheme for My PostalAddressMappings
postal.classification.name=postalAddress
postal.classification.value=postalAddress
postal.scheme.link=http://unrealcompany.com/PostalScheme.html
postal.scheme.linkdesc=My PostalAddress Scheme
postal.org.name=The Postal Coffee Break
postal.person.name=Jane Postal
postal.email.address=jane.postal@ThePostalCoffeeBreak.com
postal.streetNumber=99
postal.street=Imaginary Ave. Suite 33
postal.city=Imaginary City
postal.state=NY
postal.country=USA
postal.postalCode=00000
postal.type=
# Values used by JAXRPublishConcept example
concept.name=HelloConcept
concept.description=Concept for Hello Service
link.uri=http://localhost:8080/hello-jaxws/hello?WSDL
link.description=Hello WSDL document
# Values used by JAXRPublishHelloOrg example
wsdlorg.name=Hello Organization
wsdlorg.description=Organization with a Hello Service
wsdlorg.person.name=Duke
wsdlorg.person.description=Owner of Hello Service
wsdlorg.phone=111-222-3333
wsdlorg.email.address=duke@hello.com
wsdlorg.svc.name=JAX-RPC Hello Service
wsdlorg.svc.description=Says Hello
wsdlorg.svcbnd.description=Service binding for Hello Service
wsdlorg.svcbnd.uri=http://localhost:8080/hello-jaxws/hello

        
Related examples in the same category
1. Finds and deletes the organization that the JAXRPublish program created
2. JAXR Delete Concept
3. Find and deletes the classification scheme that the JAXRSaveClassificationScheme program created
4. Obtain all the registry objects owned by the user and displays their keys, names, and descriptions
5. Create an organization and publishes it to a registry
6. Create a concept and publishes it to a registry
7. Create an organization and publishes it to a registry.( The organization has a service binding that includes a WSDL file.)
8. JAXR Publish Postal
9. It searches a registry for information about organizations using an NAICS classification
10. Search a registry for organizations that offer services based on technical specifications that take the form of WSDL documents
11. Display the postal addresses for the contacts of the organizations using the user-supplied postal address classification scheme UUID
12. Creates a classification scheme and publishes it to a registry
13. Using isEmpty from String class
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.