Need package help

I've got three files in a package. In the .java file with the main method, I've tried putting the package statement at the top, and import statements, but I still get errors in my main method that are unresolved symbols referring to the classes in the other two files. How is this done exactly?
All of my .java files are in H:\wired
All .java files (including main) have package wired; at the top
I import wired.*; in my main file (tried this with and without it)
Nothing works so far. If you need more info about the code, please refer to my "Need help moving to OO" thread below.

If you want your classes to be in package "wired" then you put "package wired;" as the first line of code. So far so good.
You don't need to import anything to use classes in the same package, so "import wired.*;" is unnecessary.
If your .java files are in H:\wired, then you must make sure that H:\ is in your classpath. Not H:\wired. The package has to be in the classpath. You may be able to achieve this just by changing your current directory to H:\, but I'm not going to say any more about how to set your classpath.
And if you want to compile "magazine.java" from that package, you need to type "javac wired/magazine.java" at the command line.

Similar Messages

  • Need your help on performance issue please

    Hello everyone!
    I need your help to understand an effect I notice with a Thread class I built. I currently work on enhancement of my application Playlist Editor (see http://www.lightdev.com/page74.htm) and a new release will be available soon.
    Among other extensions the new release will have a title filter function which is based on audio data that is recursively read from ID3 tags of files found in a given root directory. The data collection is done by a CollectionThread class which reads into a data model class AudioDataModel and the entire process works fine, no problem with that.
    However, when my application is started for the first time the CollectionThread runs approximately 3 minutes to collect data from approximately 4300 audio files on an Intel Pentium M 1,4 GHz, 512 MB RAM, Windows XP SP2. When the application is shut down and started again, it takes only a few seconds to do the same task for all subsequent launches.
    I already tried to start the application with java option -Xms40m to increase initial heap size. This increases performance in general but the effect is still the same, i.e. first run lasts significantly longer than subsequent runs.
    I also tried to build a pool mechanism which creates many empty objects in the data model and then releases them to contain the actual data at is being read in but this did not lead to better performance.
    It must have to do with how Java (or Windows?) allocates and caches memory. I wonder whether there is a way to pre-allocate memory or if there are any other ideas to improve performance so that the process always only takes seconds instead of minutes?
    I attach the key classes to this message. Any help or ideas is much appreciated!
    Thanks a lot a best regards
    Ulrich
    PS: You can use the news subscription service at
    http://www.lightdev.com/dynTemplate.php4?id=80&dynPage=subscribe.php4 to be informed when the new release of Playlist Editor is available.
    All classes posted here do not need debugging, they already have proven to run error free. The classes are only posted for information for the interested reader - no need to go through all the stuff in detail - only if it interests you.
    My application calls class CollectionThread wich is a subclass of InfoThread. CollectionThread recursively goes through a directory and file structure and stores found ID3 tag information in instances of class ID3v11Tag which in turn gets stored in one instance of class AudioDataModel. All classes are shown below.
    This is the mentioned CollectionThread
    * Light Development Playlist Editor
    * Copyright (C) 2004 Ulrich Hilger
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    * as published by the Free Software Foundation; either version 2
    * of the License, or (at your option) any later version.
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    * GNU General Public License for more details.
    * You should have received a copy of the GNU General Public License
    * along with this program; if not, write to the Free Software
    * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    package com.lightdev.app.playlisteditor.data;
    import com.lightdev.lib.util.InfoThread;
    import java.io.File;
    * A class to collect audio data from a given storage location.
    * <p>
    * <code>CollectionThread</code> uses ID3 tag information to gain data.
    * </p>
    * <p>See <a href="http://www.id3.org">http://www.id3.org</a> for details about
    * ID3 tags.</p>
    * @author Ulrich Hilger
    * @author Light Development
    * @author <a href="http://www.lightdev.com">http://www.lightdev.com</a>
    * @author <a href="mailto:[email protected]">[email protected]</a>
    * @author published under the terms and conditions of the
    *      GNU General Public License,
    *      for details see file gpl.txt in the distribution
    *      package of this software as well as any licensing notes
    *      inside this documentation
    * @version 1, October 13, 2004
    public class CollectionThread extends InfoThread {
       * constructor
       * @param model  AudioDataModel  the data model to collect data to
      public CollectionThread(AudioDataModel model) {
        this.model = model;
       * constructor, creates a new empty AudioDataModel
      public CollectionThread() {
        this(new AudioDataModel());
       * set the data model to collect data to
       * @param model AudioDataModel  the model to collect data to
      public void setModel(AudioDataModel model) {
        this.model = model;
       * get the data model associated to this thread
       * @return AudioDataModel  the data model
      public AudioDataModel getModel() {
        return model;
       * set the directory to collect data from
       * @param rootDir File  the directory to collect data from
      public void setRootDirectory(File rootDir) {
        this.rootDir = rootDir;
       * do te actual work of this thread, i.e. iterate through a given directory
       * structure and collect audio data
       * @return boolean  true, if work is left
      protected boolean work() {
        boolean workIsLeft = true;
        maxValue = -1;
        filesProcessed = 0;
        if(getStatus() < STATUS_HALT_PENDING) {
          countElements(rootDir.listFiles());
        if(getStatus() < STATUS_HALT_PENDING) {
          workIsLeft = collect(rootDir.listFiles());
        return workIsLeft;
       * count the elements in a given file array including its subdirectories
       * @param files File[]
      private void countElements(File[] files) {
        int i = 0;
        while (i < files.length && getStatus() < STATUS_HALT_PENDING) {
          File file = files;
    if (file.isDirectory()) {
    countElements(file.listFiles());
    i++;
    maxValue++;
    * recursively read data into model
    * @param files File[] the file array representing the content of a given directory
    private boolean collect(File[] files) {
    int i = 0;
    while(i < files.length && getStatus() < STATUS_HALT_PENDING) {
    File file = files[i];
    if(file.isDirectory()) {
    collect(file.listFiles());
    else if(file.getName().toLowerCase().endsWith("mp3")) {
    try {
    model.addTrack(file);
    catch(Exception e) {
    fireThreadException(e);
    i++;
    filesProcessed++;
    fireThreadProgress(filesProcessed);
    return (i<files.length);
    /** the directory to collect data from */
    private File rootDir;
    /** the data model to collect data to */
    private AudioDataModel model;
    /** the number of files this thread processed so far while it is running */
    private long filesProcessed = 0;
    This is class InfoThread
    * Light Development Java Library
    * Copyright (C) 2003, 2004 Ulrich Hilger
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    * as published by the Free Software Foundation; either version 2
    * of the License, or (at your option) any later version.
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    * GNU General Public License for more details.
    * You should have received a copy of the GNU General Public License
    * along with this program; if not, write to the Free Software
    * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    package com.lightdev.lib.util;
    import java.util.Vector;
    import java.util.Enumeration;
    * Abstract class <code>InfoThread</class> implements a status and listener concept.
    * An <code>InfoThread</code> object actively informs all objects registered as listeners about
    * status changes, progress and possible exceptions. This way the status of a running
    * thread does not require a polling mechanism to be monitored.
    * <p>
    * <code>InfoThread</code> implements the following working scheme
    * </p>
    * @author Ulrich Hilger
    * @author Light Development
    * @author <a href="http://www.lightdev.com">http://www.lightdev.com</a>
    * @author <a href="mailto:[email protected]">[email protected]</a>
    * @author published under the terms and conditions of the
    *      GNU General Public License,
    *      for details see file gpl.txt in the distribution
    *      package of this software
    * @version Version 1, October 13, 2004
    public abstract class InfoThread extends Thread {
       * construct an <code>InfoThread</code> object
       * <p>This class is meant to be used when a <code>Thread</code> object is needed that actively
       * informs other objects about its status</code>. It is a good idea therefore to register
       * one or more listeners with instances of this class before doing anything
       * else.</p>
       * @see addInfoThreadListener
      public InfoThread() {
       * set the amount of time this thread shall idle after it is through with one
       * work cycle and before a next work cycle is started. This influences the time
       * other threads have for their work.
       * @param millis long  the number of milliseconds to idle after one work cycle
      public void setIdleMillis(long millis) {
        idleMillis = millis;
       * Causes this thread to begin execution; the Java Virtual Machine calls the <code>run</code>
       * method of this thread. Calls method <code>prepareThread</code> before calling
       * <code>run</code>.
       * @see run
       * @see prepareThread
      public synchronized void start() {
        setStatus(STATUS_INITIALIZING);
        prepareThread();
        setStatus(STATUS_READY);
        super.start();
       * call method <code>start</code> instead of this method.
       * calling this method directly will lead to an exception
       * @see start
      public void run() {
        //System.out.println("InfoThread.run");
        if (status == STATUS_READY) {
          boolean workIsLeft = true;
          setStatus(STATUS_RUNNING);
          while (status < STATUS_STOP_PENDING && workIsLeft) {
            if (status < STATUS_HALT_PENDING) {
              workIsLeft = work();
              if(!workIsLeft) {
                setStatus(STATUS_WORK_COMPLETE);
            if (status == STATUS_HALT_PENDING) {
              setStatus(STATUS_HALTED);
            else if (status == STATUS_STOP_PENDING) {
              setStatus(STATUS_STOPPED);
            else {
              try {
                sleep(idleMillis);
              catch (InterruptedException e) {
                fireThreadException(e);
        else {
          // error: Thread is not ready to run
        setStatus(STATUS_THREAD_FINISHED);
       * stop this thread. This will terminate the thread irrevokably. Use method
       * <code>haltThread</code> to pause a thread with the possiblity to resume work later.
       * @see haltThread
      public void stopThread() {
        switch (status) {
          case STATUS_RUNNING:
            setStatus(STATUS_STOP_PENDING);
            break;
          case STATUS_HALT_PENDING:
            // exception: the thread already is about to halt
            break;
          case STATUS_STOP_PENDING:
            // exception: the thread already is about to stop
            break;
          default:
            // exception: a thread can not be stopped, when it is not running
            break;
       * halt this thread, i.e. pause working allowing to resume later
       * @see resumeThread
      public void haltThread() {
        switch (status) {
          case STATUS_RUNNING:
            setStatus(STATUS_STOP_PENDING);
            break;
          case STATUS_HALT_PENDING:
            // exception: the thread already is about to halt
            break;
          case STATUS_STOP_PENDING:
            // exception: the thread already is about to stop
            break;
          default:
            // exception: a thread can not be halted, when it is not running
            break;
       * resume this thread, i.e. resume previously halted work
       * @see haltThread
      public void resumeThread() {
        if(status == STATUS_HALTED || status == STATUS_HALT_PENDING) {
          setStatus(STATUS_RUNNING);
        else {
          // exception: only halted threads or threads that are about to halt can be resumed
       * this is the method to prepare a thread to run. It is not implemented in this abstract
       * class. Subclasses of <code>InfoThread</code> can implement this method to do anything
       * that might be required to put their thread into STATUS_READY. This method is called
       * automatically by method <code>start</code>.  When implementing this method, it should
       * call method <code>fireThreadException</code> accordingly.
       * @see start
       * @see fireThreadException
      protected void prepareThread() {
        // does nothing in this abstract class but might be needed in subclasses
       * this is the main activity method of this object. It is not implemented in this abstract
       * class. Subclasses of <code>InfoThread</code> must implement this method to do something
       * meaningful. When implementing this method, it should call methods
       * <code>fireThreadProgress</code> and <code>fireThreadException</code> accordingly.
       * @return boolean true, if work is left, false if not
       * @see fireThreadProgress
       * @see fireTreadException
      protected abstract boolean work();
       * add an <code>InfoTreadListener</code> to this instance of <code>InfoThread</code>
       * @param l InfoThreadListener  the listener to add
       * @see removeInfoThreadListener
      public void addInfoThreadListener(InfoThreadListener l) {
        listeners.add(l);
       * remove an <code>InfoTreadListener</code> from this instance of <code>InfoThread</code>
       * @param l InfoThreadListener  the listener to remove
      public void removeInfoThreadListener(InfoThreadListener l) {
        listeners.remove(l);
       * notify all <code>InfoThreadListener</code>s of a status change
       * @param fromStatus int  the status tis thread had before the change
       * @param toStatus int  the status this thread has now
      protected void fireThreadStatusChanged(int fromStatus, int toStatus) {
        Enumeration e = listeners.elements();
        while(e.hasMoreElements()) {
          Object l = e.nextElement();
          if(l instanceof InfoThreadListener) {
            ((InfoThreadListener) l).threadStatusChanged(this, fromStatus, toStatus);
       * notify all <code>InfoThreadListener</code>s of an exception in this thread
       * @param ex Exception  the exception that occurred
      protected void fireThreadException(Exception ex) {
        Enumeration e = listeners.elements();
        while(e.hasMoreElements()) {
          Object l = e.nextElement();
          if(l instanceof InfoThreadListener) {
            ((InfoThreadListener) l).threadException(this, ex);
       * notify all <code>InfoThreadListener</code>s of the progress of this thread
       * @param progressValue long  a value indicating the current thread progress
      protected void fireThreadProgress(long progressValue) {
        Enumeration e = listeners.elements();
        while(e.hasMoreElements()) {
          Object l = e.nextElement();
          if(l instanceof InfoThreadListener) {
            ((InfoThreadListener) l).threadProgress(this, progressValue, maxValue);
       * set the status of this thread and notify all listeners
       * @param newStatus int  the status this thread is to be changed to
      private void setStatus(int newStatus) {
        //System.out.println("InfoThread.setStatus oldStatus=" + status + ", newStatus=" + newStatus);
        int fromStatus = status;
        status = newStatus;
        fireThreadStatusChanged(fromStatus, newStatus);
       * get the current status of this thread
       * @return int  the status
      public int getStatus() {
        return status;
       * cleanup before actual destruction.
      public void destroy() {
        //System.out.println("InfoThread.destroy");
        cleanup();
        super.destroy();
       * cleanup all references this thread maintains
      private void cleanup() {
        //System.out.println("InfoThread.cleanup");
        listeners.removeAllElements();
        listeners = null;
      /* ----------------------- class fields start ------------------------ */
      /** storage for the objects this thread notifies about status changes and progress */
      private Vector listeners = new Vector();
      /** indicator for the status of this thread */
      private int status = STATUS_NONE;
      /** maximum value for threadProgress */
      protected long maxValue = -1;
      /** the idle time inside one work cycle in milliseconds */
      protected long idleMillis = 1;
      /* ----------------------- class fields end -------------------------- */
      /* ----------------------- constants start --------------------------- */
      /** constant value indicating that no status has been set so far */
      public static final int STATUS_NONE = 0;
      /** constant value indicating that the thread is currently initializing */
      public static final int STATUS_INITIALIZING = 1;
      /** constant value indicating that the thread is ready to run */
      public static final int STATUS_READY = 2;
      /** constant value indicating that the thread is running */
      public static final int STATUS_RUNNING = 3;
      /** constant value indicating that the thread is about to halt */
      public static final int STATUS_HALT_PENDING = 4;
      /** constant value indicating that the thread is halted */
      public static final int STATUS_HALTED = 5;
      /** constant value indicating that the work of this thread is complete */
      public static final int STATUS_WORK_COMPLETE = 6;
      /** constant value indicating that the thread is about to stop */
      public static final int STATUS_STOP_PENDING = 7;
      /** constant value indicating that the thread is stopped */
      public static final int STATUS_STOPPED = 8;
      /** constant value indicating that the thread is finished */
      public static final int STATUS_THREAD_FINISHED = 9;
      /* ----------------------- constants end --------------------------- */
    }this is the InfoThreadListener interface
    * Light Development Java Library
    * Copyright (C) 2003, 2004 Ulrich Hilger
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    * as published by the Free Software Foundation; either version 2
    * of the License, or (at your option) any later version.
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    * GNU General Public License for more details.
    * You should have received a copy of the GNU General Public License
    * along with this program; if not, write to the Free Software
    * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    package com.lightdev.lib.util;
    * An interface classes interested to receive events from objects
    * of class <code>InfoThread</code> need to implement.
    * @author Ulrich Hilger
    * @author Light Development
    * @author <a href="http://www.lightdev.com">http://www.lightdev.com</a>
    * @author <a href="mailto:[email protected]">[email protected]</a>
    * @author published under the terms and conditions of the
    *      GNU General Public License,
    *      for details see file gpl.txt in the distribution
    *      package of this software
    * @version Version 1, October 13, 2004
    public interface InfoThreadListener {
       * method to receive a status change notification from a thread
       * @param thread InfoThread  the thread which status changed
       * @param fromStatus int  the status which the thread had before the change
       * @param toStatus int  the status which the thread has now
      public void threadStatusChanged(InfoThread thread, int fromStatus, int toStatus);
       * method to receive a notification about the progress of a thread
       * @param thread InfoThread  the thread which notified about its progress
       * @param progressValue long  the value (e.g. 10 if 100 percent completed, 20 of 1 million files processed, etc.)
      public void threadProgress(InfoThread thread, long progressValue, long maxValue);
       * method to receive a notifiaction about the fact that an exception occurred in a thread
       * @param thread InfoThread  the thread for which an exception occurred
       * @param e Exception  the exception that occurred
      public void threadException(InfoThread thread, Exception e);
    }This is class AudioFileDescriptor
    * Light Development Java Library
    * Copyright (C) 2004 Ulrich Hilger
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    * as published by the Free Software Foundation; either version 2
    * of the License, or (at your option) any later version.
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    * GNU General Public License for more details.
    * You should have received a copy of the GNU General Public License
    * along with this program; if not, write to the Free Software
    * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    package com.lightdev.lib.audio;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.RandomAccessFile;
    import java.io.Serializable;
    import java.text.DecimalFormat;
    * This class models characteristics of an audio file such as the absolute path
    * of the file, its tag contents (if any) and the play duration, etc.
    * <p>See <a href="http://www.id3.org">http://www.id3.org</a> for details about
    * ID3 tags.</p>
    * @author Ulrich Hilger
    * @author Light Development
    * @author <a href="http://www.lightdev.com">http://www.lightdev.com</a>
    * @author <a href="mailto:[email protected]">[email protected]</a>
    * @author published under the terms and conditions of the
    *      GNU General Public License,
    *      for details see file gpl.txt in the distribution
    *      package of this software
    * @version Version 1, October 13, 2004
    public class AudioFileDescriptor implements Serializable, Comparable {
      public AudioFileDescriptor(String absolutePath) throws FileNotFoundException, IOException {
        load(absolutePath);
      public boolean equals(Object o) {
        if(o != null && o instanceof AudioFileDescriptor) {
          return ((AudioFileDescriptor) o).getAbsolutePath().equalsIgnoreCase(this.getAbsolutePath());
        else {
          return false;
      public void load(String absolutePath) throws FileNotFoundException, IOException {
        this.absolutePath = absolutePath;
        RandomAccessFile rf = new RandomAccessFile(absolutePath, "r");
        if(id3v11Tag == null) {
          id3v11Tag = new ID3v11Tag(rf, false);
        else {
          id3v11Tag.readTag(rf, rf.length() - 128);
        rf.close();
      public String getAbsolutePath() {
        return absolutePath;
      public ID3v11Tag getID3v11Tag() {
        return id3v11Tag;
      public void setID3v11Tag(ID3v11Tag tag) {
        this.id3v11Tag = tag;
      public String toString() {
        DecimalFormat df = new DecimalFormat("00");
        return id3v11Tag.getArtist() + ", " + id3v11Tag.getAlbum() + " - " +
            df.format(id3v11Tag.getTrackNumber()) + " " + id3v11Tag.getTitle();
       * Compares this object with the specified object for order.
       * @param o the Object to be compared.
       * @return a negative integer, zero, or a positive integer as this object is less than, equal to,
       *   or greater than the specified object.
       * @todo Implement this java.lang.Comparable method
      public int compareTo(Object o) {
        return toString().compareTo(o.toString());
      private String absolutePath;
      private ID3v11Tag id3v11Tag;
      private transient long duration = -1;
      private transient int type = TYPE_UNKNOWN;
      public static final transient int TYPE_UNKNOWN = 0;
      public static final transient int TYPE_MP3 = 1;
    }This is class ID3V11Tag into which the data is actually stored
    * Light Development Java Library
    * Copyright (C) 2004 Ulrich Hilger
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    * as published by the Free Software Foundation; either version 2
    * of the License, or (at your option) any later version.
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    * GNU General Public License for more details.
    * You should have received a copy of the GNU General Public License
    * along with this program; if not, write to the Free Software
    * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    package com.lightdev.lib.audio;
    import java.io.File;
    import java.io.RandomAccessFile;
    import java.io.IOException;
    import java.io.Serializable;
    import java.text.DecimalFormat;
    * This class is a very simple implementation of an ID3v11Tag. It models an ID3 tag
    * pretty much the same way as it is physically stored inside an audio file.
    * <p>See <a href="http://www.id3.org">http://www.id3.org</a> for details about
    * ID3 tags.</p>
    * @author Ulrich Hilger
    * @author Light Development
    * @author <a href="http://www.lightdev.com">http://www.lightdev.com</a>
    * @author <a href="mailto:[email protected]">[email protected]</a>
    * @author published under the terms and conditions of the
    *      GNU General Public License,
    *      for details see file gpl.txt in the distribution
    *      package of this software
    * @version Version 1, October 13, 2004
    public class ID3v11Tag implements Serializable, Comparable {
       * construct an ID3v11Tag and read tag content from a given file
       * <p>This constructor can be used for cases where a RandomAccessFile has already
       * been opened and will be closed elsewhere</p>
       * @param rf RandomAccessFile  the open file to read from
       * @param isAtTagStartPos boolean  true, if the file pointer is at the
       * position where the ID3 tag starts; when false, the pointer is positioned accordingly here
       * @throws IOException
      public ID3v11Tag(RandomAccessFile rf, boolean isAtTagStartPos) throws IOException {
        if(isAtTagStartPos) {
          readTag(rf);
        else {
          readTag(rf, rf.length() - 128);
       * construct an ID3v11Tag and read tag content from a file at a given location
       * <p>This constructor opens and closes the audio file for reading</p>
       * @param absolutePath String  the absolute path to the audio file to open
       * @throws IOException
      public ID3v11Tag(String absolutePath) throws IOException {
        RandomAccessFile rf = new RandomAccessFile(absolutePath, "r");
        readTag(rf, rf.length() - 128);
        rf.close();
       * construct an ID3v11Tag and read tag content from a given file
       * <p>This constructor opens and closes the audio file for reading</p>
       * @param audioFile File  the audio file to read from
       * @throws IOException
      public ID3v11Tag(File audioFile) throws IOException {
        this(audioFile.getAbsolutePath());
       * get a string representation of this object
       * @return String
      public String toString() {
        DecimalFormat df = new DecimalFormat("00");
        return getArtist() + ", " + getAlbum() + " - " + df.format(getTrackNumber()) + " " + getTitle();
       * position to file pointer and read the tag
       * @param rf RandomAccessFile  the file to read from
       * @param jumpPos long  the position to jump to (the tag start position)
       * @throws IOException
      public void readTag(RandomAccessFile rf, long jumpPos) throws IOException {
        rf.seek(jumpPos);
        readTag(rf);
       * read the tag from a given file, assuming the file pointer to be at the tag start position
       * @param rf RandomAccessFile  the file to read from
       * @throws IOException
      public void readTag(RandomAccessFile rf) throws IOException {
        rf.read(tagBuf);
        if(tag.equalsIgnoreCase(new String(tagBuf))) {
          rf.read(title);
          rf.read(artist);
          rf.read(album);
          rf.read(year);
          rf.read(comment);
          rf.read(trackNo);
          rf.read(genre);
      public String getTitle() {
        return new String(title).trim();
      public String getArtist() {
        return new String(artist).trim();
      public String getAlbum() {
        return new String(album).trim();
      public String getYear() {
        return new String(year).trim();
      public String getComment() {
        return new String(comment).trim();
      public int getGenreId() {
        try {
          int id = new Byte(genre[0]).intValue();
          if(id < GENRE_ID_MIN || id > GENRE_ID_MAX) {
            return GENRE_ID_OTHER;
          else {
            return id;
        catch(Exception ex) {
          return GENRE_ID_OTHER;
      public String getGenreName() {
        return genreNames[getGenreId()];
      public int getTrackNumber() {
        try {
          return (int) trackNo[0];
        catch(Exception e) {
          return 0;
       * Compares this object with the specified object for order.
       * @param o the Object to be compared.
       * @return a negative integer, zero, or a positive integer as this object is less than, equal to,
       *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    Hi Franck,
    thank you, mate. I did what you suggested (changed class attached) but that did not change the mentioned behaviour.
    The first run is approximately 75 seconds with Java option -Xms40m and approx. double without, the second run and all subsequent runs are only 2-3 seconds each (!!!) even when terminating and re-starting the application between thread runs.
    I'm pretty clueless about that, any more help on this anyone?
    Thanks a lot and best regards
    Ulrich
    PS: BTW, I forgot to post the class that is filled with data by class CollectionThread, so here it is
    * Light Development Playlist Editor
    * Copyright (C) 2004 Ulrich Hilger
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    * as published by the Free Software Foundation; either version 2
    * of the License, or (at your option) any later version.
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    * GNU General Public License for more details.
    * You should have received a copy of the GNU General Public License
    * along with this program; if not, write to the Free Software
    * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    package com.lightdev.app.playlisteditor.data;
    import java.io.File;
    import com.lightdev.lib.audio.ID3v11Tag;
    import javax.sound.sampled.UnsupportedAudioFileException;
    import java.io.IOException;
    import java.io.Serializable;
    import com.lightdev.lib.audio.AudioFileDescriptor;
    import com.lightdev.lib.ui.SortListModel;
    import java.util.Iterator;
    * Storage model for audio data.
    * <p>
    * <code>AudioDataModel</code> can be used to store ID3 tag data collected from
    * a directory with audio files to perform queries and reports on the found data.
    * </p>
    * <p>See <a href="http://www.id3.org">http://www.id3.org</a> for details about
    * ID3 tags.</p>
    * @author Ulrich Hilger
    * @author Light Development
    * @author <a href="http://www.lightdev.com">http://www.lightdev.com</a>
    * @author <a href="mailto:[email protected]">[email protected]</a>
    * @author published under the terms and conditions of the
    *      GNU General Public License,
    *      for details see file gpl.txt in the distribution
    *      package of this software as well as any licensing notes
    *      inside this documentation
    * @version 1, October 15, 2004
    public class AudioDataModel extends SortListModel implements Serializable {
       * constructor
      public AudioDataModel() {
       * add an audio track from a given audio file
       * <p>This will attempt to read ID3 tag data from the file.</p>
       * @param audioFile File  the file to add audio data for
       * @throws IOException
      public void addTrack(File audioFile) throws IOException {
        AudioFileDescriptor afd = new AudioFileDescriptor(audioFile.getAbsolutePath());
        if (!data.contains(afd)) {
          data.add(afd);
       * get all tracks for agiven combination of genre name, artist name and album name. Any of
       * the parameters may be null or AudioDataModel.FILTER_ALL
       * <p>Ugly code, I know, but it simply hard codes all combinations of the the mentioned
       * parameters. Any more elegant implementations welcome.</p>
       * @param genreName String  a genre name to get tracks for
       * @param artistName String  an artist name to get tracks for
       * @param albumName String  an album name to get tracks for
       * @return SortListModel   the found tracks in a list model
      public SortListModel getTracks(String genreName, String artistName, String albumName) {
        SortListModel foundTracks = new SortListModel();
        Iterator e = data.iterator();
        while(e.hasNext()) {
          AudioFileDescriptor afd = (AudioFileDescriptor) e.next();
          ID3v11Tag tag = afd.getID3v11Tag();
          if(genreName == null || genreName.equalsIgnoreCase(FILTER_ALL)) {
            if(artistName == null || artistName.equalsIgnoreCase(FILTER_ALL)) {
              if (tag.getAlbum().equalsIgnoreCase(albumName))
                foundTracks.add(afd);
            else {
              if(albumName == null || albumName.equalsIgnoreCase(FILTER_ALL)) {
                if (tag.getArtist().equalsIgnoreCase(artistName))
                  foundTracks.add(afd);
              else {
                if (tag.getArtist().equalsIgnoreCase(artistName) &&
                    tag.getAlbum().equalsIgnoreCase(albumName))
                  foundTracks.add(afd);
          else {
            if(artistName == null || artistName.equalsIgnoreCase(FILTER_ALL)) {
              if(albumName == null || albumName.equalsIgnoreCase(FILTER_ALL)) {
                if (tag.getGenreName().equalsIgnoreCase(genreName))
                  foundTracks.add(afd);
              else {
                if (tag.getGenreName().equalsIgnoreCase(genreName) &&
                    tag.getAlbum().equalsIgnoreCase(albumName))
                  foundTracks.add(afd);
            else {
              if(albumName == null || albumName.equalsIgnoreCase(FILTER_ALL)) {
                if (tag.getGenreName().equalsIgnoreCase(genreName) &&
                    tag.getArtist().equalsIgnoreCase(artistName))
                  foundTracks.add(afd);
              else {
                if (tag.getGenreName().equalsIgnoreCase(genreName) &&
                    tag.getArtist().equalsIgnoreCase(artistName) &&
                    tag.getAlbum().equalsIgnoreCase(albumName))
                  foundTracks.add(afd);
        foundTracks.sort();
        return foundTracks;
       * list all artists in this model
       * @return SortListModel
      public SortListModel listArtists() {
        SortListModel artists = new SortListModel();
        artists.add(FILTER_ALL);
        Iterator e = data.iterator();
        while (e.hasNext()) {
          ID3v11Tag tag = ((AudioFileDescriptor) e.next()).getID3v11Tag();
          String artistName = tag.getArtist();
          if (artists.indexOf(artistName) < 0) {
            artists.add(artistName);
        artists.sort();
        return artists;
       * list all artists in this model having titles belonging to a given genre
       * @param genreName String  name of the genre artists are searched for
       * @return SortListModel
      public SortListModel listArtists(String genreName) {
        SortListModel artists = new SortListModel();
        artists.add(FILTER_ALL);
        Iterator e = data.iterator();
        while (e.hasNext()) {
          ID3v11Tag tag = ((AudioFileDescriptor) e.next()).getID3v11Tag();
          String artistName = tag.getArtist();
          String genre = tag.getGenreName();
          if (artists.indexOf(artistName) < 0 && genre.equalsIgnoreCase(genreName)) {
            artists.add(artistName);
        artists.sort();
        return artists;
       * list all genres in this model
       * @return SortListModel
      public SortListModel listGenres() {
        SortListModel genres = new SortListModel();
        genres.add(FILTER_ALL);
        Iterator e = data.iterator();
        while (e.hasNext()) {
          ID3v11Tag tag = ((AudioFileDescriptor) e.next()).getID3v11Tag();
          String genreName = tag.getGenreName();
          if (genres.indexOf(genreName) < 0) {
            genres.add(genreName);
        genres.sort();
        return genres;
       * list all albums in this model
       * @return SortListModel
      public SortListModel listAlbums() {
        SortListModel albums = new SortListModel();
        albums.add(FILTER_ALL);
        Iterator e = data.iterator();
        while (e.hasNext()) {
          ID3v11Tag tag = ((AudioFileDescriptor) e.next()).getID3v11Tag();
          String albumName = tag.getAlbum();
          if (albums.indexOf(albumName) < 0) {
            albums.add(albumName);
        albums.sort();
        return albums;
       * list all albums in this model having titles belonging to a given genre
       * @param genreName String  name of the genre albums are searched for
       * @return SortListModel
      public SortListModel listAlbums(String genreName) {
        SortListModel albums = new SortListModel();
        albums.add(FILTER_ALL);
        Iterator e = data.iterator();
        while (e.hasNext()) {
          ID3v11Tag tag = ((AudioFileDescriptor) e.next()).getID3v11Tag();
          String albumName = tag.getAlbum();
          String genre = tag.getGenreName();
          if (albums.indexOf(albumName) < 0 && genre.equalsIgnoreCase(genreName)) {
            albums.add(albumName);
        albums.sort();
        return albums;
       * list all albums in this model having titles belonging to a given genre and artist
       * @param genreName String  name of the genre albums are searched for
       * @param artistName String  name of the artist albums are searched for
       * @return SortListModel
      public SortListModel listAlbums(String genreName, String artistName) {
        SortListModel albums = new SortListModel();
        albums.add(FILTER_ALL);
        Iterator e = data.iterator();
        while (e.hasNext()) {
          ID3v11Tag tag = ((AudioFileDescriptor) e.next()).getID3v11Tag();
          String albumName = tag.getAlbum();
          String genre = tag.getGenreName();
          String artist = tag.getArtist();
          if(genreName == null || genreName.equalsIgnoreCase(FILTER_ALL)) {
            if (albums.indexOf(albumName) < 0 &&
                artist.equalsIgnoreCase(artistName))
              albums.add(albumName);
          else {
            if (albums.indexOf(albumName) < 0 &&
                genre.equalsIgnoreCase(genreName) &&
                artist.equalsIgnoreCase(artistName))
              albums.add(albumName);
        albums.sort();
        return albums;
       * get the number of audio tracks stored in this data model
       * @return int  the number of tracks
      public int getTrackCount() {
        return data.size();
      /** constant to select all items of a given part */
      public static final String FILTER_ALL = "    all";
    }...and here the changed CollectionThread now caching found File objects in a vector
    * Light Development Playlist Editor
    * Copyright (C) 2004 Ulrich Hilger
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    * as published by the Free Software Foundation; either version 2
    * of the License, or (at your option) any later version.
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    * GNU General Public License for more details.
    * You should have received a copy of the GNU General Public License
    * along with this program; if not, write to the Free Software
    * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    package com.lightdev.app.playlisteditor.data;
    import com.lightdev.lib.util.InfoThread;
    import java.io.File;
    import java.util.Vector;
    import java.util.Enumeration;
    * A class to collect audio data from a given storage location.
    * <p>
    * <code>CollectionThread</code> uses ID3 tag information to gain data.
    * </p>
    * <p>See <a href="http://www.id3.org">http://www.id3.org</a> for details about
    * ID3 tags.</p>
    * @author Ulrich Hilger
    * @author Light Development
    * @author <a href="http://www.lightdev.com">http://www.lightdev.com</a>
    * @author <a href="mailto:[email protected]">[email protected]</a>
    * @author published under the terms and conditions of the
    *      GNU General Public License,
    *      for details see file gpl.txt in the distribution
    *      package of this software as well as any licensing notes
    *      inside this documentation
    * @version 1, October 13, 2004
    public class CollectionThread extends InfoThread {
       * constructor
       * @param model  AudioDataModel  the data model to collect data to
      public CollectionThread(AudioDataModel model) {
        this.model = model;
       * constructor, creates a new empty AudioDataModel
      public CollectionThread() {
        this(new AudioDataModel());
       * set the data model to collect data to
       * @param model AudioDataModel  the model to collect data to
      public void setModel(AudioDataModel model) {
        this.model = model;
       * get the data model associated to this thread
       * @return AudioDataModel  the data model
      public AudioDataModel getModel() {
        return model;
       * set the directory to collect data from
       * @param rootDir File  the directory to collect data from
      public void setRootDirectory(File rootDir) {
        this.rootDir = rootDir;
       * this is the method to prepare a thread to run.
      protected void prepareThread() {
        maxValue = -1;
        filesProcessed = 0;
        innerCount = 0;
        fileList = new Vector();
       * do the actual work of this thread, i.e. iterate through a given directory
       * structure and collect audio data
       * @return boolean  true, if work is left
      protected boolean work() {
        boolean workIsLeft = true;
        if(getStatus() < STATUS_HALT_PENDING) {
          countElements(rootDir.listFiles());
        if(getStatus() < STATUS_HALT_PENDING) {
          workIsLeft = collect(); //collect(rootDir.listFiles());
          fileList.clear();
          fileList = null;
        return workIsLeft;
       * count the elements in a given file array including its subdirectories
       * @param files File[]
      private void countElements(File[] files) {
        int i = 0;
        while (i < files.length && getStatus() < STATUS_HALT_PENDING) {
          File file = files;
    if (file.isDirectory()) {
    countElements(file.listFiles());
    else {
    fileList.add(file);
    i++;
    maxValue++;
    * read data into model
    * @param files File[] the file array representing the content of a given directory
    * @return boolean true, if work is left
    private boolean collect(/*File[] files*/) {
    Enumeration files = fileList.elements();
    while(files.hasMoreElements() && getStatus() < STATUS_HALT_PENDING) {
    File file = (File) files.nextElement();
    try {
    model.addTrack(file);
    catch(Exception e) {
    fireThreadException(e);
    filesProcessed++;
    if(++innerCount > 99) {
    innerCount = 0;
    fireThreadProgress(filesProcessed);
    return false;
    int i = 0;
    while(i < files.length && getStatus() < STATUS_HALT_PENDING) {
    File file = files[i];
    if(file.isDirectory()) {
    collect(file.listFiles());
    else if(file.getName().toLowerCase().endsWith("mp3")) {
    try {
    model.addTrack(file);
    catch(Exception e) {
    fireThreadException(e);
    i++;
    filesProcessed++;
    fireThreadProgress(filesProcessed);
    return (i<files.length);
    /** the directory to collect data from */
    private File rootDir;
    /** the data model to collect data to */
    private AudioDataModel model;
    /** the number of files this thread processed so far while it is running */
    private long filesProcessed = 0;
    /** a list to temporary store found files */
    private Vector fileList;
    /** counter to determine when to fire progress messages */
    private int innerCount = 0;

  • I need Fusion help creating a demo of BRM JCA Resource Adapter

    I need Fusion help creating a demo of BRM JCA Resource Adapter.
    I know BRM well but am clueless with Fusion.
    I am trying to figure out what Fusion products to download and install and how I manipulate the Fusion side to manipulate BRM.
    My BRM docs say:
    Installing the BRM JCA Resource Adapter ->
    Software requirements
    (yada yada install a bunch of BRM stuff I know how to do)
    The adapter must be deployed on a J2EE 1.4-compliant application server that has implemented the JCA 1.5 specification. The adapter runs only in a managed environment. (Does this imply some particular Fusion package?)
    (more yada yada about installing more BRM packages I know how to do)
    Deploying and configuring the BRM JCA Resource Adapter ->
    Overview of the BRM JCA Resource Adapter configuration procedure
    The procedure for setting up the BRM JCA Resource Adapter includes the following tasks:
    Installing the adapter on your BRM system, if you have not already done so. See Installing the BRM JCA Resource Adapter.
    Generating the schema files for the adapter. See Generating the schema files for your system. (links to some BRM commands np)
    Specifying how to construct XML tags. See Specifying the XML tags for extended fields. (links to an oob file included with directions on how to address BRM customizations np)
    Generating the WSDL files for the adapter. See Generating the WSDL files for your system. (links to an oob file with directions to configure. I could use some help if/when I get this far)
    The last two look pretty important but I haven't a clue. I pasted the text from the docs below.
    Deploying the adapter on your application server. See Deploying the BRM JCA Resource Adapter on an Oracle application server.
    Connecting the adapter to the BRM software. See Connecting the adapter to BRM in Oracle AS.
    Deploying the BRM JCA Resource Adapter on an Oracle application server
    The adapter is dependent on Java Archive (JAR) files to deploy properly. The following table lists the JAR files that the adapter requires from each application in your system.
    Application
    JAR files
    J2EE application server
    classes12.jar, connector15.jar, and jta.jar
    Oracle BPEL process
    bpm-infra.jar, orabpel-thirdparty.jar, orabpel.jar, and xmlparserv2.jar
    BRM J2EE Resource Adapter
    pcm.jar and pcmext.jar
    Apache
    xercesImpl.jar
    If you are deploying the adapter in a standalone Oracle Containers for Java EE (OC4J) instance, make sure these JAR files are available to the class loader that is loading the adapter.
    If you are deploying the adapter by using Oracle SOA Suite, these JAR files are available as part of the oracle.bpel.common code source. You import these libraries as follows:
    Open the Oracle_home/j2ee/Instance/config/applications.xml configuration file for the J2EE instance.
    Add the oracle.bpel.common entry (shown in bold below) to the imported-shared-libraries section of the file:
    <imported-shared-libraries>
    <import-shared-library name="adf.oracle.domain"/>
    <import-shared-library name="oracle.bpel.common"/>
    </imported-shared-libraries>
    Save and close the file.
    Restart the application server or the J2EE instance.
    After you make the JAR files available, deploy the adapter on the Oracle application server by using either the Oracle Application Server (Oracle AS) Application Server Control (ASC) or the Oracle admintool.jar file. Copy the adapter archive file (BRM_home/apps/brm_integrations/jca_adapter/OracleBRMJCA15Adapter.rar) from the installation directory to a location that is accessible to the adapter deployment tool. You can then open and deploy the archive file on your application server.
    After successful deployment, return the applications.xml file to its original settings and add the oracle.bpel.common codesource to the BRM Adapter oc4j-ra.xml file:
    Open the Oracle_home/j2ee/Instance/config/applications.xml configuration file for the J2EE instance.
    Remove the following oracle.bpel.common entry (shown in bold below):
    <imported-shared-libraries>
    <import-shared-library name="adf.oracle.domain"/>
    <import-shared-library name="oracle.bpel.common"/>
    </imported-shared-libraries>
    Save and close the file.
    Open the JCA Resource Adapter oc4j-ra.xml file from the Oracle_home/j2ee/Instance/application-deployments/default/BRMAdapterDeploymentName directory.
    Add the oracle.bpel.common entry (shown in bold below) to the oc4j-connector-factories section of the file:
    <oc4j-connector-factories...>
    <imported-shared-libraries>
    <import-shared-library name="oracle.bpel.common"/>
    </imported-shared-libraries>
    <oc4j-connector-factories>
    Save and close the file.
    Restart the application server or the J2EE instance.
    For more information about deploying the adapter, see your application server’s documentation.
    Connecting the adapter to BRM in Oracle AS
    You connect the adapter to the BRM software by creating connection pools and connection factories. As part of the adapter deployment, the application server creates oc4j-ra.xml from the packaged ra.xml. The ra.xml file is located in the Oracle_home/j2ee/Instance/connectors/AdapterDeploymentName/AdapterDeploymentName/META-INF directory. For example, Oracle_home/j2ee/home/connectors/BRMAdapter/BRMAdapter/META-INF/ra.xml.
    Use the resource adapter home page from the Oracle AS ASC page to create connection pools and connection factories.
    Create your connection pool by following the performance and tuning guidelines in Configuring Connection Pooling in OC4J in Oracle Containers for J2EE Resource Adapter Administrator's Guide. See download.oracle.com/docs/cd/B31017_01/web.1013/b28956/conncont.htm.
    Make sure you set the pool’s Maximum Connections parameter (maxConnections XML entity) equal to or greater than the Oracle BPEL process manager’s dspMaxThreads parameter. For more information, see Oracle BPEL Process Manager Performance Tuning in Oracle Application Server Performance Guide for 10g Release 3 (10.1.3.1.0) at download.oracle.com/docs/cd/B31017_01/core.1013/b28942/tuning_bpel.htm.
    Note To set up JCA Resource Adapter transaction management in BPEL, you must create a private connection pool and set its Inactive Connection Timeout property (inactivity-timeout XML entity) to 0. See About JCA Resource Adapter transaction management in BPEL for more information.
    Create as many connection factories as your system needs. For each connection factory, specify the following:
    The JNDI location for the connection factory.
    The connection pool to use.
    How to connect to BRM by using these entries:
    Entry
    Description
    ConnectionString
    Specify the protocol, host name, and port number for connecting to the BRM software. For example: ip Server1 12006.
    DBNumber
    Specify the database number for the BRM database. For example, enter 1 or 0.0.0.1 for database 0.0.0.1.
    InputValidation
    Specifies whether to validate the input XMLRecord:
    True — The adapter validates the input XMLRecord against the opcode schema.
    False — The adapter does not validate the input XMLRecord.
    The default is False.
    This overrides any other validation parameter specified in the WSDL file.
    OutputValidation
    Specifies whether to validate the output XMLRecord:
    True — The adapter validates the output XMLRecord against the opcode schema.
    False — The adapter does not validate the output XMLRecord.
    The default is False.
    This overrides any other validation parameter specified in the WSDL file.
    LoginType
    Specifies the authentication method:
    1 — The adapter logs in to BRM by using the specified login name and password.
    0 — The adapter logs in to BRM by using the specified service type and POID ID.
    The default is 1.
    UserName
    Specifies the login name the adapter uses for logging in to the BRM software.
    Note This entry is required only if LoginType is set to 1.
    Password
    Specify the password the adapter uses for logging in to the BRM software.
    Note This entry is required only if LoginType is set to 1.
    PoidID
    Specifies the POID ID. This entry should be set to 1.
    ServiceType
    Specifies the service the adapter uses to log in to the BRM software.
    The default is /service/pcm_client.
    You have successfully configured the adapter to connect to BRM.

    I need Fusion help creating a demo of BRM JCA Resource Adapter.
    I know BRM well but am clueless with Fusion.
    I am trying to figure out what Fusion products to download and install and how I manipulate the Fusion side to manipulate BRM.
    My BRM docs say:
    Installing the BRM JCA Resource Adapter ->
    Software requirements
    (yada yada install a bunch of BRM stuff I know how to do)
    The adapter must be deployed on a J2EE 1.4-compliant application server that has implemented the JCA 1.5 specification. The adapter runs only in a managed environment. (Does this imply some particular Fusion package?)
    (more yada yada about installing more BRM packages I know how to do)
    Deploying and configuring the BRM JCA Resource Adapter ->
    Overview of the BRM JCA Resource Adapter configuration procedure
    The procedure for setting up the BRM JCA Resource Adapter includes the following tasks:
    Installing the adapter on your BRM system, if you have not already done so. See Installing the BRM JCA Resource Adapter.
    Generating the schema files for the adapter. See Generating the schema files for your system. (links to some BRM commands np)
    Specifying how to construct XML tags. See Specifying the XML tags for extended fields. (links to an oob file included with directions on how to address BRM customizations np)
    Generating the WSDL files for the adapter. See Generating the WSDL files for your system. (links to an oob file with directions to configure. I could use some help if/when I get this far)
    The last two look pretty important but I haven't a clue. I pasted the text from the docs below.
    Deploying the adapter on your application server. See Deploying the BRM JCA Resource Adapter on an Oracle application server.
    Connecting the adapter to the BRM software. See Connecting the adapter to BRM in Oracle AS.
    Deploying the BRM JCA Resource Adapter on an Oracle application server
    The adapter is dependent on Java Archive (JAR) files to deploy properly. The following table lists the JAR files that the adapter requires from each application in your system.
    Application
    JAR files
    J2EE application server
    classes12.jar, connector15.jar, and jta.jar
    Oracle BPEL process
    bpm-infra.jar, orabpel-thirdparty.jar, orabpel.jar, and xmlparserv2.jar
    BRM J2EE Resource Adapter
    pcm.jar and pcmext.jar
    Apache
    xercesImpl.jar
    If you are deploying the adapter in a standalone Oracle Containers for Java EE (OC4J) instance, make sure these JAR files are available to the class loader that is loading the adapter.
    If you are deploying the adapter by using Oracle SOA Suite, these JAR files are available as part of the oracle.bpel.common code source. You import these libraries as follows:
    Open the Oracle_home/j2ee/Instance/config/applications.xml configuration file for the J2EE instance.
    Add the oracle.bpel.common entry (shown in bold below) to the imported-shared-libraries section of the file:
    <imported-shared-libraries>
    <import-shared-library name="adf.oracle.domain"/>
    <import-shared-library name="oracle.bpel.common"/>
    </imported-shared-libraries>
    Save and close the file.
    Restart the application server or the J2EE instance.
    After you make the JAR files available, deploy the adapter on the Oracle application server by using either the Oracle Application Server (Oracle AS) Application Server Control (ASC) or the Oracle admintool.jar file. Copy the adapter archive file (BRM_home/apps/brm_integrations/jca_adapter/OracleBRMJCA15Adapter.rar) from the installation directory to a location that is accessible to the adapter deployment tool. You can then open and deploy the archive file on your application server.
    After successful deployment, return the applications.xml file to its original settings and add the oracle.bpel.common codesource to the BRM Adapter oc4j-ra.xml file:
    Open the Oracle_home/j2ee/Instance/config/applications.xml configuration file for the J2EE instance.
    Remove the following oracle.bpel.common entry (shown in bold below):
    <imported-shared-libraries>
    <import-shared-library name="adf.oracle.domain"/>
    <import-shared-library name="oracle.bpel.common"/>
    </imported-shared-libraries>
    Save and close the file.
    Open the JCA Resource Adapter oc4j-ra.xml file from the Oracle_home/j2ee/Instance/application-deployments/default/BRMAdapterDeploymentName directory.
    Add the oracle.bpel.common entry (shown in bold below) to the oc4j-connector-factories section of the file:
    <oc4j-connector-factories...>
    <imported-shared-libraries>
    <import-shared-library name="oracle.bpel.common"/>
    </imported-shared-libraries>
    <oc4j-connector-factories>
    Save and close the file.
    Restart the application server or the J2EE instance.
    For more information about deploying the adapter, see your application server’s documentation.
    Connecting the adapter to BRM in Oracle AS
    You connect the adapter to the BRM software by creating connection pools and connection factories. As part of the adapter deployment, the application server creates oc4j-ra.xml from the packaged ra.xml. The ra.xml file is located in the Oracle_home/j2ee/Instance/connectors/AdapterDeploymentName/AdapterDeploymentName/META-INF directory. For example, Oracle_home/j2ee/home/connectors/BRMAdapter/BRMAdapter/META-INF/ra.xml.
    Use the resource adapter home page from the Oracle AS ASC page to create connection pools and connection factories.
    Create your connection pool by following the performance and tuning guidelines in Configuring Connection Pooling in OC4J in Oracle Containers for J2EE Resource Adapter Administrator's Guide. See download.oracle.com/docs/cd/B31017_01/web.1013/b28956/conncont.htm.
    Make sure you set the pool’s Maximum Connections parameter (maxConnections XML entity) equal to or greater than the Oracle BPEL process manager’s dspMaxThreads parameter. For more information, see Oracle BPEL Process Manager Performance Tuning in Oracle Application Server Performance Guide for 10g Release 3 (10.1.3.1.0) at download.oracle.com/docs/cd/B31017_01/core.1013/b28942/tuning_bpel.htm.
    Note To set up JCA Resource Adapter transaction management in BPEL, you must create a private connection pool and set its Inactive Connection Timeout property (inactivity-timeout XML entity) to 0. See About JCA Resource Adapter transaction management in BPEL for more information.
    Create as many connection factories as your system needs. For each connection factory, specify the following:
    The JNDI location for the connection factory.
    The connection pool to use.
    How to connect to BRM by using these entries:
    Entry
    Description
    ConnectionString
    Specify the protocol, host name, and port number for connecting to the BRM software. For example: ip Server1 12006.
    DBNumber
    Specify the database number for the BRM database. For example, enter 1 or 0.0.0.1 for database 0.0.0.1.
    InputValidation
    Specifies whether to validate the input XMLRecord:
    True — The adapter validates the input XMLRecord against the opcode schema.
    False — The adapter does not validate the input XMLRecord.
    The default is False.
    This overrides any other validation parameter specified in the WSDL file.
    OutputValidation
    Specifies whether to validate the output XMLRecord:
    True — The adapter validates the output XMLRecord against the opcode schema.
    False — The adapter does not validate the output XMLRecord.
    The default is False.
    This overrides any other validation parameter specified in the WSDL file.
    LoginType
    Specifies the authentication method:
    1 — The adapter logs in to BRM by using the specified login name and password.
    0 — The adapter logs in to BRM by using the specified service type and POID ID.
    The default is 1.
    UserName
    Specifies the login name the adapter uses for logging in to the BRM software.
    Note This entry is required only if LoginType is set to 1.
    Password
    Specify the password the adapter uses for logging in to the BRM software.
    Note This entry is required only if LoginType is set to 1.
    PoidID
    Specifies the POID ID. This entry should be set to 1.
    ServiceType
    Specifies the service the adapter uses to log in to the BRM software.
    The default is /service/pcm_client.
    You have successfully configured the adapter to connect to BRM.

  • Anybody who can help me? I really need your help

    I've tried to execute J2ee tutorial examples.
    I don't know why this sample didn't execute...I've already finished to set up J2EE and enviornment variables.
    I was trying this part from j2ee tutorial titled as "Packing Web modules".
    Whenever I type "asant create-war" to make web modules in command window. I always got error.
    Packaging Web Modules(From J2ee tutorial for your information)
    A web module must be packaged into a WAR in certain deployment scenarios and whenever you want to distribute the web module. You package a web module into a WAR using the Application Server deploytool utility, by executing the jar command in a directory laid out in the format of a web module, or by using the asant utility. This tutorial allows you to use use either the first or the third approach. To build the hello1 application, follow these steps:
    In a terminal window, go to <INSTALL>/j2eetutorial14/examples/web/hello1/.
    Run asant build. This target will spawn any necessary compilations and will copy files to the <INSTALL>/j2eetutorial14/examples/web/hello1/build/ directory.
    To package the application into a WAR named hello1.war using asant, use the following command:
    asant create-war
    This command uses web.xml and sun-web.xml files in the <INSTALL>/j2eetutorial14/examples/web/hello1 directory.
    To learn how to configure this web application, package the application using deploytool by following these steps:
    Start deploytool.
    Create a web application called hello1 by running the New Web Component wizard. Select FileNewWeb Component.
    In the New Web Component wizard:
    Select the Create New Stand-Alone WAR Module radio button.
    In the WAR File field, enter <INSTALL>/j2eetutorial14/examples/web/hello1/hello1.war. The WAR Display Name field will show hello1.
    In the Context Root field, enter /hello1.
    Click Edit Contents to add the content files.
    In the Edit Contents dialog box, navigate to <INSTALL>/j2eetutorial14/examples/web/hello1/build/. Select duke.waving.gif, index.jsp, and response.jsp and click Add. Click OK.
    Click Next.
    Select the No Component radio button and click Next.
    Click Finish.
    Select FileSave.
    A sample hello1.war is provided in <INSTALL>/j2eetutorial14/examples/web/provided-wars/. To open this WAR with deploytool, follow these steps:
    Select FileOpen.
    Navigate to the provided-wars directory.
    Select the WAR.
    Click Open Module.
    I guess this step is for checking my system about setup information. I not sure how to change it.
    the result from execution of ansnt command in dos
    D:\J2ee\j2ee-1_4-doc-tutorial_7\j2eetutorial14\examples\web\hello1>asant create- war Buildfile: build.xml
    j2ee-home-test:
    BUILD FAILED D:\J2ee\j2ee-1_4-doc-tutorial_7\j2eetutorial14\examples\common\targets.xml:10: T he j2ee.home property is not properly set in <INSTALL>/j2eetutorial14/examples/c ommon/build.properties.
    Set the j2ee.home property to the location of your Application Server installati on.
    On Windows, you must escape any backslashes in the j2ee.home property with anoth er backslash or use forward slashes as a path separator. So, if your Application Server installation is C:\Sun\AppServer, you must set j2ee.home as follows:
    j2ee.home = C:\\Sun\\AppServer
    or
    j2ee.home=C:/Sun/AppServer
    j2ee.home is currently set to:
    Total time: 0 seconds
    D:\J2ee\j2ee-1_4-doc-tutorial_7\j2eetutorial14\examples\web\hello1>
    I've installed J2ee sdk in C:\Sun\AppServer
    PATH: %J2EE_HOME%\bin;%JAVA_HOME%\bin;
    CLASSPATH: %J2EE_HOME%\lib\j2ee.jar;C:\Java\jre1.6.0_05\lib\ext\QTJava.zip;C:\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib\ojdbc14.jar
    J2EE_HOME: C:\Sun\AppServer
    JAVA_HOME: C:\Sun\AppServer\jdk
    I've installed J2ee with administration 4848, HTTP: 8089 HTTP: 8090
    I guess this could refer the target.xml and build.properties. So, I've tried after changing some value, which is fit for my setup.
    but, still doesn't work.
    targets.xml
    <path id="classpath">
    <fileset dir="${j2ee.home}/lib">
    <include name="j2ee.jar"/>
    </fileset>
    </path>
    <target name="j2ee-home-test" >
    <!-- Test if j2ee.home is set properly by looking for j2ee.jar -->
    <available file="${j2ee.home}/lib/j2ee.jar" type="file" property="j2ee.jar.present" />
    <fail unless="j2ee.jar.present">
    The j2ee.home property is not properly set in <INSTALL>/j2eetutorial14/examples/common/build.properties.
    Set the j2ee.home property to the location of your Application Server installation.
    On Windows, you must escape any backslashes in the j2ee.home property with another backslash or use forward slashes as a path separator. So, if your Application Server installation is C:\Sun\AppServer, you must set j2ee.home as follows:
    j2ee.home = C:\\Sun\\AppServer
    or
    j2ee.home=C:/Sun/AppServer
    j2ee.home is currently set to: ${j2ee.home}
    </fail>
    </target>
    <target name="clean" >
    <delete dir="${build}" />
    <delete dir="${dist}" />
    <delete dir="${assemble}" />
    <delete file="${ear.name}" />
    <delete file="${war.name}" />
    <delete file="${war.file}" />
    <delete file="${client.jar.name}" />
    </target>
    <path id="db.classpath">
    <fileset dir="${db.root}/lib">
    <include name="*.jar"/>
    </fileset>
    </path>
    <target name="create-db_common"
    depends="init,start-db,delete-db"
    description="Create database tables and populate database." >
    <sql driver="${db.driver}"
    url="${db.url}"
    userid="${db.user}"
    password="${db.password}"
    classpathref="db.classpath"
    delimiter="${db.delimiter}"
    autocommit="false"
    onerror="abort" >
    <transaction src="${sql.script}"/>
    </sql>
    </target>
    <target name="delete-db"
    description="Deletes the database tables." >
    <sql driver="${db.driver}"
    url="${db.url}"
    userid="${db.user}"
    password="${db.password}"
    classpathref="db.classpath"
    delimiter="${db.delimiter}"
    autocommit="false"
    onerror="continue" >
    <transaction src="${delete.sql.script}"/>
    </sql>
    </target>
    <target name="ping-db"
    description="Checks to see if Derby is running." >
    <java classname="org.apache.derby.drda.NetworkServerControl"
    fork="yes"
    resultproperty="db.ping.result">
    <jvmarg line="${db.jvmargs}" />
    <arg line="ping" />
    <classpath refid="db.classpath" />
    </java>
    <condition property="db.running">
    <equals arg1="${db.ping.result}" arg2="0" />
    </condition>
    </target>
    <target name="start-db"
    unless="db.running"
    description="Starts the Derby databse server."
    depends="ping-db">
    <sun-appserv-admin
    explicitcommand="start-database" />
    </target>
    <target name="stop-db"
    description="Stops the Derby database server."
    depends="ping-db"
    if="db.running">
    <sun-appserv-admin
    explicitcommand="stop-database" />
    </target>
    <target name="admin_command_common">
    <echo message="Doing admin task ${admin.command}"/>
    <sun-appserv-admin
    command="${admin.command}"
    user="${admin.user}"
    passwordfile="${admin.password.file}"
    host="${admin.host}"
    port="${admin.port}"
    asinstalldir="${j2ee.home}" />
    </target>
    <target name="create-jdbc-resource_common">
    <antcall target="admin_command_common">
    <param name="admin.command"
    value="create-jdbc-resource
    --connectionpoolid ${conpool.name} ${jdbc.resource.name}" />
    </antcall>
    </target>
    <target name="delete-jdbc-resource_common">
    <antcall target="admin_command_common">
    <param name="admin.command"
    value="delete-jdbc-resource ${jdbc.resource.name}" />
    </antcall>
    </target>
    <target name="deploy-war">
    <antcall target="admin_command_common">
    <param name="admin.command"
    value="deploy ${war.file}" />
    </antcall>
    </target>
    <target name="undeploy-war">
    <antcall target="admin_command_common">
    <param name="admin.command"
    value="undeploy ${example}" />
    </antcall>
    </target>
    <property environment="env" />
    <target name="listprops"
    description="Displays values of some of the properties of this build file">
    <property file="../../common/admin-password.txt" />
    <echo message="Path information" />
    <echo message="j2ee.home = ${j2ee.home}" />
    <echo message="j2ee.tutorial.home = ${j2ee.tutorial.home}" />
    <echo message="env.Path = ${env.Path}" />
    <echo message="env.PATH = ${env.PATH}" />
    <echo message="" />
    <echo message="Classpath information" />
    <echo message="classpath = ${env.CLASSPATH}" />
    <echo message="" />
    <echo message="Admin information" />
    <echo message="admin.password = ${AS_ADMIN_PASSWORD}" />
    <echo message="admin.password.file = ${admin.password.file}" />
    <echo message="admin.host = ${admin.host}" />
    <echo message="admin.user = ${admin.user}" />
    <echo message="admin.port = ${admin.port}" />
    <echo message="https.port = ${https.port}" />
    <echo message="" />
    <echo message="Domain information" />
    <echo message="domain.resources = ${domain.resources}" />
    <echo message="domain.resources.port = ${domain.resources.port}" />
    <echo message="" />
    <echo message="Database information" />
    <echo message="db.root = ${db.root}" />
    <echo message="db.driver = ${db.driver}" />
    <echo message="db.host = ${db.host}" />
    <echo message="db.port = ${db.port}" />
    <echo message="db.sid = ${db.sid}" />
    <echo message="db.url = ${db.url}" />
    <echo message="db.user = ${db.user}" />
    <echo message="db.pwd = ${db.pwd}" />
    <echo message="url.prop = ${url.prop}" />
    <echo message="ds.class = ${ds.class}" />
    <echo message="db.jvmargs = ${db.jvmargs}" />
    </target>
    build.properties ����
    j2ee.home=
    j2ee.tutorial.home=
    asinstall.dir=${j2ee.home}
    admin.password.file=${j2ee.tutorial.home}/examples/common/admin-password.txt
    admin.host=localhost
    admin.user=admin
    admin.port=4848
    https.port=8181
    domain.resources="domain.resources"
    domain.resources.port=8080
    # Derby configuration settings
    db.delimiter=;
    db.root=${j2ee.home}/derby
    db.driver=org.apache.derby.jdbc.ClientDriver
    db.datasource=org.apache.derby.jdbc.ClientDataSource
    db.host=localhost
    db.port=1527
    db.sid=sun-appserv-samples
    db.url=jdbc:derby://${db.host}:${db.port}/${db.sid};create=true;
    db.user=APP
    db.pwd=APP
    db.jvmargs=-ms16m -mx32m
    Is there anyone who can tell me how to change it? I really need your help....
    Thank you in advance.

    ok,
    First of all make sure your tutorial folder is installed from the root:
    C:\javaeetutorial5
    or
    D:\javaeetutorial5
    it makes things so simple.
    Secondly:
    set your jee tutorial home
    JAVAEE.TUTORIAL.HOME =
    C:/javaeetutorial5
    Thirdly: check in:
    C:\javaeetutorial5\examples\bp-project
    make a copy of the build.properties.sample save it as build.propropties, as a property file,
    edit the properties file as in:
    build.properties
    As follows:
    # uncomment the property javaee.home, and add the path
    # to your GlassFish Java EE 5 SDK installation
    javaee.home=c:/Sun/SDK
    javaee.tutorial.home=c:/javaeetutorial5
    # Uncomment the property j2ee.server.username,
    # and replace the administrator username of the app-server
    javaee.server.username=admin
    # Uncomment the property j2ee.server.passwordfile,
    # and replace the following line to point to a file that
    # contains the admin password for your app-server.
    # The file should contain the password in the following line:
    AS_ADMIN_PASSWORD=admin1234and so fourth. Some of the settings as the application server name is all done for you
    and then test it again.
    Take care of editing the property file. It can give you headache.
    Note also that this is for application server 9.1 - JEE5.
    eve

  • Please I need some help with a table

    Hi All
    I need some help with a table.
    My table needs to hold prices that the user can update.
    Also has a total of the column.
    my question is if the user adds in a new price how can i pick up the value they have just entered and then add it to the total which will be the last row in the table?
    I have a loop that gets all the values of the column, so I can get the total but it is when the user adds in a new value that I need some help with.
    I have tried using but as I need to set the toal with something like total
        totalTable.setValueAt(total, totalTable.getRowCount()-1,1); I end up with an infinite loop.
    Can any one please advise on some way I can get this to work ?
    Thanks for reading
    Craig

    Hi there camickr
    thanks for the help the other day
    this is my full code....
    package printing;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.print.*;
    import javax.swing.*;
    import javax.swing.table.*;
    import java.text.DecimalFormat;
    public class tablePanel
        extends JDialog  implements Printable {
      BorderLayout borderLayout1 = new BorderLayout();
      private boolean printing = false;
      private Dialog1 dialog;
      JPanel jPanel = new JPanel();
      JTable table;
      JScrollPane scrollPane1 = new JScrollPane();
      DefaultTableModel model;
      private String[] columnNames = {
      private Object[][] data;
      private String selectTotal;
      private double total;
      public tablePanel(Dialog1 dp) {
        dp = dialog;
        try {
          jbInit();
        catch (Exception exception) {
          exception.printStackTrace();
      public tablePanel() {
        try {
          jbInit();
        catch (Exception exception) {
          exception.printStackTrace();
      private void jbInit() throws Exception {
        jPanel.setLayout(borderLayout1);
        scrollPane1.setBounds(new Rectangle(260, 168, 0, 0));
        this.add(jPanel);
        jPanel.add(scrollPane1, java.awt.BorderLayout.CENTER);
        scrollPane1.getViewport().add(table);
        jPanel.setOpaque(true);
        newTable();
        addToModel();
        addRows();
        setTotal();
    public static void main(String[] args) {
      tablePanel tablePanel = new  tablePanel();
      tablePanel.pack();
      tablePanel.setVisible(true);
    public void setTotal() {
      total = 0;
      int i = table.getRowCount();
      for (i = 0; i < table.getRowCount(); i++) {
        String name = (String) table.getValueAt(i, 1);
        if (!"".equals(name)) {
          if (i != table.getRowCount() - 1) {
            double dt = Double.parseDouble(name);
            total = total + dt;
      String str = Double.toString(total);
      table.setValueAt(str, table.getRowCount() - 1, 1);
      super.repaint();
      public void newTable() {
        model = new DefaultTableModel(data, columnNames) {
        table = new JTable() {
          public Component prepareRenderer(TableCellRenderer renderer,
                                           int row, int col) {
            Component c = super.prepareRenderer(renderer, row, col);
            if (printing) {
              c.setBackground(getBackground());
            else {
              if (row % 2 == 1 && !isCellSelected(row, col)) {
                c.setBackground(getBackground());
              else {
                c.setBackground(new Color(227, 239, 250));
              if (isCellSelected(row, col)) {
                c.setBackground(new Color(190, 220, 250));
            return c;
        table.addMouseListener(new MouseAdapter() {
          public void mouseClicked(MouseEvent e) {
            if (e.getClickCount() == 2) {
            if (e.getClickCount() == 1) {
              if (table.getSelectedColumn() == 1) {
       table.setTableHeader(null);
        table.setModel(model);
        scrollPane1.getViewport().add(table);
        table.getColumnModel().getColumn(1).setCellRenderer(new TableRenderDollar());
      public void addToModel() {
        Object[] data = {
            "Price", "5800"};
        model.addRow(data);
      public void addRows() {
        int rows = 20;
        for (int i = 0; i < rows; i++) {
          Object[] data = {
          model.addRow(data);
      public void printOut() {
        PrinterJob pj = PrinterJob.getPrinterJob();
        pj.setPrintable(tablePanel.this);
        pj.printDialog();
        try {
          pj.print();
        catch (Exception PrintException) {}
      public int print(Graphics g, PageFormat pageFormat, int pageIndex) throws PrinterException {
        Graphics2D g2 = (Graphics2D) g;
        g2.setColor(Color.black);
        int fontHeight = g2.getFontMetrics().getHeight();
        int fontDesent = g2.getFontMetrics().getDescent();
        //leave room for page number
        double pageHeight = pageFormat.getImageableHeight() - fontHeight;
        double pageWidth =  pageFormat.getImageableWidth();
        double tableWidth = (double) table.getColumnModel().getTotalColumnWidth();
        double scale = 1;
        if (tableWidth >= pageWidth) {
          scale = pageWidth / tableWidth;
        double headerHeightOnPage = 16.0;
        //double headerHeightOnPage = table.getTableHeader().getHeight() * scale;
        //System.out.println("this is the hedder heigth   " + headerHeightOnPage);
        double tableWidthOnPage = tableWidth * scale;
        double oneRowHeight = (table.getRowHeight() +  table.getRowMargin()) * scale;
        int numRowsOnAPage = (int) ( (pageHeight - headerHeightOnPage) / oneRowHeight);
        double pageHeightForTable = oneRowHeight *numRowsOnAPage;
        int totalNumPages = (int) Math.ceil( ( (double) table.getRowCount()) / numRowsOnAPage);
        if (pageIndex >= totalNumPages) {
          return NO_SUCH_PAGE;
        g2.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
    //bottom center
        g2.drawString("Page: " + (pageIndex + 1 + " of " + totalNumPages),  (int) pageWidth / 2 - 35, (int) (pageHeight + fontHeight - fontDesent));
        g2.translate(0f, headerHeightOnPage);
        g2.translate(0f, -pageIndex * pageHeightForTable);
        //If this piece of the table is smaller
        //than the size available,
        //clip to the appropriate bounds.
        if (pageIndex + 1 == totalNumPages) {
          int lastRowPrinted =
              numRowsOnAPage * pageIndex;
          int numRowsLeft =
              table.getRowCount()
              - lastRowPrinted;
          g2.setClip(0,
                     (int) (pageHeightForTable * pageIndex),
                     (int) Math.ceil(tableWidthOnPage),
                     (int) Math.ceil(oneRowHeight *
                                     numRowsLeft));
        //else clip to the entire area available.
        else {
          g2.setClip(0,
                     (int) (pageHeightForTable * pageIndex),
                     (int) Math.ceil(tableWidthOnPage),
                     (int) Math.ceil(pageHeightForTable));
        g2.scale(scale, scale);
        printing = true;
        try {
        table.paint(g2);
        finally {
          printing = false;
        //tableView.paint(g2);
        g2.scale(1 / scale, 1 / scale);
        g2.translate(0f, pageIndex * pageHeightForTable);
        g2.translate(0f, -headerHeightOnPage);
        g2.setClip(0, 0,
                   (int) Math.ceil(tableWidthOnPage),
                   (int) Math.ceil(headerHeightOnPage));
        g2.scale(scale, scale);
        //table.getTableHeader().paint(g2);
        //paint header at top
        return Printable.PAGE_EXISTS;
    class TableRenderDollar extends DefaultTableCellRenderer{
        public Component getTableCellRendererComponent(
          JTable table,
          Object value,
          boolean isSelected,
          boolean isFocused,
          int row, int column) {
            setHorizontalAlignment(SwingConstants.RIGHT);
          Component component = super.getTableCellRendererComponent(
            table,
            value,
            isSelected,
            isFocused,
            row,
            column);
            if( value == null || value .equals("")){
              ( (JLabel) component).setText("");
            }else{
              double number = 0.0;
              number = new Double(value.toString()).doubleValue();
              DecimalFormat df = new DecimalFormat(",##0.00");
              ( (JLabel) component).setText(df.format(number));
          return component;
    }

  • Need urgent help in listing out checklist from DBA prespective for BI Implementation Project

    Hello Guys,
    We are in Designing phase Data Modeling of PDW/APS Implementation Project.
    I need urgent help in making a checklist from a DBA perspective.
    Like what are things ill be needing at a time of implementation/Deployment.
    Your expert comments and help will be highly appreciated.
    Thank you,
    Anish.S
    Asandeen

    You can get good summary of checklist from this article about
    DBA checklist for data warehousing.
    Which highlights on below pointers:
    New system or old. (I.e. Up-gradation vs starting from scratch)
    Complexity of SQL Server architecture 
    SQL Server storage
    Determining SQL Server processing power
    SQL Server installation consideration 
    SQL Server configuration parameter
    SQL Server security
    SQL Server Database property
    SQL Server jobs and automation
    Protecting SQL Server data
    SQL Server health monitoring and check ups
    SQL Server ownership and control 
    based on my real time experience, I will suggest you to keep an eye on 
    Load performance (It will be useful when your database(Warehouse) will have huge amount of data)
    System availability (Check for Windows update and up time configuration) 
    Deployment methodology should be planned in advance. Development of packages and respective objects should be done systematically.
    Source control mechanism 
    Disk space and memory usage
    You might or might not have full rights on production environment, so be prepared to analyze production environment via Select statements [I guess you got my point]
    Proper implementation of Landing , Staging and Mart tables.
    Column size (this can drastically decrease your database size)
    Usage of indexes (Index are good, but at what cost?)
    I hope this will assist you in building your check list.

  • Need some help with threads...

    Hello all,
    I am working on a project at work, and I am not the best programmer in the world. I have been trying to get my head around this for a couple of days and just cannot get it to work.
    I am writing an instrumentation control program that will have three threads. One is the GUI, one will receive control information and set up the hardware, and one will check the hardware status and report it to the GUI periodically. I plan on using the invokeLater() method to communicate the status to the GUI and change the status display in the GUI. Communication from the GUI to the controller thread and from the status thread to the controller thread I had planned on being piped input/output stream as appropriate. I have a control class and a status class that need to be communicated over these piped streams. In some trial code I have been unable to wrap the piped input/output streams with object input/output streams. I really need some help with this. Here is the main thread code:
    package playingwiththreads1;
    import java.io.*;*
    *public class PlayingWithThreads1 {*
    public static void main(String[] args) {*
    * PipedOutputStream outputPipe = new PipedOutputStream();*
    * ObjectOutputStream oos = null;*
    * ReceiverThread rt = new ReceiverThread(outputPipe);*
    // Start the thread -- First try*
    * Thread t = new Thread(rt);*
    t.start();*
    // Wrap the output pipe with an ObjectOutputStream*
    try*
    oos = new ObjectOutputStream(outputPipe);*
    catch (IOException e)*
    System.out.println(e);*
    // Start the thread -- Second try*
    //Thread t = new Thread(rt);*
    //t.start();*
    /** Send an object over the pipe. In reality this object will be a
    class that contains control or status information */
    try
    if (!oos.equals(null))
    oos.writeObject(new String ("Test"));
    catch (IOException e)
    try
    Thread.sleep(5000);
    catch (InterruptedException e)
    I read somewhere that it matters where you start the thread relative to where you wrap piped streams with the object streams. So, I tried the two places I felt were obvious to start the thread. These are noted in the comments. Here is the code for the thread.
    package playingwiththreads1;
    import java.io.*;
    public class ReceiverThread implements Runnable {
    private PipedInputStream inputPipe = new PipedInputStream();
    private ObjectInputStream inputObject;
    ReceiverThread (PipedOutputStream outputPipe)
    System.out.println("Thread initialization - start");
    try
    inputPipe.connect(outputPipe);
    inputObject = new ObjectInputStream(inputPipe);
    catch (IOException e)
    System.out.println(e);
    System.out.println("Thread initialization - complete");
    public void run()
    System.out.println("Thread started");
    try
    if (inputObject.available() > 0)
    System.out.println(inputObject.read());
    catch (IOException e)
    System.out.println(e);
    Through testing I have determined that no matter where I start the thread, the thread never gets past the "inputObject = new ObjectInputStream(inputPipe);" assignment.
    Could someone please help me with this? There are other ways for me to write this program, but this is the one that I would like to make work.
    Many thanks in advance,
    Rob Hix
    Edited by: RobertHix on Oct 6, 2009 3:54 AM

    Thanks for the help, but that did not work. I tried flushing the ObjectOutputStream and it is still hanging when initializing the thread.
    Here is a better look at the code since I was helped to figure out how to insert it:
    The main method:
    package playingwiththreads1;
    import java.io.*;
    public class PlayingWithThreads1 {
        public static void main(String[] args) {
            PipedOutputStream outputPipe = new PipedOutputStream();
            ObjectOutputStream oos = null;
            ReceiverThread rt = new ReceiverThread(outputPipe);
            // Start the thread -- First try
            //Thread t = new Thread(rt);
            //t.start();
            // Wrap the output pipe with an ObjectOutputStream
            try
                oos = new ObjectOutputStream(outputPipe);
                oos.flush();
            catch (IOException e)
                System.out.println(e);
            // Start the thread -- Second try
            Thread t = new Thread(rt);
            t.start();
            /* Send an object over the pipe.  In reality this object will be a
             * class that contains control or status information */
            try
                if (!oos.equals(null))
                    oos.writeObject(new String ("Test"));
                    oos.flush();
            catch (IOException e)
                System.out.pringln(e);
            try
                Thread.sleep(5000);
            catch (InterruptedException e)
    }The thread code:
    package playingwiththreads1;
    import java.io.*;
    public class ReceiverThread implements Runnable {
        private PipedInputStream inputPipe = new PipedInputStream();
        private ObjectInputStream inputObject;
        ReceiverThread (PipedOutputStream outputPipe)
            System.out.println("Thread initialization - start");
            try
                inputPipe.connect(outputPipe);
                inputObject = new ObjectInputStream(inputPipe);
            catch (IOException e)
                System.out.println(e);
            System.out.println("Thread initialization - complete");
        public void run()
            System.out.println("Thread started");
            try
                if (inputObject.available() > 0)
                    System.out.println(inputObject.read());
            catch (IOException e)
                System.out.println(e);
    }Does anyone else have and ideas?

  • Meric -- Another package helper (packer fork)

    Hi. Here is Meric. I have made modifications to famous and well written "packer" (thanks to Matthew Bruenig) to fit my needs. So a packer fork "Meric" has born. I decided to share it with community. But remember, i am neither a coder nor a bash expert. So, my modifications may be an ugly hack to packer; but it just works for me. I hope you'll enjoy it. All credits must go Mr. Bruening.
    From Meric README:
    Meric is a package helper for Arch Linux. It can retrieve packages from official repositories and Arch User Repository (a.k.a. AUR).
    Meric is a fork of famous "packer" which is developed by Matthew Bruenig <[email protected]>
    Meric is born from the needs of the autor.
    Meric has a few differences from packer:
      1- Meric has a config file. Users may use it for daily meric tasks instead of using options in commandline. Also makepkg options can be set there. Once options have been set; meric can call makepkg with these options by default.
    2- Meric has the ability of remove installed dependencies after package creation. Like "makepkg -r". Not perfect but it works for my needs.
    3- Meric can skip checking and installing from specified repositories with "--skip-repo" option. This is useful when you setup your custom repository with AUR packages. Aur helpers, including packer, won't treat those packages as aur packages because it thouhgt that they came from a repo (your custom repo). So those packages always skipped when AUR updates checking phase. This option prevents this for you.( also can be set in meric.conf to make it default behaviour)
    4- Meric can use translations. For the sake of keep package and its dependencies minimal; only one text file (in bash script format) is used to hold and provide all translations. See TRANSLATIONS section.
    5- Meric can call pacman with a custom pacman.conf file for all pacman related operations. Just place your custom pacman.conf under $HOME/.config/meric/ directory.
    Github link: https://github.com/tarakbumba/meric
    Aur link: https://aur.archlinux.org/packages.php?ID=59946

    fschiff wrote:
    471,475c604,611
    < '--auronly') auronly='1' ;;
    < '--devel') devel='1' ;;
    < '--skipinteg') MAKEPKGOPTS="--skipinteg" ;;
    < '--') shift ; packageargs+=("$@") ; break ;;
    < -*) echo "packer: Option \`$1' is not valid." ; exit 5 ;;
    > '-a'|'--auronly') auronly='1' ;;
    > '--devel') devel='1' ;;
    > '--skipinteg') MAKEPKGOPTS+=("--skipinteg") ;;
    > '--cleandeps'| '-c') cleandeps='1' ;;
    > '--version'| '-v') echo -n "Meric - $VERSION" ;;
    > '--skip-repo') skipped_repos="$2" ; skip_repo='1' ; shift ;;
    > '--') shift ; packageargs+=("$@") ; break ;;
    > -*) echo -e "${COLOR7}$ERROR :$ENDCOLOR $ERROR9" ; exit 5 ;;
    MAKEPKGOPTS= is different.  Possible bug?
    Its the only place where the variable gets set.
    234c322
    < echo "${PKGURL}$(jshon -Q -e results -e URLPath -u < "$tmpdir/$1.info")"
    > echo "${PKGURL}$(jshon -e results -e URLPath -u < "$tmpdir/$1.info")"
    -Q option
    Thank you for interesting in. MAKEPKGOPTS is indeed different and it is not a bug but a feature to allow use of Makepkg options from meric.conf
    But you' re right. Somehow i missed -Q option in pkglink function. Will update git with this. Thanks for your feedback!

  • Need someone helps for several Problems on my 9630 Tour

    Hello,
    Well, these are list of problems with my 9630 Tour, and I need some helps to solve these :
    1. My 1st problem is, everytime my 9630 started its also a message appears : "uncaught exception index 8 >= 8"
    2. And I also realized that some missing application happened. My m-Banking application (already re-installed well) but it also lost of SMS icon. So the result is, everytime I sent an outgoing SMS  I couldn't save it. And I have made a test to sent SMS from my other number to this 9630 device, but 9630 couldn't show that any incoming message, even my other device has given me notification that message has been delivered.
    3. Its also often shutdown suddenly by itself, or its shutdown upon charging
    4. Charging tasks sometime couldn't be well charged. And finally I realized that my device has off in the middle of charging task, it may caused of charging wasn't recharge the device very well 
    Hopefully I can read your kindly solution on those problems happened. Thank you for your prompt response. 
    Anwar Hussein

    Hi and Welcome to the Community!
    I actually think that all of your issues are related, and rooted in the same problem...OS corruption or hardware failure. But, before you begin, please be sure you have a good backup...see the link in my auto-sig on this post for instructions for that process.
    Then, at the top of each device forum, there should be some "sticky" threads that discuss the OS levels available for many models. If they include your model, then please use those as reference as you proceed. Otherwise, you will have to dig through the official download portal for OS packages for your model:
    http://us.blackberry.com/support/downloads/download_sites.jsp
    From a PC, you can install any compatible (e.g., for your exact BB Model Number) OS package to a BB via this procedure:
    http://supportforums.blackberry.com/t5/BlackBerry-Device-Software/How-To-Reload-Your-Operating-Syste...
    Note that while written for "reload" and the Storm, it can be used to upgrade, downgrade, or reload any BB device model -- it all depends on the OS package you download and install to your PC. If that OS package is from a carrier other than the carrier for which your BB was originally manufactured, then delete, on your PC, all copies of VENDOR.XML...there will be at least one, and perhaps 2, and they will be located in or similarly to (it changes based on your Windows version) these folders:
    C:\Program Files (x86)\Common Files\Research In Motion\AppLoader
    C:\Users\(your Windows UserName)\AppData\Roaming\Research In Motion\BlackBerry\Loader XML
    Be sure that you remove, from your PC, any other BB device OS packages as having more than one installed to the PC can cause conflicts with this procedure.
    You may also want to investigate the use of BBSAK (bbsak.org) to perform the wipe it is capable of.
    You may also want to try this procedure to perhaps narrow down the precise causal item:
    Load your OS "bare bones"...if anything is optional, do not install it.
    If the behavior presents immediately, then try a different OS with step 1
    If the behavior does not immediately present, then run for as long as it takes for you to be sure that the behavior will not present.
    Add one thing -- no matter how tempting, just one.
    If the behavior does not present immediately, then again run for long enough to be sure it will not have the same problem
    Repeat steps 4 and 5 until all things are loaded or the behavior presents
    When the behavior presents, you know the culprit...the last thing you loaded.
    If the behavior does not re-present, then you know that either step 1 or 2 cured it.
    If the behavior presents no matter what, then you likely have a hardware level issue for which no amount of OS or software can cure.
    If you are on MAC, you are limited to only your carriers sanctioned OS packages...but can still use any levels that they currently sanction. See this procedure:
    KB19915How to perform a clean reload of BlackBerry smartphone application software using BlackBerry Desktop Software
    Good luck and let us know!
    Occam's Razor nearly always applies when troubleshooting technology issues!
    If anyone has been helpful to you, please show your appreciation by clicking the button inside of their post. Please click here and read, along with the threads to which it links, for helpful information to guide you as you proceed. I always recommend that you treat your BlackBerry like any other computing device, including using a regular backup schedule...click here for an article with instructions.
    Join our BBM Channels
    BSCF General Channel
    PIN: C0001B7B4   Display/Scan Bar Code
    Knowledge Base Updates
    PIN: C0005A9AA   Display/Scan Bar Code

  • Upload support package " help"

    Hi Expert!! how are you....
    i need you help, I will apply support package resouce human, but before making the upload in sap requires decompress in cmd with the command "SAPCAR -xvf Filename extract" since the directory usr/sap/trans/eps/in, but when I write I said "'SAPCAR' is not recognized as an internal or external command,operable program or batch file." It will be something that I am jumping? Some point an area not? I will have to call some command before?
    thank

    Hola Luis,
    el directorio sapmnt es usualment un share creado para compartir la carpeta \usr\sap asi que si esta apuntando a \sapmnt\eps\in debe haber un path \usr\sap\eps\in.... chequea que el paquete este en esa carpeta...
    de lo contrario si es un solo paquete el que vas a cargar en el systema ve a SPAM-> Support package ->Load -> From frontend  y apunta a la direccion del SAR file... sap lo descomprimira automaticamente.
    Saludos
    Juan

  • Bt infinity way to slow !!! Need some help

    We just got bt infinity 1 installed with home hub 5 as well, I did a speed test and it was only getting 10mbps download, 5 Mbps upload and 85 ping, is this good or bad. We currently have 10 devices connected to internet in this house, I can't even watch normal you tube videos in 480p, this is annoying as paid a lot of money for it, I know the problem can rely down to the amount I people connected, it may be also down to where the router is ? Need some help to how we can get best performance and how to share the connection between all of us or how to get more as on the best package available ? Thanks will need all the help as the internet is atrocious right now, almost as bad as our non infinity by home hub 2 we had a few days ago

    Can you run this checker and post back a screen shot of the results
    http://www.dslchecker.bt.com/adsl/adslchecker.welcome
    and use this speed tester then carry out the further diagnostics and post back a screen shot of all the results including your IP profile for up and down. This test must be done with a wired connection.
    http://speedtest.btwholesale.com/
    As you have a Homehub 5 can you also post the stats from 1-12 by logging onto the homehub management pages then troubleshooting > helpdesk. http://bthomehub.home/

  • Need some help learning cue points, etc

    I need some help with a Flash project I'm working on. If any
    Flash junkies out there are up for sitting down with me through
    email or IM and helping me get to the point where I have a template
    FLA doing what I want to do, I'd be willing to pay you. It wouldn't
    be much, but it would be something. Here's what I'm trying to do:
    I need to create an interactive talking-head style flash
    presentation with a number of progressive download externally
    linked FLV files, playing in succession, supported by movie-clip
    text animations and supporting graphics which are triggered by cue
    points in the video. I also need a simple navigation menu linking
    to the FLV files. I've got some of this down already, namely, I've
    laid the FLVs in and they are playing in succession. I'm stuck on
    the cue point part. At this point I really just need some hands-on
    help. I've bought books, I've scoured the web.
    I'm easy to communicate with, and I'm good with computers and
    comfortable in many multimedia design programs. Flash is very
    powerful, but tougher to learn than I expected, and I'm at the end
    of my rope =P

    My advice... start with a very simple "proof of concept" project before you attempt the entire package.
    It will be much easier to scale up if you first have a very good understanding of what's going on.
    So one simple video with just one cuepoint and only one button and additional display. You'll also have to work out the interaction of pausing the video when a cuepoint is reached or button pushed to display the graph, giving the viewer time to read the graph... then when the viewer closes the graph, the video should "resume".
    Start very simple and build on that only after you understand the fundamentals.
    Second, you mention "video reports"... plural. So that most likely means that you will need a video player with a "playlist".
    This may mean that you'll need to learn to use a little .xml to bring in the playlist data. You may also find xml an excellant way to bring other data into you project.
    At the link listed above there is an excellant tutorial on "Integrating Flash and XML"
    "Flash and XML"
    "XML Video Playlist"
    "ActionScript 3 XML Basics"
    "ActionScript 3 Advanced XML"
    Personally I would not even begin a project like this without considering how I could use xml to feed data into the project.
    Here's an example of a video player I created that has a playlist, thumbnails, categories, transcipts, "Now Playing" etc. All that data comes into the main .swf via various xml files. Super good way in input data into Flash.
    http://www.drheimer.com/video/
    Yours is a rather ambitious project and will take awhile to gain the skill and assemble the pieces. So when you come to a new part... first create a real simple "proof of concept" model so you can learn how that section works. Don't expect to be able to assemble the entire project all at once.
    Best wishes,
    Adninjastrator

  • Basic Output program need some help...Please

    import java.io.*;
    class FileOutputDemo
    public static void main(String args[])
    int one=1, two=2, three=3;
         FileOutputStream out; // declare a file output object
         PrintStream p; // declare a print stream object
         try
              // Create a new file output stream
              // connected to "myfile.html"
              out = new FileOutputStream("myfile.html");
              // Connect print stream to the output stream
              p = new PrintStream( out );
              p.printf ("This is written to a file %d", one);
              p.close();
         catch (Exception e)
              System.err.println ("Error writing to file");
    }Hello I am new to java, and I hope someone help me to modify the above code in order to make it work as the following:
    I have a list of integer values like 1, 2, 3, 4? 10
    And I want the program to substitute the integer values (the integer declared list) subsequently one by one to output a new html file as the following output:
    This is written to a file 1
    This is written to a file 2
    This is written to a file3 ?etc
    Also this substitution has to be outputted to a new file every time.
    Thank you very much in advance for your kind help
    if i have to post this anywhere else please advise me..
    Adam

    import java.io.*;
    public class FileOutputDemo
        public static void main(String[] args) {
             FileOutputStream out; // declare a file output object
             PrintStream p; // declare a print stream object
             try
                  // Create a new file output stream
                  // connected to "myfile.html"
                  out = new FileOutputStream("myfile.html");
                  p = new PrintStream( out );
                  int[] arrayOfInts = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
                for (int element : arrayOfInts)
                     p.printf (element + " ");
                  p.close();
                  // Connect print stream to the output stream
             catch (Exception e)
                  System.err.println ("Error writing to file");
    }ok .... guys i really understand what do you mean,
    i only need your help to make the program print one integer at a time from the array to a seprate file ....what do you suggest ... any hints
    Thanks

  • Remote App on iPad connects but drops after about  20 mins. Need to turn  off wait about 1 minute then turn on wifi on iMac before it can reconnect. Need some help please.

    Remote App on iPad connects but drops after about  20 mins. Need to turn  off wait about 1 minute, then turn on wifi on iMac before it can reconnect. Need some help please.
    Already gone through troubleshooting guide a zillion times. Thanks.

    This worked for me... A little time consuming but once you get rolling it goes GREAT... Thanks....
    I got my artwork and saved it to my Desktop
    Opened up Microsoft Paint and clicked on "File" and "Open" and found it to get it on the screen to resize it
    Clicked "resize" and a box for changing it opened up
    Checked the box "Pixels" and "Unchecked maintain aspect ratio"
    Set Horizontal for 640 and Vertical for 480
    Clicked on "OK" and went back to "File" and did a "Save As" and chose JPEG Picture
    It came up "File Already Existed" and clicked "OK" (really did not care about the original artwork I found because wrong size)
    Went to iTunes and on the movie right clicked on "Get Info", clicked on "Details", then "Artwork"
    Go to the little box on the top left that shows your old artwork and click on it to get the little blue border to appear around it and hit "Delete" to make it gone
    Click on "Add Artwork" and find it where you put the one from above on your Desktop and hit "Open" and OK and your new artwork is now there and all good.
    Sounds like a lot of steps to follow but after around 5 or so you will fly through it. This worked perfect on my iPhone 6 Plus and I have artwork on my Home Videos now.

  • Need your help in Remodeling concept

    Hi Gurus need your help in time estimations
    I have a cube with data and now I need to add 10 new info objects to the cube which are including Date fields (BUDAT, BLDAT) these 10 fields will be populated to the cube from a Z table in ECC as we donu2019t have these fields in the cube we have to go for remodeling of the cube
    My client requires how much time it will take to complete this
    Now I want to know how much time it would take to do this (if any customer exits and user exits are required) and addition if new fields will have any effect on the current queries
    Please advice in this
    Thank you

    The time taken will depends on a lots of factor like server speed, available memory, background jobs etc. Apart from this, the time will also depends on how much the cube is filled i.e. the no. of records in the cube. Its very abstract to tell you the exact time taken for this. But, please make sure that you have the backup of the cube which you are going to re-model. T0 say, I think 3-4 hours should be ok for the remodelling.
    Thanks.
    Shambhu

Maybe you are looking for

  • Blackberry ID problem/BBM problem

    I just downloaded the new BBM and I need my Blackberry ID password, which i don't know. I only know part of it and my email address has a spelling mistake in it so i can't have my password reset by email. Should I just wipe my phone? or is there anyt

  • LV820 VarMgr Error 7 on close (no RT info)

    Looking for suggestions regarding trouble with LV820 Variable Manager (VM) while viewing PXI RT system hosting single deployed Network Shared Variables (NSV) library. Standard LV 'Error 7 occurred at New File' (file not found) dialog appears when clo

  • Import picture never finish

    Hi, When Import a picture from a file, it imports the picture but never finish it. I Force Quit iPhoto, and the picture was imported.

  • How Do I Set Up Itunes To Search For Songs In An External Hard Drive?

    I would like to keep my music on an external hard drive, how do I set up Itunes so that it goes right to that drive and folder when updating or the Itunes store placing the songs I purchase in the external drive?

  • Refreshing/viewing new TV episodes

    Having major problems w my AT2. What am I doing wrong? 1) I receive emails regarding new episodes available on my season passes, but they don't appear on the ATV2 purchased TV shows list. I've tried resetting, unplugging, signing out/in, but I can't