Skip to content
Olga edited this page May 11, 2015 · 17 revisions

С чего начать

  1. Если ещё не имеете ssh-ключа, то сгенерируйте его по инструкции и добавьте его в свой аккаунт на Гитхабе.
  2. Если ещё не имеете аккаунта на Гитхабе, то зарегистрируйтесь.
  3. Пришлите мне (olga-tss) ваш ник или имейл, под которым вы зарегистрировались на Гитхабе, чтобы я смогла добавить вас в этот проект — так вы сможете пушить в этот гит-репозиторий.
  4. Перед тем, как начать работать с кодом, прочитайте, пожалуйста, как организована работа с ветками в нашем репозитории.
  5. Вы также скоро сможете пушить и в OpenShift-овский репозиторий. Если у вас уже есть аккаунт на OpenShift-е - пришлите мне имейл, на который зарегистрирован этот аккаунт. Если акканута ещё нет, но вы хотите его завести — заводите и присылайте мне имейл. Если не хотите заводить — не заводите. Просто имейте ssh-ключ. Этого будет достаточно, чтобы вы могли пушить и в OpenShift-овский репозиторий.

Я не любитель администрирования, так что если среди нас есть те, кто любит и умеет это делать — то как только всё запустится и полетит в имеющейся инфраструктуре (и не будет гадить в полёте), вы сможете забрать управление окружением в свои руки. Если кто-то хорошо разбирается в имеющемся окружении, можете забирать уже сейчас :)

Замечание по инфраструктуре: мы используем PAAS, а не виртуальную машину с голым линуксом, т. е. почти ничего устанавливать и настраивать не нужно (а что было нужно, я уже настроила). Более того, лучше без необходимости ничего на серверах лишний раз руками не трогать, чтобы не поломать. А то отломается, упадёт на ногу, придавит пальцы и т. д. Т. е. если вам просто хочется чего-нибудь понастраивать, не важно, что именно — то лучше зарегистрируйте аккаунт на OpenShift-е и потренируйтесь вначале на нём :)

Программное обеспечение, его версии

На сервере:

  • Java 1.7
  • JBossAS 7.1.1
  • PostgreSQL 9.2 (также, вероятно, будем использовать In-Memory DB H2)
  • Twitter Bootstrap 3.3.4
  • JQuery 1.11.2 (требуется для Twitter Bootstrap)

Логин и пароль для удалённого доступа к PostgreSQL, установленной на сервере, можно получить у меня. Инструкцию по подключению можно найти в конце страницы Deployment lifecycle.

Как развернуть проект локально

  1. Вытягиваем проект из репозитория и открываем в IDE. В настройкай проекта в параметрах компиляции установить JDK 1.7
  2. Скачать и установить JBoss AS 7.1.1 Final
  3. В папке с сервером \jboss-as-7.1.1.Final\standalone\configuration найти файл standalone.xml. В файле в этой строке значение параметра enable-welcome-root должно быть false.
  4. Настроить подключение к БД как показато тут.

DataSource

В коде не нужно явно указывать URL, логин и пароль для соединения с БД. OpenShift в настройках сервера создаёт DataSource, который и смотрит на нашу БД. Вот как это выглядит в настройках, если интересно: standalone.xml.

Таким образом, чтобы получить в коде нашего приложения DataSource, нжно сделать в контексте лукап вот этого имени: java:jboss/datasources/PostgreSQLDS.

Для локальной работы отредактируйте standalone.xml вашего локально установленного сервера JBossAS 7.1.1 (не тот standalone.xml, что в нашем репозитории!) аналогичным образом, только:

  • Или установите у себя переменные окружения OPENSHIFT_POSTGRESQL_DB_HOST, OPENSHIFT_POSTGRESQL_DB_PORT, OPENSHIFT_APP_NAME, OPENSHIFT_POSTGRESQL_DB_USERNAME, OPENSHIFT_POSTGRESQL_DB_PASSWORD, указав в них соответственно URL, порт, название схемы БД, логин и пароль к вашему локально установленному PostgreSQL-ю.
  • Или в standalone.xml вашего локально установленного сервера JBossAS 7.1.1 прямо вместо этих переменных укажите ваши значения URL-а, порта, названия схемы БД, логина и пароля к вашему локально установленному PostgreSQL-ю.

Что дальше

На странице Deployment lifecycle написано, как предлагается работать в этом окружении. Читайте, спрашивайте.

На странице Q&A публикуются наши вопросы кураторам и их ответы нам. Читайте, дополняйте.

Документация по окружению

Если вдруг будет интересно, то вот документация по OpenShift-у.

Вопросы

Структура проекта

Сейчас проект состоит из нескольких модулей: ejb, war, ear, конфиг для checkstyle-плагина и папка с заготовками под скрипты для БД.

В дальнейшем, по всей видимости, могут быть несколько war-модулей: например, один веб-модуль для админа, другой — для водителя, третий — для пользователя и т. д. Нужно согласовать разбивку.

Работа с двумя репозиториями — GitHub и OpenShift

OpenShift-репозиторий нужен для того, чтобы развернуть наше приложение на общедоступном удалённом сервере.

GitHub-репозиторий предоставляет удобный графический интерфейс для работы с ветками, встроенную Вики, систему отслеживания задач, статистику, т. е. помогает организовать командную работу.

Поскольку у нас два репозитория, то необходимо выработать и затем придерживаться простой дисциплины пушей, чтобы в обоих репозиториях был одинаковый код. Предлагаю работать по схеме, изложенной на странице Deployment lifecycle.

Организация обсуждений

Необходимо выбрать удобный механизм для голосований и обсуждений. Например, заводим страницу на Вики и плюсуем/минусуем вопрос, или делаем опросник на Гугл-диске, или что-то ещё. Желательно, конечно, не распыляться между различными сервисами, чтобы все результаты были под руками и, желательно, версионировались.