Скажу сразу — в Gradle я совсем новичок.
Пол рабочего дня, вместо того, чтоб писать код содержащий мою семью, я потратил на то, чтоб узнать что в одном месте вместо '+' надо поставить '0.10.1'.
А знаете что я сегодня сделал не так? А ничего. Программма вчера запускалась а сегодня перестала. С абсолютно тем же кодом и тем же конфигом. Ни одного файла не менял.
Смышленый или опытный программист уже догадался что знак "+" — значит что надо загрузить самую последнюю версию библиотеки и загрузилось что то не то. Да это часть проблемы, но не вся. Сама библиотека ничего не портила. Она просто имела зависимость от другой — которая портила.
Да и вообще, что за мода выкладывать не оттестированные библиотеки в общий репозиторий? При Мавене такого не было!
Читать полностью »
Рубрика «java» - 237
Мы уже подняли сервер Jasig CAS теперь пора немного его кастомизировать. Зачем это нужно? Сейчас ми авторизируемся используя статического пользователя, но мы это исправим и сделаем возможность получать пользователя из внешних систем или БД.
Читать полностью »
Spring и @Autowired для ENUM-типов. Факультатив
2014-07-15 в 19:00, admin, рубрики: java, spring, spring framework, примеры кода, ПрограммированиеКак известно, в Spring нельзя сделать бины для перечисляемых типов без «костылей» — у этого типа «нет» конструктора.
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'demoEnum0' defined in file [...DemoEnum0.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [ru.itbasis.demo.spring.enums.DemoEnum0]: No default constructor found; nested exception is java.lang.NoSuchMethodException: ru.itbasis.demo.spring.enums.DemoEnum0.<init>()
(коммит)
В данном посте я попробую обойти это ограничение.
Читать полностью »
JBrainfuck — Пишем компилятор Brainfuck под Java VM
2014-07-15 в 8:00, admin, рубрики: asm, Brainfuck, java, jit, jvm, КомпиляторыМеня давно интересовал вопрос написания своего компилятора под Java VM, но было недостаточно опыта, дабы сделать это. Да и как-то руки не доходили, а недавно все же решил разобраться в этой теме и заодно рассказать о своем опыте создания компилятора под эту VM.
В качестве реализуемого языка возьмем Brainfuck. Он прост в реализации, что отлично подходит для изучения данной темы, но сначала предоставлю вам свою реализацию.
JBrainfuck — оптимизирующий интерпретатор и компилятор Brainfuck под Java VM. Благодаря JIT обладает высокой производительностью.
- Лицензия: MIT
- Адрес проекта: https://github.com/SystemX-Files/jbrainfuck/
- Платформы: Linux, Windows, MacOS и везде, где есть Java.
Мастер-класс Адама Бина «Java EE: Архитектура, шаблоны и решения»: отзывы и впечатления участников
2014-07-14 в 10:50, admin, рубрики: adam bien, java, java ee, javascript, workshop, Адам Бин, архитектура Java-приложений, Блог компании Luxoft3 и 5 июня прошел мастер-класс в онлайн-формате «Java EE: Архитектура, шаблоны и решения» Адама Бина.
Адам Бин – Java Champion, Top Java Ambassador и JavaOne Rock Star – предложил аудитории практикум по проектированию архитектуры Java-приложений масштаба предприятия.
Адам Бин показал, как проектировать архитектуру Java-приложений масштаба предприятия и кластеров приложений.
Слушателям было предложено поработать с исходным кодом программы и принять участие в обсуждении краеугольных понятий, необходимых для того, чтобы научиться проектировать сопровождаемые системы.
В ходе мастер-класса был написан код для самых интересных частей решения. Читать полностью »
Попытка создания полезного приложения для Pebble
2014-07-13 в 9:32, admin, рубрики: android, battery monitoring, java, Pebble, Разработка под androidПриветствую, читатели!
Недавно я стал счастливым обладателем умных часов Pebble. В функциональном плане мои ожидания оправдались на все сто, только вот покупал я их не только ради того, что бы пользоваться уже готовым софтом, позволяющим изрядно упростить/автоматизировать жизнь. Для меня весьма интересной стороной была как раз сама разработка для этого гаджета.
Читать полностью »
Легкая и динамическая бизнес логика на JavaScript при помощи Mozilla Rhino
2014-07-12 в 9:44, admin, рубрики: java, javascript, mozilla rhino 
Предыстория
Хотелось бы начать с предыстории. В данный момент я разрабатываю некое веб-приложение на Java, ничего необычного, но в документе от заказчика есть требование: будущие администраторы приложения должны иметь возможность налету подгружать код бизнес логики на сервер. Вроде бы ничего сверхъестественного, нужно будет сделать подгрузку java-классов, думал я, пока на днях мне в голову не пришла идея: “А что, если дать возможность программировать методы бизнес логики на JavaScript?”.
В тот момент идея показалась мне очень хорошей, и я видел целый ряд преимуществ этой идеи перед простой подгрузкой java-классов:
- Во-первых, JavaScript — это очень простой язык описания логики, писать на нем может любой программист, знакомый с принципами ООП и C-подобным синтаксисом.
- Во-вторых, т.к. внешнее API сервера спроектировано в стиле REST, js-код отлично ложится в рамки ресурса, без проблем сериализуется в JSON-строку и не требует компиляции и дополнительных манипуляций.
- В-третьих, исполнение JavaScript-кода интерпретатором — это исполнение кода в рамках песочницы безопасности, что дает нам возможность четко настраивать правила поведения кода бизнес-логики.
Но не стоит забывать, что большая сила — это большая ответственность, поэтому, вслед за новыми возможностями, появляются новые вопросы, которые требуют развернутого ответа.
В этой статье я бы хотел вкраце рассказать об идее описания бизнес логики на чистом js, затронуть теоретическую и практическую части, а так же описать некоторые нюансы, которые могут возникнуть вслед за этим решением.
Читать полностью »
SSO используя Jasig CAS Server 4.0.0. Часть 1
2014-07-10 в 21:19, admin, рубрики: CAS, java, keytool, SSO, tomcat, Программирование Представьте, что у вас есть web-проект, который состоит из двух или более частей, (part1.example.com) и вторая часть (part2.example.com). Теперь перед вам стоит задача сделать Аутентификацию пользователя, но так чтобы когда пользователь зайдя один раз в любую из частей web-проекта, например, в первую, то во второй он уже должен быть аутентифицирован.
Читать полностью »
Динамическое добавление свойств в языке Java
2014-07-10 в 8:47, admin, рубрики: cglib, dynamic proxy, java, костыль, тростьDisclaimer
Инструмент родился как способ побороть недочеты проектирования малой кровью. Я с трудом могу представить ситуацию, где использование инструмента могло бы быть продиктовано иными причинами.
Читать полностью »
Простейший Connection pool без DataSource в Java
2014-07-10 в 6:43, admin, рубрики: connection pool, java, sql, базы данных Ни для кого не секрет, что в Java EE Connection Pool реализуется используя Data Source. С примером реализации в Apache Tomcat можно ознакомиться по этой ссылке: habrahabr.ru/post/101342/. Но что делать, если мы используем только Java SE и нам нужно организовать многопоточный доступ к базе данных по схеме Connection Pool. Ведь сервера приложений у нас в данном случае нет, следовательно, использовать Data Source мы не можем, а для создания соединений к бд нам придется скорее всего использовать java.sql.DriverManager. Можно еще использовать в замену данному подходу что-нибудь из этой статьи: docs.oracle.com/javase/jndi/tutorial/ldap/connect/pool.html. Скорее всего кем-то данный подход уже реализовывался на Java, по крайней мере я не обнаружил такую реализацию в сети. И я решил изобрести свой велосипед. Было бы хорошо, если в поисковике при поиске Connection pool в Java выходила ссылка на эту статью, дополненную и отредактированную по комментариям и дополнениям от habr.ru, и эта статья была бы полезна кому-нибудь. Если стало интересно, то прошу под кат.
Читать полностью »
