In Carbon Kernel, the usage of *listFiles()* and the polling implementation of finding artifacts will be changed to an event driven watching implementation in the future. Even in this new implementation, we can use *FilenameFilter* to filt artifacts before providing them to the Deployers. We can use *getArtifactType()* function in *Deployer* interface to get a *FilenameFilter* for a particular deployer.
Best Regards, Samiyuru On Wed, Dec 16, 2015 at 1:22 PM, Sagara Gunathunga <[email protected]> wrote: > > > On Thu, Dec 10, 2015 at 2:15 PM, Afkham Azeez <[email protected]> wrote: > >> The deployment engine should call the deployer only for valid artifact >> types. So yes, it looks like the fixes have to be done in the kernel. >> > > In addition to *.txt files I'm getting same exception for .DS_Store file > created by the OS as well. > > In C5 how we define (identify) artifact types for deployment ? > > We used to identify artifact types based on file extension such as .arr, > .jar etc. If we still use same approach it would be better and much > efficient to pass a FilenameFilter[1] object into the listFiles() call on > RepositoryScanner#findArtifactsToDeploy() method instead of iterating all > the files in the directory. > > [1] - > https://docs.oracle.com/javase/8/docs/api/java/io/FilenameFilter.html > > Thanks ! > >> >> On Thu, Dec 10, 2015 at 1:47 PM, Samiyuru Senarathne <[email protected]> >> wrote: >> >>> First part of this issue is trying to deploy invalid files. The second >>> part of the issue is deployment engine tries to deploy the artifact again >>> and again even though an exception is thrown for that particular artifact >>> by the deployer. Because of this the exception is thrown again and again. >>> >>> The second part of the problem will be solved with the kernel GA since >>> the GA's deployment engine records the faulty artifacts. >>> >>> IMO the first part of issue also should be fixed in deployment engine. >>> The reason for that is as follows. >>> >>> *org.wso2.carbon.mss.internal.deployer.MSSDeployer* implements >>> *org.wso2.carbon.kernel.deployment.Deployer* interface that is provided >>> by the deployment engine of carbon kernel. >>> >>> org.wso2.carbon.kernel.deployment.Deployer interface has the following >>> functions. >>> >>> - Object deploy(Artifact var1) throws CarbonDeploymentException; >>> - void undeploy(Object var1) throws CarbonDeploymentException; >>> - Object update(Artifact var1) throws CarbonDeploymentException; >>> - URL getLocation(); >>> - ArtifactType getArtifactType(); >>> >>> Here deploy(Artifact var1) function is called with a >>> *org.wso2.carbon.kernel.deployment.Artifact* parameter by the kernel's >>> deployment engine whenever a new artifact is found. So, deploy() function >>> is called with both valid and invalid artifact types. >>> >>> Here, getArtifactType() is meant to get the artifact type that is >>> supported by a particular deployer implementation. IMO since this function >>> is there to identify the supported artifact types of a Deployer, deployment >>> engine should filter the found artifacts using the ArtifactType before >>> calling the deploy() function of a Deployer implementation. Then, the >>> deployment engine will call deploy() function only with valid artifacts for >>> that specific deployer. Therefore, each deployer implementation will not >>> have to do duplicate implementations to filt the artifact types they >>> support. IMO unless getting an ArtifactType from the deployer >>> implementation is less useful. >>> >>> WDYT? >>> >>> Best Regards, >>> Samiyuru >>> >>> On Thu, Dec 10, 2015 at 11:35 AM, Afkham Azeez <[email protected]> wrote: >>> >>>> [2015-12-10 11:34:09,012] INFO >>>> {org.wso2.carbon.mss.internal.deployer.MSSDeployer} - Deploying artifact: >>>> /Users/azeez/projects/github/wso2/product-mss/product/target/wso2mss-1.0.0-SNAPSHOT/repository/deployment/server/mss/README.txt >>>> >>>> [2015-12-10 11:34:09,013] ERROR >>>> {org.wso2.carbon.kernel.internal.deployment.DeploymentEngine} - Error while >>>> deploying artifacts >>>> org.wso2.carbon.kernel.deployment.exception.CarbonDeploymentException: >>>> Error while processing the artifact: >>>> /Users/azeez/projects/github/wso2/product-mss/product/target/wso2mss-1.0.0-SNAPSHOT/repository/deployment/server/mss/README.txt >>>> >>>> at >>>> org.wso2.carbon.mss.internal.deployer.MSSDeployer.deploy(MSSDeployer.java:78) >>>> >>>> at >>>> org.wso2.carbon.kernel.internal.deployment.DeploymentEngine.lambda$deployArtifacts$18(DeploymentEngine.java:229) >>>> >>>> at >>>> org.wso2.carbon.kernel.internal.deployment.DeploymentEngine$$Lambda$45/1996363093.accept(Unknown >>>> Source) >>>> >>>> at java.util.ArrayList.forEach(ArrayList.java:1249) >>>> >>>> at >>>> org.wso2.carbon.kernel.internal.deployment.DeploymentEngine.deployArtifacts(DeploymentEngine.java:225) >>>> >>>> at >>>> org.wso2.carbon.kernel.internal.deployment.RepositoryScanner.sweep(RepositoryScanner.java:110) >>>> >>>> at >>>> org.wso2.carbon.kernel.internal.deployment.RepositoryScanner.scan(RepositoryScanner.java:68) >>>> >>>> at >>>> org.wso2.carbon.kernel.internal.deployment.SchedulerTask.run(SchedulerTask.java:43) >>>> >>>> at >>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) >>>> >>>> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) >>>> >>>> at >>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) >>>> >>>> at >>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) >>>> >>>> at >>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) >>>> >>>> at >>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) >>>> >>>> at java.lang.Thread.run(Thread.java:745) >>>> >>>> Caused by: >>>> org.wso2.carbon.mss.internal.deployer.MSSJarProcessorException: Error >>>> retrieving manifest: >>>> /Users/azeez/projects/github/wso2/product-mss/product/target/wso2mss-1.0.0-SNAPSHOT/repository/deployment/server/mss/README.txt >>>> >>>> at >>>> org.wso2.carbon.mss.internal.deployer.MSSJarProcessor.readMSSManifestEntry(MSSJarProcessor.java:125) >>>> >>>> at >>>> org.wso2.carbon.mss.internal.deployer.MSSJarProcessor.process(MSSJarProcessor.java:65) >>>> >>>> at >>>> org.wso2.carbon.mss.internal.deployer.MSSDeployer.deploy(MSSDeployer.java:76) >>>> >>>> ... 14 more >>>> >>>> Caused by: java.util.zip.ZipException: error in opening zip file >>>> >>>> at java.util.zip.ZipFile.open(Native Method) >>>> >>>> at java.util.zip.ZipFile.<init>(ZipFile.java:220) >>>> >>>> at java.util.zip.ZipFile.<init>(ZipFile.java:150) >>>> >>>> at java.util.jar.JarFile.<init>(JarFile.java:166) >>>> >>>> at java.util.jar.JarFile.<init>(JarFile.java:103) >>>> >>>> at >>>> org.wso2.carbon.mss.internal.deployer.MSSJarProcessor.readMSSManifestEntry(MSSJarProcessor.java:113) >>>> >>>> >>>> The deployer should ignore unknown extensions. It is trying to deploy a >>>> .txt file. >>>> >>>> -- >>>> *Afkham Azeez* >>>> Director of Architecture; WSO2, Inc.; http://wso2.com >>>> Member; Apache Software Foundation; http://www.apache.org/ >>>> * <http://www.apache.org/>* >>>> *email: **[email protected]* <[email protected]> >>>> * cell: +94 77 3320919 <%2B94%2077%203320919>blog: * >>>> *http://blog.afkham.org* <http://blog.afkham.org> >>>> *twitter: **http://twitter.com/afkham_azeez* >>>> <http://twitter.com/afkham_azeez> >>>> *linked-in: **http://lk.linkedin.com/in/afkhamazeez >>>> <http://lk.linkedin.com/in/afkhamazeez>* >>>> >>>> *Lean . Enterprise . Middleware* >>>> >>> >>> >>> >>> -- >>> Samiyuru Senarathne >>> *Software Engineer* >>> Mobile : +94 (0) 71 134 6087 >>> [email protected] >>> >> >> >> >> -- >> *Afkham Azeez* >> Director of Architecture; WSO2, Inc.; http://wso2.com >> Member; Apache Software Foundation; http://www.apache.org/ >> * <http://www.apache.org/>* >> *email: **[email protected]* <[email protected]> >> * cell: +94 77 3320919 <%2B94%2077%203320919>blog: * >> *http://blog.afkham.org* <http://blog.afkham.org> >> *twitter: **http://twitter.com/afkham_azeez* >> <http://twitter.com/afkham_azeez> >> *linked-in: **http://lk.linkedin.com/in/afkhamazeez >> <http://lk.linkedin.com/in/afkhamazeez>* >> >> *Lean . Enterprise . Middleware* >> >> _______________________________________________ >> Architecture mailing list >> [email protected] >> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >> >> > > > -- > Sagara Gunathunga > > Architect; WSO2, Inc.; http://wso2.com > V.P Apache Web Services; http://ws.apache.org/ > Linkedin; http://www.linkedin.com/in/ssagara > Blog ; http://ssagara.blogspot.com > > -- Samiyuru Senarathne *Software Engineer* Mobile : +94 (0) 71 134 6087 [email protected]
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
