Tags: java

Программа для преобразования xml в json (версия 10.0).

Всем привет!

Вот собственно программа (swing/java8).

https://github.com/javadev/underscore-java/releases/download/test/xmltojson.jar

Для запуска:
— скачайте файл по ссылке
— запустите в командной строке java -jar xmltojson.jar

Хорошего вам дня!

hog
  • raydac

JEP-238+maven+preprocessor

JDK 9 это вещь которая начнет причинять разработчику боль поскольку совместимость уже не 100% с JDK 8, ну а на фоне планов Оракла с частыми релизами новых версий, вероятно скоро можно будет испытать боль которая лет 15 назад была известна разработчикам мобильных приложений под J2ME, что бы как то ыкрутиться был разработан JEP-238 поддержанный в JDK 9 который позволяет делать JAR файлы прозрачно  содержащие варианты для разных версий и JVM будет выбирать подходящие (скорее всего это всё приведет нас в конце концов в ад, но до этого надо еще дожить). Я вот подумал можно ли при таком прикрутить подход который юзал 15 лет назад для мобил, когда мне не хотелось дуплицировать код для поддержки как бы стандартных APi разных вендоров и сделал пример maven проекта который собирает мультиверсионный JAR в мавене с применением препроцессинга, я не призываю такое юзать, это чисто такой лайфак и может кому будет интересно взглянуть
https://github.com/raydac/jep-238-jcp-example
raven

Как сделать неблокирующую загрузку из базы?

На всякий случай опишу текущую ситуацию:
Есть web сервер, сделанный из Tomcat+Tapestry+Hibernate+Postgresql+еще всякое до кучи.

И вот приходит пользователь и говорит: отдай мне страничку.

А чтобы страничку нарисовать, надо слазить за данными в postgres и еще другие удаленные места.

Допустим, для страницы нужны данные d1, d2, d3 из внешних источников s1, s2, s3 (один из которых postgres)
Как это выглядит с точки зрения потоков:
Для обработки пользовательского запроса tomcat достает из пула рабочий поток и говорит ему: нарисуй html. Рабочий поток последовательными блокирующими запросами лезет за данными в s1, s2, s3 и рисует html.

Итого получается, что общая задержка на извлечение данных суммируется: t1+t2+t3.

Хочется запросить данные параллельно неблокирующими запросами. То есть сказать что то типа: источник, вот тебе запрос на эти данные. Но ты пожалуйста мой поток не блокируй и верни сразу же управление. А когда данные приедут, кинь мне какой-нибудь event или дерни мой callback.

Тогда бы я одновременно сделал запросы в s1, s2, s3 и спокойно ждал, пока они все не приедут. Задержка бы получилась не сумма, а max( t1, t2, t3)

С прочими внешними источниками так договориться можно, а вот можно ли так договориться с Hibernate?
Ну или если Hibernate так не умеет, может есть что-то аналогичное, что умеет?

Underscore.js библиотека для java.

Привет, Java Developers!

Недавно выпустил новую версию библиотеки underscore-java. Реализованы почти все функции оригинальной утилиты на javascript. Есть возможность расширять функционал. Примеры модулей math и string в этом же репозитории.

Буду рад пожеланиям и замечаниям.

UPD:
Недавно вышло обновление для библиотеки: версия 1.4

Исправлена ошибка при вызове метода slice(0, N)
Стали доступны генераторы для списков и карт внутри плагинов.
Появился новый модуль - underscore-lodash (реализованы почти все функции оригинальной библиотеки).

UPD 2:
Недавно была выпущена новая версия библиотеки: 1.5

Обновился сайт с документацией.
Добавлены методы toMap(), value(), chain(), eachRight() и forEachRight().
Появилась поддержка методов size() и isEmpty() для chain().
Исправлен тип для метода sort().
Добавлены методы groupBy(), indexBy(), countBy(), every() и some() для chain().
Добавлен параметр массив для методов diferrence(arrays) и union(arrays).
Улучшено вычисление для equals и hashCode в классе Optional.

UPD 3:
Недавно была выпущена новая версия библиотеки: 1.6

Добавлен метод chunk(array, size).
Появилась поддержка методов invoke(), pluck(), where(), findWhere(), max() и min() для chain().
Добавлена поддержка вычитывания данных из классов по имени объекта в методах where(), findWhere() и pluck().
Появилась поддержка методов toJson() и fromJson() в модулях lodash и string.

UPD 4:
Недавно была выпущена новая версия библиотеки: 1.7

Добавлена поддержка методов range() для chain().
Появилась поддержка метода sum(array, function) в модулях lodash и math.
Добавлена поддержка chain методов в модулях lodash, math и string.
Появилась поддержка форматирования для метода toJson() в модулях lodash и string.
Добавлена поддержка кириллических символов для метода words() в модулях lodash и string.

UPD 5:
Недавно была выпущена новая версия библиотеки: 1.8

Добавлена поддержка методов fromNullable(), or() и orNull() для класса Optional.
Появилась поддержка метода toXml() в модулях lodash и string.
Исправлен парсер юникода в модулях lodash и string.
Добавлена поддержка методов upperFirst() и lowerFirst() в модулях lodash и string.
Исправлены предупреждения компилятора.

UPD 6:
Недавно была выпущена новая версия библиотеки: 1.9

Добавлена поддержка метода uniquePassword() для генерации паролей.
Улучшен метод toJson() в модулях lodash и string.
Добавлена поддержка типов для методов chain().
Улучшены методы escape/unescape.
Добавлены примеры юнит тестов для java 8.

С уважением, Валентин

SWT: StackLayout и композиты различного размера

Имеется StackLayout, в который добавлено 3 композита разного размера. Проблема в том, что они автоматически выравниваются по размеру большего из них, а хотелось бы видеть их в оригинальном размере. Как это сделать? Можно ли заменить StackLayout на что-то другое с аналогичным функционалом? Пробовали менять на include/exclude - получили заметные тормоза при отрисовке.

Wi Fi в java.

Здравствуйте. Первый раз пользуюсь ЖЖ поэтому, если есть какие то требования и я их не выполняю извините. Я хочу разместить или поднять вопрос я начинающий java пользователь(пока не программист). Как организовать простую программу что бы с WIFI компьютера передать информацию (например текст), на другое устройство напрямую и через WiFi роутер. Какие библиотеки? Какие команды? Может примерный код. Спасибо!!!
каменяр, кирка

JSP: Табличное представление данных. По столбцам

Приветсвую. В наличии имеется у заказчика JSP-шка, где стат. данные по анализу поломок собраны. Надо добавить вот такую таблицу представление данных в JSP-шку (упрощенный вариант):



Reasons % Total Power Systems Endoscopic
Surface
reason-sA 30 50 50
reason-sB 70 20 80
Repair
reason-rA 23 100 0
reason-rB 77 0 10

В JSP-шке уже данные организованы в html table. В настоящее время имеется структура данных, отображенная на столбцы необходимой таблицы, т.е имееццо инфо, сгрупированноe по причине повреждения (reason-sA,  reason-sB,...) по каждому из типов повреждения (Surface, Repair,...) для Power Systems, для Endoscopic итд. Как представить данную структуру как таблицу желательно без script-летов и изменений/добавлений на стороне сервера в ява-коде?

Пока что только идея с изменениями на стороне сервера: а именно формирование объектов-строк
напр.:
reason-sA 30 50 50

с необходимой инфо...
UPD.0 Сделал так, вынес столбцы как бины. Итерировал foreach по индексу. макс. значение индекса - длина-1 Можно было бы элегантнее решить, если бы сервлет 3.0 да томкат 7.0 был бы. Но увы - 6.0 у заказчика. Апдейту не подлежит

28 августа 2014 г. Вебинар "Code Coverage"

28 августа 2014 г., в 15:00 (GMT+4, Moscow Time) состоится вебинар "Code Coverage".

Вебинар посвящен обзору теории сбора статистики по покрытию кода тестами с практическими примерами из жизни.

Этот вебинар будет интересен в основном разработчикам, тем, кто пишет не только код, но и тесты. И хочет узнать
как проанализировать качество покрытия кода тестами.

Также вебинар полезен тимлидам, менеджерам, тем, кто собирает статистику покрытия кода и репортует об этом заказчику.

Collapse )
Cat
  • che_day

Help me, please

Доброго дня. Помогите, пожалуйста. Задали на лабораторке задание: вывести на экран с помощью двоичных литералов изображение смеющегося лица.
Я написал следующее:
public static final short[] HappyFace = {
(short)0b0000011111100000,
(short)0b0000100000010000,
(short)0b0001000000001000,
(short)0b0010000000000100,
(short)0b0100000000000010,
(short)0b1000011001100001,
(short)0b1000011001100001,
(short)0b1000000000000001,
(short)0b1000000000000001,
(short)0b1001000000001001,
(short)0b1000100000010001,
(short)0b0100011111100010,
(short)0b0010000000000100,
(short)0b0001000000001000,
(short)0b0000100000010000,
(short)0b0000011111100000
};
for(int i = 0; i< HappyFace.length; i++) {
String s=Integer.toBinaryString(HappyFace[i]);
System.out.println(String.format("%64s, s.replaceAll("0", " ")));
}
Eclipse сказал, что я написал фигню, но я не могу понять, что именно нужно поправить, чтобы заработало. В инете похожего не нашёл, а сам сообразить не могу. Подскажите, как должен выглядеть код, чтобы оно заработало?