KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > petals > jbi > management > deployment > deploy > SADeploymentSuccessTask


1 /**
2  * PETALS - PETALS Services Platform.
3  * Copyright (c) 2006 EBM Websourcing, http://www.ebmwebsourcing.com/
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * -------------------------------------------------------------------------
19  * $Id: SADeploymentSuccessTask.java 154 6 oct. 06 ofabre $
20  * -------------------------------------------------------------------------
21  */

22 package org.objectweb.petals.jbi.management.deployment.deploy;
23
24 import java.io.File JavaDoc;
25 import java.io.IOException JavaDoc;
26 import java.net.URI JavaDoc;
27 import java.util.HashMap JavaDoc;
28
29 import org.objectweb.petals.jbi.management.autoload.AutoLoaderImpl;
30 import org.objectweb.petals.jbi.management.deployment.DeploymentContextConstants;
31 import org.objectweb.petals.jbi.management.deployment.DeploymentServiceImpl;
32 import org.objectweb.petals.jbi.management.deployment.DeploymentUtils;
33 import org.objectweb.petals.jbi.management.deployment.ServiceAssemblyDataHandler;
34 import org.objectweb.petals.processor.Task;
35 import org.objectweb.petals.tools.jbicommon.descriptor.JBIDescriptor;
36 import org.objectweb.petals.util.LoggingUtil;
37
38 /**
39  * This task adds sa name to the list of successfuly deployed sa and creates
40  * success file in workdir.
41  *
42  * @author ofabre - EBM Websourcing
43  *
44  */

45 public class SADeploymentSuccessTask implements Task {
46
47     protected DeploymentServiceImpl deploymentService;
48
49     /**
50      * logger wrapper
51      */

52     protected LoggingUtil log;
53
54     public SADeploymentSuccessTask(DeploymentServiceImpl deploymentService,
55         LoggingUtil log) {
56         super();
57         this.deploymentService = deploymentService;
58         this.log = log;
59     }
60
61     public void execute(HashMap JavaDoc context) throws Exception JavaDoc {
62         JBIDescriptor descriptor = (JBIDescriptor) context
63             .get(DeploymentContextConstants.SA_DESCRIPTOR);
64
65         URI JavaDoc saArchiveURI = (URI JavaDoc) context
66             .get(DeploymentContextConstants.ARCHIVE_URI);
67
68         File JavaDoc file = DeploymentUtils.getArchiveFile(saArchiveURI);
69         File JavaDoc installedArchive = DeploymentUtils.getInstalledArchive(file);
70
71         /*
72          * Add sa name to the list of successfuly deployed sa
73          */

74         ServiceAssemblyDataHandler handler = new ServiceAssemblyDataHandler(
75             DeploymentUtils.getServiceAssemblyName(descriptor), descriptor,
76             saArchiveURI);
77         deploymentService.getDeployedSACache().put(
78             DeploymentUtils.getServiceAssemblyName(descriptor), handler);
79
80         /*
81          * Create success file in workdir
82          */

83         createSuccessFile(installedArchive);
84         
85         /*
86          * Log deployment success
87          */

88         log.info(DeploymentUtils.getServiceAssemblyName(descriptor)+" successfully deployed");
89
90     }
91
92     /**
93      * Create a success file into the work directory to confirm the sa
94      * successful deployment
95      *
96      * @param installedArchive
97      * the installed archive {@link File}
98      * @return true if succes file creation is ok, false otherwise
99      * @throws IOException
100      * if success file creation fails
101      */

102     protected boolean createSuccessFile(File JavaDoc installedArchive)
103         throws IOException JavaDoc {
104         return new File JavaDoc(AutoLoaderImpl.getWorkDirectory(), installedArchive
105             .getName()
106             + ".success").createNewFile();
107     }
108
109     public void undo(HashMap JavaDoc context) {
110         // Last task, nothing to do
111

112     }
113
114 }
115
Popular Tags