<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>Garbage Collector</title>
	
	<link>http://garbage-collector.ru</link>
	<description>Журнал о Flash, Flex, AIR, Grails и разработке Rich Internet Applications в условиях, приближенных к реальным</description>
	<lastBuildDate>Sun, 16 May 2010 17:08:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/garbage_collector" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="garbage_collector" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Релиз Grails 1.3</title>
		<link>http://garbage-collector.ru/2010/05/grails-1-3-released.html</link>
		<comments>http://garbage-collector.ru/2010/05/grails-1-3-released.html#comments</comments>
		<pubDate>Fri, 14 May 2010 21:40:50 +0000</pubDate>
		<dc:creator>Юрий Яровой</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Grails]]></category>
		<category><![CDATA[Opensource]]></category>
		<category><![CDATA[Релизы]]></category>

		<guid isPermaLink="false">http://garbage-collector.ru/?p=734</guid>
		<description><![CDATA[На днях вышла новая версия фреймворка для построения веб-приложений Grails 1.3. Сами авторы Grails называют это обновление важным (major). Вот что есть новенького:

переход на Groovy 1.7;
поддержка JUnit 4;
поддержка Maven-репозитария для Grails-плагинов;
декларативное указание зависимостей между различными плагинами;
dirty checking в GORM (проверка доменного объекта на наличие измененных, но еще не сохраненных свойств);
поддержка именованных выборок в доменных объектах. [...]]]></description>
			<content:encoded><![CDATA[<p>На днях вышла <a href="http://grails.org/Download">новая версия</a> фреймворка для построения веб-приложений Grails 1.3. Сами авторы Grails называют это обновление важным (major). Вот что есть новенького:</p>
<ul>
<li>переход на <a href="http://docs.codehaus.org/display/GROOVY/Groovy+1.7+release+notes?showComments=true">Groovy 1.7</a>;</li>
<li>поддержка JUnit 4;</li>
<li><a href="http://grails.org/doc/1.3.x/guide/3.%20Configuration.html#3.7.8%20Deploying%20to%20a%20Maven%20Repository">поддержка Maven-репозитария</a> для Grails-плагинов;</li>
<li><a href="http://grails.org/doc/1.3.x/guide/3.%20Configuration.html#3.7.9%20Plugin%20Dependencies">декларативное указание зависимостей</a> между различными плагинами;</li>
<li><a href="http://grails.org/doc/1.3.x/guide/5.%20Object%20Relational%20Mapping%20(GORM).html#5.3.6%20Modification%20Checking">dirty checking</a> в GORM (проверка доменного объекта на наличие измененных, но еще не сохраненных свойств);</li>
<li>поддержка <a href="http://grails.org/doc/1.3.x/ref/Domain%20Classes/namedQueries.html">именованных выборок</a> в доменных объектах. Кроме того, к именованной выборке можно применять еще несколько (именованных или динамических) выборок;</li>
<li>глобальный для всего приложения лейаут, который будут использовать все GSP-странички, у которых он не задан явно.</li>
</ul>
<p>Как мы видим, список улучшений состоит из нужных и полезных вещей, которые действительно будут востребованы у разработчиков. Более подробно об этих нововведениях читайте <a href="http://www.grails.org/1.3+Release+Notes">в заметках к релизу</a>, а так же <a href="http://blog.springsource.com/2010/05/11/grails-1-3-released/">в блоге разработчиков</a>. </p>
<p>Ну и напоследок я хотел бы сказать, что этот небольшой релиз своим примером показывает, насколько opensource сообщества могут грамотно и слаженно работать над одним проектом, реализуя действительно важные вещи, вместо того, чтобы украшать продукт ленточками и бантиками для того, чтобы отчет о проекте выглядел привлекательно в глазах руководства, забивая при этом большущий болт на имеющиеся проблемы и недостатки.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/OlxXpRpDaAPt0btjfSAxCfTZ5I8/0/da"><img src="http://feedads.g.doubleclick.net/~a/OlxXpRpDaAPt0btjfSAxCfTZ5I8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/OlxXpRpDaAPt0btjfSAxCfTZ5I8/1/da"><img src="http://feedads.g.doubleclick.net/~a/OlxXpRpDaAPt0btjfSAxCfTZ5I8/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://garbage-collector.ru/2010/05/grails-1-3-released.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как добавить проверку русской орфографии в Intellij IDEA 9</title>
		<link>http://garbage-collector.ru/2010/05/install-russian-spellchecker-dictionary-for-intellij-idea.html</link>
		<comments>http://garbage-collector.ru/2010/05/install-russian-spellchecker-dictionary-for-intellij-idea.html#comments</comments>
		<pubDate>Sat, 08 May 2010 12:27:57 +0000</pubDate>
		<dc:creator>Юрий Яровой</dc:creator>
				<category><![CDATA[Материалы]]></category>
		<category><![CDATA[IntelliJ IDEA]]></category>
		<category><![CDATA[MPS]]></category>
		<category><![CDATA[PhpStorm]]></category>
		<category><![CDATA[PyCharm]]></category>
		<category><![CDATA[RubyMine]]></category>
		<category><![CDATA[Russian]]></category>
		<category><![CDATA[Spellchecker]]></category>
		<category><![CDATA[WebStorm]]></category>

		<guid isPermaLink="false">http://garbage-collector.ru/?p=729</guid>
		<description><![CDATA[Статья о том, как добавить в JetBrains Intellij IDEA 9 проверку русской орфографии. Кроме того, она окажется полезной и для других IDEA-based сред разработки: MPS, RubyMine, WebStorm, PyCharm, PhpStorm.
Правда, используемый в статье словарик совсем небольшой. Никто не в курсе, где можно скачать действительно большой русский текстовый словарь?
]]></description>
			<content:encoded><![CDATA[<p>Статья о том, <a href="http://chukovskij.wordpress.com/2010/04/27/install-russian-spellchecker-dictionary-for-intellij-ide/">как добавить</a> в JetBrains Intellij IDEA 9 проверку русской орфографии. Кроме того, она окажется полезной и для других IDEA-based сред разработки: MPS, RubyMine, WebStorm, PyCharm, PhpStorm.</p>
<p>Правда, используемый в статье словарик совсем небольшой. Никто не в курсе, где можно скачать действительно большой русский текстовый словарь?</p>

<p><a href="http://feedads.g.doubleclick.net/~a/tZJkGR6O0je58hGLqod4hsfI2CI/0/da"><img src="http://feedads.g.doubleclick.net/~a/tZJkGR6O0je58hGLqod4hsfI2CI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/tZJkGR6O0je58hGLqod4hsfI2CI/1/da"><img src="http://feedads.g.doubleclick.net/~a/tZJkGR6O0je58hGLqod4hsfI2CI/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://garbage-collector.ru/2010/05/install-russian-spellchecker-dictionary-for-intellij-idea.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Проголосуйте за баг в Adobe Jira. Часть 2</title>
		<link>http://garbage-collector.ru/2010/05/bug-request-needed-part-2.html</link>
		<comments>http://garbage-collector.ru/2010/05/bug-request-needed-part-2.html#comments</comments>
		<pubDate>Wed, 05 May 2010 10:00:57 +0000</pubDate>
		<dc:creator>Юрий Яровой</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Jira]]></category>

		<guid isPermaLink="false">http://garbage-collector.ru/?p=723</guid>
		<description><![CDATA[Помните, я обращался к вам с просьбой поддержать своим голосом баг-репорт в Adobe Jira? Так вот, у этой истории есть продолжение.
 В настоящий момент за баг проголосовало 58 человек. Спустя 1 год 2 месяца и 27 дней после создания баг-репорта один из разработчиков Flash Player под Linux &#8212; некто Xiaowei Lin &#8212; опубликовал следующие два [...]]]></description>
			<content:encoded><![CDATA[<p>Помните, я <a href="http://garbage-collector.ru/2010/03/bug-request-needed.html">обращался к вам</a> с просьбой поддержать своим голосом <a href="http://bugs.adobe.com/jira/browse/FP-1421">баг-репорт</a> в Adobe Jira? Так вот, у этой истории есть продолжение.</p>
<p> В настоящий момент за баг проголосовало 58 человек. Спустя 1 год 2 месяца и 27 дней после создания баг-репорта один из разработчиков Flash Player под Linux &mdash; некто <a href="http://bugs.adobe.com/jira/secure/ViewProfile.jspa?name=xwlin">Xiaowei Lin</a> &mdash; опубликовал следующие два комментария:</p>
<blockquote><p>Thank you for reporting this issue to us, we&#8217;re investigating this.</p></blockquote>
<p>и</p>
<blockquote><p>mail to submitter for further information.</p></blockquote>
<p>После этого статус баг-репорта был сменен на &laquo;Waiting on Info&raquo;. Оперативно работаем, Adobe! Я уж думал, что раньше следующего февраля не возьмутся за него, поскольку Linux все таки не самая приоритетная платформа для Adobe. Но к счастью, мои предположения не оправдались. Теперь еще осталось дождаться когда баг пофиксят.</p>
<p>Спасибо всем проголосовавшим товарищам. Теперь при примерно представляем себе критическую массу голосов, которые нужно отдать за таск, чтобы за него наконец взялись разработчики: что-то около 50-60. <img src='http://garbage-collector.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p><a href="http://feedads.g.doubleclick.net/~a/MuoZKT14GXmT4jLghg_4uRLAQuQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/MuoZKT14GXmT4jLghg_4uRLAQuQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/MuoZKT14GXmT4jLghg_4uRLAQuQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/MuoZKT14GXmT4jLghg_4uRLAQuQ/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://garbage-collector.ru/2010/05/bug-request-needed-part-2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex in a Week</title>
		<link>http://garbage-collector.ru/2010/04/flex-in-a-week.html</link>
		<comments>http://garbage-collector.ru/2010/04/flex-in-a-week.html#comments</comments>
		<pubDate>Mon, 26 Apr 2010 03:29:02 +0000</pubDate>
		<dc:creator>Юрий Яровой</dc:creator>
				<category><![CDATA[Материалы]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Уроки]]></category>

		<guid isPermaLink="false">http://garbage-collector.ru/?p=716</guid>
		<description><![CDATA[Новость скорее всего не нова, но тем не менее она заслуживает внимания.
В Flex Developer Center появилась серия видео-уроков под общим названием &#171;Flex in a Week&#187;. Благодаря этим урокам за пять дней (два выходных дня в расчет не берутся) вы можете получить общее представление об основных концепциях Flex Framework и после этого использовать полученные знания на [...]]]></description>
			<content:encoded><![CDATA[<p>Новость скорее всего не нова, но тем не менее она заслуживает внимания.</p>
<p>В <a href="http://www.adobe.com/devnet/flex/">Flex Developer Center</a> появилась серия видео-уроков под общим названием &laquo;<a href="http://www.adobe.com/devnet/flex/videotraining/">Flex in a Week</a>&raquo;. Благодаря этим урокам за пять дней (два выходных дня в расчет не берутся) вы можете получить общее представление об основных концепциях Flex Framework и после этого использовать полученные знания на практике.</p>
<p>Я всегда был сторонником видео-обучения, поскольку подобный вид подачи материала позволяет в краткой и &mdash; что важно &mdash; наглядной форме изложить основные моменты. В общем, для начинающих изучать Flex 4 крайне рекомендую &mdash; &laquo;<a href="http://www.adobe.com/devnet/flex/videotraining/">Flex in a Week</a>&raquo;.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/p5Q6P8Cnq2k221ydMgEizmKaXFw/0/da"><img src="http://feedads.g.doubleclick.net/~a/p5Q6P8Cnq2k221ydMgEizmKaXFw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/p5Q6P8Cnq2k221ydMgEizmKaXFw/1/da"><img src="http://feedads.g.doubleclick.net/~a/p5Q6P8Cnq2k221ydMgEizmKaXFw/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://garbage-collector.ru/2010/04/flex-in-a-week.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Вышел Adobe Flash Builder 4</title>
		<link>http://garbage-collector.ru/2010/03/adobe-flash-builder-4-released.html</link>
		<comments>http://garbage-collector.ru/2010/03/adobe-flash-builder-4-released.html#comments</comments>
		<pubDate>Mon, 22 Mar 2010 08:04:23 +0000</pubDate>
		<dc:creator>Юрий Яровой</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flash Builder 4]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Gumbo]]></category>

		<guid isPermaLink="false">http://garbage-collector.ru/?p=713</guid>
		<description><![CDATA[Сегодня на сайте Adobe.com появилась релизная версия Adobe Flash Builder 4, а следовательно и Adobe Flex 4 SDK.
Я этот момент уже достаточно давно поджидаю, поскольку Flex 4 SDK beta2, при помощи которой я до этого времени компилировал разрабатываемое приложение, была нестабильна. В общем, ура, товарищи!  
]]></description>
			<content:encoded><![CDATA[<p>Сегодня на сайте <a href="http://www.adobe.com/">Adobe.com</a> появилась релизная версия <a href="http://www.adobe.com/products/flashbuilder/">Adobe Flash Builder 4</a>, а следовательно и <a href="http://www.adobe.com/products/flex/flex_framework/">Adobe Flex 4 SDK</a>.</p>
<p>Я этот момент уже достаточно давно поджидаю, поскольку Flex 4 SDK beta2, при помощи которой я до этого времени компилировал разрабатываемое приложение, была нестабильна. В общем, ура, товарищи! <img src='http://garbage-collector.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p><a href="http://feedads.g.doubleclick.net/~a/gfE3zE0Mih48m3ftddrdHq8utC4/0/da"><img src="http://feedads.g.doubleclick.net/~a/gfE3zE0Mih48m3ftddrdHq8utC4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/gfE3zE0Mih48m3ftddrdHq8utC4/1/da"><img src="http://feedads.g.doubleclick.net/~a/gfE3zE0Mih48m3ftddrdHq8utC4/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://garbage-collector.ru/2010/03/adobe-flash-builder-4-released.html/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Проголосуйте за баг в Adobe Jira</title>
		<link>http://garbage-collector.ru/2010/03/bug-request-needed.html</link>
		<comments>http://garbage-collector.ru/2010/03/bug-request-needed.html#comments</comments>
		<pubDate>Sat, 06 Mar 2010 10:54:14 +0000</pubDate>
		<dc:creator>Юрий Яровой</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Adobe is one big bag]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Лучи ненависти]]></category>

		<guid isPermaLink="false">http://garbage-collector.ru/?p=703</guid>
		<description><![CDATA[Linux &#8212; хорошая система для разработчика. В ней есть много &#171;полезностей&#187;, которых нет под другими платформами. Но вот с разработкой Flash/Flex-приложений в ней есть определенные трудности. Это связанно с тем, что Debug Flash Player под Linux-ом завершает дебаг-сессию через 2-60 секунд после ее запуска. Согласитесь, что не очень удобно разрабатывать приложения, не имея возможности толком [...]]]></description>
			<content:encoded><![CDATA[<p>Linux &mdash; хорошая система для разработчика. В ней есть много &laquo;полезностей&raquo;, которых нет под другими платформами. Но вот с разработкой Flash/Flex-приложений в ней есть определенные трудности. Это связанно с тем, что Debug Flash Player под Linux-ом завершает дебаг-сессию через 2-60 секунд после ее запуска. Согласитесь, что не очень удобно разрабатывать приложения, не имея возможности толком их продебажить.</p>
<p>Больше года назад (а конкретнее 2 февраля 2009 года) в <a href="http://bugs.adobe.com/jira/">Adobe Jira</a> был создан <a href="http://bugs.adobe.com/jira/browse/FP-1421">таск с описанием этого бага</a>. С тех пор разработчики Flash Player не сделали в этом направлении <em>ни-че-го</em>. Поэтому я обращаюсь ко всем, кого заботит этот вопрос. Давайте дружно проголосуем за <a href="http://bugs.adobe.com/jira/browse/FP-1421">этот баг</a> и попытаемся таким образом общими усилиями собрать <del datetime="2010-03-06T10:42:36+00:00">сто тыщ мильонов</del> хотя бы сотню голосов, чтобы разработчики наконец-то обратили свое внимание на него, изменили его приоритет с &laquo;None&raquo; на &laquo;Normal&raquo; и взялись за его исправление.</p>
<p>Заранее спасибо всем поддержавшим.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/KqCAq8BcjFiZkKp7ZyLtiZyXgFA/0/da"><img src="http://feedads.g.doubleclick.net/~a/KqCAq8BcjFiZkKp7ZyLtiZyXgFA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/KqCAq8BcjFiZkKp7ZyLtiZyXgFA/1/da"><img src="http://feedads.g.doubleclick.net/~a/KqCAq8BcjFiZkKp7ZyLtiZyXgFA/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://garbage-collector.ru/2010/03/bug-request-needed.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Установка нескольких экземпляров Apache Tomcat 6 в виде сервисов под Windows Server 2003</title>
		<link>http://garbage-collector.ru/2010/02/install-several-instances-of-apache-tomcat-on-windows-server.html</link>
		<comments>http://garbage-collector.ru/2010/02/install-several-instances-of-apache-tomcat-on-windows-server.html#comments</comments>
		<pubDate>Thu, 18 Feb 2010 07:56:00 +0000</pubDate>
		<dc:creator>Юрий Яровой</dc:creator>
				<category><![CDATA[Материалы]]></category>
		<category><![CDATA[Apache Tomcat]]></category>
		<category><![CDATA[regedit]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows Server 2003]]></category>

		<guid isPermaLink="false">http://garbage-collector.ru/?p=687</guid>
		<description><![CDATA[Недавно столкнулся со следующей задачей: на одном веб-сервере под управлением Windows Server 2003 необходимо было установить несколько экземпляров Apache Tomcat 6 для того, чтобы в каждом из них «крутилось» свое собственное приложение. Установить нужно было таким образом, чтобы каждый из этих сервлет-контейнеров являлся в системе обособленным сервисом со своей конфигурацией, параметрами автозапуска, отдельным пунктом в [...]]]></description>
			<content:encoded><![CDATA[<p>Недавно столкнулся со следующей задачей: на одном веб-сервере под управлением Windows Server 2003 необходимо было установить несколько экземпляров Apache Tomcat 6 для того, чтобы в каждом из них «крутилось» свое собственное приложение. Установить нужно было таким образом, чтобы каждый из этих сервлет-контейнеров являлся в системе обособленным сервисом со своей конфигурацией, параметрами автозапуска, отдельным пунктом в списке установленных программ системы, ну и, в качестве бонуса, собственной иконкой в трее. <img src='http://garbage-collector.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://garbage-collector.ru/wp-content/uploads/2010/02/tray.png"><img src="http://garbage-collector.ru/wp-content/uploads/2010/02/tray.png" alt="Windows Server 2003 tray" title="Tray" width="155" height="121" class="alignleft size-full wp-image-697" /></a></p>
<p>Посмотрев решения подобной задачи в интернете, обнаружил, что, пожалуй, единственным способом ее решения будет самостоятельная правка реестра системы. Это связано с тем, что стандартный инсталлятор Apache Tomcat 6 не поддерживает возможности его установки в виде нескольких сервисов и не позволяет разнести настройки каждого из экземпляров по отдельным веткам реестра.</p>
<p>Здесь я хочу сделать важное предупреждение. Описываемая в статье техника является работоспособной и проверенной мной на собственном опыте и на реальном рабочем сервере. Она даже не является хаком, поскольку, будь инсталлятор немного более грамотным, он бы выполнял ее автоматически. Я не проверял, но скорее всего эта техника будет работать и на Windows Server 2008. Выполняемые процедуры не затрагивают никаких других настроек и веток реестра, кроме тех, которые непосредственно относятся к каждому отдельному сервису Apache Tomcat. Однако я не несу никакой ответственности за возможный ущерб, связанный с непосредственным, а так же с неосторожным или неправильным применением этой техники. Используйте ее на свой страх и риск. И не забудьте сделать резервную копию важных данных перед началом процедуры. <img src='http://garbage-collector.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Итак, поехали.</p>
<ol>
<li>Установите первый экземпляр Apache Tomcat в отдельную директорию, например, в <code>C:\Tomcat6_1</code>. На последнем шаге мастера установки нужно убрать галочку <strong>Run Tomcat</strong>.</li>
<li>Откройте редактор реестра regedit: <strong>Start</strong> &rarr; <strong>Run…</strong> &rarr; <code>regedit</code> &rarr; нажмите <strong>Enter</strong>.</li>
<li>Переместитесь к ветке реестра <code>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tomcat6</code> и переименуйте ее из <code>Tomcat6</code> в <code>Tomcat6_1</code>.</li>
<li>Здесь же измените значение свойства <code>DisplayName</code> с <code>Apache Tomcat</code> на <code>Apache Tomcat 6 (1)</code>.  Именно под этим именем теперь будет отображаться сервис в списке локальных служб системы. Чтобы посмотреть список служб вашей системы выполните следующую последовательность действий: кнопка <strong>Start</strong> &rarr; <strong>Run…</strong> &rarr; <code>services.msc</code> &rarr; клавиша <strong>Enter</strong>.</li>
<p><a href="http://garbage-collector.ru/wp-content/uploads/2010/02/services.png"><img src="http://garbage-collector.ru/wp-content/uploads/2010/02/services-150x150.png" alt="System services" title="Services" width="150" height="150" class="alignleft size-thumbnail wp-image-696" /></a></p>
<li>Теперь измените часть значения свойства <code>ImagePath</code> с <code>…//RS//Tomcat6</code> на <code>…//RS//Tomcat6_1</code>. Именно с этим именем будет запускаться экземпляр службы. Это значение понадобится нам в шаге 9.</li>
<li>Далее переходим к ветке <code>HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat6</code> и переименовываем ее в <code>Tomcat6_1</code>. В дальнейшем это позволит нам установить новый экземпляр Apache Tomcat без перезаписи настроек устанавливаемого в настоящий момент экземпляра.</li>
<li>По тем же самым причинам меняем название ветки <code>HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat\6.0</code> на <code>6.0_1</code>.</li>
<li>Теперь переходим к ветке <code>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run</code> и меняем <strong>имя</strong> ключа с <code>ApacheTomcatMonitor</code> на  <code>ApacheTomcatMonitor_1</code>. Это имя приложения по управлению службой. Его изменение позволяет нам избежать перезаписи этого ключа при установке следующих экземпляров Tomcat и управлять каждым из сервисов при помощи отдельного окна приложения.</li>
<p><a href="http://garbage-collector.ru/wp-content/uploads/2010/02/service_monitor.png"><img src="http://garbage-collector.ru/wp-content/uploads/2010/02/service_monitor-150x150.png" alt="Service monitor" title="Service monitor" width="150" height="150" class="alignleft size-thumbnail wp-image-695" /></a></p>
<li>Теперь изменим завершающую часть <strong>значения</strong> этого ключа с <code>…Tomcat6</code> на <code>…Tomcat6_1</code>. Внимание: это значение должно совпадать с тем, которое мы присвоили ключу <code>ImagePath</code> в шаге 5.</li>
<li>Для того, чтобы иметь возможность потом деинсталлировать по отдельности каждый из установленных экземпляров Tomcat, мы должны перейти в ветку реестра <code>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Apache Tomcat 6.0</code> и изменить ее название на <code>Apache Tomcat 6.0_1</code>. Это позволит нам избежать перезаписи данных, необходимых для деинсталляции приложения, во время установки последующих экземпляров Apache Tomcat. Здесь же можно изменить значение ключа <code>DisplayName</code> на <code>Apache Tomcat 6.0 (1)</code>.</li>
<p><a href="http://garbage-collector.ru/wp-content/uploads/2010/02/uninstall.png"><img src="http://garbage-collector.ru/wp-content/uploads/2010/02/uninstall-150x150.png" alt="Installed applications" title="Installed applications" width="150" height="150" class="alignleft size-thumbnail wp-image-698" /></a></p>
<li>Перезагрузите систему, чтобы изменения вступили в силу.</li>
<li>Для того чтобы распределить установленные экземпляры Tomcat по разным локальным портам, мы должны правильно сконфигурировать каждый из них. Открываем файл C:\Tomcat6_1\conf\server.xml и меняем значения следующих узлов:
<ol>
<li><code>&lt;Server port="8005" shutdown="SHUTDOWN"&gt;</code> на <code>8001</code> (для каждого из последующих сервлет-контейнеров мы будем использовать порты <code>8002</code>, <code>8003</code> и т.д.).</li>
<li><code>&lt;Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000" redirectPort="8443" /&gt;</code> на <code>8081</code> (далее будем использовать <code>8082</code>, <code>8083</code> и т.д.).</li>
</ol>
</li>
<li>Выполните инструкции с 1 по 12 для каждого из последующих экземпляров Apache Tomcat, используя для разделения каждого из них увеличенное значение индекса. Допустим, второй экземпляр должен быть установлен в папку <code>C:\Tomcat6_<strong>2</strong></code>, ветка реестра из шага 3 должна быть переименована в <code>Tomcat_<strong>2</strong></code>, а ключ <code>DisplayName</code> в шаге 4 изменен на <code>Apache Tomcat (<strong>2</strong>)</code> и т.п.</li>
<li>Перезагрузите систему, чтобы удостовериться в том, что разные экземпляры Tomcat нормально запускаются во время старта Windows.</li>
</ol>
<p>На этом все на сегодня. Буду надеяться, что заметка окажется вам полезной. Удачного вам дня! <img src='http://garbage-collector.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p><a href="http://feedads.g.doubleclick.net/~a/C71pIp2G0iH1d9hDi-1h_gI4YXk/0/da"><img src="http://feedads.g.doubleclick.net/~a/C71pIp2G0iH1d9hDi-1h_gI4YXk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/C71pIp2G0iH1d9hDi-1h_gI4YXk/1/da"><img src="http://feedads.g.doubleclick.net/~a/C71pIp2G0iH1d9hDi-1h_gI4YXk/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://garbage-collector.ru/2010/02/install-several-instances-of-apache-tomcat-on-windows-server.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Пост вопросов и ответов об Intellij IDEA</title>
		<link>http://garbage-collector.ru/2010/01/intellij-idea-questions-and-answers.html</link>
		<comments>http://garbage-collector.ru/2010/01/intellij-idea-questions-and-answers.html#comments</comments>
		<pubDate>Sat, 23 Jan 2010 22:04:41 +0000</pubDate>
		<dc:creator>Юрий Яровой</dc:creator>
				<category><![CDATA[Материалы]]></category>
		<category><![CDATA[FAQ]]></category>
		<category><![CDATA[IntelliJ IDEA]]></category>
		<category><![CDATA[Аукцион невиданной щедрости]]></category>
		<category><![CDATA[Вопрос-ответ]]></category>
		<category><![CDATA[Помощь]]></category>

		<guid isPermaLink="false">http://garbage-collector.ru/?p=676</guid>
		<description><![CDATA[В этом посте каждый может задать вопрос, каким-либо образом относящийся к среде разработки Intellij IDEA, и получить на него вразумительный ответ. На русском. Развернуто и актуально.  
Если вы уже давно присматриваетесь к этой среде разработки, либо даже пробовали перевести свой рабочий процесс на разработку в ней, но что-то у вас не получалось, не выходило, [...]]]></description>
			<content:encoded><![CDATA[<p>В этом посте каждый может задать вопрос, каким-либо образом относящийся к среде разработки <a href="http://www.jetbrains.com/idea/">Intellij IDEA</a>, и получить на него вразумительный ответ. На русском. Развернуто и актуально. <img src='http://garbage-collector.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Если вы уже давно присматриваетесь к этой среде разработки, либо даже пробовали перевести свой рабочий процесс на разработку в ней, но что-то у вас не получалось, не выходило, не настраивалось, вызывало недоумение, приводило в шок; и в результате чего вы так и не смогли взять этот неприступный бастион, этот редут интеллекта, этот ларец, доверху наполненный изумрудами программерской мудрости, и вынуждены были отказаться от использования среды на долгие месяцы и годы, то &laquo;вэлкам&raquo; внутрь поста. Попробуем вместе решить вашу проблему.</p>
<p>Со временем, если накопится достаточное количество вопросов, то на их основе будет создан Intellij IDEA FAQ, который, я думаю, окажется небесполезным многим разработчикам.</p>
<p>Ну а для начала, всем интересующимся этой темой я рекомендую ознакомиться вот с <a href="http://refcardz.dzone.com/refcardz/intellij-idea">этим PDF-документом</a>, полным цветных картинок и изумительных комментариев к ним (правда на английском). Ну и не забывайте задавать свои вопросы. <img src='http://garbage-collector.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p><a href="http://feedads.g.doubleclick.net/~a/Ky63fJLhsa_E_Most_KPQIf8Kns/0/da"><img src="http://feedads.g.doubleclick.net/~a/Ky63fJLhsa_E_Most_KPQIf8Kns/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Ky63fJLhsa_E_Most_KPQIf8Kns/1/da"><img src="http://feedads.g.doubleclick.net/~a/Ky63fJLhsa_E_Most_KPQIf8Kns/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://garbage-collector.ru/2010/01/intellij-idea-questions-and-answers.html/feed</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>Нужны Flex/Flash и Java программисты. Москва</title>
		<link>http://garbage-collector.ru/2010/01/flex-and-java-developers-needed-in-moscow.html</link>
		<comments>http://garbage-collector.ru/2010/01/flex-and-java-developers-needed-in-moscow.html#comments</comments>
		<pubDate>Fri, 15 Jan 2010 12:36:13 +0000</pubDate>
		<dc:creator>Юрий Яровой</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Вакансии]]></category>
		<category><![CDATA[Москва]]></category>
		<category><![CDATA[Работа]]></category>

		<guid isPermaLink="false">http://garbage-collector.ru/?p=664</guid>
		<description><![CDATA[Хорошие люди попросили разместить объявление, что я и сделал.  
В компанию &#171;Датэк&#187; для работы над проектом &#171;COMDI&#187; требуются хорошие программисты:
Flex/Flash программист

Хорошее знание ActionScript3, Flex.
Опыт разработки полноценных веб-приложений
Желателен опыт работы с медиа серверами (FMS, Wowza).

JAVA программист

Опыт разработки апплетов, работа с изображениями.
Желательно, опыт работы с JNI.
Необходимо представление о работе WinAPI, cетевых протоколах, желательно P2P.
Придется разрабатывать системы [...]]]></description>
			<content:encoded><![CDATA[<p>Хорошие люди попросили разместить объявление, что я и сделал. <img src='http://garbage-collector.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>В компанию &laquo;<a href="http://www.datech.ru">Датэк</a>&raquo; для работы над проектом &laquo;<a href="http://www.comdi.com">COMDI</a>&raquo; требуются хорошие программисты:</p>
<p><strong>Flex/Flash программист</strong></p>
<ul>
<li>Хорошее знание ActionScript3, Flex.</li>
<li>Опыт разработки полноценных веб-приложений</li>
<li>Желателен опыт работы с медиа серверами (FMS, Wowza).</li>
</ul>
<p><strong>JAVA программист</strong></p>
<ul>
<li>Опыт разработки апплетов, работа с изображениями.</li>
<li>Желательно, опыт работы с JNI.</li>
<li>Необходимо представление о работе WinAPI, cетевых протоколах, желательно P2P.</li>
<li>Придется разрабатывать системы скриншаринга, удаленного управления рабочим столом, работа с веб-камерами, p2p соединения и т.д.</li>
</ul>
<p>Работа постоянная в современном офисе, в районе ВДНХ. Уровень ЗП &#8211; 70,000-100,000.<br />
Резюме присылайте на <a href="mailto:egor.voronin@gmail.com">egor.voronin@gmail.com</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/I_td9f5_75dMyovuAuIeBPnaQvg/0/da"><img src="http://feedads.g.doubleclick.net/~a/I_td9f5_75dMyovuAuIeBPnaQvg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/I_td9f5_75dMyovuAuIeBPnaQvg/1/da"><img src="http://feedads.g.doubleclick.net/~a/I_td9f5_75dMyovuAuIeBPnaQvg/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://garbage-collector.ru/2010/01/flex-and-java-developers-needed-in-moscow.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Приведение объекта к булеву значению, а так же к любому другому типу в Groovy</title>
		<link>http://garbage-collector.ru/2010/01/object-casting-to-boolean-and-any-type-in-groovy.html</link>
		<comments>http://garbage-collector.ru/2010/01/object-casting-to-boolean-and-any-type-in-groovy.html#comments</comments>
		<pubDate>Sat, 09 Jan 2010 20:17:31 +0000</pubDate>
		<dc:creator>Юрий Яровой</dc:creator>
				<category><![CDATA[Материалы]]></category>
		<category><![CDATA[asBoolean]]></category>
		<category><![CDATA[asType]]></category>
		<category><![CDATA[Boolean]]></category>
		<category><![CDATA[Casting]]></category>
		<category><![CDATA[Do you know...]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[toString]]></category>
		<category><![CDATA[Types]]></category>

		<guid isPermaLink="false">http://garbage-collector.ru/?p=657</guid>
		<description><![CDATA[Все мы знаем, о таком замечательном методе, как toString(), имеющемся у любого объекта в языках, подобных Java и ActionScript. При попытке работы объектом, как со строкой, будет использовано возвращаемое именно этим методом значение. Поэтому мы можем в своих классах переопределять поведение метода, имеющееся у объекта по умолчанию, и возвращать свои собственные специализированные значения.
В этом отношении [...]]]></description>
			<content:encoded><![CDATA[<p>Все мы знаем, о таком замечательном методе, как <code>toString()</code>, имеющемся у любого объекта в языках, подобных Java и ActionScript. При попытке работы объектом, как со строкой, будет использовано возвращаемое именно этим методом значение. Поэтому мы можем в своих классах переопределять поведение метода, имеющееся у объекта по умолчанию, и возвращать свои собственные специализированные значения.</p>
<p>В этом отношении <a href="http://groovy.codehaus.org/">язык Groovy</a> не стал исключением &mdash; в нем тоже все объекты имеют метод <code>toString()</code>, логику которого можно переопределять, как в собственных классах пользователя, так и в любом другом из уже имеющихся классов и объектов программы, при помощи свойства <code>metaClass</code>. Однако Groovy шагнул дальше &mdash; он позволяет нам похожим образом приводить объекты и к булеву значению, и, кроме того, к любому другому типу объектов в приложении.</p>
<p>Рассмотрим для начала ситуацию приведения объекта к булеву значению. Все просто &mdash; берете и переопределяете в своем классе (или посредством поля <code>metaClass</code> в объекте или классе, доступа к исходному коду которого у вас нет) метод <code>asBoolean()</code>:</p>
<div class="igBar"><span id="lgroovy-3"><a  href="#" onclick="javascript:showPlainTxt('groovy-3'); return false;"><span id='text_content'>ТЕКСТ&nbsp;С</span>&nbsp;<span id='text_p'>П</span><span id='text_o'>О</span><span id='text_d'>Д</span><span id='text_c'>С</span><span id='text_v'>В</span><span  id='text_e'>Е</span><span id='text_t'>Т</span><span id='text_k'>К</span><span  id='text_o2'>О</span><span id='text_y'>Й</span></a></span></div>
<div class="syntax_hilite"><span class="langName">GROOVY:</span>
<div id="groovy-3">
<div class="groovy">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">class</span> User <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;bntl=1"><span style="color: #aaaadd; font-weight: bold;">String</span></a> username</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <a href="http://www.google.com/search?q=allinurl%3ABoolean+java.sun.com&amp;bntl=1"><span style="color: #aaaadd; font-weight: bold;">Boolean</span></a> active</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <a href="http://www.google.com/search?q=allinurl%3ABoolean+java.sun.com&amp;bntl=1"><span style="color: #aaaadd; font-weight: bold;">Boolean</span></a> asBoolean<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; active</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">assert <span style="color: #000000; font-weight: bold;">new</span> User<span style="color: #66cc66;">&#40;</span>username: <span style="color: #ff0000;">'mrFreeman'</span>, active: <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">assert !<span style="color: #000000; font-weight: bold;">new</span> User<span style="color: #66cc66;">&#40;</span>username: <span style="color: #ff0000;">'mrFreeman'</span>, active: <span style="color: #000000; font-weight: bold;">false</span><span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// Переопределяем метод в существующем классе посредством свойства metaClass.</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;bntl=1"><span style="color: #aaaadd; font-weight: bold;">String</span></a>.<span style="color: #006600;">metaClass</span>.<span style="color: #006600;">asBoolean</span> = <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; delegate == /groovy/</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">assert !<span style="color: #ff0000;">'true'</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">assert <span style="color: #ff0000;">'groovy'</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Ну и, как вы уже могли догадаться, аналогичным способом мы переопределяем метод <code>asType()</code>, чтобы тем самым сделать возможным приведение нашего объекта к любому нужному нам типу:</p>
<div class="igBar"><span id="lgroovy-4"><a  href="#" onclick="javascript:showPlainTxt('groovy-4'); return false;"><span id='text_content'>ТЕКСТ&nbsp;С</span>&nbsp;<span id='text_p'>П</span><span id='text_o'>О</span><span id='text_d'>Д</span><span id='text_c'>С</span><span id='text_v'>В</span><span  id='text_e'>Е</span><span id='text_t'>Т</span><span id='text_k'>К</span><span  id='text_o2'>О</span><span id='text_y'>Й</span></a></span></div>
<div class="syntax_hilite"><span class="langName">GROOVY:</span>
<div id="groovy-4">
<div class="groovy">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;bntl=1"><span style="color: #aaaadd; font-weight: bold;">String</span></a>.<span style="color: #006600;">metaClass</span>.<span style="color: #006600;">asType</span> = <span style="color: #66cc66;">&#123;</span><span style="color: #000000; font-weight: bold;">Class</span> type -&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>type == User<span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000000; font-weight: bold;">new</span> User<span style="color: #66cc66;">&#40;</span>username: delegate<span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">null</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">assertEquals <span style="color: #ff0000;">'test'</span>, <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'true'</span> <span style="color: #b1b100;">as</span> User<span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">username</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Вот такие очень гибкие возможности предоставляет нам Groovy.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/xk0zqk7KqPRmxW_o0e913XaBCVU/0/da"><img src="http://feedads.g.doubleclick.net/~a/xk0zqk7KqPRmxW_o0e913XaBCVU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/xk0zqk7KqPRmxW_o0e913XaBCVU/1/da"><img src="http://feedads.g.doubleclick.net/~a/xk0zqk7KqPRmxW_o0e913XaBCVU/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://garbage-collector.ru/2010/01/object-casting-to-boolean-and-any-type-in-groovy.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
