1 /*
2 * Copyright 2020 The Apache Software Foundation.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package org.apache.juddi.example.juddi.embedded;
17
18 import java.io.File;
19 import java.util.HashSet;
20 import java.util.Set;
21 import org.apache.juddi.Registry;
22 import org.apache.juddi.api.impl.JUDDIApiImpl;
23 import org.apache.juddi.api.impl.UDDICustodyTransferImpl;
24 import org.apache.juddi.api.impl.UDDIInquiryImpl;
25 import org.apache.juddi.api.impl.UDDIPublicationImpl;
26 import org.apache.juddi.api.impl.UDDISecurityImpl;
27 import org.apache.juddi.api.impl.UDDISubscriptionImpl;
28 import org.apache.juddi.api.impl.UDDIValueSetCachingImpl;
29 import org.apache.juddi.api.impl.UDDIValueSetValidationImpl;
30 import static org.apache.juddi.config.AppConfig.JUDDI_CONFIGURATION_FILE_SYSTEM_PROPERTY;
31 import org.apache.juddi.v3.client.UDDIConstants;
32 import org.uddi.api_v3.BusinessList;
33 import org.uddi.api_v3.FindBusiness;
34 import org.uddi.api_v3.Name;
35
36 /**
37 * In this case, we are not using juddi's client/clerk/transport apis, just
38 * using the instance classes directly
39 *
40 * @author Alex O'Ree
41 */
42 public class EmbeddedNoWebNoClerk {
43
44 public static void main(String[] args) throws Exception {
45 //tell juddi to load this server configuration file from disk
46 File cfg = new File("juddi-server.xml").getCanonicalFile();
47 System.setProperty(JUDDI_CONFIGURATION_FILE_SYSTEM_PROPERTY, cfg.getCanonicalPath());
48
49 //start up the services
50 Registry.start();
51 //note these instance classes will be used to server web requests
52 //do not share embedded access with web access classes due to context
53 //sharing issues.
54 JUDDIApiImpl juddi = new JUDDIApiImpl();
55 UDDIPublicationImpl publish = new UDDIPublicationImpl();
56 UDDIInquiryImpl inquiry = new UDDIInquiryImpl();
57 UDDISecurityImpl security = new UDDISecurityImpl();
58 UDDISubscriptionImpl subscription = new UDDISubscriptionImpl();
59 UDDICustodyTransferImpl custody = new UDDICustodyTransferImpl();
60 UDDIValueSetCachingImpl cache = new UDDIValueSetCachingImpl();
61 UDDIValueSetValidationImpl validation = new UDDIValueSetValidationImpl();
62
63 //clients within this process can use invm transport
64 {
65 System.out.println("started, verifying embedded access");
66 FindBusiness fb = new FindBusiness();
67 fb.setMaxRows(200);
68 fb.setListHead(0);
69 // fb.setAuthInfo(GetToken());
70 org.uddi.api_v3.FindQualifiers fq = new org.uddi.api_v3.FindQualifiers();
71 fq.getFindQualifier().add(UDDIConstants.CASE_INSENSITIVE_MATCH);
72 fq.getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
73 fq.getFindQualifier().add(UDDIConstants.SORT_BY_NAME_ASC);
74 fb.setFindQualifiers(fq);
75 Name searchname = new Name();
76 searchname.setLang("%");
77 searchname.setValue("%");
78 fb.getName().add(searchname);
79
80 BusinessList result = inquiry.findBusiness(fb);
81 System.out.println(result.getBusinessInfos().getBusinessInfo().size() + " businesses available");
82 //uddiClientHttp.stop();
83 }
84
85 //for cases that require authentication...
86 //the authenticator should work the same as it is in tomcat
87 //except if you use http style authentication. in this case, you'll have
88 //to do this....
89 //Set<String> roles = new HashSet<String>();
90 //Note: juddi doesn't use servlet container roles
91 //publish.setContext(new MyWebContext("uddi", roles));
92
93 System.out.println("ready, press enter to stop");
94 // System.console().readLine();
95
96 //shutdown
97 Registry.stop();
98 }
99 }