001    /*
002     * Licensed to the Apache Software Foundation (ASF) under one or more
003     * contributor license agreements.  See the NOTICE file distributed with
004     * this work for additional information regarding copyright ownership.
005     * The ASF licenses this file to You under the Apache License, Version 2.0
006     * (the "License"); you may not use this file except in compliance with
007     * the License.  You may obtain a copy of the License at
008     *
009     *      http://www.apache.org/licenses/LICENSE-2.0
010     *
011     * Unless required by applicable law or agreed to in writing, software
012     * distributed under the License is distributed on an "AS IS" BASIS,
013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     * See the License for the specific language governing permissions and
015     * limitations under the License.
016     */
017    package org.apache.servicemix.jbi.deployment;
018    
019    /**
020     * @version $Revision: 426415 $
021     */
022    public class Descriptor {
023        private double version;
024        private Component component;
025        private SharedLibrary sharedLibrary;
026        private ServiceAssembly serviceAssembly;
027        private Services services;
028    
029        public double getVersion() {
030            return version;
031        }
032    
033        public void setVersion(double version) {
034            this.version = version;
035        }
036    
037        public Component getComponent() {
038            return component;
039        }
040    
041        public void setComponent(Component component) {
042            this.component = component;
043        }
044    
045        public SharedLibrary getSharedLibrary() {
046            return sharedLibrary;
047        }
048    
049        public void setSharedLibrary(SharedLibrary sharedLibrary) {
050            this.sharedLibrary = sharedLibrary;
051        }
052    
053        public ServiceAssembly getServiceAssembly() {
054            return serviceAssembly;
055        }
056    
057        public void setServiceAssembly(ServiceAssembly serviceAssembly) {
058            this.serviceAssembly = serviceAssembly;
059        }
060    
061        public Services getServices() {
062            return services;
063        }
064    
065        public void setServices(Services services) {
066            this.services = services;
067        }
068    }
069    
070    /*
071    default namespace this = "http://java.sun.com/xml/ns/jbi"
072    start =
073      element jbi {
074        attribute version { xsd:decimal },
075        ( component | shared-library | service-assembly | services)
076      }
077    component =
078      element component {
079        attribute type { "service-engine" | "binding-component" },
080        attribute component-class-loader-delegation { "parent-first" | "self-first" }?,
081        attribute bootstrap-class-loader-delegation { "parent-first" | "self-first" }?,
082        identification,
083        element component-class-name { attribute description { text }?, text },
084        element component-class-path { class-path },
085        element bootstrap-class-name { text },
086        element bootstrap-class-path { class-path },
087        shared-library-list*,
088        element* -this:* { text }*
089      }
090    shared-library =
091      element shared-library {
092        attribute class-loader-delegation { "parent-first" | "self-first" }?,
093        attribute version { text }?,
094        identification,
095        element shared-library-class-path { class-path }
096      }
097    shared-library-list =
098      element shared-library {
099        attribute version { text }?,
100        text
101      }
102    service-assembly =
103      element service-assembly {
104        identification,
105        service-unit*,
106        connections?,
107        element* -this:* { text }*
108      }
109    service-unit =
110      element service-unit {
111        identification,
112        element target {
113          element artifacts-zip { text },
114          element component-name { xsd:NCName }
115        },
116        element* -this:* { text }*
117      }
118    identification =
119      element identification {
120        element name { xsd:NCName },
121        element description { text },
122        element* -this:* { text }*
123     }
124    class-path =
125      (element path-element { text })+
126    services =
127      element services {
128        attribute binding-component { xsd:boolean },
129        provides*,
130        consumes*,
131        element* -this:* { text }*
132      }
133    connections =
134      element connections {
135        element connection {
136          element consumer {
137            ( attribute interface-name { xsd:QName } |
138              (attribute service-name { xsd:QName }, attribute endpoint-name { text })
139            )
140          },
141          element provider {
142            attribute service-name { xsd:QName }, attribute endpoint-name { text }
143          }
144        }*,
145        element* -this:* { text }*
146      }
147    provides =
148      element provides {
149        attribute interface-name { xsd:QName },
150        attribute service-name {xsd:QName }, attribute endpoint-name { text },
151        element* -this:* { text }*
152      }
153    consumes =
154      element consumes {
155        attribute interface-name { xsd:QName },
156        ( attribute service-name {xsd:QName }, attribute endpoint-name { text },
157          attribute link-type { "standard" | "hard" | "soft" }? )?,
158        element* -this:* { text }*
159      }
160    */