ÅÌÁ³¤Ê³«È¯Æüµ­ ¥«¥ì¥ó¥À¡¼
2010ǯ 3·î
Æü ·î ²Ð ¿å ÌÚ ¶â ÅÚ
« 8·î    
 123456
78910111213
14151617181920
21222324252627
28293031  
ÅÌÁ³¤Ê³«È¯Æüµ­¤Î¸¡º÷
¥á¥¤¥ó¥á¥Ë¥å¡¼
iifp group site
¤´ÍøÍѤˤ¢¤¿¤Ã¤Æ
¥â¥Ð¥¤¥ë¥µ¥¤¥È

¥â¥Ð¥¤¥ë¥µ¥¤¥È¥¢¥É¥ì¥¹
¥µ¥¤¥È¾ðÊó
¥¹¥«¥¦¥¿¡¼ : The iifp project - internet information forplus project
[PR]

2009ǯ8·î9Æü(ÆüÍËÆü)

Spring DE JPA + JUNIT

Eclipse¤ÈSpring¤ò»ÈÍѤ·¤ÆJunit¤ÇÁ°¤ËºîÀ®¤·¤¿GAO¡ÊGenerciDao) with NamedQuery¤Î¥Æ¥¹¥È¤ò¤¹¤ë
Spring¤Ï2.5¡¢JUnit¤Ï4.4¤ò»ÈÍѤ¹¤ë¡£
Spring¤ò¥À¥¦¥ó¥í¡¼¥É¤¹¤ì¤Ï¡¢JUnit¤ÏÉÕ°¤·¤Æ¤¤¤ë¤Ï¤º¤Ê¤Î¤Ç¡¢¤½¤ì¤ò»ÈÍѤ¹¤ë¡£
¤â¤Ã¤È¤âɬÍפʤΤÏSpring¤ËÉÕ°¤¹¤ëspring-test.jar¤Ç¤¹¡£

¤Þ¤º¡¢persistence.xml¤ò°Ê²¼¤ÎÍͤ˽¤Àµ¤·¤Þ¤¹¡£


<?xml
version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit
name="sample.test.jpa" transaction-type="RESOURCE_LOCAL">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<non-jta-data-source>dataSource</non-jta-data-source>
<mapping-file>META-INF/orm.xml</mapping-file>
<class>¼«Ê¬¤Î¥¨¥ó¥Æ¥£¥Æ¥£</class>
¡§
</persistence-unit>
</persistence>



¼¡¤ËSpring¤ÎÀßÄê¥Õ¥¡¥¤¥ë(applicationTextContext.xml)¤ò¥½¡¼¥¹¥Õ¥©¥ë¥À¤ËºîÀ®
ÆâÍÆ¤Ï°Ê²¼¤ÎÍÍ¡ÊOpenJPA, Oracle¤Ç¤¹¡Ë

<?xml
version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
>
<property name="driverClassName" value="¥É¥é¥¤¥Ð¡¼"/>
<property name="url" value="ÀܳÍÑURL"/>
<property name="username" value="¥æ¡¼¥¶¡¼Ì¾"/>
<property name="password" value="¥Ñ¥¹¥ï¡¼¥É"/>
</bean>
<bean
id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="sample.test.jpa"
/>
<property name="dataSource"
ref="dataSource"/>
<property
name="jpaVendorAdapter">
<bean
class="org.springframework.orm.jpa.vendor.OpenJpaVendorAdapter"/>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"
/>
</bean>
<bean
class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"
/>
<bean
class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"
/>
<bean
id="entityManager"
class="org.springframework.orm.jpa.support.SharedEntityManagerBean">
<property name="entityManagerFactory"
ref="entityManagerFactory"/>
</bean>
<bean id="userinfoDao"
class="dao.jpa.namedquery.NamedQueriesFactory"
factory-method="getQueryProxy">
<constructor-arg ref="entityManager">
</constructor-arg>
<constructor-arg>
<value>dao.UserinfoDao</value>
</constructor-arg>
</bean>
<bean id="departmentDao"
class="dao.jpa.namedquery.NamedQueriesFactory"
factory-method="getQueryProxy">
<constructor-arg ref="entityManager">
</constructor-arg>
<constructor-arg>
<value>dao.DepartmentDao</value>
</constructor-arg>
</bean>
<tx:annotation-driven
/>
</beans>



¤ÇJunitÍѤΥƥ¹¥È¥¯¥é¥¹¤Ï

¡§

@Repository
public class UserinfoDaoTest extends AbstractJpaTests {
private UserinfoDao
userinfoDao;
private DepartmentDao
departmentDao;

public void
setUserinfoDao(UserinfoDao userinfoDao) {
this.userinfoDao = userinfoDao;
}

public void
setDepartmentDao(DepartmentDao
departmentDao) {
this.departmentDao = departmentDao;

}

@Override
protected String
getConfigPath() {
return
"applicationTestContext¤Ø¤Î¥Ñ¥¹/applicationTestContext.xml";
}

@PersistenceContext
private EntityManager
entityManager;

public void testUserinfoDao()
throws Exception {
List<Userinfo> userinfos =
userinfoDao.selectByName("mama");

for(Userinfo ui : userinfos){

//userinfoDao.lock(ui,LockModeType.READ);
assertTrue(entityManager.contains(ui));

System.out.println(ui.getName());
for(Department dm : ui.getDepartments()){
System.out.println(dm.getName());
}
}
assertTrue(true);
}
¡§
¡Ñ



2009ǯ8·î7Æü(¶âÍËÆü)

JPA¤È¥ê¥Õ¥ì¥¯¥·¥ç¥ó¤ÎNamedQuery

JPA¤ÇNamedQuery(JPQL)¤ò»ÈÍѤ¹¤ë¤È¤­¤Ï¥¨¥ó¥Æ¥£¥Æ¥£¡¼¥¯¥é¥¹¤Ë¤Æ¥¢¥Î¥Æ¡¼¥·¥ç¥ó¤Ç»ØÄꤹ¤ë¤«¡¢orm.xml¥Õ¥¡¥¤¥ë¤Ë¤Æ<named-query>¤ò»ÈÍѤ¹¤ë¾ì¹ç¤¬¤¢¤ë¤È»×¤¤¤Þ¤¹¡£
¤¤¤º¤ì¤â¼ÂÁõ¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¤È»×¤¤¤Þ¤¹¡£
°Ê²¼¤Î¤Ï¥¢¥Î¥Æ¡¼¥·¥ç¥ó¤Ë¤ÆNamedQuery¤ò»ÈÍѤ·¤¿¾ì¹ç




@Entity
@NamedQueries({
@NamedQuery(
name="UseinfoDao.findByName",
query="Select e From Userinfo e Where e.name = ?1")
})
public class Userinfo {
:
:
}

public class UserinfoDao {
:
private EntityManager em;

public setEntityManager(EntityManager em){
this.em = em;
}
:
public List findByName(String name){
Query query = em.createNamedQuery("UseinfoDao.findByName");
query.setParameter(1, name);
List userinfos = query.getResultList();
return userinfos;
}
:
}



¤³¤ì¤òJava¥ê¥Õ¥ì¥¯¥·¥ç¥ó¤ÎProxy¤ò»ÈÍѤ·¤Æ´ÊÁDz½¤·¤Þ¤¹¡£
¥ê¥Õ¥ì¥¯¥·¥ç¥ó¤Ï¡¢¡Ö¤¢¤ë¥¯¥é¥¹¤Î¥á¥½¥Ã¥É¤ä¥×¥í¥Ñ¥Æ¥£¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë¡×¤³¤È¤Ç¡¢Proxy¤Ï¡Ö¥á¥½¥Ã¥É¤ä¥×¥í¥Ñ¥Æ¥£¤Î¼Â¹ÔÁ°¸å¤Ë½èÍý¤ò¤Ä¤¤¤«¤¹¤ë¡×¤³¤È¤Ç¤¹¡£

¤Þ¤ºÁ°²óºîÀ®¤·¤¿GenericDao¤ò·Ñ¾µ¤·¤¿°Ê²¼¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òºîÀ®¤·¤Þ¤¹¡£¥¨¥ó¥Æ¥£¥Æ¥£¡¼Usefinfo¤Î¼ç¥­¡¼¤ÏLong·¿¤È¤·¤Þ¤¹¡£




public interface UserinfoDao extends GenericDao<Userinfo, Long> {

public List findByName(String name);

}


¼¡¤ËUserinfo¤Ç¥ê¥Õ¥ì¥¯¥·¥ç¥ó¤¹¤ë¤¿¤á¤ÎFactoryBean¤ÈProxy¤Ç½èÍý¹Ô¤¦Á°½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£




public class NamedQueriesFactory {
@SuppressWarnings("unchecked")
public static <T> T getQueryProxy(EntityManager em, Class<T&gt type) {
NamedQueryDynamicProxy handler = new NamedQueryDynamicProxy(type, em);
return (T) Proxy.newProxyInstance(type.getClassLoader(), new Class[]{type}, handler);
}
}

public class NamedQueryDynamicProxy implements InvocationHandler {
private final Class<?> type;
private final EntityManager em;
private static String typeString = "dao.generic.GenericDao"; ¢« GenericDao¥¯¥é¥¹¤Î¥Ñ¥Ã¥±¡¼¥¸¤È¥¯¥é¥¹

¡¡¡¡public NamedQueryDynamicProxy(Class<?> type, EntityManager em) {
Type[] genericIf = type.getGenericInterfaces();
this.type = (Class&lt?>)((ParameterizedType)genericIf [0]).getActualTypeArguments()[0];
this.em = em;
}

@SuppressWarnings("unchecked")
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
Class&lt?> genericDaoType = Class.forName(typeString);
if(method.getDeclaringClass().equals(genericDaoType)){
GenericDao<?, ?> genericDao = new GenericDaoImpl(type, em);
return method.invoke(genericDao, args);
} else {
return getResultByNamedQuery(method, args);
}
}
private Object getResultByNamedQuery(Method method, Object[] args) throws Throwable {
boolean isMultiResults = Collection.class.isAssignableFrom(method.getReturnType());
String queryName = method.getDeclaringClass().getName() + "." + method.getName();
Query namedQuery = em.createNamedQuery(queryName);
setPositionalParams(args, namedQuery);
if (isMultiResults) {
return namedQuery.getResultList();
} else {
return namedQuery.getSingleResult();
}
}

private void setPositionalParams(Object[] args, Query namedQuery) throws Throwable {
if (args != null && args.length > 0) {
for (int i = 0; i < args.length; i++) {
namedQuery.setParameter(i + 1, args[i]);
}
}
}
}


»ÈÍÑÊýË¡¤Ï°Ê²¼¤ÎÄ̤ê




EntityManager em;
:
UserinfoDao userinfoDao = NamedQueriesFactory.getQueryProxy(em, UserinfoDao.class);
List userinfos = userinfoDao.findByName("hoge");


¤¢¤È¤Ï¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÈNamedQuery¤ÎÄêµÁ¤òÄɲ䷤Ƥ¤¤¯¤À¤±
º£²ó¤ÏsetParameter¤ÏPosition(e.name = ?1)¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¤¬¡¢ÆÈ¼«ºîÀ®¤Î¥¢¥Î¥Æ¡¼¥·¥ç¥ó¤ò¶î»È¤·¤ÆÌ¾Á°ÉÕ¤­¥¯¥¨¥ê(e.name = :name)¤Î¼ÂÁõ¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£


2009ǯ8·î6Æü(ÌÚÍËÆü)

GenericDao¤Î»ÈÍÑ

Á°²ó¤Î¡Ö¥¸¥§¥Í¥ê¥Ã¥¯¡¦¥×¥í¥°¥é¥ß¥ó¥°¤ÈJPA¡×¤ÇºîÀ®¤·¤¿GenericDao¤ò»È¤Ã¤Æ¤ß¤ë
GenericDao¤Î¼ÂÁõ¤òGenericDaoImpl¤È¤·¤Þ¤¹¡£
GenericDaoImpl¤Ë¤Ï°Ê²¼¤ò¼ÂÁõ¤·¤Þ¤¹¡£




/**
* ¥¨¥ó¥Æ¥£¥Æ¥£¡¼¥Þ¥Í¡¼¥¸¥ã¡¼
*/
private EntityManager em;

/**
* ¥¨¥ó¥Æ¥£¥Æ¥£¡¼¥Þ¥Í¡¼¥¸¥ã¤ÎÀßÄê
* @param em ¥¨¥ó¥Æ¥£¥Æ¥£¡¼¥Þ¥Í¡¼¥¸¥ã
*/
public void setEntityManager(EntityManager em){
this.em= em;
}

/**
* ¤³¤Î¥Æ¥ó¥×¥ì¡¼¥È¥¯¥é¥¹¤¬½êÍ­¤¹¤ë¥¯¥é¥¹¤Î¥¯¥é¥¹¾ðÊó
*/
private Class type;

/**
* ¥³¥ó¥¹¥È¥é¥¯¥¿¡¼
* @param type¡¡¥¯¥é¥¹¾ðÊó
*/
public GenericDaoImpl(Class type)
{
this.type = type;
}

/**
* ¥³¥ó¥¹¥È¥é¥¯¥¿¡¼
* @param type ¥¯¥é¥¹¾ðÊó
* @param em¡¡¥¨¥ó¥Æ¥£¥Æ¥£¡¼¥Þ¥Í¡¼¥¸¥ã
*/
public GenericDaoImpl(Class type, EntityManager em)
{
this.type = type;
this.em = em;
}


²¾¤Ë°Ê²¼¤Î¥¨¥ó¥Æ¥£¥Æ¥£¡¼¤¬ºîÀ®ºÑ¤ß¤È¤·¤Þ¤¹¡£
¡¦Userinfo
¡¡¥æ¡¼¥¶¡¼¾ðÊó
¡¦Department
¡¡Éô½ð¾ðÊó
ξÊý¤Î¥¨¥ó¥Æ¥£¥Æ¥£¡¼¶¦¡¢¼ç¥­¡¼¤Ïid¤Ç·¿¤ÏLong¤È¤·¤Þ¤¹¡£
°Ê²¼¤ÏCreate»ÈÍÑÎã¤Ç¤¹¡£




EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistence.xml¤ÇÀßÄꤷ¤¿unitNmae");
EntityManager em = emf.createEntityManager();
GenricDao userinfoDao = new GenericDaoImpl(Userinfo.class, em);
Userinfo userinfo = new Userinfo();
userinfo.create(userinfo);
em.flush();


°Ê²¼¤ÏRead»ÈÍÑÎã¤Ç¤¹¡£




EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistence.xml¤ÇÀßÄꤷ¤¿unitNmae");
EntityManager em = emf.createEntityManager();
GenricDao userinfoDao = new GenericDaoImpl(Userinfo.class, em);
Long id = 20L;
Userinfo userinfo = userinfo.read(id);



2009ǯ8·î4Æü(²ÐÍËÆü)

¥¸¥§¥Í¥ê¥Ã¥¯¡¦¥×¥í¥°¥é¥ß¥ó¥° ¤È JPA

Java5¤«¤é¡Ö¥¸¥§¥Í¥ê¥Ã¥¯¡¦¥×¥í¥°¥é¥ß¥ó¥°¡×¤¬Æ³Æþ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤¤¤ï¤æ¤ë¥Æ¥ó¥×¥ì¡¼¥È¥¯¥é¥¹¤Ç¤¹¡£
´Êñ¤Ë½ñ¤¯¤È¤³¤ó¤Ê´¶¤¸¤Ç¤¹¤«¥Í¡©




public class GenericsImpl<T> {
private Class<T> type;

public Generics(Class<T> type){
this.type = type;
}
public T getXXXX() {
return (T) ¥¯¥é¥¹T¤òÊÖ¤¹½èÍý;
}
}

<»ÈÍÑÎã1>
public class TestMain {
public static void main(String args[]){
GenericsImpl<String> obj = new GenericsImpl<String>
String str = obj.getXXXX();
}
}

<»ÈÍÑÎã2>
public class TestMain {
public static void main(String args[]){
GenericsImpl<Long> obj = new GenericsImpl Long lng = obj.getXXXX();
}
}



¤³¤ì¤¬¤É¤¦JPA¤È´Ø·¸¤¹¤ë¤«¤È¤¤¤¦¤È¡£¡£¡£
IBM¤Îµ­»ö¡ÖDAO¤ò·«¤êÊÖ¤¹¤Ê¡×¤ä¡ÖSeasar2 kuina-dao¡×¤ò»²¹Í¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
¤³¤³¤Ç¤Ï¡¢´Êñ¤ËÀâÌÀ¤¹¤ë¤È¡ÖÈÆÍÑŪ(Generic)¤Ç·¿°ÂÁ´¤ÊDAO¤Î¼ÂÁõ¡×¤¬²Äǽ¤È¤¤¤¦¤³¤È¤Ç¤¹¡£
»ä¤Ï¡ÖGAO¡×¡ÊGeneric Access Object:ÈÆÍÑŪ¤Ê¥¢¥¯¥»¥¹¥ª¥Ö¥¸¥§¥¯¥È¡Ë¤È¤¤¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢°ìÈÌŪ¤«¤É¤¦¤«¤Ï¡©¡©¡©¡©

¶ñÂÎŪ¤Ë¤Ï°Ê²¼¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î¼ÂÁõ¤ò¹Ô¤¦¤³¤È¤Ç¤¹¡£




/**
* GenericDao¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹
*/
package dao.generic;

import java.io.Serializable;
import java.util.List;

import javax.persistence.LockModeType;

/**
* ¥¸¥§¥Í¥ê¥Ã¥¯¤ò»ÈÍѤ·¤¿CRUDÁàºî¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹
* @author forplus
*
*/
public interface GenericDao<T, PK extends Serializable> {

/**
* CreateÁàºî
* @param newInstance¡¡±Ê³²½ÂоÝPOJO
* @return ±Ê³²½POJO
*/
T create(T newInstance);

/**
* ReadÁàºî
* @param id¡¡¥­¡¼¾ðÊó
* @return ±Ê³²½POJO
*/
T read(PK id);

/**
* ReadÁàºî(ÃÙ±ä¥í¡¼¥Ç¥£¥ó¥°)
* @param id¡¡¥­¡¼¾ðÊó
* @return ±Ê³²½POJO¤Ø¤Î¥ª¥Ö¥¸¥§¥¯¥È»²¾È¤òÊÖ¤¹
*/
T getReference(PK id);

/**
* ReadÁàºî(¥í¥Ã¥¯¤¢¤ê)
* @param id¡¡¥­¡¼¾ðÊó
* @param lockModeType¡¡¥í¥Ã¥¯¥¿¥¤¥×
* @return ±Ê³²½POJO
*/
T read(PK id, LockModeType lockModeType);

/**
* ReadÁàºî(ÃÙ±ä¥í¡¼¥Ç¥£¥ó¥°,¡¡¥í¥Ã¥¯¤¢¤ê)
* @param id¡¡¥­¡¼¾ðÊó
* @param lockModeType¡¡¥í¥Ã¥¯¥¿¥¤¥×
* @return ±Ê³²½POJO¤Ø¤Î¥ª¥Ö¥¸¥§¥¯¥È»²¾È¤òÊÖ¤¹
*/
T getReference(PK id, LockModeType lockModeType);

/**
* UpdateÁàºî
* @param transientObject¡¡¹¹¿·ÂоÝPOJO
*/
void update(T transientObject);

/**
* DeleteÁàºî
* @param persistentObject¡¡ºï½üÂоÝPOJO
*/
void delete(T persistentObject);

/**
* Á´¤Æ¤ÎPOJO¤ò¼èÆÀ¤¹¤ë
* @return ±Ê³²½POJO¤Î¥ê¥¹¥È
*/
List<T> findAll();

/**
* »ØÄêÈϰϤǼèÆÀ¤¹¤ë
* @param firstResult ¼èÆÀ°ÌÃÖ
* @param maxResults ¼èÆÀºÇÂç¿ô
* @return¡¡±Ê³²½POJO¤Î¥ê¥¹¥È
*/
List<T> findRange(int firstResult, int maxResults);

/**
* ±Ê³²½POJO¤Î¥í¥Ã¥¯
* @param persistentObject¡¡±Ê³²½POJO
* @param lockModeType
*/
void lock(T persistentObject, LockModeType lockModeType);

/**
* ¥¨¥ó¥Æ¥£¥Æ¥£¤¬±Ê³¥³¥ó¥Æ¥­¥¹¥È¤Ë´ÉÍý¤µ¤ì¤Æ¤¤¤ë¤«È½Äꤹ¤ë¡¥
* @param persistentObject ȽÄêÂоÝPOJO
* @return ȽÄê·ë²Ì
*/
boolean contains(T persistentObject);

/**
* ±Ê³²½POJO¤ÎºÆ¼èÆÀ
* @param persistentObject¡¡±Ê³²½POJO
*/
void refresh(T persistentObject);
}


¤³¤ì¤Ï¡¢¤´»²¹Í¤Þ¤Ç¤Ë¤Ç¤¹¡£


2009ǯ6·î30Æü(²ÐÍËÆü)

Eclipse Galileo

µ×¤·¤Ö¤ê¤Ë½ñ¤¯³«È¯³Ð½ñ¡£

Eclipse¤ÎºÇ¿·¥Ð¡¼¥¸¥ç¥ó¡©Galileo¤ò»È¤Ã¤Æ¤ß¤Þ¤·¤¿¡£
¤Þ¤º¡¢¤Ä¤Þ¤º¤¤¤¿¤Î¤ÏÆüËܸ첽¤ÏÀΡʤäƤ¤¤Ä¤Î¤³¤È¤ä¤é¡Ë¤È°ã¤¤¸À¸ì¥Ñ¥Ã¥¯¤Ç¤Ï¤Ê¤¤¤³¤È¡ª¡ª
¤Ç¡¢ÆüËܸ첽¤ÏPleiades
¤ò¤Ä¤«¤¤¤Þ¤·¤¿¡£
ɬÍפʥե¡¥¤¥ë¤ò¥À¥¦¥ó¥í¡¼¥É¸å¡¢ini¥Õ¥£¥ë¤ò¾¯¡¹¤¤¤¸¤Ã¤Æµ¯Æ°¤¹¤ì¤ÐOK¡£

µ¯Æ°¤·¤Æ¿§¡¹»È¤Ã¤Æ¤ß¤Æ´¶¤¸¤¿¤³¤È¤Ï¡É·ë¹½ÊѤï¤Ã¤Æ¤Þ¤¹¥Í¡É¡£

¤·¤Ð¤é¤¯»È¤Ã¤Æ¤¤¤ÆGalileo¤Î¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×¤¬¤¢¤Ã¤¿¤Î¤Ç¼«Æ°¹¹¿·¤·¤¿¤éÌäÂêȯÀ¸¡ª
EclipseºÆµ¯Æ°¤·¤Ê¤¤¤Î¤Ç¤¹¡£
¤É¤¦¤ä¤é¼«Æ°¹¹¿·ini¥Õ¥¡¥¤¥ë¤¬½ñ¤­´¹¤ï¤Ã¤ÆPleiades¤È
¤ÎÏ¢·È¤¬¤¦¤¯¤¤¤«¤º¤Ë¥Ï¥ó¥°¾õÂÖ

Âнè¤Ïini¥Õ¥¡¥¤¥ë¤òPleiadesÍÑ
¤ËºÆÅÙ½¤Àµ¤·¡¢-clean¤ÇºÆµ¯Æ°¤Ç̵»öºÆµ¯Æ°¤·¤Þ¤·¤¿¡£

Eclipse¤Ï3.3¤Þ¤Ç¤·¤«»È¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢»þÂå¤Ë¼è¤ê»Ä¤µ¤ì¤¿´¶¤¸¤Ç¤·¤¿




Presented by Forplus Corp. © 2009-2014