Skip to content

Commit

Permalink
Added ChemSpider InChIKey resolution functionality
Browse files Browse the repository at this point in the history
  • Loading branch information
egonw committed Jun 23, 2010
1 parent 5453860 commit 38cf36f
Show file tree
Hide file tree
Showing 13 changed files with 567 additions and 0 deletions.
7 changes: 7 additions & 0 deletions features/net.bioclipse.chemoinformatics_feature/feature.xml
Expand Up @@ -555,4 +555,11 @@ The Eclipse Public License accompanies this distribution, and is available at ht
install-size="0"
version="0.0.0"/>

<plugin
id="net.bioclipse.chemspider"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>

</feature>
7 changes: 7 additions & 0 deletions plugins/net.bioclipse.chemspider/.classpath
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
28 changes: 28 additions & 0 deletions plugins/net.bioclipse.chemspider/.project
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>net.bioclipse.chemspider</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
20 changes: 20 additions & 0 deletions plugins/net.bioclipse.chemspider/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Bioclipse ChemSpider Integration
Bundle-SymbolicName: net.bioclipse.chemspider; singleton:=true
Bundle-Version: 2.4.0.RC2_1
Bundle-Activator: net.bioclipse.chemspider.Activator
Bundle-Vendor: The Bioclipse Project
Export-Package: net.bioclipse.chemspider, net.bioclipse.chemspider.business
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
net.bioclipse.core,
net.bioclipse.scripting,
org.springframework.bundle.spring.aop,
net.sf.cglib,
org.springframework.osgi.aopalliance.osgi,
org.eclipse.core.resources,
net.bioclipse.cdk.business
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: org.apache.log4j
Bundle-ActivationPolicy: lazy
68 changes: 68 additions & 0 deletions plugins/net.bioclipse.chemspider/META-INF/spring/context.xml
@@ -0,0 +1,68 @@
<?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:osgi="http://www.springframework.org/schema/osgi"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd">

<osgi:service id="javaChemspiderManagerOSGI"
ref="javaChemspiderManager"
interface="net.bioclipse.chemspider.business.IJavaChemspiderManager" />

<osgi:service id="javaScriptChemspiderManagerOSGI"
ref="javaScriptChemspiderManager"
interface="net.bioclipse.chemspider.business.IJavaScriptChemspiderManager" />

<osgi:reference id="recordingAdvice"
interface="net.bioclipse.recording.IRecordingAdvice" />

<osgi:reference id="javaManagerDispatcherAdvisor"
interface="net.bioclipse.managers.business.IJavaManagerDispatcherAdvisor" />

<osgi:reference id="javaScriptManagerDispatcherAdvisor"
interface="net.bioclipse.managers.business.IJavaScriptManagerDispatcherAdvisor" />

<osgi:reference id="wrapInProxyAdvice"
interface="net.bioclipse.recording.IWrapInProxyAdvice" />

<bean id="recordingAdvisor"
class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
<property name="advice" ref="recordingAdvice" />
<property name="pattern" value=".*" /> <!-- See also class implementation -->
</bean>

<bean id="ChemspiderManagerTarget"
class="net.bioclipse.chemspider.business.ChemspiderManager">
</bean>

<bean id="javaScriptChemspiderManager"
class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target"
ref="ChemspiderManagerTarget" />
<property name="proxyInterfaces"
value="net.bioclipse.chemspider.business.IJavaScriptChemspiderManager" />
<property name="interceptorNames" >
<list>
<value>recordingAdvisor</value>
<value>wrapInProxyAdvice</value>
<value>javaScriptManagerDispatcherAdvisor</value>
</list>
</property>
</bean>

<bean id="javaChemspiderManager"
class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target"
ref="ChemspiderManagerTarget" />
<property name="proxyInterfaces"
value="net.bioclipse.chemspider.business.IJavaChemspiderManager" />
<property name="interceptorNames" >
<list>
<value>recordingAdvisor</value>
<value>wrapInProxyAdvice</value>
<value>javaManagerDispatcherAdvisor</value>
</list>
</property>
</bean>
</beans>
5 changes: 5 additions & 0 deletions plugins/net.bioclipse.chemspider/build.properties
@@ -0,0 +1,5 @@
source.. = src/
output.. = bin/
bin.includes = plugin.xml,\
META-INF/,\
.
13 changes: 13 additions & 0 deletions plugins/net.bioclipse.chemspider/plugin.xml
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>

<extension
point="net.bioclipse.scripting.contribution">
<scriptContribution
service="net.bioclipse.chemspider.business.ChemspiderManagerFactory"
id="net.bioclipse.chemspider.business.ChemspiderManager">
</scriptContribution>
</extension>

</plugin>
@@ -0,0 +1,105 @@
/*******************************************************************************
* Copyright (c) 2010 Egon Willighagen <egon.willighagen@gmail.com>
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contact: http://www.bioclipse.net/
******************************************************************************/
package net.bioclipse.chemspider;

import net.bioclipse.chemspider.business.IChemspiderManager;
import net.bioclipse.chemspider.business.IJavaChemspiderManager;
import net.bioclipse.chemspider.business.IJavaScriptChemspiderManager;

import org.apache.log4j.Logger;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
import org.osgi.util.tracker.ServiceTracker;

/**
* The Activator class controls the plug-in life cycle
*/
public class Activator extends AbstractUIPlugin {

private static final Logger logger = Logger.getLogger(Activator.class);

// The shared instance
private static Activator plugin;

// Trackers for getting the managers
private ServiceTracker javaFinderTracker;
private ServiceTracker jsFinderTracker;

public Activator() {
}

public void start(BundleContext context) throws Exception {
super.start(context);
plugin = this;
javaFinderTracker
= new ServiceTracker( context,
IJavaChemspiderManager.class.getName(),
null );

javaFinderTracker.open();
jsFinderTracker
= new ServiceTracker( context,
IJavaScriptChemspiderManager.class.getName(),
null );

jsFinderTracker.open();
}

public void stop(BundleContext context) throws Exception {
plugin = null;
super.stop(context);
}

/**
* Returns the shared instance
*
* @return the shared instance
*/
public static Activator getDefault() {
return plugin;
}

public IChemspiderManager getJavaChemspiderManager() {
IChemspiderManager manager = null;
try {
manager = (IChemspiderManager)
javaFinderTracker.waitForService(1000*10);
}
catch (InterruptedException e) {
throw new IllegalStateException(
"Could not get the Java ChemspiderManager",
e );
}
if (manager == null) {
throw new IllegalStateException(
"Could not get the Java ChemspiderManager");
}
return manager;
}

public IJavaScriptChemspiderManager getJavaScriptChemspiderManager() {
IJavaScriptChemspiderManager manager = null;
try {
manager = (IJavaScriptChemspiderManager)
jsFinderTracker.waitForService(1000*10);
}
catch (InterruptedException e) {
throw new IllegalStateException(
"Could not get the JavaScript ChemspiderManager",
e );
}
if (manager == null) {
throw new IllegalStateException(
"Could not get the JavaScript ChemspiderManager");
}
return manager;
}
}

0 comments on commit 38cf36f

Please sign in to comment.