2013-12-10 20 views
8

Oluşturulan JAXB sınıfları için Builder model sınıfları oluşturan herhangi bir iyi JAXB Eklentisinin farkında mısınız? JAXB oluşturulan sınıfları kullanarak alan oluşturmak gerçekten çok kötü. Birisi 2010'da yazdığı bir eklentiyi gördüm ama en yeni maven eklentisi jaxb2-maven-plugin'i kullanmıyor ve aynı zamanda sağlam olmayan her bir şema türü için bağlamaları belirlemenizi gerektiriyor.Yapıcılar üreten bir JAXB Eklentisi var mı?

+0

ObjectFactory sınıfını oluşturmayı mı kastediyorsunuz? –

+1

Eğer jaxb-fluent-api bir şekilde 'cxf-xjc-plugin' ile yapılandırılmışsa, o zaman bu harika bir çözüm olabilir ama mümkün olup olmadığından emin değilim. Bunun dışında, zaten burada retepTools'a rastlamış olabilirsiniz: http://blog.retep.org/2010/05/18/implementing-builders-with-jaxb-generated-objects/2/ – pulkitsinghal

+0

Bu eklenti, değiştirilemez. sınıflar ve isteğe bağlı yapımcılar - https://github.com/sabomichal/immutable-xjc – miso

cevap

3

bir pom.xml dosyadan aşağıdaki pasajı, JAXB sınıflar oluşturmak için maven cxf-xjc-plugin kullanır ve ayrıca çakmak açma için fluent interfaces ... tam olarak kendi başlarına tam bir oluşturucu deseni hangilerinin jaxb-fluent-api güçlendirir ... ama sanıyorum millet için bu yönde iyi bir yol yapmak için odadan ayrılıyorlar.

 <!-- Used to generate source code based on XSD (schema) file --> 
     <!-- http://cxf.apache.org/cxf-xjc-plugin.html --> 
     <plugin> 
      <groupId>org.apache.cxf</groupId> 
      <artifactId>cxf-xjc-plugin</artifactId> 
      <version>2.7.7</version> 
      <configuration> 
       <extensions> 
        <extension>net.java.dev.jaxb2-commons:jaxb-fluent-api:2.1.8</extension> 
       </extensions> 
      </configuration> 
      <executions> 
       <execution> 
        <id>generate-xsd-sources</id> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>xsdtojava</goal> 
        </goals> 
        <configuration> 
         <sourceRoot>${basedir}/target/generated-sources/cxf-xjc/</sourceRoot> 
         <xsdOptions> 
          <xsdOption> 
           <xsd>${basedir}/src/main/wsdl/your.xsd</xsd> 
           <packagename>com.your.package.name</packagename> 
           <extensionArgs> 
            <extensionArg>-Xfluent-api</extensionArg> 
           </extensionArgs> 
          </xsdOption> 
         </xsdOptions> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
6

Evet, şimdi JAXB tarafından oluşturulan sınıflar için akıcı geliştiriciler oluşturmak için bir eklenti var. Bu kullanışlı JAXB eklentileri bir çift içerir

https://github.com/mklemm/jaxb2-rich-contract-plugin

üzerinde github proje bulunmaktadır. Sen The Central Repository

Hope adlı maven eserler github, gelen kaynak ve ikilileri indirmek veya alabilirsiniz bu yardımcı olur. Herhangi bir sorunuz varsa, bana sor, ben başlatan kişiyim.

+0

Dtd'den sınıflar oluştururken oluşturucu oluşturmak için eklentiyi kullanabilir miyim? – mejas

+0

Henüz hiç denenmemiş olmasına rağmen, bir DTD ile ÇALIŞMAZ. –

İlgili konular