/* | |
* Copyright 2001-2004 The Apache Software Foundation. | |
* | |
* Licensed under the Apache License, Version 2.0 (the "License"); | |
* you may not use this file except in compliance with the License. | |
* You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, software | |
* distributed under the License is distributed on an "AS IS" BASIS, | |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
* See the License for the specific language governing permissions and | |
* limitations under the License. | |
*/ | |
import org.apache.ws.scout.registry.ConnectionFactoryImpl; | |
import javax.xml.registry.BulkResponse; | |
import javax.xml.registry.BusinessLifeCycleManager; | |
import javax.xml.registry.Connection; | |
import javax.xml.registry.ConnectionFactory; | |
import javax.xml.registry.JAXRException; | |
import javax.xml.registry.JAXRResponse; | |
import javax.xml.registry.RegistryService; | |
import javax.xml.registry.infomodel.Classification; | |
import javax.xml.registry.infomodel.ClassificationScheme; | |
import javax.xml.registry.infomodel.EmailAddress; | |
import javax.xml.registry.infomodel.ExternalIdentifier; | |
import javax.xml.registry.infomodel.InternationalString; | |
import javax.xml.registry.infomodel.Key; | |
import javax.xml.registry.infomodel.Organization; | |
import javax.xml.registry.infomodel.PersonName; | |
import javax.xml.registry.infomodel.PostalAddress; | |
import javax.xml.registry.infomodel.Service; | |
import javax.xml.registry.infomodel.TelephoneNumber; | |
import javax.xml.registry.infomodel.User; | |
import java.net.PasswordAuthentication; | |
import java.util.ArrayList; | |
import java.util.Collection; | |
import java.util.HashSet; | |
import java.util.Iterator; | |
import java.util.Properties; | |
import java.util.Set; | |
/** | |
* Saves an Organization in the UDDI Registry | |
* | |
* @author Anil Saldhana <anil@apache.org> | |
*/ | |
public class SaveJAXROrganization { | |
private static Properties prop = new Properties(); | |
private static final String queryurl = "http://localhost:8080/juddi/inquiry"; | |
private static final String publishurl = "http://localhost:8080/juddi/publish"; | |
private static BusinessLifeCycleManager blm = null; | |
public static void main(String[] args) { | |
try { | |
PasswordAuthentication passwdAuth = new PasswordAuthentication("jdoe", | |
"juddi".toCharArray()); | |
Set creds = new HashSet(); | |
creds.add(passwdAuth); | |
setProperties(); | |
Connection conn = getConnection(); | |
conn.setCredentials(creds); | |
RegistryService rs = conn.getRegistryService(); | |
blm = rs.getBusinessLifeCycleManager(); | |
Collection orgs = new ArrayList(); | |
Organization org = blm.createOrganization(getIString("USA")); | |
org.setDescription(getIString("Apache Software Foundation")); | |
Service service = blm.createService(getIString("Apache JAXR Service")); | |
service.setDescription(getIString("Services of UDDI Registry")); | |
User user = blm.createUser(); | |
org.setPrimaryContact(user); | |
PersonName personName = blm.createPersonName("Steve Viens"); | |
TelephoneNumber telephoneNumber = blm.createTelephoneNumber(); | |
telephoneNumber.setNumber("410-666-7777"); | |
telephoneNumber.setType(null); | |
PostalAddress address | |
= blm.createPostalAddress("1901", | |
"Munsey Drive", "Forest Hill", | |
"MD", "USA", "21050-2747", ""); | |
Collection postalAddresses = new ArrayList(); | |
postalAddresses.add(address); | |
Collection emailAddresses = new ArrayList(); | |
EmailAddress emailAddress = blm.createEmailAddress("sviens@apache.org"); | |
emailAddresses.add(emailAddress); | |
Collection numbers = new ArrayList(); | |
numbers.add(telephoneNumber); | |
user.setPersonName(personName); | |
user.setPostalAddresses(postalAddresses); | |
user.setEmailAddresses(emailAddresses); | |
user.setTelephoneNumbers(numbers); | |
//Concepts for NAICS and computer | |
ClassificationScheme cScheme = getClassificationScheme("ntis-gov:naics", ""); | |
Key cKey = blm.createKey("uuid:C0B9FE13-324F-413D-5A5B-2004DB8E5CC2"); | |
cScheme.setKey(cKey); | |
Classification classification = blm.createClassification(cScheme, | |
"Computer Systems Design and Related Services", | |
"5415"); | |
org.addClassification(classification); | |
ClassificationScheme cScheme1 = getClassificationScheme("D-U-N-S", ""); | |
Key cKey1 = blm.createKey("uuid:3367C81E-FF1F-4D5A-B202-3EB13AD02423"); | |
cScheme1.setKey(cKey1); | |
ExternalIdentifier ei = | |
blm.createExternalIdentifier(cScheme1, "D-U-N-S number", | |
"08-146-6849"); | |
org.addExternalIdentifier(ei); | |
org.addService(service); | |
orgs.add(org); | |
BulkResponse br = blm.saveOrganizations(orgs); | |
if (br.getStatus() == JAXRResponse.STATUS_SUCCESS) { | |
System.out.println("Organization Saved"); | |
Collection coll = br.getCollection(); | |
Iterator iter = coll.iterator(); | |
while (iter.hasNext()) { | |
Key key = (Key) iter.next(); | |
System.out.println("Saved Key=" + key.getId()); | |
}//end while | |
} else { | |
System.err.println("JAXRExceptions " + | |
"occurred during save:"); | |
Collection exceptions = br.getExceptions(); | |
Iterator iter = exceptions.iterator(); | |
while (iter.hasNext()) { | |
Exception e = (Exception) iter.next(); | |
System.err.println(e.toString()); | |
} | |
} | |
} catch (JAXRException e) { | |
e.printStackTrace(); | |
} catch (Exception es) { | |
es.printStackTrace(); | |
} catch (Throwable t) { | |
t.printStackTrace(); | |
System.out.println("Message from throwable=" + t.getMessage()); | |
} | |
} | |
private static void setProperties() { | |
prop.setProperty("javax.xml.registry.queryManagerURL", queryurl); | |
prop.setProperty("javax.xml.registry.lifeCycleManagerURL", publishurl); | |
prop.setProperty("javax.xml.registry.factoryClass", | |
"org.apache.juddi.jaxr.registry.ConnectionFactoryImpl"); | |
} | |
private static Connection getConnection() throws JAXRException { | |
ConnectionFactory factory = ConnectionFactoryImpl.newInstance(); | |
factory.setProperties(prop); | |
Connection conn = factory.createConnection(); | |
if (conn == null) System.out.println("No Connection"); | |
return conn; | |
} | |
private static InternationalString getIString(String str) | |
throws JAXRException { | |
return blm.createInternationalString(str); | |
} | |
private static ClassificationScheme getClassificationScheme(String str1, String str2) | |
throws JAXRException { | |
ClassificationScheme cs = blm.createClassificationScheme(getIString(str1), | |
getIString(str2)); | |
return cs; | |
} | |
} |