2016-03-14 3 views
1

Я понимаю, что библиотека Hyperjaxb3 будет очень полезна для моего проекта, прочитала пару описаний на нескольких сайтах и ​​решила встроить ее в мой проект Spring-Hibernate.Что происходит в проекте HyperJaxb3?

Я нашел ссылку на Hyperjaxb3 в https://jaxb.java.net/, которая выглядит довольно официальной, но гиперссылка - http://confluence.highsource.org/display/HJ3/Home - не открывается.

Я нашел несколько старых примеров POM, включил их в свой проект и нашел некоторые из ссылок на старые версии, попытался их устранить, но сейчас кажется, что я нахожусь в зависимости от старой версии Hibernate, ошибка выглядит так:

java.util.ServiceConfigurationError: com.sun.tools.xjc.Plugin: Provider org.jvnet.hyperjaxb3.hibernate.plugin.HibernatePlugin не может быть создан: java.lang.NoClassDefFoundError: орг/hibernate/type/MutableType

Мне интересно, есть ли более эффективная запись Maven, если проект жив и как я могу использовать его с более сложным спящим режимом.

Это мой П отрывок о Hyperjaxb3, где я исключить устаревшие ссылки и указать последние версии других зависимостей:

<dependency> 
     <groupId>org.glassfish.jaxb</groupId> 
     <artifactId>jaxb-core</artifactId> 
     <version>${jaxb-version}</version> 
    </dependency>   
    <dependency> 
     <groupId>org.glassfish.jaxb</groupId> 
     <artifactId>jaxb-xjc</artifactId> 
     <version>${jaxb-version}</version> 
    </dependency> 
    <!--<dependency> 
     <groupId>org.jvnet.hyperjaxb3</groupId> 
     <artifactId>hyperjaxb3</artifactId> 
     <version>0.6.1</version> 
    </dependency>  --> 
    <dependency> 
     <groupId>org.jvnet.hyperjaxb3</groupId> 
     <artifactId>hyperjaxb3-hibernate-plugin</artifactId> 
     <version>0.1</version> 
     <exclusions> 
      <exclusion> 
       <groupId>hsqldb</groupId> 
       <artifactId>hsqldb</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>junit</groupId> 
       <artifactId>junit</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>log4j</groupId> 
       <artifactId>log4j</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>net.sf.saxon</groupId> 
       <artifactId>saxon</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>net.sf.saxon</groupId> 
       <artifactId>saxon-dom</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.hibernate</groupId> 
       <artifactId>hibernate</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>com.sun.xml.bind</groupId> 
       <artifactId>jaxb-xjc</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>asm</groupId> 
     <artifactId>asm</artifactId> 
     <version>3.3.1</version> 
    </dependency> 
    <dependency> 
     <groupId>asm</groupId> 
     <artifactId>asm-attrs</artifactId> 
     <version>2.2.3</version> 
    </dependency> 
    <dependency> 
     <groupId>cglib</groupId> 
     <artifactId>cglib</artifactId> 
     <version>3.2.1</version> 
    </dependency> 

    <dependency> 
     <groupId>commons-beanutils</groupId> 
     <artifactId>commons-beanutils</artifactId> 
     <version>1.9.2</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-lang</groupId> 
     <artifactId>commons-lang</artifactId> 
     <version>2.6</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-logging</groupId> 
     <artifactId>commons-logging</artifactId> 
     <version>1.2</version> 
    </dependency> 

Я не в настоящее время пытаюсь генерировать аннотированные классы сущностей Hibernate, но POJOs от Пример PurchaseOdrer. Это то, что я в настоящее время сделать:

public void initializeModel(String name, InputStream src, String dir) throws IOException, URISyntaxException{ 
    dir = Paths.get(new URL(dir).toURI()).toString(); 
    File directory = new File(dir); 
    directory.mkdirs(); 

    SchemaCompiler sc = XJC.createSchemaCompiler(); 
    sc.setDefaultPackageName(this.getClass().getPackage().getName() + ".generated"); 

    InputSource is = new InputSource(src); 
    is.setSystemId(name); 

    sc.parseSchema(is); 
    S2JJAXBModel model = sc.bind(); 
    JCodeModel codeModel = model.generateCode(null, null); 

    CodeWriter cw = new FileCodeWriter(directory);   
    codeModel.build(cw); 
} 

ответ

4

Отказ от ответственности: Я автор Hyperjaxb3.

Проект размещен на GitHub:

Последняя версия 0.6.1 функциональна, работает как положено.

Однако я больше не разрабатываю его.

Will it work with the current version of hibernate?

Работы с версией 0.6.1 были протестированы с использованием спящего режима 4.1.7. HJ3 - всего лишь генератор кода, который создает стандартные JPA-аннотированные классы. Таким образом, довольно неплохо, что он будет работать с последними версиями Hibernate.

I just can't get the 0.6.1 jar from Maven. Seems like it was eliminated from maven repositories.

Действительно? Все еще там.

http://repo1.maven.org/maven2/org/jvnet/hyperjaxb3/hyperjaxb3-ejb-plugin/0.6.1/

An I don't understand if I need the "hyperjaxb3-hibernate-plugin" 0.1 from the year 2011.

Вы, безусловно, не так.

Or do you aware of any fork or an analog?

К сожалению, ничто не приближается.

+0

Спасибо! Несколько вопросов, извините. Будет ли он работать с текущей версией спящего режима? – fedd

+0

это интересно. Я просто не могу получить 0,6,1 баночку от Maven. Похоже, что он был исключен из хранилищ maven. Я не понимаю, нужен ли мне «hyperjaxb3-hibernate-plugin» 0.1 с 2011 года. Или вы знаете о какой-либо вилке или аналоговом? Благодаря! – fedd

+1

@fedd См. Обновление. – lexicore

Смежные вопросы