<?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>AMF48</title>
	<atom:link href="http://amf48.develop.jp/feed" rel="self" type="application/rss+xml" />
	<link>http://amf48.develop.jp</link>
	<description>AMF Encode/Decode Library for Java</description>
	<lastBuildDate>Sun, 04 Mar 2012 09:47:28 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.8.41</generator>
	<item>
		<title>How to get session list.</title>
		<link>http://amf48.develop.jp/en/archives/399</link>
		<comments>http://amf48.develop.jp/en/archives/399#comments</comments>
		<pubDate>Sun, 04 Mar 2012 09:47:28 +0000</pubDate>
		<dc:creator><![CDATA[wacky]]></dc:creator>
				<category><![CDATA[Unknown]]></category>

		<guid isPermaLink="false">http://amf48.develop.jp/?p=399</guid>
		<description><![CDATA[I need to get all active sessions from servlet. But I believe this API is obsolated&#8230; That is why, I tried to implement using existing API. package jp.develop.tool.servlet; import java.io.Serializable; import java.util.ArrayList; import java.util.Collections; import java.util.List; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionActivationListener; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; /** * Session list providing Listener. */ public class SessionListListener implements [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>I need to get all active sessions from servlet.<br />
But I believe this API is obsolated&#8230;</p>
<p>That is why, I tried to implement using existing API.</p>
<pre class="brush:java">
package jp.develop.tool.servlet;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionActivationListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

/**
 * Session list providing Listener.
 */
public class SessionListListener implements HttpSessionListener, HttpSessionActivationListener, Serializable {

	private static final boolean DEBUG = true;
	private static final long serialVersionUID = 7490899888824580726L;
	private static final String SESSION_LISTENER_KEY = "_sessionListListener";

	private static Object lock = new Object();
	private static List<HttpSession> sessions = new ArrayList<HttpSession>();
	private static List<HttpSession> sessionsForOutput = Collections.unmodifiableList(sessions);

	/**
	 * Get all sessions.
	 * @return All sessions list.
	 */
	public static List<HttpSession> getSessions() {
		return sessionsForOutput;
	}

	/**
     * Default Constructor.
     */
    public SessionListListener() {
    	log(String.format("Session List Listener is initialized."));
    }

	/**
     * @see HttpSessionListener#sessionCreated(HttpSessionEvent)
     */
    public void sessionCreated(HttpSessionEvent event) {
    	synchronized (lock) {
    		HttpSession session = event.getSession();
    		session.setAttribute(SESSION_LISTENER_KEY, this);
        	sessions.add(session);
        	log(String.format("Session Added: %s", session.getId()));
		}
    }

    /**
     * @see HttpSessionListener#sessionDestroyed(HttpSessionEvent)
     */
    public void sessionDestroyed(HttpSessionEvent event) {
    	synchronized (lock) {
    		HttpSession session = event.getSession();
    		session.removeAttribute(SESSION_LISTENER_KEY);
        	sessions.remove(session);		// XXX May not good implementation for performance.
        	log(String.format("Session Removed: %s", session.getId()));
		}
    }

    /**
     * @see HttpSessionActivationListener#sessionDidActivate(HttpSessionEvent)
     */
    public void sessionDidActivate(HttpSessionEvent event) {
    	synchronized (lock) {
    		HttpSession session = event.getSession();
        	sessions.add(session);
        	log(String.format("Session Activate: %s", session.getId()));
		}
    }

	/**
     * @see HttpSessionActivationListener#sessionWillPassivate(HttpSessionEvent)
     */
    public void sessionWillPassivate(HttpSessionEvent event) {
    	synchronized (lock) {
    		HttpSession session = event.getSession();
        	sessions.remove(session);		// XXX May not good implementation for performance.
        	log(String.format("Session Passivate: %s", session.getId()));
		}
    }

	private static void log(String message) {
    	if (DEBUG) {
    		System.out.println(message);
    	}
	}
}
</pre>
<p>If anybody find a problem, please let me know&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://amf48.develop.jp/en/archives/399/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DevQuiz is over.</title>
		<link>http://amf48.develop.jp/en/archives/384</link>
		<comments>http://amf48.develop.jp/en/archives/384#comments</comments>
		<pubDate>Mon, 12 Sep 2011 12:54:50 +0000</pubDate>
		<dc:creator><![CDATA[wacky]]></dc:creator>
				<category><![CDATA[Others]]></category>
		<category><![CDATA[devquiz]]></category>
		<category><![CDATA[gdd11jp]]></category>

		<guid isPermaLink="false">http://amf48.develop.jp/?p=384</guid>
		<description><![CDATA[Sorry, this entry is only available in 日本語.]]></description>
				<content:encoded><![CDATA[<p>Sorry, this entry is only available in <a href="http://amf48.develop.jp/feed">日本語</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://amf48.develop.jp/en/archives/384/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I got full marks at DevQuiz(Google Developer Day 2011)</title>
		<link>http://amf48.develop.jp/en/archives/377</link>
		<comments>http://amf48.develop.jp/en/archives/377#comments</comments>
		<pubDate>Wed, 07 Sep 2011 10:07:25 +0000</pubDate>
		<dc:creator><![CDATA[wacky]]></dc:creator>
				<category><![CDATA[Others]]></category>
		<category><![CDATA[devquiz]]></category>
		<category><![CDATA[gdd11jp]]></category>

		<guid isPermaLink="false">http://amf48.develop.jp/?p=377</guid>
		<description><![CDATA[I got full marks for DevQuiz, which is required to join Google Developer Day 2011. Today I just upload the image&#8230;(Because, DevQuiz is still open.)]]></description>
				<content:encoded><![CDATA[<p>I got full marks for DevQuiz, which is required to join Google Developer Day 2011.<br />
Today I just upload the image&#8230;(Because, DevQuiz is still open.)</p>
<p><a href="http://amf48.develop.jp/wp-content/uploads/2011/09/DevQuiz2011.png"><img src="http://amf48.develop.jp/wp-content/uploads/2011/09/DevQuiz2011.png" alt="FullMarks" title="DevQuiz2011" width="357" height="325" class="aligncenter size-full wp-image-378" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://amf48.develop.jp/en/archives/377/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using GAE&#8217;s Channel API by Adobe AIR</title>
		<link>http://amf48.develop.jp/en/archives/365</link>
		<comments>http://amf48.develop.jp/en/archives/365#comments</comments>
		<pubDate>Thu, 02 Jun 2011 14:50:38 +0000</pubDate>
		<dc:creator><![CDATA[wacky]]></dc:creator>
				<category><![CDATA[Others]]></category>
		<category><![CDATA[Channel API]]></category>
		<category><![CDATA[GAE]]></category>

		<guid isPermaLink="false">http://amf48.develop.jp/?p=365</guid>
		<description><![CDATA[GAE&#8217;s channel API provide client library only for JavaScript. That is why, I thought that it is difficult to use channel API from Adobe AIR. But it looks possible&#8230;At least, my test code is working&#8230; Anyway, I need rewrite my code for better structure.]]></description>
				<content:encoded><![CDATA[<p>GAE&#8217;s channel API provide client library only for JavaScript.<br />
That is why, I thought that it is difficult to use channel API<br />
from Adobe AIR.</p>
<p>But it looks possible&#8230;At least, my test code is working&#8230;<br />
Anyway, I need rewrite my code for better structure.</p>
]]></content:encoded>
			<wfw:commentRss>http://amf48.develop.jp/en/archives/365/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AMF48-0.7.3 is released.</title>
		<link>http://amf48.develop.jp/en/archives/360</link>
		<comments>http://amf48.develop.jp/en/archives/360#comments</comments>
		<pubDate>Sun, 01 May 2011 01:49:46 +0000</pubDate>
		<dc:creator><![CDATA[wacky]]></dc:creator>
				<category><![CDATA[AMF48]]></category>
		<category><![CDATA[Release]]></category>

		<guid isPermaLink="false">http://amf48.develop.jp/?p=360</guid>
		<description><![CDATA[This release includes the bug fix for decoding Vector.&#60;Object&#62;.]]></description>
				<content:encoded><![CDATA[<p>This release includes the bug fix for decoding Vector.&lt;Object&gt;.</p>
]]></content:encoded>
			<wfw:commentRss>http://amf48.develop.jp/en/archives/360/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Commet form bug fixed.</title>
		<link>http://amf48.develop.jp/en/archives/339</link>
		<comments>http://amf48.develop.jp/en/archives/339#comments</comments>
		<pubDate>Sun, 24 Apr 2011 01:48:57 +0000</pubDate>
		<dc:creator><![CDATA[wacky]]></dc:creator>
				<category><![CDATA[Others]]></category>
		<category><![CDATA[Site]]></category>

		<guid isPermaLink="false">http://amf48.develop.jp/?p=339</guid>
		<description><![CDATA[Comment form issue (No explanation for each input) is fixed. In conclusion, it is just a bug of the theme(Arjuna X 1.6.7). Fixed details. Target File: &#8216;wp-content/themes/arjuna-x/templates/comments/reply-form-advanced.php&#8217;   Wrong: &#60;?php esc_attr(&#8230;   Correct: &#60;?php echo esc_attr(&#8230; There are 7 same mistakes&#8230;]]></description>
				<content:encoded><![CDATA[<p>Comment form issue (No explanation for each input) is fixed.<br />
In conclusion, it is just a bug of the theme(Arjuna X 1.6.7).</p>
<p>Fixed details.</p>
<p>Target File: &#8216;wp-content/themes/arjuna-x/templates/comments/reply-form-advanced.php&#8217;</p>
<p>  Wrong: &lt;?php esc_attr(&#8230;<br />
  Correct: &lt;?php echo esc_attr(&#8230;</p>
<p>There are 7 same mistakes&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://amf48.develop.jp/en/archives/339/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web design class at Digital Hollywood.</title>
		<link>http://amf48.develop.jp/en/archives/278</link>
		<comments>http://amf48.develop.jp/en/archives/278#comments</comments>
		<pubDate>Fri, 22 Apr 2011 15:17:21 +0000</pubDate>
		<dc:creator><![CDATA[wacky]]></dc:creator>
				<category><![CDATA[Others]]></category>
		<category><![CDATA[Site]]></category>

		<guid isPermaLink="false">http://amf48.develop.jp/?p=278</guid>
		<description><![CDATA[I studied about web design at Degital Hollywood. It was pretty nice class. And it made me thought&#8230; I found that this site design is not good for my purpose. I&#8217;m trying to change site design&#8230;]]></description>
				<content:encoded><![CDATA[<p>I studied about web design at <a href="http://www.dhw.co.jp/">Degital Hollywood</a>.<br />
It was pretty nice class. And it made me thought&#8230;</p>
<p>I found that this site design is not good for my purpose.<br />
I&#8217;m trying to change site design&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://amf48.develop.jp/en/archives/278/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to connect with GAE by AMF.</title>
		<link>http://amf48.develop.jp/en/archives/250</link>
		<comments>http://amf48.develop.jp/en/archives/250#comments</comments>
		<pubDate>Sun, 17 Apr 2011 14:51:44 +0000</pubDate>
		<dc:creator><![CDATA[wacky]]></dc:creator>
				<category><![CDATA[AMF48]]></category>
		<category><![CDATA[AMF]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[GAE]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://amf48.develop.jp/?p=250</guid>
		<description><![CDATA[I uploaded a sample code to connect with Google App Engine by AMF. (Source code is Apache2.0 licence) http://amf48.develop.jp/en/document/gae In case of using GAE, we may not need BlazeDS any more?]]></description>
				<content:encoded><![CDATA[<p>I uploaded a sample code to connect with Google App Engine by AMF.<br />
(Source code is Apache2.0 licence)</p>
<p><a href="http://amf48.develop.jp/en/document/gae">http://amf48.develop.jp/en/document/gae</a></p>
<p>In case of using GAE, we may not need BlazeDS any more?</p>
]]></content:encoded>
			<wfw:commentRss>http://amf48.develop.jp/en/archives/250/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FxUG: Flex meeting #135 at Hokuriku(Toyama)</title>
		<link>http://amf48.develop.jp/en/archives/194</link>
		<comments>http://amf48.develop.jp/en/archives/194#comments</comments>
		<pubDate>Sat, 16 Apr 2011 14:20:02 +0000</pubDate>
		<dc:creator><![CDATA[wacky]]></dc:creator>
				<category><![CDATA[Others]]></category>
		<category><![CDATA[AMF]]></category>
		<category><![CDATA[FxUG]]></category>
		<category><![CDATA[SlideShare]]></category>

		<guid isPermaLink="false">http://amf48.develop.jp/?p=194</guid>
		<description><![CDATA[Today, I made a presentation about AMF3 to share the knowledge of developing AMF48. I will attach these documents. (sorry for japanese only&#8230;) The Truth of AMF3 The Truth of AMF3(PPTX) The Truth of AMF3(PDF)]]></description>
				<content:encoded><![CDATA[<p>Today, I made a presentation about AMF3<br />
to share the knowledge of developing AMF48.</p>
<p>I will attach these documents. (sorry for japanese only&#8230;)</p>
<div style="width:425px" id="__ss_7652746"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/wacky2/amf3-7652746" title="The Truth of AMF3">The Truth of AMF3</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/7652746" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></div>
<p><a href='http://amf48.develop.jp/wp-content/uploads/2011/04/AMF3の真実.pptx'>The Truth of AMF3(PPTX)</a><br />
<a target="_blank" href='http://amf48.develop.jp/wp-content/uploads/2011/04/AMF3の真実.pdf'>The Truth of AMF3(PDF)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://amf48.develop.jp/en/archives/194/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AMF48-0.7.2 is released.</title>
		<link>http://amf48.develop.jp/en/archives/184</link>
		<comments>http://amf48.develop.jp/en/archives/184#comments</comments>
		<pubDate>Fri, 15 Apr 2011 13:32:48 +0000</pubDate>
		<dc:creator><![CDATA[wacky]]></dc:creator>
				<category><![CDATA[AMF48]]></category>
		<category><![CDATA[Release]]></category>

		<guid isPermaLink="false">http://amf48.develop.jp/?p=184</guid>
		<description><![CDATA[I found a bug for generics array. This release is for this bug fix. This time, I added a jar file for developers, which include source and class files.]]></description>
				<content:encoded><![CDATA[<p>I found a bug for generics array. This release is for this bug fix.<br />
This time, I added a jar file for developers, which include source and class files.</p>
]]></content:encoded>
			<wfw:commentRss>http://amf48.develop.jp/en/archives/184/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
