powered by simpleCommunicator - 2.0.19     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Underscore.js библиотека для java.
168 сообщений из 168, показаны все 7 страниц
Underscore.js библиотека для java.
    #38987412
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, Java Developers!

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

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

Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #38987425
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin Kolesnikov,

Чем-то лучше гуавы?
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #38987427
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Можно использовать похожий код в javascript и java. Есть возможность расширять библиотеку своими функциями.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #38987445
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin KolesnikovМожно использовать похожий код в javascript и java. Есть возможность расширять библиотеку своими функциями.
Это сложно назвать плюсом.
Как на счет Java 8?
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #38987477
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Для лучшей совместимости с java 8 основной класс был переименован с '_' в '$'.
Есть проддержка для guava при создании списков и карт внутри библиотеки.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #38989841
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

+ размер библиотеки вего 68 Кб против 2.2 Мб у гуавы :)
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #38998233
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно вышло обновление для библиотеки: версия 1.4

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

Буду рад новым пользователям!

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39020890
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.5

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

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39040115
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.6

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

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39040386
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin Kolesnikov,

[Оффтоп] просто интереса ради, зачем к репе на гитхабе подвешены несколько дублирующих друг друга сборщиков: travis, codeship, vexor, wercke, cloudbees? Какие из этого можно получить бонусы.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39040401
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vimba,

У каждого CI свои операционные системы и разные версии java. Можно проверить работоспособность юнит тестов для множества JVM.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39040614
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно предоставить такой example или use-case чтобы было - Wow!
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39040736
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,


http://stackoverflow.com/questions/109383/how-to-sort-a-mapkey-value-on-the-values-in-java?rq=1
Пример сортировки карты по значению ключей.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
$.chain((new LinkedHashMap<String, Double>() { {
            put("A", 99.5);
            put("B", 67.4);
            put("C", 67.4);
            put("D", 67.3);
        } }).entrySet()).sortBy(new Function1<Map.Entry<String, Double>, Double>() {
            public Double apply(Map.Entry<String, Double> item) {
                return item.getValue();
            }
        }).toMap().item().toString());

// =>  "{D=67.3, B=67.4, C=67.4, A=99.5}"
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39040887
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin Kolesnikov, хочется в этом коде стрелочку "->" заюзать.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39041199
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Можно добавить аннотацию @FunctionalInterface для интерфейсов функций и подготовить jar для java 8.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39065716
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.7

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

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39092289
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.8

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

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39116927
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.9

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

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39117297
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Пример со стрелочкой "->"

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
$.chain((new LinkedHashMap<String, Double>() { {
            put("A", 99.5);
            put("B", 67.4);
            put("C", 67.4);
            put("D", 67.3);
        } }).entrySet()).sortBy((item) -> item.getValue()).toMap().item().toString();

// =>  "{D=67.3, B=67.4, C=67.4, A=99.5}"
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39117349
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin Kolesnikovmayton,

Пример со стрелочкой "->"

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
$.chain((new LinkedHashMap<String, Double>() { {
            put("A", 99.5);
            put("B", 67.4);
            put("C", 67.4);
            put("D", 67.3);
        } }).entrySet()).sortBy((item) -> item.getValue()).toMap().item().toString();

// =>  "{D=67.3, B=67.4, C=67.4, A=99.5}"



ээээ.... занафига?

Код: java
1.
new TreeMap(otherMap);
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39117353
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри, попутал, но смысл тот же. Уже есть java 8 streams
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39117356
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39117400
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer,

Это был ответ на предыдущий комментарий: http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1162191&msg=18096672
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39141222
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.10

Добавлена поддержка метода toJsonJavaString () в модуле string.
Добавлена поддержка для метода fromXml () в модулях lodash и string.
Исправлена максимальная длина пароля в методе uniquePassword ().
Добавлены примеры для методов intersection, xor, snakeCase, chaining, fromXml и fromJson.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39141247
no56892
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока в мавен репозитории не появится - без шансов
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39141254
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
no56892,

Появилась в мавен репозитории:

http://search.maven.org/#search|ga|1|g:"com.github.javadev" AND a:"underscore"

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39141368
DoSOfRedRiver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин, а сериализация в JSON у вас есть? Планируется ли?
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39141374
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoSOfRedRiver,

Да, есть серилизация в json, модули lodash и string, метод toJson().
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39141406
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin Kolesnikov,

Ребят с наступившим...Вот читаю топик...и объясните "тем кто на бронепоезде" :-)
-Сфера применения это штуки?
Кто-то вверху написал про аналогию гуавы(но я тоже не знаю что это такое) поиск сильно не прояснил ситуацию.
(А то вдруг вещь полезная или в будущем применимая...а я не "воткнул тему")
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39141409
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
irbis_al,

Можно писать похожий код на java и javascript. Есть возможность расширять функционал библиотеки при помощи модулей.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39163380
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.11

Добавлена поддержка метода toMap() для списка.
Появилась поддержка метода compact() для chain().

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39165225
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно появилось приложение, которое использует библиотеку underscore-lodash.

В нём есть вызовы методов toJson, fromJson, toXml, join, filter, chain, clone, isString, isNumber.

Код приложения доступен по этой ссылке.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39182086
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.12

- Переименованы методы trimLeft, trimRight, padLeft, padRight в trimStart, trimEnd, padStart, padLeft для модулей string и lodash.
- Улучшены методы once(), after() and before(). Теперь они возвращают последнее сохранённое значение.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39206036
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.13

- Добавлена поддержка для методов setTimeout(), clearTimeout(), setInterval() и clearInterval().

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39228605
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.14

Добавлена поддержка методов first(list, predicate), firstOrNull(list), firstOrNull(list, predicate), last(list, predicate), lastOrNull(list) и lastOrNull(list, predicate).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39231271
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно появился проект , который использует библиотеку underscore-java.

В коде приложения есть вызов методов map, forEach, concat, isNull и isEmpty.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39247824
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.15

Исправлен max параметр для random метода.
Добавлена поддержка метода $.random(int max).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39265997
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.16

- Добавлена поддержка метода $.memoize(function).
- Появился метод $.get(object, path) в модуле lodash.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39283600
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.17

- Добавлена поддержка методов $.push(values), $.pop(), $.shift() и $.unshift(values) в модуле lodash.
- Появились методы $.copyOf(), $.copyOfRange(start, end), $.elementAt(index), $.elementAtOrElse(index, defaultValue) и $.elementAtOrNull(index).
- Изменился аргумент для вызова template.apply(map).

Пример создания и вызова template:
Код: java
1.
2.
3.
4.
Template<Map<String, Object>> template = $.template("hello: <%= name %>");
String result = template.apply(new LinkedHashMap<String, Object>() { {
    put("name", "moe"); } });
// => "hello: moe"



С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39301573
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.18

- Заменён вызов создания объектов guava collection на объекты java collection.
- Добавлена поддержка метода createPermutationWithRepetition в модуле math.
- Появился возвращаемый тип ScheduledFuture для методов $.defer(function) и $.delay(function, delayMilliseconds).
- Добавлены поддержка методов $.fetch(url), $.fetch(url, method, body) и $.fetch(url, method, body, headerFields) в модуле lodash.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39315081
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Underscore-java получил 100 звёзд на github! Ура.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39319060
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.19

- Улучшена производительность для методов $.intersection(list1, list2) и $.difference(list1, list2).
- Добавлены методы forEach(inerator) и forEachRight(inerator) для chain.
- Улучшен метод $.join(iterable, separator).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39338429
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.20

- Добавлено больше проверок для метода limit(size) в chain.
- Появилась поддержка для параметров connectTimeout и readTimeout в методе $.fetch(), модуль lodash.
- Добавлен метод xml() для FetchResponse.

Пример загрузки xml файла и получение поля code:
Код: java
1.
2.
$.FetchResponse result = $.fetch("http://www.dragonsofmugloar.com/weather/api/report/7614759");
(String) $.get((Map<String, Object>) result.xml(), "code"); // -> NMR


С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39358135
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.21

- Добавлены методы firstOrNull(list), firstOrNull(list, pred), lastOrNull(list) и lastOrNull(list, pred) для chain.
- Появились методы $.checkNotNull(), Optional.map(function1) и Optional.orThrow(function).
- Изменился newHashSet на newLinkedHashSet для методов uniq/distinct.
- Добавлены методы lastIndex(array), distinct(array) и distinctBy(array, func).
- Появилась поддержка для методов $.chain(int[]) и $.map(int[], function).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39378832
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.22

- Добавлен метод $.sortWith(list, comparator).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39396989
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.23

- Перемещены методы push(), pop(), shift() и unshift() в библиотеку underscore.
- Убрана поддержка для each и print в методе template().

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39414464
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ищу работу для java/javascript разработчика.

20199068

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39430075
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Популярное android приложение habitica использует undercoder-java.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39431338
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.24

- Улучшена проверка входных данных для метода fromXml() в модулях lodash и string.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39446832
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.25

- Добавлен метод $.iterate(seed, unaryOperator).
- Добавлен метод $.chain(iterable, size).
- Исправлен метод Chain.uniq(Function1<T, F>).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39463823
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.26

- Добавлена поддержка метода format(template, values)

Пример вызова:
Код: java
1.
2.
        String result = $.format("hello: {}, {}", "moe", 123);
        // "hello: moe, 123


С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39480788
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.27

- Добавлены методы $.filterIndexed(), $.rejectIndexed(), chain filterIndexed и chain rejectIndexed.
- Появились объектные методы map(func), filter и reject.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39545715
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.28

- Добавлен метод $.filterFalse(list, pred).
- Появилась поддержка для LRUCache в модуле math.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39578529
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.29

- Добавлены классы File, Directory и Entry для модуля math.
- Появился метод $.findByName(entry, name) в модуле math.
- Добавлена поддержка для root в методе $.fromXml() для модулей string и lodash.
- Появились методы $.get(list, index), $.get(index), $.set(list, index, value) и $.set(index, value).

Пример конвертирования xml в json:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
import com.github.underscore.lodash.$;
import org.junit.Test;
import static org.junit.Assert.assertEquals;

public class StringTest {

    @Test
    public void toJsonFromXml() {
        final String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<root>\n"
            + "  <FirstItem>1</FirstItem>\n  <SecondItem>2</SecondItem>\n</root>";
        assertEquals("{\n"
            + "  \"root\": {\n"
            + "    \"FirstItem\": \"1\",\n"
            + "    \"SecondItem\": \"2\"\n"
            + "  }\n"
            + "}",
            $.toJson((Map<String, Object>) $.fromXml(xml)));
    }
}



С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39595223
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.30

- Добавлен метод check() для Template.

Пример проверки шаблона:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
import java.util.*;
import com.github.underscore.$;
import com.github.underscore.Template;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

public class CheckTest {

    @Test
    public void check() {
        Template<Map<String, Object>> compiled = $.template("hello: <%= name %>");
        assertTrue(compiled.check(new LinkedHashMap<String, Object>() { {
            put("name", "moe"); } }).isEmpty());
        assertEquals("name2", compiled.check(new LinkedHashMap<String, Object>() { {
            put("name2", "moe"); } }).get(0));
    }
}



С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39610309
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки для java 8: 1.0

- Функциональные классы были заменены их аналогами для java 8.
- Модуль lodash интегрирован в основную библиотеку.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39623837
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки для java: 1.31

- Переименованы классы Block -> Consumer и Function -> Supplier.
- Переименован класс Function1 -> Function, удалены классы Function2 и Function4.
- Перемещён плагин lodash в основную библиотеку.
- Переименован класс FunctionAccum -> BiFunction.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39638627
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки для java: 1.32

- Добавлена поддержка для методов $mapIndexed() и $.forEachIndexed().
- Появился метод $.createLRUCache(capacity) в модуле lodash.
- Добавлен метод $.fromXmlMakeArrays(xml) в модуль lodash.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39638672
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczValentin KolesnikovМожно использовать похожий код в javascript и java. Есть возможность расширять библиотеку своими функциями.
Это сложно назвать плюсом.
Как на счет Java 8?

Специальная версия для java 8.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39653697
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки для java: 1.33

- Добавлена поддержка для методов $reduce(iterable, function) и $.reduceRigth(iterable, function).
- Появился метод $.groupBy(iterable, function, binaryOperator).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39662527
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin KolesnikovПривет, Java Developers!

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

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

Валентин

Ровно 3 года назад был первый анонс библиотеки версии 1.3.

За это время вышло 30 версий . Появилась специальная версия библиотеки для java 8.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39667947
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.34

- Переименован основной класс $ в U.
- Добавлена поддержка jdk 9 и jdk 10 для travis-ci.

Пример вызова:

Код: java
1.
2.
3.
        
  String result = U.format("hello: {}, {}", "moe", 123);
  // "hello: moe, 123


С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39682888
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.35

- Модуль math был перемещён в основную библиотеку.

Пример вызова:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
        List<List<String>> result = com.github.underscore.math.U.createPermutationWithRepetition(asList("apple", "orange"), 3);
        assertEquals("[[apple, apple, apple],"
                   + " [orange, apple, apple],"
                   + " [apple, orange, apple],"
                   + " [orange, orange, apple],"
                   + " [apple, apple, orange],"
                   + " [orange, apple, orange],"
                   + " [apple, orange, orange],"
                   + " [orange, orange, orange]]", result.toString());



С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39689882
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
9990 просмотров топика. Скоро будет 10000!

Сейчас тестируется новая версия конвертора xml в json.

21643425

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39696545
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.36

- Перемещены модули math и string в пакет lodash.
- Добавлена поддержка атрибутов для U.fromXml(string) и U.toXml(map) в пакете lodash.
- Улучшен метод escape в U.toXml(object).
- Добавлены методы U.xmlToJson(string) и U.jsonToXml(string) для пакета lodash.

Пример вызова:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    @Test
    public void xmlToJson() {
        assertEquals("{\n  \"a\": {\n    \"b\": [\n      {\n      },\n      {\n      }\n    ]\n  }\n}",
            U.xmlToJson("<a>\n  <b>\n  </b>\n  <b>\n  </b>\n</a>"));
    }

    @Test
    public void jsonToXml() {
        assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<a>\n</a>", U.jsonToXml("{\n  \"a\": {\n  }\n}"));
    }



С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39710705
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.37

- Добавлена поддержка отступов для методов U.xmlToJson(string) и U.jsonToXml(string).
- Улучшена поддержка блоков текста и комментариев для метода U.fromXml(string).
- Добавлены методы U.formatXml(string) и U.formatJson(string).
- Улучшен метод U.range(start, stop), обновлена underscore.js до версии 1.91.
- Добавлена поддержка sonarcloud.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39710706
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непрерывная сборка в travis-ci.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39726234
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.38

- Добавлена поддержка самозакрывающихся xml элементов.
- Улучшена поддержка вложенных массивов.
- Добавлен метод Optional.isEmpty().
- Улучшена поддержка xml с dtd.
- Улучшен метод U.every(list, pred).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39741386
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.39

- Улучшено форматирование xml без заголовка.
- Улучшена генерация Euro в U.toXml(map).
- Улучшена генерация standalone для xml заголовка.
- Добавлен метод Xml.fromXmlWithoutNamespaces(string).
- Добавлены методы U.fromXmlWithoutAttributes(string) и U.fromXmlWithoutNamespacesAndAttributes(string).
- Добавлена поддержка processing instruction для xml элементов.

Проект получил 200 звёзд на github.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39755350
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.40

- Улучшена поддержка processing instruction node.
- Улучшена поддержка external dtd processing в U.fromXml(string).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39755598
no56892
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор Переименован основной класс $ в U.
Просто божественно ощутить это в библиотеках))
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39755599
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin Kolesnikov, а сколько времени в день вы тратите на поддержку этой библиотеки?
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39755725
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonValentin Kolesnikov, а сколько времени в день вы тратите на поддержку этой библиотеки?

Для выпуска новой версии нужен час примерно. Для новых функций 4-8 часовых. Обычно создаю pull request в github.

👍🎉🍭🎄🍺🚂🌲💯😎

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39756069
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin KolesnikovmaytonValentin Kolesnikov, а сколько времени в день вы тратите на поддержку этой библиотеки?

Для выпуска новой версии нужен час примерно. Для новых функций 4-8 часовых. Обычно создаю pull request в github.

👍🎉🍭🎄🍺🚂🌲💯😎

С уважением, Валентин
Я посмотрел на количество бейджиков которые вы заработали (и видимо потратили на это усилия)
и решил что вы тратите слишком уж много времени на внешний вид этой библиотеки. В противоположность
для меня ценность любого продукта заключается не в этом а в количестве внедрений или в количестве
проектов где это было использовано.

В скольки проектах эта библиотека включена? Разумеется я не имею в виду ваши личные проекты.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39756105
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonValentin Kolesnikovпропущено...


Для выпуска новой версии нужен час примерно. Для новых функций 4-8 часовых. Обычно создаю pull request в github.

👍🎉🍭🎄🍺🚂🌲💯😎

С уважением, Валентин
Я посмотрел на количество бейджиков которые вы заработали (и видимо потратили на это усилия)
и решил что вы тратите слишком уж много времени на внешний вид этой библиотеки. В противоположность
для меня ценность любого продукта заключается не в этом а в количестве внедрений или в количестве
проектов где это было использовано.

В скольки проектах эта библиотека включена? Разумеется я не имею в виду ваши личные проекты.

Примерно до 100 проектов используют библиотеку сейчас.

Хотелось бы больше, но пока так.

Хорошего Вам дня!
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39756129
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну дах бох.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39767863
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущена новая версия библиотеки: 1.41

- Добавоен метод U.count(iterable, predicate).
- Исправлен U.fromXmlWithoutNamespaces(string).
- Добавлена проверка для #item в U.get(map).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39780774
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно была выпущены новые версия библиотеки: 1.42 , 1.12

- Добавоен метод U.shortestPathAllKeys(string[]).
- Исправлены предупреждения PMD.

Пример вызова для нового метода:

Код: java
1.
2.
3.
4.
5.
6.
        List<U.Status> statuses = U.shortestPathAllKeys(new String[] {"@.a.#", "###.#", "b.A.B"});
        assertEquals(8, statuses.size());
        assertEquals(0, statuses.get(0).getX());
        assertEquals(1, statuses.get(0).getY());
        assertEquals(2, statuses.get(7).getX());
        assertEquals(0, statuses.get(7).getY());



С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39795290
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.43 , 1.13 , 1.0

- Добавлен метод U.fromXml(xml) для форматирования.
- Появился метод U.defaultTo(value, defaultValue).
- Добавлен метод U.isNotEmpty(interable).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39803622
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Появились новые разработчики для библиотеки. В новой версии будет много функций.

Хорошего Вам дня!
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39808669
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.44 , 1.14 , 1.1

- Added sum method for array.
- Added U.filter() for iterable.
- Added support for U.nonNull(object).
- Added new chunk() and chunkFilter().
- Added methods U.singleOrNull(iterable) and U.singleOrNull(iterable, predicate).
- Added method U.cycle(iterable, times).
- Added method U.toCardinalityMap(iterable).
- Added U.interpose(iterable, element) and U.interposeByList(iterable, elements) methods.
- Added new methods containsAtLeast(iterable, value, count) and containsAtMost(iterable, value, count).
- Added U.splitAt(iterable, position) method.
- Added U.repeat(element, times) method.
- Added U.binarySearch(iterable, value) method.
- Added U.first(iterable, pred, n) method and fix other U.first() methods.
- Improved U.fill(list, item), add U.fill(array, item) methods.
- Added U.average(iterable) and U.average(iterable, function) methods.
- Added U.explode(string) and U.implode(strings) methods.
- Added U.replace(iterable, predicate, value) and U.replaceIndexed() methods.
- Improved U.concat(iterables) method.
- Added U.takeSkipping(iterable, stepSize) method.
- Added U.subtract(values) method.
- Changed return value for metods U.range(stop), U.range(start, stop) and U.range(start, stop, step).
- Improved U.functions(object) method.
- Removed U.shortestPathAllKeys(grid).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39808804
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin KolesnikovДля лучшей совместимости с java 8 основной класс был переименован с '_' в '$'.
Зачем до такой степени лениться? В смысл имена классов должны быть говорящие, и если уж так хочется сокращать, то можно придумать что-то короткое, типа Main или Root или ещё как-то по смыслу. Написать 4 буквы вместо этой долбаной закорючки, конечно, чуть подольше, но на фоне общих затрат на написание, включая понимание ранее написанного, эти лишние буквы вообще ничего не стоят, а понимание добавляют.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39808854
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555,

Сейчас класс называется U.

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

🚂🎁🍦💯🍭☕👍🍺🎉🍦🎂😎
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39821082
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.45 , 1.15 , 1.2

- Fixed long number parser for json and xml.
- Improved createDocument(string).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39832176
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.46 , 1.16 , 1.3

- Added support for empty processing instruction.
- Added !DOCTYPE support for U.formXml(xml).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39843780
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.47 , 1.17 , 1.4

- Fixed unexpected return null in Xml.getRootName(localMap).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39871982
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.48 , 1.18 , 1.5

- Added support for Optional.filter(predicate).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39884533
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.49 , 1.19 , 1.6

- Added method U.removeMinusesAndConvertNumbers(map).
- Added mode support for the U.xmlToJson(xml).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39896997
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.50 , 1.20 , 1.7

- Added method U.set(map, path, value).
- Added method U.replaceSelfClosingWithNull(map).
- Improved method U.removeMinusesAndConvertNumbers(map).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39910400
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.51 , 1.21 , 1.8

- Added method U.fromXmlMap(string).
- Added method U.fromJsonMap(string).
- Added method U.isJsonNumber(string).
- Fixed U.capitalize() and U.uncapitalize() methods.
- Added support for type in U.fromJson(string) and U.fromXml(string) methods.
- Added method U.remove(map, key).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39921260
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.52 , 1.22 , 1.9

- Changed parameter for U.times(count, supplier).
- Fixed U.camelCase(string).
- Added method U.countBy(iterator).
- Fixed runtime error for U.format() on android jvm.
- Added U.objectBuilder().

Пример конструирования карты при помощи билдера:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
        Map<String, Object> value = U.objectBuilder()
            .add("firstName", "John")
            .add("lastName", "Smith")
            .add("age", 25)
            .add("address", U.objectBuilder()
                .add("streetAddress", "21 2nd Street")
                .add("city", "New York")
                .add("state", "NY")
                .add("postalCode", "10021"))
            .add("phoneNumber", U.objectBuilder()
                .add(U.objectBuilder()
                    .add("type", "home")
                    .add("number", "212 555-1234"))
                .add(U.objectBuilder()
                    .add("type", "fax")
                    .add("number", "646 555-4567")))
            .build();
        // {firstName=John, lastName=Smith, age=25, address={streetAddress=21 2nd Street,
        // city=New York, state=NY, postalCode=10021}, phoneNumber={0={type=home, number=212 555-1234},
        // 1={type=fax, number=646 555-4567}}}



С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39921282
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin Kolesnikov, мне кажется билдер имеет смысл там где у вас есть какой-то type-checking.
Или сам объект строительства - сложный и имеющий различные внутренние ограничения структуры.

А эта колбаса из кода не имеет явных преимуществ перед обычой JSON формой представления объекта.
Тоесть если у меня был-бы выбор как собрать объект - я-бы взял такой.

Код: javascript
1.
2.
3.
4.
Map<String, Object> value = fromJson("""
        {firstName=John, lastName=Smith, age=25, address={streetAddress=21 2nd Street,
         city=New York, state=NY, postalCode=10021}, phoneNumber={0={type=home, number=212 555-1234},
         1={type=fax, number=646 555-4567}}}""");



И любой другой программист в 80% случаев выбирал бы просто путь сокращения количества кода.
В этом есть что-то от лени и от эволюции одновременно.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39921453
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

У билдера есть статическое методы fromXml(xml) и fromJson(json).

Хорошего вам дня!
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39921469
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Тоесть если у меня был-бы выбор как собрать объект - я-бы взял такой.

кто что любит.
Я бы не
https://docs.oracle.com/javaee/7/api/javax/json/JsonObjectBuilder.html
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39921509
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да вы - мозохисты, ребята.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39921606
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Да вы - мозохисты, ребята.


Я написал что метод fromJson уже добавлен и им можно пользоваться.

Хорошего вам дня!
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39921622
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Это стандарт). Про стандарта не попрешь))
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39921636
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стандарт - писать длинную колбасу?

И все для того чтобы завести карточку Джона Смита?

Или fromJson.

Или ваш фабричный метод.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39921672
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Что то у тебя 4 ошибки в одном посту.
- да стандарт. Ссылка на EE7 выше. И либа javax идет из коробки в аппсервере.

mayton
И все для того чтобы завести карточку Джона Смита?
типобезопасно карл!
Остальное типоопасно.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39921940
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У билдера есть методы toXml() и toJson().

Хорошего вам дня!
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39921944
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,
Что то у тебя 4 ошибки в одном посту.
- да стандарт. Ссылка на EE7 выше. И либа javax идет из коробки в аппсервере.

mayton
И все для того чтобы завести карточку Джона Смита?
типобезопасно карл!
Остальное типоопасно.

Я эти разговоры слышал в 2013 году когда в SpringConfig втаскивали JavaDSL.
Были такие основания что дескыть XML не само-валидируется и синтаксического хайлайта
недостаточно. Давайте JavaDSL оно безопаснее.

И похоронили бл..ь целое фундаментальное направление. И если раньше можно было зайти
в приложение в текстовом редакторе и переконфигурировать его. То теперь нет. Конфигурации
это часть кода и нужно запускать полный цикл пересборки проекта просто потому что кто-то
захардкодил размер пула коннектов.

И вы не поверите как сильно мне доказывали что это the right way!

Но извините я отвлёкся.

Мне кажется что вы, Валентин давно довели свою либу до совершенства. На логистической кривой
самообучения вы находитесь наверное в самом верхнем правом углу. Где еще сидение 2000 лет
привет к увеличению результата на +000.1%. Но скорость самого движения упала. Такой
вот метафизический парадокс.

Может вам пора остановиться и открыть новое направление?

Нет ли у ва других библиотек? Просто мне кажется что вы переросли этот проект.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39922024
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
И похоронили бл..ь целое фундаментальное направление
))
Понимаю.
Но тут проще. Я сам свободу люблю.
Поэтому, фабрика паттерн тут не подходит, так как на выходе один класс JsonObject. А у фабрики несколько классов на выходе.
Поэтому получается пусть будут оба метода.
Типо:
Код: java
1.
2.
3.
4.
JsonObject o = Построитель.Парсим(" {\" param\"=\" value\", \" param2\"=\" val2\",...
 //Либо типобезопасно
.add(param, val) 
.add(...
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39922033
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Билдер визитных карточек.

Код: java
1.
2.
3.
4.
buildPerson("John", "Smith", 20)
       .withAddressLine(....)
       .withPhones(...)
       .toMapOfObjects();
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39922093
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton
И похоронили бл..ь целое фундаментальное направление
))
Понимаю.
Но тут проще. Я сам свободу люблю.
Поэтому, фабрика паттерн тут не подходит, так как на выходе один класс JsonObject. А у фабрики несколько классов на выходе.
Поэтому получается пусть будут оба метода.
Типо:
Код: java
1.
2.
3.
4.
JsonObject o = Построитель.Парсим(" {\" param\"=\" value\", \" param2\"=\" val2\",...
 //Либо типобезопасно
.add(param, val) 
.add(...



Оба метода и есть для билдера. Можно создать билдер при помощи статического метода fromJson() или пустой объект. Ещё есть set(path, value) метод для замены части объектов.

Хорошего вам дня!
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39922108
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Я эти разговоры слышал в 2013 году когда в SpringConfig втаскивали JavaDSL.
Были такие основания что дескыть XML не само-валидируется и синтаксического хайлайта
недостаточно. Давайте JavaDSL оно безопаснее.

И похоронили бл..ь целое фундаментальное направление. И если раньше можно было зайти
в приложение в текстовом редакторе и переконфигурировать его. То теперь нет. Конфигурации
это часть кода и нужно запускать полный цикл пересборки проекта просто потому что кто-то
захардкодил размер пула коннектов.

И вы не поверите как сильно мне доказывали что это the right way!


На мой взгляд вы заблуждаетесь: простыня XML - это все что угодно, но только не конфигурация, "bottom line" здесь на мой взгляд такой: если изменения нужно прогонять по SDLC, значит это не конфигурация, а то что у вас где-то в конкретном приложении невозможно было указать эксплуатационные параметры конкретной среды - это никак не проблема спринга, а недосмотр со стороны тимлида и службы сопровождения, в спринге же наоборот от перехода на java-конфигурацию стало только лучше (в буте именно с "конфигурацией" все еще лучше)
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39922109
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я эти разговоры слышал в 2013 году когда в SpringConfig втаскивали JavaDSL.
Были такие основания что дескыть XML не само-валидируется и синтаксического хайлайта
недостаточно. Давайте JavaDSL оно безопаснее.

И похоронили бл..ь целое фундаментальное направление. И если раньше можно было зайти
в приложение в текстовом редакторе и переконфигурировать его. То теперь нет. Конфигурации
это часть кода и нужно запускать полный цикл пересборки проекта просто потому что кто-то
захардкодил размер пула коннектов.

И вы не поверите как сильно мне доказывали что это the right way!


Ну никто не мешает использовать XML и сейчас.

ИМХО конфигурация на Java это правильно.
Т.к. контекст приложения находиться в рамках ЯП.

А для конфигурации есть properties, которые достаточно не гибкие (т.е. просты как валенок - key/value).

И да с приходом микросервисов и систем CI/CD, изменение конфигурации в Java Config не страшнее перезапуска приложения на сервере приложений.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39922111
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
И да с приходом микросервисов и систем CI/CD, изменение конфигурации в Java Config не страшнее перезапуска приложения на сервере приложений.
да любые благие намерения можно испортить.
Появились серверы которые выдают конфигурацию в динамике))
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39922157
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mad_nazgul
И да с приходом микросервисов и систем CI/CD, изменение конфигурации в Java Config не страшнее перезапуска приложения на сервере приложений.
да любые благие намерения можно испортить.
Появились серверы которые выдают конфигурацию в динамике))


Вы говорите, как будто это плохо! :-)
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39922162
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
В архитектуре есть короткое слово - оверхед.
Не слышали?
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39922166
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
Пример оверхеда от вас
авторТут вам не монолит, где можно точно сказать, что нужно делать.
Иными словами, вы сказали что монолит это хорошо.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39922176
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mad_nazgul,
Пример оверхеда от вас
авторТут вам не монолит, где можно точно сказать, что нужно делать.

Иными словами, вы сказали что монолит это хорошо.

Не бывает чего-то однозначно хорошего и однозначно плохого.

Монолит это хорошо когда надо что-то быстро сваять, не заботясь, как это будет развиваться и поддерживаться.
Пишем двух/трехзвенку. Пишется быстро и легко.
Только есть небольшая проблема, что при развитии, каждое последующее изменение дороже предыдущего.
Ну и масштабирование вертикальное. Есть проблемы при нагрузке - купи более мощный сервак.

А так - да. Монолит идеален. :-)
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39922179
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
Не бывает чего-то однозначно хорошего и однозначно плохого.
ну вот ты и ответил что плохого в сервере конфигураций и в java конфиге.
Оверхед бывает.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39922196
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mad_nazgul,
В архитектуре есть короткое слово - оверхед.
Не слышали?

Я-бы просто добавил такую метрику как "цена внесения" изменений.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39922253
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код с классом билдер.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
    public static class Builder {
        private final Map<String, Object> data;
        public Builder() {
            data = newLinkedHashMap();
        }

        public Builder add(final String key, final Object value) {
            data.put(key, value);
            return this;
        }

        public Builder add(final Object value) {
            data.put(String.valueOf(data.size()), value);
            return this;
        }

        public Builder set(final String path, final Object value) {
            U.set(data, path, value);
            return this;
        }

        public Builder add(final Builder builder) {
            data.put(String.valueOf(data.size()), builder.build());
            return this;
        }

        @SuppressWarnings("unchecked")
        public Map<String, Object> build() {
            return (Map<String, Object>) ((LinkedHashMap) data).clone();
        }

        public String toXml() {
            return Xml.toXml(data);
        }

        public static Builder fromXml(final String xml) {
            final Builder builder = new Builder();
            builder.data.putAll(fromXmlMap(xml));
            return builder;
        }

        public String toJson() {
            return Xml.toXml(data);
        }

        public static Builder fromJson(final String json) {
            final Builder builder = new Builder();
            builder.data.putAll(fromJsonMap(json));
            return builder;
        }

        @Override
        public String toString() {
            return data.toString();
        }
    }



Хорошего вам дня!
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39922260
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin Kolesnikov,
Не понял. Он же был.
Ты комментируй изменения.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39922262
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Valentin Kolesnikov,
Не понял. Он же был.
Ты комментируй изменения.


Да, это текущий билдер класс. Нашёл ошибку в toJson() методе, исправил.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39922267
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mad_nazgul
Не бывает чего-то однозначно хорошего и однозначно плохого.
ну вот ты и ответил что плохого в сервере конфигураций и в java конфиге.
Оверхед бывает.


Так понятно, что для "прикладушки на коленке" поднимать отдельно сервер конфигурации, как-то лень.
Но если у вас есть несколько микрсервисов, которые должны работать в разных окружениях (prod, stage, test).
То вот как-то становиться с точностью до наоборот.
Иметь централизованное хранилище конфигурации становиться наоборот удобно.

И что характерно, в spring boot переход от локальных конфигурация к серверу конфигураций делается парой аннотаций и одной зависимостью.
Т.е. это можно сделать в удобное время. Когда возникнет потребность.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39922283
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
Но если у вас есть несколько микрсервисов, которые должны работать в разных окружениях (prod, stage, test).
кончай витать в облаках.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39922287
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
Один пост тут был мембера за два года. Который даже не знал что у него должен этот сервер конфигов быть.
Он ini файл вбивал кувалдой, а оно не лезло.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39922327
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mad_nazgul
Но если у вас есть несколько микрсервисов, которые должны работать в разных окружениях (prod, stage, test).
кончай витать в облаках.


Дык это - работает. :-)
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39922331
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mad_nazgul,
Один пост тут был мембера за два года. Который даже не знал что у него должен этот сервер конфигов быть.
Он ini файл вбивал кувалдой, а оно не лезло.


Зачем?!

В spring boot либо properties, либо yaml
И да, чтобы ini туда вкорячить, надо поизвращаться.
Это можно сделать, но не так удобно.

А так для прикладника откуда берется конфигурация.

Чтобы бралась с сервера конфигурации нужно прописать одну аннотацию, добавит зависимость, и в конфигурации указать адрес сервиса конфигурации.
И еще в скрипте запуска нужно указать "профиль" - prod, stage, test.

Сами конфигурации хранятся на серваке git в соответствующих ветках.

Т.е. работа с конфигурацией ничем не отличается от работы с кодом.

По хорошему желательно прописать в переменных окружения какой профиль на данном серваке используется.
Но мне было лень, я писал в скрипте запуска.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39922336
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
Зачем?!
затем что мы счас с тобой обсуждаем 0,01 процент проектов.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39932619
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.53 , 1.23 , 1.10

- Fixed U.Builder.toJson() method.
- Fixed null array json converter.
- Improve format json and xml with numbers ending with 0.
- Added U.arrayBuilder().

Пример создания объекта с U.arrayBuilder():

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
        Map<String, Object> value = U.objectBuilder()
            .add("firstName", "John")
            .add("lastName", "Smith")
            .add("age", 25)
            .add("address", U.arrayBuilder()
                .add(U.objectBuilder()
                    .add("streetAddress", "21 2nd Street")
                    .add("city", "New York")
                    .add("state", "NY")
                    .add("postalCode", "10021")))
            .add("phoneNumber", U.arrayBuilder()
                .add(U.objectBuilder()
                    .add("type", "home")
                    .add("number", "212 555-1234"))
                .add(U.objectBuilder()
                    .add("type", "fax")
                    .add("number", "646 555-4567")))
            .build();
        // {firstName=John, lastName=Smith, age=25, address=[{streetAddress=21 2nd Street,
        // city=New York, state=NY, postalCode=10021}], phoneNumber=[{type=home, number=212 555-1234},
        // {type=fax, number=646 555-4567}]}



С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39942963
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.54 , 1.24 , 1.11

- Added U.containsWith(iterable, element).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39965519
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.55 , 1.25 , 1.12

- Added Trie class.
- Fixed single cdata section generation in toXml().
- Added U.rename(map, oldKey, newKey).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39965590
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin Kolesnikov
Привет, Java Developers!

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

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

Валентин


Скоро будет 5 лет с момента анонса библиотеки!
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39968979
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть еще такая идея. Не знаю даже к чему. К snakeYaml или к конвертерам в Yaml.
Или просто к кастомной библиотеке.

Есть инфа которая публична. Типа

Код: python
1.
2.
3.
thread-pool :
  idle : 10
  max : 100



И есть sensitive настройки которые могут иметь какие-то бизнес-идентификаторы, ip-шники облачных
ендпоинтов, порты, протоколы, и пароли и ключи.

Код: python
1.
2.
3.
4.
5.
6.
jdbc:
  dc1-main-billing :
    jdbc-driver : "org.postgresql.Driver"
    jdbc-url : "jdbc:postgresql://ec2-public-ipv4-address.compute-1.amazonaws.com:5432/main-billing-node-01"
    jdbc-login : "main-bill"
    jdbc-pwd : "p123456789"



Хотелось бы их заменить на
Код: python
1.
2.
3.
4.
5.
jdbc:
  dc1-main-billing :
    jdbc-driver : "org.postgresql.Driver"
    jdbc-url : "${ENV_JDBC_URL}"
    ...



По сут мне нужен некий фасад или надстройка над Yaml моделью чтоб этот реплейсмент сделать по заказу.
Тоесть когда мне нужно.

По сути аналог спрингового
Код: java
1.
systemProperties['env']



Только без спринга.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39969062
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Обычная задача программистам. Решается за неделю или быстрее.

Добавлю метод U.setValue(map, key, value).

Хорошего вам вечера!
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39969068
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще наблюдение.

Мне иногда выгодно создавать properties с приоритетом. Например.

1-й приоритет - опции System.props
2й приоритет - опции OS env.

Это удобно когда ты работаешь с 2 environment ты держишь 2 bash-консоли и запусаешь одно
и то-же приложение просто в разных контекстах.

В моём кустарном проектике это выглядит примерно так.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    private String lookupSensitiveProperty(String propertyName) {
        Map<String, Object> hikariConfigMap = (Map<String, Object>) config.getRoot().get("hikariConfig");
        if (hikariConfigMap.containsKey(propertyName)) {
            return (String) hikariConfigMap.get(propertyName);
        } else if (System.getProperties().containsKey(propertyName)) {
            return System.getProperty(propertyName);
        } else if (System.getenv().containsKey(propertyName)) {
            return System.getenv().get(propertyName);
        } else {
            throw new HtmlParserException("Unable to found property " + propertyName);
        }
    }



Тоесть если логин-пароль для Hikari JDBC пула не был найден в Yaml конфиге - то мы делаем lookup
в Sys.props, и потом уже в ОС env.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39969069
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin Kolesnikov
mayton,

Обычная задача программистам. Решается за неделю или быстрее.

Добавлю метод U.setValue(map, key, value).

Хорошего вам вечера!

Спасибо.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39969085
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin Kolesnikov
mayton,

Обычная задача программистам. Решается за неделю или быстрее.

Добавлю метод U.setValue(map, key, value).

Хорошего вам вечера!


Добавил.

Хорошего вам вечера!
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39969521
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
все это конечно же как отдельный репозиторий сдеалано и редактируется с помощью гита

Редактируется с помощью гита? Это как?
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39969743
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
Zzz79
все это конечно же как отдельный репозиторий сдеалано и редактируется с помощью гита

Редактируется с помощью гита? Это как?


Редактируется в редакторе, а хранится в git.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39969744
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
Zzz79
все это конечно же как отдельный репозиторий сдеалано и редактируется с помощью гита

Редактируется с помощью гита? Это как?

Он имеет в виду что шаблон конфигурации лежит в сорцах. А его кастомизации, sensitive info, и производные
конфигурации - девопсы сами дописывают вручную. Но если надо централизовано что-то поменять то git
это снова лучший golden source.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39969758
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стас?
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39970710
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin Kolesnikov
Привет, Java Developers!

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

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

Валентин


Сегодня 5 лет с момента анонса библиотеки.

За это время выпущено более 50 версий, добавлено чтение и генерация xml и json файлов.

Число звёзд на github - 283
Pull реквестов - 201
Issues - 44

Спасибо за поддержку проекта!

Хорошего вам дня!
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39975761
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.56 , 1.26 , 1.13

- Added U.changeXmlEncoding(xml, encoding).
- Introduced U.setValue(map, key, newValue).
- Added U.update(map1, map2).
- Introduced methods U.gcd(value1, value2) and U.findGcd(value1, ... valuen).
- Improved U.throttle().

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39985738
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.57 , 1.27 , 1.14

- Improved U.update(map1, map2).
- Updated dependent libraries.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39990180
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Число звёзд на github - 300
Pull реквестов - 217
Issues - 45

Спасибо за поддержку проекта!

Хорошего вам дня!
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #39997112
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.58 , 1.28 , 1.15

- Fixed U.format(pattern, values) with a backslash.
- Added U.minimumDays(rows, columns, grid) method.
- Added U.topNCompetitors(numCompetitors, topNCompetitors, competitors, numReviews, reviews) method.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40004412
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.59 , 1.29 , 1.16

- Added U.xmlToJson("<a/>", U.Mode.REPLACE_SELF_CLOSING_WITH_EMPTY).
- Introduced U.of(1, 2, 3) // or java.util.Arrays.asList(1, 2, 3) or new Integer[] {1, 2, 3} and toList().
- Fixed initialization error.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40004978
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Куда делся

Код: java
1.
U.objectBuilder()



?
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40005152
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40016292
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.60, 1.30, 1.17

- Added method U.objectBuilder().add("key", U.objectBuilder()).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40016494
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79

для этого есть спринг профили) создай их хоть миллион и запускай ту конфигурацию,которая тебе нужна в данный момент
если не знаешь как я могу помочь - там ничего сложного

В спринге для этого - https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/core/env/PropertySource.html
В рамках environment они как раз и образуют логику "используй первое найденное значение"
Например порядок поиска значений свойств ( https://docs.spring.io/spring-boot/docs/2.1.9.RELEASE/reference/html/boot-features-external-config.html) как раз и задается с помощью порядка следования реализаций PropertySource
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40016496
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
mayton
Еще наблюдение.

Мне иногда выгодно создавать properties с приоритетом. Например.

1-й приоритет - опции System.props
2й приоритет - опции OS env.

Это удобно когда ты работаешь с 2 environment ты держишь 2 bash-консоли и запусаешь одно
и то-же приложение просто в разных контекстах.

В моём кустарном проектике это выглядит примерно так.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    private String lookupSensitiveProperty(String propertyName) {
        Map<String, Object> hikariConfigMap = (Map<String, Object>) config.getRoot().get("hikariConfig");
        if (hikariConfigMap.containsKey(propertyName)) {
            return (String) hikariConfigMap.get(propertyName);
        } else if (System.getProperties().containsKey(propertyName)) {
            return System.getProperty(propertyName);
        } else if (System.getenv().containsKey(propertyName)) {
            return System.getenv().get(propertyName);
        } else {
            throw new HtmlParserException("Unable to found property " + propertyName);
        }
    }



Тоесть если логин-пароль для Hikari JDBC пула не был найден в Yaml конфиге - то мы делаем lookup
в Sys.props, и потом уже в ОС env.

для этого есть спринг профили) создай их хоть миллион и запускай ту конфигурацию,которая тебе нужна в данный момент
если не знаешь как я могу помочь - там ничего сложного

Нет смысла. Т.к. эту технику я применял только для утилит без SpringBoot.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40016500
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Zzz79
пропущено...

для этого есть спринг профили) создай их хоть миллион и запускай ту конфигурацию,которая тебе нужна в данный момент
если не знаешь как я могу помочь - там ничего сложного

Нет смысла. Т.к. эту технику я применял только для утилит без SpringBoot.


Apache DeltaSpike не пробовали?)
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40016501
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет.
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40020675
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для новой версии библиотеки минимальная версия java будет 1.8.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40023517
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.61, 1.18

- Minimum java version is 1.8.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40032938
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.62, 1.19

- Added new mode REPLACE_EMPTY_VALUE_WITH_NULL to the U.xmlToJson() method.
- Added remove(path) and clear() for object and array builder.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40040361
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.63, 1.20

- Added new mode for jsonToXml() method FORCE_ATTRIBUTE_USAGE.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40049453
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.64, 1.21

- Fixed Template should not fail when value has dollar.
- Improved \r escape in xml.
- Added new mode FORCE_ATTRIBUTE_USAGE_AND_DEFINE_ROOT_NAME to the U.jsonToXml().
- Improved unescape xml attributes.
- Added method U.jsonToXml(json, newRootName).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40058752
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.65, 1.22

- Added new mode REPLACE_NULL_WITH_EMPTY_VALUE to the U.jsonToXml().

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40067735
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.66, 1.23

- Added U.mapMulti(list, mapper) method.

Код: java
1.
2.
3.
4.
5.
6.
List<Integer> result = U.mapMulti(asList("Java", "Python", "C#"), (str, consumer) -> {
            for (int i = 0; i < str.length(); i++) {
                consumer.accept(str.length());
            }
        });
        // result -> [4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 2, 2]



С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40072141
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример spring контроллера для библиотеки.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
package com.example.demo.controller;

import com.github.underscore.lodash.U;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

@RequestMapping("/")
@RestController
class XmlToJsonController {
    @PostMapping("xmltojson")
    ResponseEntity<Map<String, Object>> xmltojson(@RequestBody Map<String, Object> request) {
        Map<String, Object> response = new HashMap<>();
        try {
            response.put("json", U.xmlToJson((String) request.get("xml")));
        } catch (Exception ex) {
            response.put("error", ex.getMessage());
            return ResponseEntity.badRequest().body(response);
        }
        return ResponseEntity.ok().body(response);
    }

    @PostMapping("formatxml")
    ResponseEntity<Map<String, Object>> formatxml(@RequestBody Map<String, Object> request) {
        Map<String, Object> response = new HashMap<>();
        try {
            response.put("xml", U.formatXml((String) request.get("xml")));
        } catch (Exception ex) {
            response.put("error", ex.getMessage());
            return ResponseEntity.badRequest().body(response);
        }
        return ResponseEntity.ok().body(response);
    }

    @PostMapping("jsontoxml")
    ResponseEntity<Map<String, Object>> jsontoxml(@RequestBody Map<String, Object> request) {
        Map<String, Object> response = new HashMap<>();
        try {
            response.put("xml", U.jsonToXml((String) request.get("json")));
        } catch (Exception ex) {
            response.put("error", ex.getMessage());
            return ResponseEntity.badRequest().body(response);
        }
        return ResponseEntity.ok().body(response);
    }

    @PostMapping("formatjson")
    ResponseEntity<Map<String, Object>> formatjson(@RequestBody Map<String, Object> request) {
        Map<String, Object> response = new HashMap<>();
        try {
            response.put("json", U.formatJson((String) request.get("json")));
        } catch (Exception ex) {
            response.put("error", ex.getMessage());
            return ResponseEntity.badRequest().body(response);
        }
        return ResponseEntity.ok().body(response);
    }
}



Хорошего вам дня!
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40074571
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.67, 1.24

- Added toChain() method for object and array builder.
- Updated underscore.js with version 1.13.1.
- Added new modes REPLACE_EMPTY_TAG_WITH_NULL and REPLACE_EMPTY_TAG_WITH_EMPTY_STRING for the U.xmlToJson(xml).
- Added new mode REPLACE_EMPTY_STRING_WITH_EMPTY_VALUE to the U.jsonToXml(json).
- Added spring boot example.
- Improved github workflows.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40081052
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.68, 1.25

- Added set(path, value) for chain.
- Added Optional.toJavaOptional(), changed Optional.toString().
- Formated source codes.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40094230
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.69, 1.26.

- Added windows and sonar builds, added cache maven packages in github actions.
- Renamed com.github.underscore.U with com.github.underscore.Underscore.
- Added new mode REMOVE_FIRST_LEVEL_XML_TO_JSON to the U.xmlToJson() method.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40101150
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.70, 1.27.

- Added codeql analysis support.
- Added new mode FORCE_ADD_ROOT_JSON_TO_XML to the U.jsonToXml(json, mode, [newRootName]).
- Fixed warning Unsafe hostname verification

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40108542
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.71, 1.28

- Added U.objectBuilder().fromMap(map).
- Changed default format for json and xml with two spaces.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40116372
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.72, 1.29

- Added method U.replaceNilWithNull(map).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40124378
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.73, 1.30

- Fixed encoding problem for POST and PUT requests.
- Added fetch with retry.
- Added FetchResponse.jsonMap(), FetchResponse.xmlMap() and ObjectBuilder.addMap(map) methods.
- Added methods U.objectBuilder().addNull("Key") and U.arrayBuilder().addNull().
- Fixed sonar warnings.
- Migrated to junit 5.
- Updated dependent libraries for spring-boot example.
- Added StringJoiner to generate json.
- Introduced methods U.downloadUrl(url, fileName) and U.decompressGzip(source, target).

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40130916
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.74, 1.31

- Moved classes from package com.github.underscore.lodash to the com.github.underscore.

С уважением, Валентин
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40136924
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.75, 1.32

- Added methods U.jsonToXml(json, identStep) and U.xmlToJson(xml, identStep).

С уважением, Валентин
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Underscore.js библиотека для java.
    #40137895
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно были выпущены новые версии библиотек: 1.92, 1.49

- The interfaces have been relocated within the Underscore class
- XML attribute parser has been enhanced
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40137941
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Были недавно выпущены новые версии библиотек: 1.93 и 1.50

- Substituted the customized Optional with java.util.Optional
- Updated junit
- Improved json parser tests
...
Рейтинг: 0 / 0
Underscore.js библиотека для java.
    #40138097
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Были недавно выпущены новые версии библиотек: 1.94 и 1.51

- Enhanced GitHub workflows and included Java 21
- Added U.associateBy(iterable, func)
...
Рейтинг: 0 / 0
168 сообщений из 168, показаны все 7 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Underscore.js библиотека для java.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]