<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://valley.egloos.com/rss/style/style.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>이글루스 'ipojo' 태그 최근글</title>
		<link>http://valley.egloos.com/tag/ipojo</link>
		<description>ipojo</description>
		<language>ko</language>
		<pubDate>Sun, 15 Apr 2012 23:18:58 +0900</pubDate>
		<generator>Egloos</generator>
		<item>
	<title><![CDATA[2.3.4. iPOJO 서비스 의존성 관리]]></title>
	<link>http://xeraph.egloos.com/5627626</link>
	<guid>http://xeraph.egloos.com/5627626</guid>
	<description>
	<![CDATA[ 
이번 절에서는 iPOJO 컴포넌트와 OSGi 서비스가 어떻게 연관되어 있는지 코드 예제를 통해 알아보도록 하겠다. 가장 간단한 예로 정수 덧셈을 수행하는 계산기 서비스를 만들고 사용해보자. 계산기 서비스를 제공하는 번들을 새로 만들 것이고, 기존의 ipojo-tutorial 예제에서 이 계산기 서비스를 참조하여 사용하도록 할 것이다.  먼저 계산기 프로젝트를 새로 만들자. 방법은 이전과 동일하다.  $ mvn archetype:generate -DarchetypeArtifactId=maven-ipojo-plugin -DarchetypeGroupId=org.apache.felix -DarchetypeVersion=1.8.4 -DgroupId=org.example -DartifactId=ipojo-calc -D	]]>
	</description>
	<pubDate>Sun, 15 Apr 2012 23:18:58 +0900</pubDate>
	<dc:creator><![CDATA[Xeraph@NCHOVY]]></dc:creator>
</item>
<item>
	<title><![CDATA[2.3.3. iPOJO 컴포넌트 생명주기]]></title>
	<link>http://xeraph.egloos.com/5627531</link>
	<guid>http://xeraph.egloos.com/5627531</guid>
	<description>
	<![CDATA[ 
iPOJO 컴포넌트 인스턴스는 VALID와 INVALID 두 가지 상태를 가진다. 컴포넌트 인스턴스가 유효하려면, 이 인스턴스와 관련된 모든 핸들러가 유효한 상태이어야 한다. 예를 들어, 컴포넌트 인스턴스가 의존하는 어떤 OSGi 서비스가 존재하지 않는다면, 의존성 핸들러가 유효하지 않은 상태가 되기 때문에 컴포넌트 인스턴스는 유효하지 않게 된다.    컴포넌트 인스턴스의 상태가 INVALID에서 VALID로 바뀌거나, VALID에서 INVALID로 바뀔 때 생명주기 콜백이 불리게 된다. 이전의 HelloComponent.java를 아래와 같이 수정한다:  package org.example.ipojo.helloworld;  import org.apache.felix.ipojo.annotations.Comp	]]>
	</description>
	<pubDate>Sun, 15 Apr 2012 18:58:48 +0900</pubDate>
	<dc:creator><![CDATA[Xeraph@NCHOVY]]></dc:creator>
</item>
<item>
	<title><![CDATA[2.3.2. iPOJO 시작하기]]></title>
	<link>http://xeraph.egloos.com/5627520</link>
	<guid>http://xeraph.egloos.com/5627520</guid>
	<description>
	<![CDATA[ 
이 절에서는 iPOJO 컴포넌트가 어떻게 동작하는지 Apache Felix 프레임워크와 몇 가지 간단한 코드 예제를 통해 설명할 것이다.  먼저 샘플 프로젝트를 만들어보자.  $ mvn archetype:generate -DarchetypeArtifactId=maven-ipojo-plugin -DarchetypeGroupId=org.apache.felix -DarchetypeVersion=1.8.4 -DgroupId=org.example -DartifactId=ipojo-tutorial -Dversion=1.0.0 -Dpackage=org.example.ipojo.helloworld  mvn archetype:generate 명령은 archetype이라 불리는 기본 프로젝트 템플릿을 이용하여 프로젝트를 생성	]]>
	</description>
	<pubDate>Sun, 15 Apr 2012 18:11:59 +0900</pubDate>
	<dc:creator><![CDATA[Xeraph@NCHOVY]]></dc:creator>
</item>
<item>
	<title><![CDATA[2.3.1. iPOJO 개요]]></title>
	<link>http://xeraph.egloos.com/5627499</link>
	<guid>http://xeraph.egloos.com/5627499</guid>
	<description>
	<![CDATA[ 
앞 절에서 OSGi에 대하여 알아보았는데, 순수하게 OSGi 프레임워크만 사용해서 애플리케이션을 개발하려고 하면 그리 쉽지 않다는 느낌을 받게 된다. 왜냐하면 지금까지는 런타임에 당연히 존재하리라고 생각했던 구성요소들이, OSGi 환경에서는 언제든지 제거될 수 있다는 점을 고려해서 코딩해야 하기 때문이다.  가령 A라는 서비스가 B와 C 서비스를 의존하는 경우에는 아래와 같이 구현해야 한다:BundleActivator를 구현하여 번들이 시작될 때 번들 컨텍스트에 ServiceListener를 등록한다.번들이 시작될 때 B와 C 서비스를 조회해서 존재한다면 바로 A 서비스를 서비스 레지스트리에 등록한다.만약 B와 C 둘 중에 하나라도 없다면 리턴하고 서비스 리스너 콜백이 오길 기대한다.서비스 리스너 콜백이 호	]]>
	</description>
	<pubDate>Sun, 15 Apr 2012 17:26:34 +0900</pubDate>
	<dc:creator><![CDATA[Xeraph@NCHOVY]]></dc:creator>
</item>
<item>
	<title><![CDATA[FELIX-2596]]></title>
	<link>http://xeraph.egloos.com/5351840</link>
	<guid>http://xeraph.egloos.com/5351840</guid>
	<description>
	<![CDATA[ 
DependencyHandler.onObjectCreation throws NPE when bundle is refreshedhttps://issues.apache.org/jira/browse/FELIX-2596  저번에 리포팅한 컴파일 이슈를 해결하고 9월 3일 iPOJO 1.6.4가 릴리스 됐는데 여전히 내가 쓰기에는 문제가 있다.. 이것 참~ 이러다 1.4.0에서 1.8.0으로 점프하게 생겼네..	]]>
	</description>
	<pubDate>Sun, 12 Sep 2010 02:56:14 +0900</pubDate>
	<dc:creator><![CDATA[Xeraph@NCHOVY]]></dc:creator>
</item>
<item>
	<title><![CDATA[Kraken JPA의 iPOJO 핸들러 어노테이션 지원]]></title>
	<link>http://xeraph.egloos.com/5351801</link>
	<guid>http://xeraph.egloos.com/5351801</guid>
	<description>
	<![CDATA[ 
그동안 크라켄 JPA에서 제공하는 선언적 트랜잭션을 이용하려면 metadata.xml 설정에 &amp;lt;jpa:Transactional name=&quot;팩토리이름&quot; /&amp;gt;을 써줘야 했기 때문에 iPOJO 1.4.0부터 XML 설정 대신 어노테이션이 지원됨에도 불구하고 컴포넌트 구현에 JPA가 필요한 경우 XML에 설정해야 하는 불편함이 있었다 (..하지만 할 일도 많고 찾아보기 귀찮아서..)   iPOJO에서 자신이 구현한 External Handler의 어노테이션을 지원하려면 아래 규칙을 따라야 한다.  1. 어노테이션 이름이 핸들러 이름과 일치해야 한다.2. 어노테이션 패키지가 핸들러 네임스페이스와 일치해야 한다.3. 패키지는 ipojo나 handler라는 문자열을 포함하고 있어야 한다.  이는 iPOJO가 	]]>
	</description>
	<pubDate>Sun, 12 Sep 2010 01:37:04 +0900</pubDate>
	<dc:creator><![CDATA[Xeraph@NCHOVY]]></dc:creator>
</item>
<item>
	<title><![CDATA[FELIX-2487]]></title>
	<link>http://xeraph.egloos.com/5325077</link>
	<guid>http://xeraph.egloos.com/5325077</guid>
	<description>
	<![CDATA[ 
  패치는 됐는데 릴리스는 1.8.0 때나 나올테니 프로젝트들의 iPOJO 1.6.0 마이그레이션은 미뤄야겠음..게으른 랍형은 테스트 코드도 안 주고 스택트레이스 하나 던져놓고 패치해달라고 징징..  올리는 김에 잉여 Wish도 같이 올려봤음..https://issues.apache.org/jira/browse/FELIX-2497  iPOJO 만세 (..)----임시 코드  String code = &quot;print 'hello xeraph'&quot;;  CompilerFlags flags = Py.getCompilerFlags();ByteArrayOutputStream os = new ByteArrayOutputStream();mod node = ParserFacade.parse(code, CompileMode.exe	]]>
	</description>
	<pubDate>Sat, 31 Jul 2010 18:10:38 +0900</pubDate>
	<dc:creator><![CDATA[Xeraph@NCHOVY]]></dc:creator>
</item>
<item>
	<title><![CDATA[OSGi 서비스 개발 패턴의 이해]]></title>
	<link>http://xeraph.egloos.com/5131231</link>
	<guid>http://xeraph.egloos.com/5131231</guid>
	<description>
	<![CDATA[ 
먼저 크라켄 Cron 서비스를 이용하는 예를 하나 생각해봅시다..주기적으로 특정한 작업을 수행하고 싶을 때 아래와 같이 구현할 수 있습니다.  package org.krakenapps.example;  import org.apache.felix.ipojo.annotations.Component;import org.apache.felix.ipojo.annotations.Provides;import org.krakenapps.cron.HourlyJob;  @Component(name = &quot;my_job&quot;)@Provides@HourlyJobpublic class MyJob implements Runnable {	@Override	public void run() {		System.out.println(&quot;blah bl	]]>
	</description>
	<pubDate>Wed, 25 Nov 2009 00:45:06 +0900</pubDate>
	<dc:creator><![CDATA[Xeraph@NCHOVY]]></dc:creator>
</item>
<item>
	<title><![CDATA[How to create an iPOJO Component at runtime]]></title>
	<link>http://xeraph.egloos.com/4915517</link>
	<guid>http://xeraph.egloos.com/4915517</guid>
	<description>
	<![CDATA[ 
See How to use iPOJO Factories    1. Find iPOJO Component Factory reference.  ----  import 			org.apache.felix.ipojo.Factory;    public ServiceReference getComponentFactoryReference(String factoryClassName) {    try {      ServiceReference[] refs = bundleContext.getServiceReferences(        Factory.class.getName(),        &quot;(component.class=&quot; + factoryClassName + &quot;)&quot;);        if (refs == null || re	]]>
	</description>
	<pubDate>Wed, 15 Apr 2009 23:34:31 +0900</pubDate>
	<dc:creator><![CDATA[Xeraph@NCHOVY]]></dc:creator>
</item>
<item>
	<title><![CDATA[iPOJO 위키 링크]]></title>
	<link>http://xeraph.egloos.com/4690131</link>
	<guid>http://xeraph.egloos.com/4690131</guid>
	<description>
	<![CDATA[ 
iPOJO 위키 메인 페이지    자꾸 찾기 귀찮아서..	]]>
	</description>
	<pubDate>Fri, 24 Oct 2008 17:08:45 +0900</pubDate>
	<dc:creator><![CDATA[Xeraph Online]]></dc:creator>
</item>
<item>
	<title><![CDATA[iPOJO Factory 속성 예시]]></title>
	<link>http://xeraph.egloos.com/4675862</link>
	<guid>http://xeraph.egloos.com/4675862</guid>
	<description>
	<![CDATA[ 
org.apache.felix.ipojo.Factory 서비스 레퍼런스를 가져와서 속성을 찍어본 것.    [org.apache.felix.ipojo.Factory, org.osgi.service.cm.ManagedServiceFactory]  component.class: kr.nchovy.kraken.rss.impl.RssReaderImpl  component.description: factory name=&quot;rssReader&quot; state=&quot;valid&quot; bundle=&quot;39&quot; implementation-class=&quot;kr.nchovy.kraken.rss.impl.RssReaderImpl&quot;  	provides specification=&quot;kr.nchovy.kraken.rss.RssReader&quot;  	missingh	]]>
	</description>
	<pubDate>Fri, 17 Oct 2008 13:35:33 +0900</pubDate>
	<dc:creator><![CDATA[Xeraph Online]]></dc:creator>
</item>
<item>
	<title><![CDATA[iPOJO 튜토리얼]]></title>
	<link>http://xeraph.egloos.com/4630417</link>
	<guid>http://xeraph.egloos.com/4630417</guid>
	<description>
	<![CDATA[ 
iPOJO Tutorial (0.7.5) 번역  대충 의미가 통할 정도로 옮겼습니다.    이 페이지는 iPOJO 런타임을 사용하는 방법과, 이에 관련된 서비스 컴포넌트 모델을 다룹니다. 먼저 서비스 컴포넌트 모델의 개념을 소개한 뒤에 간단하게 iPOJO의 기능을 보여줄 수 있는 예제를 보겠습니다.    소개    iPOJO는 OSGi 프레임워크에 기반한 서비스 지향 프로그래밍(service-oriented programming)을 간단하게 만드는 것을 목표로 개발되었습니다. (iPOJO는 injected POJO의 약어입니다.) iPOJO는 OSGi 서비스 컴포넌트를 개발하는데 필요한 OSGi 관련 코드와 비기능적 측면들을 개발자 대신 처리해줌으로써 서비스 컴포넌트 구현을 간단하게 만들어줍니다. iPOJO	]]>
	</description>
	<pubDate>Tue, 23 Sep 2008 19:02:39 +0900</pubDate>
	<dc:creator><![CDATA[Xeraph Online]]></dc:creator>
</item>
	</channel>
</rss>

