<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2716076523100558966</id><updated>2012-02-16T01:32:24.081-08:00</updated><category term='Блог'/><category term='JBoss Seam'/><category term='Алтай'/><category term='MagicDraw'/><title type='text'>Mugitus</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mugitus.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716076523100558966/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mugitus.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mugitus</name><uri>http://www.blogger.com/profile/05473733971573795861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp1.blogger.com/_QGrRxumbPRU/SHBj_UwmNkI/AAAAAAAAAEM/NALnIRr_vdo/S220/2.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2716076523100558966.post-5199156110579217770</id><published>2008-09-21T02:04:00.000-07:00</published><updated>2008-09-21T02:10:56.246-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Блог'/><title type='text'>Воткнул блог в VerveEath</title><content type='html'>Узнал об интересном сервисе... Можно на google-maps воткнуть свой блог, привязать к конкретному географическому месту, а также просматривать какие блоги на карте уже имеются. Если ткнуть на следующую ссылку, то Вы сразу перенесётесь к моему блогу на карте:&lt;br /&gt;&lt;a href="http://www.verveearth.com/landing/#type=user&amp;id=17389"&gt;Мой блог на VerveEarth&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2716076523100558966-5199156110579217770?l=mugitus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mugitus.blogspot.com/feeds/5199156110579217770/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2716076523100558966&amp;postID=5199156110579217770' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716076523100558966/posts/default/5199156110579217770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716076523100558966/posts/default/5199156110579217770'/><link rel='alternate' type='text/html' href='http://mugitus.blogspot.com/2008/09/verveeath.html' title='Воткнул блог в VerveEath'/><author><name>Mugitus</name><uri>http://www.blogger.com/profile/05473733971573795861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp1.blogger.com/_QGrRxumbPRU/SHBj_UwmNkI/AAAAAAAAAEM/NALnIRr_vdo/S220/2.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716076523100558966.post-3609743423201200816</id><published>2008-09-21T01:53:00.000-07:00</published><updated>2008-09-21T02:02:14.831-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Алтай'/><title type='text'>Фотки с Горного Алтая.</title><content type='html'>Выложил фотки с летнего похода на Алтай. Ходили небольшой группой на Шавлинские озёра на две недели. Представляю два альбома: первый - только природа, второй - природа и я :-)&lt;br /&gt;&lt;a href="http://picasaweb.google.com/v.masterov/200803"&gt;Алтай июль-август 2008 (природа)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/v.masterov/200802"&gt;Алтай июль-август 2008 (природа и Я)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2716076523100558966-3609743423201200816?l=mugitus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mugitus.blogspot.com/feeds/3609743423201200816/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2716076523100558966&amp;postID=3609743423201200816' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716076523100558966/posts/default/3609743423201200816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716076523100558966/posts/default/3609743423201200816'/><link rel='alternate' type='text/html' href='http://mugitus.blogspot.com/2008/09/blog-post.html' title='Фотки с Горного Алтая.'/><author><name>Mugitus</name><uri>http://www.blogger.com/profile/05473733971573795861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp1.blogger.com/_QGrRxumbPRU/SHBj_UwmNkI/AAAAAAAAAEM/NALnIRr_vdo/S220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716076523100558966.post-5685944215910909181</id><published>2008-07-18T11:32:00.000-07:00</published><updated>2008-07-18T12:17:20.548-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Seam'/><title type='text'>Как интернационализировать enum</title><content type='html'>Рассмотрим интернационализацию enum-ов на примере emun-а Gender (пол). В ресурсном файле определим перевод следующим образом:&lt;br /&gt;&lt;br /&gt;gender.MALE=Мужчина&lt;br /&gt;gender.FEMALE=Женщина&lt;br /&gt;&lt;br /&gt;Определим непосредсвенно enum:&lt;br /&gt;&lt;br /&gt;package ru.mugitus.myproject.model;&lt;br /&gt;&lt;br /&gt;public enum Gender {&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;MALE,&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;FEMALE;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Создадим класс EnumFactory, который послужит фабрикой для создания объектов enum, зарегистрированных в контексте Seam:&lt;br /&gt;&lt;br /&gt;package ru.mugitus.factory;&lt;br /&gt;&lt;br /&gt;import org.jboss.seam.ScopeType;&lt;br /&gt;import org.jboss.seam.annotations.Scope;&lt;br /&gt;&lt;br /&gt;@Scope(ScopeType.APPLICATION)&lt;br /&gt;public class EnumFactory60;E extends Enum60;E62;62; {&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;private Class60;E62; enumClass;&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;public E[] getValues() {  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;return enumClass.getEnumConstants();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;public Class60;E62; getEnumClass() {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;return enumClass;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;public void setEnumClass(Class60;E62; enumClass) {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;this.enumClass = enumClass;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;public E valueOf(String literal) {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;return Enum.valueOf(enumClass, literal);  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;public String getValue(String literal) {  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;return Messages.instance().get(this.getClass().getAnnotation(Name.class).value().split("\\.")[1] + "." + literal);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;br /&gt;  &lt;br /&gt;}&lt;br /&gt;Как видно, наш класс находится в пакете ru.mugitus.factory. Разместим в этом же пакете файл с названием package-info.java со следующим содержимым:&lt;br /&gt;&lt;br /&gt;@Namespace(value="http://mugitus.ru/factory", prefix="ru.mugitus.factory")&lt;br /&gt;package ru.mugitus.factory;&lt;br /&gt;&lt;br /&gt;import org.jboss.seam.annotations.Namespace;&lt;br /&gt;&lt;br /&gt;Это позволит нам определять компоненты на основе enum в файле components.xml. Только для этого нам надо принять за правило называть все компоненты(enum) с префиксом enum:&lt;br /&gt;&lt;br /&gt;&amp;#60;components xmlns="http://jboss.com/products/seam/components" xmlns:mug="http://mugitus.ru/factory"&amp;#62;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;...&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#60;mug:enum-factory name="enum.gender" enum-class="ru.mugitus.myproject.model.Gender"/&amp;#62;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;...&lt;br /&gt;&lt;br /&gt;&amp;#60;/components&amp;#62;&lt;br /&gt;&lt;br /&gt;Теперь используем наш enum на xhtml-странице, например в выпадающем списке:&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160&amp;#60;h:selectOneMenu value="#{myBean.gender}"&amp;#62;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#60;s:selectItems var="gender" value="#{enum.gender.values}" label="#{enum.gender.value(gender.name())}"/&amp;#62;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#60;s:convertEnum/&amp;#62;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#60;/h:selectOneMenu&amp;#62;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2716076523100558966-5685944215910909181?l=mugitus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mugitus.blogspot.com/feeds/5685944215910909181/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2716076523100558966&amp;postID=5685944215910909181' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716076523100558966/posts/default/5685944215910909181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716076523100558966/posts/default/5685944215910909181'/><link rel='alternate' type='text/html' href='http://mugitus.blogspot.com/2008/07/enum.html' title='Как интернационализировать enum'/><author><name>Mugitus</name><uri>http://www.blogger.com/profile/05473733971573795861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp1.blogger.com/_QGrRxumbPRU/SHBj_UwmNkI/AAAAAAAAAEM/NALnIRr_vdo/S220/2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716076523100558966.post-895869784046320649</id><published>2008-07-15T11:57:00.000-07:00</published><updated>2008-07-15T12:25:40.455-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Seam'/><title type='text'>Эх Java, посмотри-ка на Python !</title><content type='html'>Попалась на глаза интересная статья в блоге компании &lt;a href="http://blog.smartweb.com.ua/2008/03/python.html"&gt;SmartWeb&lt;/a&gt; (UAProm.net, RUProm.net): &lt;br /&gt;&lt;br /&gt;После прочтения некоторое время приходил в себя, задело за живое... Как же я его понимаю! Такое впечатление, что я шёл по тому же самому пути в освоении технологий Java и J2EE и прихожу к тем же самым выводам. Очень рекомендую прочитать этот топик всем!&lt;br /&gt;&lt;br /&gt;Несколько дней голова была горячая и хотелось всё кардинально изменить и выбросить Java куда подальше. Но... Начитавшись нового материала по JBoss Seam, пошарив по Seam-овскому форуму, желание всё закидывать постепенно угасло. Я опять осознал, что мне очень нравится этот фреймворк :-)&lt;br /&gt;И всё-таки остаются муки выбора клиентской части для следующих проектов. О чём я жалею, так это о том, что когда-то принялся изучать JSF. Только недавно я пришёл к выводу, что JSF не стоит того времени, которое нужно потратить на его качественное понимание. Конечно теперь не хочется выкидывать свои знания на помойку, поэтому приходится грызть JSF дальше. Прикидывю всё за и против JSF, прихожу к выводу, что плюсов тоже не так уж мало. Сейчас смотрю, что ребята задумали сделать в JSF 2.0.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2716076523100558966-895869784046320649?l=mugitus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mugitus.blogspot.com/feeds/895869784046320649/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2716076523100558966&amp;postID=895869784046320649' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716076523100558966/posts/default/895869784046320649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716076523100558966/posts/default/895869784046320649'/><link rel='alternate' type='text/html' href='http://mugitus.blogspot.com/2008/07/java-python.html' title='Эх Java, посмотри-ка на Python !'/><author><name>Mugitus</name><uri>http://www.blogger.com/profile/05473733971573795861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp1.blogger.com/_QGrRxumbPRU/SHBj_UwmNkI/AAAAAAAAAEM/NALnIRr_vdo/S220/2.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716076523100558966.post-3121371977509552637</id><published>2008-07-15T11:27:00.001-07:00</published><updated>2008-07-18T11:50:50.332-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Seam'/><title type='text'>Пример определения компонента в components.xml</title><content type='html'>Определим класс с подстановочным типом и с одним свойством этого типа (value):&lt;br /&gt;&lt;br /&gt;package ru.mugitus.factory;&lt;br /&gt;&lt;br /&gt;import java.io.Serializable;&lt;br /&gt;&lt;br /&gt;public class SimpleBean implements Serializable {&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;private T value;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;public T getValue() {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;return value;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;public void setValue(T value) {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;this.value = value;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Теперь в components.xml создадим компонент на основе этого класса:&lt;br /&gt;&lt;br /&gt;&amp;#60;component name="mySimpleBean" class="ru.mugitus.factory.SimpleBean" auto-create="true"/&amp;#62;&lt;br /&gt;&lt;br /&gt;Используем этот бин на xhtml-странице для инжектирования в него значения введённого пользователем в выпадающем списке:&lt;br /&gt;&lt;br /&gt;&amp;#60;h:selectOneRadio value="#{mySimpleBean.value}"&amp;#62;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#60;f:selectItem itemValue="first" itemLabel="First"/&amp;#62;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#60;f:selectItem itemValue="second" itemLabel="Second"/&amp;#62;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#60;f:selectItem itemValue="third" itemLabel="Third"/&amp;#62;&lt;br /&gt;&amp;#60;/h:selectOneMenu&amp;#62;&lt;br /&gt;&lt;br /&gt;И наконец, в pages.xml определим правила перехода:&lt;br /&gt;&amp;#60;page view-id="/mypage.xhtml"&amp;#62;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#60;navigation evaluate="#{mySimpleBean.value}"&amp;#62;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#60;rule if-outcome="first"&amp;#62;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#60;redirect view-id="/firstPage.xhtml"/&amp;#62;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#60;/rule&amp;#62;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#60;rule if-outcome="second"&amp;#62;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#60;redirect view-id="/secondPage.xhtml"/&amp;#62;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#60;/rule&amp;#62;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#60;rule if-outcome="third"&amp;#62;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#60;redirect view-id="/thirdPage.xhtml"/&amp;#62;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#60;/rule&amp;#62;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#60;/navigation&amp;#62;&lt;br /&gt;&amp;#60;/page&amp;#62;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2716076523100558966-3121371977509552637?l=mugitus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mugitus.blogspot.com/feeds/3121371977509552637/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2716076523100558966&amp;postID=3121371977509552637' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716076523100558966/posts/default/3121371977509552637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716076523100558966/posts/default/3121371977509552637'/><link rel='alternate' type='text/html' href='http://mugitus.blogspot.com/2008/07/componentsxml_15.html' title='Пример определения компонента в components.xml'/><author><name>Mugitus</name><uri>http://www.blogger.com/profile/05473733971573795861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp1.blogger.com/_QGrRxumbPRU/SHBj_UwmNkI/AAAAAAAAAEM/NALnIRr_vdo/S220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716076523100558966.post-5752333092746564345</id><published>2008-07-13T11:19:00.000-07:00</published><updated>2008-07-13T12:14:06.417-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MagicDraw'/><title type='text'>MagicDraw 15.5</title><content type='html'>Вышла новая версия MagicDraw — 15.5. Очень хорошая программа для тех, кто в свой практике использует UML. Написана на Java, соответственно работает как на Linux, так и на винде (у меня на Gentoo Linux). Делает компания NoMagic. В области UML там работают достаточно профессиональные ребята, оперативно следят за всеми изменениями в спецификации UML и реализовывают новые возможности в своей программе. Лично мне нравится гораздо больше других UML-инструментов, поэтому я её и использую. Сайт откуда можно скачать и узнать про эту программу — &lt;a href="http://magicdraw.com/"&gt;http://magicdraw.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2716076523100558966-5752333092746564345?l=mugitus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mugitus.blogspot.com/feeds/5752333092746564345/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2716076523100558966&amp;postID=5752333092746564345' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716076523100558966/posts/default/5752333092746564345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716076523100558966/posts/default/5752333092746564345'/><link rel='alternate' type='text/html' href='http://mugitus.blogspot.com/2008/07/magicdraw-15.html' title='MagicDraw 15.5'/><author><name>Mugitus</name><uri>http://www.blogger.com/profile/05473733971573795861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp1.blogger.com/_QGrRxumbPRU/SHBj_UwmNkI/AAAAAAAAAEM/NALnIRr_vdo/S220/2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716076523100558966.post-1074952562903880398</id><published>2008-07-06T08:25:00.000-07:00</published><updated>2008-07-06T12:13:52.252-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBoss Seam'/><title type='text'>Lazy and Expression Language</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_QGrRxumbPRU/SHED-GN2PGI/AAAAAAAAAFU/rYcjy8i-BTI/s1600-h/cats.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_QGrRxumbPRU/SHED-GN2PGI/AAAAAAAAAFU/rYcjy8i-BTI/s320/cats.jpg" alt="" id="BLOGGER_PHOTO_ID_5219957808454581346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;У нас есть множество 'Кошки' с подмножествами конкретных кошачьих пород: 'Персидские', 'Сиамские' и 'Агнора'. Предполагается, что все экземпляры кошек домашние и живут в хороших условиях, т.е. мало того, что они всегда сыты, у них есть собственная кроватка-домик.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Так как спальное место кошки — её персональная вещь, то ассоциация между кошкой и кроваткой будет двунаправленной, один-к-одному. CatBed — обобщающий класс, от которого наследуются конкретные подклассы, определяющие форму кроватки:&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Cave — в виде пещеры (домик с крышей);&lt;/li&gt;&lt;li&gt; Den — логово, гнёздышко;&lt;/li&gt;&lt;li&gt; Cushion — в виде подушки;&lt;/li&gt;&lt;li&gt; Luxury — роскошная кровать;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; WindowPerch — подстилка, цепляющаяся к подоконнику.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Предположим, что у Cat ссылка на CatBed является Lazy, т.е. с ленивой загрузкой, и отдаётся только по требованию.&lt;br /&gt;Создадим кота персидской породы и назовём его 'Персик':&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;span style="font-family:courier new;"&gt;Cat cat = new Persian();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;myCat.setName("Персик");&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Сделаем ему кроватку:&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;br /&gt;CatBed bed = new Den();&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;И подарим ему эту кроватку:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;span style="font-family:courier new;"&gt;cat.setCatBed(bed);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Так вот, если мы захотим прямо на xhtml странице, узнать диаметр кровати, напрямую от нашего 'Персика', используя EL-выражение, то ничего у нас не получится !&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;h:outputtext value=""&gt;&lt;h:outputtext value=""&gt;&lt;/h:outputtext&gt;&lt;/h:outputtext&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-family:courier new;"&gt;#{cat.catBed.diameter}&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-family:courier new;"&gt;&lt;h:outputtext value=""&gt;&lt;/h:outputtext&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h:outputtext value="#{cat.catBed.diameter}"&gt;&lt;br /&gt;&lt;/h:outputtext&gt;&lt;div style="text-align: justify;"&gt;&lt;h:outputtext value="#{cat.catBed.diameter}"&gt;А не получится по той причине, что ассоциация между Cat и CatBed является Lazy. Hibernate для CatBed создаст proxy-объект, обёрнутый с помощью JavaAssist и у такого объекта мы не сможем иметь доступ к дополнительным полям классов-наследников на стороне EL-выражения. Если мы обратимся к полю color, то оно будет доступно без проблем, поскольку определено в обобщающем классе, а вот diameter определено в классе-наследнике, поэтому от Hibernate мы получим Exception, в котором утверждается, что объект ассоциации catBed не имеет поля diameter. Конечно проблема снимется, если ассоциацию сделать не Lazy, а Eager (fetch = FetchType.EAGER).&lt;/h:outputtext&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2716076523100558966-1074952562903880398?l=mugitus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mugitus.blogspot.com/feeds/1074952562903880398/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2716076523100558966&amp;postID=1074952562903880398' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716076523100558966/posts/default/1074952562903880398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716076523100558966/posts/default/1074952562903880398'/><link rel='alternate' type='text/html' href='http://mugitus.blogspot.com/2008/07/blog-post.html' title='Lazy and Expression Language'/><author><name>Mugitus</name><uri>http://www.blogger.com/profile/05473733971573795861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp1.blogger.com/_QGrRxumbPRU/SHBj_UwmNkI/AAAAAAAAAEM/NALnIRr_vdo/S220/2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_QGrRxumbPRU/SHED-GN2PGI/AAAAAAAAAFU/rYcjy8i-BTI/s72-c/cats.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716076523100558966.post-4092936082748961471</id><published>2007-12-09T13:48:00.000-08:00</published><updated>2008-07-06T11:09:24.642-07:00</updated><title type='text'>Появился на свет новый блог...</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2716076523100558966-4092936082748961471?l=mugitus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mugitus.blogspot.com/feeds/4092936082748961471/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2716076523100558966&amp;postID=4092936082748961471' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716076523100558966/posts/default/4092936082748961471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716076523100558966/posts/default/4092936082748961471'/><link rel='alternate' type='text/html' href='http://mugitus.blogspot.com/2007/12/blog-post.html' title='Появился на свет новый блог...'/><author><name>Mugitus</name><uri>http://www.blogger.com/profile/05473733971573795861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp1.blogger.com/_QGrRxumbPRU/SHBj_UwmNkI/AAAAAAAAAEM/NALnIRr_vdo/S220/2.jpg'/></author><thr:total>2</thr:total></entry></feed>
