Bundle-Name: Server
Bundle-SymbolicName: user.jobengine.osgi.server;singleton:=true
Bundle-Version: 1.0.0
-Service-Component: OSGI-INF/component.xml
+Service-Component: OSGI-INF/*.xml
Import-Package: javax.servlet;version="3.1.0",
javax.servlet.http;version="3.1.0",
org.apache.logging.log4j.core;version="2.8.2",
org.apache.logging.log4j.core.layout;version="2.8.2",
org.apache.logging.log4j.core.net;version="2.8.2",
org.apache.logging.log4j.core.util;version="2.8.2",
+ org.eclipse.core.runtime.adaptor,
+ org.eclipse.osgi.framework.console;version="1.1.0",
org.osgi.framework;version="1.5.0",
+ org.osgi.framework.wiring;version="1.2.0",
org.osgi.util.tracker;version="1.4.0",
org.slf4j;version="1.6.3"
Require-Bundle: user.jobengine.osgi.db;bundle-version="1.0.0",
--- /dev/null
+package user.jobengine.osgi.server;\r
+\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+import org.eclipse.core.runtime.adaptor.EclipseStarter;\r
+import org.eclipse.osgi.framework.console.CommandInterpreter;\r
+import org.eclipse.osgi.framework.console.CommandProvider;\r
+import org.osgi.framework.Bundle;\r
+import org.osgi.framework.BundleContext;\r
+import org.osgi.framework.FrameworkUtil;\r
+import org.osgi.framework.wiring.BundleRevision;\r
+\r
+public class ConsoleCommandProvider implements CommandProvider {\r
+ private static final Logger logger = LogManager.getLogger();\r
+\r
+ @SuppressWarnings("restriction")\r
+ public Object _halt(CommandInterpreter intp) {\r
+ StringBuffer buffer = new StringBuffer();\r
+ Thread shutdownThread = new Thread(() -> {\r
+ try {\r
+ Thread.sleep(1000);\r
+ BundleContext bundleContext = FrameworkUtil.getBundle(this.getClass()).getBundleContext();\r
+ if (bundleContext != null) {\r
+ Bundle[] bundles = bundleContext.getBundles();\r
+ for (Bundle b : bundles) {\r
+ if ((b.adapt(BundleRevision.class).getTypes() & BundleRevision.TYPE_FRAGMENT) != 0)\r
+ continue;\r
+ if ("org.eclipse.equinox.ds".equals(b.getSymbolicName()))\r
+ continue;\r
+ if ("user.jobengine.osgi.commons".equals(b.getSymbolicName()))\r
+ continue;\r
+\r
+ logger.info("Stopping {} ", b.getSymbolicName());\r
+ b.stop();\r
+ }\r
+ }\r
+ EclipseStarter.shutdown();\r
+\r
+ System.exit(0);\r
+ } catch (Exception e) {\r
+ logger.error("Error:", e);\r
+ }\r
+ });\r
+ buffer.append("Shutdown initiated");\r
+ shutdownThread.start();\r
+ return buffer.toString();\r
+ }\r
+\r
+ public void activate() {\r
+ logger.info("{} activated", getClass().getSimpleName());\r
+ }\r
+\r
+ public void deactivate() {\r
+ logger.info("{} deactivated", getClass().getSimpleName());\r
+ }\r
+\r
+ @Override\r
+ public String getHelp() {\r
+ StringBuffer buffer = new StringBuffer();\r
+ buffer.append("halt - Halt server\n");\r
+ return buffer.toString();\r
+ }\r
+}
\ No newline at end of file
searchResult = new CachedListModel(searchValue);\r
} catch (Exception exc) {\r
// Error during search dialog\r
- Messagebox.show(Labels.getLabel("error.search"), Labels.getLabel("dialogger.warning"), Messagebox.OK,\r
- Messagebox.ERROR, defaultOKEventListener);\r
+ Messagebox.show(Labels.getLabel("error.search"), Labels.getLabel("dialogger.warning"), Messagebox.OK, Messagebox.ERROR, defaultOKEventListener);\r
logger.error("", exc);\r
}\r
}\r
\r
- public String getSearchValue() {\r
- return searchValue;\r
- }\r
-\r
- public void setSearchValue(String searchValue) {\r
- this.searchValue = searchValue;\r
- }\r
-\r
- public CachedListModel getSearchResult() {\r
- return searchResult;\r
- }\r
-\r
- public Item getSelectedItem() {\r
- return selectedItem;\r
- }\r
-\r
- public void setSelectedItem(Item _selectedItem) {\r
- this.selectedItem = _selectedItem;\r
- }\r
-\r
- public Media getSelectedMedia() {\r
- return selectedMedia;\r
- }\r
-\r
- public void setSelectedMedia(Media _selectedMedia) {\r
- this.selectedMedia = _selectedMedia;\r
- }\r
-\r
@Command\r
- @NotifyChange({ "mediaFilePath", "hasSelectedMediaFile" })\r
- public void onSelectMedia(@BindingParam("media") Media m) {\r
- this.selectedMedia = m;\r
- }\r
-\r
- //islowres player protocol + address + relativepath\r
- //issystem TSM\r
-\r
- /*\r
- public String getMediaFilePath(){\r
- String ret = "";\r
- if(this.selectedMedia != null){\r
- List<MediaFile> mediaFiles = this.selectedMedia.getMediaFiles();\r
- for(MediaFile mf : mediaFiles){\r
- //if(!mf.isArchived() ???){ ++++++++++++++++++++\r
- ret = "/pages/mediaplayer.jsp?mediaurl=" + mf.getRelativePath(); \r
- //ret = mf.getRelativePath();\r
- //}\r
- }\r
+ public void downloadMedia() {\r
+ if (getHasTSMMediaFile()) {\r
+ try {\r
+ Map<String, Object> parameters1 = new HashMap<>();\r
+ parameters1.put("media", this.selectedMedia);\r
+ IJobEngine jobEngine = JobEngine.getInstance();\r
+ IJobRuntime runtime1 = jobEngine.submit("tsmrestore.xml", "TSMRestoreMedia", parameters1);\r
+ } catch (Exception exc) {\r
+ logger.error("", exc);\r
}\r
- return ret; \r
- }\r
- \r
- public boolean getHasSelectedMediaFile(){\r
- String mediaFilePath =getMediaFilePath(); \r
- return (mediaFilePath != null && !"".equals(mediaFilePath)); \r
}\r
- */\r
+\r
+ }\r
\r
public boolean getHasLowresMediaFile() {\r
boolean ret = false;\r
return ret;\r
}\r
\r
+ public CachedListModel getSearchResult() {\r
+ return searchResult;\r
+ }\r
+\r
+ public String getSearchValue() {\r
+ return searchValue;\r
+ }\r
+\r
+ public Item getSelectedItem() {\r
+ return selectedItem;\r
+ }\r
+\r
+ public Media getSelectedMedia() {\r
+ return selectedMedia;\r
+ }\r
+\r
+ //islowres player protocol + address + relativepath\r
+ //issystem TSM\r
+\r
+ /*\r
+ public String getMediaFilePath(){\r
+ String ret = "";\r
+ if(this.selectedMedia != null){\r
+ List<MediaFile> mediaFiles = this.selectedMedia.getMediaFiles();\r
+ for(MediaFile mf : mediaFiles){\r
+ //if(!mf.isArchived() ???){ ++++++++++++++++++++\r
+ ret = "/pages/mediaplayer.jsp?mediaurl=" + mf.getRelativePath();\r
+ //ret = mf.getRelativePath();\r
+ //}\r
+ }\r
+ }\r
+ return ret;\r
+ }\r
+\r
+ public boolean getHasSelectedMediaFile(){\r
+ String mediaFilePath =getMediaFilePath();\r
+ return (mediaFilePath != null && !"".equals(mediaFilePath));\r
+ }\r
+ */\r
+\r
public String getTSMMediaFilePath() throws Exception {\r
String ret = "";\r
if (this.selectedMedia != null) {\r
}\r
\r
@Command\r
- public void downloadMedia() {\r
- if (getHasTSMMediaFile()) {\r
- try{\r
- Map<String, Object> parameters1 = new HashMap<>();\r
- parameters1.put("media", this.selectedMedia);\r
- IJobEngine jobEngine = JobEngine.getInstance();\r
- IJobRuntime runtime1 = jobEngine.submit("tsmrestore.xml", "TSMRestoreMedia", parameters1);\r
- }catch(Exception exc){\r
- logger.error("",exc);\r
- }\r
- }\r
- \r
+ @NotifyChange({ "mediaFilePath", "hasSelectedMediaFile", "hasLowresMediaFile" })\r
+ public void onSelectMedia(@BindingParam("media") Media m) {\r
+ this.selectedMedia = m;\r
+ }\r
+\r
+ public void setSearchValue(String searchValue) {\r
+ this.searchValue = searchValue;\r
+ }\r
+\r
+ public void setSelectedItem(Item _selectedItem) {\r
+ this.selectedItem = _selectedItem;\r
+ }\r
+\r
+ public void setSelectedMedia(Media _selectedMedia) {\r
+ this.selectedMedia = _selectedMedia;\r
}\r
\r
}\r