Return-Path: X-Original-To: apmail-cxf-dev-archive@www.apache.org Delivered-To: apmail-cxf-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D9FAF10E56 for ; Mon, 11 Nov 2013 10:25:16 +0000 (UTC) Received: (qmail 6796 invoked by uid 500); 11 Nov 2013 10:25:14 -0000 Delivered-To: apmail-cxf-dev-archive@cxf.apache.org Received: (qmail 6725 invoked by uid 500); 11 Nov 2013 10:25:11 -0000 Mailing-List: contact dev-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list dev@cxf.apache.org Received: (qmail 5331 invoked by uid 99); 11 Nov 2013 10:25:08 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 11 Nov 2013 10:25:08 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS,WEIRD_PORT X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of freeman.fang@gmail.com designates 209.85.160.52 as permitted sender) Received: from [209.85.160.52] (HELO mail-pb0-f52.google.com) (209.85.160.52) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 11 Nov 2013 10:25:03 +0000 Received: by mail-pb0-f52.google.com with SMTP id rr4so5043686pbb.11 for ; Mon, 11 Nov 2013 02:24:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:mime-version:content-type:subject:date:in-reply-to:to :references:message-id; bh=jqzKVs0PwggU5oqXBorbEAlmJUie+jNSEqKnjR5zRO8=; b=SoCABlvrJWSSm4yalv1fe1yb67oEmL4o3OYawBjeta9TbIYAIjc2oP+9pygb6SDvCy pDSMDR/tdWrsSyeunIgzGzJPVXb15CLLDsGqYQ0ByDoWqIIBQ815o4R7qucxt2NcXRbL qRv/fpf+TWqg0VUYl+wNctEPdtFMV/MEPe7IDDMXDRY7vumCaPEYErWx7pVam+/Rx3ur z3cxJKPVY+2phW7+6n+lduQti4fBKNoXeyADz/SaJkQ25n5CVHlWBmk4Wkelx2irjKje uioFpe07bjn8dNlNS6yWe8AV2IAU3GGGegIGuYCyKi0Vyty6mN1OGtn1w1v4RPlWzbf4 NN3w== X-Received: by 10.68.211.233 with SMTP id nf9mr29634978pbc.85.1384165482350; Mon, 11 Nov 2013 02:24:42 -0800 (PST) Received: from [192.168.1.102] ([123.119.255.51]) by mx.google.com with ESMTPSA id ed3sm29887945pbc.6.2013.11.11.02.24.37 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 11 Nov 2013 02:24:41 -0800 (PST) From: Freeman Fang Mime-Version: 1.0 (Apple Message framework v1280) Content-Type: multipart/alternative; boundary="Apple-Mail=_D66B4CB3-1CB7-4B99-9A40-CAE454F8B083" Subject: Re: svn commit: r1539911 - in /cxf/trunk: parent/ rt/frontend/jaxrs/ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/swagger/ Date: Mon, 11 Nov 2013 18:24:33 +0800 In-Reply-To: <5280AB16.3000402@gmail.com> To: dev@cxf.apache.org References: <20131108033042.1161423888A6@eris.apache.org> <527CCBCB.1040102@gmail.com> <527CCD77.7000709@gmail.com> <527CCFAD.2020100@gmail.com> <379EF672-3723-418E-8FE8-123F6EBC75A6@gmail.com> <5280AB16.3000402@gmail.com> Message-Id: <1F4CCE8B-3AE8-45B5-B5ED-5F0DD5C381D4@gmail.com> X-Mailer: Apple Mail (2.1280) X-Virus-Checked: Checked by ClamAV on apache.org --Apple-Mail=_D66B4CB3-1CB7-4B99-9A40-CAE454F8B083 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Hi Sergey, Thanks for the clarification, make perfect sense. Cheers =EF=BC=8D=EF=BC=8D=EF=BC=8D=EF=BC=8D=EF=BC=8D=EF=BC=8D=EF=BC=8D=EF=BC=8D=EF= =BC=8D=EF=BC=8D=EF=BC=8D=EF=BC=8D=EF=BC=8D Freeman(Yue) Fang Red Hat, Inc.=20 FuseSource is now part of Red Hat Web: http://fusesource.com | http://www.redhat.com/ Twitter: freemanfang Blog: http://freemanfang.blogspot.com http://blog.sina.com.cn/u/1473905042 weibo: @Freeman=E5=B0=8F=E5=B1=8B On 2013-11-11, at =E4=B8=8B=E5=8D=886:01, Sergey Beryozkin wrote: > Hi Freeman >=20 > Thanks for taking care of it. > Let me clarify why I moved the WADL related code to = rt/rs/descriptions. >=20 > First, I wanted to make the jaxrs module smaller, and also 'react' to = the fact that a WADL auto-generation is not an essential part of the = clients consuming the endpoints, so a minor performance gain can be = achieved without it (i.e, the WADL filter won't be checked by default = now). > WADL would be IMHO the closest to the 'core' doc option for JAX-RS = endpoints because it was created by one of JAX-RS 1.0 authors. So we = could not replace with Swagger in the core frontend :-). >=20 > However we can now continue enhancing rt/rs/descriptions with more = code supporting different doc styles/approaches, in this case we now = have a Swagger feature, and going forward we can think of doing RAML = (Dan point to it), JSON home, and RestDocs, etc. so the users will be = spoiled for choice :-) >=20 > Though I'd only expect the WADL code be a non-optional/implicit dep of = rt/rs/descriptions. >=20 > Cheers, Sergey >=20 >=20 > On 11/11/13 05:31, Freeman Fang wrote: >> Hi Sergey, >>=20 >> Done. >>=20 >> Move SwaggerFeature into rt/rs/description module on trunk and remove = SwaggerFeature from 2.6.x branch. >>=20 >> Cheers >> =EF=BC=8D=EF=BC=8D=EF=BC=8D=EF=BC=8D=EF=BC=8D=EF=BC=8D=EF=BC=8D=EF=BC=8D= =EF=BC=8D=EF=BC=8D=EF=BC=8D=EF=BC=8D=EF=BC=8D >> Freeman(Yue) Fang >>=20 >> Red Hat, Inc. >> FuseSource is now part of Red Hat >> Web: http://fusesource.com | http://www.redhat.com/ >> Twitter: freemanfang >> Blog: http://freemanfang.blogspot.com >> http://blog.sina.com.cn/u/1473905042 >> weibo: @Freeman=E5=B0=8F=E5=B1=8B >>=20 >>=20 >>=20 >> On 2013-11-8, at =E4=B8=8B=E5=8D=887:49, Sergey Beryozkin wrote: >>=20 >>> Well, it is a rather light weight contribution, so I guess if you = keep the dependency optional as Dan also suggested then yes, may be it = can go >>> to 2.7.x, but I'd think twice before putting it into what is likely = going be to be the last CXF 2.6.x release, it is a new feature, not a = bug fix. For the trunk - please move it to the other module >>>=20 >>> Thanks, Sergey >>>=20 >>>=20 >>>=20 >>> On 08/11/13 11:39, Sergey Beryozkin wrote: >>>> I'm sorry, really not sure how I got my message truncated >>>>=20 >>>> Yes, please move it rt/rs/description - this is now where WADL = related >>>> code lives, I'm fine with Swagger code being there too >>>>=20 >>>> Sergey >>>>=20 >>>> On 08/11/13 11:32, Sergey Beryozkin wrote: >>>>> Hi Freeman >>>>>=20 >>>>> While I appreciate yout effort I'm -1 on this commit. >>>>> Here is why: >>>>>=20 >>>>> - we've worked hard on minimizing cxf rt frontend jaxrs and in one = ho >>>>> you add a Swagger related code without even discussing it. >>>>>=20 >>>>> Please revert your commits. >>>>>=20 >>>>> IMHO, it may go as an *optional* dependency to rt/rs/description = module >>>>> which is where it should stay, on the trunk only. I honestly do = not want >>>>>=20 >>>>>=20 >>>>>=20 >>>>>=20 >>>>> On 08/11/13 03:30, ffang@apache.org wrote: >>>>>> Author: ffang >>>>>> Date: Fri Nov 8 03:30:41 2013 >>>>>> New Revision: 1539911 >>>>>>=20 >>>>>> URL: http://svn.apache.org/r1539911 >>>>>> Log: >>>>>> [CXF-5379]introduce cxf swagger feature >>>>>>=20 >>>>>> Added: >>>>>>=20 >>>>>> = cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/swagger/ >>>>>>=20 >>>>>> = cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/swagger/Swa= ggerFeature.java >>>>>>=20 >>>>>>=20 >>>>>> Modified: >>>>>> cxf/trunk/parent/pom.xml >>>>>> cxf/trunk/rt/frontend/jaxrs/pom.xml >>>>>>=20 >>>>>> = cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAX= RSFactoryBean.java >>>>>>=20 >>>>>>=20 >>>>>>=20 >>>>>> Modified: cxf/trunk/parent/pom.xml >>>>>> URL: >>>>>> = http://svn.apache.org/viewvc/cxf/trunk/parent/pom.xml?rev=3D1539911&r1=3D1= 539910&r2=3D1539911&view=3Ddiff >>>>>>=20 >>>>>>=20 >>>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>>>=20 >>>>>>=20 >>>>>> --- cxf/trunk/parent/pom.xml (original) >>>>>> +++ cxf/trunk/parent/pom.xml Fri Nov 8 03:30:41 2013 >>>>>> @@ -149,6 +149,7 @@ >>>>>> 1.2.1 >>>>>>=20 >>>>>> 1.3.1.RELEASE >>>>>> spring-test >>>>>> + 1.3.0 >>>>>> 1.7 >>>>>> = 4.2.0 >>>>>>=20 >>>>>> = 3.1.1 >>>>>> @@ -1615,6 +1616,12 @@ >>>>>> msv-core >>>>>> ${cxf.msv.version} >>>>>> >>>>>> + >>>>>> + com.wordnik >>>>>> + swagger-jaxrs_2.10 >>>>>> + ${cxf.swagger.version} >>>>>> + >>>>>> + >>>>>> >>>>>> >>>>>>=20 >>>>>>=20 >>>>>> Modified: cxf/trunk/rt/frontend/jaxrs/pom.xml >>>>>> URL: >>>>>> = http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/pom.xml?rev=3D153= 9911&r1=3D1539910&r2=3D1539911&view=3Ddiff >>>>>>=20 >>>>>>=20 >>>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>>>=20 >>>>>>=20 >>>>>> --- cxf/trunk/rt/frontend/jaxrs/pom.xml (original) >>>>>> +++ cxf/trunk/rt/frontend/jaxrs/pom.xml Fri Nov 8 03:30:41 2013 >>>>>> @@ -36,6 +36,7 @@ >>>>>>=20 >>>>>> javax.servlet*;version=3D"${cxf.osgi.javax.servlet.version}", >>>>>> = org.apache.aries*;version=3D"${cxf.aries.version.range}", >>>>>>=20 >>>>>> = org.springframework*;resolution:=3D"optional";version=3D"${cxf.osgi.spring= .version}", >>>>>>=20 >>>>>>=20 >>>>>> + >>>>>> = com.wordnik.swagger.jaxrs*;resolution:=3D"optional";version=3D"[1.3.0, >>>>>> 1.4.0)", >>>>>> javax.ws.rs.client;version=3D"[2.0,3)", >>>>>> javax.ws.rs*;version=3D"[1.0,3)", >>>>>> >>>>>> @@ -158,6 +159,10 @@ >>>>>> >>>>>> >>>>>> >>>>>> + >>>>>> + com.wordnik >>>>>> + swagger-jaxrs_2.10 >>>>>> + >>>>>> >>>>>>=20 >>>>>>=20 >>>>>>=20 >>>>>> Modified: >>>>>> = cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAX= RSFactoryBean.java >>>>>>=20 >>>>>>=20 >>>>>> URL: >>>>>> = http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org= /apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java?rev=3D1539911&r1=3D1539910= &r2=3D1539911&view=3Ddiff >>>>>>=20 >>>>>>=20 >>>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>>>=20 >>>>>>=20 >>>>>> --- >>>>>> = cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAX= RSFactoryBean.java >>>>>>=20 >>>>>> (original) >>>>>> +++ >>>>>> = cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAX= RSFactoryBean.java >>>>>>=20 >>>>>> Fri Nov 8 03:30:41 2013 >>>>>> @@ -110,6 +110,7 @@ public class AbstractJAXRSFactoryBean ex >>>>>> super.setBus(bus); >>>>>> checkBindingFactory(bus); >>>>>> serviceFactory.setBus(bus); >>>>>> + bus.setProperty(JAXRSServiceFactoryBean.class.getName(), >>>>>> serviceFactory); >>>>>> } >>>>>>=20 >>>>>> /* >>>>>> @@ -204,6 +205,7 @@ public class AbstractJAXRSFactoryBean ex >>>>>> */ >>>>>> public void setServiceFactory(JAXRSServiceFactoryBean >>>>>> serviceFactory) { >>>>>> this.serviceFactory =3D serviceFactory; >>>>>> + = getBus().setProperty(JAXRSServiceFactoryBean.class.getName(), >>>>>> serviceFactory); >>>>>> } >>>>>>=20 >>>>>> protected Endpoint createEndpoint() throws BusException, >>>>>> EndpointException { >>>>>>=20 >>>>>> Added: >>>>>> = cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/swagger/Swa= ggerFeature.java >>>>>>=20 >>>>>>=20 >>>>>> URL: >>>>>> = http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org= /apache/cxf/jaxrs/swagger/SwaggerFeature.java?rev=3D1539911&view=3Dauto >>>>>>=20 >>>>>>=20 >>>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>>>=20 >>>>>>=20 >>>>>> --- >>>>>> = cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/swagger/Swa= ggerFeature.java >>>>>>=20 >>>>>> (added) >>>>>> +++ >>>>>> = cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/swagger/Swa= ggerFeature.java >>>>>>=20 >>>>>> Fri Nov 8 03:30:41 2013 >>>>>> @@ -0,0 +1,142 @@ >>>>>> +/** >>>>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>>>> + * or more contributor license agreements. See the NOTICE file >>>>>> + * distributed with this work for additional information >>>>>> + * regarding copyright ownership. The ASF licenses this file >>>>>> + * to you 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. >>>>>> + */ >>>>>> +package org.apache.cxf.jaxrs.swagger; >>>>>> + >>>>>> +import java.util.ArrayList; >>>>>> +import java.util.List; >>>>>> + >>>>>> +import org.apache.cxf.Bus; >>>>>> +import org.apache.cxf.endpoint.Server; >>>>>> +import org.apache.cxf.feature.AbstractFeature; >>>>>> +import org.apache.cxf.jaxrs.JAXRSServiceFactoryBean; >>>>>> +import org.apache.cxf.jaxrs.model.AbstractResourceInfo; >>>>>> +import org.apache.cxf.jaxrs.provider.ProviderFactory; >>>>>> + >>>>>> +public class SwaggerFeature extends AbstractFeature { >>>>>> + >>>>>> + private String resourcePackage; >>>>>> + private String version =3D "1.0.0"; >>>>>> + private String basePath; >>>>>> + private String title =3D "Rest sample app"; >>>>>> + private String description =3D "This is a app."; >>>>>> + private String contact =3D "freeman.fang@gmail.com"; >>>>>> + private String license =3D "Apache 2.0 License"; >>>>>> + private String licenseUrl =3D >>>>>> "http://www.apache.org/licenses/LICENSE-2.0.html"; >>>>>> + private boolean scan =3D true; >>>>>> + @Override >>>>>> + public void initialize(Server server, Bus bus) { >>>>>> + List serviceBeans =3D new ArrayList(); >>>>>> + serviceBeans.add(new >>>>>> com.wordnik.swagger.jaxrs.listing.ApiListingResourceJSON()); >>>>>> + calulateDefaultResourcePackage(bus); >>>>>> + calulateDefaultBasePath(server); >>>>>> + >>>>>> = ((JAXRSServiceFactoryBean)bus.getProperty(JAXRSServiceFactoryBean.class.ge= tName())). >>>>>>=20 >>>>>>=20 >>>>>> + setResourceClassesFromBeans(serviceBeans); >>>>>> + List providers =3D new ArrayList(); >>>>>> + providers.add(new >>>>>> com.wordnik.swagger.jaxrs.listing.ResourceListingProvider()); >>>>>> + providers.add(new >>>>>> com.wordnik.swagger.jaxrs.listing.ApiDeclarationProvider()); >>>>>> + >>>>>> = ((ProviderFactory)bus.getProperty(ProviderFactory.class.getName())).setUse= rProviders(providers); >>>>>>=20 >>>>>>=20 >>>>>> + com.wordnik.swagger.jaxrs.config.BeanConfig beanConfig =3D= new >>>>>> com.wordnik.swagger.jaxrs.config.BeanConfig(); >>>>>> + beanConfig.setResourcePackage(getResourcePackage()); >>>>>> + beanConfig.setVersion(getVersion()); >>>>>> + beanConfig.setBasePath(getBasePath()); >>>>>> + beanConfig.setTitle(getTitle()); >>>>>> + beanConfig.setDescription(getDescription()); >>>>>> + beanConfig.setContact(getContact()); >>>>>> + beanConfig.setLicense(getLicense()); >>>>>> + beanConfig.setLicenseUrl(getLicenseUrl()); >>>>>> + beanConfig.setScan(isScan()); >>>>>> + initializeProvider(server.getEndpoint(), bus); >>>>>> + } >>>>>> + private void calulateDefaultResourcePackage(Bus bus) { >>>>>> + JAXRSServiceFactoryBean serviceFactoryBean =3D >>>>>> + >>>>>> = (JAXRSServiceFactoryBean)bus.getProperty(JAXRSServiceFactoryBean.class.get= Name()); >>>>>>=20 >>>>>>=20 >>>>>> + AbstractResourceInfo resourceInfo =3D >>>>>> serviceFactoryBean.getClassResourceInfo().get(0); >>>>>> + >>>>>> + if ((resourceInfo !=3D null) >>>>>> + && (getResourcePackage() =3D=3D null || >>>>>> getResourcePackage().length() =3D=3D 0)) { >>>>>> + >>>>>> = setResourcePackage(resourceInfo.getResourceClass().getPackage().getName())= ; >>>>>>=20 >>>>>>=20 >>>>>> + } >>>>>> + } >>>>>> + >>>>>> + private void calulateDefaultBasePath(Server server) { >>>>>> + String address =3D >>>>>> server.getEndpoint().getEndpointInfo().getAddress(); >>>>>> + if (getBasePath() =3D=3D null || getBasePath().length() = =3D=3D 0) { >>>>>> + if (address.startsWith("http")) { >>>>>> + setBasePath(address + "/api-docs"); >>>>>> + } else { >>>>>> + setBasePath("http://localhost:8181/cxf" + = address + >>>>>> "/api-docs"); >>>>>> + } >>>>>> + } >>>>>> + } >>>>>> + public String getResourcePackage() { >>>>>> + return resourcePackage; >>>>>> + } >>>>>> + public void setResourcePackage(String resourcePackage) { >>>>>> + this.resourcePackage =3D resourcePackage; >>>>>> + } >>>>>> + public String getVersion() { >>>>>> + return version; >>>>>> + } >>>>>> + public void setVersion(String version) { >>>>>> + this.version =3D version; >>>>>> + } >>>>>> + public String getBasePath() { >>>>>> + return basePath; >>>>>> + } >>>>>> + public void setBasePath(String basePath) { >>>>>> + this.basePath =3D basePath; >>>>>> + } >>>>>> + public String getTitle() { >>>>>> + return title; >>>>>> + } >>>>>> + public void setTitle(String title) { >>>>>> + this.title =3D title; >>>>>> + } >>>>>> + public String getDescription() { >>>>>> + return description; >>>>>> + } >>>>>> + public void setDescription(String description) { >>>>>> + this.description =3D description; >>>>>> + } >>>>>> + public String getContact() { >>>>>> + return contact; >>>>>> + } >>>>>> + public void setContact(String contact) { >>>>>> + this.contact =3D contact; >>>>>> + } >>>>>> + public String getLicense() { >>>>>> + return license; >>>>>> + } >>>>>> + public void setLicense(String license) { >>>>>> + this.license =3D license; >>>>>> + } >>>>>> + public String getLicenseUrl() { >>>>>> + return licenseUrl; >>>>>> + } >>>>>> + public void setLicenseUrl(String licenseUrl) { >>>>>> + this.licenseUrl =3D licenseUrl; >>>>>> + } >>>>>> + public boolean isScan() { >>>>>> + return scan; >>>>>> + } >>>>>> + public void setScan(boolean scan) { >>>>>> + this.scan =3D scan; >>>>>> + } >>>>>> + >>>>>> +} >>>>>>=20 >>>>>>=20 >>>>>=20 >>>>>=20 >>>>=20 >>>>=20 >>>=20 >>>=20 >>> -- >>> Sergey Beryozkin >>>=20 >>> Talend Community Coders >>> http://coders.talend.com/ >>>=20 >>> Blog: http://sberyozkin.blogspot.com >>=20 >>=20 >=20 >=20 > --=20 > Sergey Beryozkin >=20 > Talend Community Coders > http://coders.talend.com/ >=20 > Blog: http://sberyozkin.blogspot.com --Apple-Mail=_D66B4CB3-1CB7-4B99-9A40-CAE454F8B083--