[uruma-dev:170] Re: S2規約とColddeploy対応

杉上洋平 [E-MAIL ADDRESS DELETED]
2008年 4月 2日 (水) 17:33:04 JST


$B>.?9$5$s(B

$B?y>e$G$9!#(B $BCY%l%9$9$$$^$;$s!#(B

S2Container $BB&$N=$@5$"$j$,$H$&$4$6$$$^$9!#(B
brunch$B$G0J2<$N=$@5$r9T$$$^$7$?!#(B

$B!c$*4j$$!d(B
S2Container $BB&$G#[E-MAIL ADDRESS DELETED]$N=$@5$r$*4j$$$?$7$^$9!#(B
$B=$@5FbMF$N(BUrumaNamingConventionImpl$B$H(BEnv$B$r;2>H$/$@$5$$!#(B
$B$^$?!"%V%i%s%A$N(Borg.seasar.framework$B%Q%C%1!<%80J2<$K=$@5HG$rCV$$$F$$$^$9!#(B

$B!cJ}?K!d(B
S2Container $BB&$N=$@5$,40N;$7!"!"(Bbrunch$B$N=$@5FbMF$K(B
$BLdBj$,$J$$$h$&$G$7$?$i!"(Bcooldeploy$B$r(Btrunk$B$K%^!<%8$H(B
S2Container $B$N(B VerUP$B$r$7$h$&$H;W$$$^$9!#(B
$B!J"((B Hotdeploy$B$OIT0BDj$J$N$G!"(Btrunk$B$K$O$^$@%^!<%8$7$^$;$s!K(B

$B!c=$@5FbMF!d(B
MANIFEST.MF
$B-!(BExported packages$B$r=$@5!J(Borg.seasar.uruma.container$B0J2<$r8x3+!K(B
$B-"(Bseasar$B$N(BVer$B$r(B2.4.25-20080401$B$KJQ99(B

$B!d(Burumacooldeploy-autoregister.dicon
$B!d(B $B"*(B Uruma $B$X$H$j$3$_(B
$B!d(BS2Container $B$O!"%3%s%F%/%9%H%/%i%9%m!<%@$+$i(Bdicon$B%U%!%$%k(B
$B!d(B $B$rFI$_9~$`$7$h$&$K$J$C$F$$$k$N$G!"(BUrumaS2ContainerFactoryCoolProvider
$B!d$NCf$G(B UrumaService#switchToUrumaClassLoader() $B$r8F$S=P$7$F(B
$B!d$+$i%$%s%/%k!<%I$9$l$P!"FI$_9~$a$k$h$&$J5$$,$7$^$9!#(B
$B-!(Burumacooldeploy-autoregister.dicon$B$O(BUrumaApp$BB&$G;}$D$h$&$K$7$^$7$?!#(B
UrumaServie$B$N:[E-MAIL ADDRESS DELETED];A0$N=hM}%?%$%_%s%0$N$?$a!"(BUrumaServiceUtil$B$+$i(B
UrumaServie$B$r;2>H$G$-$^$;$s$G$7$?!#(B
$B-"(Burumacooldeploy.dicon$B$N(Bcomponent class$B%Q%9$r=$@5(B


>UrumaCoolComponentAutoRegister
> $B"*(B Uruma $B$X%Q%C%1!<%80\F0(B & CoolComponentAutoRegister $B$N%5%V(B
>   $B%/%i%9$K$7$FI,MW%a%=%C%I$N$_%*!<%P!<%i%$%I(B
$B-!0J2<$N%Q%C%1!<%80\F0(B
org.seasar.uruma.container.cooldeploy
$B-"I,MW%a%=%C%I$N$_%*!<%P!<%i%$%I(B
registerAll$B%a%=%C%I$N$_%*!<%P!<%i%$%I(B


$B!d(BUrumaS2ContainerFactoryCoolConfigurator
$B!d(B $B"*(B Uruma $B$X%Q%C%1!<%80\F0(B
$B-!0J2<$N%Q%C%1!<%80\F0(B
org.seasar.uruma.container.cooldeploy


$B!d(BUrumaS2ContainerFactoryCoolProvider
$B!d(B $B"*(B Uruma $B$X%Q%C%1!<%80\F0(B
$B-!0J2<$N%Q%C%1!<%80\F0(B
org.seasar.uruma.container.cooldeploy


$B!d(B*Creator
$B!d(B $B"*(B Uruma*Creator $B$K%j%M!<%`$7$F(B Uruam $B%Q%C%1!<%8$X0\F0(B
$B!d(B    + $B%G%U%)%k%H$N(B creator.dicon $B$rDs6!(B
$B-!0J2<$N%Q%C%1!<%80\F0(B
org.seasar.uruma.container.creator
$B-"(BUruma*Creator $B$K%j%M!<%`(B
$B-#(BUrumaApp$BB&$K(Bconvention.dicon$B$rG[CV(B
creator.dicon$B$N(Bcomponent class$B%Q%9$r=$@5(B


$B!d(BUrumaNamingConventionImpl
$B!d(B $B"*(B Uruma $B$X%Q%C%1!<%80\F0(B
$B!d(B     + $B%G%U%)%k%H$N(B convention.dicon $B$rDs6!(B
$B-!0J2<$N%Q%C%1!<%80\F0(B
org.seasar.uruma.container.convention
$B-"(BUrumaApp$BB&$K(Bconvention.dicon$B$rG[CV(B
convention.dicon$B$N(Bcomponent class$B%Q%9$r=$@5(B
$B-#%$%s%J!<%/%i%9!J(BExistChecker$B7O!K$,(Bprotected$B$N$?$a(B
$BB>%Q%C%1!<%8;2>H$G$-$J$$$N$G!"(Bpublic$B$K$7$^$7$?!#(B
S2Container$BB&$N(BNamingConventionImpl$B$rJQ99D:$1$J$$$G$7$g$&$+!#(B

[$BA0(B] protected static interface *
[$B8e(B] public static interface *
[$BA0(B] protected $B%3%s%9%H%i%/%?(B
[$B8e(B] public $B%3%s%9%H%i%/%?(B

[$B=$@58e%=!<%9(B] org.seasar.framework.convention.impl.NamingConventionImpl 910$B9TL\0J9_(B
   /**
     * $BB8:_%A%'%C%+$N%$%s%?!<%U%'!<%9$G$9!#(B
     *
     */
    public static interface ExistChecker {
        /**
         * $B%/%i%9$,B8:_$9$k$+$I$&$+$rJV$7$^$9!#(B
         *
         * @param lastClassName
         * @return $B%/%i%9$,B8:_$9$k$+$I$&$+(B
         */
        boolean isExist(String lastClassName);

        /**
         * $B%j%=!<%9$r3+J|$7$^$9!#(B
         */
        void close();
    }

    /**
     * $B%U%!%$%kMQ$NB8:_%A%'%C%+$G$9!#(B
     *
     */
    public static class FileExistChecker implements ExistChecker {
        private File rootFile;

        /**
         * $B%$%s%9%?%s%9$r:[E-MAIL ADDRESS DELETED]$7$^$9!#(B
         *
         * @param rootUrl
         *            $B%k!<%H(BURL
         */
        public FileExistChecker(final URL rootUrl) {
            rootFile = URLUtil.toFile(rootUrl);
        }

        public boolean isExist(final String lastClassName) {
            final File file = new File(rootFile,
getPathName(lastClassName));
            return file.exists();
        }

        public void close() {
        }
    }

    /**
     * jar$BMQ$NB8:_%A%'%C%+$G$9!#(B
     *
     */
    public static class JarExistChecker implements ExistChecker {
        private JarFile jarFile;

        private String rootPath;

        /**
         * $B%$%s%9%?%s%9$r:[E-MAIL ADDRESS DELETED]$7$^$9!#(B
         *
         * @param jarUrl
         *            jar URL
         * @param rootPackageName
         *            $B%k!<%H%Q%C%1!<%8L>(B
         */
        public JarExistChecker(final URL jarUrl, final String
rootPackageName) {
            jarFile = JarFileUtil.toJarFile(jarUrl);
            this.rootPath = rootPackageName.replace('.', '/') + "/";
        }

        public boolean isExist(final String lastClassName) {
            return jarFile.getEntry(rootPath + getPathName(lastClassName))
!= null;
        }

        public void close() {
            JarFileUtil.close(jarFile);
        }
    }

    /**
     * zip$BMQ$NB8:_%A%'%C%+$G$9!#(B
     *
     */
    public static class ZipExistChecker implements ExistChecker {
        private ZipFile zipFile;

        private String rootPath;

        /**
         * $B%$%s%9%?%s%9$r:[E-MAIL ADDRESS DELETED]$7$^$9!#(B
         *
         * @param zipUrl
         *            zip URL
         * @param rootPackageName
         *            $B%k!<%H%Q%C%1!<%8L>(B
         */
        public ZipExistChecker(final URL zipUrl, final String
rootPackageName) {
            zipFile = ZipFileUtil.toZipFile(zipUrl);
            this.rootPath = rootPackageName.replace('.', '/') + "/";
        }

        public boolean isExist(final String lastClassName) {
            return zipFile.getEntry(rootPath + getPathName(lastClassName))
!= null;
        }

        public void close() {
            ZipFileUtil.close(zipFile);
        }
    }

    /**
     * OC4J$BMQ$NB8:_%A%'%C%+$G$9!#(B
     *
     */
    public static class CodeSourceExistChecker implements ExistChecker {
        private JarFile jarFile;

        private String rootPath;

        /**
         * $B%$%s%9%?%s%9$r:[E-MAIL ADDRESS DELETED]$7$^$9!#(B
         *
         * @param url
         *            URL
         * @param rootPackageName
         *            $B%k!<%H%Q%C%1!<%8L>(B
         */
        public CodeSourceExistChecker(final URL url,
                final String rootPackageName) {
            final URL jarUrl = URLUtil.create("jar:file:" + url.getPath());
            jarFile = JarFileUtil.toJarFile(jarUrl);
            this.rootPath = rootPackageName.replace('.', '/') + "/";
        }

        public boolean isExist(final String lastClassName) {
            return jarFile.getEntry(rootPath + getPathName(lastClassName))
!= null;
        }

        public void close() {
            JarFileUtil.close(jarFile);
        }
    }
[$B=$@58e%=!<%9(B]$B$3$3$^$G(B


$B!d(BEnv
$B!d(B $B"*(B $B%U%!%$%k$N<hF@$,(BRCP$B4D6-$G$O$&$^$/$$$+$J$$$N$,LdBj$G$9$M!#(B
$B!d(B   S2Container$BB&$G$N=$@5J}K!$r9M$($^$9!#(B
S2Container$BB&$N(B
Env#setFile $B$N(BEcepction$B$r(BRuntimeEception$B$KJQ99D:$1$J$$$G$7$g$&$+!#(B
[$BA0(B] FileNotFoundException
[$B8e(B] ResourceNotFoundRuntimeException

[$B=$@58e%=!<%9(B] org.seasar.framework.env.Env
    /**
     * $B4D6-L>@_Dj%U%!%$%k$[E-MAIL ADDRESS DELETED]$7$^$9!#(B
     *
     * @param fileObj
     *            $[E-MAIL ADDRESS DELETED]%U%!%$%k$rI=$9(B {@link File} $B%*%V%8%'%/%H(B
     * @throws EmptyRuntimeException
     *             <code>fileObj</code>$B$,(B<code>null</code>$B$N>l9g$K%9%m!<$5$l$^$9(B
     * @throws ResourceNotFoundRuntimeException
     *             <code>fileObj</code>$B$N<($9%U%!%$%k$,B8:_$7$J$$>l9g$K%9%m!<$5$l$^$9(B
     */
    public static void setFile(final File fileObj) {
        if (fileObj == null) {
            throw new EmptyRuntimeException("fileObj");
        }
        if (!fileObj.exists()) {
            throw new ResourceNotFoundRuntimeException(fileObj
                    .getAbsolutePath());
        }
        Env.filePath = fileObj.getAbsolutePath();
        file = fileObj;
        calcValue();
    }
[$B=$@58e%=!<%9(B]$B$3$3$^$G(B

$B0J>e$G$9!#(B
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
URL: http://ml.seasar.org/archives/uruma-dev/attachments/20080402/e9a44c7e/attachment-0001.html 


uruma-dev メーリングリストの案内