
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>pgt &#187; jira</title>
	<atom:link href="http://pgt.de/tag/jira/feed/" rel="self" type="application/rss+xml" />
	<link>http://pgt.de</link>
	<description>t3chnology scouting GmbH</description>
	<lastBuildDate>Thu, 08 Dec 2011 11:07:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Atlassian dropping IE 6 support</title>
		<link>http://pgt.de/2010/02/08/atlassian-dropping-ie-6-support/</link>
		<comments>http://pgt.de/2010/02/08/atlassian-dropping-ie-6-support/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 10:49:50 +0000</pubDate>
		<dc:creator>P.G.Taboada</dc:creator>
				<category><![CDATA[From nerds to nerds]]></category>
		<category><![CDATA[atlassian]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[EOL]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[jira]]></category>

		<guid isPermaLink="false">http://pgt.de/?p=786</guid>
		<description><![CDATA[<p>I found this one here in the atlassian forums, unfortunately the link posted there is broken.</p> <p>Hi guys,</p> <p>We are announcing our end of life of Atlassian support for Internet Explorer 6 on JIRA.</p> <p>This will be effective from the launch date of JIRA 4.2 (target Q3, 2010). This means that JIRA 4.1 will [...]]]></description>
			<content:encoded><![CDATA[<p>I found this one here in the atlassian forums, unfortunately the link posted there is broken.</p>
<blockquote><p>Hi guys,</p>
<p>We are announcing our end of life of Atlassian support for Internet Explorer 6 on JIRA.</p>
<p>This will be effective from the launch date of JIRA 4.2 (target Q3, 2010). This means that JIRA 4.1 will be the last version of JIRA to support IE6. (From JIRA 4.0 to JIRA 4.1, all of the main functionality will work in IE 6; however, some of the visual effects will be missing).</p></blockquote>
<p>The <a href="http://confluence.atlassian.com/x/HQCID" target="_blank">End of Support Announcements for JIRA</a> specifies end of support for browsers, appserver and JDK. We should add Atlassian products to the <a href="http://pgt.de/2010/02/08/ie-6-death-march/">IE death march</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://pgt.de/2010/02/08/atlassian-dropping-ie-6-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jira Plugin &amp; Log4J</title>
		<link>http://pgt.de/2009/02/25/jira-plugin-log4j/</link>
		<comments>http://pgt.de/2009/02/25/jira-plugin-log4j/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 10:48:00 +0000</pubDate>
		<dc:creator>P.G.Taboada</dc:creator>
				<category><![CDATA[Java & Co.]]></category>
		<category><![CDATA[jira]]></category>

		<guid isPermaLink="false">http://pgt.de/?p=264</guid>
		<description><![CDATA[Jira plugin development and log4j configuration. [...]]]></description>
			<content:encoded><![CDATA[<p>I came across this problem lately when I was working on a Jira plugin. A Jira plugin does not rely on a OSGi container or some similar plugin framework. The plugin consists mainly of a jar file that gets deployed with (I mean inside&#8230;) the Jira Java EE  web application.</p>
<p>Logging is an issue in such an environment: the surrounding application configures the logging API &#8211; there is no way to provide log4j configuration fragments.</p>
<p><span id="more-264"></span></p>
<p>The best way I found to solve the problem was (again) to use the native logging API to the configuration manually. Since Jira has already setup the logging API, all I needed was to add some categories with some levels, or, if I need to, create my own appenders. That&#8217;s all possible with the API exposed by log4j.</p>
<p><div style="padding: 50px 10px 50px 10px; text-align:center;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-8682101792434953";
/* blogposts */
google_ad_slot = "3634251742";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></p>
<p>So I created a Jira component module inside my plugin that does the configuration magic. Jira uses PicoContainer (lightweight, embedable, configurable, POJO based IOC/DI component runtime) as the runtime for their own and for components provided by plugins. As components get initialized along with the Jira application it is good place to implement the required logging configuration:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">x.y</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.log4j.Level</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.log4j.Logger</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> LogConfigurationComponent <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> Logger LOG <span style="color: #339933;">=</span> Logger.<span style="color: #006633;">getLogger</span><span style="color: #009900;">&#40;</span>LogConfigurationComponent.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> LogConfigurationComponent<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
		Level level <span style="color: #339933;">=</span> Level.<span style="color: #006633;">toLevel</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;DEBUG&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		Logger logger <span style="color: #339933;">=</span> Logger.<span style="color: #006633;">getLogger</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;x.y.somethingcool&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		Level oldLevel <span style="color: #339933;">=</span> logger.<span style="color: #006633;">getLevel</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		logger.<span style="color: #006633;">setLevel</span><span style="color: #009900;">&#40;</span>level<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #003399;">String</span> message <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Changing loglevel for logger &quot;</span>
				<span style="color: #339933;">+</span> logger.<span style="color: #006633;">getName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot; from &quot;</span> <span style="color: #339933;">+</span> oldLevel.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
				<span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot; to &quot;</span> <span style="color: #339933;">+</span> level.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		LOG.<span style="color: #006633;">info</span><span style="color: #009900;">&#40;</span>message<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Just by adding this component to the atlassian-plugin.xml in my plugin I solved my problems with distributed logging configuration:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;atlassian-plugin</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;x.y.coolthings&quot;</span></span>
<span style="color: #009900;">	<span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;CoolThings&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;plugin-info<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Simple plugin<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1.0<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;vendor</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;PGT Technology Scouting&quot;</span> <span style="color: #000066;">url</span>=<span style="color: #ff0000;">&quot;http://www.pgt.de&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/plugin-info<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;component</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;logConfig&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;The logging configuration for this plugin&quot;</span></span>
<span style="color: #009900;">		<span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;x.y.LogConfigurationComponent&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/component<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #808080; font-style: italic;">&lt;!-- ... --&gt;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/atlassian-plugin<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://pgt.de/2009/02/25/jira-plugin-log4j/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Security Anforderungen 2.0: Gruppen, Rollen, Flexibilität</title>
		<link>http://pgt.de/2008/04/28/security-anforderungen-20-gruppen-rollen-flexibilitat/</link>
		<comments>http://pgt.de/2008/04/28/security-anforderungen-20-gruppen-rollen-flexibilitat/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 09:00:04 +0000</pubDate>
		<dc:creator>P.G.Taboada</dc:creator>
				<category><![CDATA[Java & Co.]]></category>
		<category><![CDATA[jira]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[spring]]></category>

		<guid isPermaLink="false">http://pgt.de/?p=158</guid>
		<description><![CDATA[<p>Was habe ich mich gefreut, als Jira das Sicherheitskonzept um Rollen (Projekt-Rollen) erweitert hat. Statt Rechtekonfigurationen an Benutzergruppen zu binden, hat man jetzt die Möglichkeit Rechte an bestimmte Rollen zu binden. Für jedes Projekt folgt dann die Benutzer/ Rolle Zuweisung: dadurch ergibt sich letztlich, welche Rechte ein Benutzer für ein bestimmtes Projekt haben wird.</p> [...]]]></description>
			<content:encoded><![CDATA[<p>Was habe ich mich gefreut, als Jira das Sicherheitskonzept um Rollen (Projekt-Rollen) erweitert hat. Statt Rechtekonfigurationen an Benutzergruppen zu binden, hat man jetzt die Möglichkeit <a href="http://www.atlassian.com/software/jira/docs/latest/project_role_management.html" target="_blank">Rechte an bestimmte Rollen zu binden</a>. Für jedes Projekt folgt dann die Benutzer/ Rolle Zuweisung: dadurch ergibt sich letztlich, welche Rechte ein Benutzer für ein bestimmtes Projekt haben wird.</p>
<p>Gerade in kleine, agil arbeitende Teams ist das wesentlich effizienter: in einem Projekt ist man der Projektleiter, bei einem anderem lediglich ein Entwickler. So flexibel wie Entwickler heute die Rollen wechseln müssen, so flexibel konfigurierbar muss heute auch unternehmenskritische Software sein. In der Vergangenheit musste man in Jira für jede mögliche Kombination der Rollen in einem Projekt entsprechende Benutzergruppen einführen. Benutzergruppen sind aber statisch/ global und nehmen keine Rücksicht auf besondere Projektgegebenheiten. Am Ende bekommt jedes Projekt eigene Benutzergruppen.</p>
<p>Die Einführung von Projektrollen und Sicherheitskonfigurationen für Projektrollen im Allgemeinen reduziert die Konfiguration drastisch. Danke Atlassian!</p>
<p>Ein Rollenmodell ist nicht mit den heute üblichen deklarativen Mitteln konfigurierbar. Wir scheitern an der instanzbasierten Sicherheit. Je nach Projekt hat der Benutzer andere Rollen. Um so wichtiger ist es, ein Security Framework zu wählen, mit dem man die nötige Flexibilität und die Möglichkeit bekommt, eigene Anforderungen umzusetzen.</p>
<p>Auch wenn <a href="http://java.sun.com/javase/6/docs/technotes/guides/security/jaas/JAASRefGuide.html" target="_blank">JAAS</a> ein beeindruckendes Werk ist, mangelt es meiner Meinung nach an Flexibilität. Anpassungen sind sehr schnell nicht mehr portabel, eine Bindung zu der Laufzeitumgebung und oder Infrastruktur ist das Ergebenis. <a href="http://static.springframework.org/spring-security/site/index.html" target="_blank">Spring Security</a> (formerly known as Acegi) ist hingegen sehr flexibel. Security wird dadurch nicht trivial, aber besondere Anforderungen und entsprechende Lösungsansätze scheitern nicht mehr an dem Framework.</p>
<p>Schade dass in der <a href="http://static.springframework.org/spring-security/site/reference/html/springsecurity.html" target="_blank">Spring Security Dokumentation</a> zu diesem Thema nichts zu finden ist. Eine Interessante Ausarbeitung zum Thema Gruppen und Rollen auf Konzeptebene <a href="http://www.mwiesner.com/index.php/2008/03/28/rollen-sind-keine-gruppen/" target="_blank">ist hier zu finden</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://pgt.de/2008/04/28/security-anforderungen-20-gruppen-rollen-flexibilitat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

