среда, 30 сентября 2009 г.

Hadoop workflow


Познавательная диаграмка о схеме работы хадупа

среда, 11 марта 2009 г.

Eclipse 3.4.*. Управление плагинами.

В новой версии эклипса измененно управление плагинами. Теперь их нельзя дизейблить используя Help->Software Updates.
Для включения и отключения плагинов используйте окно Window->Preferences закладка General->Startup and Shutdown

среда, 4 февраля 2009 г.

Web Приложение на базе Spring MVC

Это статья заготовка для быстрого старта разработки простоги веб приложения основаного на Spring MVS.
для запуска понадобятся следующие библиотеки:
  1. Spring 2.5.5 (commons-collections.jar, commons-lang.jar, commons-logging.jar, spring.jar, spring-webmvc.jar, servlet-api.jar)
  2. spring validation (spring-modules-validation.jar из пакета pring Modules 0.9)
  3. standard jsp taglibs (jstl.jar, standard.jar)
  4. log4j-1.2.13.jar - для логирования.
Скопируйте их в папку {SpringWebTemplate}/webapp/WEB-INF/lib.

для построения метрики и явадоков с помощью анта понадобятся библиотеки jdepend-2.9.jar, statsvn.jar, которые необходимо поместить в папку {SpringWebTemplate}/compile-lib

В заготовке описан пример однога сервиса, которий используется контроллерами. В контроллере "MainController" показан пример передачи бина на страницу, а также примеры 2-х типов перенаправления запросов пользователя. В контроллере "CalculatorController" показан пример обработки формы (передача значений на форму, считывание введенных пользователем данных, их валидация, показ ошибок и результатов).
Пример состоит из двух страниц:
  • /main.htm - имеет стандартную разметку с относительными ссылками на файлы css и js. В качестве примера вывода динамического содержимого - выводится текущее время сервера
  • /calc.htm - страница с формой. Считывает 2 числа и выводит их сумму. Если пользователь введет некоректные данные показываются ошибки валидации. На странице есть 2 примера сообщений валидации: для первого поля сообщение задается в класе формы, для второго - на jsp странице
Скачать пример с библиотеками(7.7мб)
Скачать пример без библиотек
Доп. литература:
Отличная статья с примером о валидации в спринге

Eclipse настройка плагина к Tomcat

Тысячу раз описано поэтому очень коротко.
  1. загружаем Sysdeo Eclipse Tomcat Launcher и распаковываем его в папку {eclipse_home}\plugins
  2. запускаем Eclipse, при этом на панели кнопок появляется три иконки
  3. настраиваем плагин: Windows->Preference указываем путь к локально установленному томкету, выбираем Context directory - {tomcat}\conf\Catalina\localhost; JVM Setting - добавляем "-Xms128m -Xmx512m"; Source path - выбирае проект
  4. настраиваем томкет: в папке {tomcat}\conf\Catalina\localhost создаем файл {project_name}.xml

Пример файла {project_name}.xml:
<?xml version='1.0' encoding='utf-8'?>
<Context path="/MyApp" reloadable="true" docBase="D:\works\eclipse\workspace\SpringWebTemplate\webapp\ "></Context>

пятница, 9 января 2009 г.

Eclipse. Горячие клавиши

ctrl + shift + Lпоказать гарячие клавиши
ctrl + Aвыделить все
ctrl + Fотформатировать выделенный фрагмент
ctrl + F3показать структуру класса
ctrl + TПоказать иерархию наследования класса
ctrl + shift + Tнайти класс (можно использовать маску)
ctrl + shift + HПоказать иерархию наследования класса
ctrl + alt + HПоказать иерархию вызовов метода
ctrl + alt + Rпереименовать выделенный фрагмент
ctrl + /закоментировать используя //
ctrl + shift + /закоментировать используя /* */
alt + shift + Jдобавить javadoc
ctrl + shift + Yперевести в нижний регистр
ctrl + shift + Xперевести в верхний регистр
ctrl + F6Переключение между открытыми окнами

понедельник, 5 января 2009 г.

MySQL Создание и удаление БД

Для создания БД в MySql необходимо:
  1. создать пользователя
  2. создать БД
  3. раздать ему права на пользование базой
Итак по порядку.
  1. Создаем пользователя:
    CREATE USER 'user1'@'localhost' IDENTIFIED BY 'pass1';
  2. Создаем БД:
    CREATE DATABASE IF NOT EXISTS mydb;
  3. Раздаем ему права:
    выборочно:
    GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'user1'@'localhost';
    все права:
    GRANT ALL ON *.* TO 'user1'@'localhost';
    можно вообще раздать права с автоматическим созданием пользователя:
    GRANT ALL ON *.* TO 'user2'@'localhost' IDENTIFIED BY 'pass1';
    Раздавать права можно не только на пользование всеми базами но и на пользовыание только определенной. Едля етого следует указать имя БД. Например:
    GRANT ALL PRIVILEGES ON mydb . * TO 'user1'@'localhost';

Удаление пользователя:
DROP USER 'user1'@'localhost';

Удаление БД:
DROP DATABASE mydb

понедельник, 29 декабря 2008 г.

Тестирование Spring приложений

Эта статья - заготовка, для быстрой организации тестирования спринг приложений.
Рассмотрим типичную конфигурацию Spring + Hibernate. Для тестирования БЛ будет использоваться JUnit4. Заполнять БД тестовыми данными будем при помощи DBUnit. Для запуска тестов будет использоватся Ant(на билдсервере) и Eclipse (для дебага).
Полезная л-ра:
Класная статья о тестировании Spring-a в JUnit-е http://samolisov.blogspot.com/2008/07/spring-junit.html
Класная статья о JUnit4 http://www.ibm.com/developerworks/ru/edu/j-junit4/index.html
Итак нам понадобятся следующие библиотеки:
  1. драйвер БД (в моем примере mqsql-5.0.4)
  2. hibernate 3.3.1, hibernate-annotations 3.4
  3. spring-2.5.5
  4. для работы спринга: cglib 2.1, commons-lang 2.4, spring-modules 0.9
  5. для тестирования спринга в JUnit 4: spring-test (из spring-modules)
  6. junit 4.4
  7. логирование: commons-loging 1.0.4, commons-login-api 1.0.4, log4j 1.2.13
  8. заполнение тестовой БД-х: dbUnit 2.4.2
В заготовке используется схема из двух таблиц "bookcase" и "book", с типичной связью один ко многим. Бизнес модель состоит из трех модулей: млодуля сервисов, модели и DAO. Модель описывает сущности, DAO - описывает методы сохранения и выборки сущностей из БД используя Hibernate Criteria Queries (обекстную модель построения запросов), сервисы же предоставляют высокоуровневые бизнес методы. Для реализации бизнес методов сервисы используют DAO, но также они могут использовать и бизнес методы других сервисов. Так в заготовке "BookcaseService" использует методы другого сервиса "AnotherService".

Для тестирования сервиса "BookcaseService" используется класс "BookceseServiceTest". В нем есть пример:
  • использования dbunit при тестировании
  • создания сессии для использования в тестах обьектов использующих "hibernate lazy loading"
  • замещения сервиса ""AnotherService" сервисом "AnotherTestOverrideService" для тестов
Ant-ский билд скрипт содержит цели для создания БД, запуска юнит тестов и построения веб репортов их результатов, создания javadocs по проекту, построения веб представления метрики проекта (сколько пакетов, класов и т.д., для етого используется утилита jdepend), а также svn статистики (используется statsvn)

Скачать исходники проекта с библиотеками (14мб)
Скачать исходники без библиотек