/**
*
*/
package net.blogracy;
import java.io.File;
import java.io.FileWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Properties;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import net.blogracy.i2p.I2PHelper;
import net.blogracy.logging.Logger;
import net.blogracy.services.ChatService;
import net.blogracy.services.DownloadService;
import net.blogracy.services.LookupService;
import net.blogracy.services.SeedService;
import net.blogracy.services.StoreService;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.broker.BrokerService;
import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.plugins.Plugin;
import org.gudy.azureus2.plugins.PluginException;
import org.gudy.azureus2.plugins.PluginInterface;
import org.gudy.azureus2.plugins.PluginListener;
import org.gudy.azureus2.plugins.PluginManager;
import com.aelitis.azureus.plugins.chat.ChatPlugin;
/**
* @author mic
*
*/
public class Blogracy implements Plugin {
private static BrokerService broker;
private ConnectionFactory connectionFactory;
private Connection connection;
private StoreService storeService;
private LookupService lookupService;
private SeedService seedService;
private DownloadService downloadService;
private ChatService chatService;
private static final List<String> argList = new ArrayList<String>();
/*
* (non-Javadoc)
*
* @see
* org.gudy.azureus2.plugins.Plugin#initialize(org.gudy.azureus2.plugins
* .PluginInterface)
*/
@Override
public void initialize(PluginInterface vuze) throws PluginException {
createQueues(vuze);
/*
vuze.addListener(new PluginListener() {
public void initializationComplete() {
try {
File f = new File("plugins/blogracy/vuze.properties");
if (f.exists() && (COConfigurationManager.getIntParameter("User Mode") == 0 || argList.contains("--config"))) {
java.util.Properties prop = new java.util.Properties();
prop.load(new java.io.FileReader("plugins/blogracy/vuze.properties"));
for (String key : prop.stringPropertyNames()) {
String str = prop.getProperty(key);
if (COConfigurationManager.getParameter(key) instanceof Number) {
int val = Integer.parseInt(str);
COConfigurationManager.setParameter(key, val);
} else {
COConfigurationManager.setParameter(key, str);
}
}
String ip = COConfigurationManager.getStringParameter("Override Ip");
if (ip.startsWith("i2p:")) {
String tunnel = I2PHelper.getTunnel(ip.substring(4));
String destination = I2PHelper.getDestination(tunnel);
COConfigurationManager.setParameter("Override Ip", destination + ".i2p");
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void closedownInitiated() { }
public void closedownComplete() { }
});
*/
}
void createQueues(final PluginInterface vuze) {
String brokerUrl = ActiveMQConnection.DEFAULT_BROKER_URL;
try {
connectionFactory = new ActiveMQConnectionFactory(brokerUrl);
connection = connectionFactory.createConnection();
connection.start();
storeService = new StoreService(connection, vuze);
lookupService = new LookupService(connection, vuze);
seedService = new SeedService(connection, vuze);
downloadService = new DownloadService(connection, vuze);
chatService = new ChatService(connection, vuze);
Logger.info("Blogracy Vuze plugin has started correctly");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
broker = new BrokerService();
broker.setBrokerName("blogracy");
broker.addConnector(ActiveMQConnectionFactory.DEFAULT_BROKER_BIND_URL);
broker.start();
} catch (Exception e) {
e.printStackTrace();
}
try {
(new java.io.File("plugins/chat")).mkdirs();
Properties chatProp = new Properties();
chatProp.load(Blogracy.class.getClassLoader().getResourceAsStream("plugins/chat/plugin.properties"));
chatProp.store(new FileWriter("plugins/chat/plugin.properties"), "Chat plugin");
/*
(new java.io.File("plugins/azneti2p")).mkdirs();
Properties i2pProp = new Properties();
i2pProp.load(Blogracy.class.getClassLoader().getResourceAsStream("plugins/azneti2p/plugin.properties"));
i2pProp.store(new FileWriter("plugins/azneti2p/plugin.properties"), "I2P plugin");
*/
(new java.io.File("plugins/blogracy")).mkdirs();
Properties blogracyProp = new Properties();
blogracyProp.load(Blogracy.class.getClassLoader().getResourceAsStream("plugins/blogracy/plugin.properties"));
blogracyProp.store(new FileWriter("plugins/blogracy/plugin.properties"), "Blogracy plugin");
/*
if (! (new java.io.File("plugins/blogracy/vuze.properties")).exists()) {
Properties vuzeProp = new Properties();
vuzeProp.load(Blogracy.class.getClassLoader().getResourceAsStream("plugins/blogracy/vuze.properties"));
vuzeProp.store(new FileWriter("plugins/blogracy/vuze.properties"), "Vuze properties");
}
*/
} catch (Exception e) {
e.printStackTrace();
}
argList.add("--ui=console");
argList.addAll(Arrays.asList(args));
org.gudy.azureus2.ui.common.Main.main(argList.toArray(args));
//PluginManager.startAzureus(PluginManager.UI_NONE, new java.util.Properties());
}
}