Обновление Grails GPARS

Я использую Grails 1.4.0.M1 и пытаюсь обновить версию gpars для использования с моим приложением.

Поэтому я добавил в BuildConfig.groovy:

dependencies{
    build 'org.codehaus.gpars:gpars:0.11'
}

Однако это приводит к следующему исключению, когда я использую run-app:

Exception in thread "Thread-4" java.lang.ClassCastException: groovyx.gpars.ThreadLocalPools cannot be cast to groovy.lang.GroovyObject
  at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:47)
  at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:231)
  at groovyx.gpars.Parallelizer.retrieveCurrentPool(Parallelizer.groovy:62)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

Я подозреваю, что это может быть связано с фреймворком Grails с использованием этой библиотеки в более старой версии, и версии несовместимы.

Любая идея, как я могу преодолеть эту проблему?

Спасибо.


person Philippe    schedule 14.08.2011    source источник


Ответы (1)


Верно, Grails использовала старую версию GPars (v0.9), но очень ограниченно. К сожалению, он был добавлен в загрузочный путь к классам таким образом, что его было бы нетривиально удалить или заменить, поэтому я переработал этот код, используя обычный код управления потоками, и удалил зависимость.

Если вы обновитесь до 2.0.0.M1, зависимость исчезнет, ​​и вы сможете использовать любую версию GPars, которая вам нравится.

person Burt Beckwith    schedule 14.08.2011
comment
Спасибо за ответ, я ждал интеграцию 2.0.0.M1 с STS. Вроде есть версия, которая сейчас есть, так что буду обновлять стек. - person Philippe; 15.08.2011
comment
Верно. 2.8M1 поддерживает 2.0 - person Burt Beckwith; 15.08.2011
comment
@ Burt, как насчет Grails 1.3.8? у него тоже есть эта зависимость внутри?! - person Arthur Neves; 15.08.2011
comment
Мы не планируем выпуск версии 1.3.8. - person Burt Beckwith; 15.08.2011