001    /**
002     * Copyright 2005-2013 The Kuali Foundation
003     *
004     * Licensed under the Educational Community License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     * http://www.opensource.org/licenses/ecl2.php
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    package org.kuali.rice.ksb.impl.registry;
017    
018    import org.kuali.rice.ksb.api.registry.ServiceEndpointStatus;
019    import org.kuali.rice.ksb.api.registry.ServiceInfo;
020    import org.kuali.rice.ksb.api.registry.ServiceInfoContract;
021    
022    import javax.xml.namespace.QName;
023    import java.io.Serializable;
024    
025    /**
026     * Model bean that represents the definition of a service on the bus.
027     * 
028     * @see ServiceInfo
029     *
030     * @author Kuali Rice Team (rice.collab@kuali.org)
031     */
032    //@Entity
033    //@Table(name="KRSB_SVC_DEF_T")
034    //@NamedQueries([
035    //      @NamedQuery(name="ServiceInfo.FetchAll", query="select s from ServiceInfo s"),
036    //      @NamedQuery(name="ServiceInfo.FetchAllActive",query="select s from ServiceInfo s where s.alive = true"),
037    //      @NamedQuery(name="ServiceInfo.FetchActiveByName",query="select s from ServiceInfo s where s.alive = true AND s.serviceName LIKE :serviceName"),
038    //      @NamedQuery(name="ServiceInfo.FindLocallyPublishedServices",query="select s from ServiceInfo s where s.serverIp = :serverIp AND s.applicationId = :applicationId"),
039    //      @NamedQuery(name="ServiceInfo.DeleteLocallyPublishedServices",query="delete from ServiceInfo s WHERE s.serverIp = :serverIp AND s.applicationId = :applicationId"),
040    //      @NamedQuery(name="ServiceInfo.DeleteByEntry",query="delete from ServiceInfo s where s.messageEntryId = :messageEntryId")                        
041    //])
042    public class ServiceInfoBo implements ServiceInfoContract, Serializable {
043     
044            private static final long serialVersionUID = -4244884858494208070L;
045    
046            // TODO for some reason groovy won't compile this so commenting out for now...
047    //      @Id
048    //      @GeneratedValue(generator="KRSB_SVC_DEF_S")
049    //      @GenericGenerator(name="KRSB_SVC_DEF_S",strategy="org.hibernate.id.enhanced.SequenceStyleGenerator",parameters=[
050    //                      @Parameter(name="sequence_name",value="KRSB_SVC_DEF_S"),
051    //                      @Parameter(name="value_column",value="id")
052    //      ])
053            @javax.persistence.Column(name="SVC_DEF_ID")
054            private String serviceId;
055            
056            @javax.persistence.Column(name="SVC_NM")
057            private String serviceName;
058        
059            @javax.persistence.Column(name="SVC_URL", length=500)
060            private String endpointUrl;
061            
062            @javax.persistence.Column(name="INSTN_ID")
063            private String instanceId;
064    
065            @javax.persistence.Column(name="APPL_ID")
066            private String applicationId;
067    
068            @javax.persistence.Column(name="SRVR_IP")
069            private String serverIpAddress;
070            
071            @javax.persistence.Column(name="TYP_CD")
072            private String type;
073            
074            @javax.persistence.Column(name="SVC_VER")
075            private String serviceVersion;
076            
077            @javax.persistence.Column(name="STAT_CD")
078            private String statusCode;
079            
080            @javax.persistence.Column(name="SVC_DSCRPTR_ID")
081            private String serviceDescriptorId;
082            
083            @javax.persistence.Column(name="CHKSM", length=30)
084            private String checksum;
085            
086            @javax.persistence.Version
087            @javax.persistence.Column(name="VER_NBR")
088            private Long versionNumber;
089    
090        public String getServiceId() {
091            return serviceId;
092        }
093    
094        public void setServiceId(String serviceId) {
095            this.serviceId = serviceId;
096        }
097    
098        @Override
099        public QName getServiceName() {
100            if (this.serviceName == null) {
101                return null;
102            }
103            return QName.valueOf(this.serviceName);
104        }
105    
106        public void setServiceName(String serviceName) {
107            this.serviceName = serviceName;
108        }
109    
110        public String getEndpointUrl() {
111            return endpointUrl;
112        }
113    
114        public void setEndpointUrl(String endpointUrl) {
115            this.endpointUrl = endpointUrl;
116        }
117    
118        public String getInstanceId() {
119            return instanceId;
120        }
121    
122        public void setInstanceId(String instanceId) {
123            this.instanceId = instanceId;
124        }
125    
126        public String getApplicationId() {
127            return applicationId;
128        }
129    
130        public void setApplicationId(String applicationId) {
131            this.applicationId = applicationId;
132        }
133    
134        public String getServerIpAddress() {
135            return serverIpAddress;
136        }
137    
138        public void setServerIpAddress(String serverIpAddress) {
139            this.serverIpAddress = serverIpAddress;
140        }
141    
142        public String getType() {
143            return type;
144        }
145    
146        public void setType(String type) {
147            this.type = type;
148        }
149    
150        public String getServiceVersion() {
151            return serviceVersion;
152        }
153    
154        public void setServiceVersion(String serviceVersion) {
155            this.serviceVersion = serviceVersion;
156        }
157    
158        public String getStatusCode() {
159            return statusCode;
160        }
161    
162        public void setStatusCode(String statusCode) {
163            this.statusCode = statusCode;
164        }
165    
166        public String getServiceDescriptorId() {
167            return serviceDescriptorId;
168        }
169    
170        public void setServiceDescriptorId(String serviceDescriptorId) {
171            this.serviceDescriptorId = serviceDescriptorId;
172        }
173    
174        public String getChecksum() {
175            return checksum;
176        }
177    
178        public void setChecksum(String checksum) {
179            this.checksum = checksum;
180        }
181    
182        public Long getVersionNumber() {
183            return versionNumber;
184        }
185    
186        public void setVersionNumber(Long versionNumber) {
187            this.versionNumber = versionNumber;
188        }
189    
190        @Override
191            public ServiceEndpointStatus getStatus() {
192                    if (getStatusCode() == null) {
193                            return null;
194                    }
195                    return ServiceEndpointStatus.fromCode(getStatusCode());
196            }
197    
198            static ServiceInfo to(ServiceInfoBo bo) {
199                    if (bo == null) {
200                            return null;
201                    }
202                    return ServiceInfo.Builder.create(bo).build();
203            }
204            
205            static ServiceInfoBo from(ServiceInfo im) {
206                    if (im == null) {
207                            return null;
208                    }
209                    ServiceInfoBo bo = new ServiceInfoBo();
210                    bo.serviceId = im.getServiceId();
211                    bo.serviceName = im.getServiceName().toString();
212                    bo.endpointUrl = im.getEndpointUrl();
213                    bo.instanceId = im.getInstanceId();
214                    bo.applicationId = im.getApplicationId();
215                    bo.serverIpAddress = im.getServerIpAddress();
216                    bo.type = im.getType();
217                    bo.serviceVersion = im.getServiceVersion();
218                    bo.statusCode = im.getStatus().getCode();
219                    bo.serviceDescriptorId = im.getServiceDescriptorId();
220                    bo.checksum = im.getChecksum();
221                    bo.versionNumber = im.getVersionNumber();
222                    return bo;
223            }
224            
225            
226            
227            
228    }